用51单片机定时器编写一个定时闹钟

2024-11-25 12:39:10
推荐回答(2个)
回答1:

问题不是很清晰!
首先,定时器溢出时间较短,需要在定时器中断外另设计数单元;

其次,什么叫“检验对准时间”?我的理解是:使用一段程序来检验当前时间与设定时间(闹钟的定时值)的差值,差值为零时报时。基于该理解,有两种方式(根据你自己的情况自选):
1)先设计出一个时钟,然后将时钟值与设定值比对,具体语句可以使用“异或”(两时间相同时,异或值为零),或CJNE指令;本人倾向于后者(如:万一出现干扰在两值相同时没有比较,前者就失效了,而后者还能继续比较)。
2) 预置一个变量,每个固定时间间隔(使用定时中断)减一,到零时报时;但要注意,直接在定时中断程序中减一时一定要在中断中判断到零否,否可能则会出现不报时的问题。

回答2:

这样,你的显示肯定是一个数组,定时的时间你也写一个数组,每次一秒进行显示时间计算和修改的最后来一个数组的比较。
这样不用定时器。而多出来的语句可以这样矫正。
先设定60000的溢出率(12mhz),然后和一个秒表一起跑几个小时,然后跑的时间与倒计时成反比,算出正确的1秒倒计时,大概在49900左右。。。
可以给我留言或者右键hzr0071@126.com