相信喜歡單片機(jī)的朋友都用過STC的單片機(jī),用過STC單片機(jī)的朋友都有這種感受:實(shí)惠、易用、功能強(qiáng)大!就是每次下載都要冷啟動(dòng)特別惡心,相信很多朋友的開發(fā)板上的電源鍵都按爛了。
其實(shí)STC單片機(jī)可以不用免掉電下載,想要知道怎樣才能免掉電下載,我們先要了解STC單片機(jī)是怎樣實(shí)現(xiàn)串口下載的,其實(shí)STC單片機(jī)出廠時(shí)就預(yù)置了一段ISP監(jiān)控程序,我們稱作ISP引導(dǎo)碼,這段ISP監(jiān)控程序就好比電腦硬盤的系統(tǒng)引導(dǎo)區(qū)。我們對(duì)STC單片機(jī)上電啟動(dòng)時(shí),單片機(jī)首先執(zhí)行ISP引導(dǎo)碼檢測串口是否下載程序的命令,如果上位機(jī)在對(duì)單片機(jī)下載程序時(shí),單片機(jī)檢測到下載數(shù)據(jù)流就啟動(dòng)ISP下載功能對(duì)單片機(jī)進(jìn)行程序下載,這就是我們平時(shí)實(shí)驗(yàn)時(shí)點(diǎn)擊下載后按開發(fā)板電源鍵的過程。
STC單片機(jī)在進(jìn)行冷啟動(dòng)時(shí)會(huì)從ISP引導(dǎo)碼開始執(zhí)行程序,而進(jìn)行熱啟動(dòng)或按復(fù)位鍵軟啟動(dòng)時(shí)是從用戶程序段開始執(zhí)行的。然而熟悉STC單片機(jī)的朋友知道STC單片機(jī)增加了ISP/IAP控制寄存器ISP_CONTR,用來管理ISP/IAP功能和是否軟啟動(dòng),其各位功能大家可參照STC公司相關(guān)資料。當(dāng)我們將ISP_CONTR置為0x60時(shí)單片機(jī)自動(dòng)復(fù)位從ISP引導(dǎo)碼開始執(zhí)行。由此我們?cè)谛枰螺d程序時(shí)將ISP_CONTR置為0x60就可以完成下載了。
下面來介紹怎樣實(shí)現(xiàn)
方法一:通過按復(fù)位鍵來實(shí)現(xiàn),STC單片機(jī)上電復(fù)位時(shí)PCON的POF=1,在按復(fù)位鍵復(fù)位時(shí)POF=0。所以我們?cè)诔绦蛑锌梢杂肞OF來 控制ISP_CONTR。
方法二:利用串口,STC下載軟件中有個(gè)自定義下載,也就是下載前通過串口發(fā)送一段自定義代碼,單片機(jī)收到該代碼后來控制單片機(jī)
ISP_CONTR進(jìn)行軟復(fù)位下載。