51单片机软件复位函数
51單片機無自帶的看門狗,沒有提供軟件復位的函數和機制,要想實現軟件復位,只能通過強制將PC指針指到0x0000位置,
通過以下函數將PC指針強制指到0x0000:
void reset(void)
{
?? ?((void (code *) (void)) 0x0000) ();
}
可以使用下面的程序跳到0000H實現軟復位,下面的程序實際上是一個函數指針,指針指向了0000H地址。
((void (code *) (void)) 0x0000) ();
下面的例子將實現軟件自復位
void reset (void) {((void (code *) (void)) 0x0000) (); }void main (void) {reset (); }你可能注意到以上的軟復位程序并不能清除8051的中斷系統和某些8051的外圍設備,當您在中斷程序中調用上面的軟件復位程序后,中斷將再不能觸發。因此,以上的軟復位程序不能在中斷子程序中調用。
STC的單片機有軟件復位指令,即ISP_CONTR,地址在0E7H 單元(即str ISP_CONTR=0xE7),MOVISP_CONTR,#00100000B(C語言為ISP_CONTR=0x20),內狗也是一條指令MOV WDT_CONTR,#00111100B!
STC 51系列單片機Datasheet中指出:傳統的8051 單片機由于硬件上未支持此功能,用戶必須用軟件模擬實現,實現起來較麻煩?,FSTC 新推出的增強型8051 根據客戶要求增加了ISP_CONTR 特殊功能寄存器,實現了此功能。用戶只需簡單的控制ISP_CONTR 特殊功能寄存器的其中兩位 SWBS / SWRST 就可以系統復位了。
總結
以上是生活随笔為你收集整理的51单片机软件复位函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机专业竞聘词150,计算机专业组长竞
- 下一篇: 经验:几个985/211/普通院校的本科