版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、合肥學(xué)院計算機(jī)科學(xué)與技術(shù)系微機(jī)原理與接口技術(shù)課程設(shè)計課程設(shè)計科目交通燈學(xué)生姓名陳昱宇學(xué)號1004014038班級10級計算機(jī)科技2班指導(dǎo)教師高玲玲、肖連軍2013 01 141、題意分析與解決方案1.1 題意需求分析根據(jù)以上題目所給的提示,我們對其進(jìn)行解析:首先假設(shè)有一個十字路口,1、3為南北方向,2、4為東西方向,初始為四個路口的紅燈全亮,之后,1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車; 延時一段時間后,1、3路口的綠燈熄滅,而1、3路口的黃燈開始閃爍,閃爍若干次以后,1、3 路口紅燈亮, 而同時2、4路口的綠燈亮,2、4路口方向通車;延時一段時間后,2、4 路口的綠燈熄滅
2、,而黃燈開始閃爍,閃爍若干次以后,再切換到1、3路口方向,之后重復(fù)上述過程。從題意需求分析本課程設(shè)計需要解決的問題如下:(1) 怎樣定時?是采用硬件定時還是軟件定時?(2) 怎么控制交通燈的紅、綠、黃切換?(3) 怎樣模擬出東西、南北向信號燈倒計時的的效果?(4) 怎樣更加具有使用價值,具有使用的靈活性?1.2解決方法及思路硬件部分本課程設(shè)計的具體要求如下:(1) 通過8255A控制信號燈的輸出顯示(2) 通過8279A實現(xiàn)數(shù)碼管的倒計時顯示(3) 通過軟件延時實現(xiàn)交通燈的1S定時效果(4) 通過8279的鍵盤控制實現(xiàn)交通燈的初始時間設(shè)置本實驗需要人為操作,故需要按鍵,主要用到的硬件是8279
3、、8255以及矩陣鍵盤、數(shù)碼管、LED顯示燈。我們將LED指示燈接在8255A的PA口,設(shè)置8255A的端口全為輸出。利用軟件進(jìn)行定時,通過星研提供的軟件延時DELAY500MS,進(jìn)行0.5S的定時。由于本實驗需要設(shè)置初始時間值,也就是需要設(shè)定紅綠燈的30S延時和黃燈的5S延時或其它時間。故在上電后需要通過鍵盤設(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è)定時規(guī)定最大值是兩位數(shù),需要依次設(shè)定兩次,第一次是紅綠燈顯示時間,第二次是黃燈顯示時間。在本實驗中控制鍵盤及數(shù)碼管的芯片為8279。82
4、79有三種工作方式。鍵盤工作方式、顯示工作方式和傳感器工作方式,本實驗采用第一、二種工作方式。8279需要連接2M的頻率輸入。通過其內(nèi)部控制字設(shè)定其分頻系數(shù)為20。定時對鍵盤進(jìn)行掃描以確定按下的鍵值。8279中的C連接端接數(shù)碼管的片選端,用于選擇數(shù)碼管的點亮位置。B連接端用于連接數(shù)碼管的段選,用于顯示數(shù)碼管的顯示數(shù)值。片內(nèi)總線與CPU連接,用于接收命令字以及數(shù)據(jù)。8255在此次設(shè)計中的作用是,并行輸出CPU傳來的數(shù)據(jù),用于點亮LED指示燈。指示燈從左至右對應(yīng)東西向: 綠 黃 紅 空 南北向:綠 黃 紅 空。按照程序中設(shè)定的顯示值,顯示紅綠燈的跳變及點亮效果顯示??v觀整個實驗過程。用的主要芯片及
5、器件為:8279、8255、LED燈、數(shù)碼管、矩陣鍵盤。8279控制鍵盤及數(shù)碼管,用于設(shè)置倒計時時間以及時間顯示。8255控制LED燈,模擬紅綠黃燈的變換過程。再通過軟件定時,實現(xiàn)交通燈的模擬過程。軟件部分8255A是一個可編程芯片,我們可以通過程序?qū)?255A芯片進(jìn)行編程來實現(xiàn)本次課程設(shè)計所要求實現(xiàn)的所有功能。在本次實驗中我們需要在程序中實現(xiàn)對LED指示燈的亮滅控制。初始時將8255A口設(shè)置工作在方式0作為輸出口,通過對端口A的按位置1/復(fù)0來控制PA口對應(yīng)腳的輸出電平的高低。8279的初始化需要對可編程時鐘設(shè)置命令字、數(shù)碼管顯示及鍵盤掃描方式設(shè)置命令字。由于8279內(nèi)部所需的頻率為100K
6、HZ,而當(dāng)外部輸入的固定頻率為2MHZ時,需將命令字設(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。接著還需要有一個測試指令,測試其內(nèi)部RAM是否初始化完畢。若以上初始化都完成了,則8279的初始化則全部完成。8255及8279芯片初始化之后,即可以對其寫入數(shù)據(jù)操作。對于8255只需要把8位數(shù)據(jù)送到8255中即可。1對應(yīng)LED燈的熄滅,0對應(yīng)其點亮。8279
7、的數(shù)據(jù)在數(shù)碼管上顯示之前,先要將數(shù)轉(zhuǎn)換為數(shù)碼管顯示的鍵值碼。點亮數(shù)碼管的某一段即要使其對應(yīng)段置1即可。再利用星研提供的軟件定時軟中斷,軟件定時500MS。通過以上軟件設(shè)置即可使LED及數(shù)碼管、鍵盤得到想要的結(jié)果。2、硬件設(shè)計2.1硬件電路設(shè)計各芯片主要管腳的功能如下:8255APC0:和8253的OUT0端相與后得到黃燈信號,其中1表示亮,0表示暗PC1:表示綠燈信號,其中1表示亮,0表示暗PC2:表示紅燈信號,其中1表示亮,0表示暗PC3:和8253GATE1端相連,為時器1的門控型號PC4: 和8253GATE2端相連,為時器2的門控型號PA0PA7,PB0PB7:可接兩個8段LED顯示器
8、,用于顯示當(dāng)前等亮?xí)r間8253:定時器0:輸入信號設(shè)為10KHZ,工作在方式3,輸出為1HZ方波OUT0和PC0相與得到黃燈信號。定時器1:輸入信號為OUT0,工作站方式2,計數(shù)初值為30,實現(xiàn)延遲30S后產(chǎn)生中斷??刂谱譃椋?1010100定時器2:輸入信號為OUT0,工作站方式2,計數(shù)初值為3,實現(xiàn)延遲3S后產(chǎn)生中斷??刂谱譃椋?00101008259:采用邊沿觸發(fā),沒有級聯(lián),需要設(shè)ICW1,ICW2,ICW4,不用ICW3。硬件說明:8279是該程序?qū)崿F(xiàn)的重要的芯片,通過數(shù)碼管模擬倒計時,鍵盤模擬倒計時的時間設(shè)置,8255PA口接Led指示燈指示交通燈的變換過程。依據(jù)8279的倒計時變化
9、,8255控制的led指示燈進(jìn)行相應(yīng)的變化。2.2 硬件的選擇與介紹介紹本系統(tǒng)所選用的各種芯片的引腳、功能、相應(yīng)的命令字控制格式。圖2-2 8255芯片引角圖 圖2-3 8279芯片引角圖通過本次課程設(shè)計,加強(qiáng)了自己的動手實踐能力,操作能力及解決問題的能力。并且通過查閱相關(guān)資料,學(xué)習(xí)書本及課堂中老師不曾介紹過的知識同時也學(xué)會了在動手實踐的過程中,發(fā)現(xiàn)問題,分析問題,在最短的時間內(nèi)尋找問題的解決方案。更重要的是通過本次的課程設(shè)計,我學(xué)到了關(guān)于微機(jī)原理課程的更多相關(guān)內(nèi)容,了解了DS18B20芯片的作用、內(nèi)部結(jié)構(gòu)、引腳的功能、工作方式、技術(shù)參數(shù)、如何實現(xiàn)從模擬量到數(shù)字量的轉(zhuǎn)換。更加深入認(rèn)識了8255
10、A和8279的內(nèi)部構(gòu)造、控制字、方式字的設(shè)置以及通過8255A和8279控制輸出量。在這個過程中,我也曾經(jīng)因為實踐經(jīng)驗的缺乏失落過。生活就是這樣,汗水預(yù)示著結(jié)果也見證著收獲。雖然這只是一次的簡單的課程設(shè)計,可是平心而論,也耗費了我們不少的心血!通過這次課程設(shè)計,我想說:為完成這次課程設(shè)計我們確實很辛苦,但苦中仍有樂,和同學(xué)門這十幾天的一起工作的日子,讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,大學(xué)里一年的相處還趕不上這十來天的實習(xí),我感覺我和同學(xué)們之間的距離更加近了。這個工程確實很累,但當(dāng)我們設(shè)計成功的時候,當(dāng)我們連好線,按下按鈕,LED亮了起來,喇叭響起來了,那是我一生以來聽
11、到的最好聽的聲音,我們的心中就不免興奮,不免激動。以前種種艱辛這時就變成了最甜美的回憶!總的來說,雖然課程設(shè)計的時間有限,但在這有限的時間里,不僅完成了作業(yè),提交了結(jié)果,也豐富了這門硬件課程的更多知識,更深入地了解了這門專業(yè)課的精髓,充分認(rèn)識理論知識對應(yīng)用技術(shù)的指導(dǎo)性作用,進(jìn)一步加強(qiáng)理論知識與應(yīng)用相結(jié)合的實踐和鍛煉。通過這次設(shè)計實踐能夠進(jìn)一步加深對專業(yè)知識和理論知識學(xué)習(xí)的認(rèn)識和理解,使自己的設(shè)計水平和對所學(xué)的知識的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。對我而言,知識上的收獲重要,精神上的豐收更加可喜。讓我知道了學(xué)無止境的道理。我們每一個人永遠(yuǎn)不能滿足于現(xiàn)有的成就,人生就像在爬山,一座
12、山峰的后面還有更高的山峰在等著你。挫折是一份財富,經(jīng)歷是一份擁有。這次課程設(shè)計必將成為我人生旅途上一個非常美好的回憶!可編程并行接口芯片8255A1)8255A的作用利用8255A將界限值和溫度值通過LED顯示出來,同時8255A的PC0與DS18B20相連,向其發(fā)出溫度檢測命令及接受溫度數(shù)據(jù),PC5和蜂鳴器及發(fā)光二極管相連,用于聲光報警。 2)8255A的功能分析8255A是可編程并行接口,內(nèi)部有3個相互獨立的8位數(shù)據(jù)端口,即A口、口和口。三個端口都可以作為輸入端口或輸出端口??谟腥N工作方式:即方式、方式和方式,而口只能工作在方式或方式下,而口通常作為聯(lián)絡(luò)信號使用。8255A的工作只有當(dāng)片
13、選CS效時才能進(jìn)行。而控制邏輯端口實現(xiàn)對其他端口的控制。3)8255A的方式控制字圖2-2a 8255A的方式控制字表圖2-2b 8255A的方式控制字表 方式0的工作特點:是這種方式通常不用聯(lián)絡(luò)信號,不使用中斷,三個通道中的每一個都有可以由程序選定作為輸入或輸出。 通道的功能為:兩個8位通道:通道A和B。兩個四位通道:通道C高4位和低四位,任何一個通道可以作輸入/輸出,輸入是不鎖存的,輸出是鎖存的,在方式0時各個通道的輸入/輸出可有16種不同的組合。8255A的置位/控制字表:D7 D6 D5 D4 D3 D2 D1 D00XXX寫入位編碼寫入內(nèi)容寫入位 編碼 0寫入0 D0-D7 000-
14、111 1寫入1可編程并行接口芯片82791)8279的作用在本設(shè)計中用8279芯片控制鍵盤輸入和LED顯示。2)8279的功能分析8279A芯片是一種通用的可編程序的鍵盤/顯示接口器件,單個芯片就能完成鍵盤輸入和LED顯示控制兩種功能??膳c任何8位機(jī)接口。8279A芯片包括鍵盤輸入和顯示輸出兩個部分。若采用8279作為鍵盤/顯示器接口,則可以實現(xiàn)對鍵盤、顯示器自動掃描,8279主要是管理鍵盤輸入和顯示器輸出的。8279可編程鍵盤顯示器接口芯片具有動態(tài)顯示驅(qū)動電路簡單、不占用CPU 的時間、可自動進(jìn)行鍵盤掃描、與計算機(jī)接口方便、編程容易、系統(tǒng)靈活等特點當(dāng)今已成為設(shè)計計算機(jī)應(yīng)用系統(tǒng),特別是實時性
15、較高的測控系統(tǒng)的首選器件之一。圖2-2c 8279的內(nèi)部框圖圖中,IRQ:中斷請求輸出線,DB0DB7:雙向數(shù)據(jù)總路線(傳送命令、數(shù)據(jù)、狀態(tài)),、:讀寫控制輸入端,RESET:復(fù)位輸入端,CLK:時鐘輸入端,:片選,C和/D(A0):片內(nèi)寄存器選址,OUTA0A1、OUTB0B3:8位顯示輸出端,:熄滅顯示輸出端,SL0SL3:公用掃描輸出線,RL0RL7:鍵盤回饋輸入線,SHIFT:抵擋鍵輸入線,CNTL/STB:控制/選通輸入線。另外,8279的鍵盤接口部分內(nèi)部有一個8×8位先進(jìn)先出的堆棧(FIFO),用來存放鍵盤輸入代碼,顯示器接口部分內(nèi)部有一個16×8位顯示RAM,
16、用來顯示段數(shù)據(jù),能為16位LED顯示器(或其它顯示器)提供多路掃描接口。3)8279的引腳信號和功能8279可編程鍵盤顯示器接口芯片具有動態(tài)顯示驅(qū)動電路,不占用CPU 的時間、可自動進(jìn)行鍵盤掃描、與計算機(jī)接口方便、編程容易、系統(tǒng)靈活等特點。 8279A是可編程的鍵盤/顯示接口芯片。它既具有按鍵處理功能,又具有自動顯示功能,在單片機(jī)系統(tǒng)中應(yīng)用很廣泛。8279A內(nèi)部有鍵盤 FIFO (先進(jìn)先出堆棧)/傳感器,雙重功能的 8×8=64B RAM,鍵盤控制部分可控制 8×8=64 個按鍵或 8×8 陣列方式的傳感器。該芯片能自動消抖并具有雙鍵鎖定保護(hù)功能。顯示 RAM容量
17、為 16×8,即顯示器最大配置可達(dá) 16 位 LED數(shù)碼顯示。4)8279的命令字及其格式8279三種工作方式:鍵盤工作方式、顯示工作方式和傳感器工作方式。鍵盤工作方式:雙鍵互鎖和N鍵輪回。雙鍵互鎖是指當(dāng)有兩個以上按鍵同時按下時,只能識別最后一個被釋放的按鍵,并把其鍵值送入內(nèi)部FIFO RAM中。N鍵輪回是指當(dāng)有多個按鍵同時按下時,所有按鍵的鍵值均可按掃描順序依次存入FIFO RAM中。顯示工作方式:是指CPU輸入至8279內(nèi)部FIFO RAM的數(shù)據(jù)的輸出格式,有8個字符左端入口顯示、16個字符左端入口顯示、8個字符右端入口顯示、16個字符右端入口顯示四種方式。傳感器方式:是指掃描傳
18、感器陣列時,一旦發(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個字符顯示,左
19、端入口0116個字符顯示,左端入口108個字符顯示,右端入口1016個字符顯示,右入口所謂左入口 ,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個向右順序排列;所謂右入口,則是顯示位置從最右一位(最低位)開始,以后逐次輸入顯示字符時,已有的顯示字符依次向左移動。KKK(D2、D1、D0):用來設(shè)定七種鍵盤/顯示掃描方式,如表2-2所示。表2-2 鍵盤/顯示掃描方式D2D1D0鍵盤/顯示掃描方式000編碼掃描鍵盤,雙鍵鎖定001譯碼掃描鍵盤,雙鍵鎖定010編碼掃描鍵盤,N鍵輪回011譯碼掃描鍵盤,N鍵輪回100編碼掃描傳感器矩陣101譯碼掃描傳感器矩陣110選通輸入,編碼顯示掃描
20、111選通輸入,譯碼顯示掃描(2)時鐘編程命令命令格式 : D7 D6 D5 D4 D3 D2 D1 D0001PPPPP其中:D7、D6、D5=001為時鐘命令特征位。PPPPP(D4、D3、D2、D1、D0)用來設(shè)定外部輸入CLK時鐘脈沖的分頻系數(shù)N。N取值范圍為231。如CLK輸入時鐘頻率為2MHZ,PPPPP應(yīng)被置為10100(N=20),才可獲得8279內(nèi)部要求的100KHZ的時鐘頻率。(3)讀FIFO/傳感器RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0010AIXAAA其中:D7、D6、D5=010為讀FIFO/傳感器RAM命令特征位。該命令字只在傳感器方式
21、時使用。在CPU讀傳感器RAM之前,必須用這條命令來設(shè)定所讀傳感器RAM中的地址。AAA(D2、D1、D0)為傳感器RAM中的八個字節(jié)地址。AI(D4)為自動增量特征位。當(dāng)AI=1時,每次讀出傳感器RAM后地址自動加1使地址指向下一個存儲單元。這樣,下一個數(shù)據(jù)便從下一個地址讀出,而不必重新設(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中的存儲單元。由于位顯示RAM中有16個字節(jié)單元,故需要4位尋址。AI(D4)為自動增量特征位。AI=1時,每次讀出后地址自動加1,指向下一地址。(5)寫顯示RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 100AIAAAA其中:D7、D6、D5=100為寫顯示RAM命令字的特征位。在寫顯示RAM之前用這個命令字來設(shè)定將要寫入的顯示RAM地址。AAAA(D3、D2、D1、D0)為將要寫入的顯示RAM中的存儲單元地址。AI(D4)為自動增量特征位。AI=1時,每次寫入后地址自動加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時,A組的顯示RAM禁止寫入。因此,從CPU寫入顯示器RAM數(shù)據(jù)時,不會影響A的顯示。這種情況通常在采用雙4位顯示器時使用。因為兩個四位顯示器是相互獨立的。為了給其中一個四位顯示器輸入數(shù)據(jù)而又不影響另一個四位顯示器,因此必須對另一組的輸入實行屏蔽。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存儲器,當(dāng)CF=1時,執(zhí)行清除命令后,F(xiàn)IFO RAM被置空,使INT輸出線復(fù)位。同時,傳感器RAM的讀出地址也被置為0。CA (
25、D0)為總清的特征位。它兼有CD和CF的聯(lián)合效能。在CF =1時,對顯示的清除方式由D3、D2的編碼決定。顯示RAM清除時間約需160us。在此期間狀態(tài)字的最高位Du=1,表示顯示無效。CPU不能向顯示RAM寫入數(shù)據(jù)。(8)結(jié)束中斷/錯誤方式設(shè)置命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 111EXXXX其中:D7、D6、D5=111為該命令的特征位。此命令有兩種不同的作用。作為結(jié)束中斷命令。在傳感器工作方式中使用。每當(dāng)傳感器狀態(tài)出現(xiàn)變化時,掃描檢測電路就將其狀態(tài)寫入傳感器RAM,并啟動中斷邏輯,使INT變高,向CPU 請求中斷,并且禁止寫入傳感器RAM。此時,若傳感器RA
26、M 讀出地址的自動遞增特性沒有置位(AI=0),則中斷請求INT在CPU第一次從傳感器RAM讀出數(shù)據(jù)時就被清除。若自動遞增特征已置位(AI=1),則CPU對傳感器RAM 的讀出并不能清除INT,而必須通過給8279寫入結(jié)束中斷/錯誤方式設(shè)置命令才能使INT變低。因此,在傳感器工作方式中,此命令用來結(jié)束傳感器RAM的中斷請求。作為特定錯誤方式設(shè)置命令。在8279已被設(shè)定為鍵盤掃描N鍵輪回方式以后,如果CPU給8279又寫入結(jié)束中斷/錯誤方式設(shè)置命令(E=1),則8279將以一種特定的錯誤方式工作。這種方式的特點是:在8279的消抖周期內(nèi),如果發(fā)現(xiàn)多個按鍵同時按下,則FIFO狀態(tài)字中的錯誤特征位S
27、/E將置1,并產(chǎn)生中斷請求信號和禁止寫入FIFO RAM。上述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確定,輸入8279后能自動尋址相應(yīng)的命令寄存器。因此,寫入命令字時唯一的要求是使數(shù)據(jù)選擇信號A0 =1。5)8279的狀態(tài)字及其格式 8279的FIFO狀態(tài)字,主要用于鍵盤和選通工作方式,以指示FIFO RAM中的字符數(shù)和有無錯誤發(fā)生。其格式為: D7 D6 D5 D4 D3 D2 D1 D0 DUS/EOUFNNN其中:Du(D7)為顯示無效特征位。當(dāng) Du=1表示顯示無效。當(dāng)顯示RAM由于清除顯示或全清命令尚未完成時,Du=1,此時不能對顯示RAM寫入。S/E(D6)為傳
28、感器信號結(jié)束/錯誤特征位。該特征位在讀出FIFO 狀態(tài)字時被讀出。而在執(zhí)行CF =1的清除命令時被復(fù)位。當(dāng)8279工作在傳感器工作方式時,若S/E=1,表示傳感器的最后一個傳感器信號已進(jìn)入傳感器RAM;而當(dāng)8279工作在特殊錯誤方式時,若S/E=1則表示出現(xiàn)了多鍵同時按下錯誤。O、U(D5、D4)為超出、不足錯誤特征位。對FIFO RAM 的操作可能出現(xiàn)兩種錯誤:超出或不足。當(dāng)FIFO RAM 已經(jīng)充滿時,其它的鍵盤數(shù)據(jù)還企圖寫入FIFO RAM ,則出現(xiàn)超出錯誤,超出錯誤特征位O(D5)置1;當(dāng)FIFO RAM已經(jīng)置空時,CPU還企圖讀出,則出現(xiàn)不足錯誤,不足錯誤特征位U(D4)置1。F(D
29、3)表示FIFO RAM中是否已滿標(biāo)志,若F=1表示已滿。NNN(D2、D1、D0)表示FIFO RAM中的字符數(shù)據(jù)個數(shù)。6)數(shù)據(jù)輸入/輸出格式對8279輸入/輸出數(shù)據(jù)不僅要先確定數(shù)據(jù)地址口,而且數(shù)據(jù)存放也要按一定格式,其格式在鍵盤和傳感器方式有所不同。(1) 鍵盤掃描方式數(shù)據(jù)輸入格式鍵盤的行號、列號及控制鍵格式如下:圖2-3 鍵盤控制鍵格式控制鍵CNTL、SHIFT為單獨的開關(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è)計需要用到LED顯示器顯示預(yù)設(shè)紅綠燈的定時及綠燈閃爍的定時值。2)七段LED顯示器功能分析LED顯示器有共陽極和共陰極兩類。其中共陰極原理圖如下:圖2-4 LED顯示器原理圖七段LED顯示器可以控制在哪幾個數(shù)位上,哪幾個發(fā)光二極管亮,從而顯示數(shù)字。其工作原理:如果發(fā)光二極管共陽極,則輸入為0時亮,為1時不亮,反之如果發(fā)光共陰極,則輸入1時亮,0時不亮。發(fā)光二極管時一種外加電壓超過額定電壓時發(fā)生擊穿,并因此能產(chǎn)生可發(fā)光的器件,數(shù)碼顯示器通常由多個發(fā)光二極管來組成七段或八段筆畫顯示器,當(dāng)段組合發(fā)光時,便會顯示某一個數(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ù):此時的驅(qū)動電流為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è)計中的作用本設(shè)計中,小鍵盤用于輸入十進(jìn)制數(shù)字。2)小鍵盤的功能分析通常使用的鍵盤是矩陣結(jié)構(gòu)的。對于4×4=16個鍵的鍵盤,采用矩陣方式只要用8條引線和2個8位端口便完成鍵盤的連接。如圖,這個矩陣分為4行4列,如果鍵5按下,則第1行和第1列線接通而形成通路。如果第1行線接低電平,則鍵5的閉合,會使第1列線也輸出低電平。矩陣式鍵盤工作時,就是按行線和列線的電平來識別閉合鍵的。 圖2-5b 4×4鍵盤矩陣圖行掃描法識別按
34、鍵的原理如下:先使第0行接低電平,其余行為高電平,然后看第行是否有鍵閉合。這是通過檢查列線電位來實現(xiàn)的,即在第0行接低電平時,看是否有哪條列線變成低電平。如果有某列線變?yōu)榈碗娖剑瑒t表示第0行和此列線相交位置上的鍵被按下;如果沒有任何一條列線為低電平,則說明第0行沒有任何鍵被按下。此后,再將第1行接低電平,檢測是否有變?yōu)榈碗娖降牧芯€。如此重復(fù)地掃描,直到最后一行。在掃描過程中,當(dāng)發(fā)現(xiàn)某一行有鍵閉合時,也就是列線輸入中有一位為0時,便退出掃描,通過組合行線和列線即可識別此刻按下的是哪一鍵。實際應(yīng)用中,一般先快速檢查鍵盤中是否有鍵按下,然后再確定按鍵的具體位置。為此,先使所有行線為低,然后檢查列線。
35、這時如果列線有一位為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è)計3.1系統(tǒng)流程圖如下圖所示: 初始化板卡子程序 初始化8255和8279 延遲從鍵盤輸入紅綠燈、及黃燈定時時間數(shù)碼管顯示倒計時值 延時等待初始狀態(tài),東西綠燈亮,南北紅燈亮 倒計時30S東西綠燈閃爍,南北紅燈東西黃燈,南北紅燈
36、倒計時5S東西綠燈閃爍,南北紅燈倒計時30S結(jié) 束3.2源程序清單:源程序(帶注釋):;*; 8279 鍵盤顯示器接口芯片;1.查詢控制方式 2.輸入時鐘2MHZ 3.8279內(nèi)部20分頻(100KHZ) ;4.掃描計數(shù)器采用編碼工作方式(通過外部138譯碼);5.顯示按鍵值,第九次按鍵,清除顯示;8279 查詢工作方式.MODELTINYPCIBAR3EQU1CH;8位I/O空間基地址(它就是實驗儀的基地址,也為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空間基地址時出錯$'msg3DB'請設(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ù),最多兩位TIMEDB2 DUP (0);用于記錄設(shè)置的時間值TENDB10;除數(shù)TEMPDB0;暫存鍵值SE
39、LECTDB0;用于選擇數(shù)碼管.CODESTART:MOVAX,DATAMOVDS,AXNOPCALLInitPCICALLModifyAddress;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實地址CALLINIT8279;初始化8279子程序CALLINIT8255CALLInitTimeLEABX,LED_DataSTART1:MOVDX,PA_ADDMOVAL,0XLAT ;從存儲單元bx+al中取一個字節(jié)送到al寄存器OUTDX,AL;東西綠燈,南北紅燈MOVAH, 0MOV AL,TIME;延時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;延時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中存儲的是余數(shù),AL中存儲的是結(jié)果,先保留AX值MOVDX,CMD_8279;設(shè)置點亮的數(shù)碼管位置MOVAL,92HOUTDX,ALMOVDX,DATA_8279;數(shù)碼管顯示倒計時值LEABX,LED_TABMOVAX,DIXLAT ;從存儲單元bx+al中取一個字節(jié)送到al寄存器OUTDX,ALMOVAX,DI;寫一次計時值XCHGAL,AHXLATOUTDX,ALMOVAX,DICMPAH,0JNZNEXT0;AH未計時完成跳轉(zhuǎn)至NEXT0處繼續(xù)倒計時CMPAL,0JZEXIT0;AL計時完成跳轉(zhuǎn)至EXIT0倒計時結(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ù)碼管點亮位置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ù)(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;從第一個數(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;延時500msMOVAH,0FFH;星研公司提供的軟中斷INT21HPOPDXPOPAXRETDL500msENDPDL1SPROCNEARPUSHAXPUSHDXMOVDX,950;延時500msMOVAH,0FFH;星研公司提供的軟中斷INT21HPOPDXPOPAXRETDL1SENDPDL3SPROCNEARPUSHCXMOVCX,6DL3S1:CALLDL500msLOOPDL3S1POPCXRETENDPDL5SPROCNEARPUSHCXMOVCX,10DL5S1:CALLDL500msLOOPDL5S1POPCXRETENDPInitTimePROCNEARLEADX, msg3;輸出提示信息MOVAH, 09HINT21HMOVCOUNT, 0;COUNT對應(yīng)的是按鍵的值比如按下16則COUNT值為2,此處限定時間設(shè)定最多為兩位數(shù)MOVDI, 0;DI值對應(yīng)需要設(shè)定的時間初值的次數(shù),如只設(shè)置紅綠燈時間
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合工大機(jī)械原理課程設(shè)計
- 公司工資分配制度
- N-S-Trityl-L-cysteinyl-glycine-生命科學(xué)試劑-MCE
- Netobimin-SCH-32481-生命科學(xué)試劑-MCE
- 防疫小班主題課程設(shè)計
- 煤炭行業(yè)鐵路技能大賽(鐵路車站值班員賽項)理論考試題庫-上(單選題)
- 高爐煉鐵工職業(yè)技能競賽理論試題庫-下(多選、判斷題)
- (預(yù)決算員)聘用合同勞動合同
- 采煤學(xué)的課程設(shè)計誰能做
- 數(shù)學(xué)數(shù)字化課程設(shè)計
- 江蘇省鎮(zhèn)江市第二中學(xué)2023-2024學(xué)年高二上學(xué)期期中考試數(shù)學(xué)試卷(無答案)
- 2023-2024學(xué)年全國初一下生物人教版期末考試試卷(含答案解析)
- 2024年甘肅省隴南市武都區(qū)人民法院招聘18人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 2024-2030年中國虛擬專用網(wǎng)絡(luò)(VPN)行業(yè)市場行業(yè)發(fā)展分析及發(fā)展前景研究報告
- 檢驗檢測機(jī)構(gòu)內(nèi)審員檢查表
- 2024中煤電力限公司面向中煤集團(tuán)內(nèi)部招聘15人高頻難、易錯點500題模擬試題附帶答案詳解
- 統(tǒng)編版(2024新版)七年級上冊歷史第二單元 夏商周時期:奴隸制王朝的更替和向封建社會的過渡 單元復(fù)習(xí)課件
- 第13課《紀(jì)念白求恩》課件2024-2025學(xué)年統(tǒng)編版語文七年級上冊
- 食品安全的規(guī)章制度和食品操作流程
- 《義務(wù)教育體育與健康課程標(biāo)準(zhǔn)(2022年版)》解讀
- 部編版三年級上冊語文第七單元大單元教學(xué)設(shè)計
評論
0/150
提交評論