//_nop_();头文件
#define uchar unsigned char
#define uint unsigned intucharsecond,minute,T_counter;
sbitw1=P2^0; //数码管 3
sbitw2=P2^1; //数码管 2
sbitw3=P2^2; //数码管 1
sbitw4=P2^3; //数码管 0
uchar code DAT[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void delayms(uchar x)
{
uchar ms;
while(x--)
for(ms=0;ms<250;ms++);
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
voidinitimer()
{
EA=1;//开启总中断
TR0=0; //关闭定时器
TMOD=0x01; //选择方式一
TH0=0x3c; //定时50ms
TL0=0xb0;
second=0;
minute=0;
IE=0x82; //开启总中断,定时器0允许
TR0=1; //开启定时器
}
voiddisplay(uchartemp1,uchartemp2)
{
w1=0;
w2=1;
w3=1;
w4=1;
P0=DAT[temp1];
delayms(5);
w1=1;
w2=0;
w3=1;
w4=1;
P0=DAT[temp1/10];
delayms(5);
w1=1;
w2=1;
w3=0;
w4=1;
P0=DAT[temp2];
delayms(5);
w1=1;
w2=1;
w3=1;
w4=0;
P0=DAT[temp2/10];
delayms(5);
}
void main()
{
initimer();
while(1)
{
display(second,minute);
}
}
voidtimer0() interrupt 1 using0
{
if(T_counter>20)
{
T_counter=0;
second++;
if(second==60)
{
second=0;
minute++;
if(minute==60)
{
second=0;
minute=0;
}
}
}
elseT_counter++;
TH0=0x3c;
TL0=0xB0;
}