📄 ledhong.asm
字号:
org 0000h
jmp 40h
org 40h
start:
shu1Fliu:
mov p2,#0 ;清显示p2为位控制
;mov r2,#8 ;数码管显示的循环次数
mov dptr,#table ;dptr存放字形表的首地址
mov r2,#0 ;R2存放字形表的偏移量
mov 20h,r2
rot1:mov r0,20h ;R0存放当前字形表的偏移量
mov r1,#01h ;R1存放LED位选择代码
disp1:
mov a,r0
movc a,@a+dptr ;查字形码表table
mov p0,a ;将字形码由p0口输出
mov a,r1
mov p2,a ;选择哪个LED有显示,即输出位选码
;acall delay ;延时
inc r0 ;增1为了指向下一个字形码
rl a ;移位,指向下一个该显示的LED
mov r1,a
cjne r1,#01h,disp1
inc r2
cjne r2,#07h,rot1 ;为使第1个显示器只显示到8
jmp $
shu1liu: ;数码1的在显示器流动
mov p2,#0 ;清显示p2为位控制
mov r2,#3 ;数码管显示的循环次数
rot:mov r0,#0f9h ;R0存放"1"的字形码
mov r1,#01h ;R1存放LED位选择代码
disp:
mov p0,r0 ;将字形码由p0口输出
mov a,r1
mov p2,a ;选择哪个LED有显示,即输出位选码
acall delay ;延时
rl a ;移位,指向下一个该显示的LED
mov r1,a
cjne r1,#01h,disp
djnz r2,rot
ret
delay:mov r7,#100 ;R7存放计数循环值
delay10ms: ;延时10ms
mov tmod,#10h ;T1工作在定时方式1
mov th1,#0d8h
mov tl1,#0f0h
setb tr1 ;启动T1工作
djnz r7,delay10ms
ret
table:db 0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h,86h,84h;1~F字形码
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -