|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教各位,以下是一段51的普通定时中断程序,该程序产生一个10ms方波信号,由P1.0端输出。我有几个关于中断的问题不是很清楚,烦请各位指教:
* k& q+ _4 R, W3 C* p(1)中断子程序结束之后,即第22行之后,程序转向哪里?第几行?, _/ r+ K7 b U8 M, ~3 P
(2)整个中断子程序的执行时间是不是由第20和第21行决定的?系统自动根据这两行决定子程序执行时间吗?如果将这两行删除之后,中断子程序的执行时间又是怎样决定的呢? R w! W4 y) ^* r: e
(3)其中第七行程序是在什么时候开始执行的?* H1 ?! W2 H& }8 i1 U4 w* |
(4)程序执行路线是不是这样的:1---2---(8,9...16)---4---5---(18....22 ) 22之后呢??????8 e* x4 {% d4 V! V1 @4 {7 b
在下先行谢过各位,还请各位不吝指教,谢谢 :P :P :P * s" a/ E" Y% N o0 ^- ~% n
$MOD51 -------------1, n \& }1 q* `1 {$ u- J
ORG 0000H -------------2
' U* }" A% H. c1 E- N! S! a! W0 k LJMP START -------------3' U* i2 z) \/ L* \5 c9 l5 G
ORG 000BH -------------4
+ t7 t* y1 K# j* m0 q" @" B LJMP TO_ISR -------------5
& P/ J. ~9 z) W9 F9 U# x4 R; -------------6
; B9 }* a$ X" Z4 [4 U5 t ORG 0030H -------------7
: i- k- t, Q$ t$ k# DSTART: SETB P1.0 -------------8! {/ Z0 X4 M0 f, C) b3 B
MOV TMOD,#11H -------------9
6 ?& e- r# {- [2 m* s7 Q0 N MOV TH0,#0DBH -------------10; ^; ^( C( _. S
MOV TL0,#0FFH -------------11. l3 J9 p# x. P/ `0 q
CLR TF0 -------------12
& b+ F3 B2 R0 Q SETB TR0 -------------13" C. ]& O. S/ P, q
SETB ET0 -------------146 m8 ` _/ q) ?# ^' [- a9 o- Y9 J
SETB EA -------------15
3 A# S; h, i4 x8 p( j/ @. LLOOP: SJMP LOOP -----------------16. y- Y; z) Z' M( f7 I* f, R
; -------------17
! q' k7 r( z/ x7 C4 X3 G7 kTO_ISR: CPL P1.0 -------------18( M0 Q8 f2 |. t
CLR TF0 -------------193 [% \$ Y, D `& ?0 r
MOV TH0,#0DBH -------------200 {7 _5 a |$ K6 e9 U0 J0 K v8 E
MOV TL0,#0FFH -------------21
+ z* W2 V7 B" `8 v: y3 o9 L RETI -------------22
9 W# c- ?$ I" s END -------------23 |
|