51单片机—软件看门狗—01_ 单片机看门狗程序

这是第一次写一写下自己的学习的过程,这只是个开始,呵呵,当然没有结束的一个开始

今天没有事情,就看看单片机的书,突然发现自己学了这么长的时间还没有用过看门狗这个东东~~表示很惭愧,(*^__^*)嘻嘻……

既然这是自己的第一篇文章,那就来个简单,但是也好写的东东吧~~~

001.软件看门狗

当程序跑飞到一个临时构成的死循环中时,这是如果没有人为的操作(也就是按下复位键),那么软件系统将完全瘫痪。那么我们就要让MCU自己实现监视系统运行的情况,这就是程序运行监视系统(WatchDog)。

简单来说吧,好比一个主人养了一条狗,主人在正常工作时总是不忘记每隔一段时间就喂一次狗,狗吃过东西就安静下来,这样也就不会影响主人生活。但是如果主人打瞌睡忘记喂狗,那么时间到了,狗就饿了,发现主人还没有喂它,就会大叫起来,把主人吵醒。呵呵,这就是喽。。。。。。国外把这种程序运行监控系统成为WatchDog(看门狗)。其中看门狗的特性有:

1》本身能独立工作,基本上不依赖于CPU(这里还要解释一下,它占用CPU主要是那么几微秒,既喂狗)

2》CPU在一个固定的时间间隔和系统打一次交道(也就是喂狗,1中已经提到),以表明系统目前正常

3》当CPU陷入死循环后,能即使发觉并可以使系统复位

下面就是程序的设计过程了~~~

当系统陷入死循环后,什么样的程序才能使它跳出来呢?只有比这个死程序更高级的中断程序才能夺走死程序对CPU的控制权。为此,咱们可以用一个定时器来做看门狗,将它的溢出中断设定为高优先级中断,然后将系统的其它中断设定为低优先级的中断(这里一定要保证你设定的看门狗的那个中断一定要比你程序中的其它的中断要高!!!!)(这里的设置方法很多,但是刚才说的原则一定要满足!)。那就比如说吧,用T0作看门狗,定时约为16ms,如果你的系统中没有用到INT0,那么你就不需要设置PTO了(这里我就不多解释了~~大家懂得的)。

当看门狗启动后,系统工作程序必须经常“喂它”,而且每两次的间隔不得大于16ms(这里还是上边的例子)

当程序陷入死循环后,16ms之内即可引起一次T0中断,产生高优先级中断,从而结束死循环。同时,建议在T0中断里直接转向出错处理程序,也就是在中断向量区放置一条“LJMPERROR”就哦了(这里用汇编语言好解释~~)

下面是用汇编写的看门狗程序,它包含模拟的主程序,“喂狗”(DOG)程序和空弹返回0000H(TOP)程序。

51单片机—软件看门狗—01_ 单片机看门狗程序

ORG0000H

AJMPMAIN

ORG000BH

LGMPTOP

MAIN:MOVSP,#06H;模块硬件复位,这些可根据系统对资源的使用情况增减

MOVPSW,#OOH

MOVSCON,#01H

.

.

.

MOVIE,#00H

MOVIP,#00H

MOVTMOD,#01H

LCALLDOG;调用DOG的时间间隔应该小于例题中的16ms

.;这里就省了要添加的程序,自己根据自需要来添加就哦了,我也就不费话了

.

.

DOG:MOVTH0,#0B1H;这就是喂狗程序,这里用的是定时计数器0

MOVTL0,#0E0H

SETBTR0

RET

TOP:POPACC;空弹断点地址,也就是先将你压入的地址取出来,然后赋予新的值

POPACC;这里赋值为0,你懂得,也就是要让它返回到程序的开头~~

CLRA;当然你也可以不这样做,这里也可以来一个调用指令,自己搞定吧!

PUSHACC

PUSHACC

RETI;(这里是RETI,不是RET)

  到这里看门狗的都该说清楚了~~~

  这是软件抗干扰的方法之一,还有一种方法就是软件陷阱技术,这个也挺简单的,我也就不多赘述了~~

提示:软件陷阱就是一条引导指令强行将捕获的程序引向一个指定的地址,再那里有一段专门对程序出错进行处理的程序,用来使程序按既定的目标执行。真正的软件陷阱由三条指令组成:

  NOP

NOP

LJMP ERROR

  

爱华网本文地址 » http://www.413yy.cn/a/25101012/106157.html

更多阅读

51单片机基础3 80c51单片机

以下资料转摘自网络并经适当整理,请参照使用。选择1、当MCS-51复位时,下面说法正确的是(A )。A、PC=0000HB、SP=00HC、SBUF=00HD、 P0=00H2、PSW=18H时,则当前工作寄存器是( D)。A、 0组B、 1组C、 2组D、

基于51单片机的直流电机驱动L298 l298n电机驱动电路图

L298是SGS公司的产品,L298N为15个管角的单块集成电路,高电压,高电流,四通道驱动,设计用L298N来接收DTL或者TTL逻辑电平,驱动感性负载(比如继电器,直流和步进马达)和开关电源晶体管。内部包含4通道逻辑驱动电路,其额定工作电流为1A,最大可达1.

51单片机的中断体系结构 单片机51中断程序

80C51的中断系统有5个中断源(8052有 6个),2个优先级,可实现二级中断嵌套 。MCS-51系列单片机中断系统的机构如下:与中断系统相关的特殊寄存器:1)中断允许控制寄存器(IE)------控制各中断的开放和屏蔽2)中断优先级控制寄存器(IP)------设置各中断

51单片机最小系统制作 51单片机p0口上拉电阻

查看文章自学51单片机很容易,51单片机最小系统制作2009-06-13 23:01第一章 概述1.1 缘起1. 给51初学者提供一个简单的DIY的教材。第二章 跑马灯和串口2.1 第一步:准备准备一下器件:1、 烙铁(质量好点)2、 焊锡(细)

声明:《51单片机—软件看门狗—01_ 单片机看门狗程序》为网友雷诺分享!如侵犯到您的合法权益请联系我们删除