单片机发光二极管以200MS闪烁,数码管以0到59S循环计数

2025-03-10 07:01:05
推荐回答(2个)
回答1:

就是这个意思,时间到59s后就重新从0开始数。
中断的时间大约是50ms,num2=20表示来20次中断的时候1s时间到,然后要显示的数num就加一,当num加到60的时候变成0,又从0开始数。

用定时器做时钟本来就不准,这个45872应该是根据硬件微调得到的。只需要理解作者的意思就可以了,了解中断的用法就好了,不必深究。

回答2:

void T1_time()interrupt 3 这个中断,我可以理解为 时间到1分钟时候,然后清零,再重新从0开始计数,是这样吗 ,谢谢 。请大家用通俗易懂的解释下,就这个中断的 服务程序,我看的有点不懂,谢谢
{
TH1=(65536-45872)/256 ; //装入定时器1高8位的初值
TL1=(65536-45872)%256; //装入低8位初值
num2++ ; //变量num2自加1
if(num2==20 ) // 如果变量num2等同于20,则
{
num2=0 // 初始化num2
num++; //num2自加1
if(num==60) //如果num等同于60
num=0; //初始化num
shi=num/10; //十位数等于num/10的整数值
ge=num%10; //个位数等于num/10的余数
}
}