[求助] 请帮忙看一下这个灯花样闪烁汇编程序哪里出了问题

Haibara   2011-7-29 16:31 楼主
我不计较精确定时问题,关心烧录后,只能进行快闪无法跳转到慢闪问题,好像是无法从子程序返回。
LED        EQU        P1.6;灯,快闪2秒,慢闪2秒,点亮2秒,熄灭2秒

ORG 0000H
AJMP  START
ORG 0030H

START:SETB   LED
MAIN:
     LCALL SLOW
     LCALL FAST
     LCALL ON
     LCALL OFF
     AJMP  MAIN
;快闪2s
FAST: MOV  R0, #10
      LCALL  DELAY1
      CPL    LED
      LCALL  DELAY1
      NOP
      DJNZ  R0,FAST
      RET
;慢闪2s
SLOW: MOV  R1, #2
      LCALL  DELAY1
      LCALL  DELAY1
      LCALL  DELAY1
      LCALL  DELAY1
      LCALL  DELAY1
      CPL    LED
      LCALL  DELAY1
      LCALL  DELAY1
      LCALL  DELAY1
      LCALL  DELAY1
      LCALL  DELAY1
      NOP
      DJNZ  R1,SLOW
      RET
;点亮2s
ON:   SETB LED
      LCALL DELAY2
      RET
;熄灭2s
OFF:  CLR  LED
      LCALL DELAY2
      RET


DELAY1:MOV   R3,#250        ;约0.1S
DELAYA:MOV   R2,#100
       DJNZ  R2,$        ;约4μs
       DJNZ  R3,DELAYA
       RET
DELAY2:MOV   R4,#20         ;约2s
       LCALL DELAY1
       DJNZ  R4,DELAY2
       RET
      END

回复评论 (2)

DELAY2:MOV R4,#20 ;约2s
LCALL DELAY1
DJNZ R4,DELAY2
RET
这个延时有问题,改成:

DELAY2:MOV R4,#20 ;约2s
D2:LCALL DELAY1
DJNZ R4,D2
RET

点赞  2011-7-29 19:13

回复 沙发 zhangdaoyu 的帖子

原来如此呢,果然是粗心大意了,谢谢喽,看来自己必须要继续进步了
点赞  2011-8-1 10:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复