单片机原理与应用(第二版) 第9章 单片机应用系统开发技术.ppt

单片机原理与应用(第二版) 第9章 单片机应用系统开发技术.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 单片机应用系统开发技术 学习目标 学习重点 主要内容 9.1 单片机应用系统开发技术 9.1 单片机应用系统开发技术 (2)加1子程序(DAAD1) 加1子程序用于完成对秒、分和时的加1操作,中断服务程序中在秒、分、时加1时共有三处调用此子程序。加1子程序流程图如图9-7所示。 在—个应用系统工作过程中,经常需要读入一些状态信息,而且还要不断地发出各种开关控制命令到执行部件上,如继电器、电磁阀等。为了提高开关量输入/输出的可靠性,在软件设计上可以采取下列措施: ① 对于开关量输入,为了确保信息的正确性,可以采取多次读入进行比较,取多数情况的状态。 ② 对于开关量输出,通常是用来控制电感性的执行机构,如控制电磁阀。为了防止电磁阀因干扰产生误动作,可以在应用程序中每隔一段时间(比如几毫秒)发出一次命令,不断地关闭阀门或打开阀门。这样就可以较好地消除由于扰动而引起的误动作 ③ 对于输入开关量的机械抖动干扰,软件程序可以通过延时来进行消除。 系统受到干扰导致PC值改变后,PC值不是指向指令的首字节地址而可能指向指令中的中间字节单元即操作数,将操作数作为指令码执行;或使PC值超出程序区,将非程序区的随机数作为指令码运行,从而使程序失控“飞走”,或由于偶然巧合进入死循环。这里所说的死循环并非程序编制中出现的死循环错误,而是指正常运行时程序正确,只是因为干扰而产生的死循环。解决方法如下: ●2.开关量的抗干扰措施 ●3.程序“飞走”失控或进入死循环 9.3 单片机应用系统的抗干扰设计 (1)设置软件陷阱 即在非程序区安排指令强迫复位。如用LJMP 0000H的机器码填满非程序区。这样不论PC失控后“飞到”非程序区的哪个字节,都能复位。也可在程序区每隔一段(如几十条指令)连续安排三条NOP指令。因为8051指令字节最长为三字节。当程序失控时,只要不跳转,指令连续执行,就会运行NOP指令,就能使程序恢复正常。 (2)设置“看门狗” 设置软件陷阱能解决一部分程序失控问题,但当程序失控“飞走”进入某种死循环时,软件陷阱可能不起作用。使程序从死循环中恢复到正常状态的有效方法是设置时间监视器,时间监视器又称“看门狗”。时间监视器有两种:一种是硬时钟,一种是软时钟。硬时钟是在CPU芯片外用硬件构成一个定时器,软时钟是利用片内定时/计数器,定时时间比正常执行一次程序循环所需时间要大。正常运行未受干扰时,CPU每隔一段时间“喂狗”一次,即对硬时钟输出复位脉冲使其复位;对软时钟重置时间常数复位。“喂狗”时间应比设定的定时时间要短,即在狗“未饿未叫”时“喂狗”(复位),使其始终不“叫”(不中断、不溢出)。当受到干扰,程序不能正常运行,陷入死循环时,因不能及时“喂狗”,硬时钟或软时钟运行至既定的定时时间,硬时钟输出一个复位脉冲至CPU的RESET端使单片机复位。软时钟可产生中断,在中断服务子程序中修正或复位。上述硬、软时钟只需设置其中一种,各有利弊。软时钟无须增加硬件电路但要占用一个宝贵的定时/计数器资源;硬时钟不占资源,但要增加硬件电路和材料成本。 9.3 单片机应用系统的抗干扰设计 9.4 单片机应用系统实例 9.4.1数码管时钟电路的设计 ●1.系统设计要求 LED数码管时钟电路采用24h计时方式,时、分、秒用六位数码管显示。该电路采用AT89C2051单片机。 AT89C2051是一个低电压,高性能CMOS 8位单片机,片内含2KB的可反复擦写的只读Flash程序存储器和128B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C2051单片机可为您提供许多高性价比的应用场合。 AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。其引脚如图9-4所示。 图9-4 AT89C2051引脚图 ●2. 系统设计原理 以AT89C2051单片机来实现时钟计时显示有如下几个要点: (1)计算计数初值 时钟计时的关键问题是秒的产生,因为秒是最小时钟单位,但使用MCS-51的定时器/计数器进行定时,即使按工作方式1,其最大定时时间也只能达到131ms,离1s还差很远。为此,我们把秒计时用硬件定时和软件计数相结合的方法实现,即:把定时器的定时时间定为125ms,这样计数溢出8次就可得到1s,而8次计数可用软件方法实现。 同时AT89C2051的时钟频率可以为零,即具备可用软件设置的

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档