什么是按鍵抖動?
在進行硬件設(shè)計時,添加到PCB板中的機械開關(guān)觸點斷開、閉合時,由于機械觸點的彈性作用,按鍵開關(guān)在閉合或松開時并不會馬上穩(wěn)定地接通或斷開。因而在閉合或斷開的瞬間均伴隨有一連串的抖動,這樣的抖動叫按鍵抖動。文章來源:http://www.zghlxwxcb.cn/news/detail-536561.html
按鍵消抖程序
一般采取在程序中加入延時函數(shù)的方法來消抖,程序如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-536561.html
#include <reg51.h>
sbit key=p1^0;//定義key為p1.0
sbit led=p2^0;//定義led為p2.0
void delay_ms(unsigned int t)//ms延時
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++)
}
void main(void)
{
int key_up=1;//按鍵松開標志位
while(1)
{
if(key==0&&key_up==1)//判斷按鍵是否按下
{
delay_ms(10)//延時消抖
Key_up=0;防止循環(huán)執(zhí)行按鍵控制程序
if(key==0)//再次判斷,排除是松開狀態(tài)或外界雜波干擾
{
led1=!led1;
}
}
else if(key==1)key_up=1;//無按鍵按下改為松開狀態(tài)
}
}
到了這里,關(guān)于[51單片機]什么是按鍵抖動,如何用程序防抖的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!