久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

很給力的STC單片機復位方法總結

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年12月01日   【字體:

單片機軟復位有什么好的方法?如從機收到復位命令(軟件命令),程序怎么使機器復位?雖然要使軟件始終處于可控狀態,最好不要用"復位",因為復位是純硬件過程,軟件是不可控的.但是我們還是要討論方法,一般流傳的方法如下:

1、放狗;

2、((void(code *)(void))0x0000)();

3、用單片機一個引腳控制點一下RSTRST;

4、用單片機一個引腳控制重新加電;

5、用單片機自帶的軟件復位指令或內狗指令;

6、goto大法;

方法1:“放狗”是單片機軟復位的最好辦法,也基本上是唯一的一個辦法。但并不是所有單片機都具備看門狗的功能,也不是一個萬全之策。
辦法2:這不是復位,只是把程序轉到地址0去執行,不如用一個JMP更直接。目前可能極少數單片機或者用戶已經自行添加Boot load時用戶程序的程序開始地址并不為0x0000,所以需要查找這些特定單片機的啟動地址。
在keil C51下面可以這樣實現:
void soft_reset(void)
{
((void (code *) (void)) 0x0000) ();
}
在需要軟件復位的地方使用語句:
soft_reset();
一般可實現軟件復位。
辦法3:用軟件實現的硬復位。需要犧牲一個單片機引腳,且增加了單片機外部電路構造的復雜性,很不可??r

辦法4:類似辦法3,同樣需要犧牲一個單片機引腳,且增加了單片機外部電路構造的復雜性.
辦法5:Atmel 89C不帶內狗,S的有內狗,只是一條指令就行。如STC的單片機有軟件復位指令,即ISP_CONTR,地址在0E7H 單元(即str ISP_CONTR=0xE7),MOV ISP_CONTR,#00100000B(C語言為ISP_CONTR=0x20),內狗也是一條指令MOV WDT_CONTR,#00111100B!
STC 51系列單片機Datasheet中指出:傳統的8051 單片機由于硬件上未支持此功能,用戶必須用軟件模擬實現,實現起來較麻煩。現STC 新推出的增強型8051 根據客戶要求增加了ISP_CONTR 特殊功能寄存器,實現了此功能。用戶只需簡單的控制ISP_CONTR 特殊功能寄存器的其中兩位 SWBS / SWRST 就可以系統復位了。
辦法6:程序從頭(上電復位處)開始運行,且只有一個循環這種情況,當然可以用goto,如在main()的開頭設一個start:,在程序的唯一循環中設定一個條件,然后goto命令。但需要注意,如果是在中斷例程里,那么中斷掛號寄存器仍置位,同級中斷不能執行。所以必須先使中斷掛號寄存器清零,EA = 0。只有RETI指令可以使中斷掛號寄存器清零。51單片機有兩級中斷優先級,所以需要執行兩次RETI指令。這用匯編是很簡單的事,而C則比較難以實現。但是,goto命令盡量不要用,因為goto會到處亂竄,而且goto不能跑到函數外面去執行一個命令。

關閉窗口

相關文章

主站蜘蛛池模板: 欧美日韩高清一区 | 国产精品久久久久久久久久软件 | 亚洲国产成人久久综合一区,久久久国产99 | 午夜不卡一区二区 | 欧美日韩国产一区二区三区 | 国产成人精品免费视频大全最热 | 国产999精品久久久久久 | 91麻豆精品国产91久久久久久久久 | 欧美v免费 | 亚洲精品3| 久久黄网 | 91国自视频 | 国产欧美一区二区三区在线看 | 国产精品国产 | 亚洲欧美日韩电影 | 先锋资源网站 | 亚洲免费在线播放 | 欧美日韩在线播放 | 国产精品高潮呻吟久久 | 亚洲一区二区视频 | 国产午夜三级一区二区三 | 久久精品国产久精国产 | 国产精品毛片无码 | 国产专区在线 | www.青青草| 日本午夜免费福利视频 | 亚州精品天堂中文字幕 | 成人午夜视频在线观看 | 欧美午夜精品理论片a级按摩 | 成人网av| 在线一区二区三区 | 羞羞网站在线观看 | 亚洲精品福利视频 | 精品亚洲国产成av人片传媒 | 国产高清视频一区二区 | 国产成人精品午夜 | 少妇精品亚洲一区二区成人 | 国产成人一区二区 | 视频一区二区在线观看 | 国产精品亚洲第一 | 国精日本亚洲欧州国产中文久久 |