可編程并行接口實驗二鍵盤實驗單片機原理及應(yīng)用實驗報告_第1頁
可編程并行接口實驗二鍵盤實驗單片機原理及應(yīng)用實驗報告_第2頁
可編程并行接口實驗二鍵盤實驗單片機原理及應(yīng)用實驗報告_第3頁
可編程并行接口實驗二鍵盤實驗單片機原理及應(yīng)用實驗報告_第4頁
可編程并行接口實驗二鍵盤實驗單片機原理及應(yīng)用實驗報告_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、計算機與信息工程學(xué)院設(shè)計性實驗報告專業(yè):通信工程 年級/班級:2011級 20132014學(xué)年第一學(xué)期課程名稱單片機原理及應(yīng)用指導(dǎo)教師岳明本組成員學(xué)號姓名實驗地點計科樓214實驗時間周五3-4節(jié)項目名稱8255A可編程并行接口實驗二鍵盤實驗實驗類型設(shè)計性一、實驗?zāi)康模?1、掌握8255A編程原理。 2、了解鍵盤電路的工作原理。 3、掌握鍵盤接口電路的編程方法。二、實驗設(shè)備: EL-8051-III型單片機實驗箱三、實驗原理: 1、識別鍵的閉合,通常采用行掃描法和行反轉(zhuǎn)法。 行掃描法是使鍵盤上某一行線為低電平,而其余行接高電平,然后讀取列值,如所讀列值中某位為低電平,表明有鍵按下,否則掃描下一行

2、,直到掃完所有行。 本實驗例程采用的是行反轉(zhuǎn)法。 行反轉(zhuǎn)法識別鍵閉合時,要將行線接一并行口,先讓它工作于輸出方式,將列線也接到一個并行口,先讓它工作于輸入方式,程序使CPU通過輸出端口往各行線上全部送低電平,然后讀入列線值,如此時有某鍵被按下,則必定會使某一列線值為0。然后,程序?qū)蓚€并行端口進行方式設(shè)置,使行線工作于輸入方式,列線工作于輸出方式,并將剛才讀得的列線值從列線所接的并行端口輸出,再讀取行線上的輸入值,那么,在閉合鍵所在的行線上的值必定為0。這樣,當一個鍵被按下時,必定可以讀得一對唯一的行線值和列線值。 2、程序設(shè)計時,要學(xué)會靈活地對8255A的各端口進行方式設(shè)置。 3、程序設(shè)計時

3、,可將各鍵對應(yīng)的鍵值(行線值、列線值)放在一個表中,將要顯示的0F字符放在另一個表中,通過查表來確定按下的是哪一個鍵并正確顯示出來。 實驗題目 利用實驗箱上的8255A可編程并行接口芯片和矩陣鍵盤,編寫程序,做到在鍵盤上每按一個數(shù)字鍵(0F),用發(fā)光二極管將該代碼顯示出來。四、實驗步驟: 將鍵盤RL10RL17接8255A的PB0PB7;KA10KA12接8255A的PA0PA2;PC0PC7接發(fā)光二極管的L1L8;8255A芯片的片選信號8255CS接CS0。五、實驗電路:六、程序框圖T8.ASM 七、參考程序:T8.ASM NAME t8 ;8255鍵盤實驗 PA EQU 0CFA0H P

4、B EQU PA+1 PC0 EQU PB+1 PCTL EQU PC0+1 CSEG AT 4000H LJMP START CSEG AT 4100H START: MOV 42H,#0FFH ;42H中放顯示的字符碼,初值為0FFH STA1: MOV DPTR,#PCTL ;設(shè)置控制字,ABC口工作于方式0 ;AC口輸出而B口用于輸入 MOV A,#82H MOVX DPTR,A LINE: MOV DPTR,#PC0 ;將字符碼從C口輸出顯示 MOV A,42H CPL A MOVX DPTR,A MOV DPTR,#PA ;從A口輸出全零到鍵盤的列線 MOVX DPTR,A MOV

5、 DPTR,#PB ;從B口讀入鍵盤行線值 MOVX A,DPTR MOV 40H,A ;行線值存于40H中 CPL A ;取反后如為全零 ;表示沒有鍵閉合,繼續(xù)掃描 JZ LINE MOV R7,#10H ;有鍵按下,延時10MS去抖動 DL0: MOV R6,#0FFH DL1: DJNZ R6,DL1 DJNZ R7,DL0 MOV DPTR,#PCTL ;重置控制字,讓A為輸入,BC為輸出 MOV A,#90H MOVX DPTR,A MOV A,40H MOV DPTR,#PB ;剛才讀入的行線值取出從B口送出 MOVX DPTR,A MOV DPTR,#PA ;從A口讀入列線值 M

6、OVX A,DPTR MOV 41H,A ;列線值存于41H中 CPL A ;取反后如為全零 JZ STA1 ;表示沒有鍵按下 MOV DPTR,#TABLE ;TABLE表首地址送DPTR MOV R7,#18H ;R7中置計數(shù)值16 MOV R6,#00H ;R6中放偏移量初值 TT: MOVX A,DPTR ;從表中取鍵碼前半段字節(jié),行線值與實 CJNE A,40H,NN1 ;際輸入的行線值相等嗎?不等轉(zhuǎn)NN1 INC DPTR ;相等,指針指向后半字節(jié),即列線值 MOVX A,DPTR ;列線值與實際輸入的列線值 CJNE A,41H,NN2 ;相等嗎?不等轉(zhuǎn)NN2 MOV DPTR,

7、#CHAR ;相等,CHAR表基址和R6中的偏移量 MOV A,R6 ;取出相應(yīng)的字符碼 MOVC A,A+DPTR MOV 42H,A ;字符碼存于42H BBB: MOV DPTR,#PCTL ;重置控制字,讓AC為輸出,B為輸入 MOV A,#82H MOVX DPTR,A AAA: MOV A,42H ;將字符碼從C口送到二極管顯示 MOV DPTR,#PC0 CPL A MOVX DPTR,A MOV DPTR,#PA ;判斷按下的鍵是否釋放 CLR A MOVX DPTR,A MOV DPTR,#PB MOVX A,DPTR CPL A JNZ AAA ;沒釋放轉(zhuǎn)AAA MOV R

8、5,#2 ;已釋放則延時0.2秒,減少總線負擔 DEL1: MOV R4,#200 DEL2: MOV R3,#126 DEL3: DJNZ R3,DEL3 DJNZ R4,DEL2 DJNZ R5,DEL1 JMP START ;轉(zhuǎn)START NN1: INC DPTR ;指針指向后半字節(jié)即列線值 NN2: INC DPTR ;指針指向下一鍵碼前半字節(jié)即行線值 INC R6 ;CHAR表偏移量加一 DJNZ R7,TT ;計數(shù)值減一,不為零則轉(zhuǎn)TT繼續(xù)查找 JMP BBB TABLE: DW 0FE06H,0FD06H,0FB06H,0F706H;TABLE為鍵值表,每個鍵位占 DW 0BF06H,07F06H,0FE05H,0FD05H; 兩個字節(jié),第一個字節(jié)為行 DW 0EF05H,0DF05H,0BF05H,07F05H ;線值,第二個為列線值 DW 0FB03H,0F703H,0EF03H,0DF03H; CHAR: DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ;字符碼表 DB 0AH,0BH,0CH,0DH,0EH,0FH,10H,1

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論