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

單片機復位程序

發布時間:2022-10-23 17:50:59

1. 單片機如何用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,可能有疏漏,歡迎提出。

2. 單片機復位是什麼意思有什麼作用

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

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

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

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

(2)單片機復位程序擴展閱讀:

復位方式:

1、手動按鈕復位

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

2、上電復位

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

3、積分型上電復位

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

3. 8051單片機如何實現復位,復位的作用是什麼

單片機復位:RST 引腳輸入不少於2個機器周期(24個時鍾周期)的高電平。
復位的作用:單片機對相關的寄存器、I/O 埠進行初始化操作,使單片機從同一個狀態開始工作。
復位是解決智能化設備故障的首選操作,即看門狗模塊的作用。

4. STC89C51 單片機復位

該單片機正常工作時復位端電壓應保持低電平狀態,復位時給復位端加上一個短暫的高電平即可使單片機程序復位。該復位電路的工作原理是,電源通過電解電容再通過電阻串聯到地,電容兩段並聯一按鍵開關,正常工作時電容隔斷電源電壓,單片機復位端相當於通過電阻接地。因電路中無電流,所以復位端電壓為0伏。當運行過程中需要復位時,通過撥動按鍵開關,把電容直接短路,電源電壓加在電阻兩端,單片機復位端即可過得一個短暫的高電平從而復位。松開按鍵,復位結束,單片機即可正常跑馬。上電時,電解電容充電,串聯電路中有電流流過,電阻兩端獲得一個電壓,也可使單片機復位端為高電平而復位。所以復位包括上電復位和手動復位。

5. 使AT89C51單片機復位有幾種方法復位後的狀態如何

通常就是一種方法,在復位管腳(RST)加高電平信號。復位後程序計數器回零。

1、一般數據手冊上對寄存器的描述都會有給出默認值或直接描述上電或復位後的值,默認值就是復位後的寄存器的值。

2、是從STC89C51RC單片機的Data Sheet中截圖的,Value after Power-on or Reset就是單片機上電或復位後的狀態,x表示不確定,可能是1,可能是0。

(5)單片機復位程序擴展閱讀:

AT89C51 提供以下標准功能:4k位元組Flash閃速存儲器,256位元組片內數據存儲器(00H -7FH為片內RAM,80H-FFH為特殊功能寄存器SFR),32 個I/O 口線,兩個16位定時/計數器,一個5向量兩級中斷結構,一個全雙工串列通信口,片內振盪器及時鍾電路。

同時,AT89C51可降至0Hz的靜態邏輯操作,並支持兩種軟體可選的節電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數器,串列通信口及中斷系統繼續工作。掉電方式保存RAM中的內容,但振盪器停止工作並禁止其它所有部件工作直到下一個硬體復位。

6. 單片機軟復位幾種方法

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

7. 52單片機復位後從哪裡運行

52單片機復位後從主界面運行,對於51單片機來說,程序復位後一定從0x0000開始,一般會在中斷入口前寫一個無條件跳轉,一直跳轉到程序開始的位置。

8. 單片機的三種復位方式

一、高電平復位

復位電路的工作原理 在書本上有介紹,51單片機要復位只需要在第9引腳接個高電平持續2us就可以實現,那這個過程是如何實現的呢?在單片機系統中,系統上電啟動的時候復位一次,當按鍵按下的時候系統再次復位,如果釋放後再按下,系統還會復位。所以可以通過按鍵的斷開和閉合在運行的系統中控制其復位。

(1)、上電復位

電容的的大小是10uf,電阻的大小是10k。所以根據公式,可以算出電容充電到電源電壓的0.7倍(單片機的電源是5V,所以充電到0.7倍即為3.5V),需要的時間是10K*10UF=0.1S。也就是說在電腦啟動的0.1S內,電容兩端的電壓時在0~3.5V增加。這個時候10K電阻兩端的電壓為從5~1.5V減少(串聯電路各處電壓之和為總電壓)。所以在0.1S內,RST引腳所接收到的電壓是5V~1.5V。在5V正常工作的51單片機中小於1.5V的電壓信號為低電平信號,而大於1.5V的電壓信號為高電平信號。所以在開機0.1S內,單片機系統自動復位(RST引腳接收到的高電平信號時間為0.1S左右)。

(2) 按鍵復位

在單片機啟動0.1S後,電容C兩端的電壓持續充電為5V,這是時候10K電阻兩端的電壓接近於0V,RST處於低電平所以系統正常工作。當按鍵按下的時候,開關導通,這個時候電容兩端形成了一個迴路,電容被短路,所以在按鍵按下的這個過程中,電容開始釋放之前充的電量。隨著時間的推移,電容的電壓在0.1S內,從5V釋放到變為了1.5V,甚至更小。根據串聯電路電壓為各處之和,這個時候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機系統自動復位。

總結: 1、復位電路的原理是單片機RST引腳接收到2US以上的電平信號,只要保證電容的充放電時間大於2US,即可實現復位,所以電路中的電容值是可以改變的。 2、按鍵按下系統復位,是電容處於一個短路電路中,釋放了所有的電能,電阻兩端的電壓增加引起的。

二、低電平復位

在使用STM32晶元時,常用的復位方式為按鍵復位,且為低電平復位。其原理與上述高電平復位相反,分析也挺簡單,這里不在贅述,只給出按鍵復位原理
單片機的復位引腳RST(全稱RESET)出現2個機器周期以上的復位電平時,單片機就執行復位操作。如果RST持續為復位電平,單片機就處於循環復位狀態。當單片機處於正常電平時就正常轉入執行程序。

當單片機上電瞬間由於電容電壓不能突變會使電容兩邊的電位相同,此時RST為低電平,之後隨著時間推移電源通過電阻對電容充電,充滿電時RST為高電平。正常工作為高電平,低電平復位。即上電低電平,然後轉向高電平。當單片機上電瞬間由於電容電壓不能突變會使電容兩邊的電位相同,此時RST為高電平,之後隨著時間推移電源負極通過電阻對電容放電,放完電時RST為低電平。正常工作為低電平,高電平復位。

9. 51系列單片機是如何進行復位的

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

10. 單片機秒錶復位程序如何寫

秒錶就是一個計時的工具,為了保證精確度,一般顯示秒後面兩位,就是10ms位,在單片機定時器中,賦初值1ms,變數不停的累加上去, 累加到10的時候,秒錶加1,就是10ms了,
復位就是對秒錶的數據進行清零重置,這時就需要一個按鍵來進行人機交互功能了,這時候就要考慮有幾個按鍵了,一般的秒錶設計的時候有兩個按鍵,一個進行啟動停止,一個進行清零;
1.啟動和停止,啟動停止的按鍵,就是按一下讓標志位取反一次,
bit flag =0;
if(Key ==0)
{
delay(); //延時10ms;這個程序比較常見,就不寫出來了

if(key == 0)

{
flag = !flag; //消抖後檢測到按鍵還是按下狀態,就把標志位取反;

while(!Key); //等待鬆手
}

}
同時在定時器中斷里, 根據標志位對 及時變數進行累加
if(flag)

{
t++;

if(t >= 10)

{
t = 0;

ms++;

}

}

就這樣 標志位就表示的秒錶啟動停止的,

2 。 復位,復位顧名思義就是 返回到初始狀態,就是0 ; 一般復位是在秒錶停止的狀態對秒錶進行清零;
先在主程序里檢測按鍵

bit clc = 0;
if(key1 == 0)
{
delay(); // 延時10ms

if(Key1 == 0)

{
clc = 1;

while(!Key1); //等待鬆手

}
}

然後在定時器中斷里進行對變數的數值進行清零
if(!flag ) //在停止狀態
{
if(clc)

{
ms = 0;

clc = 0;
}
}
到此 秒錶的啟動停止 和復位就完成了 ,

閱讀全文

與單片機復位程序相關的資料

熱點內容
mdk編譯後目標文件 瀏覽:613
老人動手解壓 瀏覽:720
小米sd卡解壓 瀏覽:996
程序員那麼可愛陸漓替老袁說情 瀏覽:28
當女程序員遇見問題 瀏覽:746
32位編譯器什麼意思 瀏覽:355
php多參數函數 瀏覽:17
通達信板塊動作源碼 瀏覽:751
matlab完全自學一本通pdf 瀏覽:250
php源碼本地安裝 瀏覽:961
伺服器怎麼用不會斷電 瀏覽:301
主從伺服器有什麼用 瀏覽:213
jstlpdf 瀏覽:15
安卓原神在哪個app下載 瀏覽:808
單片機編程技術什麼意思 瀏覽:104
e點課堂源碼 瀏覽:46
免費打擊墊app哪個好 瀏覽:532
程序員必裝的6款軟體 瀏覽:750
基於單片機的遙控器設計 瀏覽:521
安卓如何取消圓圖標 瀏覽:11