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

共6条 1/1 1 跳转至

关于51程序问题

助工
2014-04-21 14:20:54     打赏

  麻烦高手们看看如下程序,为什么最后一个LED亮的久一点     我想不明白

     ORG   0000H

START: 
       MOV   R2,#08H
  MOV   R3,#07H
  MOV   A,#01H
NEXT:
  MOV   P0,A
  ACALL DELAY
  RL    A
  DJNZ  R2,NEXT
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-04-21 17:33:54     打赏
2楼
我再想想,非常感谢啊

助工
2014-04-22 15:24:59     打赏
3楼

你好!大哥,很感激您的解释

我用仿真,看到了现象,发现当A里面是80H(最后的灯亮)后,又经过了RL A 然后A里面就变回01H了

再经过RR A   A变到08H  在给到P0,所以最后的灯又亮了一次,才出现最后的灯亮的时间长些

但是我想不出如何修改这个现象,有什么指令能解决吗?求提示,谢谢!


助工
2014-04-26 19:47:20     打赏
4楼

才刚开始学啊  很多都不懂

谢谢8楼的提示,我再试试看


助工
2014-04-27 09:26:37     打赏
5楼

增加了一次右移  然后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 16:08:56     打赏
6楼
你这样写就更容易理解了,谢谢!

共6条 1/1 1 跳转至

回复

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