STC89C52单片机计算自然时间【数秒】,晶振12mhz,

2024-12-21 18:56:07
推荐回答(1个)
回答1:

计算自然时间干嘛用两个中断?用一个外部中断就行了,加一个计时器。
思路就是给计时器付初值(控制时间长短),没计一秒就进入中断,中断中就把显示的时间加一,然后又计一秒,又中断显示加一,循环就行了。
写个大概结构吧:

void main()
{
TMOD=0x00;//设置定时器0为工作方式1
TL0=(65536-5000)/256;//计时器低四位附初值
TH0=(65536-5000)%256;//计时器高四位赋值,12MHz晶振,那么这样计时
溢出时刚好为50ms。重复20次就为1s。
EA=1;//开总中断
ET0=1;//开定时器0中断
TRO=1;//启动定时器
display();//控制显示程序
}
接下来每计满一次就会进入中断,在中断中就可以这样写:
{
num++
if(num==20)
{
num=0;//清零,为下一秒记时准备
miao++
}
}
那么每计20次刚好一秒,miao就加1。在dispaly中显示就可以了。记得把计时器付初值放在循环里就行了。
大概思路就这样,希望能帮到。