STC系列单片机不断电程序应用技术.doc

STC系列单片机不断电程序应用技术.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STC系列单片机不断电程序应用技术.doc

STC系列单片机不断电下载程序应用技术 时间:2013-04-25 09:56:35 来源:电子技术 作者:付文悦,黄 民 摘要 针对单片机下载程序时需要重复机械式复位产生的一系列调试繁琐的问题,提出了一种用软件引导代替单片机硬件复位写入ROM的方法。该方法通过检测串口数据流是否合法,来判断是否执行ISP引导程序,从而利用软件方式复位,可以让STC单片机复位后从ISP引导程序处执行,利用该特性可以模拟单片机上电复位状态,实现单片机的不断电下载。 关键词 STC单片机;ISP引导程序;不断电下载;软件设计 随着单片机技术的发展,单片机片内存储器的容量越来越大,可以容纳越来越大的程序。由于程序越来越复杂,在程序调试过程中需要不断进行硬件复位来下载程序,虽然在线下载程序的方法已经普遍应用,但在现实调试实现中还是比较繁琐,因此人们在寻求一种用软件代替硬件的复位方法来调试下载程序,近而在工程实际中更加快捷方便地进行程序实现。因此,文中提出了一种软件复位单片机的方法,即利用STC单片机独有的ISP引导区,用特殊的指令使调试好的程序从ISP引导区执行,避免频繁地硬件复位,而且简单实用。 1 软件复位单片机的工作原理 1.1 STC单片机复位方法简介 STC单片机的复位方法分为热启动和冷启动两种:冷启动是系统断电后再上电的硬件复位;热启动分为3种:一种是reset引脚复位,一种是内部看门狗复位,一种是ISP引导区复位。热启动中的reset复位是reset引脚接受到复位信号直接从用户区执行,内部看门狗是在外界电磁干扰致使程序跑飞时发出一个复位信号,使程序地址指针移动到00H,产生和reset复位相同的效果,ISP引导区复位是一种只有在系统上电时才执行的程序存储区,当程序执行到ISP引导区时,如果系统没有检测到合法的数据流,则直接执行用户程序区;如果系统检测到合法的数据流,则先下载程序,再执行用户程序区。单片机启动的过程为:先给断电的单片机通电,进行STCISP下载,然后执行用户程序,或者没有检测到合法的数据流,然后直接执行用户程序区。其流程图如图1所示。 1.2 软件实现不断电下载的工作原理 STC单片机ISP_CONTR是单片机进行软复位的控制寄存器,其地址为E7H,进行ISP_CONTR定义后,再自定义串口接受的数据流。然后进行串口初始化和定时器初始化,串口初始化的波特率和具体工作方式要与下载软件一致,定时器设置初值任意,在软件中保证1 s即可。串口中断子程序设计,具体过程为:当串口接受数据后,把SBUF中的数据和用户自定义数据进行比较。如果一致,赋值给ISP_CONTR使单片机复位;如果没有接受到合法数据流,则继续执行用户程序。具体流程如图2所示。 2 在线下载接口电路 图3为STC89C52与RS232串口的连接电路图,RS232为负逻辑电平,所以单片机在与上位机进行通信时需要逻辑转换,图3所使用的转换芯片为MAXIM公司生产的MAX232标准RS-232接口芯片,使用+5 V供电,内部为爽组驱动器/接收器,每个接收器将RS-232电平转换为5 VTTL/CM OS电平。其中,RS-232在现代应用中由标准的25线简化为发送线、接收线、地线三线传输。串口的发送和接收线分别与RS-232的R1IN和T1OUT相连,MAX-232的R1OUT和T1IN分别与单片机的P3.0和P3.1相连,实现上位机、转换芯片、单片机的相互通信。 3 不断电下载程序设计 在单片机和PC机通讯并实现不断电下载,首先要设置好串口通信协议,例如串口接受与发送数据的波特率,串行口的工作方式,串行口接收与发送的数据帧格式;其次是定义自定义下载命令,并与实际发送命令一致;再次是设置串口发送命令等待时间,这可以通过单片机内部定时器来实现;最后为下位机接收发送自定义指令判断,实现软复位。 3.1 串口通讯协议初始化 首先设置波特率,根据STC单片机的晶振频率和STC芯片性能,设波特率为9 600 bit·s-1,波特率由定时器的溢出率控制。然后设置串行口的通信协议,如数据位位数、停止位位数以及是否奇偶校验,具体设置如图4所示。 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

文档评论(0)

juhui05 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档