📄 ledcb.asm
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -