单片机,输出方波程序,我这样写有没有什么错误,谢谢了

如题所述

供参考:

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, 清零

……

追问

你这种占空比设置方式很独特,很新颖,很简单。真好,

温馨提示:答案为网友推荐,仅供参考