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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

(2)多次讀鍵法用這種方法,不會存在誤判的情況。必須注意,多次檢測持續的時間應該比閉合抖動的時間長。本項目任務中,主要用軟件方法去抖,即檢測出鍵閉合后執行一個延時程序,產生10ms的延時,讓前沿抖動消失后再一次檢測鍵的狀態,如果仍保持閉合狀態電平,則確認為真正有鍵按下。當檢測到按鍵釋放后,也要給10ms的延時,待后沿抖動消失后才能轉入該鍵的處理程序。3.結論任務實施1.硬件電路。2.程序設計。1.硬件電路2.程序設計#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--);}預定義延時子程序voidmain(void)

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

if(key1==0)

{LED=~LED;

while(key1==0);

}}}}進階提高使用AT89C51單片機,設計一個具有8個按鍵的獨立式鍵盤,每個按鍵對應一個發光二極管。

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

{delay10ms();//去抖動

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

{keyvalue=KeyPort;//讀按鍵狀態

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

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

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

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

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

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

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

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

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

}}}知識總結通常的按鍵所用開關為機械彈性開關,由于機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上穩定地接通,斷開時也不會一下子斷開,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論