基于定时器/计数器的实时时钟的设计
扫描二维码
随时随地手机看文章
1.实现实时时钟的基本思想
时钟的最小计时单位是秒,如何获得1s的定时时间呢?使用定时器方式1,最大的定时时间也只能达到131 ms。可将定时器的定时时间定为100 ms,采用中断方式进行溢出次数的累计,计满10次,即得到秒计时。而计数10次可用循环程序的方法实现。
时钟运行时,在片内RAM中规定3个单元作为秒、分、时单元,具体安排如下;
42H:“秒”单元;41H“分”单元;40H:“时”单元
从秒到分,从分到时是通过软件累加并进行比较来实现的。要求每满1秒,则“秒”单元42H中的内容加1;“秒”单元满60,则“分”单元41H中的内容加1;“分”单元满60,则“时”单元40H中的内容加1;“时”单元满24,则将42H、41H、40H的内容全部清0。
2.程序设计
(1)主程序的设计。主程序的主要功能是进行定时器T0的初始化,并启动T0,然后通过反复调用显示子程序,等待100 ms定时中断的到来。主程序的流程如右图所示。
(2)中断服务程序的设计。中断服务程序(IT0P)的主要功能是实现秒、分、时的计时处理。
中断服务程序的流程如左图所示。
参考程序如下: