#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
sbit K16=P1^4;
uint i,t,sec;
uint code table[]={0x7e,0xbd,0xdb,0xe7,0xdb,0xdb,0xbd,0x7e};
void delay_10us(uint n)
{
do{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}while(--n);
}
void delay_ms(uint m)
{
do
delay_10us(131);
while(--m);
}
void t0(void) interrupt 1 using 0 //定时中断服务函数
{
TH0=(65536-50000)/256; //对TH0 TL0 赋值
TL0=(65536-50000)%256; //重装计数初值
t++; //每过250ust tcnt 加一
if(t==20) //计满20 次(1 秒)时
{
t=0;
sec++;
/*if(sec==99)
{
sec=0;
} */
}
}
void main(void)
{
TMOD=0x01; //定时器工作在方式1
ET0=1;
EA=1;
TH0=(65536-50000)/256; //对TH0 TL0 赋值
TL0=(65536-50000)%256; //使定时器0.05 秒中断一次
while(1)
{
if(!K16)
{
delay_ms(10);
if(!K16)
{
TR0=!TR0;
delay_ms(1000);
}
}
i=sec%6;
for(i=0;i<8;i++)
P2=table[i];
delay_ms(100);
}
}