新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 51单片机软件三重监视抗干扰技术

51单片机软件三重监视抗干扰技术

作者:时间:2014-01-16来源:网络收藏

MOV 60H,#00H ;断点修改为0000H

MOV 61H,#00H

PUSH 60H

PUSH 61H

RETI    ;返回

3 T0中断服务程序监视过程设计

T0中断的功能是监视T1中断服务程序的运行状态。由于T0中断服务程序较短,因干扰而引起的“死循环”的几率很小,重点考虑中断关闭故障。A1、B1为T1中断运行状态观测单元。A1的初值为00H,T1每中断一次,A1便加1,T0中断服务程序中若检测到A1>0,说明T1中断正常;若A1=0,则B1单元加1(B1的初值为00H),若B1的累加值大于Q,说明T1中断失效,失效时间为T0定时溢出时间与Q值之积。例如:T0的定时溢出时间为4ms,T1的定时溢出时间为2 ms,当Q=5时,说明允许T1的失效时间为20 ms,在这样长的时间内,T1并没有发生中断,说明T1中断发生了故障。由于T0中断级别高于T1中断级别,所以T1的任何故障(如死循环、中断关闭)都会由T0检测出来。T0中断服务程序一般很短,发生“死循环”的几率很小。

设单片机晶振频率为6MHz,T0以工作方式1产生4 ms的定时中断,则T0的计数初值为:

(216-N)×2×10-6=4×10-3

N=63536D=F830H

设计数单元A0、A1、B1分别为内RAM 30H、31H、32H,Q=5,60H、61H为暂存单元,则T0中断监视程序如下:

PUSH   PSW     ;保护现场

PUSH ACC

MOV TH0,#0F8H ;设T0初值

MOV TL0,#30H

INC 30H ;A0加1

MOV A,31H ;A1单元判0

JZ loop1

CLR A     ;清A1、B1单元

MOV 31H,A

MOV 32H,A

loop0:POP ACC ;恢复现场

POP PSW

RETI  ;返回

loop1:INC 32H ;B1加1

CLR C

MOV A  ,32H;B1≥Q?

SUBB A,#05H

JC loop0

POP  ACC    ;恢复现场

POP PSW

POP 60H ;原断点弹出

POP 61H

MOV 60H,#00H ;修改断点0000H

MOV 61H,#00H

PUSH 60H

PUSH 61H

RETI

当系统受到干扰后,主程序可能发生“死循环”,中断服务程序也可能陷入“死循环”,或因中断方式字的破坏而关闭中断。主程序的“死循环”可由T1中断服务程序监视;T1中断服务程序的“死循环”和中断关闭故障由T0中断服务程序监视;T0的中断故障可由主程序监视。由于采取了三重软件监测方法,大大提高了系统运行的可靠性。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭