STC系列單片機(jī)不斷電下載程序應(yīng)用技術(shù)
摘要 針對(duì)單片機(jī)下載程序時(shí)需要重復(fù)機(jī)械式復(fù)位產(chǎn)生的一系列調(diào)試繁瑣的問題,提出了一種用軟件引導(dǎo)代替單片機(jī)硬件復(fù)位寫入ROM的方法。該方法通過檢測(cè)串口數(shù)據(jù)流是否合法,來判斷是否執(zhí)行ISP引導(dǎo)程序,從而利用軟件方式復(fù)位,可以讓STC單片機(jī)復(fù)位后從ISP引導(dǎo)程序處執(zhí)行,利用該特性可以模擬單片機(jī)上電復(fù)位狀態(tài),實(shí)現(xiàn)單片機(jī)的不斷電下載。
關(guān)鍵詞 STC單片機(jī);ISP引導(dǎo)程序;不斷電下載;軟件設(shè)計(jì)
隨著單片機(jī)技術(shù)的發(fā)展,單片機(jī)片內(nèi)存儲(chǔ)器的容量越來越大,可以容納越來越大的程序。由于程序越來越復(fù)雜,在程序調(diào)試過程中需要不斷進(jìn)行硬件復(fù)位來下載程序,雖然在線下載程序的方法已經(jīng)普遍應(yīng)用,但在現(xiàn)實(shí)調(diào)試實(shí)現(xiàn)中還是比較繁瑣,因此人們?cè)趯で笠环N用軟件代替硬件的復(fù)位方法來調(diào)試下載程序,近而在工程實(shí)際中更加快捷方便地進(jìn)行程序?qū)崿F(xiàn)。因此,文中提出了一種軟件復(fù)位單片機(jī)的方法,即利用STC單片機(jī)獨(dú)有的ISP引導(dǎo)區(qū),用特殊的指令使調(diào)試好的程序從ISP引導(dǎo)區(qū)執(zhí)行,避免頻繁地硬件復(fù)位,而且簡(jiǎn)單實(shí)用。
1 軟件復(fù)位單片機(jī)的工作原理
1.1 STC單片機(jī)復(fù)位方法簡(jiǎn)介
STC單片機(jī)的復(fù)位方法分為熱啟動(dòng)和冷啟動(dòng)兩種:冷啟動(dòng)是系統(tǒng)斷電后再上電的硬件復(fù)位;熱啟動(dòng)分為3種:一種是reset引腳復(fù)位,一種是內(nèi)部看門狗復(fù)位,一種是ISP引導(dǎo)區(qū)復(fù)位。熱啟動(dòng)中的reset復(fù)位是reset引腳接受到復(fù)位信號(hào)直接從用戶區(qū)執(zhí)行,內(nèi)部看門狗是在外界電磁干擾致使程序跑飛時(shí)發(fā)出一個(gè)復(fù)位信號(hào),使程序地址指針移動(dòng)到00H,產(chǎn)生和reset復(fù)位相同的效果,ISP引導(dǎo)區(qū)復(fù)位是一種只有在系統(tǒng)上電時(shí)才執(zhí)行的程序存儲(chǔ)區(qū),當(dāng)程序執(zhí)行到ISP引導(dǎo)區(qū)時(shí),如果系統(tǒng)沒有檢測(cè)到合法的數(shù)據(jù)流,則直接執(zhí)行用戶程序區(qū);如果系統(tǒng)檢測(cè)到合法的數(shù)據(jù)流,則先下載程序,再執(zhí)行用戶程序區(qū)。單片機(jī)啟動(dòng)的過程為:先給斷電的單片機(jī)通電,進(jìn)行STCISP下載,然后執(zhí)行用戶程序,或者沒有檢測(cè)到合法的數(shù)據(jù)流,然后直接執(zhí)行用戶程序區(qū)。其流程圖如圖1所示。
評(píng)論