一文看懂STC單片機冷啓動和復位有什麼區別

一文看懂STC單片機冷啓動和復位有什麼區別


本文轉載於微信公衆號[玩轉單片機](https://mp.weixin.qq.com/s/xtlRX2PHF3wI8nAfl7fArQ)

STC單片機是一款增強型51單片機,完全兼容MCS-51,還增加了新的功能,比如新增兩級中斷優先級,多一個外中斷,內置EEPROM,硬件看門狗,具有掉電模式,512B內存等。還支持ISP下載,不用編程器,只要一個MAX232和一些廉價的元件就能寫程序,可擦寫10萬次。因此是一款很好用的單片機。

stc單片機的優缺點
  stc單片機優點:

1、抗干擾能力強;

2、保密性能強悍,很難被破解;

3、單片機時鐘有防外部電磁輻射功能;

stc單片機缺點:

1、功耗較高,5V供電;

2、8位,運行速度慢;

3、無硬件乘法器,乘除法運算都爲4週期指令;

4、單片機內集成資源少。

爲什麼STC單片機要冷啓動
  stc的程序分引導區和程序區。引導區的代碼主要負責ISP在線燒錄。而stc的冷啓動順序就是先從引導區然後啓動到程序區的。而熱啓動就是普通的51啓動方式,只能從程序區頭部開始重新執行。所以你必須冷啓動。另外STC提供了一個特殊的寄存器地址,通過設置他能通過軟件實現硬復位的功能直接跳轉到引導區。

STC單片機冷啓動和復位是什麼
  STC單片機冷啓動和復位是什麼,現以STC12系列爲例說明。

冷啓動,單片機掉電,電量放光後上電,爲冷啓動。

復位,單片機不掉電,使用復位管腳對其復位(還有其他類型的復位:看門狗、IAP_COUNTER控制軟復位)。這些屬於熱啓動。

STC單片機的復位方式
  以STC12C5A60S2系列單片機爲例:

1、外部RST引腳復位。

2、外部低壓檢測復位。

3、軟件復位

4、掉電覆位/上電覆位

5、看門狗復位

STC單片機冷啓動和復位有什麼區別
  區別就是復位啓動是強制進行重新啓動(前提就是你的電腦必須已經開着),而冷啓動就是你關機後重新進行啓動,這樣是按照電腦(硬盤)的工作原理來進行的。

還有的是復位啓動是不管你的硬盤是否運行,都要強制重啓,這樣的話,對你的硬盤有一定的損害。而冷啓動就等電腦(硬盤)保存好數據後,再一次進行啓動,對硬盤沒有損害。

關於stc51的冷啓動下載和復位
  Stc單片機裏面有一段出廠時固化的程序,這段程序的作用是檢測串口是否要下載程序,不需要則執行單片機內的用戶程序。每次啓動時運行這端程序,這就是爲什麼每次下載時要冷啓動。而復位後單片機是從地址0000H處開始執行,地址0000H又會指向主程序入口,即主函數處,即片內下載的用戶程序而不會執行前面已經固化的檢測串口那段程序。這就是爲什麼單片機每次下載要冷啓動,而復位不行。注意,程序前面的宏定義什麼的東西不佔用系統時間,所以主程序即主函數處。

有一個辦法可以給那些需要加電立刻啓動的用戶,STC單片機可以設置爲加電時只有P1.0/P1.1爲低電平時開始下載程序,否則直接執行用戶程序。這種辦法快,不用等前面檢測串口的那段時間 。stc單片機冷啓動是必須的而復位電路不是必須的,不管是冷啓動還是手動啓動。也就是想下載程序必須冷啓動,而有沒有復位電路無所謂。但是最小系統板上必須有復位電路,無論是上電覆位,還是上電加手動復位,雖然在一些簡單的程序中看不出區別,但是因爲復位操作會對一些特殊寄存器產生影響,這樣沒有復位操作的話再次執行函數的時候會出現錯誤。單片機斷電後在通電也會從主函數處繼續執行,可能是單片機斷電後地址自動回到0000H,但是那些特殊寄存器裏的值不會改變。

對於上電覆位,貌似電路不會有電流流過,但是上電瞬間,有一個給電容充電的過程,這個過程中rst端口會出現一個正脈衝,只要該脈衝保持1ms以上就能使單片機復位。

單片機的復位操作使單片機進入初始化狀態,其中包括使程序計數器PC=0000H,這表明程序從0000H地址單元開始執行。單片機冷啓動後,片內RAM爲隨機值,運行中的復位操作不改變片內RAM區中的內容,21個特殊功能寄存器復位後的狀態爲確定值,見下表。

值得指出的是,記住一些特殊功能寄存器復位後的主要狀態,對於瞭解單片機的初態,減少應用程序中的初始化部分是十分必要的。說明:表中符號*爲隨機狀態;A=00H,表明累加器已被清零;

PSW=00H,表明選寄存器0組爲工作寄存器組;

SP=07H,表明堆棧指針指向片內RAM 07H字節單元,根據堆棧操作的先加後壓法則,第一個被壓入的內容寫入到08H單元中;

Po-P3=FFH,表明已向各端口線寫入1,此時,各端口既可用於輸入又可用於輸出;IP=×××00000B,表明各個中斷源處於低優先級;IE=0××00000B,表明各個中斷均被關斷;

系統復位是任何微機系統執行的第一步,使整個控制芯片回到默認的硬件狀態下。51單片機的復位是由RESET引腳來控制的,此引腳與高電平相接超過24個振盪週期後,51單片機即進入芯片內部復位狀態,而且一直在此狀態下等待,直到RESET引腳轉爲低電平後,才檢查EA引腳是高電平或低電平,若爲高電平則執行芯片內部的程序代碼,若爲低電平便會執行外部程序。

51單片機在系統復位時,將其內部的一些重要寄存器設置爲特定的值,至於內部RAM內部的數據則不變。

發佈了22 篇原創文章 · 獲贊 22 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章