admin 管理员组

文章数量: 1088114


2024年4月30日发(作者:微信网站制作)

STC89系列单片机不断电在线下载的实现

介绍了使用STC89系列单片机的应用中实现不断电在线下载的原理和方法,

给出了利用C语言实现的程序,通过实践证明该方法切实可行。

标签:

单片机;STC89系列;在线下载

1 引言

传统51单片机由于保密性不好,目前已经濒临被取代的境地,而宏晶科技

推出的新一代STC89系列单片机具有抗干扰性强、速度高、功耗低,且其指令

代码与传统8051单片机完全兼容等优势,目前被越来越多的工程师所青睐。

在单片机上面编写和调试程序,虽然有相应的编程器,但是最繁琐的事情就

是要频繁插拔器件,STC89系列单片机支持在线编程,也就是不需要插拔器件,

直接用串口通信线就可以实现不断电在线下载的工作,省去购买通用编程器,也

无须将单片机从用户产品上拆下来就可实现将代码烧录进单片机内部,这给工程

师带来了极大的便利。

2 STC89系列单片机ISP在线下载原理分析

大部分STC89系列单片机在销售给用户之前已经在单片机内部固化有ISP

系统引导程序,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,

不需要编程器即可实现程序的下载。STC-ISP的下载过程分为冷启动和热启动两

个过程。

冷启动是单片机彻底没电后经过3秒钟左右的时间上电后会自动运行ISP区

的程序。在STC单片机内部固化的ISP引导码被设置为上电复位,上电复位后,

它会自动检查有无合法的下载命令流,如果没有合法下载命令流,则自动软复位

到用户程序区运行用户程序,如果检测到有合法的下载命令流,则根据命令流将

用户程序下载到用户程序区去,然后再软复位到用户程序区运行用户程序。其流

程图如图1所示。

热启动的过程为:先发用户自定义命令,进行STC-ISP下载(在这个过程

中单片机可以上电),然后与冷启动过程类似,进行下载程序后进入用户程序区

执行,或者发出自定义下载命令后由单片机接收延时大约1秒后软复位到ISP区

执行相应程序后再下载用户程序到用户程序区,然后转入相应区域运行用户程

序。其流程图如图2所示。

利用STC单片机提供的在线下载工具进行程序的下载,该下载工具在STC

的官方网站上面即可找到。

在界面中选择所使用的单片机类型,然后设置相应的端口和波特率,自定义

下载的部分会由软件自动填写,不必更改。利用这个下载工具,只要在程序中编

写相应的软件代码,然后通过“打开程序文件”选择相应的*.HEX文件即可实现不

需编程器的下载,但是在下载过程中要想实现不断电的过程,还需在编写相应程

序的时候加以注意。

3 不断电在线下载的实现

根据以上的分析,在线下载的程序主要由两部分组成,即串行口初始化部分

和自定义监测部分,下面的程序以C语言书写。

3.1 在程序中所用到的定义部分

typedef unsigned int uint;

extern unsigned char di;

unsigned char code download[DOWNLOADs]={0x12,0x34,0x56,0x78,

0x90,0xAB,0xCD,0xEF,0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,

0xEF};

3.2 串行口初始化程序

主要是针对串口、中断和定时器的设置。

数组download即为自定义下载命令,在图3中的右下角可以看到。

4 总结

在使用上述方法的过程中,可以根据实际应用更改其中的参数。经过实践检

验,该方法实用可行,实现时只需将单片机与计算机的串行口相连,使用STC

提供的程序STC_ISP_进行下载,在界面上设定芯片类型后,设定波特

率后,将程序文件加载后直接点击发送即可,只需刚开始切断一次单片机的电源,

之后的调试过程可以不用切断电源,更不需要将单片机卸下即可实现在线下载和

调试。

参考文献

[1]STC89C51RC/RD+系列单片机器件手册

[EOV/RL].,83.

[2]求是科技.8051系列单片机C程序设计完全手册[M].北京:人民

邮电出版社,2006,(4).

[3]丁向荣.STC系列增强型8051单片机原理与应用[M].北京:电子

工业出版社,2011,(1).


本文标签: 单片机 下载 程序