新闻中心

EEPW首页>嵌入式系统>设计应用> STC系列单片机不断电下载程序应用技术

STC系列单片机不断电下载程序应用技术

作者: 时间:2013-04-25 来源:网络 收藏

3.2 定时器的设置
波特率为9 600 bit·s-1,在串口工作方式2的情况下,根据方式2的波特率=(2SMOD/32)*(T1溢出率)。假设的晶振频率为11.0 59 2 MHz,经12分频后得到计数器记—个数的时间为12/11.059 2 MHz,定时器T1溢出一次的时间为(256-X)×12/11 059 200,所以T1的溢出率为11 059 200/[12×(256-X)],因为波特率不需要加倍,所以SMOD=0。根据公式得,9 600=(1/32)×11 059 200/[(256-X)×12],解得X=253,转换成16进制数为0Xfd。减少了的冗余性,定时器的工作方式设定为2,定时器自动重装,不必写定时器中断子
3.3 初始化子
e.JPG
3.4 用户自定义命令
定义语句为:#define seffdecide_download_commond0x8E。0x8E是用户任意定义的指令,但最多不能超过0xFF,因为ISP_CONTR寄存器只有8位。接着进行ISP_CONTR的地址定义,通过查89C52的用户手册,其语句为sfr ISP_CONTR=0xE7。
3.5 串口接收合法数据程序
的工作原理是循环扫描,即使不加大循环while语句,用户程序也总是一遍一遍地执行,所以用户程序需要时时刻刻扫描是否是合法数据流的出现。
串口中断的编号为4,首先要检验中断标志位RI,如果RI置1,说明上位机向的串口发送指令;随后指令内容被传送到单片机的SBUF中,判断SBUF中的命令内容是否和用户自定义的命令一致。如果一致,直接向ISP_CONTR中赋特定的值使程序指针指到ISP引导区,实现程序的软复位;如果不一致,使TI清零,以便下一次中断申请。
3.6 延时子函数
串口接收数据有1 s的延时时间,所以需要加延时子函数,代码如下:
Void delayl s()
{
Int p,q;
For(p=1000;p>0;p--)
For(q=100;q>0;q--);
}

4 结束语
介绍了单片机程序的程序设计思路及方法,运用单片机独有的ISP引导区对软件模拟硬件复位实现单片机的电下载程序,省去了编程器的频繁插拔件或者频繁的手动复位硬件开关。此方法在大的程序编写调试过程中能节省大量时间,但也降低了串行口的使用效率。本例适合运用在使用串行口较低的情况下,并且在调试的情况下可以省去手动频繁的复位操作,减少工作量。

本文引用地址://m.amcfsurvey.com/article/170523.htm
手机充电器相关文章:手机充电器原理
激光器相关文章:激光器原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭