C51單片機(jī)矩陣鍵盤掃描去抖程.doc

C51單片機(jī)矩陣鍵盤掃描去抖程.doc

ID:27463841

大?。?15.00 KB

頁數(shù):4頁

時(shí)間:2018-12-04

C51單片機(jī)矩陣鍵盤掃描去抖程.doc_第1頁
C51單片機(jī)矩陣鍵盤掃描去抖程.doc_第2頁
C51單片機(jī)矩陣鍵盤掃描去抖程.doc_第3頁
C51單片機(jī)矩陣鍵盤掃描去抖程.doc_第4頁
資源描述:

《C51單片機(jī)矩陣鍵盤掃描去抖程.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、C51單片機(jī)矩陣鍵盤掃描去抖程  C51單片機(jī)矩陣鍵盤電子掃描去抖程序  這段有1個(gè)C51的項(xiàng)目,用的是新華龍的C51F020單片機(jī)。項(xiàng)目中要使成為事實(shí)4*5的矩陣鍵盤。矩陣電路圖如次如示    此中,四條列線接在F020的P2~P5口線上,5條行線接在P5口線上(F020的P5口是差別于平凡C51的擴(kuò)大接口,不克不及位尋址)。同時(shí)4條列線接在一四輸入與非門(74LS20)上,門輸出接F020的外間斷1,如許,不論什么一鍵按下,都會(huì)孕育發(fā)生間斷,報(bào)信程序舉行鍵盤電子掃描?! ⊥?個(gè)新手給寫了鍵盤的

2、電子掃描程序,基本功效都能使成為事實(shí),但對鍵盤的去抖措置懲罰老是做欠好,體現(xiàn)是或不克不及去抖,或按鈕相應(yīng)太卡,或采集到紕繆鍵值??磥硇率謱仃囨I盤電子掃描原理掌握較好(網(wǎng)上資料多),但對鍵盤去抖的知識(shí)卻有所欠缺,基本都是按照書上說的延時(shí)一段時(shí)間再采集鍵值,現(xiàn)實(shí)應(yīng)用中,如許的措置懲罰是遠(yuǎn)遠(yuǎn)不敷的,過于簡單?,F(xiàn)實(shí)去抖措置懲罰應(yīng)該如許舉行更合理一些,即連續(xù)采集鍵值,當(dāng)采集到的鍵值在一段時(shí)間內(nèi)是不異的,即以為按鈕狀況已經(jīng)穩(wěn)定,此鍵值為真實(shí)鍵值。別的,按鈕開釋時(shí),也會(huì)有抖動(dòng),導(dǎo)致誤采鍵值,是以在鍵開釋時(shí),也

3、應(yīng)舉行去抖措置懲罰,措置懲罰要領(lǐng)同時(shí)是連續(xù)一段時(shí)間采集到無鍵按下狀況,才以為按鈕被開釋。按照這個(gè)要領(lǐng),我重寫了新手的程序,現(xiàn)實(shí)應(yīng)用中體現(xiàn)極好?! ‖F(xiàn)將程序發(fā)布如次,供新手參考?! ey.h文件內(nèi)容  #ifndef__key_H__  #define__key_H__  #define滅茬_KEY0x0000  #defineS10x3801  #defineS20x3401  #defineS30x3802  #defineS40x3402  #defineS50x3804  #defineS

4、60x3404  #defineS70x3808  #defineS80x3408  #defineS90x3810  #defineS100x3410  #defineS110x2C01  #defineS120x1C01  #defineS130x2C02  #defineS140x1C02  #defineS150x2C04  #defineS160x1C04  #defineS170x2C08  #defineS180x1C08  #defineS190x2C10  #defineS200

5、x1C10  #defineKEY_DELAY20  externunsignedintKey_Value;  externvoidInit_Key();  externvoidScan_Key();  externbitKey_Pressed;  externbitKey_Released;  externunsignedintidataKeypress_Count;  externunsignedintidataKeyrelease_Count;  #endif  key.c文件內(nèi)容  #in

6、clude  #include“key.h”  bitKey_Down;//是不是有鍵按下的標(biāo)記  unsignedintidataKeypress_Count;  sbitCol_Key0=P2;  sbitCol_Key1=P2;  sbitCol_Key2=P2;  sbitCol_Key3=P2;  bitKey_Pressed;  bitKey_Released;  unsignedintKey_Value;bitKey_Down;//是不是有鍵按下的標(biāo)記  unsignedin

7、tidataKeypress_Count;//一毫秒增加一次的變量  unsignedintidataKeyrelease_Count;//一毫秒增加一次的變量  //矩陣鍵盤施用間斷1作為鍵盤間斷

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。