基于定時器/計數(shù)器的實時時鐘的設(shè)計
1.實現(xiàn)實時時鐘的基本思想
時鐘的最小計時單位是秒,如何獲得1s的定時時間呢?使用定時器方式1,最大的定時時間也只能達(dá)到131 ms??蓪⒍〞r器的定時時間定為100 ms,采用中斷方式進(jìn)行溢出次數(shù)的累計,計滿10次,即得到秒計時。而計數(shù)10次可用循環(huán)程序的方法實現(xiàn)。
時鐘運(yùn)行時,在片內(nèi)RAM中規(guī)定3個單元作為秒、分、時單元,具體安排如下;
42H:“秒”單元;41H“分”單元;40H:“時”單元
從秒到分,從分到時是通過軟件累加并進(jìn)行比較來實現(xiàn)的。要求每滿1秒,則“秒”單元42H中的內(nèi)容加1;“秒”單元滿60,則“分”單元41H中的內(nèi)容加1;“分”單元滿60,則“時”單元40H中的內(nèi)容加1;“時”單元滿24,則將42H、41H、40H的內(nèi)容全部清0。
2.程序設(shè)計
(1)主程序的設(shè)計。主程序的主要功能是進(jìn)行定時器T0的初始化,并啟動T0,然后通過反復(fù)調(diào)用顯示子程序,等待100 ms定時中斷的到來。主程序的流程如右圖所示。
(2)中斷服務(wù)程序的設(shè)計。中斷服務(wù)程序(IT0P)的主要功能是實現(xiàn)秒、分、時的計時處理。
中斷服務(wù)程序的流程如左圖所示。
參考程序如下: