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

2019-04-15 18:37发布

把.hex机器码下载到单片机的操作流程 烧录程序也叫下载程序。下载程序的本质是什么?把单片机当做一个存储器,每一条程序指令都对应一个唯一的存储地址,把这些指令一条条存储到指定的存储地址中,这就是下载程序的本质。对于STC89C52RC单片机,在下载程序时需要**机界面软件和一根USB转串口线。**机界面软件负责把指定.hex格式的机器码文件打开,.hex格式的机器码文件里面记录着每条程序指令对应的地址信息,在下载过程中,**机界面软件根据.hex记录的指令内容和对应的地址信息,经过USB转串口线,跟单片机的内置引导程序进行串口通讯,从而把.hex记录的信息传输到单片机内部的flash存储器中,实现了程序的下载。 在讲操作流程之前,请读者先把以下一个LED灯闪烁的代码编译成.hex格式的文件,这个.hex文件保存在D盘的”stc89c52rc”文件夹里。
  1. #include "REG52.H"

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

  3. sbit led_dr=P3^5;  

  4. void main()  
  5. {
  6.    while(1)
  7.    {
  8.        led_dr=1;  //LED亮
  9.        delay_long(100);    //延时50000个空指令的时间 
  10.        led_dr=0;  //LED亮
  11.        delay_long(100);    //延时50000个空指令的时间 
  12.    }
  13. }

  14. void delay_long(unsigned int uiDelayLong) //延时函数
  15. {
  16.    unsigned int i;
  17.    unsigned int j;
  18.    for(i=0;i
  19.    {
  20.       for(j=0;j<500;j++);  //内嵌循环的空指令数量
  21.    }
  22. }

复制代码

下面详细讲解把.hex机器码下载到单片机的操作流程。
第一步:安装USB转串口驱动程序的操作流程。所谓**机界面软件就是安装在电脑端的界面软件,电脑跟单片机进行通讯,需要一根USB转串口线,欲使USB转串口线正常工作,必须预先安装一个USB转串口的驱动程序。具体的操作是这样的:在 {MOD}中下载”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波特率。    第七步:连接硬件USB转串口线和电源线。USB转串口线一端已经连接电脑USB口,另外一端9针串口端跟坚鸿51学**板的串口端连接。电源线一端用智能手机充电器的USB端口供电5V,电源线另一端连接坚鸿51学**板的USB供电端口。
   第八步:导入.hex格式的机器码文件。点击**机界面软件的“打开程序文件”的按钮,在弹出的对话框中,选择D盘下“stc89c52rc”文件夹目录下的“stc89c52rc.hex”,双击把“stc89c52rc.hex”导入到**机界面软件。    第九步:启动下载。点击**机界面软件的“下载/编程”的按钮,发现“正在检测目标单片机..”的提示信息,此时需要把51学**板重新断电后再上电,很多人也把这个重新上电的过程称为“冷启动”。    第十步:“冷启动”后观察是否操作成功的信息。执行完前面第九步的“冷启动”后,如果发现有“...操作成功!”的提示信息,就说明下载成功了。
   第十一步:坚鸿51学**板下载程序失败时的解决办法。 (1)可以先松一下卡座,稍微挪动一下单片机,然后再卡紧单片机。卡座必须卡紧单片机,              避免接触不良。 (2)改变供电电源,很多电脑的USB口供电电源干扰非常大,严重影响下载程序,请把USB电源线**到手机充电器5VUSB接口,效果显著,明显提高了下载的成功率。3)检查确保选择单片机型号是STC89C/LE52RC,如果软件弹出推荐其它型号的单片机窗口,不用管它,我们就选STC89C/LE52RC4)检查STC-ISP烧写软件是否选择匹配的COM口。5)单片机是靠串口烧录程序进去的,单片机的串口是P3.0,P3.1两根线,在烧录程序时,确保P3.0,P3.1这两根线的黄颜 {MOD}跳帽必须插上,同时P3.0,P3.1两个IO口不能跳线到外围器件上。6)点击“下载/编程”后,记得再断电并且重新上电一次。看看是否烧录成功。7)最低波特率一直设置为2400,然后把最高波特率先改成9600试一下,如果还不行再把最高波特率改成2400试试。8)如果还不行,就退出软件,拔掉USB转串口线,同时断电(必须把**电源线拔掉!),重新**USB串口线,重新**电源线开电,重新打开软件。9)如果还不行,学**板先断电(必须把**电源线拔掉!),然后重启一次电脑。10)总之:如果还不行,就按上述步骤多折腾几次。最后实在不行,就尝试更换到其它USB口,或者尝试更换到其它电脑上试试。