我这个程序为何实现不了,51单片机流水灯,从左移到右,又从右移到左。单个亮,求大神

2024-12-25 17:45:45
推荐回答(1个)
回答1:

LOOP:MOV P1,A
     RL A
     ACALL DELAY
     DJNZ RO,LOOP;【每次执行这个djnz指令,R0都会减一,当r0==0时才会执行 RR A指令,】
     RR A
     ACALL DELAY
     SJMP LOOP;【这边跳转到loop时,R0的值是为0的】

 可以这样修改:

MAIN:
    MOV A,#11111110B
LOOP:
    MOV R0,#7
LEFTMOVE:
     MOV P1,A
     RL A
     ACALL DELAY
     DJNZ R0,LEFTMOVE;【R0等于0后,开始进行右移】
    MOV R0,#7
RIGHTMOVE:
    MOV P1,A    
     RR A
     ACALL DELAY
   DJNZ R0,RIGHTMOVE;【R0等于0后,开始进行左移】
   AJMP LOOP