有部分 SN
單片機型號的芯片,內(nèi)部帶有
RTC功能(實時時鐘),它為雙時鐘芯片的一大特色!也為需要使用 RTC 的項目提供了方便.我曾經(jīng)使用過 SN8P2501A/B,SN8P2308,SN8P2612/13(早期版本),sn8p2614等芯片的 RTC 功能,效果都不錯.應(yīng)用 RTC 需要注意的問題:(1).代碼選項必須選擇:IHRC_RTC.同時,硬件上在芯片接外部晶體的位置接上 32768HZ 的時鐘晶體,精度盡量使用好一些的.推薦 ±5ppm 的.不要使用便宜貨或者玩具里使用的晶體品種.(2).實時時鐘大多占用定時器 T0 的資源,必須置位 T0M 的 T0TB 位(T0M.0=1).無需對 T0C 賦值.記得一定要啟動定時器:置位 T0M.7(T0ENB=1).在 SN2501B 數(shù)據(jù)手冊里提示:注:1. 在RTC 模式下,進(jìn)入中斷之后必須經(jīng)過1/2 RTC(32768HZ),即16us 的延時后才能對T0IRQ 清零;2. 在RTC 模式下,T0 間隔時間固定為0.5s,T0C 計數(shù)范圍也固定為256 。(3).可以使用中斷或者輪訓(xùn)來處理實時時鐘的信息.及時對 T0C 計數(shù)器的溢出標(biāo)志 T0IRQ
(也是中斷標(biāo)志)清零.-----這個清零有點古怪,必須經(jīng)過 16us 后才可以清零 T0IRQ !否則實時時鐘會出錯!例如內(nèi)部 16MHZ RC 振蕩器/4 ).
BTS1
FT0IRQ
JMP
Z_CT0IRQ
;退出
MOV_
R,#64;64*0.25=16us
;延時16uS
DECMS
R
JMP
$-1
BCLR
FT0IRQFT0IRQ:
;退出;.....................................................如果判斷 FT0IRQ 后有其它指令需要執(zhí)行,例如置位一些 0.5S 到達(dá)的標(biāo)志,則可以減少 16uS 的延時數(shù)值.(4).RTC 具有喚醒功能,對掉電保護(hù)特別有用,可以進(jìn)入綠色模式前,確保 RTC 是有效的(T0ENB=1).每隔 0.5S 系統(tǒng)自動喚醒一次.
關(guān)鍵詞:
松翰單片機RTC應(yīng)用注