题目为用PWM波输出一个呼吸灯
PWM波占空比先逐渐由0%增加至100%,且每10个周期占空比增加1/255,该10个周期内占空比保持不变,即第10n~(10n+9)个周期,占空比为n/255,然后再以此规律变暗,现我自己写的代码如下:
ORG 0
START:
MOV R0,#0H //控制亮度调节
MOV R3,#0H
MOV R1,#0FFH //控制亮度调节
MOV R4,#0FFH
MOV R2,#10
LOOP11: //变亮过程
MOV A,R1 //低电平
MOV R4,A
LOOP12:
CLR P2.1
DJNZ R4,LOOP12
LOOP21:
MOV A,R0
MOV R3,A
LOOP22:
SETB P2.1 //高电平
DJNZ R3,LOOP22
DJNZ R2,LOOP11
MOV R2,#10
DEC R1 //变为减1
INC R0 //变为加1
CJNE R1,#0H,LOOP11
INC R1 //衔接由亮到暗过程
DEC R0
LOOP31: //变暗过程
MOV A,R1 //低电平 R1为0
MOV R4,A
LOOP32:
CLR P2.1
DJNZ R4,LOOP32
LOOP41:
MOV A,R0
MOV R3,A
LOOP42:
SETB P2.1
DJNZ R3,LOOP42
DJNZ R2,LOOP31
MOV R2,#10
INC R1
DEC R0
CJNE R1,#0FFH,LOOP31
JMP START
END
用以上代码实现呼吸灯的时候发现灯在变暗的时候会闪烁一下,请问这是为什么,代码中有什么问题吗?
你的呼吸灯一个周期的时间是多长?