單片機(Microcontrollers)是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的300M的高速單片機。
單片機如何冷啟動
單片機冷啟動很簡單,關電,再上電,正常復位后,就冷啟動成功。單片機冷啟動其實是一個技術術語,是指單片機從最原始狀態啟動運行。實現這一目標視不同的單片機內部結構而有所不同。接下來我們以STC12系列單片機冷啟動、熱啟動解析一下:
冷啟動——是指在斷電狀態下重新上電。冷啟動,是在下載程序開始時,為了是單片檢測有無下載信號。若有則下載;若無則執行原來的程序。
熱啟動——是指已經處于上電狀態,給復位端加復位信號(還有其他類型的復位),程序重新運行。
怎樣判斷是冷啟動、熱啟動?
可通過查詢PCON寄存器中的POF位來判斷,單片機上電冷啟動后,POF位變為1,可由軟件清0
實際判斷流程圖:
關于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內部的數據則不變。
-
單片機
+關注
關注
6043文章
44622瀏覽量
638548 -
32位單片機
+關注
關注
2文章
260瀏覽量
38164
發布評論請先 登錄
相關推薦
評論