供参考:
ORG 0000H
SJMP START
ORG 000BH
SJMP T0_INT
START:
MOV TMOD, #01H
MOV TH0, #3CH
MOV TL0, #0B0H ;定时50ms, fosc=12MHz
SETB TR0
MOV IE, #82H
MOV R2, #10
MOV R3, #60
SJMP $
T0_INT:
MOV TH0, #3CH
MOV TL0, #0B0H ;定时50ms, fosc=12MHz
CPL F0
JNB F0, T0_END
CLR P1.0 ;每隔100ms, 清零
DJNZ R2, T0_END
MOV R2, #10
SETB P1.0 ;每隔1000ms, 置一
DJNZ R3, T0_END
MOV R3, #60
SETB P1.1 ;每隔60s, 置一、清零
CLR P1.1
T0_END:
RETI
追问f0是PSW.5,用户自定义标志,在这里,有什么特殊用途吗?
追答F0,是自己随意使用的标志位。
我每隔 50ms,令其取反一次。
那么,它就是每隔 100ms,出现一次1。
JNB F0, T0_END,就是:为零转移,什么也不做。
CLR P1.0 ;就是,每隔100ms, 清零
……
追问你这种占空比设置方式很独特,很新颖,很简单。真好,