51单片机数码管显示程序(定时器0控制显示数据)

#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90 };

uint a,num;

void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}

void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;

while(1)
{
P0=0xfe;
P1=table[num/1000];
delay(1);

P0=0xfd;
P1=table[num%1000/100];
delay(1);

P0=0xfb;
P1=table[num%100/10];
delay(1);

P0=0xf7;
P1=table[num%10];
delay(1);
}
}

void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a==20)
{
a=0;
num++;
if(num>9999)
num=0;
}
}

/*
程序与按键数码管显示程序类似,只是改变显示数据改变方式,此处是通过定时器计时来改变显示数据
*/

相关文档
最新文档