这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 关于51程序问题

共14条 2/2 1 2 跳转至
助工
2014-04-27 09:26:37     打赏
11楼

增加了一次右移  然后R3少减少了一次  现在就一样了

不知道8楼说的清除P0显示,如何操作

 ORG   0000H

START: 
       MOV   R2,#08H
  MOV   R3,#06H
  MOV   A,#01H
NEXT:  MOV   P0,A
  ACALL DELAY
       RL    A
  DJNZ  R2,NEXT
  RR    A
NEXT1:
       RR    A
  MOV   P0,A
  ACALL DELAY
  DJNZ  R3, NEXT1
  AJMP  START
DELAY: MOV   R5,#0FFH
D1:   MOV   R6,#0FFH
D2:    MOV   R7,#02H
D3:   DJNZ  R7,D3
  DJNZ  R6,D2
       DJNZ  R5,D1
  RET   
  END

高工
2014-05-06 07:05:58     打赏
12楼
ORG   0000H
   MOV   A,#01H
START:
 MOV   R2,#07H
  MOV   R3,#07H
NEXT:
  MOV   P0,A
  ACALL DELAY
  RL    A
   DJNZ  R2,NEXT
NEXT1:
  MOV   P0,A
   ACALL DELAY
   RR    A
   DJNZ  R3, NEXT1
   AJMP  START
DELAY: MOV   R5,#0FFH
D1:   MOV   R6,#0FFH
D2:    MOV   R7,#02H
D3:    DJNZ  R7,D3
 DJNZ  R6,D2
 DJNZ  R5,D1
   RET  
   END 

 


高工
2014-05-06 07:27:50     打赏
13楼
当程序进入NEXT时,第一个LED亮,循环第一次后,第二个LED亮,循环第七次后,应该第八个LED亮,这时进入NEXT1,第八个LED亮,循环第一次后,第七个LED亮,循环第七次后,应该第一个LED亮,重新给R2、R3赋值,进入NEXT,第一个LED亮,开始下一个大循环。

助工
2014-05-06 16:08:56     打赏
14楼
你这样写就更容易理解了,谢谢!

共14条 2/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]