|
定时器为什么不中断了 各位哥哥哥姐这个程序第一次启动,定时器可以正常运行,以后再启动,主程序可以正常运行但定时器就是不中断了,小弟初学单片机,实在是找不出原因了。
ORG 0000H
LJMP START
MORG 000BH
LJMP TIMER1 ;定时器0的中断处理
ORG 30H
START:
MOV SP,#40H
MOV P1,#0FFH
MOV P3,#0FFH
LOOP0:
JNB P3.1,START;等待启动
LJMP LOOP0
START1:
MOV R5,#0
CLR P1.7
CLR P1.3
MOV TMOD,#00000110B
MOV TH0,#0FEH
MOV TL0,#0FEH
SETB EA
SETB ET0
SETB TR0 ;启动计数器0开始运行.
LOOP2:
CLR P1.6
LCALL DELAY
SETB p1.6
LCALL DELAY
LJMP LOOP2
TIMER1:
PUSH ACC
PUSH PSW
CJNE R5,#10,TIMER2
MOV P1,#0FFH
MOV R5,#0
CLR EA
CLR TR0
LJMP LOOP0
TIMER2:
INC R5
CPL P1.3
CPL P1.4
MOV TH0,#0FEH
MOV TL0,#0FEH ;重置计数初值
POP PSW
POP ACC
RETI
DELAY:
MOV R7,#250
D1:
MOV R6,#250;
D2:
DJNZ R6,D2;
DJNZ R7,D1;
RET
END
|
|