本文主要是關(guān)于51單片機復(fù)位的相關(guān)介紹,并著重對51單片機復(fù)位方法及其原理進(jìn)行了詳盡的闡述。
為什么需要單片機復(fù)位
這就好比開啟了看門狗但沒有喂狗
單元負(fù)載能力不足
電源不穩(wěn)定
干擾
程序錯誤導(dǎo)致軟件指令復(fù)位
還有最重要的:內(nèi)存溢出,如下:
在只有128byte內(nèi)存的單片機里面定義過多的全局變量并且其中有指針變量的話,非常容易出現(xiàn)干擾到堆棧指針SP,導(dǎo)致程序異常。
IO接口只能通過直接訪問高128字節(jié)才能寫入或讀出數(shù)值,無法通過指針等其他途徑訪問。
所以當(dāng)前情況很有可能是內(nèi)存溢出導(dǎo)致單片機不斷在重啟。
當(dāng)內(nèi)存超過128yte的情況下在編譯的時候編譯器會提示內(nèi)存不足。
在256byte的單片機中可以通過idata使用高128byte內(nèi)存,通常一些不常用的變量。
盡量使用局部變量提高內(nèi)存使用效率。
51單片機復(fù)位電路詳解
復(fù)位電路的工作原理
在書本上有介紹,51單片機要復(fù)位只需要在第9引腳接個高電平持續(xù)2us就可以實現(xiàn),那這個過程是如何實現(xiàn)的呢?在單片機系統(tǒng)中,系統(tǒng)上電啟動的時候復(fù)位一次,當(dāng)按鍵按下的時候系統(tǒng)再次復(fù)位,如果釋放后再按下,系統(tǒng)還會復(fù)位。所以可以通過按鍵的斷開和閉合在運行的系統(tǒng)中控制其復(fù)位。
開機的時候為什么為復(fù)位
在電路圖中,電容的的大小是10uf,電阻的大小是10k。所以根據(jù)公式,可以算出電容充電到電源電壓的0.7倍(單片機的電源是5V,所以充電到0.7倍即為3.5V),需要的時間是10K*10UF=0.1S。也就是說在電腦啟動的0.1S內(nèi),電容兩端的電壓時在0~3.5V增加。這個時候10K電阻兩端的電壓為從5~1.5V減少(串聯(lián)電路各處電壓之和為總電壓)。所以在0.1S內(nèi),RST引腳所接收到的電壓是5V~1.5V。在5V正常工作的51單片機中小于1.5V的電壓信號為低電平信號,而大于1.5V的電壓信號為高電平信號。所以在開機0.1S內(nèi),單片機系統(tǒng)自動復(fù)位(RST引腳接收到的高電平信號時間為0.1S左右)。
按鍵按下的時候為什么會復(fù)位
在單片機啟動0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時候,開關(guān)導(dǎo)通,這個時候電容兩端形成了一個回路,電容被短路,所以在按鍵按下的這個過程中,電容開始釋放之前充的電量。隨著時間的推移,電容的電壓在0.1S內(nèi),從5V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個時候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機系統(tǒng)自動復(fù)位。
總結(jié):
1、復(fù)位電路的原理是單片機RST引腳接收到2US以上的電平信號,只要保證電容的充放電時間大于2US,即可實現(xiàn)復(fù)位,所以電路中的電容值是可以改變的。
2、按鍵按下系統(tǒng)復(fù)位,是電容處于一個短路電路中,釋放了所有的電能,電阻兩端的電壓增加引起的。
51單片機復(fù)位的方法有哪些
51單片機有五種常用的復(fù)位方法:
1.上電制動復(fù)位,注意:只要電源的的上升時間不超過1ms,就可以實現(xiàn)自動上電復(fù)位。
2.軟件復(fù)位,注意:復(fù)位信號保持時間是編程人員預(yù)定的時間。
3.按鍵電平復(fù)位,注意:復(fù)位信號保持時間大于2個時鐘周期。
4.外部脈沖復(fù)位,注意:復(fù)位信號保持時間大于2個時鐘周期。
5.看門狗溢出復(fù)位,注意:復(fù)位信號保持時間也是編程人員預(yù)定的時間。
【MCS-51單片機地址指針程序設(shè)置方法】
下面以數(shù)據(jù)塊傳送子程序為例,說明R0和R1對外接RAM間接尋址的程序設(shè)計方法。假定數(shù)據(jù)塊的源首地址為1000H,目的首地址為3045H,數(shù)據(jù)塊長度為50H,程序清單如下所示:
程序1—用DPTR做地址指針
MOV R2,#00H
MOV R3,#10H
MOV R4,45H
MOV R5,#30H
MOV R7,#50H
LOOP: MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
INC DPTR
MOV R2,DPL
MOV R3,DPH
MOV DPL,R4
MOV DPH,R5
MOVX @DPTR,A
INC DPTR
MOV R4,DPL
MOV R5,DPH
DJNZ R7,LOOP
RET
程序2—使用R0和R1做地址指針
MOV DPTR,#1000H
MOV P2,#30H
MOV R0,#45H
MOV R7,#50H
LOOP: MOVX A,@DPTR
MOVX @R0,A
INC DPTR
INC R0
DJNZ R7,LOOP
RET
程序1用了19條指令,程序2用了10條指令。適當(dāng)應(yīng)用R0和R1地址指針,可以大大提高程序運行效率。
結(jié)語
關(guān)于51單片機復(fù)位的相關(guān)介紹就到這了,如有不足之處歡迎指正。
-
單片機
+關(guān)注
關(guān)注
6058文章
44821瀏覽量
644578 -
復(fù)位電路
+關(guān)注
關(guān)注
13文章
324瀏覽量
44984
發(fā)布評論請先 登錄
相關(guān)推薦
解決51單片機復(fù)位觸發(fā)的4種方法

51單片機實現(xiàn)復(fù)位的方法
MCS51系列單片機軟件控制復(fù)位的可靠方法
avr單片機復(fù)位電路

51單片機幾種實用的復(fù)位電路設(shè)計
51單片機復(fù)位電路原理是什么?為什么為復(fù)位?

8051單片機有哪些復(fù)位方法
51單片機的復(fù)位方式及原理

51單片機進(jìn)行高電平復(fù)位的方法說明

基礎(chǔ)——再看51單片機復(fù)位電路

51單片機復(fù)位電路

51單片機(十二)—— 單片機復(fù)位

評論