??作者簡介: @鶴辭 ,喜歡玩弄單片機,嵌入式,PCB制作,電路設計等等,希望自己的學習經(jīng)歷經(jīng)驗能夠?qū)δ銈冇袉l(fā)
??前期回顧:單片機之中斷系統(tǒng)篇_@鶴辭的博客-CSDN博客
??努力目標:突破1000粉絲
??支持鶴辭:點贊??,留言??, 關注??,收藏??
51單片機獨立按鍵
按鍵的基本原理
按鍵右端接GND,左邊接到單片機的IO口,同時接了一個上拉電阻,當按鍵未按下時,P2.0為高電平(學過模電的人都應該知道為什么吧)當按鍵按下時,相當于P2.0口與GND相連為 低電平。
按鍵的消抖(重點)
可以從上圖看到,斷開和閉合之間有一些毛刺現(xiàn)象,這樣,當我們按鍵按下時,我們無法判別此時P2.0口到底是高電平還是低電平,所以,這是我們要解決的問。
通常按鍵消抖有兩種方式:
1,軟件消抖(簡易,省資源,常用)
利用延時程序代碼進行消除抖動的一種方式。
2,硬件消抖
主要利用鎖存器來實現(xiàn)按鍵消抖的一種方式。
3,利用protues實現(xiàn)模擬
代碼多種編寫:
第一種編寫:
#include <reg52.h> sbit key=P2^0; unsigned char smg[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F}; bit falg=0; unsigned char num=0; void key_scan() { if(key==0&&falg==0) { falg=1; } if(key==1&&falg==1) { num++; falg=0; } } void smg_display() { P3=smg[num]; if(num==10) num=0; } int main() { while(1) { key_scan(); smg_display(); } }
第二種編寫:
void key() { if(key_1==0) { Delay10ms(); if(key_1==0) led=~led; } while(!key_1); }
???下期:矩陣鍵盤多種編寫
文章制作不易,感謝你的喜歡!點贊??,留言??, 關注??,收藏??文章來源:http://www.zghlxwxcb.cn/news/detail-439057.html
下期再見吧??????????????????????????????文章來源地址http://www.zghlxwxcb.cn/news/detail-439057.html
到了這里,關于單片機之獨立按鍵(多種按鍵代碼編寫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!