C51單片機鍵盤檢測原理以及實現(xiàn)
void keyscan() //鍵盤掃描函數(shù),期間注意鍵盤抖動,由延遲方法處理
{
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; //啟動或者中斷定時器
}
}
}
void main()
{
init();
while(1);
{
keyscan();
display(num);
}
}
void T0_time() interrupt 1 //中斷程序
{
TH0=(65536-45872)/256; //重裝數(shù)值,數(shù)值需要根據(jù)晶振進行計算
TL0=(65536-45872)%256;
numt0++ ;
if(numt0==20) ///由于機器周期為50ms,那么1s需要20個周期
{
numt0=0;
num++;
if(num==60)
num=0;
}
}
評論