數(shù)碼管顯示和鍵盤掃描實(shí)驗(yàn)資料_第1頁
數(shù)碼管顯示和鍵盤掃描實(shí)驗(yàn)資料_第2頁
數(shù)碼管顯示和鍵盤掃描實(shí)驗(yàn)資料_第3頁
數(shù)碼管顯示和鍵盤掃描實(shí)驗(yàn)資料_第4頁
數(shù)碼管顯示和鍵盤掃描實(shí)驗(yàn)資料_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)三 LED 數(shù)碼管動態(tài)顯示及 4 X4 鍵盤控制實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康?.鞏固多位數(shù)碼管動態(tài)顯示方法。2.掌握行掃描法矩陣式按鍵的處理方法。3.熟練應(yīng)用 AT89S52學(xué)習(xí)板實(shí)驗(yàn)裝置,進(jìn)一步掌握 keil C51的使用方法。 二、實(shí)驗(yàn)內(nèi)容使用 AT89S52學(xué)習(xí)板上的 4位 LED 數(shù)碼管和 4 X 4矩陣鍵盤陣列做多位數(shù)碼 管動態(tài)顯示及行掃描法鍵盤處理功能實(shí)驗(yàn)。用 P0口做數(shù)據(jù)輸出,利用 P1做鎖存器 74HC573的鎖存允許控制,編寫程序使 4位 LED 數(shù)碼管按照動態(tài)顯示方式顯示一 定的數(shù)字;按照行掃描法編寫程序?qū)?4 X 4矩陣鍵盤陣列進(jìn)行定期掃描,計(jì)算鍵值 并在數(shù)碼管上顯示。三、實(shí)驗(yàn)

2、系統(tǒng)組成及工作原理1. 4位 LED 數(shù)碼管和 4 X 4矩陣鍵盤陣列電路原理圖 2. 多位數(shù)碼管動態(tài)顯示方式 IO(2說明 4位共陰極 LED 動態(tài)顯示 3456數(shù)字的工作過程首先由 I/O口(1送出數(shù)字 3的段選碼 4FH 即數(shù)據(jù) 01001111到 4個 LED 共 同的段選線上,接著由 I/O口(2送出位選碼0111到位選線上,其中數(shù)據(jù)的高 4位 為無效的,唯有送入左邊第一個 LED 的 COM 端 D3為低電平 “ 0” ,因此只有該 LED 的發(fā)光管因陽極接受到高電平 “ 1” 的 g 、 d 、 c 、 b 、 a 段有電流流過而被點(diǎn)亮, 也就是顯示出數(shù)字 3, 而其余 3個 L

3、ED 因其 COM 端均為高電平 “ 1” 而無法點(diǎn)亮; 顯 示一定時間后,再由 I/O口 (1 送出數(shù)字 4的段選碼 66H 即 01100110到段選線上, 接著由 I/O口(2送出點(diǎn)亮左邊第二個 LED 的位選碼1011到位選線上,此時只有該 LED 的發(fā)光管因陽極接受到高電平 “ 1” 的 g 、 f 、 c 、 b 段有電流流過因而被點(diǎn)亮,也 就是顯示出數(shù)字 4,而其余 3位 LED 不亮;如此再依次送出第三個 LED 、第四個 LED 的段選與位選的掃描代碼,就能一 一分別點(diǎn)亮各個 LED ,使 4個 LED 從左至右依次顯示 3、 4、 5、 6。3.4 X 4 矩陣式按鍵掃描處

4、理程序行掃描法又稱逐行零掃描查詢法, 即逐行輸出行掃描信號 “ 0” , 使各行依次為低 電平,然后分別讀入列數(shù)據(jù),檢查此(低電平行中是否有鍵按下。如果讀得某列 線為低電平,則表示此(低電平行線與此列線的交叉處有鍵按下,再對該鍵進(jìn)行 譯碼計(jì)算出鍵值,然后轉(zhuǎn)入該鍵的功能子程序入口地址;如果沒有任何一根列線為 低電平,則說明此 (低電平 行沒有鍵按下。接著進(jìn)行下一行的 “ 0” 行掃描與列讀入, 直到 8行全部查完為止,若無鍵按下則返回。有時為了快速判斷鍵盤中是否有鍵按下,也可先將全部行線同時置為低電平, 然后檢測列線的電平狀態(tài),若所有列線均為高電平,則說明鍵盤中無鍵按下,立即 返回;若要有一列的

5、電平為低,則表示鍵盤中有鍵被控下,然后再如上那樣進(jìn)行逐 行掃描。四、實(shí)驗(yàn)設(shè)備和儀器PC 機(jī) 一臺AT89S52單片機(jī)學(xué)習(xí)板、下載線 一套五、實(shí)驗(yàn)步驟1.按時實(shí)驗(yàn)要求編寫源程序(實(shí)驗(yàn)前寫進(jìn)行軟件模擬調(diào)試。2.軟件調(diào)試好,連接硬件電路。3.下載程序,進(jìn)行硬件調(diào)試,觀察數(shù)碼管顯示的情況,與設(shè)計(jì)的是否相同。 六、實(shí)驗(yàn)參考程序1. 4位 LED 數(shù)碼管動態(tài)顯示掃描程序ORG 0000HMAIN:MOV 30H,#0 ; 定義 4個字節(jié)空間,放置待顯示數(shù)字“ 1、 2、 3、 4” MOV 31H,#1MOV 32H,#2MOV 33H,#3MOV P0,#00HDISP:MOV R0,#30H ; 把待

6、顯示數(shù)字首地址送給 R0寄存器MOV R1,#4 ; 把 R1作為顯示數(shù)碼管位數(shù)計(jì)數(shù)器MOV R2,#0FEH ; 把首位數(shù)碼管的位選碼暫存在 R2寄存器中MOV DPTR,#TAB ; 把段選碼存儲空間的首地址給 DPTRLOOP1:MOV A,R0 ; 把待顯示數(shù)字的段選碼提取出來MOVC A,A+DPTR;MOV P0,A ; 把段選碼放在數(shù)據(jù)總線上SETB P1.1 ; 段選碼鎖存器的鎖存允許置位NOPCLR P1.1MOV P0, R2 ; 把位選碼放在數(shù)據(jù)總線上SETB P1.2 ; 位選碼鎖存器的鎖存允許置位NOPCLR P1.2RL A ; 下一位待顯示數(shù)碼管位選碼預(yù)處理MOV

7、 R2,AINC R0ACALL DEL ; 調(diào)用延時子程序DJNZ R1,LOOP1;4位沒有顯示完,轉(zhuǎn)去顯示下一位SJMP DISP ;4位顯示完,再次進(jìn)行新一輪的掃描 /*定義段選碼 */TAB:DB 0C0H;0DB 0F9H;1DB 0A4H;2DB 0B0H;3DB 099H;4DB 092H;5DB 082H;6DB 0F8H;7DB 080H;8DB 090H;9/*延時 5ms 子程序 */DEL:MOV R7,#10LOOP2:MOV R6,#250DJNZ R6,$DJNZ R7,LOOP2RETEND2. 鍵盤掃描及數(shù)碼管動態(tài)顯示程序ORG 0000HMAIN:MOV

8、30H,#10 ; 定義 4個字節(jié)空間,放置待顯示數(shù)字 MOV 31H,#10MOV 32H,#10MOV 33H,#10MOV P0,#00HMOV 40H,#0FFH;定義 1個字節(jié)空間,放置鍵值天 津 機(jī) 電 職 業(yè) 技 術(shù) 學(xué) 院 教 師 備 課 紙 KEY: ACALL KEYSCAN ;調(diào)用鍵盤全掃描子程序 JNC LK1 ;有按鍵按下,轉(zhuǎn)去延時去抖 ACALL DISPLAY ;無按鍵按下,調(diào)用顯示子程序 AJMP KBZ ;送無鍵按下標(biāo)志 LK1: ACALL DISPLAY ;兩次調(diào)用顯示,實(shí)現(xiàn)延時功能 ACALL DISPLAY ACALL KEYSCAN ;延時去抖后,再

9、次調(diào)用鍵盤全掃描子程序 JNZ LK2 ;確實(shí)有按鍵按下,轉(zhuǎn)入逐行掃描 AJMP KBZ ;抖動,無按鍵 /*逐行掃描程序模塊*/ LK2: MOV R7,#0EFH ;第一行行線置為 0 MOV R6,#00H ;行數(shù)寄存器 COL0: MOV P3,R7 ;第一行行線置為 0 MOV A,P3 ;讀入列線狀態(tài) JB ACC.0,COL1 ;若不是第一列按鍵按下,轉(zhuǎn)查第二列 MOV A,#01H AJMP LKP ;若是第一列按鍵按下,則記下列值為 1 ;轉(zhuǎn)去計(jì)算鍵值 COL1: JB ACC.1,COL2;若不是第二列按鍵按下,轉(zhuǎn)查第三列 MOV A,#02H AJMP LKP ;若是第二

10、列按鍵按下,則記下列值為 2 ;轉(zhuǎn)去計(jì)算鍵值 COL2: JB ACC.2,COL3;若不是第三列按鍵按下,轉(zhuǎn)查第四列 MOV A,#03H ;若是第三列按鍵按下,則記下列值為 3 AJMP LKP COL3: ;轉(zhuǎn)去計(jì)算鍵值 JB ACC.3,NEXTR ;若不是第四列按鍵按下,轉(zhuǎn)去掃描下一行 MOV A,#04H AJMP LKP ;若是第四列按鍵按下,則記下列值為 4 ;轉(zhuǎn)去計(jì)算鍵值 /*鍵值計(jì)算程序 鍵值行值4列值*/ 第 頁 天 津 機(jī) 電 職 業(yè) 技 術(shù) 學(xué) 院 教 師 備 課 紙 LKP: MOV R5,A; MOV A,R6 MOV B,#04H MUL AB ADD A,R5

11、 MOV 40H,A MOV A,40H MOV B,#10 ; DIV AB MOV 32H,A MOV 33H,B ACALL DISPLAY ; AJMP KEY /*下一行掃描值預(yù)處理*/ NEXTR: INC R6; MOV A,R7 ; JNB ACC.7,KBZ ; RL A ; MOV R7,A AJMP COL0 KBZ: MOV 40H,#0FFH;若無按鍵按下,則用 FF 表示鍵值 AJMP KEY /*鍵盤全掃描子程序*/ KEYSCAN: MOV P3,#0FH ; NOP MOV P3,#0FH; MOV A,P3 CPL A ANL A,#0FH RET 第 頁

12、天 津 機(jī) 電 職 業(yè) 技 術(shù) 學(xué) 院 教 師 備 課 紙 /*LED 數(shù)碼管顯示鍵值子程序*/ DISPLAY: MOV R0,#30H; MOV R1,#4; MOV R2,#0FEH; MOV DPTR,#TAB; LOOP1: MOV A,R0;把待顯示數(shù)字的段選碼提取出來 MOVC A,A+DPTR; MOV P0,A;把段選碼放在數(shù)據(jù)總線上 SETB P1.1;鎖存器的鎖存允許置位 NOP CLR P1.1 MOV A,R2;把段選碼放在數(shù)據(jù)總線上 MOV P0,A SETB P1.2; NOP CLR P1.2 RL A MOV R2,A INC R0 ACALL DEL DJNZ R1,LOOP1 RET /*定義段選碼*/ TAB: DB 0C0H;0 DB 0F9H;1 DB DB DB DB 0A4H;

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論