<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 關(guān)于stc51的冷啟動(dòng)下載和復位

關(guān)于stc51的冷啟動(dòng)下載和復位

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò ) 收藏
Stc單片機里面有一段出廠(chǎng)時(shí)固化的程序,這段程序的作用是檢測串口是否要下載程序,不需要則執行單片機內的用戶(hù)程序。每次啟動(dòng)時(shí)運行這端程序,這就是為什么每次下載時(shí)要冷啟動(dòng)。而復位后單片機是從地址0000H處開(kāi)始執行,地址0000H又會(huì )指向主程序入口,即主函數處,即片內下載的用戶(hù)程序而不會(huì )執行前面已經(jīng)固化的檢測串口那段程序。這就是為什么單片機每次下載要冷啟動(dòng),而復位不行。注意,程序前面的宏定義什么的東西不占用系統時(shí)間,所以主程序即主函數處。
有一個(gè)辦法可以給那些需要加電立刻啟動(dòng)的用戶(hù),STC單片機可以設置為加電時(shí)只有P1.0/P1.1為低電平時(shí)開(kāi)始下載程序,否則直接執行用戶(hù)程序。這種辦法快,不用等前面檢測串口的那段時(shí)間 。stc單片機冷啟動(dòng)是必須的而復位電路不是必須的,不管是冷啟動(dòng)還是手動(dòng)啟動(dòng)。也就是想下載程序必須冷啟動(dòng),而有沒(méi)有復位電路無(wú)所謂。但是最小系統板上必須有復位電路,無(wú)論是上電復位,還是上電加手動(dòng)復位,雖然在一些簡(jiǎn)單的程序中看不出區別,但是因為復位操作會(huì )對一些特殊寄存器產(chǎn)生影響,這樣沒(méi)有復位操作的話(huà)再次執行函數的時(shí)候會(huì )出現錯誤。單片機斷電后在通電也會(huì )從主函數處繼續執行,可能是單片機斷電后地址自動(dòng)回到0000H,但是那些特殊寄存器里的值不會(huì )改變。

對于上電復位,貌似電路不會(huì )有電流流過(guò),但是上電瞬間,有一個(gè)給電容充電的過(guò)程,這個(gè)過(guò)程中rst端口會(huì )出現一個(gè)正脈沖,只要該脈沖保持1ms以上就能使單片機復位。
單片機的復位操作使單片機進(jìn)入初始化狀態(tài),其中包括使程序計數器PC=0000H,這表明程序從0000H地址單元開(kāi)始執行。單片機冷啟動(dòng)后,片內RAM為隨機值,運行中的復位操作不改變片內RAM區中的內容,21個(gè)特殊功能寄存器復位后的狀態(tài)為確定值,見(jiàn)下表。
值得指出的是,記住一些特殊功能寄存器復位后的主要狀態(tài),對于了解單片機的初態(tài),減少應用程序中的初始化部分是十分必要的。 說(shuō)明:表中符號*為隨機狀態(tài); A=00H,表明累加器已被清零;
特殊功能寄存器
初始狀態(tài) 特殊功能寄存器
初始狀態(tài) A 00H TMOD 00H B 00H TCON 00H PSW 00H TH0 00H SP 07H TL0 00H DPL 00H TH1 00H DPH
00H
TL1
00H



P0~P3 FFH SBUF 不定 IP ***00000B SCON 00H IE
0**00000B
PCON
0*******B
PSW=00H,表明選寄存器0組為工作寄存器組;
SP=07H,表明堆棧指針指向片內RAM 07H字節單元,根據堆棧操作的先加后壓法則,第一個(gè)被壓入的內容寫(xiě)入到08H單元中;
Po-P3=FFH,表明已向各端口線(xiàn)寫(xiě)入1,此時(shí),各端口既可用于輸入又可用于輸出; IP=×××00000B,表明各個(gè)中斷源處于低優(yōu)先級; IE=0××00000B,表明各個(gè)中斷均被關(guān)斷;
系統復位是任何微機系統執行的第一步,使整個(gè)控制芯片回到默認的硬件狀態(tài)下。51單片機的復位是由RESET引腳來(lái)控制的,此引腳與高電平相接超過(guò)24個(gè)振蕩周期后,51單片機即進(jìn)入芯片內部復位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執行芯片內部的程序代碼,若為低電平便會(huì )執行外部程序。
51單片機在系統復位時(shí),將其內部的一些重要寄存器設置為特定的值,至于內部RAM內部的數據則不變。


評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>