stc89c52串口下载的冷启动法与带电下载法

stc89c52串口下载的冷启动法与带电下载法

ID:6071774

大小:62.50 KB

页数:5页

时间:2018-01-02

stc89c52串口下载的冷启动法与带电下载法_第1页
stc89c52串口下载的冷启动法与带电下载法_第2页
stc89c52串口下载的冷启动法与带电下载法_第3页
stc89c52串口下载的冷启动法与带电下载法_第4页
stc89c52串口下载的冷启动法与带电下载法_第5页
资源描述:

《stc89c52串口下载的冷启动法与带电下载法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、STC89C52串口下载的冷启动法与带电下载法作者:jdzj868 来源:机电之家下载站 录入:jdzj868 更新时间:2009-12-2316:36:01 点击数:0【字体:】STC89C52RC单片机可以直接用串口进行ISP编程,对于使用者来说,这就变得很简单了.这里要说的是,对STC89C52RC进行串口ISP编程的两种方法.第一种  冷启动,即彻底关断用户目标板的电源,再上电.这一方法为厂家推荐之方法.宏晶公司在STC89C52RC数据手册上给出了下面的编程流程. 具体做法如下:1.首先确保有STC89C52RC的目标板至

2、少有最小系统.2.到宏晶公司的网站下载一个软件,下载地址为:http://www.mcu-memory.com/datasheet/stc/stc-isp-v2.9-setup/stc-isp-v2.9-setup-beta5.exe  先在MCU Type下拉列表中选择正确的单片机型号,这里就选STC89C52RC啦,然后点击“Open File”打开待下载的文件,接着选择正确的COM口以及本机可用的最高波特率,COM口根据你接的串口来确定,最高波特率通常不必改动,接下来就是选择是否启用单片机的倍速特性,根据自己的需要来定,选择芯

3、片内置振荡器的增益大小,可以根据提示,按提示要求去做,可得到较低的EMI特性。一切选项最好之后,可以开始下载.    关断电源,然后点击“Download/下载”按钮,点完后,再接通电源,这里要注意,关断电源到接通电源时间应稍微长一些,保证板子充分放电.只要注意操作顺序应该没有什么问题,如果点击“Download/下载”未及时插上电源,会出现如下图所示画面,不必担心,直接将电源插上即可。第二种 不切断电源的方法与冷启动相比,前面的操作都一样,只是从冷启动需要关断电源的操作步骤开始不一样.当冷启动需要关断电源时,在本方法下,不需要关断

4、电源.此时,请按照下面步骤进行:需要用到串口,因此要占用单片机串行口和定时器T1或者T2作为波特率发生器,因此,定时器T1或者T2你就不能用了(在调试阶段)。下面,我们要在程序里加上一段串口初始化的程序:serial_init ()  {  SCON  = 0x50;       /* mode 1: 8-bit UART, enable receiver   */  C_T2=0;/*Timer2 runing in Timer mode*/    RCLK=1;    TCLK=1;   RCAP2H=0xff;   RCAP2

5、L=0xee;  TR2=1;/*enable Timer2 run */   ES   = 1; REN=1; EA=1; SM2=1;     /*SM2=1时收到的第9位为1才置位RI标志*/}  这段程序加在主程序初始化那里,特别要提示的是,在初始化之前要有一段延时,时间约为0.1s即可,也就是主程序应该是这样的:  void main()  {…..      变量的定义,其他初始化语句  mDelay(100);//延时100ms  serial_init();  ……  其他语句  为什么一定要在初始化串口之前加一段延

6、时呢?这在后面交待。  然后要加一段串口收数的程序,直接复制下面这一段就可以,了解清楚原理后自己写也行:  uchar bitset(uchar num,uchar cbit) /*设置某一位*/ {  uchar bit_value[]={1,2,4,8,16,32,64,128}; return num

7、bit_value[cbit]; } ////////////////////////////////////////////////////////void Ser() interrupt 4{static uchar Cou

8、nt=0;GetCharBuf[Count]=SBUF;if(GetCharBuf[Count]==(Count+0x10)) //要求stc下载软件发送的数是10 11 12 13 14 15 16 17{sMark="bitset"(sMark,Count);//如果收到的数符合要求,则将sMark这个相应位置1}Count++;if(Count>=8){Count="0";mGet=1;//置位标志}RI=0;}  看懂了没有呢?这里定义了8个字节的命令字,如果从主机传来连续的8个数正好与所定义的8个数相符合,那么就说明主机有

9、要求重新下载的指令了。定义哪8个数,如何判定,这都可以发挥你自己的聪明才智来写,这里就简单地要求主机发送0x10 0x11 0x12 0x13 0x14 0x15 0x16和0x17这8个数,看程序中的这一行:if(GetCharBu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。