51单片机用汇编实现8*8led点阵显示0-9
时间: 2023-07-30 11:06:32 浏览: 171
51单片机8乘8点阵LED显示原理及程序
以下是51单片机用汇编实现8*8led点阵显示0-9的代码:
```assembly
org 0h
sjmp start
db 3ch, 99h, 5ch, 5eh, 66h, 6dh, 7dh, 27h, 7fh, 6fh
start:
mov a, #0
mov r2, #0
loop:
mov r1, #10
mov r0, #0
div ab
mov dpl, #0
movc a, @a+dptr
mov r3, a
mov r4, #0
inner_loop:
mov a, r4
add a, #8
mov r5, a
mov a, r3
mov dptr, #0
add a, dpl
movc a, @a+dptr
mov r6, a
mov a, r6
swap a
mov dpl, a
mov a, r5
mov r7, a
mov a, r2
mov r0, a
clr c
rrc a
mov r2, a
jnc no_shift
mov a, r6
clr c
rlc a
mov r6, a
no_shift:
mov dpl, r6
mov a, r7
acall send_data
djnz r4, inner_loop
djnz r1, loop
sjmp $
send_data:
mov p0, dpl
mov p2, #0
setb p2.7
setb p2.6
clr p2.7
clr p2.6
ret
```
其中,db 3ch, 99h, 5ch, 5eh, 66h, 6dh, 7dh, 27h, 7fh, 6fh 表示0-9在8*8led点阵中的编码。具体实现过程为将要显示的数字除以10,得到商和余数,然后通过余数获取编码,逐行输出到点阵上。
阅读全文