![倒計(jì)時數(shù)字鐘_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/203af84d-e975-4096-82c7-8c0eb951bcaf/203af84d-e975-4096-82c7-8c0eb951bcaf1.gif)
![倒計(jì)時數(shù)字鐘_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/203af84d-e975-4096-82c7-8c0eb951bcaf/203af84d-e975-4096-82c7-8c0eb951bcaf2.gif)
![倒計(jì)時數(shù)字鐘_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/203af84d-e975-4096-82c7-8c0eb951bcaf/203af84d-e975-4096-82c7-8c0eb951bcaf3.gif)
![倒計(jì)時數(shù)字鐘_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/203af84d-e975-4096-82c7-8c0eb951bcaf/203af84d-e975-4096-82c7-8c0eb951bcaf4.gif)
![倒計(jì)時數(shù)字鐘_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/30/203af84d-e975-4096-82c7-8c0eb951bcaf/203af84d-e975-4096-82c7-8c0eb951bcaf5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系頁:1寫明課程名稱課程設(shè)計(jì)報(bào)告20082009學(xué)年第一學(xué)期頁:1課程 微型計(jì)算機(jī)原理與接口技術(shù) 課程設(shè)計(jì)名稱倒計(jì)時數(shù)字鐘學(xué)生姓名楊和平學(xué)號0604031040專業(yè)班級網(wǎng)絡(luò)工程(1)班指導(dǎo)教師張向東 教 授 2009年 2月倒計(jì)時數(shù)字鐘頁:2題目可以不寫一. 題義分析及解決方案:頁:2標(biāo)題沒有標(biāo)點(diǎn)符號,其他雷同用STAR ES598PCI單板開發(fā)機(jī)設(shè)計(jì)一個與七段LED顯示器,顯示一個倒計(jì)時時鐘,顯示初值為60分00秒,每隔一秒改變一次顯示值,60秒為一分鐘,LED顯示器顯示分、秒的動態(tài)值。1. 題義需求分析:根據(jù)題意設(shè)計(jì)一個接口和七段LED顯示器,本設(shè)計(jì)能顯示一個具有固
2、定初值的倒計(jì)時鐘,能每隔固定時間間隔(1s),動態(tài)刷新顯示值,并且能用LED顯示器顯示分秒的動態(tài)值,需要解決如下問題:1) 選擇怎樣的接口問題2)初值的設(shè)置和輸入問題3)計(jì)數(shù)值與顯示碼的轉(zhuǎn)換及動態(tài)值顯示問題4)相關(guān)芯片與譯碼器的選擇問題2解決問題方法及思路:1).硬件部分:選擇8279芯片和七段LED顯示器與鍵盤相連,8279的掃描輸出信號經(jīng)譯碼器譯碼,三根輸出線Y0Y7作為矩陣鍵盤的行掃描信號,返回信號RL0RL7與矩陣鍵盤的8個列輸出信號相連接,掃描輸出信號經(jīng)另一譯碼器產(chǎn)生的8個輸出信號作為8個顯示器的宣統(tǒng)信號,即位選信號,輪流刷新8個顯示器。2).軟件部分:根據(jù)題義要求,可以設(shè)立一個段碼
3、表,用來數(shù)字09的段碼,根據(jù)這些段碼可以判定LED顯示器選用的共陽極還是共陰極方式;同時還要設(shè)置一個顯示緩沖區(qū)以動態(tài)刷新的方式,顯示四位數(shù)字表示的時間,設(shè)置好8279的工作方式,運(yùn)行顯示程序,將緩沖區(qū)中的數(shù)字通過LED顯示器顯示出來,待四個數(shù)字都顯示出來后,保持一秒鐘的顯示,然后顯示下一個時間值;為了達(dá)到倒計(jì)時時鐘顯示,還要設(shè)定一個修改緩沖區(qū)是在內(nèi)存中,由鍵盤鍵入的初值就存在這里,修改時間值仍然是在內(nèi)存的緩沖區(qū)中修改,然后將這個修改后的時間值送到8279的FIFO RAM中顯示出來。二 硬件選擇分析1、選擇芯片82791)8279在本設(shè)計(jì)中的作用:8279是專用鍵盤、數(shù)碼管顯示接口芯片,它可以
4、自動維持7段顯示器的刷新,不需要主機(jī)的干預(yù),并且可以同時完成矩陣鍵盤的掃描,延時去抖和鍵碼識別等功能。8279通過掃描輸出信號確定鍵盤矩陣的行,返回信號確定矩陣的列,確定數(shù)字后,通過譯碼器獲得8個顯示器的選通信號,即位選通信號。2)芯片8279的功能分析:A. 8279的內(nèi)部結(jié)構(gòu)框圖如下所示:(1)數(shù)據(jù)緩沖器它連接內(nèi)、外總線,暫時CPU與8279芯片之間傳送的命令、數(shù)據(jù)或狀態(tài)。(2)I/O控制它用于控制信息的流向及區(qū)分信息的特征。CS=1時,由RO或WR控制從8279讀出或向8279寫入;A0=0時,選中數(shù)據(jù)寄存器,輸入/輸出均為數(shù)據(jù)。A0=1時,選中命令、狀態(tài)寄存器,輸入時位命令,輸出時位狀
5、態(tài)。(3)控制與定時寄存器它用來寄存鍵盤和顯示的工作方式,以及由CPU編程的其他操作方式,并通過譯碼產(chǎn)生相應(yīng)的控制信號,完成規(guī)定的控制功能。 圖2_1:8279的內(nèi)部結(jié)構(gòu)框圖 (4)定時控制它對外部時鐘信號CLK分頻至內(nèi)部所需要的100kHz時鐘。(5)掃描計(jì)數(shù)器它可根據(jù)編程命令按編碼或譯碼方式工作。編碼方式:4位計(jì)數(shù)器按二進(jìn)制計(jì)數(shù),計(jì)數(shù)狀態(tài)從掃描線SL0SL3輸出,經(jīng)外部譯碼器譯碼后,為鍵盤和顯示器提供16個掃描信號。譯碼方式:掃描計(jì)數(shù)器最低兩位被譯碼后從SL0SL3輸出,可直接作為鍵盤和顯示器掃描信號。此時鍵盤矩陣為4×8,顯示字符為4位。(6)鍵盤去抖與控制鍵盤去抖電路:在鍵盤
6、掃描方式中,當(dāng)有鍵閉合時,按命令指定方式去抖動后讀入鍵值??刂齐娐罚喊疵钪付ǚ绞娇刂迫ザ峨娐返墓ぷ鬟^程,以及對返回信號進(jìn)行處理。(7)返回緩沖器它鎖存來自RL0RL7的回復(fù)信號,在鍵盤掃描方式中,返回線與鍵盤矩陣列線相連,在逐行掃描時搜尋一行中閉合鍵所在的列。當(dāng)有鍵閉合時,經(jīng)去抖動后經(jīng)行、列編碼和附近的移位、控制狀態(tài)一起形成鍵盤數(shù)據(jù)送至FIFO存儲器,供CPU讀取。表2_1:鍵盤數(shù)據(jù)格式 D7 D6 D5 D4 D3 D2 D1 D0CNTLSHIFTSL2SL1SL0R2 R1R0控制移位行編碼列編碼其中,控制和移位由兩個獨(dú)立的附加開關(guān)決定;SL2 SL1 SL0為按下鍵的行編碼,來自掃描
7、計(jì)數(shù)器的低3位;R2 R1 R0是根據(jù)返回信號確定的列編碼。(8)FIFO RAM它是一個8×8RAM,在鍵盤輸入方式時遵循先入先出(FIFO)原則。(9)FIFO RAM的狀態(tài)寄存器它用來存放FIFO RAM的狀態(tài),例如RAM空、滿等。當(dāng)工作在鍵盤方式FIFO存儲器不空時,將產(chǎn)生IRQ1信號向CPU申請中斷。(10) 顯示RAM、顯示地址寄存器顯示RAM用來存儲顯示數(shù)據(jù)。容量為168位。在顯示過程中,存儲的顯示數(shù)據(jù)輪流從顯示寄存器輸出。顯示寄存器分別為A、B兩組,OUTA03和OUTB03可以單獨(dú)送數(shù),也可以組成一個8位的字。顯示寄存器的輸出與顯示掃描配合,不斷從顯示RAM中讀出顯
8、示數(shù)據(jù),同時輪流驅(qū)動被選中的顯示器件,以達(dá)到多路復(fù)用的目的,使顯示器件呈現(xiàn)穩(wěn)定的顯示狀態(tài)。顯示地址寄存器用來寄存由CPU進(jìn)行讀/寫顯示RAM的地址,它可以由命令設(shè)定,也可以設(shè)置成每次讀寫或?qū)懭胫笞詣舆f減。 (11)顯示寄存器它存放顯示內(nèi)容。在顯示過程中它與顯示掃描配合,輪流從顯示RAM中讀出顯示信息并依次驅(qū)動被選中的顯示器件,循環(huán)不斷地刷新顯示字符編碼,使顯示器件呈現(xiàn)穩(wěn)定的顯示字符。8位顯示寄存器分為A、B兩組,OUTA03和OUTB03可以單獨(dú)送樹,顯示4個字符也可以組成一個8位字符。(12)顯示地址寄存器它寄存讀/寫顯示RAM地址,即對應(yīng)顯示字符從哪一位開始。它由命令設(shè)定,并可設(shè)置成每次
9、讀出或?qū)懭胫笞詣蛹?。B芯片8279是一種具有40條引腳的雙列直插式芯片,它的外部引腳如下圖所示:CS(片選):輸入線,當(dāng)CS=0時8279被選中,允許CPU對其讀、寫,否則被禁止。 D0D7(數(shù)據(jù)總線):雙向、三態(tài)總線,和系統(tǒng)數(shù)據(jù)總線相連;用于CPU和8279間的數(shù)據(jù)/命令傳遞。A0:地址線,進(jìn)行片內(nèi)端口選擇。為0時,選中數(shù)據(jù)寄存器;為1時選中命令/狀態(tài)寄存器。RD、WR(讀、寫信號):輸入線。低電平有效,來自CPU的控制信號,控制8279的讀、寫操作。CLK:系統(tǒng)時鐘,為8279芯片提供內(nèi)部定時。RESET:復(fù)位線,高電平時復(fù)位8279到:16個字符顯示(左進(jìn)方式);編碼掃描鍵盤(雙鍵鎖
10、定);時鐘設(shè)置為31。IRQ(中斷請求):輸出線。高電平有效。 圖2_2: 外部引腳圖頁:5圖要居中,圖標(biāo)錯應(yīng)為 圖2-2 外部。,其他雷同 在鍵盤工作方式中,當(dāng)FIFO/傳感器RAM存有數(shù)據(jù)時,IRQ為高電平。CPU每次從RAM中讀出數(shù)據(jù)時,IRQ變?yōu)榈碗娖?。若RAM中仍有數(shù)據(jù),則IRQ再次恢復(fù)高電平。在傳感器工作方式中,每當(dāng)檢測到傳感器狀態(tài)變化時,IRQ就出現(xiàn)高電平。SL0SL3:掃描線,用來掃描鍵盤或顯示器,可編程設(shè)定為編碼輸出或譯碼輸出。RL0RL7:返回線,用作鍵盤矩陣列線的返回信號輸入。SHIFT:移位信號,高電平有效,是鍵盤數(shù)據(jù)的D6位,用于擴(kuò)充鍵的控制功能,如作為上、下檔功能鍵
11、。CNTL:控制線,高電平有效,鍵盤工作方式時,是鍵盤數(shù)據(jù)的D7位,用于擴(kuò)充鍵的控制功能控制功能鍵。OUTA0 OUTA3,OUTB0OUTB3:A組、B組顯示信號輸出線,與掃描線SL0SL3同步,實(shí)現(xiàn)分時數(shù)據(jù)顯示,即刷新各位顯示字符。兩組可獨(dú)立使用,也可合并使用。BD(顯示消隱):輸出線。低電平有效。該信號在數(shù)字切換顯示或使用消隱命令時,將顯示消隱。C8279的工作過程通過確定其方式字/命令字來實(shí)現(xiàn)。當(dāng)A0=1時,CPU向8279芯片寫入命令。(1) 設(shè)置鍵盤/顯示方式表2_2: 設(shè)置命令字 D7 D6 D5 D4 D3 D2 D1 D0000DDKKK其中: D7、D6、D5=000方式設(shè)
12、置命令特征位。 DD(D4、D3):來設(shè)定顯示方式,其定義如下: 00:8個字符顯示,左入口 01:16個字符顯示,左入口 10:8個字符顯示,右入口 11:16個字符顯示,右入口所謂左入口,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個向右順序排列; 所謂右入口,即顯示位置從最右一位(最低位)開始,以后逐次輸入的顯示字符時,已有的顯示字符逐個向左順序移動。 KKK(D2、 D1、 D0):用來設(shè)定七種鍵盤、顯示工作方式: 000 編碼掃描鍵盤,雙鍵鎖定 001 譯碼掃描鍵盤,雙鍵鎖定 010 編碼掃描鍵盤,N鍵輪回
13、011 譯碼掃描鍵盤,N鍵輪回 100 編碼掃描傳感器矩陣 101 譯碼掃描傳感器矩陣 110 選通輸入,編碼顯示掃描 111 選通輸入,譯碼顯示掃描 雙鍵鎖定與N鍵輪回是多鍵按下時的兩種不同的保護(hù)方式。雙鍵鎖定為兩鍵同時按下提供的保護(hù)方法。再消顫周期里,如果有兩鍵同時按下,則只有其中一個鍵彈起,而另一個鍵保持在按下位置時,才被認(rèn)可。N鍵輪回為N鍵同時按下的保護(hù)方法。當(dāng)有若干鍵按下時,鍵盤掃描能夠根據(jù)發(fā)現(xiàn)他們的順序,依次將它們的狀態(tài)送入FIFO RAM中。(2) 設(shè)置程序時鐘命令 表2_3:命令格式 D7 D6 D5 D4 D3 D2
14、 D1 D0001PPPPP其中:D7、D6、D5=001為時鐘命令特征位。PPPPP( D4、D3、D2、D1、D0)用來設(shè)定外部輸入CLK端的時鐘進(jìn)行分頻的分頻數(shù)N。N取值為231。例如外部時鐘頻率為2MHZ,PPPPP被置為10100(N=20),則對輸入的外部時鐘20分頻,以獲得8279內(nèi)部要求的100KMZ的基本頻率。(3) 讀FIFO/傳感器RAM命令 表2_4:命令格式 D7 D6 D5 D4 D3 D2 D1 D0010AIXAAA其中:D7D6D5 =010為讀FIFO/傳感器RAM命令特征位。該命令字只在傳感器方式時使用。在CPU讀傳感器RAM之前,必須使用這條
15、命令來設(shè)定傳感器RAM中的8個地址(每個地址一個字節(jié))。 AAA(D2、D1、D0)為傳感器RAM中的八個字節(jié)地址。 AI(D4)為自動增量特征位。當(dāng)AI=1時,每次讀出傳感器RAM后地址自動加1使地址指針指向下一個存儲單元。這樣,下一個數(shù)據(jù)便從下一個地址讀出,而不必重新設(shè)置讀FIFO/傳感器RAM命令。在鍵盤工作方式中,由于讀出操做嚴(yán)格按照先入先出順序,因此,不需使用此命令。(4) 讀顯示RAM命令 表2_5:命令格式 D7 D6 D5 D4 D3 D2 D1 D0011AIAAAA其中:D7D6D5 =011為讀顯示RAM命令字的特征位。該命令用來設(shè)定將要讀出的顯示RAM地址。AAAA(D
16、3、D2、D1、D0)用來尋址顯示RAM命令字的特征位。由位顯示RAM中有16個字節(jié)單元故需要4位尋址。AI(D4)為自動增量特征位。當(dāng)AI=1時,每次讀出后地址自動加1指向下一地址。(5) 寫顯示RAM命令 表2_6:命令格式 D7 D6 D5 D4 D3 D2 D1 D0100AIAAAA其中:D7D6D5 =100為寫顯示RAM命令字的特征位。在寫顯示器RAM之前用該命令用來設(shè)定將要寫入的顯示RAM地址。AAAA(D3、D2、D1、D0)為將要寫入的存儲單元地址,AI(D4)為自動增量特征位。當(dāng)AI=1時,每次寫入后地址自動加1指向下一次寫入地址。(6) 顯示禁止寫入/消隱命令特征位 表
17、2_7:命令格式 D7 D6 D5 D4 D3 D2 D1 D0101 XIWAIWBIWCIWD其中:D7D6D5 =101為顯示禁止寫入/消隱命令特征位。IWA、IWB(D3、D2)為A、B組顯示RAM寫入屏蔽位。由于顯示寄存器分成A、B兩組,可以單獨(dú)送數(shù),故用兩位來分別屏蔽。當(dāng)A組的屏蔽位D3=1時,A組的顯示RAM禁止寫入。因此,從CPU寫入顯示器RAM數(shù)據(jù)時,不會影響A的顯示。這種情況通常在采用雙4位顯示器時使用。因?yàn)閮蓚€雙四位顯示器是相互獨(dú)立的。為了給其中一個雙四位顯示器輸入數(shù)據(jù)而又不影響另一個四位顯示器,因此必須對另一組的輸入實(shí)行屏蔽。IWC、IWD(D1、D0)為消隱顯示位。用
18、于對兩組顯示輸出消隱。若BL=1時,對應(yīng)組的顯示輸出被消隱。當(dāng)BL=0時,則恢復(fù)顯示。(7) 清除命令 表2_8: 命令格式頁:7沒有冒號,應(yīng)為表2-8,不是下劃線 D7 D6 D5 D4 D3 D2 D1 D0110CDCDCDCFCA其中: D7D6D5 =110清除命令特征位。 CDCDCD(D4D3D2)用來設(shè)定清除顯示RAM方式。共有四種消除方式,見表6-10-1。 CF(D1)用來置空FIFO存儲器,當(dāng)=1時,執(zhí)行清除命令后,F(xiàn)IFO RAM被置空,使中斷輸出線復(fù)位。同時,傳感器RAM的讀出地址也被置0。 CA(D0)為總清的特征位。它兼有CD和CF的聯(lián)合效能。在CD=1時,對顯示
19、的清除方式由D3、D2的編碼決定。 清除顯示RAM約需160S。在此期間FIFO狀態(tài)時的最高位DU=1,表示顯示無效。CPU不能向顯示RAM寫入數(shù)據(jù)。(8) 結(jié)束中斷/錯誤方式設(shè)置命令 表2_9:命令格式 D7 D6 D5 D4 D3 D2 D1 D0111 EXXXX其中: D7D6D5 =111為該命令的特征位。此命令有兩種不同的作用: 作為結(jié)束中斷命令。在傳感器工作方式中使用。每當(dāng)傳感器狀態(tài)出現(xiàn)變化時,掃描檢測電路將其狀態(tài)寫入傳感器RAM,并啟動中斷邏輯,使IRQ變高,向CPU請求中斷,并且禁止寫入傳感器RAM。此時,若傳感器RAM讀出地址的自動遞增特征沒有置位(AI=0),則中斷請求I
20、RQ在CPU第一次從傳感器RAM讀出數(shù)據(jù)時就被清除。若自動遞增特征已置位(AI=1),則CPU對傳感器RAM的讀出并不能清除IRQ,而必須通過給8279寫入結(jié)束中斷/錯誤方式設(shè)置命令才能使IRQ變低。因此在傳感器工作方式中,此命令用來結(jié)束傳感器RAM的中斷請求。 作為特定錯誤方式設(shè)置命令。在8279已被設(shè)定為鍵盤掃描N鍵輪回方式以后,如果CPU給8279又寫入結(jié)束中斷/錯誤方式設(shè)置命令(E=1),則8279將以一種特定的錯誤方式工作。這種方式的特點(diǎn)是:在8279的消顫周期內(nèi),如果發(fā)現(xiàn)多個按鍵同時按下,則FIFO狀態(tài)字中的錯誤特征位S/E將置1,并產(chǎn)生中斷請求信號和阻止寫入FIFO RAM。 上
21、述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確定,輸入8279后能自動尋址相應(yīng)的命令寄存器。因此,寫入命令字時唯一的要求是使數(shù)據(jù)選擇信號A0=1。8279芯片的狀態(tài)字主要用于鍵盤和選通工作方式,以指示FIFO RAM中的字符數(shù)和有無錯誤發(fā)生。表2_10:鍵盤和選通工作方式格式 D7 D6 D5 D4 D3 D2 D1 D0DUS/E0 UFNNN其中: DU( D7)為顯示無效特征位。當(dāng)DU=1表示顯示無效。當(dāng)顯示RAM由于清除顯示或全清命令尚未完成時,DU=1。D6(S/E):在鍵盤工作方式中為特殊錯誤方式標(biāo)志位。S/E=1表示出現(xiàn)多鍵同時按下的錯誤。D5(0):超出標(biāo)志位,
22、當(dāng)向已滿的FIFO RAM中寫入,致使FIFO RAM中的字符個數(shù)n>8而產(chǎn)生重疊時,0被置為1。D4(U):“空”標(biāo)志位,當(dāng)FIFO RAM中的字符個數(shù)n=0時,U被置為1。D3(F):“滿”標(biāo)志位,當(dāng)FIFO RAM中的字符個數(shù)n=8時,F(xiàn)被置為1。D2D1D0(NNN):表示FIFO RAM中有n個字符待取走。2選擇器件LED:1)芯片在本設(shè)計(jì)中的作用:LED發(fā)光二極管在本設(shè)計(jì)中采用7段數(shù)字發(fā)光二極管,作為終端顯示。顯示時間的分秒。2)LED的功能分析:物理構(gòu)造:LED發(fā)光二級管,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內(nèi)部結(jié)構(gòu)為一個PN結(jié),具有單向?qū)щ娦?。?dāng)在發(fā)光二極管PN結(jié)上
23、加正向電壓時,PN結(jié)勢壘降低,載流子的擴(kuò)散運(yùn)動大于漂移運(yùn)動,致使P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這樣相互注入的空穴與電子相遇后會產(chǎn)生復(fù)合,復(fù)合時產(chǎn)生的能量大部分以光的形式出現(xiàn)。將七個發(fā)光管進(jìn)行組合,排列成數(shù)字圖形8,再根據(jù)需要控制七個管的亮與滅,即可顯示出定義數(shù)字。有段選碼和位選碼確定數(shù)字18的輸出并在延時程序中保持復(fù)位。它是一種當(dāng)外加電壓超過額定電壓時發(fā)生擊穿,并因此而產(chǎn)生可見光的器件。這種數(shù)碼管是有7段或8段筆畫顯示器組成一個字符而形成的。如下圖: 圖2_3: LED內(nèi)部結(jié)構(gòu) 圖2_4:LED顯示表2_11:LED顯示管段選碼編碼表數(shù)字dpgfedcba二進(jìn)制編碼0110000
24、00C0h111111001F9h210100100A4h310110000B0h41001100199h51001001092h61000001082h711111000F8h81000000080h91001000090h3)LED的技術(shù)參數(shù)分析LED發(fā)光二極管的壓降一般為1.5-2.0V,其工作電流一般取10-20Ma,發(fā)光二極管可應(yīng)用于直流驅(qū)動電路、交流驅(qū)動電路和脈沖驅(qū)動電路。 由于8255A的最大驅(qū)動電流為4.0mA,而LED的工作電流一般為10-20mA,所以需要加一個驅(qū)動器74LS244。3矩陣鍵盤:1)矩陣鍵盤在本設(shè)計(jì)中的作用:矩陣鍵盤在工作時,是按照行線和列線交叉點(diǎn)的電平值來
25、識別按鍵的,由人手按動鍵盤。當(dāng)鍵釋放后,該鍵就有效。矩陣鍵盤將0F這16哥鍵按行和列排列成矩陣形式。對于m×n哥鍵的鍵盤,只需要m+n位I/O端口,我們的實(shí)驗(yàn)采用的是4×4鍵盤。2)矩陣鍵盤的功能分析:頁:10注意文章的段落和縮進(jìn)。其他雷同在矩陣鍵盤中,通過行列交叉點(diǎn)上的電平值來識別按鍵,而行列線通過鍵盤數(shù)據(jù)格式確定,鍵盤數(shù)據(jù)格式如下: 表2_12:鍵盤數(shù)據(jù)格式 D7 D6 D5 D4 D3 D2 D1 D0CNTLSSHIFTSL2SL1SL0R2R1R0控制移位行編碼列編碼其中,控制和移位由兩個獨(dú)立的附加開關(guān)決定;SL2 SL1 SL0為按下鍵的行編碼,來自掃描計(jì)數(shù)器的
26、低三位,R2 R1 R0是根據(jù)返回信號確定的列編碼。通常使用的鍵盤是矩陣結(jié)構(gòu)的。對于4×4=16個鍵的鍵盤,采用矩陣方式只要用8條引線和2個8位端口便完成鍵盤的連接。如圖,這個矩陣分為4行4列,如果鍵5按下,則第1行和第1列線接通而形成通路。如果第1行線接低電平,則鍵5的閉合,會使第1列線也輸出低電平。矩陣式鍵盤工作時,就是按行線和列線的電平來識別閉合鍵的。 圖2_5:4×4鍵盤矩陣圖行掃描法識別按鍵的原理如下:先使第0行接低電平,其余行為高電平,然后看第0行是否有鍵閉合。這是通過檢查列線電位來實(shí)現(xiàn)的,即在第0行接低電平時,看是否有哪條列線變成低電平。如果有某列線變?yōu)榈碗娖?/p>
27、,則表示第0行和此列線相交位置上的鍵被按下;如果沒有任何一條列線為低電平,則說明第0行沒有任何鍵被按下。此后,再將第1行接低電平,檢測是否有變?yōu)榈碗娖降牧芯€。如此重復(fù)地掃描,直到最后一行。在掃描過程中,當(dāng)發(fā)現(xiàn)某一行有鍵閉合時,也就是列線輸入中有一位為0時,便退出掃描,通過組合行線和列線即可識別此刻按下的是哪一鍵。實(shí)際應(yīng)用中,一般先快速檢查鍵盤中是否有鍵按下,然后再確定按鍵的具體位置。為此,先使所有行線為低,然后檢查列線。這時如果列線有一位為0,則說明必有鍵被按下, 采用掃描法可進(jìn)一步確定按鍵的具體位置。474LS240芯片:1 ) 74LS240譯碼器在本設(shè)計(jì)中的作用本設(shè)計(jì)實(shí)驗(yàn)中主要是為增加L
28、ED的驅(qū)動電流2 ) 74LS240譯碼器的功能分析74LS240 TTL 八反相三態(tài)緩沖器/線驅(qū)動器引出端符號: 1A,2A 輸入端 , 三態(tài)允許端(低電平有效) 1Y8Y 輸出端 圖2_6:邏輯圖 表2_13:功能表輸入輸出AYLLHLHXHLZ3 ) 74LS240譯碼器的技術(shù)參數(shù) 極限值: 電源電壓 - 7V 輸入電壓 - 5.5V 輸出高阻態(tài)時高電平電壓 - 5.5V 工作環(huán)境溫度 - 070 存儲溫度 -65150 574LS138芯片:1) 74LS138在本設(shè)計(jì)中的作用:將SL0SL2鎖確定的信號經(jīng)譯碼器譯為矩陣鍵盤的行選擇線。2) 74LS138 的功能分析:74LS138是
29、3/8譯碼器,即對3哥輸入信號進(jìn)行譯碼,得到8個輸出狀態(tài)。其引腳功能圖如下所示: 表2_14:真值表頁:12表格超出邊界 圖2_6 引腳圖G1 G2A G2B為數(shù)據(jù)輸出端,G2A G2B為低電平有效,G1高電平有效,A、B、C為譯碼器輸入出端,Y0Y7為譯碼輸出端,低電平有效。真值表如下所示:3) 74LS138的技術(shù)參數(shù):極限值 電源電壓-7V 輸入電壓-7V 工作環(huán)境溫度 -070 貯存溫度-65150 三硬件總邏輯圖及其說明圖3_1:硬件總邏輯圖上圖中8279的地址由和A0決定,故數(shù)據(jù)口地址為7FFEH,命令口地址為7FFFH。所接的16個按鍵,掃描線接在74HC138的譯碼輸出端 和
30、上,當(dāng) 為0(SL2SL1SL0=000)時,掃描第1列按鍵,當(dāng) 為0(SL2SL1SL0=001)掃描第2列按鍵,故07號按鍵的鍵值為00H07H,815號按鍵鍵值為08H0FH。當(dāng)某一按鍵被按下后,鍵值就自動進(jìn)入緩沖區(qū),當(dāng)8279內(nèi)部RAM不空時由INT輸出高電平告知CPU取走,故INT連接CPU的中斷輸入需加一反向器。8279鍵盤配置最大為8×8,若要配置64個按鍵,其它列掃描線可分別連至 至 上,形成8行8列的按鍵掃描電路。圖6-1中顯示部分段選碼由8279的OUTA3OUTA0、OUTB3OUTB0通過驅(qū)動器74LS240提供,位選碼由SL2SL0 經(jīng)3-8譯碼器通過驅(qū)動器
31、74LS240提供。2程序流程圖1) 控制程序設(shè)計(jì)思路說明:程序框架一個主程序用于設(shè)置8279的工作方式;一個顯示程序用 于顯示當(dāng)前的分值和秒值,在其中還設(shè)置了一個小的程序用于延時,以穩(wěn)定顯示的數(shù)值。采用動態(tài)刷新的方式將四位數(shù)字顯示一遍。每遍約20秒的時間,顯示約50次可使得時間約為一秒。然后將時間減少一秒,再次將時間顯示出來。如此循環(huán),直到時間減少到00分00秒為止。2)流程圖:開始N8279初始化置時間初值并顯示延時一秒調(diào)用顯示子程序鍵掃描有鍵按下是2是3NYN調(diào)用修改子程序調(diào)用清除和設(shè)置初值子程序YY圖3_2:程序主流程圖開始寫清除命令字讀狀態(tài)清除完畢返回NY開始讀狀態(tài)有鍵CF=0讀鍵值
32、,CF=1返回NY圖3_3:清除子程序 圖3_4:鍵掃描子程序INT21功能調(diào)用開始AH置0FFHDX賦給490返回圖3_5:延時子程序開始將AL與3F相與結(jié)束開始取時間值顯示天的十位顯示天的個位顯示時的十位顯示時的個位顯示分的十位顯示分的個位顯示秒的十位顯示秒的個位結(jié)束圖3_6:鍵號轉(zhuǎn)化為鍵值 圖3_7:顯示子程序開始有鍵鍵掃描1ABCDEF89修改秒的個位修改秒的十位修改分的個位修改分的十位修改時的個位修改時的十位修改天的個位修改天的十位結(jié)束NYNYNNNNNNNYYYYYYYYYN顯示ERROR按3繼續(xù)按鍵錯誤 圖3_8;修改子程序開始秒個位為0天,時,分,秒都為0秒十位為0分個位為0分
33、十位為0時個位為0時十位為0天個位為0天個位置為9天十位減1結(jié)束秒個位減1顯示OVER結(jié)束秒十位減1,個位為9秒十位為5,分個位減1分個位為9,分十位減1分十位為5,時個位減1時個位減1,時個位為9天個位減1,時個位為2秒個位為9秒十位為5分十位為9分十位為5時個位為3NYYNNNNNNNYYYYYY 圖3_9:修改顯示開始輸入天十位,個位輸入時十位大于222輸入時個位出錯22輸入分十位大于522輸入分個位出錯22輸入秒十位大于522輸入秒個位出錯22結(jié)束顯示ERROR顯示ERROR顯示ERROR顯示ERROR顯示ERROR顯示ERRORYYYYYYNNNNNN 圖3_10:設(shè)置時間初值3控制
34、程序頁:19標(biāo)題加粗,代碼要有分欄符; 8279 倒計(jì)時時鐘;1.查詢控制方式 2.輸入時鐘2MHZ 3.8279內(nèi)部20分頻(100KHZ);4.掃描計(jì)數(shù)器采用編碼工作方式;5.顯示按鍵初值(6個字符);6.每過一秒改變一次顯示值;7.每過一秒中對計(jì)數(shù)器進(jìn)行減一操作;8. 1 確定,開始倒計(jì)時 2 停止 3 清除 A 修改秒的個位 B 修改秒的十位; C 修改分的個位 D 修改分的十位 E 修改時的個位 F 修改時的十位; 8 修改天的個位 9修改天的十位 .MODELTINYPCIBAR3 EQU1CH;8位I/O空間基地址(它就是實(shí)驗(yàn)儀的基地址,也為DMA & 32 BIT RA
35、M板卡上的8237提供基地址)Vendor_IDEQU 10EBH;廠商ID號Device_IDEQU 8376;設(shè)備ID號 .STACK100 .DATAIO_Bit8_BaseAddress DW?msg0 DB'BIOS不支持訪問PCI $'msg1 DB'找不到Star PCI9052板卡 $'msg2 DB'讀8位I/O空間基地址時出錯$'DAY DB 2 DUP(?) ;天,時,分,秒HOUR DB 2 DUP(?) MIN DB 2 DUP(?)SEC DB 2 DUP(?) DB'$'KEYCOUNT DB?ERR
36、OR DB 086H,88H,88H,0C0H,88HOVER DB 086H,0C8H,0A1H LED_TAB DB 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ù)口的地址 .CODE START: MOV AX,DATA MOV DS,AXNOPCALLInitPCICALLModifyAddress;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實(shí)地址CALL INIT827
37、9 ;初始化子程序CALL SET_TIME ;設(shè)置初值START4: MOVAX,0START5: CALL DL1S ;倒計(jì)時開始CALL SHOW_TIME ;調(diào)用顯示子程序STOP: CALL SCAN_KEY JNC START5 CMP AL,0C1H JZ START5 CMP AL,0C2H JZ TIME_1 CMP AL,0C3H JZ START52 JMP STOP START52: CALL CLEAR CALL SET_TIME JMP START4TIME_1: CALL CHANGE_TIME ;調(diào)用修改時間子程序 JMP START5SET_TIME PROC
38、 NEARSTART1: MOV KEYCOUNT,0 LEA DI,DAY START2: CALL SCAN_KEY ;鍵掃描 JNC START2 ;沒有按鍵 XCHG AL,KEYCOUNT INC ALJUDGE_COUNT: CMP AL,9 JNZ JUDGE01 XCHG AL,KEYCOUNTSTART_TIME: CMP AL,0C1H ;判斷鍵值是否為1 JNZ START_TIME1 ;鍵值不為1,繼續(xù)判斷 JMP EXIT_1 START_TIME1: CALL SCAN_KEY ;若鍵值不為1,就不停地掃描鍵盤,直到鍵值為1 JNC START_TIME1 JMP
39、START_TIMEJUDGE01: CMP AL,1 ;判斷鍵入的是否是第一個鍵 JNZ JUDGE02 XCHG AL,KEYCOUNT CMP AL,0C9H ;顯示天的十位 JBE SHOW1 CALL ERROR_1 CALL CLEAR SUB KEYCOUNT,1 JMP START2JUDGE02: CMP AL,2 ;判斷鍵入的是否是第二個鍵 JNZ JUDGE03 XCHG AL,KEYCOUNT JMP JUDGE04_2 ;顯示天的個位JUDGE03: CMP AL,3 ;判斷鍵入的是否是第三個鍵 JNZ JUDGE04 XCHG AL,KEYCOUNT CMP AL,
40、0C2H ;判斷時的十位是否小于等于2 JBE SHOW1 ;時的十位小于等于2,顯示 CALL ERROR_1 JMP SHOW111JUDGE04: CMP AL,4 ;判斷鍵入的是否是第四個鍵 JNZ JUDGE05 XCHG AL,KEYCOUNT MOV BL,HOUR CMP BL,2H JZ JUDGE04_1 JMP JUDGE04_2SHOW1: CALL KEY_NUM ;鍵值轉(zhuǎn)換為鍵號 STOSB ;順序存儲鍵值,為以后的顯示做準(zhǔn)備 LEA BX,LED_TAB;字型碼表 XLAT CALL WRITE_DATA ;顯示鍵值,再去鍵下一個值 JMP START2 SHOW
41、111: MOV AL,KEYCOUNT DEC AL MOV KEYCOUNT,AL AND AX,0FFH PUSH CX PUSH SI PUSH BX CALL INIT8279_1 LEA SI,DAY MOV CX,AXLOOP1: LODSB LEA BX,LED_TAB XLAT CALL WRITE_DATA LOOP LOOP1 POP CX POP SI POP BX JMP START2 JUDGE04_1: CMP AL,0C4H JB SHOW1 CALL ERROR_1 JMP SHOW111JUDGE04_2: CMP AL,0C9H JBE SHOW1 CALL ERROR_1 JMP SHOW111 START22: JMP JUDGE_COUNTJUDGE05: CMP AL,5 ;判斷鍵入的是否是第五個鍵 JNZ JUDGE06 XCHG AL,KEYCOUNT CMP AL,0C6H JB SHOW1 CALL ERROR_1 JMP SHOW111JUDGE06: CMP AL,6 ;判斷鍵入的是否是第六個鍵 JNZ JUDGE07 XCHG AL,KEYCOUNT JMP JUDGE04_2JUDGE07: CMP AL,7 ;判
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年糧食加工設(shè)備合作協(xié)議書
- 2025年防殺病毒軟件合作協(xié)議書
- 外研版新教材七年級上冊英語重點(diǎn)單詞短語默寫紙
- 2025年胃腸解痙藥合作協(xié)議書
- 2025年事業(yè)單位臨時工勞動合同樣本(三篇)
- 2025年中國房屋租賃合同(2篇)
- 2025年產(chǎn)品外協(xié)加工合同范文(2篇)
- 2025年互聯(lián)網(wǎng)辦稅軟件服務(wù)協(xié)議范文(2篇)
- 2025年交通事故死亡賠償協(xié)議范文(2篇)
- 山西省2024七年級道德與法治上冊第四單元追求美好人生第十三課實(shí)現(xiàn)人生價值情境基礎(chǔ)小練新人教版
- HR六大板塊+三支柱體系
- 慢性病患者門診身份管理方案
- 2025年高考英語一輪復(fù)習(xí)講義(新高考)第2部分語法第23講狀語從句(練習(xí))(學(xué)生版+解析)
- 連鑄工職業(yè)技能大賽考試題庫-上(單選、多選題)
- NB/T 11459-2023煤礦井下直流電法勘探規(guī)程
- 2024年全國統(tǒng)一高考數(shù)學(xué)試卷(新高考Ⅱ)含答案
- 十七個崗位安全操作規(guī)程手冊
- 爆花(2023年陜西中考語文試卷記敘文閱讀題及答案)
- 自主簽到培訓(xùn)課件-早安!幼兒園
- 2024-2030年中國大宗商品行業(yè)市場深度調(diào)研及發(fā)展趨勢與投資前景研究報(bào)告
- 一年級二年級奧數(shù)暑期培優(yōu)題庫
評論
0/150
提交評論