|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教各位,以下是一段51的普通定时中断程序,该程序产生一个10ms方波信号,由P1.0端输出。我有几个关于中断的问题不是很清楚,烦请各位指教:
! G& t' n' t: K" R3 p! [& F5 g(1)中断子程序结束之后,即第22行之后,程序转向哪里?第几行?
6 Q& t3 b- O# Y8 q5 b' Z(2)整个中断子程序的执行时间是不是由第20和第21行决定的?系统自动根据这两行决定子程序执行时间吗?如果将这两行删除之后,中断子程序的执行时间又是怎样决定的呢?7 Q1 r) p a3 j" V# D: v/ x
(3)其中第七行程序是在什么时候开始执行的?; s7 c2 G$ {: t, u ~% M5 b
(4)程序执行路线是不是这样的:1---2---(8,9...16)---4---5---(18....22 ) 22之后呢??????
2 S' |3 |$ r2 ^' F. b% d B 在下先行谢过各位,还请各位不吝指教,谢谢 :P :P :P
9 ^9 o) N T9 n& s/ r8 ]8 \ L: `3 `% [$MOD51 -------------1* P# e; F; @3 v/ K
ORG 0000H -------------2
3 m4 j/ |/ G- s+ d LJMP START -------------3
8 M o' ~' i1 M2 y: ]3 z ORG 000BH -------------46 T+ b, [1 M8 ^$ C ]% j
LJMP TO_ISR -------------5( `$ c. m4 m y1 D1 d! {
; -------------6! K; k, \$ s: o* z$ g
ORG 0030H -------------7
1 M& k! u1 Q9 B# F" ]1 b7 [! @! |# |# s$ GSTART: SETB P1.0 -------------8, N% `/ S$ D# y+ n, C, n
MOV TMOD,#11H -------------9( J {4 J$ D) D# x w; Q! Z
MOV TH0,#0DBH -------------10
8 T* y+ z) Y' v+ ]" {9 }. s) D3 I( q MOV TL0,#0FFH -------------11' d: ~. Y* D5 s( M# V+ H& F1 \) w
CLR TF0 -------------12
: d. T7 e$ a( O3 ~ SETB TR0 -------------13
. G6 w- R2 D1 j" b SETB ET0 -------------147 y# F* M# G9 w+ J
SETB EA -------------150 ]3 ]$ W' q5 C* G0 D& @# U( Z
LOOP: SJMP LOOP -----------------16
: C3 V( Q1 L+ @. {% ]3 c2 \; -------------17
! N/ j7 x n( C# @& [5 q6 y3 u$ uTO_ISR: CPL P1.0 -------------18
( W4 `2 [7 z" Y# `+ X7 j9 o CLR TF0 -------------19
$ b/ e4 ~% ]- ^/ ~4 @ MOV TH0,#0DBH -------------20( _+ D s5 O% `0 g/ u" h
MOV TL0,#0FFH -------------21
4 A; N' h8 J/ V3 Q5 X RETI -------------224 s3 n8 ]( D$ z% O8 M
END -------------23 |
|