求用单片机c语言编写的倒计时60s程序,为什么在百度上找的程序验证了现象...
发布网友
发布时间:2024-10-24 07:56
我来回答
共4个回答
热心网友
时间:2024-10-25 03:42
嘎嘎嘎,刚好写过
60秒倒计时程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp,bai,shi,ge,num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint);
void main()
{
temp=60;
num=0;
P2=0x00;
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
shi=temp/10;
ge=temp%10;
P0=table[shi];
P2=0x02;
delay(5);
P0=table[ge];
P2=0x01;
delay(5);
}
}
void T0_time()interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num++;
if(num==40)
{
num=0;
temp--;
if(temp==0)
{
temp=60;
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
热心网友
时间:2024-10-25 03:39
定时不对,跟你的时钟,中断时间,或程序有关,这范围大了
热心网友
时间:2024-10-25 03:41
void T0_time()interrupt 1
改成void T0_time() interrupt 1
试一下
热心网友
时间:2024-10-25 03:40
注意相关设置,需要根据硬件进行适当的调整