單片機鍵盤原理和實現(xiàn)_第1頁
單片機鍵盤原理和實現(xiàn)_第2頁
單片機鍵盤原理和實現(xiàn)_第3頁
單片機鍵盤原理和實現(xiàn)_第4頁
單片機鍵盤原理和實現(xiàn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、§8.3 鍵盤接口技術(shù)一、 鍵盤輸入應(yīng)解決的問題鍵盤是一組按鍵的集合,它是最常用的單片機輸入設(shè)備操作人員可以通過鍵盤輸入數(shù)據(jù)或命令,實現(xiàn)簡單的人機通訊。鍵是一種常開型按鈕開關(guān),平時(常態(tài))鍵的二個觸點處于斷開狀態(tài),按下鍵時它們才閉合(短路)。鍵盤分編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用的硬件譯碼器實現(xiàn)并產(chǎn)生編號或鍵值的稱為編碼鍵盤,如:ASC碼鍵盤、BCD碼鍵盤等;靠軟件識別的稱為非編碼鍵盤。在單片機組成的測控系統(tǒng)及智能化儀器中用得最多的是非編碼鍵盤。本節(jié)著重討論非編碼鍵盤的原理、接口技術(shù)和程序設(shè)計。鍵盤中每個按鍵都是個常開關(guān)電路,如圖所示。1. 按鍵的確認(rèn): P1.7=1

2、無按鍵; P1.7=0 有按鍵;2. 去抖動 去抖動的方法: 硬件去抖動 采用RS觸發(fā)器:優(yōu)點: 速度快,實時, 缺點: 增加了硬件成本 軟件去抖動 采用延時方法 延時510ms 延時510ms P1.7=0 確認(rèn)P1.7=0 P1.7=1(去前沿抖動) (去后沿抖動) 二、 獨立式鍵盤 每個I/O口連接一個按,S1 P1.0S2 P1.1.S8 P1.7 軟件: START: MOV P1,#0FFH ;置P1口為高電平JNB P1.0, RS1 ; S1按下,程序去執(zhí)行RS1JNB P1.1, RS2 ; S2按下,程序去執(zhí)行RS2JNB P1.2, RS3 ; S3按下,程序去執(zhí)行RS3

3、JNB P1.3, RS4 ; S4按下,程序去執(zhí)行RS4JNB P1.4, RS5 ; S5按下,程序去執(zhí)行RS5JNB P1.5, RS6 ; S6按下,程序去執(zhí)行RS6JNB P1.6, RS7 ; S7按下,程序去執(zhí)行RS7JNB P1.7, RS8 ; S8按下,程序去執(zhí)行RS8AJMPSTART ; 繼續(xù)掃描按鍵.RS1:AJMP PK1 ;RS2:AJMP PK2;RS3:AJMP PK3;RS4:AJMP PK4;RS5:AJMP PK5;RS6:AJMP PK6;RS7:AJMP PK7;RS8:AJMP PK8;AJMP START ; 無鍵按下,繼續(xù)掃描PK1:. ; 按

4、鍵S1功能處理程序 AJMP START ; 處理S1按鍵后, 繼續(xù)掃描PK2:. ; 按鍵S2功能處理程序 AJMP START .PK8: ; 按鍵S8功能處理程序 AJMP START ; 處理S8按鍵后, 繼續(xù)掃描優(yōu)點: 連線簡單,程序容易.缺點: 太浪費資源適用于按鍵較少、I/O口空閑的場合。三、行列式非編碼鍵盤接口方法 按鍵較多時,一般采用行列式鍵盤.采用掃描方式,軟件掃描方式有三種: 程序掃描方式: 當(dāng)CPU空閑時,掃描鍵盤,判斷有無鍵按下. 定時掃描方式: 利用CPU的定時器,每隔一定時間掃描一次鍵盤. 中斷掃描方式: 在硬件上采用中斷,有鍵按下時,產(chǎn)生中斷, 由中斷服務(wù)程序來

5、處理.下面是16個按鍵,構(gòu)成的4×4鍵盤行線: 四根,接P1.0-P1.3 列線: 四根,接P1.4-P1.7 程序掃描法原理:輸出低電平,讀P1.4P1.7,若全為1,無鍵按下若不全為1,有鍵按下 在有鍵按下的情況下,進(jìn)一步判斷是那個鍵按下 使依次輸出低電平,讀判斷有無鍵按下子程序, 程序名: KAP鍵盤查詢子程序KAP:MOV P1,#0F0H ;行線輸出低電平,列線輸出高電平 MOVA,P1 ;P1口讀入ACPL A ;取反ANL A,#0F0H ;取高四位,即RET程序出口: A=0, 則無鍵按下. A0 則有鍵按下.去抖動-延時10ms子程序: 程序名D10MSD10MS:

6、MOVR6, #14H;DL:MOV R7,#0FFH; DJNZ R7,$DJNZ R6,DLRETKINP:LCALLKAP; 調(diào)鍵盤查詢子程序,JNZKP1; A0,有鍵按下SJMP END_KINP ; A=0,無鍵按下,退出按鍵查詢程序KP1:LCALLD10MS;延時10MS,去抖動LCALLKAP;再次查詢鍵盤,JNZKP2; A0,確認(rèn)有鍵按下SJMPEND_KINP; A=0,誤操作,重新查詢KP2為取鍵值子程序KP2:MOVR2,#0FEH; R2為行掃描值MOVR4,#00H; R4初值為第0行行首鍵號CLRF0; F0=0表示正在掃描鍵盤KP4:MOV P1,R2; 掃

7、描行為低MOV A,P1; 讀P1JBACC.4, L1; 第0列不為低,則檢查第1列MOVA,#00H; 為低,則行首鍵值送入AAJMPKP5; KP5L1:JB ACC.5,L2; 檢查第一列MOVA,#04H; 第一列行首鍵值送入AAJMPKP5L2:JB ACC.6 ,L3 ; 檢查第二列MOVA,#08H; 第二列行首鍵值送入AAJMPKP5L3:JB ACC.7 , NEXT; 檢查第三列,若為1,則檢查下一行MOVA,#0CH; 第三列行首鍵值送入AKP5:ADDA , R4; A A+R4,鍵值調(diào)整PUSHA; KP3:LCALLD10MS; 后沿去抖動LCALLKAP; 查詢按鍵是否釋放JNZKP3; A0 未釋放,繼續(xù)查詢POPA; 鍵已釋放,彈出鍵值RETNEXT

溫馨提示

  • 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

提交評論