新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 第8節(jié):把.hex機器碼下載到單片機的操作流程

第8節(jié):把.hex機器碼下載到單片機的操作流程

作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
從業(yè)近十年,教你單片機入門 第8講:

燒錄程序也叫下載程序。下載程序的本質(zhì)是什么?把單片機當做一個存儲器,每一條程序指令都對應(yīng)一個唯一的存儲地址,把這些指令一條條存儲到指定的存儲地址中,這就是下載程序的本質(zhì)。對于STC89C52RC單片機,在下載程序時需要上位機界面軟件和一根USB轉(zhuǎn)串口線。上位機界面軟件負責(zé)把指定.hex格式的機器碼文件打開,.hex格式的機器碼文件里面記錄著每條程序指令對應(yīng)的地址信息,在下載過程中,上位機界面軟件根據(jù).hex記錄的指令內(nèi)容和對應(yīng)的地址信息,經(jīng)過USB轉(zhuǎn)串口線,跟單片機的內(nèi)置引導(dǎo)程序進行串口通訊,從而把.hex記錄的信息傳輸?shù)絾纹瑱C內(nèi)部的flash存儲器中,實現(xiàn)了程序的下載。

本文引用地址:http://butianyuan.cn/article/201611/319818.htm

在講操作流程之前,請讀者先把以下一個LED燈閃爍的代碼編譯成.hex格式的文件,這個.hex文件保存在D盤的”stc89c52rc”文件夾里。

#include "REG52.H"

void delay_long(unsigned int uiDelayLong); //延時函數(shù)

sbit led_dr=P3^5;

void main()

{

while(1)

{

led_dr=1; //LED亮

delay_long(100); //延時50000個空指令的時間

led_dr=0; //LED亮

delay_long(100); //延時50000個空指令的時間

}

}

void delay_long(unsigned int uiDelayLong) //延時函數(shù)

{

unsigned int i;

unsigned int j;

for(i=0;i

{

for(j=0;j<500;j++); //內(nèi)嵌循環(huán)的空指令數(shù)量

}

}

下面詳細講解把.hex機器碼下載到單片機的操作流程。

第一步:安裝USB轉(zhuǎn)串口驅(qū)動程序的操作流程。所謂上位機界面軟件就是安裝在電腦端的界面軟件,電腦跟單片機進行通訊,需要一根USB轉(zhuǎn)串口線,欲使USB轉(zhuǎn)串口線正常工作,必須預(yù)先安裝一個USB轉(zhuǎn)串口的驅(qū)動程序。具體的操作是這樣的:在網(wǎng)盤中下載”51CTO下載-CH340SER(win7 64位可用).zip”這個壓縮包文件,解壓后分成“CH341SER”和“INSTALL”這兩個文件夾,雙擊打開“CH341SER”這個文件夾,找到“SETUP.EXE”這個安裝應(yīng)用程序,雙擊啟動,在彈出的界面中,單擊“安裝”按鈕即可完成驅(qū)動程序的安裝。

第二步:記錄串口號。我用的電腦是XP系統(tǒng),現(xiàn)在以XP系統(tǒng)為例。插入USB轉(zhuǎn)串口線,右擊桌面“我的電腦”,選擇下拉菜單的“設(shè)備管理器”,在彈出的窗口中,點擊“端口”前面的+號,在展開的選項中,會看到“USB-SERTAL CH340(COM6)”這個信息,這個COM6就是要我們記住的串口號。你們的串口號不一定是COM6,請以你們電腦顯示的串口號為準。

第三步:打開上位機界面軟件“STC_ISP”。這個軟件可以在宏晶單片機的官網(wǎng)下載獲取此軟件。雙擊打開“STC_ISP.exe”這個上位機界面軟件。

第四步:選擇單片機型號。在“單片機型號”的下拉菜單中選擇“STC89C/LE52RC”這個型號。如果中途彈出推薦選用其它型號的窗口,可以按確定忽略它,我們只要認準“STC89C/LE52RC”這個型號就可以了。

第五步:設(shè)置串口號。在“串口號”的下拉菜單中,選擇跟前面第二步所記錄一樣的串口號。

第六步:設(shè)置最高波特率。在“最高波特率”的下拉菜單中,選擇9600波特率。 第六步:設(shè)置最高波特率。在“最高波特率”的下拉菜單中,選擇9600波特率。

第七步:連接硬件USB轉(zhuǎn)串口線和電源線。USB轉(zhuǎn)串口線一端已經(jīng)連接電腦USB口,另外一端9針串口端跟堅鴻51學(xué)習(xí)板的串口端連接。電源線一端用智能手機充電器的USB端口供電5V,電源線另一端連接堅鴻51學(xué)習(xí)板的USB供電端口。

第八步:導(dǎo)入.hex格式的機器碼文件。點擊上位機界面軟件的“打開程序文件”的按鈕,在彈出的對話框中,選擇D盤下“stc89c52rc”文件夾目錄下的“stc89c52rc.hex”,雙擊把“stc89c52rc.hex”導(dǎo)入到上位機界面軟件。

第九步:啟動下載。點擊上位機界面軟件的“下載/編程”的按鈕,發(fā)現(xiàn)“正在檢測目標單片機..”的提示信息,此時需要把51學(xué)習(xí)板重新斷電后再上電,很多人也把這個重新上電的過程稱為“冷啟動”。

第十步:“冷啟動”后觀察是否操作成功的信息。執(zhí)行完前面第九步的“冷啟動”后,如果發(fā)現(xiàn)有“...操作成功!”的提示信息,就說明下載成功了。

第十一步:堅鴻51學(xué)習(xí)板下載程序失敗時的解決辦法。

(1)可以先松一下卡座,稍微挪動一下單片機,然后再卡緊單片機??ㄗ仨毧ňo單片機, 避免接觸不良。

(2)改變供電電源,很多電腦的USB口供電電源干擾非常大,嚴重影響下載程序,請把USB電源線插入到手機充電器5V的USB接口,效果顯著,明顯提高了下載的成功率。

(3)檢查確保選擇單片機型號是STC89C/LE52RC,如果軟件彈出推薦其它型號的單片機窗口,不用管它,我們就選STC89C/LE52RC。

(4)檢查STC-ISP燒寫軟件是否選擇匹配的COM口。

(5)單片機是靠串口燒錄程序進去的,單片機的串口是P3.0,P3.1兩根線,在燒錄程序時,確保P3.0,P3.1這兩根線的黃顏色跳帽必須插上,同時P3.0,P3.1兩個IO口不能跳線到外圍器件上。

(6)點擊“下載/編程”后,記得再斷電并且重新上電一次??纯词欠駸洺晒?。

(7)最低波特率一直設(shè)置為2400,然后把最高波特率先改成9600試一下,如果還不行再把最高波特率改成2400試試。

(8)如果還不行,就退出軟件,拔掉USB轉(zhuǎn)串口線,同時斷電(必須把整根電源線拔掉!),重新插入USB串口線,重新插入電源線開電,重新打開軟件。

(9)如果還不行,學(xué)習(xí)板先斷電(必須把整根電源線拔掉!),然后重啟一次電腦。

(10)總之:如果還不行,就按上述步驟多折騰幾次。最后實在不行,就嘗試更換到其它USB口,或者嘗試更換到其它電腦上試試。

詳細步驟圖:bbs.21ic.com/forum.php

下節(jié)預(yù)告:主程序的兩個區(qū)域:初始化和循環(huán)。



關(guān)鍵詞: hex機器碼單片機操作流

評論


技術(shù)專區(qū)

關(guān)閉