




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
STC89C52串口下载的冷启动法与带电下载法作者:jdzj868 来源:机电之家下载站 录入:jdzj868 更新时间:2009-12-23 16:36:01 点击数:0 【字体: 】STC89C52RC单片机可以直接用串口进行ISP编程,对于使用者来说,这就变得很简单了.这里要说的是,对STC89C52RC进行串口ISP编程的两种方法.第一种 冷启动, 即彻底关断用户目标板的电源,再上电.这一方法为厂家推荐之方法.宏晶公司在STC89C52RC数据手册上给出了下面的编程流程.具体做法如下:1.首先确保有STC89C52RC的目标板至少有最小系统.2.到宏晶公司的网站下载一个软件,下载地址为:/datasheet/stc/stc-isp-v2.9-setup/stc-isp-v2.9-setup-beta5.exe先在MCUType下拉列表中选择正确的单片机型号,这里就选STC89C52RC啦,然后点击“OpenFile”打开待下载的文件,接着选择正确的COM口以及本机可用的最高波特率,COM口根据你接的串口来确定,最高波特率通常不必改动,接下来就是选择是否启用单片机的倍速特性,根据自己的需要来定,选择芯片内置振荡器的增益大小,可以根据提示,按提示要求去做,可得到较低的EMI特性。一切选项最好之后,可以开始下载. 关断电源,然后点击“Download/下载”按钮,点完后,再接通电源,这里要注意,关断电源到接通电源时间应稍微长一些,保证板子充分放电.只要注意操作顺序应该没有什么问题,如果点击“Download/下载”未及时插上电源,会出现如下图所示画面,不必担心,直接将电源插上即可。第二种 不切断电源的方法与冷启动相比,前面的操作都一样,只是从冷启动需要关断电源的操作步骤开始不一样.当冷启动需要关断电源时,在本方法下,不需要关断电源.此时,请按照下面步骤进行:需要用到串口,因此要占用单片机串行口和定时器T1或者T2作为波特率发生器,因此,定时器T1或者T2你就不能用了(在调试阶段)。下面,我们要在程序里加上一段串口初始化的程序:serial_init()SCON=0x50;/*mode1:8-bitUART,enablereceiver*/C_T2=0; /*Timer2runinginTimermode*/RCLK=1;TCLK=1;RCAP2H=0xff;RCAP2L=0xee;TR2=1; /*enableTimer2run */ES=1;REN=1;EA=1;SM2=1;/*SM2=1时收到的第9位为1才置位RI标志*/这段程序加在主程序初始化那里,特别要提示的是,在初始化之前要有一段延时,时间约为0.1s即可,也就是主程序应该是这样的:voidmain() .变量的定义,其他初始化语句mDelay(100); /延时100msserial_init();其他语句为什么一定要在初始化串口之前加一段延时呢?这在后面交待。然后要加一段串口收数的程序,直接复制下面这一段就可以,了解清楚原理后自己写也行:ucharbitset(ucharnum,ucharcbit)/*设置某一位*/ucharbit_value=1,2,4,8,16,32,64,128;returnnum|bit_valuecbit;/voidSer()interrupt4 staticucharCount=0;GetCharBufCount=SBUF;if(GetCharBufCount=(Count+0x10)/要求stc下载软件发送的数是1011121314151617 sMark=bitset(sMark,Count); /如果收到的数符合要求,则将sMark这个相应位置1Count+;if(Count=8) Count=0;mGet=1; /置位标志 RI=0;看懂了没有呢?这里定义了8个字节的命令字,如果从主机传来连续的8个数正好与所定义的8个数相符合,那么就说明主机有要求重新下载的指令了。定义哪8个数,如何判定,这都可以发挥你自己的聪明才智来写,这里就简单地要求主机发送0x100x110x120x130x140x150x16和0x17这8个数,看程序中的这一行:if(GetCharBufCount=(Count+0x10)由于每次收到数Count会加1,从开始的0计到7为止,因此,接收到的数如果是Count加上0x10,就认为是相符的。相符之后就要做个记号,这里用了一个字节sMark,开机时,该字节为0,相符一次,则将相应位置1,如果收到的8个数均相符,那么sMark=0xff,如果收到的数中有一个不符,那么sMark不等于0xff。利用sMark即可判断是否接收到了正确的8个数。一旦收到8个数之后,即置位标志位mGet,然后在main函数里面做个判断,如果mGet=1且sMark=0xff,说明要求重新下载,下面即延时1s,然后将数0x60写入特殊功能寄存器:ISP_CONTR即可,main函数中的这一部份程序如下:if(mGet) if(sMark=0xff) /收到数符合要求 sMark=0; /复位mDelay(2000);ISP_CONTR=0x60;/复位到isp下载区else sMark=0;你可以把这一段放在main函数的for(;)循环当中。ISP_CONTR是STC89C52RC的一个特殊功能寄存器,其地址为0xE7,可以在程序的开头用sfr关键字来定义:sfrISP_CONTR=0xe7;接下来看一看PC机程序端应该怎么做。点击界面右侧的“自定义下载”,先选定特率,按上面的程序,如果选用stc89C52rc的倍速特性的话,波特率就是38400,否则就是19200,其他按图4设置即可。接着到自定义下载文本框中输入自定义下载指令为1011121314151617输入好了以后,点击发送,即可在不断电的情况下进行程序的下载了。那么为什么一开始初始化的时候一定要延时呢?这是我们在实际使用中发现,在下载完成后,软件似乎会多发送一些数据,由于我们的程序中没有设置超时等处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南衡阳市水务投资集团有限公司招聘30人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025河北沧州孟村饶安高级中学招聘1人考前自测高频考点模拟试题及参考答案详解一套
- 2025广东依顿电子科技股份有限公司招聘高级经理岗模拟试卷附答案详解(考试直接用)
- 2025辽渔集团有限公司人员考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025年福建省漳州市医院招聘若干人模拟试卷含答案详解
- 2025安徽皖信人力资源管理有限公司招聘某政务热线话务员招聘10人模拟试卷及一套答案详解
- 2025甘肃定西市岷县人力资源和社会保障局招聘城镇公益性岗位人员11人模拟试卷及1套参考答案详解
- 2025江苏盐城工学院招聘专职辅导员13人模拟试卷及一套参考答案详解
- 2025年河北北方学院附属第二医院选聘工作人员6名模拟试卷附答案详解(考试直接用)
- 2025河南信阳市潢川县退役军人事务局招聘3名全日制公益性岗位模拟试卷及答案详解一套
- 2025年河南省文化旅游投资集团有限公司权属企业社会招聘52人笔试参考题库附答案解析
- 吉林省松原市四校2025~2026学年度下学期九年级第一次月考试卷 物理(含答案)
- 2025云南昆明元朔建设发展有限公司第一批收费员招聘20人考试参考试题及答案解析
- 2025年北京市海淀区中考二模语文试题
- 上海工资发放管理办法
- 社会科学研究方法 课件 第九章 实地研究
- 2025秋统编版(2024)小学道德与法治三年级上册(全册)课时练习及答案(附目录)
- 医院空气消毒技术规范
- 药物外渗的PDCA循环管理
- 2024年乡村振兴应知应会考试题及答案
- 破局向新 持续向上-2025年人力资源发展趋势报告-智联招聘北大国发院
评论
0/150
提交评论