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