51汇编程序之点亮全部led

ORG 00H    ;程序的开始地址
LJMP START ;跳到程序的起始位置
ORG 30H    ;主要是为了跳过堆栈段
 
START:     ;只是一个标号
MOV A,#00H ;数据的传送
mov 90H,#0B
mov 91H,#1B
mov 92H,#1B
mov 93H,#1B
mov 94H,#0B


mov 95H,#0
mov 96H,#0
mov 97H,#0

LOOP:

          mov P0,A
       
         LCALL DELAY;调用延时子程序
        CPL A      ;取反
        JMP LOOP
;============================延时子程序
DELAY:
            MOV R7,#5
       LOOP3:
          MOV R5,#0
      LOOP2:
         MOV R6,#0
     LOOP1:
        DJNZ R6,LOOP1
        DJNZ R5,LOOP2
        DJNZ R7,LOOP3
RET  ;子程序返回指令
;===================================
END

 

本来想这段程序应该会是所有的led灯亮灭交替,但是实际上市点阵上最上面一排进行亮灭交替

当我把代码改为:

ORG 00H    ;程序的开始地址
LJMP START ;跳到程序的起始位置
ORG 30H    ;主要是为了跳过堆栈段
 
START:     ;只是一个标号

mov P1=0X0EH
LOOP:

mov P0,A
           //NOP;空操作
LCALL DELAY;调用延时子程序
CPL A      ;取反
JMP LOOP
;============================延时子程序
DELAY:
MOV R7,#5
LOOP3:
MOV R5,#0
LOOP2:
MOV R6,#0
LOOP1:
DJNZ R6,LOOP1
DJNZ R5,LOOP2
DJNZ R7,LOOP3
RET  ;子程序返回指令
;===================================
END

 

此时所有led亮灭交替,第二段程序中的P1=0X0EH和第一段程序红色文字应该是等价的,问什么情况不一样

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值