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亮滅一次
但我的現象是燈常亮
|