本帖最后由 jianhong_wu 于 2015-6-3 17:22 编辑
第八节:把.hex机器码下载到单片机的操作流程。 烧录程序也叫下载程序。下载程序的本质是什么?把单片机当做一个存储器,每一条程序指令都对应一个唯一的存储地址,把这些指令一条条存储到指定的存储地址中,这就是下载程序的本质。对于STC89C52RC单片机,在下载程序时需要上位机界面软件和一根USB转串口线。上位机界面软件负责把指定.hex格式的机器码文件打开,.hex格式的机器码文件里面记录着每条程序指令对应的地址信息,在下载过程中,上位机界面软件根据.hex记录的指令内容和对应的地址信息,经过USB转串口线,跟单片机的内置引导程序进行串口通讯,从而把.hex记录的信息传输到单片机内部的flash存储器中,实现了程序的下载。 在讲操作流程之前,请读者先把以下一个LED灯闪烁的代码编译成.hex格式的文件,这个.hex文件保存在D盘的”stc89c52rc”文件夹里。
- #include "REG52.H"
- void delay_long(unsigned int uiDelayLong); //延时函数
- ***it 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波特率。 第七步:连接硬件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口,或者尝试更换到其它电脑上试试。
下节预告:主程序的两个区域:初始化和循环。 (未完待续)
|