×
嵌入式 > 技术百科 > 详情

第8节:把.hex机器码下载到单片机的操作流程

发布时间:2020-06-20 发布时间:
|
从业近十年,教你单片机入门   第8讲:

烧录程序也叫下载程序。下载程序的本质是什么?把单片机当做一个存储器,每一条程序指令都对应一个唯一的存储地址,把这些指令一条条存储到指定的存储地址中,这就是下载程序的本质。对于STC89C52RC单片机,在下载程序时需要上位机界面软件和一根USB转串口线。上位机界面软件负责把指定.hex格式的机器码文件打开,.hex格式的机器码文件里面记录着每条程序指令对应的地址信息,在下载过程中,上位机界面软件根据.hex记录的指令内容和对应的地址信息,经过USB转串口线,跟单片机的内置引导程序进行串口通讯,从而把.hex记录的信息传输到单片机内部的flash存储器中,实现了程序的下载。

在讲操作流程之前,请读者先把以下一个LED灯闪烁的代码编译成.hex格式的文件,这个.hex文件保存在D盘的”stc89c52rc”文件夹里。

#include "REG52.H"

void delay_long(unsigned int uiDelayLong); //延时函数

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) //延时函数

{

unsigned int i;

unsigned int j;

for(i=0;i

{

for(j=0;j<500;j++); //内嵌循环的空指令数量

}

}

下面详细讲解把.hex机器码下载到单片机的操作流程。

第一步:安装USB转串口驱动程序的操作流程。所谓上位机界面软件就是安装在电脑端的界面软件,电脑跟单片机进行通讯,需要一根USB转串口线,欲使USB转串口线正常工作,必须预先安装一个USB转串口的驱动程序。具体的操作是这样的:在网盘中下载”51CTO下载-CH340SER(win7 64位可用).zip”这个压缩包文件,解压后分成“CH341SER”和“INSTALL”这两个文件夹,双击打开“CH341SER”这个文件夹,找到“SETUP.EXE”这个安装应用程序,双击启动,在弹出的界面中,单击“安装”按钮即可完成驱动程序的安装。

第二步:记录串口号。我用的电脑是XP系统,现在以XP系统为例。插入USB转串口线,右击桌面“我的电脑”,选择下拉菜单的“设备管理器”,在弹出的窗口中,点击“端口”前面的+号,在展开的选项中,会看到“USB-SERTAL CH340(COM6)”这个信息,这个COM6就是要我们记住的串口号。你们的串口号不一定是COM6,请以你们电脑显示的串口号为准。

第三步:打开上位机界面软件“STC_ISP”。这个软件可以在宏晶单片机的官网下载获取此软件。双击打开“STC_ISP.exe”这个上位机界面软件。

第四步:选择单片机型号。在“单片机型号”的下拉菜单中选择“STC89C/LE52RC”这个型号。如果中途弹出推荐选用其它型号的窗口,可以按确定忽略它,我们只要认准“STC89C/LE52RC”这个型号就可以了。

第五步:设置串口号。在“串口号”的下拉菜单中,选择跟前面第二步所记录一样的串口号。

第六步:设置最高波特率。在“最高波特率”的下拉菜单中,选择9600波特率。 第六步:设置最高波特率。在“最高波特率”的下拉菜单中,选择9600波特率。

第七步:连接硬件USB转串口线和电源线。USB转串口线一端已经连接电脑USB口,另外一端9针串口端跟坚鸿51学习板的串口端连接。电源线一端用智能手机充电器的USB端口供电5V,电源线另一端连接坚鸿51学习板的USB供电端口。

第八步:导入.hex格式的机器码文件。点击上位机界面软件的“打开程序文件”的按钮,在弹出的对话框中,选择D盘下“stc89c52rc”文件夹目录下的“stc89c52rc.hex”,双击把“stc89c52rc.hex”导入到上位机界面软件。

第九步:启动下载。点击上位机界面软件的“下载/编程”的按钮,发现“正在检测目标单片机..”的提示信息,此时需要把51学习板重新断电后再上电,很多人也把这个重新上电的过程称为“冷启动”。

第十步:“冷启动”后观察是否操作成功的信息。执行完前面第九步的“冷启动”后,如果发现有“...操作成功!”的提示信息,就说明下载成功了。

第十一步:坚鸿51学习板下载程序失败时的解决办法。

(1)可以先松一下卡座,稍微挪动一下单片机,然后再卡紧单片机。卡座必须卡紧单片机, 避免接触不良。

(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)最低波特率一直设置为2400,然后把最高波特率先改成9600试一下,如果还不行再把最高波特率改成2400试试。

(8)如果还不行,就退出软件,拔掉USB转串口线,同时断电(必须把整根电源线拔掉!),重新插入USB串口线,重新插入电源线开电,重新打开软件。

(9)如果还不行,学习板先断电(必须把整根电源线拔掉!),然后重启一次电脑。

(10)总之:如果还不行,就按上述步骤多折腾几次。最后实在不行,就尝试更换到其它USB口,或者尝试更换到其它电脑上试试。

详细步骤图:bbs.21ic.com/forum.php

下节预告:主程序的两个区域:初始化和循环。 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
起重变频调速系统中制动电阻功率的计算