Watchdog在8XC552系列單片機系統(tǒng)中的應(yīng)用
(1)LCD出現(xiàn)閃屏,無法翻屏顯示現(xiàn)象
筆者在用仿真器運行編程時,LCD能夠翻屏并不斷顯示采集來的三相用電參數(shù),但離開仿真器處于脫機運行狀態(tài)時,LCD只能顯示第一屏數(shù)據(jù)。經(jīng)查仿真器的引腳接高電平,而脫機時腳懸空,從而引起了腳的狀態(tài)不固定,并不斷產(chǎn)生內(nèi)部復(fù)位信號使單片機復(fù)位而出現(xiàn)了上述現(xiàn)象。后來把腳接低電平,仍然出現(xiàn)上述現(xiàn)象。而把腳接高電平后(即禁用Watchdog功能),則LCD顯示正常。因此,引腳應(yīng)嚴格禁止懸空以避免出現(xiàn)不穩(wěn)定的狀態(tài),同時在未載入Watchdog程序之前,其引腳也不能接低電平。
(2)LCD無顯示
RST端的電容應(yīng)確保連接正確,否則在高電平時將無法加到復(fù)位端而使CPU不能運行程序,從而出現(xiàn)LCD無顯示的現(xiàn)象。
(3)LCD顯示數(shù)據(jù)雜
亂無章、數(shù)據(jù)死鎖
把腳接低電平,可能會出現(xiàn)LCD顯示的數(shù)據(jù)雜亂無章、數(shù)據(jù)死鎖現(xiàn)象。其原因是源程序中未載入Watchdog程序,因此應(yīng)保證在源程序中加入Watchdog程序,以消除數(shù)據(jù)的死鎖或顯示雜亂無章等問題。
4軟件設(shè)計
4.1軟件設(shè)計
編寫監(jiān)視定時器運行軟件時,程序員首先應(yīng)當確定系統(tǒng)能夠在錯誤狀態(tài)下支持的時間,也就是設(shè)定溢出周期的依據(jù)。例如能維持16ms,則把T3的初值設(shè)定為 10,這樣,在16MHz晶振的情況下,溢出周期為15.36ms。此時程序員就可對其軟件進行劃分,以確定把重寫T3值的指令插在什么地方,才能使相鄰兩次重寫操作間隔不超過監(jiān)視定時器的溢出周期,以保證正常運作時T3不溢出。因此,程序員應(yīng)當了解所有軟件模塊的執(zhí)行時間,同時也要考慮到出現(xiàn)條件跳轉(zhuǎn)、子程序及內(nèi)外中斷等因素所帶來的影響。對于那些很難估算其執(zhí)行時間的程序段落,應(yīng)按最壞情況估算。為防止誤寫,監(jiān)視定時器值的重寫可分兩步進行。首先將 PCON.4(監(jiān)視定時器裝入允許位WLE)置1,以允許對T3進行寫入;第二步向T3寫入新值。由圖2可知,對T3的寫信號同時也會加到WLE的清0 端,于是每當T3被寫入新值時,WLE位便自動復(fù)位。因此,當該值為00H時,溢出間隔最大;而FFH值則對應(yīng)最小溢出周期。若采用12MHz晶振,這兩值則分別為524ms和2ms。最大和最小溢出周期的計算公式分別為:
由于在空閑方式下,監(jiān)視定時器照常運行。因此,該方式與掉電方式是矛盾的,因為前者需要時鐘,后者凍結(jié)時鐘。故當=0而開啟T3工作時,8XC552將無法進入掉電方式,此時向PCON.1寫l的操作無效,因而它將保持為0。在軟件開發(fā)調(diào)試的早期階段,可將引腳接高電平以關(guān)閉監(jiān)視定時器,而在后期改接低電平以完成調(diào)試過程。
4.2定時間隔和訪問時間的設(shè)定
數(shù)據(jù)采集及處理是程序中的關(guān)鍵部分,也是決定儀器精度的關(guān)鍵所在。本儀器采用電壓、電流、頻率、相位為主要采集參數(shù),且這些參數(shù)是連續(xù)變化的,因此采樣時間不宜設(shè)置得過長,否則會影響儀器的精度。筆者將電流與電壓的采樣時間定為5ms,頻率與相位的采集時間為20ms,這樣,Watchdog的定時間隔設(shè)置較佳,具體如圖3所示。圖3中,Watchdog在WDT1時間內(nèi)完成對采集頻率數(shù)據(jù)的監(jiān)控,而在WDT2、WDT3、WDT4內(nèi)分別負責(zé)對電壓、電流、相位數(shù)據(jù)采集的監(jiān)控。在設(shè)計程序時,一般取1.1Ts<Tw<2Ts,其中Ts為采樣周期,Tw為Watchdog的定時時間,Ts分別為T1、 T2、T3、T4的大小,Tw分別為WDT1、WDT2、WDT3、WDT4的大小。Tw設(shè)置太小會增加訪問頻率,影響程序執(zhí)行效率;而設(shè)置太大則會干擾程序的正常運行,且需等待很長時間才可以恢復(fù)運行,而采集或控制對象可能已在這一步偏離過大。因此,CPU訪問時間原則上小于Tw就可以了,為防止時間估計不準,設(shè)計時應(yīng)小些為好,這樣可以防止系統(tǒng)異常而處于每經(jīng)過Tw時間啟動一次的死循環(huán)中。
評論