k`(e)l^Zd%o0 设A0、E0、M计数单元分别为内RAM中的30H、40H和50H单元,监视程序如下:电子园51单片机学习网X(wI {:H
0Y#X9p%N^ v0 loop1:MOV 50H, #00H; 清M单元
_[nO$|-g:r | p0S![dbPM|(^0 MOV 40H, 30H ;暂存A0单元 电子园51单片机学习网CH_.r$w3@(?8t
o)lFZ-AM}0 …; 测控功能模块电子园51单片机学习网Q#Y"x'O c0v
电子园51单片机学习网1?$p)y6H+O9}4qE_CLR C
O:ic.I(sJ0`0电子园51单片机学习网s?5^/?*y)j$F wMOV A, 30H电子园51单片机学习网v*@X'Dt ?x
电子园51单片机学习网 B,Y?*Y.^SUBB A, 40H; 判断A0变化电子园51单片机学习网3ym#o9k s*v
E*sM Q&tj0 JZ loop
HO^i)Z-c$o0电子园51单片机学习网 l.gq x rMOV 30H, #00H
+Gz;B V!c`4`0电子园51单片机学习网BJcob,uw9?xLJMP loop1电子园51单片机学习网 A A&@ z C]
电子园51单片机学习网dj_ r#y"j^"a loop:LJMP 0000H电子园51单片机学习网#oE6HM+SJ1K3O
电子园51单片机学习网@/M*y-uT8OPV
2 T1中断服务程序监视过程设计
Af){0^ ESPy0 T1中断程序流程如图2—1所示。T1中断服务程序在完成特定测控功能的同时,还要监视主程序的运行状态。在中断服务程序中设置一个主程序运行计时器M1,T1每中断一次,M便自行加1。M中的数值与T1定时溢出时间之积表示时间值。若由M表示的时间值大于主程序的运行时间,说明主程序因干扰而陷入了“死循环”,T1中断服务程序便修改断点地址,返回0000H,进行出错处理。若M不大于主程序运行时间,说明主程序运行正常,中断服务程序也正常返回。M单元在系统主程序运行中循环清“0”。电子园51单片机学习网m,Z8X7f/[9b~6Ya
电子园51单片机学习网4y`Pv DV0L
电子园51单片机学习网~)tkq%m'kT
(216-N)×2×10-6=2×10-3
_6B,p,U*T&i] ib6s0N=64536D=FC18H电子园51单片机学习网3dH+~G _^/`p H2D9BX
~ L8f;^6M{`$fu*M0电子园51单片机学习网X%L:`#Bpq
若图1—1中主程序的最大循环时间为200ms,则图2—1中的T取值应不小于64H,可取68H。A1为T1中断程序运行状态监测单元,取内RAM 31H单元,M仍取50H单元,60H、61H为暂存单元,则T1中断监视程序如下:
PUSH PSW ;保护现场
g I2z~a_#c0电子园51单片机学习网eWv m |1E;EPUSH ACC电子园51单片机学习网{,TR;s:ki
电子园51单片机学习网8km.y2EsW,g)}D(lMOV TH1, #0FCH ;T1置初值电子园51单片机学习网*}xF-y ~3^E2bw
电子园51单片机学习网SGTh5J0Q8J9hMOV TL1, #18H
)ZGW&OB#muq0电子园51单片机学习网!gz7aN1YWINC 31H ;A1单元加1电子园51单片机学习网 L&nk$G#~0Sl
9]B7?;mY U7F1nt0 INC 50H ;M单元加1电子园51单片机学习网4xV!NE8Ch)wd
Vb4ci(E Ua9z0 CLR C
m2_#i'LlvWVP0电子园51单片机学习网*T\R2K&`/FMOV A,#68H
pxSE'I uw!lnK0电子园51单片机学习网X r_ jQu` zSUBB A,50H ;T≥M?
8H ]3iFVJA~0电子园51单片机学习网K7Z3goEx/Y%RX,Q-[JC loop
j3x7w4Fc"R04\Y D8lR.v9v|0 … ;中断测控程序电子园51单片机学习网*L8o:Gt |)|Q
Lk s6D6v0 POP ACC ;恢复现场
\-Ebrm0u_`8zLg0 POP PSW
]jVs_%n#X4B0B#iZY#k?@l0 RETI ;返回电子园51单片机学习网#g*xU$M#O'Lx
电子园51单片机学习网)UN}0C!U;N Yr;C/q0Jloop:POP ACC ;恢复现场电子园51单片机学习网9S(hM1Oiz6x$U/x@(P
电子园51单片机学习网Y,D0[ mV"P_.P i$|POP PSW
EF#qE'},V0电子园51单片机学习网Q7B4F%wWPOP 60H ;原断点弹出
W-l pSB(om07unZ*Y$_ t0 POP 61H
lM9pK8})S.UM3ul0电子园51单片机学习网'wv6jDq1a&OMOV 60H,#00H ;断点修改为0000H电子园51单片机学习网 w h3v/q`1b,_H
)?#Xmmvz;K0 MOV 61H,#00H电子园51单片机学习网3|.f'E^cD.PYj
电子园51单片机学习网&@_ \ G? y o\]PUSH 60H
X:zeo.x+NK0eD0q?$u"H-BT1z'[8c0 PUSH 61H
kP1l-_ u(?0电子园51单片机学习网 Y'V+lyg'J3Z RETI ;返回电子园51单片机学习网 Mm|:Yz;XS?
电子园51单片机学习网2\2I#tc[G)k2\+m
3 T0中断服务程序监视过程设计 电子园51单片机学习网6~-iM1p'S${w
T0中断程序流程如图3—1所示。T0中断的功能是监视T1中断服务程序的运行状态。由于T0中断服务程序较短,因干扰而引起的“死循环”的几率很小,重点考虑中断关闭故障。图3—1中A1、B1为T1中断运行状态观测单元。A1的初值为00H,T1每中断一次,A1便加1,如图2—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中断服务程序一般很短,发生“死循环”的几率很小。
`-k D$T"s0 电子园51单片机学习网-xJh!ax)py
设单片机晶振频率为6MHz,T0以工作方式1产生4 ms的定时中断,则T0的计数初值为:
(216-N)×2×10-6=4×10-3 电子园51单片机学习网2C3X3]3]:V/s
N=63536D=F830H
F"d`@_])Iu0@c5z;f d7q&C*{4Q {,e/M0 设计数单元A0、A1、B1分别为内RAM 30H、31H、32H,Q=5,60H、61H为暂存单元,则T0中断监视程序如下:
JF1_,c!a$j B \e0电子园51单片机学习网J*FKz5M4`[PUSH PSW ;保护现场电子园51单片机学习网&hdWm"H^r gwaZ
电子园51单片机学习网_L#A&a8JPUSH ACC
ir8R'E:?0z-_-u0}e5a@Q7|4b;b0 MOV TH0,#0F8H ;设T0初值
Aj-o!D gPvJE d0电子园51单片机学习网 ?@$ws3|,NzMOV TL0,#30H电子园51单片机学习网Y[5` `"^B d,r#~3~
6E%y,jd Ol0 INC 30H ;A0加1电子园51单片机学习网)hW2? z_
&W@ l5D.V Z1H"g0 MOV A,31H ;A1单元判0
la;U)R#kA?0ZE:t;S!e.c)Ol0 JZ loop1电子园51单片机学习网h/d,|,X6IEZ$D
电子园51单片机学习网6I-c+CHs8Ye hLCLR A ;清A1、B1单元
ys7~PP5p3z0+}6r)u Fa8T1_#h&~0 MOV 31H,A电子园51单片机学习网 II*Wr5xay$N;n-k
电子园51单片机学习网\\#L&W.X!A@MOV 32H,A电子园51单片机学习网0xV0[e P"c
电子园51单片机学习网Ogg/c.O#ploop0:POP ACC ;恢复现场电子园51单片机学习网y jDe F;}tg,z5U6r
xs:_3D)P0 POP PSW
-nE%Z$[;hp"b0电子园51单片机学习网\ tcN/VTljUTRETI ;返回电子园51单片机学习网g?,U)lew|vB
电子园51单片机学习网+pb"{l-|9ot4v@Nloop1:INC 32H ;B1加1电子园51单片机学习网{c;R!\]9a
电子园51单片机学习网0t(x1[:Z\9X.y5xCLR C电子园51单片机学习网o4U Vg:Kq
电子园51单片机学习网RXbQ UDMOV A ,32H;B1≥Q?
c S5U!d8Y.Q6j#cpp0电子园51单片机学习网 o5] d+T3lm i?SUBB A,#05H
^^`2_O:sH5c(W$u0电子园51单片机学习网 B.~(IZ%q Yf8DJC loop0电子园51单片机学习网*^V Zs1w!i2v%y
电子园51单片机学习网 b+ry+Y0G*@!b CPOP ACC ;恢复现场
)N4m,wAi Hh0e4a2b#Q|k jk&b0 POP PSW
1m q0\fR-ZF0电子园51单片机学习网,{jc`4_QPOP 60H ;原断点弹出电子园51单片机学习网Ce@!`@l,[
$ah&Q[LCW'p^0 POP 61H
XZZ3qb1rX0电子园51单片机学习网+S!Q[x,N$^MOV 60H,#00H ;修改断点0000H电子园51单片机学习网~EkPcI7w-euGd
电子园51单片机学习网rkP"N!t TMOV 61H,#00H电子园51单片机学习网}9eiX'C})~"V
电子园51单片机学习网 p_)xCpB&WJPUSH 60H
A+mC5@o4s0电子园51单片机学习网?;^ GFx&M^;TPUSH 61H
6IsB&@so:](A0;OjL1c)@)b0 RETI
Z[j.^{0}(D"r f0 当系统受到干扰后,主程序可能发生“死循环”,中断服务程序也可能陷入“死循环”,或因中断方式字的破坏而关闭中断。主程序的“死循环”可由T1中断服务程序监视;T1中断服务程序的“死循环”和中断关闭故障由T0中断服务程序监视;T0的中断故障可由主程序监视。由于采取了三重软件监测方法,大大提高了系统运行的可靠性。电子园51单片机学习网q ?VW L:JT]
文章评论(0条评论)
登录后参与讨论