单片机时间计数器C程序
#include
#define uint unsigned int #define uchar unsigned char
uchar code table[]={ 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,
0xf8,0x80,0x90};
uchar numm1,numm2,numf1,nums1,mshi,mge,fshi,fge,sshi,sge;
void display(uchar,uchar,uchar,uchar,uchar,uchar);
void delayms(uint); void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display(mshi,mge,fshi,fge);
}
}
void T0_time()interrupt 1 {
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
numm1++;
if(numm1==20)
{
numm1=0;
numm2++;
if(numm2==60)
{
numm2=0;
numf1++;
if(numf1==60)
{
numf1=0;
nums1++;
if(nums1==24)
nums1=0;
sshi=nums1/10;
sge=nums1%10;
}
fshi=numf1/10;
fge=numf1%10;
}
mshi=numm2/10;
mge=numm2%10;
}
}
void display(uchar mshi,uchar mge,uchar fshi,uchar fge,uchar sshi,uchar sge)
{
P0=table[mshi]; P2=0xfd;
delayms(1);
P0=table[mge]; P2=0xfe;
delayms(1);
P0=table[fge]; P2=0xf7;
delayms(1);
P0=table[fshi]; P2=0xef;
delayms(1);
P0=table[sshi]; P2=0x7f;
delayms(1);
P0=table[sge]; P2=0xbf;
delayms(1);
P0=0xbf;
P2=0xdb;
delayms(1);
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}