一種新的單片機“看門狗”電路軟件設(shè)計方法
另外,為了消除可能的“喂狗”誤動作,建議對所應(yīng)用的用戶程序進行徹底仔細的檢查,以防程序錯亂時生成多余的SETB P1.0(指令碼 D290H)或者CLR P1.0(指令碼 C290H)指令。利用通用編程軟件(如EDIT)的查找功能可搜索用戶程序在LST文件中的“90”字符串,就能方便地找到所有可能的非法“SETB P1.0或CLR P1.0”指令,然后用NOP指令將其分離開來就可以了。如
ROM地址 指令碼 源程序
……
0306 C2 MOV A,#0C2H
0308 901000 MOV DPTR,#1000H
……
B4D290 CJNE A,#0D2H,STEP1
……
0401 B4D290 CJNE A,#0D2H,STEP1
0494 00 STEP1:NOP
……
可以修改為
……
0306 74C2 MOV A,#0C2H
0308 00 NOP
0309 901000 MOV DPTR,#1000H
……
0402 B4D291 CJNE A,#0D2H,STEP1
0405 00 NOP
……
0496 00 STEP1:NOP
……
其它情況下可以靈活處理,以使其消除以上兩種可以出錯的組合即可。
通過采取以上幾種措施,對于沒有二級中斷嵌套的用戶系統(tǒng),能夠絕對安全地受到監(jiān)控而不會“死機”;對于有二級中斷嵌套的用戶系統(tǒng),也可大大提高其可靠性。當(dāng)然,一個單片機系統(tǒng)能夠準(zhǔn)確可靠地運行,除了不“死機”,還需保護數(shù)據(jù)免受干擾,這屬于軟件容錯、數(shù)據(jù)冗余、系統(tǒng)重入等范疇,這里不作介紹。
DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY
電路相關(guān)文章:電路分析基礎(chǔ)
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論