51单片机LED点阵显示(16*16)源代码
;预定义
SER BIT P1.4
SCLR BIT P1.5
SRCLK BIT P1.6
RCK BIT P1.7
;主程序
org 0000h
ljmp start
org 0100h
start: mov dptr,#tab
mov r2,#05h
mov r3,dpl
mov r4,dph
loop: mov dpl,r3
mov dph,r4
movc a,@a+dptr
call disp1
djnz r2,loop
mov r2,#05h
mov dpl,r3
mov dph,r4
inc dptr
inc dptr
mov r3,dpl
mov r4,dph
ljmp loop
;列扫描
disp1: mov r1,#00h
disp2: clr sclr
setb sclr
mov a,#00h
movc a,@a+dptr
cjne a,#0ffh,disp3
inc dptr
clr a
movc a,@a+dptr
cjne a,#0ffh,disp4
ljmp start
disp4: mov a,#0ffh
dec dpl
disp3: call send1
mov a,#00h
inc dptr
movc a,@a+dptr
call send1
clr rck
setb rck
mov p1,r1
call delay
mov r1,p1
inc r1
mov a,r1
anl a,#0fh
cjne a,#00h,disp5
ret
disp5: inc dptr
ljmp disp2
;行扫描
send1: clr rck
clr c
mov r5,#08h
send2: rrc a
mov ser,c
clr srclk
setb srclk
djnz r5,send2
ret
;延时
delay: mov r7,#81h
del1: mov r6,00fh
djnz r6,$
djnz r7,del1
ret
tab: db 004H,028H,008H,024H,032H,022H,0C2H,021H
db 0C2H,026H,034H,038H,004H,004H,008H,018H
db 030H,0F0H,0C0H,017H,060H,010H,018H,010H
db 00CH,014H,006H,018H,004H,010H,000H,000H
db 002H,002H,004H,082H,0F8H,073H,004H,020H
db 002H,000H,0E2H,03FH,042H,020H,082H,040H
db 002H,040H,0FAH,03FH,002H,020H,042H,020H
db 022H,020H,0C2H,03FH,002H,000H,000H,000H
db 000H,001H,004H,002H,01CH,00CH,0C0H,03FH
db 01CH,0C0H,002H,009H,002H,016H,092H,060H
db 04AH,020H,082H,02FH,002H,020H,00EH,024H
db 000H,022H,090H,031H,00CH,020H,000H,000H
db 000H,002H,000H,004H,0FEH,00FH,000H,038H
db 002H,0E0H,082H,04FH,044H,029H,028H,029H
db 030H,029H,0C8H,0FFH,008H,029H,00CH,029H
db 004H,029H,086H,02FH,004H,020H,000H,000H
db 001H,000H,002H,000H,00CH,000H,0F0H,07FH
db 040H,044H,040H,044H,040H,044H,040H,044H
db 0FFH,07FH,040H,044H,040H,044H,042H,044H
db 041H,044H,0FEH,07FH,000H,000H,000H,000H
db 0ffh,0ffh
end
浙公网安备 33010602011771号