導航:首頁 > 操作系統 > 單片機軟復位

單片機軟復位

發布時間:2022-09-03 21:53:50

『壹』 單片機復位是什麼意思有什麼作用

單片機復位是單片機上的復位電路的復位操作,作用是使電路恢復到起始狀態。

單片機復位電路主要有四種類型:微分型復位電路;積分型復位電路;比較器型復位電路;看門狗型復位電路。

為確保微機系統中電路穩定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。一般微機電路正常工作需要供電電源為5V±5%,即4.75~5.25V。

由於微機電路是時序數字電路,它需要穩定的時鍾信號,因此在電源上電時,只有當VCC超過4.75V低於5.25V以及晶體振盪器穩定工作時,復位信號才會撤除,微機電路開始正常工作。

(1)單片機軟復位擴展閱讀:

復位方式:

1、手動按鈕復位

手動按鈕復位需要人為在復位輸入端RST上加入高電平。一般採用的辦法是在RST端和正電源Vcc之間接一個按鈕。當人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復位的電路如所示。由於人的動作再快也會使按鈕保持接通達數十毫秒,所以,完全能夠滿足復位的時間要求。

2、上電復位

對於CMOS型單片機,由於在RST端內部有一個下拉電阻,故可將外部電阻去掉,而將外接電容減至1uF。如果系統在上電時得不到有效的復位,則程序計數器PC將得不到一個合適的初值,因此,CPU可能會從一個未被定義的位置開始執行程序。

3、積分型上電復位

常用的上電或開關復位電路如圖3所示。上電後,由於電容C3的充電和反相門的作用,使RST持續一段時間的高電平。當單片機已在運行當中時,按下復位鍵K後松開,也能使RST為一段時間的高電平,從而實現上電或開關復位的操作。

『貳』 單片機硬體復位和軟體復位的區別

硬體復位是由外部硬體造成的單片機復位。如低電壓復位、上電復位、斷電復位等。
軟體復位,是由編程程序需要時候,通過軟體來控制的單片機復位。
一個是外部原因及故障原因,造成的強制保護復位。
一個是由編程者有目的的控制復位。

『叄』 51單片機如何實現軟體復位系統(C語言),謝謝

單片機實現軟體復位(軟復位)的方法及討論

單片機實現軟體復位(軟復位)的方法及討論

(天堂雨林博客blog.sina.com.cn/acer收集整理)

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

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:用軟體實現的硬復位。需要犧牲一個單片機引腳,且增加了單片機外部電路構造的復雜性,很不可取。

辦法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不能跑到函數外面去執行一個命令。

最後總結如下:最好使用辦法5最為簡潔方便,使用辦法2實現也不失為一種好方法

『肆』 如何使用單片機C語言實現復位

可以使用下面的程序跳到0000H實現軟復位,下面的程序實際上是一個函數指針,指針指向了0000H地址。
((void
(code
*)
(void))
0x0000)
();
下面的例子將實現軟體自復位void
reset
(void)
{
((void
(code
*)
(void))
0x0000)
();
}
void
main
(void)
{
reset
();
}
你可能注意到以上的軟復位程序並不能清除8051的中斷系統和某些8051的外圍設備,當您在中斷程序中調用上面的軟體復位程序後,中斷將再不能觸發。因此,以上的軟復位程序不能在中斷子程序中調用。
下面的小段匯編函數可以在中斷程序或主程序中調用,該函數將0x0000壓棧,然後通過「RETI」出棧,這將清除中斷環境並讓程序從0000H重新開始運行。
?PR?RESET
SEGMENT
CODE
RSEG
?PR?RESET
;
C
prototype:
void
reset
(void);
PUBLIC
reset
reset:
POP
ACC
;
pop
return
address
POP
ACC
CLR
A
;
push
0
as
new
PUSH
ACC
;
return
address
to
stack
PUSH
ACC
RETI
;
execute
return
of
interrupt
END
以上程序在選擇bank
0寄存器組時工作良好,假如選擇的不是bank0寄存器組,那麼可能無法獲得預料的結果。你應該在以上的程序或啟動代碼中加上「MOV
PSW,
#0」來選擇bank
0寄存器組。
以上文章由龍嘯九天翻譯自KEIL
FAQ,可能有疏漏,歡迎提出。

『伍』 單片機的硬體復位和軟體復位有什麼區別

嘿嘿 還是俺來幫你解答吧
1 單片機的硬體復位和門狗復位都是對單片機的復位引腳 加一個復位電平產生的 此時單片機
將進行復位操作 pc=0000h p0=p1=p2=p3=0ffh sp=07h 其它特殊寄存器將被清零。
復位結束後 單片機重新開始運行。
2 軟體復位;
一般為了防止程序跑飛 可以在程序存儲器中沒有指令的地方 全部寫入 LJMP 0000H指令
一旦單片機運行跑飛 進入LJMP 0000H指令區 將還返回單片機的第一條指令 重新運行單片機的正常程序.
軟體復位時,P0 P1 P2 P3 和特殊寄存器的內容都不會再改變.這點與硬體復位不同.

呵呵 滿意就給加分吧

『陸』 單片機軟體復位

51單片機也有很多種,你用的是哪個型號? 不管哪種一般都帶狗,你可以用看門狗去復位。
像增強型的單片機比如STC的,除了狗還有專門的軟復位寄存器。

『柒』 51系列單片機是如何進行復位的

在單片機系統的應用中,我們經常需要用到復位技術來實現抗干擾。有的單片機(如8098)有專門的復位指令,某些增強型MCS-51系列單片機雖然沒有復位指令,但片內集成了WATCHDOG電路,可以很容易實現復位。而普及型MCS-51系列單片機(如8031和8032)既無復位指令,又不帶硬體WATCHDOS,如果不外接硬體WATCHDOG,就必須採用軟體復位技術。所謂軟體復位就是用一系列指令來模仿復位操作。在MCS-51系列單片機中,只要用指令使程序從起始地址(0x0000)開始執行,就可以復位單片機。

『捌』 單片機軟復位幾種方法

如從機收到復位命令(軟體命令),程序怎麼使機器復位?雖然要使軟體始終處於可控狀態,最好不要用"復位",因為復位是純硬體過程,軟體是不可控的.但是我們還是要討論方法,一般流傳的方法如下:
1、放狗;
2、((void(code *)(void))0x0000)();
3、用單片機一個引腳控制點一下RSTRST;
4、用單片機一個引腳控制重新加電;
5、用單片機自帶的軟體復位指令或內狗指令;
6、goto大法;

閱讀全文

與單片機軟復位相關的資料

熱點內容
廣聯達軟體加密鎖原裝晶元 瀏覽:314
如何打開資料庫伺服器 瀏覽:308
kppm是什麼app 瀏覽:536
python多個數組命名 瀏覽:189
a演算法csdn 瀏覽:21
r720伺服器什麼年代 瀏覽:973
本地電腦怎麼設置傳奇伺服器 瀏覽:1000
安卓10框架怎麼製作 瀏覽:957
程序員退休工資待遇 瀏覽:607
湛江中文編程數控系統代理 瀏覽:417
openglandroid書 瀏覽:170
奇妙組件安卓版叫什麼 瀏覽:729
微信授權什麼app權重最高 瀏覽:11
php循環數組foreach 瀏覽:78
zip和app有什麼區別 瀏覽:633
乖法快速演算法 瀏覽:872
日本程序員一年工資 瀏覽:199
出國做程序員怎麼樣 瀏覽:736
rar鎖定壓縮文件 瀏覽:871
安卓id號碼怎麼更換 瀏覽:524