任務(wù)十鍵盤接口_第1頁
任務(wù)十鍵盤接口_第2頁
任務(wù)十鍵盤接口_第3頁
任務(wù)十鍵盤接口_第4頁
任務(wù)十鍵盤接口_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、任務(wù)十鍵盤接口按鍵及鍵盤按鍵及鍵盤u鍵盤:由若干個按鍵組成的開關(guān)矩陣,是實現(xiàn)人鍵盤:由若干個按鍵組成的開關(guān)矩陣,是實現(xiàn)人機對話或人機通信的常用工具。機對話或人機通信的常用工具。u 根據(jù)按鍵的識別方式分:根據(jù)按鍵的識別方式分:由硬件識別鍵的閉合由硬件識別鍵的閉合編碼鍵盤編碼鍵盤由軟件識別鍵的閉合由軟件識別鍵的閉合未編碼鍵盤未編碼鍵盤u 按鍵開關(guān):機械彈性開關(guān),機械開關(guān)在閉合及按鍵開關(guān):機械彈性開關(guān),機械開關(guān)在閉合及斷開瞬間均伴隨有一連串的抖動斷開瞬間均伴隨有一連串的抖動 ,時間一般為,時間一般為 510ms。按鍵及鍵盤按鍵及鍵盤鍵按下閉合穩(wěn)定前沿抖動后沿抖動釋放穩(wěn)定鍵釋放按鍵時的抖動按鍵時的抖動

2、u 消除鍵抖動可用硬件和軟件兩種方法消除鍵抖動可用硬件和軟件兩種方法硬件消抖:硬件消抖:RS觸發(fā)器觸發(fā)器軟件消抖:延時軟件消抖:延時10ms左右再檢測左右再檢測Vcc(+5V)Vcc(+5V)AB輸出RS觸發(fā)器消抖電路觸發(fā)器消抖電路鍵盤掃描控制方式鍵盤掃描控制方式u 程序控制方式:鍵盤處理程序固定在主程序的某個程序程序控制方式:鍵盤處理程序固定在主程序的某個程序段。段。特點:對特點:對CPU工作影響小工作影響小應(yīng)考慮鍵盤處理程序運行間隔周期不能太長,否則影響對鍵盤輸應(yīng)考慮鍵盤處理程序運行間隔周期不能太長,否則影響對鍵盤輸入響應(yīng)的及時性。入響應(yīng)的及時性。u 定時控制掃描方式:利用定時定時控制掃描

3、方式:利用定時/計數(shù)器每隔一段時間產(chǎn)計數(shù)器每隔一段時間產(chǎn)生定時中斷,生定時中斷,CPU響應(yīng)中斷后對鍵盤進行掃描。響應(yīng)中斷后對鍵盤進行掃描。特點:采用定時特點:采用定時/計數(shù)器定時控制掃描間隔。計數(shù)器定時控制掃描間隔。定時時間不能太長,否則影響對鍵盤輸入響應(yīng)的及時性。定時時間不能太長,否則影響對鍵盤輸入響應(yīng)的及時性。u 中斷控制方式:利用外部中斷源,響應(yīng)鍵盤輸入信號。中斷控制方式:利用外部中斷源,響應(yīng)鍵盤輸入信號。特點:能及時處理鍵盤輸入,又能提高特點:能及時處理鍵盤輸入,又能提高CPU運行效率運行效率要占用一個中斷資源。要占用一個中斷資源。獨立式未編碼鍵盤接口獨立式未編碼鍵盤接口u 獨立式鍵盤

4、:各按鍵相互獨立地接通一條輸入數(shù)據(jù)線獨立式鍵盤:各按鍵相互獨立地接通一條輸入數(shù)據(jù)線 。u 查詢方式:查詢方式:輸入線平時為高電平;輸入線平時為高電平;若有任意鍵按下時,輸若有任意鍵按下時,輸入線為低電平。入線為低電平。u 優(yōu)點:電路、編程簡單優(yōu)點:電路、編程簡單 u 缺點:按鍵較多時,占缺點:按鍵較多時,占用較多用較多I/OI/O口線??诰€。K0K1K2 例、用查詢方式編寫?yīng)毩⑹桨存I程序例、用查詢方式編寫?yīng)毩⑹桨存I程序# include unsigned char key_value;void main(void) P1=P1|0 x07;/設(shè)置設(shè)置P1.0-P1.2為輸入狀態(tài)為輸入狀態(tài)whi

5、le(1) key_value=P1&0 x07;/讀讀P1.0-P1.2的狀態(tài)的狀態(tài) switch(key_value) case 0 x06: ; break;/K0按下按下case 0 x05: ; break; /K1按下按下case 0 x03: ; break; /K2按下按下 default: ; break; 行列式未編碼鍵盤原理行列式未編碼鍵盤原理未編碼未編碼4*4行列式鍵盤行列式鍵盤K0K1K2K3K4K5K6K7K8K9K1 0K1 1K1 2K1 3K1 4K1 5A8A9A1 0A1 1A1 2A1 3A1 4A1 5行列式鍵盤行列式鍵盤列掃描查詢原理列掃描查

6、詢原理u行列式鍵盤列掃描查詢原理行列式鍵盤列掃描查詢原理先判別按鍵所在的行:由先判別按鍵所在的行:由P2口輸出列掃描字口輸出列掃描字0 x0F,然,然后讀行線狀態(tài)到變量后讀行線狀態(tài)到變量temp1中。中。 如果有按鍵按下,則行輸入不全為如果有按鍵按下,則行輸入不全為1,即不等于,即不等于0 x0F; 如果無按鍵按下,則行輸入全為如果無按鍵按下,則行輸入全為1,即等于,即等于0 x0F。再判別按鍵所在的列:由再判別按鍵所在的列:由P2口輸出行掃描字口輸出行掃描字0 xF0 ,然,然后讀列線狀態(tài)到變量后讀列線狀態(tài)到變量temp2中。中。將將temp1和和temp2的狀態(tài)相或得到按鍵的編碼,從而知的

7、狀態(tài)相或得到按鍵的編碼,從而知道按鍵的值。道按鍵的值。# include void mDelay ( unsigned int Delay );sbit LED_CS=P14;/延時子程序:由延時子程序:由Delay參數(shù)決定延時時間參數(shù)決定延時時間void mDelay(unsigned int Delay) unsigned int i; for(;Delay0;Delay-) for(i=0;i114;i+) ; /按鍵掃描子程序,有鍵按下,返回鍵值按鍵掃描子程序,有鍵按下,返回鍵值00-15;無鍵按下,返回;無鍵按下,返回0 xff。unsigned char Matrix_key()

8、unsigned char key, temp1,temp2; key=0 xff;/ 初始化鍵值初始化鍵值 P2=0 x0f;/ 輸出列掃描字輸出列掃描字 if( (P2&0 x0F) !=0 x0f)/ 讀行線狀態(tài),判斷是否有鍵按下讀行線狀態(tài),判斷是否有鍵按下 mDelay(10); / 延時消抖延時消抖P2=0 x0f;/ 輸出列掃描字輸出列掃描字 temp1=P2&0 x0f; / 讀行線狀態(tài)到讀行線狀態(tài)到temp1中中 if( temp1!=0 x0f ) / 有鍵按下有鍵按下 P2=0 xf0;/ 輸出行掃描字輸出行掃描字 temp2=P2&0 xf0;/

9、讀列線狀態(tài)到讀列線狀態(tài)到temp2中中 switch( temp1|temp2 ) case 0 xee:key=0; break; case 0 xde:key=1; break; case 0 xbe:key=2; break; case 0 x7e:key=3; break; case 0 xed:key=4; break; case 0 xdd:key=5; break; case 0 xbd:key=6; break; case 0 x7d:key=7; break; case 0 xeb:key=8; break; case 0 xdb:key=9; break; case 0 x

10、bb:key=10;break; case 0 x7b:key=11;break; case 0 xe7:key=12;break; case 0 xd7:key=13;break; case 0 xb7:key=14;break; case 0 x77:key=15;break; default: key=0 xff; break; else ; return ( key ); /返回鍵值返回鍵值 1、對實驗板上的獨立式按鍵編程,實現(xiàn)以下功能:(1)按K17,使得LED5點亮。(2)按K18,使得LED6點亮。K1 7K1 8K1 9K2 0OE11A12A24A36A48Y412Y314Y216Y118Y53Y65Y77Y89GND10A81

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論