|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教各位,以下是一段51的普通定时中断程序,该程序产生一个10ms方波信号,由P1.0端输出。我有几个关于中断的问题不是很清楚,烦请各位指教:" P# L, ]# O9 x3 j8 `
(1)中断子程序结束之后,即第22行之后,程序转向哪里?第几行?
$ C5 S+ A. e+ y(2)整个中断子程序的执行时间是不是由第20和第21行决定的?系统自动根据这两行决定子程序执行时间吗?如果将这两行删除之后,中断子程序的执行时间又是怎样决定的呢?
( { n+ N1 N' A$ R) \' u. K(3)其中第七行程序是在什么时候开始执行的?/ C# z0 a5 k; z' [
(4)程序执行路线是不是这样的:1---2---(8,9...16)---4---5---(18....22 ) 22之后呢??????0 [+ q: H6 p$ T' X" M8 z; D8 Z+ A
在下先行谢过各位,还请各位不吝指教,谢谢 :P :P :P
, ~- `! ?% D N* R- ~$MOD51 -------------11 s* p0 |: K) W3 n/ Z+ I! ~& s, t
ORG 0000H -------------2
8 z8 \9 U3 N" W$ \ LJMP START -------------3
9 m0 I9 w. g, {/ ~( m/ W/ y8 y ORG 000BH -------------45 X e3 v' D1 H2 F5 g
LJMP TO_ISR -------------5
( \/ h1 [+ n* }, i; |; -------------6
. n8 b/ {& s& Q5 T! i9 D ORG 0030H -------------7
- ^& K& Q5 U! X+ b) dSTART: SETB P1.0 -------------8
* q# o% _- U' L. L H n MOV TMOD,#11H -------------9
+ }- W ]& }/ O+ {! E MOV TH0,#0DBH -------------10
+ P2 d, O4 s O. Q MOV TL0,#0FFH -------------11
/ L$ n% S( D, ^2 g0 c/ v: q5 C; { CLR TF0 -------------12
, I7 a9 j3 e8 B' J5 Z- N SETB TR0 -------------13
. j" X E* C6 y, g SETB ET0 -------------14
* }: f/ L$ o/ Q8 a7 f; A SETB EA -------------15
" o+ E( J) ?8 ^' ^! RLOOP: SJMP LOOP -----------------16- P7 p5 x* r* z! Q$ [" T
; -------------17
/ X5 B+ J3 b1 J, I# u" pTO_ISR: CPL P1.0 -------------18
; ?; E) P+ B- T- y4 t5 r( H CLR TF0 -------------19
2 ~5 J) }5 s7 m3 n MOV TH0,#0DBH -------------20& f0 a" Q7 |3 {1 U. ]: p" [
MOV TL0,#0FFH -------------21
' W' {5 o- a) q+ r RETI -------------228 \- R$ k, |5 Q% e9 f3 q
END -------------23 |
|