C51單片機(jī)鍵盤(pán)檢測(cè)原理以及實(shí)現(xiàn)
void keyscan() //鍵盤(pán)掃描函數(shù),期間注意鍵盤(pán)抖動(dòng),由延遲方法處理
{
if(key1==0)
{
delayms(10);
if(key1==0)
{
num++;
if(num==60)
num=0;
while(!key1); //等待按鍵釋放才執(zhí)行,下同
}
}
if(key2==0)
{
delayms(10);
if(key2==0)
{
num--;
if(num==0)
num=60;
while(!key2);
}
}
if(key3==0)
{
delayms(10);
if(key3==0)
{
uum=0;
while(!key3);
}
}
if(key4==0)
{
delayms(10);
if(key4==0)
{
while(!key4);
TR0=~TR0; //啟動(dòng)或者中斷定時(shí)器
}
}
}
void main()
{
init();
while(1);
{
keyscan();
display(num);
}
}
void T0_time() interrupt 1 //中斷程序
{
TH0=(65536-45872)/256; //重裝數(shù)值,數(shù)值需要根據(jù)晶振進(jìn)行計(jì)算
TL0=(65536-45872)%256;
numt0++ ;
if(numt0==20) ///由于機(jī)器周期為50ms,那么1s需要20個(gè)周期
{
numt0=0;
num++;
if(num==60)
num=0;
}
}
評(píng)論