這個問題我們分兩部分來說,一部分是單片機端是如何實現(xiàn)的,另一部分是電腦端是如何實現(xiàn)的,下面我們慢慢BB。
一、單片機端是如何實現(xiàn)下載程序的?
要說清這個問題,就需要說說STC單片機的存儲器,STC單片機的存儲器包含數(shù)據(jù)存儲器SRAM,程序存儲區(qū)ROM,EEPROM和ISP程序監(jiān)控區(qū),以下以STC15w448s4為例說明:
A.數(shù)據(jù)存儲器SRAM:4K大小,內(nèi)部RAM256字節(jié)
B.程序存儲區(qū)ROM:48K大小,今天的重點,程序下載后就是存在這部分區(qū)域里了。
C.EEPROM:13K大小,此部分就是類似于24C02這樣的芯片,掉電存儲區(qū),用于保存密碼等一些掉電后不能丟失的數(shù)據(jù)。
D.ISP程序監(jiān)控區(qū):STC官方在芯片出廠前就通過特殊方式固化了程序在內(nèi)部,我們用戶是沒法操作和使用本區(qū)域的。
ISP程序監(jiān)控區(qū)的作用:
在ISP監(jiān)控區(qū)里,STC官方出廠芯片的時候就已經(jīng)燒寫進去一段特殊的代碼,我們用戶是沒法修改和查看的,這里說的燒寫也不是我們給單片機下載程序這樣簡單的燒寫,是通過特殊的方式特殊的接口寫進特殊的程序,總之不要想著去搞懂它,要懂的接下來我們慢慢說。
STC單片機在上電的很短一段時間內(nèi)是不去執(zhí)行我們用戶的程序的,單片機是首選去執(zhí)行ISP監(jiān)控區(qū)域的代碼,此時這里面的代碼只干一件事,就是不斷去檢測P30引腳上的數(shù)據(jù)。
a、如果P30引腳上的數(shù)據(jù)是連續(xù)的合法的下載命令,那ISP監(jiān)控區(qū)域內(nèi)的程序就去擦除程序存儲區(qū)ROM內(nèi)的我們上一次燒寫進去的代碼,再把我們當(dāng)前這次需要下載的程序存儲到程序存儲區(qū)ROM內(nèi),最后在復(fù)位PC指針,使得PC=0000H。完成這些后,CPU就不斷的通過PC指針去讀取我們剛才燒寫進去程序存儲區(qū)ROM內(nèi)的代碼來執(zhí)行,到這里一次完整的程序下載(燒寫)就完成了。
b、如果P30引腳上沒有連續(xù)的合法的下載命令,那ISP監(jiān)控區(qū)域的程序就去復(fù)位PC指針,使得PC=0000H,CPU就不斷的通過PC指針去讀取程序存儲區(qū)ROM內(nèi)的代碼來執(zhí)行。
二、電腦端(STC_ISP軟件端)是如何實現(xiàn)程序下載的?
如上圖所示,當(dāng)我們點擊STC_ISP軟件中的下載/編程按鈕(上圖中紅圈部分)后,電腦就不斷發(fā)送下載命令到CH 340G,芯片內(nèi)部轉(zhuǎn)換電平后得到標(biāo)準(zhǔn)的串口信號,再發(fā)送給單片機的P30口。此時,單片機是不會執(zhí)行下載程序的,需要我們給單片機斷電一下,再上電實現(xiàn)冷啟動,冷啟動后,上面我們說到ISP監(jiān)控區(qū)域就起作用了,上面我們說了,在單片機上電的很短一段時間里,單片機是去執(zhí)行ISP監(jiān)控區(qū)域的程序的。ISP識別出此時單片機P30引腳上的信號是電腦發(fā)送的下載命令,那ISP監(jiān)控程序就在單片機P31引腳上返回一個信號,信號再通過CH340G轉(zhuǎn)換后傳輸?shù)絊TC_ISP軟件,軟件識別出返回的信號是單片機給的,此說說明電腦端STC_ISP軟件和單片機之間通過“密碼”連接成功,也就是下載時候STC_ISP右側(cè)監(jiān)控區(qū)域里顯示的“握手成功”。接下來通信就正?;耍琒TC_ISP不斷的發(fā)送我們要下載的程序到單片機的P30引腳,單片機從P31引腳不斷返回“接收正?!?,不斷的這樣重復(fù)下去,直到程序下載完。
程序下載完后,單片機ISP監(jiān)控區(qū)域代碼還在一直識別,但是STC_ISP 軟件已經(jīng)不再發(fā)送數(shù)據(jù),此時單片機ISP區(qū)域代碼檢測不到下載命令后,直接使PC復(fù)位,使得PC=0000H,CPU就不斷的從程序存儲區(qū)ROM里讀取程序來執(zhí)行,此時我們直觀看到的就是單片機程序下載成功了,而已單片機已經(jīng)在執(zhí)行我們的程序,只要程序沒問題,那自然能看到我們想要的效果啦。
下面,簡單總結(jié)下載程序的全過程:
1、電腦端點擊“下載”按鈕,STC_ISP 軟件發(fā)送下載命令到單片機P30引腳,此時單片機需要冷啟動
2、單片機冷啟動后,P30引腳收到下載命令,再從P31引腳返回自身的基本信息,此時單片機和STC_ISP已經(jīng)捂手成功
3、STC_ISP發(fā)送程序數(shù)據(jù)到單片機P30引腳
4,、單片機接收程序數(shù)據(jù)并保存在程序存儲區(qū)ROM里,并從P31引腳返回“接收成功”信號到STC_ISP
5、STC_ISP接收到單片機返回的“接收成功”后,重復(fù)第3步,知道需要下載的程序數(shù)據(jù)發(fā)送完畢
6、程序數(shù)據(jù)發(fā)送完畢后,單片機P30引腳不再收到下載數(shù)據(jù),過一小段時間后,ISP監(jiān)控區(qū)域復(fù)位PC指針,使得PC=0000H,單片機開始從程序存儲區(qū)ROM里讀取程序來執(zhí)行。
最后我們來總結(jié)一下,STC單片機下載程序的幾個關(guān)鍵點:
1、單片機要和電腦采用串口方式建立連接
2、電腦端串口要能正常通訊
3、單片機要能斷電冷啟動
4、單片機要能返回自身的一些基本信息回到電腦端。
-
存儲器
+關(guān)注
關(guān)注
38文章
7653瀏覽量
167448 -
STC單片機
+關(guān)注
關(guān)注
9文章
223瀏覽量
39061
原文標(biāo)題:STC單片機程序是如何下載進單片機的?看完還不懂你來找我
文章出處:【微信號:chuxue_MCU,微信公眾號:單片機技術(shù)宅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
軟件實現(xiàn)51單片機的免斷電程序下載,真心好用。
單片機的開發(fā)軟件STC ISP V4.83應(yīng)用程序免費下載
STC-ISP單片機下載編程燒錄軟件V6.86O應(yīng)用程序免費下載

STC單片機ISP下載程序STCISP V4.80應(yīng)用程序免費下載

實現(xiàn)STC單片機PWM輸出的程序免費下載

評論