📄 16x16.asm
字号:
SCLK_595 EQU P1.2 ;时钟
SDATA_595 EQU P1.1 ;数据
RCK_595 EQU P1.0 ;锁存
H1 BIT 00H
ORG 00H
LJMP START1
ORG 0030H
START1: MOV DPTR,#TAB
START: MOV P0,#0FFH
MOV P2,#0FFH
MOV R1,#0 ;表变址
MOV R2,#8 ;数据移位控制变量
MOV R3,#0 ;行控制数
MOV R4,#0 ;控制字的个数
MOV R5,#0FFH ;一个字显示次数
MOV R6,#0FEH ;行初始值
SETB H1
WRITE: MOV A,R1
MOVC A,@A+DPTR
MOV 2AH,A //2AH送数据
LCALL WR_595 //送一位数据
INC R1
MOV A,R1
MOVC A,@A+DPTR
MOV 2AH,A
LCALL WR_595
LCALL OUT_595 //输出锁存
LCALL OUT_8550 //行输出
MOV P0,#0FFH
MOV P2,#0FFH
INC R1
CJNE R1,#32,WRITE //一屏字幕显示完
MOV R1,#0 ;表变址
MOV R2,#8 ;数据移位控制变量
MOV R3,#0 ;行控制数
DJNZ R5,START
MOV R5,#0FFH
LJMP $
;---------------------------------------------------------------
;行输出子程序
;---------------------------------------------------------------
OUT_8550:
JB H1,P0KSC //H1=1 P0口 H1=0 P2口
P2KSC: MOV A,R6
P2KSC1: INC R3
MOV P2,A
LCALL DELAY
RL A
MOV R6,A
CJNE R3,#8,LOOP
SETB H1
MOV R6,#0FEH
MOV R3,#00H
MOV P2,#0FFH
RET
P0KSC: MOV A,R6 //#0FEH
P0KSC1: INC R3
MOV P0,A
LCALL DELAY
RL A
MOV R6,A
CJNE R3,#8,LOOP
CLR H1
MOV R3,#00H
MOV P0,#0FFH
LOOP: RET
;---------------------------------------------------------------
;输出锁存器输出数据子程序
;---------------------------------------------------------------
OUT_595:
CLR RCK_595
NOP
SETB RCK_595 ;上升沿将数据送到输出锁存器
NOP
CLR RCK_595
RET
;--------------------------------------------------------------
;移位寄存器接收数据子程序
;--------------------------------------------------------------
WR_595:
MOV R2,#08H
MOV A,2AH
cpl a
WR_LOOP:
RLC A
MOV SDATA_595,C
SETB SCLK_595 ;上升沿发生移位
NOP
CLR SCLK_595
NOP
DJNZ R2,WR_LOOP
MOV R2,#8
RET
;--------------------------------------------------------------
;延时子程序
;--------------------------------------------------------------
DELAY:
MOV 43H,#14H ; every LED(2ms) 14H
DL2: MOV 44H,#14H
DL1:
DJNZ 44H,DL1
DJNZ 43H,DL2
RET
DELAY1: MOV 7AH,#255
DLL2: MOV 7BH,#255
DLL1: DJNZ 7BH,DLL1
DJNZ 7AH,DLL2
RET
TAB2:
;大 CB4F3
DB 080H,000H,080H,000H,080H,000H,080H,000H
DB 080H,000H,0FFH,07FH,080H,000H,040H,001H
DB 040H,001H,040H,002H,020H,002H,020H,004H
DB 010H,008H,008H,018H,004H,070H,002H,020H
TAB1:
;家 CBCD2
DB 040H,000H,080H,000H,0FCH,07FH,002H,020H
DB 0FAH,017H,080H,000H,040H,000H,0F0H,004H
DB 04EH,00DH,020H,003H,098H,003H,066H,00DH
DB 018H,071H,006H,021H,0A0H,000H,040H,000H
tab:
;好 CBAC3
DB 008H,000H,088H,03FH,008H,010H,008H,008H
DB 03FH,004H,024H,004H,024H,004H,0E4H,07FH
DB 022H,004H,026H,004H,018H,004H,010H,004H
DB 028H,004H,064H,004H,022H,005H,001H,002H
;! CA3A1
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 008H,000H,008H,000H,008H,000H,008H,000H
DB 008H,000H,008H,000H,008H,000H,008H,000H
DB 008H,000H,000H,000H,008H,000H,000H,000H
; 黑屏
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -