版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系微機(jī)原理與接口技術(shù)課程設(shè)計(jì)課程設(shè)計(jì)科目交通燈學(xué)生姓名陳昱宇學(xué)號1004014038班級10級計(jì)算機(jī)科技2班指導(dǎo)教師高玲玲、肖連軍2013 01 141、題意分析與解決方案1.1 題意需求分析根據(jù)以上題目所給的提示,我們對其進(jìn)行解析:首先假設(shè)有一個(gè)十字路口,1、3為南北方向,2、4為東西方向,初始為四個(gè)路口的紅燈全亮,之后,1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車; 延時(shí)一段時(shí)間后,1、3路口的綠燈熄滅,而1、3路口的黃燈開始閃爍,閃爍若干次以后,1、3 路口紅燈亮, 而同時(shí)2、4路口的綠燈亮,2、4路口方向通車;延時(shí)一段時(shí)間后,2、4 路口的綠燈熄滅
2、,而黃燈開始閃爍,閃爍若干次以后,再切換到1、3路口方向,之后重復(fù)上述過程。從題意需求分析本課程設(shè)計(jì)需要解決的問題如下:(1) 怎樣定時(shí)?是采用硬件定時(shí)還是軟件定時(shí)?(2) 怎么控制交通燈的紅、綠、黃切換?(3) 怎樣模擬出東西、南北向信號燈倒計(jì)時(shí)的的效果?(4) 怎樣更加具有使用價(jià)值,具有使用的靈活性?1.2解決方法及思路硬件部分本課程設(shè)計(jì)的具體要求如下:(1) 通過8255A控制信號燈的輸出顯示(2) 通過8279A實(shí)現(xiàn)數(shù)碼管的倒計(jì)時(shí)顯示(3) 通過軟件延時(shí)實(shí)現(xiàn)交通燈的1S定時(shí)效果(4) 通過8279的鍵盤控制實(shí)現(xiàn)交通燈的初始時(shí)間設(shè)置本實(shí)驗(yàn)需要人為操作,故需要按鍵,主要用到的硬件是8279
3、、8255以及矩陣鍵盤、數(shù)碼管、LED顯示燈。我們將LED指示燈接在8255A的PA口,設(shè)置8255A的端口全為輸出。利用軟件進(jìn)行定時(shí),通過星研提供的軟件延時(shí)DELAY500MS,進(jìn)行0.5S的定時(shí)。由于本實(shí)驗(yàn)需要設(shè)置初始時(shí)間值,也就是需要設(shè)定紅綠燈的30S延時(shí)和黃燈的5S延時(shí)或其它時(shí)間。故在上電后需要通過鍵盤設(shè)置時(shí)間值。矩陣鍵盤第一行對應(yīng)0 1 2 3第二行對應(yīng)4 5 6 7 第三行對應(yīng)8 9 A B 第四行對應(yīng)C D E F一般設(shè)置時(shí)只需要前十個(gè)鍵即可。設(shè)定時(shí)規(guī)定最大值是兩位數(shù),需要依次設(shè)定兩次,第一次是紅綠燈顯示時(shí)間,第二次是黃燈顯示時(shí)間。在本實(shí)驗(yàn)中控制鍵盤及數(shù)碼管的芯片為8279。82
4、79有三種工作方式。鍵盤工作方式、顯示工作方式和傳感器工作方式,本實(shí)驗(yàn)采用第一、二種工作方式。8279需要連接2M的頻率輸入。通過其內(nèi)部控制字設(shè)定其分頻系數(shù)為20。定時(shí)對鍵盤進(jìn)行掃描以確定按下的鍵值。8279中的C連接端接數(shù)碼管的片選端,用于選擇數(shù)碼管的點(diǎn)亮位置。B連接端用于連接數(shù)碼管的段選,用于顯示數(shù)碼管的顯示數(shù)值。片內(nèi)總線與CPU連接,用于接收命令字以及數(shù)據(jù)。8255在此次設(shè)計(jì)中的作用是,并行輸出CPU傳來的數(shù)據(jù),用于點(diǎn)亮LED指示燈。指示燈從左至右對應(yīng)東西向: 綠 黃 紅 空 南北向:綠 黃 紅 空。按照程序中設(shè)定的顯示值,顯示紅綠燈的跳變及點(diǎn)亮效果顯示??v觀整個(gè)實(shí)驗(yàn)過程。用的主要芯片及
5、器件為:8279、8255、LED燈、數(shù)碼管、矩陣鍵盤。8279控制鍵盤及數(shù)碼管,用于設(shè)置倒計(jì)時(shí)時(shí)間以及時(shí)間顯示。8255控制LED燈,模擬紅綠黃燈的變換過程。再通過軟件定時(shí),實(shí)現(xiàn)交通燈的模擬過程。軟件部分8255A是一個(gè)可編程芯片,我們可以通過程序?qū)?255A芯片進(jìn)行編程來實(shí)現(xiàn)本次課程設(shè)計(jì)所要求實(shí)現(xiàn)的所有功能。在本次實(shí)驗(yàn)中我們需要在程序中實(shí)現(xiàn)對LED指示燈的亮滅控制。初始時(shí)將8255A口設(shè)置工作在方式0作為輸出口,通過對端口A的按位置1/復(fù)0來控制PA口對應(yīng)腳的輸出電平的高低。8279的初始化需要對可編程時(shí)鐘設(shè)置命令字、數(shù)碼管顯示及鍵盤掃描方式設(shè)置命令字。由于8279內(nèi)部所需的頻率為100K
6、HZ,而當(dāng)外部輸入的固定頻率為2MHZ時(shí),需將命令字設(shè)為20,才可分頻出100KHZ的內(nèi)部頻率。故設(shè)置的命令字為34H。對于數(shù)碼管顯示的命令字設(shè)置,將其設(shè)定為8*8字符顯示,左邊輸入,外部譯碼鍵掃描方式。則所需的命令字為00H。另外在向8279內(nèi)部RAM寫入數(shù)據(jù)之前,需要先將其清空,即向8279寫入0DEH將其內(nèi)部RAM全部置為0FFH。接著還需要有一個(gè)測試指令,測試其內(nèi)部RAM是否初始化完畢。若以上初始化都完成了,則8279的初始化則全部完成。8255及8279芯片初始化之后,即可以對其寫入數(shù)據(jù)操作。對于8255只需要把8位數(shù)據(jù)送到8255中即可。1對應(yīng)LED燈的熄滅,0對應(yīng)其點(diǎn)亮。8279
7、的數(shù)據(jù)在數(shù)碼管上顯示之前,先要將數(shù)轉(zhuǎn)換為數(shù)碼管顯示的鍵值碼。點(diǎn)亮數(shù)碼管的某一段即要使其對應(yīng)段置1即可。再利用星研提供的軟件定時(shí)軟中斷,軟件定時(shí)500MS。通過以上軟件設(shè)置即可使LED及數(shù)碼管、鍵盤得到想要的結(jié)果。2、硬件設(shè)計(jì)2.1硬件電路設(shè)計(jì)各芯片主要管腳的功能如下:8255APC0:和8253的OUT0端相與后得到黃燈信號,其中1表示亮,0表示暗PC1:表示綠燈信號,其中1表示亮,0表示暗PC2:表示紅燈信號,其中1表示亮,0表示暗PC3:和8253GATE1端相連,為時(shí)器1的門控型號PC4: 和8253GATE2端相連,為時(shí)器2的門控型號PA0PA7,PB0PB7:可接兩個(gè)8段LED顯示器
8、,用于顯示當(dāng)前等亮?xí)r間8253:定時(shí)器0:輸入信號設(shè)為10KHZ,工作在方式3,輸出為1HZ方波OUT0和PC0相與得到黃燈信號。定時(shí)器1:輸入信號為OUT0,工作站方式2,計(jì)數(shù)初值為30,實(shí)現(xiàn)延遲30S后產(chǎn)生中斷??刂谱譃椋?1010100定時(shí)器2:輸入信號為OUT0,工作站方式2,計(jì)數(shù)初值為3,實(shí)現(xiàn)延遲3S后產(chǎn)生中斷??刂谱譃椋?00101008259:采用邊沿觸發(fā),沒有級聯(lián),需要設(shè)ICW1,ICW2,ICW4,不用ICW3。硬件說明:8279是該程序?qū)崿F(xiàn)的重要的芯片,通過數(shù)碼管模擬倒計(jì)時(shí),鍵盤模擬倒計(jì)時(shí)的時(shí)間設(shè)置,8255PA口接Led指示燈指示交通燈的變換過程。依據(jù)8279的倒計(jì)時(shí)變化
9、,8255控制的led指示燈進(jìn)行相應(yīng)的變化。2.2 硬件的選擇與介紹介紹本系統(tǒng)所選用的各種芯片的引腳、功能、相應(yīng)的命令字控制格式。圖2-2 8255芯片引角圖 圖2-3 8279芯片引角圖通過本次課程設(shè)計(jì),加強(qiáng)了自己的動(dòng)手實(shí)踐能力,操作能力及解決問題的能力。并且通過查閱相關(guān)資料,學(xué)習(xí)書本及課堂中老師不曾介紹過的知識同時(shí)也學(xué)會(huì)了在動(dòng)手實(shí)踐的過程中,發(fā)現(xiàn)問題,分析問題,在最短的時(shí)間內(nèi)尋找問題的解決方案。更重要的是通過本次的課程設(shè)計(jì),我學(xué)到了關(guān)于微機(jī)原理課程的更多相關(guān)內(nèi)容,了解了DS18B20芯片的作用、內(nèi)部結(jié)構(gòu)、引腳的功能、工作方式、技術(shù)參數(shù)、如何實(shí)現(xiàn)從模擬量到數(shù)字量的轉(zhuǎn)換。更加深入認(rèn)識了8255
10、A和8279的內(nèi)部構(gòu)造、控制字、方式字的設(shè)置以及通過8255A和8279控制輸出量。在這個(gè)過程中,我也曾經(jīng)因?yàn)閷?shí)踐經(jīng)驗(yàn)的缺乏失落過。生活就是這樣,汗水預(yù)示著結(jié)果也見證著收獲。雖然這只是一次的簡單的課程設(shè)計(jì),可是平心而論,也耗費(fèi)了我們不少的心血!通過這次課程設(shè)計(jì),我想說:為完成這次課程設(shè)計(jì)我們確實(shí)很辛苦,但苦中仍有樂,和同學(xué)門這十幾天的一起工作的日子,讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,大學(xué)里一年的相處還趕不上這十來天的實(shí)習(xí),我感覺我和同學(xué)們之間的距離更加近了。這個(gè)工程確實(shí)很累,但當(dāng)我們設(shè)計(jì)成功的時(shí)候,當(dāng)我們連好線,按下按鈕,LED亮了起來,喇叭響起來了,那是我一生以來聽
11、到的最好聽的聲音,我們的心中就不免興奮,不免激動(dòng)。以前種種艱辛這時(shí)就變成了最甜美的回憶!總的來說,雖然課程設(shè)計(jì)的時(shí)間有限,但在這有限的時(shí)間里,不僅完成了作業(yè),提交了結(jié)果,也豐富了這門硬件課程的更多知識,更深入地了解了這門專業(yè)課的精髓,充分認(rèn)識理論知識對應(yīng)用技術(shù)的指導(dǎo)性作用,進(jìn)一步加強(qiáng)理論知識與應(yīng)用相結(jié)合的實(shí)踐和鍛煉。通過這次設(shè)計(jì)實(shí)踐能夠進(jìn)一步加深對專業(yè)知識和理論知識學(xué)習(xí)的認(rèn)識和理解,使自己的設(shè)計(jì)水平和對所學(xué)的知識的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。對我而言,知識上的收獲重要,精神上的豐收更加可喜。讓我知道了學(xué)無止境的道理。我們每一個(gè)人永遠(yuǎn)不能滿足于現(xiàn)有的成就,人生就像在爬山,一座
12、山峰的后面還有更高的山峰在等著你。挫折是一份財(cái)富,經(jīng)歷是一份擁有。這次課程設(shè)計(jì)必將成為我人生旅途上一個(gè)非常美好的回憶!可編程并行接口芯片8255A1)8255A的作用利用8255A將界限值和溫度值通過LED顯示出來,同時(shí)8255A的PC0與DS18B20相連,向其發(fā)出溫度檢測命令及接受溫度數(shù)據(jù),PC5和蜂鳴器及發(fā)光二極管相連,用于聲光報(bào)警。 2)8255A的功能分析8255A是可編程并行接口,內(nèi)部有3個(gè)相互獨(dú)立的8位數(shù)據(jù)端口,即A口、口和口。三個(gè)端口都可以作為輸入端口或輸出端口。口有三種工作方式:即方式、方式和方式,而口只能工作在方式或方式下,而口通常作為聯(lián)絡(luò)信號使用。8255A的工作只有當(dāng)片
13、選CS效時(shí)才能進(jìn)行。而控制邏輯端口實(shí)現(xiàn)對其他端口的控制。3)8255A的方式控制字圖2-2a 8255A的方式控制字表圖2-2b 8255A的方式控制字表 方式0的工作特點(diǎn):是這種方式通常不用聯(lián)絡(luò)信號,不使用中斷,三個(gè)通道中的每一個(gè)都有可以由程序選定作為輸入或輸出。 通道的功能為:兩個(gè)8位通道:通道A和B。兩個(gè)四位通道:通道C高4位和低四位,任何一個(gè)通道可以作輸入/輸出,輸入是不鎖存的,輸出是鎖存的,在方式0時(shí)各個(gè)通道的輸入/輸出可有16種不同的組合。8255A的置位/控制字表:D7 D6 D5 D4 D3 D2 D1 D00XXX寫入位編碼寫入內(nèi)容寫入位 編碼 0寫入0 D0-D7 000-
14、111 1寫入1可編程并行接口芯片82791)8279的作用在本設(shè)計(jì)中用8279芯片控制鍵盤輸入和LED顯示。2)8279的功能分析8279A芯片是一種通用的可編程序的鍵盤/顯示接口器件,單個(gè)芯片就能完成鍵盤輸入和LED顯示控制兩種功能。可與任何8位機(jī)接口。8279A芯片包括鍵盤輸入和顯示輸出兩個(gè)部分。若采用8279作為鍵盤/顯示器接口,則可以實(shí)現(xiàn)對鍵盤、顯示器自動(dòng)掃描,8279主要是管理鍵盤輸入和顯示器輸出的。8279可編程鍵盤顯示器接口芯片具有動(dòng)態(tài)顯示驅(qū)動(dòng)電路簡單、不占用CPU 的時(shí)間、可自動(dòng)進(jìn)行鍵盤掃描、與計(jì)算機(jī)接口方便、編程容易、系統(tǒng)靈活等特點(diǎn)當(dāng)今已成為設(shè)計(jì)計(jì)算機(jī)應(yīng)用系統(tǒng),特別是實(shí)時(shí)性
15、較高的測控系統(tǒng)的首選器件之一。圖2-2c 8279的內(nèi)部框圖圖中,IRQ:中斷請求輸出線,DB0DB7:雙向數(shù)據(jù)總路線(傳送命令、數(shù)據(jù)、狀態(tài)),、:讀寫控制輸入端,RESET:復(fù)位輸入端,CLK:時(shí)鐘輸入端,:片選,C和/D(A0):片內(nèi)寄存器選址,OUTA0A1、OUTB0B3:8位顯示輸出端,:熄滅顯示輸出端,SL0SL3:公用掃描輸出線,RL0RL7:鍵盤回饋輸入線,SHIFT:抵擋鍵輸入線,CNTL/STB:控制/選通輸入線。另外,8279的鍵盤接口部分內(nèi)部有一個(gè)8×8位先進(jìn)先出的堆棧(FIFO),用來存放鍵盤輸入代碼,顯示器接口部分內(nèi)部有一個(gè)16×8位顯示RAM,
16、用來顯示段數(shù)據(jù),能為16位LED顯示器(或其它顯示器)提供多路掃描接口。3)8279的引腳信號和功能8279可編程鍵盤顯示器接口芯片具有動(dòng)態(tài)顯示驅(qū)動(dòng)電路,不占用CPU 的時(shí)間、可自動(dòng)進(jìn)行鍵盤掃描、與計(jì)算機(jī)接口方便、編程容易、系統(tǒng)靈活等特點(diǎn)。 8279A是可編程的鍵盤/顯示接口芯片。它既具有按鍵處理功能,又具有自動(dòng)顯示功能,在單片機(jī)系統(tǒng)中應(yīng)用很廣泛。8279A內(nèi)部有鍵盤 FIFO (先進(jìn)先出堆棧)/傳感器,雙重功能的 8×8=64B RAM,鍵盤控制部分可控制 8×8=64 個(gè)按鍵或 8×8 陣列方式的傳感器。該芯片能自動(dòng)消抖并具有雙鍵鎖定保護(hù)功能。顯示 RAM容量
17、為 16×8,即顯示器最大配置可達(dá) 16 位 LED數(shù)碼顯示。4)8279的命令字及其格式8279三種工作方式:鍵盤工作方式、顯示工作方式和傳感器工作方式。鍵盤工作方式:雙鍵互鎖和N鍵輪回。雙鍵互鎖是指當(dāng)有兩個(gè)以上按鍵同時(shí)按下時(shí),只能識別最后一個(gè)被釋放的按鍵,并把其鍵值送入內(nèi)部FIFO RAM中。N鍵輪回是指當(dāng)有多個(gè)按鍵同時(shí)按下時(shí),所有按鍵的鍵值均可按掃描順序依次存入FIFO RAM中。顯示工作方式:是指CPU輸入至8279內(nèi)部FIFO RAM的數(shù)據(jù)的輸出格式,有8個(gè)字符左端入口顯示、16個(gè)字符左端入口顯示、8個(gè)字符右端入口顯示、16個(gè)字符右端入口顯示四種方式。傳感器方式:是指掃描傳
18、感器陣列時(shí),一旦發(fā)現(xiàn)傳感器的狀態(tài)發(fā)生變化就置位INT向CPU申請中斷。選擇不同的工作方式均是通過CPU對8279送入命令來進(jìn)行控制。8279共有8種命令,命令寄存器為8位,其中D7D5為命令特征位,D4D0為命令的控制位。CPU對8279寫入的命令數(shù)據(jù)為命令字,讀出的數(shù)據(jù)為狀態(tài)字。8279共有八條命令,其功能及命令字格式分述如下。(1)鍵盤/顯示方式設(shè)置命令字命令格式: D7 D6 D5 D4 D3 D2 D1 D0000DDKKK其中:D7、D6、D5=000為方式設(shè)置命令特征位。DD(D4、D3):用來設(shè)定顯示方式,如表1-2所示。表2-1 顯示方式選擇D4D3顯示方式008個(gè)字符顯示,左
19、端入口0116個(gè)字符顯示,左端入口108個(gè)字符顯示,右端入口1016個(gè)字符顯示,右入口所謂左入口 ,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個(gè)向右順序排列;所謂右入口,則是顯示位置從最右一位(最低位)開始,以后逐次輸入顯示字符時(shí),已有的顯示字符依次向左移動(dòng)。KKK(D2、D1、D0):用來設(shè)定七種鍵盤/顯示掃描方式,如表2-2所示。表2-2 鍵盤/顯示掃描方式D2D1D0鍵盤/顯示掃描方式000編碼掃描鍵盤,雙鍵鎖定001譯碼掃描鍵盤,雙鍵鎖定010編碼掃描鍵盤,N鍵輪回011譯碼掃描鍵盤,N鍵輪回100編碼掃描傳感器矩陣101譯碼掃描傳感器矩陣110選通輸入,編碼顯示掃描
20、111選通輸入,譯碼顯示掃描(2)時(shí)鐘編程命令命令格式 : D7 D6 D5 D4 D3 D2 D1 D0001PPPPP其中:D7、D6、D5=001為時(shí)鐘命令特征位。PPPPP(D4、D3、D2、D1、D0)用來設(shè)定外部輸入CLK時(shí)鐘脈沖的分頻系數(shù)N。N取值范圍為231。如CLK輸入時(shí)鐘頻率為2MHZ,PPPPP應(yīng)被置為10100(N=20),才可獲得8279內(nèi)部要求的100KHZ的時(shí)鐘頻率。(3)讀FIFO/傳感器RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0010AIXAAA其中:D7、D6、D5=010為讀FIFO/傳感器RAM命令特征位。該命令字只在傳感器方式
21、時(shí)使用。在CPU讀傳感器RAM之前,必須用這條命令來設(shè)定所讀傳感器RAM中的地址。AAA(D2、D1、D0)為傳感器RAM中的八個(gè)字節(jié)地址。AI(D4)為自動(dòng)增量特征位。當(dāng)AI=1時(shí),每次讀出傳感器RAM后地址自動(dòng)加1使地址指向下一個(gè)存儲(chǔ)單元。這樣,下一個(gè)數(shù)據(jù)便從下一個(gè)地址讀出,而不必重新設(shè)置讀FIFO/傳感器RAM命令。在鍵盤工作方式中,由于讀出操作嚴(yán)格按照先入先出順序,因此,不需使用這條命令。(4)讀顯示RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 011AIAAAA其中:D7、D6、D5=011為讀顯示RAM命令字的特征位。該命令字用來設(shè)定將要讀出的顯示RAM地址
22、。AAAA(D3、D2、D1、D0)用來尋址顯示RAM中的存儲(chǔ)單元。由于位顯示RAM中有16個(gè)字節(jié)單元,故需要4位尋址。AI(D4)為自動(dòng)增量特征位。AI=1時(shí),每次讀出后地址自動(dòng)加1,指向下一地址。(5)寫顯示RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 100AIAAAA其中:D7、D6、D5=100為寫顯示RAM命令字的特征位。在寫顯示RAM之前用這個(gè)命令字來設(shè)定將要寫入的顯示RAM地址。AAAA(D3、D2、D1、D0)為將要寫入的顯示RAM中的存儲(chǔ)單元地址。AI(D4)為自動(dòng)增量特征位。AI=1時(shí),每次寫入后地址自動(dòng)加1,指向下一次寫入地址。(6)顯示禁止寫入
23、/消隱命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 101XIW/AIW/BBL/ABL/B其中:D7、D6、D5=101為顯示禁止寫入/消隱命令特征位。IW/A、IW/ B(D3、D2)為A、B組顯示RAM寫入屏蔽位。當(dāng)A組的屏蔽位D3=1時(shí),A組的顯示RAM禁止寫入。因此,從CPU寫入顯示器RAM數(shù)據(jù)時(shí),不會(huì)影響A的顯示。這種情況通常在采用雙4位顯示器時(shí)使用。因?yàn)閮蓚€(gè)四位顯示器是相互獨(dú)立的。為了給其中一個(gè)四位顯示器輸入數(shù)據(jù)而又不影響另一個(gè)四位顯示器,因此必須對另一組的輸入實(shí)行屏蔽。BL/A、BL/ B(D1、D0)為消隱設(shè)置位。用于對兩組顯示輸出消隱。若BL=1,對應(yīng)組的
24、顯示輸出被消隱。當(dāng)BL=0,則恢復(fù)顯示。(7)清除命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 110CDCDCDCFCA其中:D7、D6、D5=110為清除命令特征位。表2-3 顯示RAM清除方式D4D3D2清除方式10×將全部顯示RAM清為00H110將全部顯示RAM置為20H,A組輸出0010,B組輸出0000111將全部顯示RAM置為FFH0××D0=0不清除,D0=1按上述方法清除CF(D1)用來置空FIFO存儲(chǔ)器,當(dāng)CF=1時(shí),執(zhí)行清除命令后,F(xiàn)IFO RAM被置空,使INT輸出線復(fù)位。同時(shí),傳感器RAM的讀出地址也被置為0。CA (
25、D0)為總清的特征位。它兼有CD和CF的聯(lián)合效能。在CF =1時(shí),對顯示的清除方式由D3、D2的編碼決定。顯示RAM清除時(shí)間約需160us。在此期間狀態(tài)字的最高位Du=1,表示顯示無效。CPU不能向顯示RAM寫入數(shù)據(jù)。(8)結(jié)束中斷/錯(cuò)誤方式設(shè)置命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 111EXXXX其中:D7、D6、D5=111為該命令的特征位。此命令有兩種不同的作用。作為結(jié)束中斷命令。在傳感器工作方式中使用。每當(dāng)傳感器狀態(tài)出現(xiàn)變化時(shí),掃描檢測電路就將其狀態(tài)寫入傳感器RAM,并啟動(dòng)中斷邏輯,使INT變高,向CPU 請求中斷,并且禁止寫入傳感器RAM。此時(shí),若傳感器RA
26、M 讀出地址的自動(dòng)遞增特性沒有置位(AI=0),則中斷請求INT在CPU第一次從傳感器RAM讀出數(shù)據(jù)時(shí)就被清除。若自動(dòng)遞增特征已置位(AI=1),則CPU對傳感器RAM 的讀出并不能清除INT,而必須通過給8279寫入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令才能使INT變低。因此,在傳感器工作方式中,此命令用來結(jié)束傳感器RAM的中斷請求。作為特定錯(cuò)誤方式設(shè)置命令。在8279已被設(shè)定為鍵盤掃描N鍵輪回方式以后,如果CPU給8279又寫入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令(E=1),則8279將以一種特定的錯(cuò)誤方式工作。這種方式的特點(diǎn)是:在8279的消抖周期內(nèi),如果發(fā)現(xiàn)多個(gè)按鍵同時(shí)按下,則FIFO狀態(tài)字中的錯(cuò)誤特征位S
27、/E將置1,并產(chǎn)生中斷請求信號和禁止寫入FIFO RAM。上述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確定,輸入8279后能自動(dòng)尋址相應(yīng)的命令寄存器。因此,寫入命令字時(shí)唯一的要求是使數(shù)據(jù)選擇信號A0 =1。5)8279的狀態(tài)字及其格式 8279的FIFO狀態(tài)字,主要用于鍵盤和選通工作方式,以指示FIFO RAM中的字符數(shù)和有無錯(cuò)誤發(fā)生。其格式為: D7 D6 D5 D4 D3 D2 D1 D0 DUS/EOUFNNN其中:Du(D7)為顯示無效特征位。當(dāng) Du=1表示顯示無效。當(dāng)顯示RAM由于清除顯示或全清命令尚未完成時(shí),Du=1,此時(shí)不能對顯示RAM寫入。S/E(D6)為傳
28、感器信號結(jié)束/錯(cuò)誤特征位。該特征位在讀出FIFO 狀態(tài)字時(shí)被讀出。而在執(zhí)行CF =1的清除命令時(shí)被復(fù)位。當(dāng)8279工作在傳感器工作方式時(shí),若S/E=1,表示傳感器的最后一個(gè)傳感器信號已進(jìn)入傳感器RAM;而當(dāng)8279工作在特殊錯(cuò)誤方式時(shí),若S/E=1則表示出現(xiàn)了多鍵同時(shí)按下錯(cuò)誤。O、U(D5、D4)為超出、不足錯(cuò)誤特征位。對FIFO RAM 的操作可能出現(xiàn)兩種錯(cuò)誤:超出或不足。當(dāng)FIFO RAM 已經(jīng)充滿時(shí),其它的鍵盤數(shù)據(jù)還企圖寫入FIFO RAM ,則出現(xiàn)超出錯(cuò)誤,超出錯(cuò)誤特征位O(D5)置1;當(dāng)FIFO RAM已經(jīng)置空時(shí),CPU還企圖讀出,則出現(xiàn)不足錯(cuò)誤,不足錯(cuò)誤特征位U(D4)置1。F(D
29、3)表示FIFO RAM中是否已滿標(biāo)志,若F=1表示已滿。NNN(D2、D1、D0)表示FIFO RAM中的字符數(shù)據(jù)個(gè)數(shù)。6)數(shù)據(jù)輸入/輸出格式對8279輸入/輸出數(shù)據(jù)不僅要先確定數(shù)據(jù)地址口,而且數(shù)據(jù)存放也要按一定格式,其格式在鍵盤和傳感器方式有所不同。(1) 鍵盤掃描方式數(shù)據(jù)輸入格式鍵盤的行號、列號及控制鍵格式如下:圖2-3 鍵盤控制鍵格式控制鍵CNTL、SHIFT為單獨(dú)的開關(guān)鍵。CNTL與其它鍵連用作特殊命令鍵,SHIFT可作上、下?lián)蹩刂奇I。(2)傳感器方式數(shù)據(jù)輸入格式此種方式8位輸入數(shù)據(jù)為RL0RL7的狀態(tài)。格式如下:D7 D6 D5 D4 D3 D2 D1 D0RL7RL6RL5RL4
30、RL3RL2RL1RL0七段LED顯示器1)七段LED顯示器的作用本次設(shè)計(jì)需要用到LED顯示器顯示預(yù)設(shè)紅綠燈的定時(shí)及綠燈閃爍的定時(shí)值。2)七段LED顯示器功能分析LED顯示器有共陽極和共陰極兩類。其中共陰極原理圖如下:圖2-4 LED顯示器原理圖七段LED顯示器可以控制在哪幾個(gè)數(shù)位上,哪幾個(gè)發(fā)光二極管亮,從而顯示數(shù)字。其工作原理:如果發(fā)光二極管共陽極,則輸入為0時(shí)亮,為1時(shí)不亮,反之如果發(fā)光共陰極,則輸入1時(shí)亮,0時(shí)不亮。發(fā)光二極管時(shí)一種外加電壓超過額定電壓時(shí)發(fā)生擊穿,并因此能產(chǎn)生可發(fā)光的器件,數(shù)碼顯示器通常由多個(gè)發(fā)光二極管來組成七段或八段筆畫顯示器,當(dāng)段組合發(fā)光時(shí),便會(huì)顯示某一個(gè)數(shù)碼管或字符
31、,七段代碼的各位用作ag和DP的輸入3)七段LED顯示器技術(shù)參數(shù) 表2-4 LED顯示的技術(shù)參數(shù)PCWLFVrIrIfp對應(yīng)變量散射顏色BT235702551.52.5200SEL-10紅BT1441004050.52.5565綠BT1341004050.52.5585藍(lán)主要參數(shù):此時(shí)的驅(qū)動(dòng)電流為25 mA。4)七段LED顯示器內(nèi)部結(jié)構(gòu) 圖2-5a LED顯示器內(nèi)部結(jié)構(gòu)5)七段LED顯示器真值表表2-5 LED字型顯示原理字符二進(jìn)制輸入A B C D字型碼a b c d e f g dpOX01234567890 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 1
32、0 1 1 00 1 1 11 0 0 01 0 0 11 1 1 1 1 1 0 00 1 1 0 0 0 0 01 1 0 1 1 0 1 01 1 1 1 0 0 1 00 1 1 0 0 1 1 01 0 1 1 0 1 1 00 0 1 1 1 1 1 01 1 1 0 0 0 0 01 1 1 1 1 1 1 01 1 1 0 0 1 1 03f065b4f666d7d077f6f10/a11/b12/c13/d14/e15/f1 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 11 1 1 0 1 1 1 00 0 1 1 1 1 1 01 0 0
33、1 1 1 0 00 1 1 1 1 0 1 01 0 0 1 1 1 1 01 0 0 0 1 1 1 0777c395e7971選擇器件小鍵盤1)小鍵盤在本設(shè)計(jì)中的作用本設(shè)計(jì)中,小鍵盤用于輸入十進(jìn)制數(shù)字。2)小鍵盤的功能分析通常使用的鍵盤是矩陣結(jié)構(gòu)的。對于4×4=16個(gè)鍵的鍵盤,采用矩陣方式只要用8條引線和2個(gè)8位端口便完成鍵盤的連接。如圖,這個(gè)矩陣分為4行4列,如果鍵5按下,則第1行和第1列線接通而形成通路。如果第1行線接低電平,則鍵5的閉合,會(huì)使第1列線也輸出低電平。矩陣式鍵盤工作時(shí),就是按行線和列線的電平來識別閉合鍵的。 圖2-5b 4×4鍵盤矩陣圖行掃描法識別按
34、鍵的原理如下:先使第0行接低電平,其余行為高電平,然后看第行是否有鍵閉合。這是通過檢查列線電位來實(shí)現(xiàn)的,即在第0行接低電平時(shí),看是否有哪條列線變成低電平。如果有某列線變?yōu)榈碗娖?,則表示第0行和此列線相交位置上的鍵被按下;如果沒有任何一條列線為低電平,則說明第0行沒有任何鍵被按下。此后,再將第1行接低電平,檢測是否有變?yōu)榈碗娖降牧芯€。如此重復(fù)地掃描,直到最后一行。在掃描過程中,當(dāng)發(fā)現(xiàn)某一行有鍵閉合時(shí),也就是列線輸入中有一位為0時(shí),便退出掃描,通過組合行線和列線即可識別此刻按下的是哪一鍵。實(shí)際應(yīng)用中,一般先快速檢查鍵盤中是否有鍵按下,然后再確定按鍵的具體位置。為此,先使所有行線為低,然后檢查列線。
35、這時(shí)如果列線有一位為0,則說明必有鍵被按下, 采用掃描法可進(jìn)一步確定按鍵的具體位置。2.3原理連接圖及說明圖 2-1表2-1 連線說明G5區(qū):A、B、C、DE5區(qū):A、B、C、DG5區(qū):CSES-PCI:A0G5區(qū):INTA3區(qū):CS5G5區(qū):CLKB2區(qū):2MB4區(qū):JP56G6區(qū):DS32B4區(qū):A0,A1ES-PCI:A0,A1B4區(qū):CSG6區(qū):CS13、軟件設(shè)計(jì)3.1系統(tǒng)流程圖如下圖所示: 初始化板卡子程序 初始化8255和8279 延遲從鍵盤輸入紅綠燈、及黃燈定時(shí)時(shí)間數(shù)碼管顯示倒計(jì)時(shí)值 延時(shí)等待初始狀態(tài),東西綠燈亮,南北紅燈亮 倒計(jì)時(shí)30S東西綠燈閃爍,南北紅燈東西黃燈,南北紅燈
36、倒計(jì)時(shí)5S東西綠燈閃爍,南北紅燈倒計(jì)時(shí)30S結(jié) 束3.2源程序清單:源程序(帶注釋):;*; 8279 鍵盤顯示器接口芯片;1.查詢控制方式 2.輸入時(shí)鐘2MHZ 3.8279內(nèi)部20分頻(100KHZ) ;4.掃描計(jì)數(shù)器采用編碼工作方式(通過外部138譯碼);5.顯示按鍵值,第九次按鍵,清除顯示;8279 查詢工作方式.MODELTINYPCIBAR3EQU1CH;8位I/O空間基地址(它就是實(shí)驗(yàn)儀的基地址,也為DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_IDEQU10EBH;廠商ID號Device_IDEQU8376;設(shè)備ID號.STACK100.DA
37、TAIO_Bit8_BaseAddress DW?msg0DB'BIOS不支持訪問PCI $'msg1DB'找不到Star PCI9052板卡 $'msg2DB'讀8位I/O空間基地址時(shí)出錯(cuò)$'msg3DB'請?jiān)O(shè)置紅綠燈時(shí)間'KEYCOUNT DB ?LED_TABDB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EHCMD_8279 DW 00B1H;8279命令字、狀態(tài)字地址DATA_8279 DW 00B0H;8279讀寫數(shù)據(jù)
38、口的地址COM_ADDDW00F3H;控制口偏移量PA_ADDDW00F0H;PA口偏移量PB_ADDDW00F1H;PB口偏移量PC_ADDDW00F2H;PC口偏移量LED_DataDB01111101B;東西綠燈,南北紅燈DB11111101B;東西綠燈閃爍,南北紅燈DB10111101B;東西黃燈亮,南北紅燈DB11010111B;東西紅燈,南北綠燈DB11011111B;東西紅燈,南北綠燈閃爍DB11011011B;東西紅燈,南北黃燈亮COUNTDB0;用于記錄設(shè)置時(shí)間的位數(shù),最多兩位TIMEDB2 DUP (0);用于記錄設(shè)置的時(shí)間值TENDB10;除數(shù)TEMPDB0;暫存鍵值SE
39、LECTDB0;用于選擇數(shù)碼管.CODESTART:MOVAX,DATAMOVDS,AXNOPCALLInitPCICALLModifyAddress;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實(shí)地址CALLINIT8279;初始化8279子程序CALLINIT8255CALLInitTimeLEABX,LED_DataSTART1:MOVDX,PA_ADDMOVAL,0XLAT ;從存儲(chǔ)單元bx+al中取一個(gè)字節(jié)送到al寄存器OUTDX,AL;東西綠燈,南北紅燈MOVAH, 0MOV AL,TIME;延時(shí)5SCALLDISPLAY1;調(diào)用數(shù)碼管顯示子程序MOVCH,0MOVCL,TIME+1
40、START2:CALLDISPLAY2;調(diào)用數(shù)碼管顯示子程序MOVAL,1XLATOUTDX,AL;東西綠燈閃爍,南北紅燈CALLDL500ms ;延遲500msMOVAL,0XLAT OUTDX,AL ;東西綠燈,南北紅燈CALLDL500ms ;延遲500msLOOPSTART2MOVAL,2;東西黃燈亮,南北紅燈XLATOUTDX,ALCALLDL3S ;延遲3S MOVAL,3;東西紅燈,南北綠燈XLATOUTDX,ALMOVAH,0MOV AL,TIME;延時(shí)5SCALLDISPLAY1;調(diào)用數(shù)碼管顯示子程序MOVCH,0MOVCL,TIME+1START3:CALLDISPLAY2
41、;調(diào)用數(shù)碼管顯示子程序MOVAL,4;東西紅燈,南北綠燈閃爍XLATOUTDX,ALCALLDL500ms ;延遲500msMOVAL,3XLATOUTDX,AL ;東西紅燈,南北綠燈CALLDL500ms;延遲500msLOOPSTART3MOVAL,5;東西紅燈,南北黃燈亮XLATOUTDX,ALCALLDL3S ;延遲3S MOVAH,06HMOVDL,0FFHINT21H ;字符輸出,如果之前有鍵按下,零標(biāo)志=0清除,al=鍵值;如果之前沒有鍵按下,零標(biāo)志=1JZSTART1JMPSTART1JMPExitDISPLAY1PROCNEARPUSHDXPUSHBXCALLCLEARDIV
42、TENLOOP1:MOVDI,AX;AH中存儲(chǔ)的是余數(shù),AL中存儲(chǔ)的是結(jié)果,先保留AX值MOVDX,CMD_8279;設(shè)置點(diǎn)亮的數(shù)碼管位置MOVAL,92HOUTDX,ALMOVDX,DATA_8279;數(shù)碼管顯示倒計(jì)時(shí)值LEABX,LED_TABMOVAX,DIXLAT ;從存儲(chǔ)單元bx+al中取一個(gè)字節(jié)送到al寄存器OUTDX,ALMOVAX,DI;寫一次計(jì)時(shí)值XCHGAL,AHXLATOUTDX,ALMOVAX,DICMPAH,0JNZNEXT0;AH未計(jì)時(shí)完成跳轉(zhuǎn)至NEXT0處繼續(xù)倒計(jì)時(shí)CMPAL,0JZEXIT0;AL計(jì)時(shí)完成跳轉(zhuǎn)至EXIT0倒計(jì)時(shí)結(jié)束MOVAH,10;AH是余數(shù),余
43、數(shù)減到0之后需要重新將其置為10,原因是余數(shù)與商的是10倍的關(guān)系。;如12/10=1余2AH中的余數(shù)2減到0后需要向AL中的商借位,一位即為AH中的=10DECALNEXT0:DECAHCALLDL1SLOOPLOOP1EXIT0:POPBXPOPDXRETDISPLAY1ENDPDISPLAY2PROCNEARPUSHDXPUSHBXCALLCLEARMOVAX, CXDIVTENMOVDI, AXMOVDX, CMD_8279;顯示數(shù)碼管點(diǎn)亮位置MOVAL, 92HOUTDX, ALMOVDX, DATA_8279LEABX, LED_TABMOVAX, DIXLATOUTDX, AL;向
44、數(shù)碼管寫AH中內(nèi)容XCHGAL, AHXLATOUTDX, AL;向數(shù)碼管寫AL中內(nèi)容EXIT1:POPBXPOPDXRETDISPLAY2ENDP;8255初始化INIT8255PROC NEARMOVDX,COM_ADDMOVAL,80H;PA、PB、PC為基本輸出模式1=方式字標(biāo)志位,00=A口0方式,0=A口輸出,0=C口輸出,0=B口0方式,00=B口和C口輸出OUTDX,ALMOVDX,PA_ADD;燈全熄滅MOVAL,0FFHOUTDX,ALINIT8255ENDP;8279初始化INIT8279 PROC NEAR MOV DX,CMD_8279;CMD_8279為寫命令地址、
45、讀狀地址 MOV AL,34H ;可編程時(shí)鐘設(shè)置,設(shè)置分頻系數(shù)(20分頻) OUT DX,AL MOV AL,0;8*8字符顯示,左邊輸入,外部譯碼鍵掃描方式 OUT DX,AL CALL INIT8279_1 RETINIT8279 ENDPINIT8279_1 PROC NEAR CALL CLEAR;清顯示 MOV AL,90H;從第一個(gè)數(shù)碼管開始移位顯示 OUT DX,AL RETINIT8279_1 ENDPCLEAR PROC NEARPUSHDXPUSHAX MOV DX,CMD_8279 MOV AL,0DEH ; 清除命令 OUT DX,ALWAIT1: IN AL,DX T
46、EST AL,80H JNZ WAIT1; 顯示RAM清除完畢嗎? POPAX POPDX RETCLEAR ENDPDL500msPROCNEARPUSHAXPUSHDXMOVDX,500;延時(shí)500msMOVAH,0FFH;星研公司提供的軟中斷INT21HPOPDXPOPAXRETDL500msENDPDL1SPROCNEARPUSHAXPUSHDXMOVDX,950;延時(shí)500msMOVAH,0FFH;星研公司提供的軟中斷INT21HPOPDXPOPAXRETDL1SENDPDL3SPROCNEARPUSHCXMOVCX,6DL3S1:CALLDL500msLOOPDL3S1POPCXRETENDPDL5SPROCNEARPUSHCXMOVCX,10DL5S1:CALLDL500msLOOPDL5S1POPCXRETENDPInitTimePROCNEARLEADX, msg3;輸出提示信息MOVAH, 09HINT21HMOVCOUNT, 0;COUNT對應(yīng)的是按鍵的值比如按下16則COUNT值為2,此處限定時(shí)間設(shè)定最多為兩位數(shù)MOVDI, 0;DI值對應(yīng)需要設(shè)定的時(shí)間初值的次數(shù),如只設(shè)置紅綠燈時(shí)間
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 審計(jì)年度工作總結(jié)報(bào)告大全
- 2025承攬加工合同樣式
- 管材陣列渦流在線檢測系統(tǒng)
- 2024年深海海洋資源勘探開發(fā)合同
- DB45T 2543-2022 富硒農(nóng)產(chǎn)品產(chǎn)地環(huán)境評價(jià)
- 2025邀請招標(biāo)施工合同
- 2021鋼鐵行業(yè)個(gè)人年終總結(jié)
- 新質(zhì)生產(chǎn)力對區(qū)域經(jīng)濟(jì)韌性的影響效應(yīng)研究
- 計(jì)算機(jī)畢業(yè)實(shí)習(xí)報(bào)告錦集6篇
- 買賣房協(xié)議書集錦十篇
- QC080000培訓(xùn)講義課件
- 科技興國未來有我主題班會(huì)教學(xué)設(shè)計(jì)
- 房子管護(hù)合同范例
- 光伏施工安全措施
- 2024-2025華為ICT大賽(網(wǎng)絡(luò)賽道)高頻備考試題庫500題(含詳解)
- 汽車智能制造技術(shù)課件
- 江蘇省揚(yáng)州市邗江中學(xué)2025屆物理高一第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 2024年事業(yè)單位招聘考試計(jì)算機(jī)基礎(chǔ)知識復(fù)習(xí)題庫及答案(共900題)
- 戶外施工移動(dòng)發(fā)電機(jī)臨時(shí)用電方案
- 四川省涼山州2024年中考數(shù)學(xué)適應(yīng)性考試試題
- 《鉸鏈四桿機(jī)構(gòu)》(課件)
評論
0/150
提交評論