|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教各位,以下是一段51的普通定时中断程序,该程序产生一个10ms方波信号,由P1.0端输出。我有几个关于中断的问题不是很清楚,烦请各位指教:9 [ m5 \) N8 `5 v: F9 `6 x8 [
(1)中断子程序结束之后,即第22行之后,程序转向哪里?第几行?
0 ]$ W- B4 r) V- S9 I! F(2)整个中断子程序的执行时间是不是由第20和第21行决定的?系统自动根据这两行决定子程序执行时间吗?如果将这两行删除之后,中断子程序的执行时间又是怎样决定的呢?' l' S/ [) S* l
(3)其中第七行程序是在什么时候开始执行的?
5 n4 a- B1 ^ m: ~) o(4)程序执行路线是不是这样的:1---2---(8,9...16)---4---5---(18....22 ) 22之后呢??????
1 @! ~! ?0 ?3 y$ A 在下先行谢过各位,还请各位不吝指教,谢谢 :P :P :P
. B6 {5 H; E# [# z1 s6 X8 L$MOD51 -------------11 U* t9 B- Q9 v I+ u* G
ORG 0000H -------------2
1 O" G' V' O' ^& X: t- e LJMP START -------------31 ^) G9 n4 R f6 Z# _; A1 m
ORG 000BH -------------4; d9 V2 @( A/ R6 `6 G D3 S; T
LJMP TO_ISR -------------57 _( g( C+ E0 R7 ^4 N: ~ j
; -------------6: {; u6 ?6 }! w: G; T8 f; z
ORG 0030H -------------7
. w$ {3 |( k5 g. w1 B- cSTART: SETB P1.0 -------------8
b1 k' Y; R9 a; Y' ?5 X MOV TMOD,#11H -------------9
' O! M" J8 |3 W8 t- h# d/ D MOV TH0,#0DBH -------------10
4 L; u; \ f$ r( j+ P d$ M MOV TL0,#0FFH -------------116 t) Q" q" b; E' l% k& k% v
CLR TF0 -------------12
6 m! L2 f0 O+ z: c; U! { SETB TR0 -------------138 {- g' U: t3 t
SETB ET0 -------------142 J7 z0 o6 F, R1 S* E6 O
SETB EA -------------15" t8 L5 F+ r6 Q8 H
LOOP: SJMP LOOP -----------------16
. t, C h( d) G; -------------173 X% P( R# [! J2 `0 h5 y
TO_ISR: CPL P1.0 -------------18/ G' w! H1 \* x5 ?% x5 |* j
CLR TF0 -------------19
3 R3 W0 n- [4 v* X! C: V MOV TH0,#0DBH -------------20
' i! C* w/ M0 a0 W. [ MOV TL0,#0FFH -------------21
/ z4 [4 q5 [* R; c RETI -------------225 T! p. H r5 R- Z; n
END -------------23 |
|