📄 asm.txt
字号:
ORG 00H
START:
MOV A,#00
MOV P0,A
CALL DIS
CALL DELAY
JMP START
DIS: MOV R2,#25
MOV 20H,#00
D4: MOV R4,#00H
MOV R1,#0F5H
D5: MOV R6,#08
MOV R0,20H
D2: CALL READ1
INC R4
DJNZ R6,D2
MOV R4,#00H
DJNZ R1,D5
MOV 20H,R0
DJNZ R2,D4
RET
READ1: MOV A,R4
MOV P2,A
MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
INC R0
MOV R3,#100
DJNZ R3,$
MOV A,#00H
MOV P0,A
RET
DELAY: MOV R3,#200
D7: MOV R5,#248
DJNZ R5,$
DJNZ R3,D7
RET
TABLE:
DB 00H,00H,00H,00H,00H,00H,00H,81H
DB 00H,00H,00H,00H,00H,00H,81H,0FFH
DB 00H,00H,00H,00H,00H,81H,0FFH,81H
DB 00H,00H,00H,00H,81H,0FFH,81H,00H
DB 00H,00H,00H,81H,0FFH,81H,00H,00H
DB 00H,00H,81H,0FFH,81H,00H,00H,00H
DB 00H,81H,0FFH,81H,00H,00H,00H,38H
DB 81H,0FFH,81H,00H,00H,00H,38H,7CH
DB 0FFH,81H,00H,00H,00H,38H,7CH,7EH
DB 81H,00H,00H,00H,38H,7CH,7EH,3FH
DB 00H,00H,00H,38H,7CH,7EH,3FH,7EH
DB 00H,00H,38H,7CH,7EH,3FH,7EH,7CH
DB 00H,38H,7CH,7EH,3FH,7EH,7CH,38H
DB 38H,7CH,7EH,3FH,7EH,7CH,38H,00H
DB 7CH,7EH,3FH,7EH,7CH,38H,00H,00H
DB 7EH,3FH,7EH,7CH,38H,00H,00H,00H
DB 3FH,7EH,7CH,38H,00H,00H,00H,0FCH
DB 7EH,7CH,38H,00H,00H,00H,0FCH,02H
DB 7CH,38H,00H,00H,00H,0FCH,02H,01H
DB 38H,00H,00H,00H,0FCH,02H,01H,01H
DB 00H,00H,00H,0FCH,02H,01H,01H,02H
DB 00H,00H,0FCH,02H,01H,01H,02H,0FCH
DB 00H,0FCH,02H,01H,01H,02H,0FCH,00H
DB 0FCH,02H,01H,01H,02H,0FCH,00H,00H
DB 02H,01H,01H,02H,0FCH,00H,00H,00H
end
ORG 000H
JMP MIAN
ORG 030H
MIAN:MOV P3,#00 ;关闭端口
MOV P1,#0FFH
MOV P0,#00
MOV P2,#00
CALL DELAY ;延时1ms
MOV R5,#2 ;移动列的数量(列数乘2)
MOV A,#151 ;显示几个字
MOV B,#32 ;一个字=32个码
MUL AB
MOV 22H,A ;存放1~8个字的数量
MOV 23H,B ;存放8的倍数个字的数量
;如50个字:50×32=1600=0640H,则DPH处为06H=6,DPL处为40H=64
;简单算法:50÷8=6余2,6为DPH处数,余的2×32=64为DPL数
MOV DPTR,#TABLE1 ;赋查表初址
MOV R0,DPL ;保存DPTR初值,R0、R1记录取码进度
MOV R1,DPH
MOV 20H,DPL ;20H、21H保持DPTR初值不变
MOV 21H,DPH
LOOP: MOV R7,#5 ;每屏停留时间
L1: MOV R6,#16 ;每屏16个码
MOV R4,#00 ;扫描指针清零
MOV DPL,R0 ;取码指针存入DPL
MOV DPH,R1
L16: MOV A,R4 ;扫描指针存入A
MOV P1,A ;扫描输出
INC R4 ;扫描指针加1
CLR A ;A清零
MOVC A,@A+DPTR ;查表送A
MOV P0,A ;送P0口显示
INC DPTR ;取码指针加1
CLR A ;A清零
MOVC A,@A+DPTR ;查表送A
MOV P2,A ;送P2口显示
INC DPTR ;取码指针加1
CALL DELAY ;扫描延时1ms
MOV P0,#00 ;清除屏幕
MOV P2,#00
DJNZ R6,L16 ;1屏是否完成?
DJNZ R7,L1 ;每屏停留时间是否到了?
; MOV R0,DPL ;如字不需移动,用该指令
; MOV R1,DPH
MOV A,R0 ;如字需移动,用该指令
ADD A,R5 ;如大于256,C=1
MOV R0,A
JNC DP
INC R1
DP: MOV A,20H ;DPL初值
ADD A,22H ;如大于256,C=1。因DPL初值在90H以上,显示4个字后DPH将加1,导致判断失误
MOV A,DPH
SUBB A,21H ;已显示字的数量(乘8)
CJNE A,23H,LOOP ;DPH中的字是否完成?
CLR C
MOV A,DPL
SUBB A,20H ;已显示字的数量
CJNE A,22H,LOOP ;DPL中的字是否完成?
JMP MIAN
DELAY:MOV R2,#2 ;延时1ms
D1 :MOV R3,#248
DJNZ R3,$
DJNZ R2,D1
RET
TABLE1:
;至拾字时为100个字,共150个字,用于测试。
;(a3b1H)(1)(8001)
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
DB 00H, 00H, 10H, 02H, 20H, 02H, 7fH,0feH
DB 00H, 02H, 00H, 02H, 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
... ...
END
ORG 0000H;
LJMP MAIN;
ORG 0030H;
MAIN:
MOV R1,#00H;选择数据指针入口标志
MOV R2,#10H;列选线
MOV R5,#00H;寻字节显示
MOV R3,#00H;R3用于记录某一静态状态重复扫描次数,若到了100,则向右移动一位格。
MOV R4,#00H;R4用于记录移动的格数,这里R4暂时只能在0-255之间变化。
MOV DPTR,#MING;
DISPLAY:DEC R2;
MOV P1,R2;列选线
CJNE R2,#000H,LOOP1;
MOV R2,#010H;
;MOV R5,#00H;放在这里文字会有重影
LOOP1:MOV A,R5;
ADD A,R4;************************************这样最多只能显示8个文字,因为A只有8位。
ADD A,R4;************************************
MOVC A,@A+DPTR;
MOV P0,A;
INC R5;
MOV A,R5;
ADD A,R4;************************************
ADD A,R4;************************************
MOVC A,@A+DPTR;
MOV P2,A;
INC R5;
CJNE R2,#010H,LOOP2;
MOV R5,#00H;
LOOP2:INC R3;**************************************
CJNE R3,#0005H,LOOP0;调节R3的最大值可以改变文字滚动速度。
INC R4;
CJNE R4,#070H,LOOP0;这里的#10H是代表存的文字个数,两个文字的话就是#20H,实际上就是一个字移动16格。
MOV R4,#00H;
INC R1;
CJNE R1,#01H,LOOP5;
MOV DPTR,#MING;
LJMP LOOP0;
LOOP5:CJNE R1,#02H,LOOP6;
MOV DPTR,#Q;
LJMP LOOP0;
LOOP6:CJNE R1,#03H,LOOP0;
MOV DPTR,#Q2;
MOV R1,#00H;
LOOP0:LCALL DELAY;
LJMP DISPLAY;
DELAY:MOV R6,#090H;调节R6的值也可以改变文字滚动速度
DJNZ R6,$;
RET;
MING:
;空格
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
;*****************************************************************
;欢 CBBB6
DB 028H,004H,024H,008H,022H,032H,021H,0C2H
DB 026H,0C2H,038H,034H,004H,004H,018H,008H
DB 0F0H,030H,017H,0C0H,010H,060H,010H,018H
DB 014H,00CH,018H,006H,010H,004H,000H,000H
;迎 CD3AD
DB 002H,002H,082H,004H,073H,0F8H,020H,004H
DB 000H,002H,03FH,0E2H,020H,042H,040H,082H
DB 040H,002H,03FH,0FAH,020H,002H,020H,042H
DB 020H,022H,03FH,0C2H,000H,002H,000H,000H
;乘 CB3CB
DB 010H,044H,014H,044H,054H,088H,054H,088H
DB 05FH,0D0H,050H,030H,050H,060H,07FH,0FEH
DB 050H,040H,090H,020H,09FH,0B0H,092H,098H
DB 094H,08CH,034H,088H,011H,080H,000H,000H
;坐 CD7F8
DB 000H,082H,001H,002H,006H,022H,038H,022H
DB 004H,022H,003H,022H,000H,022H,0FFH,0FEH
DB 000H,0A2H,001H,022H,002H,022H,03CH,022H
DB 002H,022H,001H,002H,000H,002H,000H,000H
;本 CB1BE
DB 010H,010H,010H,010H,010H,020H,010H,040H
DB 010H,0A0H,013H,020H,01CH,020H,0FFH,0FEH
DB 018H,020H,016H,020H,011H,020H,010H,0C0H
DB 010H,060H,010H,030H,010H,020H,000H,000H
;车 CB3B5
DB 000H,020H,020H,020H,021H,020H,023H,020H
DB 025H,020H,039H,020H,0E1H,020H,021H,020H
DB 02FH,0FFH,021H,020H,021H,020H,021H,020H
DB 021H,020H,021H,020H,000H,020H,000H,000H
;!
DB 000H,000H,000H,000H,01FH,000H,03FH,0ECH
DB 03FH,0ECH,01FH,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
;上面8个字
;下面8个字
Q:
;请 CC7EB
DB 002H,000H,042H,000H,032H,000H,023H,0FEH
DB 000H,004H,044H,008H,055H,0FFH,055H,050H
DB 055H,050H,0FDH,050H,055H,052H,055H,051H
DB 055H,0FEH,044H,000H,004H,000H,000H,000H
;携 CD0AF
DB 008H,020H,008H,022H,008H,041H,0FFH,0FFH
DB 009H,000H,008H,001H,03FH,0A2H,0EAH,0ACH
DB 02AH,0B0H,0AAH,0A0H,07FH,0A0H,02AH,0AAH
DB 02AH,0B9H,02AH,0A9H,020H,08EH,000H,000H
;带 CB4F8
DB 001H,000H,026H,000H,024H,000H,024H,0FCH
DB 0FCH,080H,024H,080H,024H,080H,0FFH,0FFH
DB 024H,080H,024H,088H,024H,084H,0FCH,0F8H
DB 025H,000H,026H,000H,024H,000H,000H,000H
;好 CBAC3
DB 008H,001H,008H,0C2H,00FH,044H,0F8H,028H
DB 008H,030H,00FH,0CEH,001H,004H,041H,000H
DB 041H,002H,041H,001H,04FH,0FEH,051H,000H
DB 061H,000H,041H,000H,001H,000H,000H,000H
;随 CCBE6
DB 07FH,0FFH,044H,020H,04AH,010H,071H,0E2H
DB 042H,004H,033H,0F8H,000H,004H,024H,004H
DB 02FH,0FAH,039H,042H,0E9H,052H,029H,04AH
DB 02FH,0F2H,020H,002H,020H,002H,000H,000H
;身 CC9ED
DB 000H,000H,000H,042H,000H,042H,000H,044H
DB 03FH,0C4H,06AH,048H,0AAH,048H,02AH,050H
DB 02AH,050H,02AH,062H,02AH,061H,03FH,0FEH
DB 000H,0C0H,007H,040H,002H,040H,000H,000H
;物 CCEEF
DB 002H,020H,03CH,020H,008H,040H,0FFH,0FEH
DB 008H,080H,00BH,022H,004H,044H,018H,088H
DB 0F3H,010H,01CH,020H,010H,0C2H,01FH,001H
DB 010H,002H,01FH,0FCH,000H,000H,000H,000H
;品 CC6B7
DB 000H,000H,000H,0FEH,000H,084H,000H,084H
DB 07EH,084H,044H,084H,044H,0FEH,044H,000H
DB 044H,0FEH,044H,084H,044H,084H,07EH,084H
DB 000H,084H,000H,0FEH,000H,000H,000H,000H
Q2:
;空格
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
;欢 CBBB6
DB 028H,004H,024H,008H,022H,032H,021H,0C2H
DB 026H,0C2H,038H,034H,004H,004H,018H,008H
DB 0F0H,030H,017H,0C0H,010H,060H,010H,018H
DB 014H,00CH,018H,006H,010H,004H,000H,000H
;迎 CD3AD
DB 002H,002H,082H,004H,073H,0F8H,020H,004H
DB 000H,002H,03FH,0E2H,020H,042H,040H,082H
DB 040H,002H,03FH,0FAH,020H,002H,020H,042H
DB 020H,022H,03FH,0C2H,000H,002H,000H,000H
;下 CCFC2
DB 000H,000H,040H,000H,040H,000H,040H,000H
DB 040H,000H,040H,000H,040H,000H,07FH,0FEH
DB 044H,000H,046H,000H,043H,080H,041H,000H
DB 040H,000H,0C0H,000H,040H,000H,000H,000H
;次 CB4CE
DB 000H,040H,040H,07AH,038H,0C2H,003H,004H
DB 00CH,004H,032H,008H,00CH,010H,0F0H,020H
DB 010H,0C0H,01FH,080H,010H,060H,010H,010H
DB 014H,00CH,018H,006H,010H,004H,000H,000H
;乘 CB3CB
DB 010H,044H,014H,044H,054H,088H,054H,088H
DB 05FH,0D0H,050H,030H,050H,060H,07FH,0FEH
DB 050H,040H,090H,020H,09FH,0B0H,092H,098H
DB 094H,08CH,034H,088H,011H,080H,000H,000H
;坐 CD7F8
DB 000H,082H,001H,002H,006H,022H,038H,022H
DB 004H,022H,003H,022H,000H,022H,0FFH,0FEH
DB 000H,0A2H,001H,022H,002H,022H,03CH,022H
DB 002H,022H,001H,002H,000H,002H,000H,000H
;
;!
DB 000H,000H,000H,000H,01FH,000H,03FH,0ECH
DB 03FH,0ECH,01FH,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -