項目二 任務(wù)1-獨立按鍵識別檢測_第1頁
項目二 任務(wù)1-獨立按鍵識別檢測_第2頁
項目二 任務(wù)1-獨立按鍵識別檢測_第3頁
項目二 任務(wù)1-獨立按鍵識別檢測_第4頁
項目二 任務(wù)1-獨立按鍵識別檢測_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目二簡易搶答器設(shè)計獨立按鍵識別檢測任務(wù)一一位數(shù)碼管顯示任務(wù)二數(shù)碼管動態(tài)顯示任務(wù)三簡易搶答器設(shè)計任務(wù)四項目目標(biāo)●掌握LED數(shù)碼管結(jié)構(gòu)●掌握數(shù)碼管字形編碼●掌握數(shù)碼管靜態(tài)顯示●掌握數(shù)碼管動態(tài)顯示項目任務(wù)本項目的任務(wù)是使用單片機(jī)實現(xiàn)搶答器,實現(xiàn)顯示搶答選手編號的數(shù)碼管顯示以及有人搶答的同時實現(xiàn)提示音。具體描述:通過按鍵檢測識別技術(shù),檢測到有人搶答后把按鍵值送數(shù)碼管顯示出來。任務(wù)一獨立按鍵識別檢測任務(wù)描述通過按鍵輸入數(shù)據(jù)或命令,實現(xiàn)簡單的人機(jī)對話。本任務(wù)要求設(shè)計1個獨立按鍵,按下該鍵時,對應(yīng)的LED亮,再一次按下,LED熄滅,如此重復(fù)。知識鏈接按鍵識別按鍵檢測與識別

當(dāng)單片機(jī)檢測到與按鍵相連的IO口被拉低就證明此按鍵被按下。按鍵檢測與識別實際工作中,按鍵的操作并沒有我們想象的“按下松開”那么簡單,操作時存在按鍵抖動的現(xiàn)象。1.按鍵的抖動現(xiàn)象按鍵消抖硬件消抖軟件消抖延時讀鍵法多次讀鍵法在單片機(jī)獲得端口為低電平的信息后,不是立即認(rèn)定按鍵已被按下,而是延時10毫秒或更長的時間后再次檢測該端口,如果仍為低,說明此鍵的確被按下了,這實際上是避開了按鍵按下時的抖動時間。2.按鍵的去抖動

(1)延時讀鍵法如左上圖所示,當(dāng)電源很穩(wěn)定,沒有干擾的情況下,這種方法是可靠的。如右上圖所示,當(dāng)電源不穩(wěn)定,存在很大干擾時,則有可能存在誤判。在單片機(jī)獲得端口為低電平的信息后,在一段時間內(nèi)如20毫秒,多次檢測按鍵的狀態(tài),只有當(dāng)每次讀到的狀態(tài)都是低電平時才認(rèn)為有按鍵按下,如下圖所示:

(2)多次讀鍵法用這種方法,不會存在誤判的情況。必須注意,多次檢測持續(xù)的時間應(yīng)該比閉合抖動的時間長。本項目任務(wù)中,主要用軟件方法去抖,即檢測出鍵閉合后執(zhí)行一個延時程序,產(chǎn)生10ms的延時,讓前沿抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。當(dāng)檢測到按鍵釋放后,也要給10ms的延時,待后沿抖動消失后才能轉(zhuǎn)入該鍵的處理程序。3.結(jié)論任務(wù)實施1.硬件電路。2.程序設(shè)計。1.硬件電路2.程序設(shè)計#include<reg51.h>//包含頭文件#defineucharunsignedchar//定義uchar為無符號字符型#defineuintunsignedint//定義uint為無符號整型sbitLED=P1^0; //p1.0定義為LEDsbitkey1=P2^7;//按鍵定義voiddelay10ms(void){uchari,k;//變量定義

for(i=20;i>0;i--)for(k=250;k>0;k--);}預(yù)定義延時子程序voidmain(void)

{while(1){if(key1==0){delay10ms();

if(key1==0)

{LED=~LED;

while(key1==0);

}}}}進(jìn)階提高使用AT89C51單片機(jī),設(shè)計一個具有8個按鍵的獨立式鍵盤,每個按鍵對應(yīng)一個發(fā)光二極管。

功能要求:無鍵按下時,鍵盤輸出全為“1”,發(fā)光二極管全部熄滅;有鍵按下時,其所對應(yīng)發(fā)光二極管點亮。ucharKeyScan(void)//按鍵掃描程序{unsignedcharkeyvalue,key;if(KeyPort!=0xff)//判斷是否有鍵按下

{delay10ms();//去抖動

if(KeyPort!=0xff)//二次判斷是否有鍵按下

{keyvalue=KeyPort;//讀按鍵狀態(tài)

while(KeyPort!=0xff);//按鍵松開時,KeyPort=0xff,while語句條件不滿足,開始執(zhí)行switch語句。switch(keyvalue) { case0xfe:key=0xfe;break;//點亮第一個發(fā)光二極管

case0xfd:key=0xfd;break;//點亮第二個發(fā)光二極管

case0xfb:key=0xfb;break;//點亮第三個發(fā)光二極管

case0xf7:key=0xf7;break;//點亮第四個發(fā)光二極管

case0xef:key=0xef;break;//點亮第五個發(fā)光二極管

case0xdf:key=0xdf;break;//點亮第六個發(fā)光二極管

case0xbf:key=0xbf;break; //點亮第七個發(fā)光二極管

case0x7f:key=0x7f;break; //點亮第八個發(fā)光二極管

default:key=0xff;break;//其他情況,熄滅發(fā)光二極管

}}}知識總結(jié)通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),由于機(jī)械觸點的彈性作用,一個按鍵開關(guān)在閉合時不會馬上穩(wěn)定地接通,斷開時也不會一下子斷開,

溫馨提示

  • 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

提交評論