- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
看门狗定时器WDT包含了一个14位计数器和看门狗定时器复位寄存器WDTRST。WDTRST是只写寄存器,而WDT中的计数器既不可写,也不可读,一旦溢出,便停止计数。看门狗定时器的功能是通过使用WDT计数器不断计数来来监控程序的运行,当计数器计满溢出时,将在片内送给AT89S51的RST引脚一个持续98个时钟周期的正脉冲信号使单片机复位,使系统重新从头开始执行程序。因此,当程序陷入“死循环”或者“跑飞”状态时,WDT可以使程序恢复正常执行。 6.4 看门狗定时器的应用 1.WDT的启动 单片机复位后,WDT默认为禁止工作。当用户想启动WDT时,只要依次向寄存器WDTRST先写入1EH,紧接着再写入0E1H,WDT计数器就启动开始工作。WDTRST的地址为0A6H。 看门狗启动后,14位计数器会自动对机器周期计数,每16384(214)个机器周期溢出一次,并产生一个高电平信号送给RST引脚,使系统复位。对于12MHz的时钟信号每16384us(约0.016s)产生一次溢出。 6.4 看门狗定时器的应用 当使用C语言编程时要增加一个声明语句,在AT89X51.h声明文件中增加一行: sfr WDTRST = 0xA6; WDT启动的C语言程序如下: Main() { WDTRST=0x1E; WDTRST=0xE1; } 6.4 看门狗定时器的应用 2.WDT的停止 WDT计数器一旦启动计数,就只能通过复位(硬件复位或WDT溢出复位)来停止WDT工作。WDT可以通过程序执行启动工作,却不能通过执行程序停止工作。 6.4 看门狗定时器的应用 3.WDT的复位 WDT一旦启动,只能通过系统复位来停止工作。在系统正常工作时,经过16384个机器周期,WDT就会溢出使系统复位,使系统重新从头开始执行程序。因此,在系统正常运行中,应该防止WDT计数器启动后产生不必要的溢出而使系统复位,应在WDT启动后的16384个机器周期内,必须使WDT复位一次,即“喂狗”一次,使WDT不会计满溢出而使系统复位。 在系统程序正常运行中,在看门狗定时器启动后和在每次“喂狗”后的16384个机器周期内必须再“喂狗”一次,也就是在系统正常运行中不断地定期“喂狗”,对WDT清0,因此在进行系统程序设计时会把WDT启动和复位的程序设计成一个子程序,在系统启动和程序执行过程中不断地调用执行。 WDT 复位即“喂狗”指令如下: { WDTRST=0x1E; WDTRST=0xE1; } 6.4 看门狗定时器的应用 4.在空闲和掉电工作方式时WDT的用法 在进入空闲工作方式时,WDT的工作状态由AUXR中的WDIDLE位的值决定。当WDIDLE位为1时,WDT在空闲方式下暂停计数,在CPU退出空闲方式后,WDT才恢复计数,所以在进入空闲工作方式前应先把WDIDLE位置1。 在掉电工作方式时,时钟振荡器停止工作,意味着WDT也就停止计数。为防止WDT在掉电工作方式退出过程中溢出复位,在系统进入掉电工作方式前应先对WDT复位。 6.4 看门狗定时器的应用 使用WDT时要注意以下几点: (1)AT89S51的WDT必须由程序启动后才开始工作,所以必须保证CPU有可靠的上电复位,否则看门狗也无法工作。 (2)AT89S51的WDT使用的是单片机的时钟振荡器,在时钟振荡器停振的时候看门狗也无效。 (3)AT89S51的WDT只有14位计数器,在16384个机器周期内必须至少“喂狗”一次,而且这个时间是固定的,无法更改。当时钟为12MHz时16384个机器周期约为0.016s(16ms)。 (4)AT89S51的WDT只能通过单片机复位来停止工作。 (5)AT89S51的WDT的启动指令和“喂狗”指令是一样的。 6.4 看门狗定时器的应用 思考与练习题6 1.AT89S51中断系统的组成。 2.AT89S51的中断源有哪些?怎样进行中断管理的?涉及哪几个SFR? 3.中断响应的条件和过程?中断请求是怎样撤销的? 4.请用自己语言描述AT89S51的串行口。 5.串行口的工作涉及到哪几个SFR?都起什么作用? 6.AT89S51的串行口有哪几种工作方式?工作方式如何设定? 7.在实际应用中串行口有什么具体用途? 8.AT89S51的串行口每一种工作方式的具体情况是什么样?串行数据帧格式和波特率是什么样? 9.串行通信接口有几种?如何使用? 10.T1作为波特率发生器时如何使用?若已知时钟频率和拟使用的串行通信波特率,如何计算计数T1初值? 11.为什么T1用作波特率发生器时常采用方式2工作? 思考与练习题6 12.若时钟信号为11.0592MHz,串行口工作在方式
文档评论(0)