一、主要功能
使用按键消抖控制数码管显示数字。
二、代码实现
代码如下:
#include <reg52.h>
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
sbit KEY1=P2^4;
sbit KEY2=P2^3;
sbit KEY3=P2^2;
sbit KEY4=P2^1;
bit backup=1;
bit KEYstate=1;
unsigned char cnt=0;
unsigned char code LEDchar[]={
0xC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,
0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E};
void main()
{
TMOD=0X01;
ET0=1;
TR0=1;
EA=1;
ENLED=0;
ADDR0=0;
ADDR1=1;
ADDR2=1;
ADDR3=1;
P2=0XF7;
TH0=0XF8;
TL0=0XCD;
P0=LEDchar[cnt];
while(1)
{
if (backup !=KEYstate)
{
if(backup==0)
{
P0=LEDchar[cnt];
cnt++;
if(cnt>=10)
{
cnt=0;
}
}
backup=KEYstate;
}
}
}
void interupttime0()interrupt 1
{
static unsigned char KEYbuff=0xFF;
TH0=0XF8;
TL0=0XCD;
KEYbuff=(KEYbuff<<1)|KEY4;
if(KEYbuff==0x00)
{
KEYstate=0;
}
else if(KEYbuff==0xFF)
{
KEYstate=1;
}
else
{}
}