ledcb.asm

来自「学习单片机一个简单程序和硬件的开发」· 汇编 代码 · 共 28 行

ASM
28
字号
	  ORG 0000H
      AJMP MAIN
      ORG 0030H
MAIN:
      MOV R2,40H         ;给压缩BCD码个数寄存器R2赋初值
      MOV R1,#50H        ;给取BCD码地址指针赋初值
      MOV R0,#60H        ;给存储LED码地址指针赋初值
START:
      MOV A,@R1          ;取BCD码
      MOV R3,A           ;将取出的BCD码暂存于R3中
      ANL A,#0F0H        ;从压缩BCD码中分离出高位BCD码
      SWAP A             ;将高位BCD码交换到低4位
      MOV DPTR,#TAB      ;将LED码数据表的首地址送入DPTR
      MOVC A,@A+DPTR     ;查表取得高位BCD码对应的LED码
      MOV @R0,A          ;将取得的LED码存入目的地址中
      MOV A,R3           ;将暂存于R3的压缩BCD码送入A中
      ANL A,#0FH         ;从压缩BCD码中分离出低位BCD码
      MOVC A,@A+DPTR     ;查表取得低位BCD码对应的LED码
      INC R0             ;目的地址加1,上调一个存储单元
      MOV @R0,A          ;将取得的LED码存入目的地址中
      INC R1             ;源地址加1,上调一个存储单元
      INC R0             ;目的地址加1,上调一个存储单元
      DJNZ R2,START      ;判断压缩BCD数据转换完了没有,若没有转换完程序转START处
      SJMP $             ;程序结束
TAB:  DB  3FH,06H,5BH,4FH,66H   ;LED码数据表
      DB  6DH,7DH,07H,7FH,6FH
      END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?