|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教各位,以下是一段51的普通定时中断程序,该程序产生一个10ms方波信号,由P1.0端输出。我有几个关于中断的问题不是很清楚,烦请各位指教:
- F- o- u$ g4 |7 E(1)中断子程序结束之后,即第22行之后,程序转向哪里?第几行?% d) a! c H h0 ?$ j4 L
(2)整个中断子程序的执行时间是不是由第20和第21行决定的?系统自动根据这两行决定子程序执行时间吗?如果将这两行删除之后,中断子程序的执行时间又是怎样决定的呢?
; v, ]6 j0 `+ `( ^- Q(3)其中第七行程序是在什么时候开始执行的?
- w2 c) u% X1 A$ u' E+ e; B3 Q/ F: ](4)程序执行路线是不是这样的:1---2---(8,9...16)---4---5---(18....22 ) 22之后呢??????7 R. i" ~' j5 G+ A O
在下先行谢过各位,还请各位不吝指教,谢谢 :P :P :P 7 |! U. E9 ]( o
$MOD51 -------------1
1 X( M. U" X+ ^% ?+ B( x: u ORG 0000H -------------2
" W. a' O6 k( j1 F' Q5 ^% n9 b, y0 Q) X LJMP START -------------3: X m% |: Z* U6 n$ R
ORG 000BH -------------4) j; A' f1 |; E: { }$ w s+ b; _2 v
LJMP TO_ISR -------------5
, E# V. c0 f2 `* u" \- q; -------------6+ Y* r- o2 S; U+ x) `' ?
ORG 0030H -------------7
. c2 {9 ~0 h f. I2 \& b& r/ hSTART: SETB P1.0 -------------8
3 G1 N+ \4 O. D7 |" w MOV TMOD,#11H -------------91 v) ^9 A h5 h6 R k( i( p
MOV TH0,#0DBH -------------109 g& O. J% T# }! z& G
MOV TL0,#0FFH -------------11! ^6 z; R3 y7 z0 Z+ ~& s4 Y
CLR TF0 -------------12
6 \$ Y2 L4 f7 f7 Z# _% L, H SETB TR0 -------------13* s) ], S, F! |# F2 X* g
SETB ET0 -------------14$ l- {" M& I9 k) K% t9 F3 [1 |7 S
SETB EA -------------153 V5 x5 `+ q/ S& I* g5 u* q
LOOP: SJMP LOOP -----------------16
$ G2 E* N+ g$ L/ e$ {; -------------17
4 Y$ h5 i \4 G1 c O2 ?TO_ISR: CPL P1.0 -------------18
( X* y) ]% c8 `" L8 i+ m7 ?& x CLR TF0 -------------191 Z) T) V6 ]/ b( ^7 ~* ]6 S& W
MOV TH0,#0DBH -------------20
m. C, [0 x5 Y8 d MOV TL0,#0FFH -------------21
1 ?% I; a, X, r! f RETI -------------22# Q: _; z2 n1 Q/ m. Y: E7 g
END -------------23 |
|