- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 单片机应用系统开发技术演示文稿.PPT
9.1 单片机的开发系统及开发工具 9.2 单片机应用系统的设计原则与过程 9.3 单片机应用系统的抗干扰设计 9.4 单片机应用系统实例 * 3.程序“飞走”失控或进入死循环 系统受到干扰导致PC值改变后,PC值不是指向指令的首字节地址而可能指向指令中的中间字节单元即操作数,将操作数作为指令码执行;或使PC值超出程序区,将非程序区的随机数作为指令码运行,从而使程序失控“飞走”,或由于偶然巧合进入死循环。这里所说的死循环并非程序编制中出现的死循环错误,而是指正常运行时程序正确,只是因为干扰而产生的死循环。解决方法有: (1) 设置软件陷阱 (2) 设置“看门狗” (1) 设置软件陷阱 即在非程序区安排指令强迫复位。如用LJMP 0000H的机器码填满非程序区。这样不论PC失控后飞到非程序区的哪个字节,都能复位。也可在程序区每隔一段(如几十条指令)连续安排三条NOP指令。因为8051指令字节最长为三字节。当程序失控时,只要不跳转,指令连续执行,就会运行NOP指令,就能使程序恢复正常。 (2) 设置“看门狗” 设置软件陷阱能解决一部分程序失控问题,但当程序失控“飞走”进入某种死循环时,软件陷阱可能不起作用。使程序从死循环中恢复到正常状态的有效方法是设置时间监视器,时间监视器又称“看门狗”。 * 时间监视器有两种:一种是硬时钟,一种是软时钟。硬时钟是在CPU芯片外用硬件构成一个定时器,软时钟是利用片内定时/计数器,定时时间比正常执行一次程序循环所需时间要大。正常运行未受干扰时,CPU每隔一段时间“喂狗”一次,即对硬时钟输出复位脉冲使其复位;对软时钟重置时间常数复位。“喂狗”时间应比设定的定时时间要短,即在狗“未饿未叫”时“喂狗”(复位),使其始终不“叫”(不中断、不溢出)。当受到干扰,程序不能正常运行,陷入死循环时,因不能及时“喂狗”,硬时钟或软时钟运行至既定的定时时间,硬时钟输出一个复位脉冲至CPU的RESET端使单片机复位。软时钟可产生中断,在中断服务子程序中修正或复位。上述硬、软时钟只需设置其中一种,各有利弊。软时钟不需增加硬件电路但要占用一个宝贵的定时/计数器资源;硬时钟不占资源,但要增加硬件电路和材料成本。 * * 9.4 单片机应用系统实例 9.4.1 数码管时钟电路的设计 1.系统设计引言 AT89C2051是一个低电压,高性能CMOS 8位单片机,片内含2k bytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。 ? AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。其引脚如图9-4所示。 * 图9-4 AT89C2051引脚图 * 2.系统设计原理 以AT89C2051单片机来实现时钟计时显示有如下几个要点: ⑴ 计算计数初值 时钟计时的关键问题是秒的产生,因为秒是最小时钟单位,但使用MCS-51的定时器/计数器进行定时,即使按工作方式1,其最大定时时间也只能达到131ms,离1s还差很远。为此,我们把秒计时用硬件定时和软件计数相结合的方法实现,即:把定时器的定时时间定为125ms,这样计数溢出8次就可得到1s,而8次计数可用软件方法实现。 为得到125ms定时,我们可使用定时器/计数器0,以工作方式1进行,假定单片机为6MHz晶振,设计数初值为X,则有如下等式:(216-X)×2=125000 计算得计数初值X=3036,二进制表示为110011011100B,十六进制表示为0CDCH。 ⑵ 设定定时器定时方式 定时器采用中断定时方式完成,以便于通过中断服务程序进行溢出次数(每次125ms)的累计,计满8次即得到秒计时。 ⑶ 实现方法 通过在程序中的数值累加和数值比较来实现从秒到分和从分到时的计时。 * * ⑷ 设置时钟显示及显示缓冲区 假定时钟时间在6位LED数码管上进行显示(时、分、秒各占两位)。为此,要在内部RAM中设置显示缓冲区,共6个单元,与数码管对应关系见表9-1。显示缓冲区从左向右依次存放时、分、秒的数值。 表9-1 LED显示器的缓冲单位 LED5 LED4 LED3 LED2 LED1 LED0 7EH 7D
文档评论(0)