普中C51单片机 汇编语言写呼吸灯问题

题目为用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      //低电平   R10
           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

用以上代码实现呼吸灯的时候发现灯在变暗的时候会闪烁一下,请问这是为什么,代码中有什么问题吗?

你的呼吸灯一个周期的时间是多长?