單片機鍵盤接口技術(shù)獨立按鍵ppt課件
,單片機原理及應(yīng)用在線開放課程,鍵盤接口技術(shù):獨立按鍵,1,CONTENTS,目錄,道藝兼修 敬業(yè)樂群,2,Part,鍵盤簡介,3,01,鍵盤簡介,鍵盤是電子系統(tǒng)中人機對話的重要組成部分,是人向機器發(fā)出指令、輸入信息的必須設(shè)備,也是在單片機應(yīng)用系統(tǒng)中使用最廣泛的一種數(shù)據(jù)輸入設(shè)備。,鍵盤是由多個按鍵組成的。,4,Part,獨立按鍵,5,02,獨立按鍵,按鍵通常是一種常開型開關(guān),常態(tài)下按鍵的兩個觸點處于斷開狀態(tài),按下按鍵時它們才閉合。,A,B,C,B,A,D,按鍵1,按鍵2,6,02,獨立按鍵與單片機的接口原理,330,P1.6,P1.7,VCC,GND,按鍵不按下時,P1.7通過一個電阻接到VCC上,P1.7為高電平狀態(tài),,按鍵按下時,按鍵抬起時,又接到VCC上,P1.7再次回到高電平狀態(tài)。,P1.7接到了GND上,P1.7被拉低為低電平,7,02,多個獨立按鍵的單片機接口電路,圖2-20 獨立式連接的非編碼鍵盤,0,0,8,02,實際按鍵的抖動問題,實際按鍵的按下與釋放是通過機械觸點的閉合與斷開來實現(xiàn)的,因機械觸點的彈性作用,在閉合與斷開的瞬間均有一個抖動的過程,抖動必須清除。,9,02,常用消抖方法,1硬件方法,硬件方法是設(shè)計一個濾波延時電路或單穩(wěn)態(tài)電路、RS觸發(fā)器等硬件電路來避開按鍵的抖動時間。每個按鍵一套電路。,10,02,常用消抖方法,2軟件方法 軟件方法是指編制一段時間大于20ms的延時程序,在第一次檢測到有鍵按下時,執(zhí)行延時子程序,使鍵的前沿抖動消失后再檢測該鍵狀態(tài),如果該鍵仍保持閉合狀態(tài)電平,則確認為該鍵已穩(wěn)定按下,否則無鍵按下,從而消除了抖動的影響。 同理,在檢測到按鍵釋放后,也同樣要延遲一段時間,以消除后沿抖動,然后轉(zhuǎn)入對該按鍵的處理,11,02,軟件消抖流程圖,12,Part,簡單獨立按鍵實例,13,03,任務(wù)顯示電路圖如下,用第一個數(shù)碼管 將獨立按鍵接于單片機P3.0引腳,獨立按鍵接于單片機P3.0, 當每按下一次按鍵數(shù)碼管的值加1,初始值為0,加到9后歸零。,14,03,程序代碼,#include #define uchar unsigned char #define uint unsigned int sbit wei = P27; /數(shù)碼管位選 sbit duan = P26; /數(shù)碼管段選 sbit key_s2 = P30;/S2按鍵位定義 uchar code leddata= 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, ;/0-9顯示碼 void delay(uint z) uint x,y; for(x = z; x 0; x-) for(y = 114; y 0 ; y-); ,void main() uchar num; we = 1; P0 = 0xfe; /選通第一個數(shù)碼管 wei = 0; while(1) duan = 1; P0 = leddatanum; /顯示S2按下次數(shù) duan = 0; if(key_s2 = 0)/判斷S2是否按鍵 delay(20);/軟件延時 if(key_s2 = 0) num+; /計數(shù)加1 while(!key_s2); /松手檢測 if(num = 10) /當數(shù)值為超過9時歸零 num = 0; ,15,謝謝收看!,16,