我相信有很多同學(xué)知道單片機(jī)燒寫程序需要給單片機(jī)通電,這種叫做冷啟動(dòng)。但是對(duì)于什么是熱啟動(dòng)、什么是冷啟動(dòng),我相信很多同學(xué)還不清楚。在STC單片機(jī)官方數(shù)據(jù)手冊(cè)中其實(shí)有詳細(xì)的說明和解釋。如下圖是引用STC官方手冊(cè)43頁(yè)。
從表中內(nèi)容可以看到,冷啟動(dòng)和熱啟動(dòng)方式最大的區(qū)別就是冷啟動(dòng)是從系統(tǒng)無電到有電的過程,而熱啟動(dòng)是系統(tǒng)在有電情況下的操作。在這個(gè)表格中可以注意到,在系統(tǒng)停電后再上電硬氣硬復(fù)位后,系統(tǒng)就會(huì)從ISP監(jiān)控程序區(qū)開始執(zhí)行程序,所以會(huì)檢測(cè)是否有ISP下載命令流入,這個(gè)其實(shí)就是一個(gè)燒寫程序的過程。有很多同學(xué)咨詢過芯哥關(guān)于遠(yuǎn)程OTA升級(jí),這個(gè)ISP下載命令應(yīng)該就是非常重要的一個(gè)信息,有了這個(gè)命令告知單片機(jī),接下來就是輸入程序數(shù)據(jù)了吧。
大家注意在熱啟動(dòng)中還有一個(gè)和冷啟動(dòng)相同的功能,同樣可以讓系統(tǒng)從ISP監(jiān)控程序區(qū)開始執(zhí)行程序,同樣讓系統(tǒng)檢測(cè)是否有ISP下載命令流入。這不就也是一個(gè)燒寫過程嗎?那是不是意味著如果通過軟件操作ISP_CONTR寄存器,并且可以看到需要寫入60H數(shù)據(jù)即可產(chǎn)生軟復(fù)位,這個(gè)熱啟動(dòng)的軟復(fù)位過程也會(huì)引起單片機(jī)開始檢測(cè)ISP燒寫命令啊。
為了詳細(xì)的了解這個(gè)ISP_CONTR寄存器,如下圖所示,如果想要燒寫程序,控制ISP_CONTR寄存器為60H,那么就是B6和B5兩個(gè)位為1,B6為1表示系統(tǒng)從ISP程序區(qū)啟動(dòng),這也是冷啟動(dòng)產(chǎn)生的一個(gè)條件。B5為1表示產(chǎn)生軟件系統(tǒng)復(fù)位,這也是冷啟動(dòng)會(huì)產(chǎn)生的一個(gè)條件,只不過這個(gè)是軟復(fù)位,冷啟動(dòng)是硬復(fù)位。
那么通過對(duì)ISP_CONTR寄存器寫入06H后,會(huì)不會(huì)完成燒寫操作呢?下期給大家測(cè)試一下。