ORG 0000H
AJMP START
ORG 001BH
AJMP INTIME
ORG 30H
START: CLR P1.0 ;灭灯(若灯为高电平亮)
MOV TMOD,#10H ;设置T1为方式1
MOV TH1,#9EH
MOV TL1,#58H ;赋初值
MOV R0,#0 ;软件计数器预清0
SETB EA
SETB ET1 ;开放T1中断
SETB TR1
LOOP: AJMP LOOP
INTIME:PUSH ACC ;将ACC和PSW推入堆栈保护
PUSH PSW
INC R0
MOV A,R0
CJNE A,#20,NEXT ;累计1s
CLR P1.0 ;灯亮
MOV R0,#0 ;软件计数器清0
NEXT: MOV TH1,#9EH ;重置定时常数
MOV TL1,#58H
POP PSW
POP ACC
RET1
END
题目是每0.05S溢出中断一次,在中断服务程序中P1.0 1S亮灭一次
但我的现象是灯常亮
|