單片機(jī)鍵盤顯示實(shí)驗(yàn)報(bào)告_第1頁
單片機(jī)鍵盤顯示實(shí)驗(yàn)報(bào)告_第2頁
單片機(jī)鍵盤顯示實(shí)驗(yàn)報(bào)告_第3頁
單片機(jī)鍵盤顯示實(shí)驗(yàn)報(bào)告_第4頁
單片機(jī)鍵盤顯示實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)的鍵盤和顯示實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)?zāi)康?. 掌握單片機(jī)I/O的工作方式;2. 掌握單片機(jī)以串行口方式0工作的LED顯示;3. 掌握鍵盤和LED顯示的編程方法。 實(shí)驗(yàn)器材1. G6W仿真器一臺2. MCS51實(shí)驗(yàn)板一臺3. PC機(jī)一臺4. 電源 一臺 實(shí)驗(yàn)內(nèi)容及要求實(shí)驗(yàn)硬件線路圖見附圖從線路圖可見,8051單片機(jī)的P1口作為8個按鍵的輸入端,構(gòu)成獨(dú)立式鍵盤。四個LED顯示器通過四個串/并移位寄存器74LS164接口至8051的串行口,該串行口應(yīng)工作在方式0發(fā)送狀態(tài)下,RXD端送出要顯示的段碼數(shù)據(jù),TXD則作為發(fā)送時鐘來對顯示數(shù)據(jù)進(jìn)行移位操作。編寫一個計(jì)算器程序,當(dāng)某一鍵按下時可執(zhí)行相應(yīng)的加、減、乘

2、、除運(yùn)算方式,在四個顯示器上顯示數(shù)學(xué)算式和最終計(jì)算結(jié)果。注:通過按鍵來選擇加、減、乘、除四種運(yùn)算方式。輸入兩個數(shù)字均為一位十進(jìn)制數(shù),可預(yù)先放在內(nèi)存中。 實(shí)驗(yàn)框圖 (見下頁) 思考題1. 當(dāng)鍵盤采用中斷方式時,硬件電路應(yīng)怎樣連接? P1.4P1.7是鍵輸出線,P1.0P1.3是掃描輸入線。輸入與門用于產(chǎn)生按鍵中斷,其輸入端與各列線相連,再通過上拉電阻接至+5 V電源,輸出端接至8051的外部中斷輸入端。 2.74LS164移位寄存器的移位速率是多少?實(shí)驗(yàn)中要求計(jì)算的式子和結(jié)果之間相差一秒,移位寄存器的移位速率應(yīng)該是每秒一位吧。其實(shí)這個問題確實(shí)不知道怎么回答。否有否P1口置輸入讀P1口開 始顯示“

3、0000”是否有鍵按下?延遲消抖是否有鍵按下?是讀鍵碼加法運(yùn)算減法運(yùn)算除運(yùn)算LED顯示用的段碼與教科書所提供的不同,本實(shí)驗(yàn)采用如下段碼:顯示數(shù)符段碼顯示數(shù)符段碼0BBHADBH109HBF1H2EAHCB2H36BHDE9H459HEF2H573HFD2H6F3H40H70BH04H8FBHA1H97BH1AH滅00HPDAH實(shí)驗(yàn)代碼:ORG 0000HAJMP MAINORG 0030HMAIN:MOV 41H,#0BBH ;對幾個存放地址進(jìn)行初始化 MOV 42H,#0BBH MOV 43H,#0BBH MOV 44H,#0BBH MOV SCON,#00H ;初始化串行口控制寄存器,設(shè)置

4、其為方式0 LCALL DISPLAY ;初始化顯示KEY:MOV R3,#08H;用來存放兩個數(shù)據(jù) MOV R4,#02H MOV P1,#0FFH ;初始化P1口 MOV A,P1 ;讀取按鍵狀態(tài) CPL A ;取正邏輯,高電平表示有鍵按下 JZ KEY ;A=0時無鍵按下,重新掃描鍵盤 LCALL DELAY1;消抖 MOV A,P1 ;再次讀取按鍵狀態(tài) CPL A JZ KEY ;再次判別是否有鍵按下 PUSH AKEY1:MOV A,P1 CPL A ANL A,#0FH ;判別按鍵釋放 JNZ KEY1 ;按鍵未釋放,等待 LCALL DELAY1;釋放,延時去抖動 POP A J

5、B ACC.0,ADD1 ;K1按下轉(zhuǎn)去ADD1 JB ACC.1,SUB1 ;K1按下轉(zhuǎn)去SUB1 JB ACC.2,MUL1 ;K1按下轉(zhuǎn)去MUL1 JB ACC.3,DIV1 ;K1按下轉(zhuǎn)去DIV1 LJMP KEYADD1:LCALL BUFFER ;顯示加數(shù)和被加數(shù) MOV 43H,#049H LCALL DISPLAY ;顯示加號 MOV A,R3 ADD A,R4 DA A MOV R3,A ;相加結(jié)果放入R6 ANL A,#0FH MOV R4,A ;結(jié)果個位放入R7 MOV A,R3 SWAP A ;半字節(jié)交換,高四位放入低四位 ANL A,#0FH MOV R3,A ;結(jié)果

6、的高位放入R6 LCALL L;顯示緩存區(qū)設(shè)置 LCALL DELAY2;延時一秒后顯示 LCALL DISPLAY LJMP KEYSUB1:LCALL BUFFER ;顯示減數(shù)和被減數(shù) MOV 43H,#40H LCALL DISPLAY ;顯示減號 MOV A,R3 CLR CY ;CY清零 SUBB A,R4 ;做減法 PUSH A RLC A ;帶進(jìn)位循環(huán)左移,最高位放入CY JC F ;判斷最高位,若為1則跳轉(zhuǎn)到負(fù)數(shù)ZHENG: POP A MOV R4,A MOV R3,#00H ;高位清零 SJMP OUTFU:POP A CPL A ;取絕對值 INC A MOV R4,A

7、MOV R3,#11H ;顯示負(fù)號OUT: LCALL L ;顯示緩存區(qū)設(shè)置 LCALL DELAY2 ;延時1s后顯示 LCALL DISPLAY LJMP KEYMUL1:LCALL BUFFER ;顯示兩位乘數(shù) MOV 43H,#99H LCALL DISPLAY ;顯示乘號 MOV A,R3 MOV B,R4 MUL AB ;結(jié)果放入AB,A中是低8位,B中是高8位 MOV B,#0AH DIV AB ;十進(jìn)制轉(zhuǎn)換 MOV R4,B ;結(jié)果個位放入R7MOV R3,A ;結(jié)果的十位放入R6 LCALL L LCALL DELAY2 LCALL DISPLAY ;延時1s后顯示 LJMP

8、 KEYDIV1:LCALL BUFFER ;顯示除數(shù)和被除數(shù) MOV 43H,#62H LCALL DISPLAY ;顯示除號 MOV A,R3 MOV B,R4 DIV AB ;A除以B MOV R4,B ;余數(shù)放在R4中 MOV R3,A ;商放在R3中 MOV A,R4 MOVC A,A+DPTR ;調(diào)用段選號 MOV 41H,A ;顯示余數(shù) MOV A,R3 MOVC A,A+DPTR MOV 43H,A ;顯示商 MOV 42H,#00H MOV 44H,#00H LCALL DELAY2 ;延時1S后顯示 LCALL DISPLAY LJMP KEYBUFFER: MOV 41H

9、,#22H ;顯示初始化,在做計(jì)算之前顯示兩個操作數(shù),顯示等號 MOV DPTR,#TABL MOV A,R4 MOVC A,A+DPTR MOV 42H,A MOV A,R3 MOVC A,A+DPTR MOV 44H,A RETDISPLAY:MOV R5,#04H;共四位需要顯示 MOV R0,#41HDISPLAY1:MOV A,R0 MOV SBUF,ADISPLAY2:JNB TI,DISPLAY2;是否傳完了 CLR TI INC R0 DJNZ R5,DISPLAY1 RETL:MOV A,R4 MOVC A,A+DPTR MOV 41H,A ;R4對應(yīng)的段碼 MOV A,R3

10、 MOVC A,A+DPTR MOV 42H,A ;R3對應(yīng)的段碼 MOV 43H,#00H MOV 44H,#00H RETDELAY1: ;普通延時MOV R1,#20HDS1:MOV R2,#0FFHDS2:DJNZ R2,DS2 DJNZ R1,DS1 RETDELAY2:MOV R6,#14H ;定時1S MOV TMOD,#01HDS3:MOV TH0,#3CH MOV TL0,#0B0H ;50ms SETB TR0LOOP:JNB TF0,LOOP CLR TF0 CLR TR0 DJNZ R6,DS3 ;1s到,中斷返回 RETTABL:DB 0BBH 09H 0EAH 6B

11、H ;段碼表 DB 59H 73H 0F3H 0BH DB 0FBH 7BH 00H 0DBH DB 0F1H 0B2H 0E9H 0F2H DB 0D2H 40H實(shí)驗(yàn)結(jié)果及分析按鍵1:8+2= 結(jié)果:10按鍵2:8-2= 結(jié)果: 6按鍵3:8*2= 結(jié)果:16按鍵4:8/2= 結(jié)果:4從上面的結(jié)果可以看出,本次實(shí)驗(yàn)基本完成了實(shí)驗(yàn)要求。本次實(shí)驗(yàn)主要運(yùn)用了鍵盤接口和LED顯示方面的知識,掌握了如何讀取鍵盤狀態(tài)和消抖:MOV P1,#0FFH ;初始化P1口 MOV A,P1 ;讀取按鍵狀態(tài) CPL A ;取正邏輯,高電平表示有鍵按下 JZ KEY ;A=0時無鍵按下,重新掃描鍵盤 LCALL DELAY1;消抖 MOV A,P1 ;再次讀取按鍵狀態(tài) CPL A JZ KEY ;再次判別是否有鍵按下 PUSH AKEY1:MOV A,P1 CPL A ANL A,#0FH ;判別按鍵釋放 JNZ KEY1 ;按鍵未釋放,等待 LCALL DELAY1;釋放,延時去抖動 POP A在計(jì)算過程的顯示中復(fù)習(xí)了定時器的知識:DELAY2:MOV R6,#14H ;定

溫馨提示

  • 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

提交評論