51单片机数码管显示24秒倒计时

#include
#define uchar unsigned char
#define uint unsigned int
sbit q=P2^0;
sbit p=P2^1;
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
uchar disp[4]={0,0,0,0};
table_1[]={0x38,0x31,0x38,0x31};
int count =0;
int c=24,shi,ge;
int x=24;
void delay(void)
{
unsigned int i;
for(i=0;i<20;i++);
}
void delay500ms(void)

{

unsigned char o,p,q;
for(o=15;o>0;o--)
for(p=202;p>0;p--)
for(q=81;q>0;q--);

}

int main (void)
{
uchar i;
uchar temp;
static uchar a=0;
i=0;
TMOD = 0x01; //配置方式
TH0 = 0x3C; //计数时间
TL0 = 0xB0;
TR0 = 1; //开启定时器
EA = 1; //全局中断打开
ET0 = 1; //定时器0中断打开
while(1)
{
p=0;
q=0;
if(x==0) x=25;

disp[2]=x/10%10;
disp[3]=x%10;
disp[0]=10;
disp[1]=10;
for(i=0;i<4;i++)
{

P2=~(1<temp=disp[a];
temp=table[temp];
P1=temp;
delay();
P2=0xFF;
a++;
if(a==4) a=0;

//P1=table_1[i];

}

// delay500ms();
}

}
void timer0(void) interrupt 1 using 3 //中断部分代码,见下文的释疑
{

TH0 = 0x3C;
TL0 = 0xB0;
TF0 = 0;

if(++count !=5)return;
count=0;
x--;
// SystemTime++;
}

相关文档
最新文档