溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

STC單片機(jī)程序是怎么下載進(jìn)單片機(jī)的

發(fā)布時(shí)間:2021-12-22 14:10:16 來源:億速云 閱讀:1396 作者:柒染 欄目:互聯(lián)網(wǎng)科技

本篇文章給大家分享的是有關(guān)STC單片機(jī)程序是怎么下載進(jìn)單片機(jī)的,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

這個(gè)問題我們分兩部分來說,一部分是單片機(jī)端是如何實(shí)現(xiàn)的,另一部分是電腦端是如何實(shí)現(xiàn)的,下面我們慢慢討論。

一、單片機(jī)端是如何實(shí)現(xiàn)下載程序的?

要說清這個(gè)問題,就需要說說STC單片機(jī)的存儲(chǔ)器,STC單片機(jī)的存儲(chǔ)器包含數(shù)據(jù)存儲(chǔ)器SRAM,程序存儲(chǔ)區(qū)ROM,EEPROM和ISP程序監(jiān)控區(qū),以下以STC15w448s4為例說明:

A. 數(shù)據(jù)存儲(chǔ)器SRAM4K大小,內(nèi)部RAM256字節(jié)<idata>,內(nèi)部擴(kuò)展的3840字節(jié)<xdata>,這部分就是用來給我定義變量,常量的區(qū)域。

B. 程序存儲(chǔ)區(qū)ROM48K大小,今天的重點(diǎn),程序下載后就是存在這部分區(qū)域里了。

C. EEPROM:13K大小,此部分就是類似于24C02這樣的芯片,掉電存儲(chǔ)區(qū),用于保存密碼等一些掉電后不能丟失的數(shù)據(jù)。

D. ISP程序監(jiān)控區(qū)STC官方在芯片出廠前就通過特殊方式固化了程序在內(nèi)部,我們用戶是沒法操作和使用本區(qū)域的。

ISP程序監(jiān)控區(qū)的作用:

   在ISP監(jiān)控區(qū)里,STC官方出廠芯片的時(shí)候就已經(jīng)燒寫進(jìn)去一段特殊的代碼,我們用戶是沒法修改和查看的,這里說的燒寫也不是我們給單片機(jī)下載程序這樣簡(jiǎn)單的燒寫,是通過特殊的方式特殊的接口寫進(jìn)特殊的程序,總之不要想著去搞懂它,要懂的接下來我們慢慢說。

STC單片機(jī)在上電的很短一段時(shí)間內(nèi)是不去執(zhí)行我們用戶的程序的,單片機(jī)是首選去執(zhí)行ISP監(jiān)控區(qū)域的代碼,此時(shí)這里面的代碼只干一件事,就是不斷去檢測(cè)P30引腳上的數(shù)據(jù)。

a、如果P30引腳上的數(shù)據(jù)是連續(xù)的合法的下載命令,那ISP監(jiān)控區(qū)域內(nèi)的程序就去擦除程序存儲(chǔ)區(qū)ROM內(nèi)的我們上一次燒寫進(jìn)去的代碼,再把我們當(dāng)前這次需要下載的程序存儲(chǔ)到程序存儲(chǔ)區(qū)ROM內(nèi),最后在復(fù)位PC指針,使得PC=0000H。完成這些后,CPU就不斷的通過PC指針去讀取我們剛才燒寫進(jìn)去程序存儲(chǔ)區(qū)ROM內(nèi)的代碼來執(zhí)行,到這里一次完整的程序下載(燒寫)就完成了。

b、如果P30引腳上沒有連續(xù)的合法的下載命令,那ISP監(jiān)控區(qū)域的程序就去復(fù)位PC指針,使得PC=0000H,CPU就不斷的通過PC指針去讀取程序存儲(chǔ)區(qū)ROM內(nèi)的代碼來執(zhí)行。

二、電腦端(STC_ISP軟件端)是如何實(shí)現(xiàn)程序下載的?

STC單片機(jī)程序是怎么下載進(jìn)單片機(jī)的

如上圖所示,當(dāng)我們點(diǎn)擊STC_ISP軟件中的下載/編程按鈕(上圖中紅圈部分)后,電腦就不斷發(fā)送下載命令到CH 340G,芯片內(nèi)部轉(zhuǎn)換電平后得到標(biāo)準(zhǔn)的串口信號(hào),再發(fā)送給單片機(jī)的P30口。此時(shí),單片機(jī)是不會(huì)執(zhí)行下載程序的,需要我們給單片機(jī)斷電一下,再上電實(shí)現(xiàn)冷啟動(dòng),冷啟動(dòng)后,上面我們說到ISP監(jiān)控區(qū)域就起作用了,上面我們說了,在單片機(jī)上電的很短一段時(shí)間里,單片機(jī)是去執(zhí)行ISP監(jiān)控區(qū)域的程序的。ISP識(shí)別出此時(shí)單片機(jī)P30引腳上的信號(hào)是電腦發(fā)送的下載命令,那ISP監(jiān)控程序就在單片機(jī)P31引腳上返回一個(gè)信號(hào),信號(hào)再通過CH340G轉(zhuǎn)換后傳輸?shù)絊TC_ISP軟件,軟件識(shí)別出返回的信號(hào)是單片機(jī)給的,此說說明電腦端STC_ISP軟件和單片機(jī)之間通過“密碼”連接成功,也就是下載時(shí)候STC_ISP右側(cè)監(jiān)控區(qū)域里顯示的“握手成功”。接下來通信就正常化了,STC_ISP不斷的發(fā)送我們要下載的程序到單片機(jī)的P30引腳,單片機(jī)從P31引腳不斷返回“接收正?!?,不斷的這樣重復(fù)下去,直到程序下載完。

程序下載完后,單片機(jī)ISP監(jiān)控區(qū)域代碼還在一直識(shí)別,但是STC_ISP 軟件已經(jīng)不再發(fā)送數(shù)據(jù),此時(shí)單片機(jī)ISP區(qū)域代碼檢測(cè)不到下載命令后,直接使PC復(fù)位,使得PC=0000H,CPU就不斷的從程序存儲(chǔ)區(qū)ROM里讀取程序來執(zhí)行,此時(shí)我們直觀看到的就是單片機(jī)程序下載成功了,而已單片機(jī)已經(jīng)在執(zhí)行我們的程序,只要程序沒問題,那自然能看到我們想要的效果啦。

下面,簡(jiǎn)單總結(jié)下載程序的全過程:

1、電腦端點(diǎn)擊“下載”按鈕,STC_ISP 軟件發(fā)送下載命令到單片機(jī)P30引腳,此時(shí)單片機(jī)需要冷啟動(dòng)

2、單片機(jī)冷啟動(dòng)后,P30引腳收到下載命令,再?gòu)腜31引腳返回自身的基本信息,此時(shí)單片機(jī)和STC_ISP已經(jīng)捂手成功

3、STC_ISP發(fā)送程序數(shù)據(jù)到單片機(jī)P30引腳

4,、單片機(jī)接收程序數(shù)據(jù)并保存在程序存儲(chǔ)區(qū)ROM里,并從P31引腳返回“接收成功”信號(hào)到STC_ISP

5、STC_ISP接收到單片機(jī)返回的“接收成功”后,重復(fù)第3步,知道需要下載的程序數(shù)據(jù)發(fā)送完畢

6、程序數(shù)據(jù)發(fā)送完畢后,單片機(jī)P30引腳不再收到下載數(shù)據(jù),過一小段時(shí)間后,ISP監(jiān)控區(qū)域復(fù)位PC指針,使得PC=0000H,單片機(jī)開始從程序存儲(chǔ)區(qū)ROM里讀取程序來執(zhí)行。

最后我們來總結(jié)一下,STC單片機(jī)下載程序的幾個(gè)關(guān)鍵點(diǎn):

1、單片機(jī)要和電腦采用串口方式建立連接

2、電腦端串口要能正常通訊

3、單片機(jī)要能斷電冷啟動(dòng)

4、單片機(jī)要能返回自身的一些基本信息回到電腦端。

以上就是STC單片機(jī)程序是怎么下載進(jìn)單片機(jī)的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

stc
AI