仅供参考:
ORG 0000H
AJMP MAIN
ORG 001BH
AJMP CONT
MAIN:
MOV TMOD, #10H
SETB TR1
SETB EA
;-------------------------
M1: CLR ET1 ;关中断
SETB P1.0
MOV R1, #0
M_LOOP:
MOV TL1, #0F0H ;10ms@12MHz
MOV TH1, #0D8H
JNB TF1, $ ;等待溢出
INC R1
CJNZ R1, #10, M_LOOP ;不足10次就循环
CPL P1.0
SETB ET1 ;开中断
CJNZ R1, #40, $ ;等待中断发生和结束
SJMP M1
;-------------------------
CONT:
MOV TL1, #0F0H ;10ms@12MHz
MOV TH1, #0D8H
JNB TF1, $
CLR TF1
INC R1
CJNE R1, #40, CONT ;循环30次
RETI ;300ms后退出
;-------------------------
END