📄 lcdqd.asm
字号:
CODE SEGMENT
ASSUME CS:CODE
PA EQU 0FF28H
PCTL EQU 0FF2BH
RSN EQU 00H ;PC0
RS EQU 01H
RWN EQU 02H ;PC1
RW EQU 03H
EN EQU 04H ;PC2
E EQU 05H
CS1N EQU 08H ;PC4
CS1 EQU 09H
CS2N EQU 0Ch ;PC6
CS2 EQU 0Dh
ORG 22E0h ;2FE0H
JMP START
YR DB ?
ZR DB ?
PAG DB ?
Y16 DB ?
pag7 db ?
FL DB ?
START: MOV DX,PCTL
MOV AL,80H
OUT DX,AL
MOV FL,00H
MOV CX,0003H
CALL DELAYXMS
MOV DX,PCTL
MOV AL,EN
OUT DX,AL
MOV AL,RS
OUT DX,AL
MOV AL,CS1
OUT DX,AL
MOV AL,CS2N
OUT DX,AL
MOV AL,RSN
OUT DX,AL
MOV DX,PA
MOV AL,3FH ;WR ON
OUT DX,AL
CALL WRITE
MOV CX,0001H
CALL DELAYXMS
MOV DX,PCTL
MOV AL,CS2
OUT DX,AL
MOV AL,CS1N
OUT DX,AL
MOV AL,RSN
OUT DX,AL
MOV DX,PA
MOV AL,3FH
OUT DX,AL
CALL WRITE
MAIN: ;MOV CX,000FH
MOV BX,OFFSET TAB5
CALL ZXL ;DISP 1-SCREEN
;MOV CX,000aH
;CALL DELAYXMS
;MOV BX,OFFSET TAB6
;CALL ZXL
;MOV CX,000FH
;CALL DELAYXMS
JMP $;MAIN
ZXL: MOV DX,PCTL ;DISP 1-SCREEN
MOV AL,CS2N
OUT DX,AL
MOV AL,CS1 ;DISP L-SCREEN
OUT DX,AL
CALL XPAGE ;SET X,Y,PAG
CALL COM ;DISP
MOV DX,PCTL
MOV AL,CS1N
OUT DX,AL
MOV AL,CS2 ;DISP R-SCREEN
OUT DX,AL
CALL XPAGE ;SET X,Y,PAG
CALL COM ;DISP
RET
XPAGE: MOV ZR,0c0H ;SET Z,Y,PAG
MOV YR,40H
MOV PAG,0B8H
mov pag7,08h
MOV DX,PCTL
MOV AL,EN
OUT DX,AL
MOV AL,RSN ;wr instruction
OUT DX,AL
MOV DX,PA
MOV AL,ZR ;set z=0
OUT DX,AL
CALL WRITE
MOV DX,PA
MOV AL,YR ;set y
OUT DX,AL
CALL WRITE
MOV DX,PA
MOV AL,PAG ;SET PAG
OUT DX,AL
CALL WRITE
RET
COM: MOV Y16,10H
MOV CX,0040H
MOV DX,PCTL
MOV AL,RS
OUT DX,AL
J44: push bx
J4: MOV AL,CS:[BX]
MOV DX,PA
OUT DX,AL
push cx
CALL WRITE
POP CX
inc bx ;!!!!
DEC Y16
CMP Y16,0000H
JNZ J42
MOV Y16,10H
ADD BX,0010H
J42: LOOP J4
NOT FL
CMP FL,00H
JZ J45
pop bx
add bx,0010h
J46: INC PAG
dec pag7
cmp pag7,00H
jz j43
MOV AL,RSN
MOV DX,PCTL
OUT DX,AL
MOV DX,PA
MOV AL,YR ;set y
OUT DX,AL
CALL WRITE
MOV DX,PA
MOV AL,PAG ;SET PAG
OUT DX,AL
CALL WRITE
JMP COM
J43: RET
J45: pop bx
add bx,0070h
JMP J46
;----------------------
WRITE: MOV DX,PCTL
MOV AL,RWN
OUT DX,AL
MOV AL,EN
OUT DX,AL
MOV AL,E
OUT DX,AL
CALL DELAY2MS
MOV AL,EN
OUT DX,AL
RET
DELAY2MS:
MOV CX,78H
LOOP $
RET
DELAYXMS:
PUSH CX
MOV CX,0040H
DELY2:
PUSH CX
MOV CX,3E8H
LOOP $
POP CX
LOOP DELY2
POP CX
LOOP DELAYXMS
RET
TAB5: DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
;-- 文字: 欢 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 14H,24H,44H,84H,64H,1CH,20H,18H,0FH,0E8H,08H,08H,28H,18H,08H,00H
DB 20H,10H,4CH,43H,43H,2CH,20H,10H,0CH,03H,06H,18H,30H,60H,20H,00H
;-- 文字: 迎 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 40H,41H,0CEH,04H,00H,0FCH,04H,02H,02H,0FCH,04H,04H,04H,0FCH,00H,00H
DB 40H,20H,1FH,20H,40H,47H,42H,41H,40H,5FH,40H,42H,44H,43H,40H,00H
;-- 文字: 启 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,00H,00H,0F8H,48H,48H,48H,49H,4EH,4AH,48H,48H,48H,78H,00H,00H
DB 40H,20H,18H,07H,00H,7EH,22H,22H,22H,22H,22H,22H,22H,7EH,00H,00H
;-- 文字: 东 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,04H,04H,0C4H,0B4H,8CH,87H,84H,0F4H,84H,84H,84H,84H,04H,00H,00H
DB 00H,00H,20H,18H,0EH,04H,20H,40H,0FFH,00H,02H,04H,18H,30H,00H,00H
;-- 文字: 计 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 20H,21H,2EH,0E4H,00H,00H,20H,20H,20H,20H,0FFH,20H,20H,20H,20H,00H
DB 00H,00H,00H,7FH,20H,10H,08H,00H,00H,00H,0FFH,00H,00H,00H,00H,00H
;-- 文字: 算 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 08H,07H,0FAH,0AAH,0AEH,0AAH,0AAH,0A8H,0ACH,0ABH,0AAH,0FEH,0AH,02H,02H,00H
DB 08H,08H,8BH,6AH,1EH,0AH,0AH,0AH,0AH,0FEH,0AH,0BH,08H,08H,08H,00H
;-- 文字: 产 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,04H,0E4H,44H,4CH,74H,54H,45H,46H,64H,54H,4CH,44H,64H,44H,00H
DB 40H,30H,0FH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
;-- 文字: 的 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,0F8H,8CH,8BH,88H,0F8H,40H,30H,8FH,08H,08H,08H,08H,0F8H,00H,00H
DB 00H,7FH,10H,10H,10H,3FH,00H,00H,00H,03H,26H,40H,20H,1FH,00H,00H
;-- 文字: D --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 08H,0F8H,08H,08H,08H,10H,0E0H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 20H,3FH,20H,20H,20H,10H,0FH,00H,00H,00H,00H,00H,00H,00H,00H,00H
;-- 文字: I --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,08H,08H,0F8H,08H,08H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,20H,20H,3FH,20H,20H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
;-- 文字: 实 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,10H,0CH,04H,4CH,0B4H,94H,05H,0F6H,04H,04H,04H,14H,0CH,04H,00H
DB 00H,82H,82H,42H,42H,23H,12H,0AH,07H,0AH,12H,0E2H,42H,02H,02H,00H
;-- 文字: 验 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 02H,0FAH,82H,82H,0FEH,80H,40H,60H,58H,46H,48H,50H,20H,20H,20H,00H
DB 08H,08H,04H,24H,40H,3FH,22H,2CH,21H,2EH,20H,30H,2CH,23H,20H,00H
;-- 文字: 教 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 10H,14H,94H,0D4H,0BFH,94H,9CH,14H,50H,0F8H,0FH,08H,88H,78H,08H,00H
DB 09H,09H,48H,88H,7EH,05H,44H,44H,20H,20H,13H,0CH,33H,0C0H,40H,00H
;-- 文字: 学 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 40H,30H,10H,12H,5CH,54H,50H,51H,5EH,0D4H,50H,18H,57H,32H,10H,00H
DB 00H,02H,02H,02H,02H,02H,42H,82H,7FH,02H,02H,02H,02H,02H,02H,00H
;-- 文字: 使 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 40H,20H,0F0H,1CH,07H,0F2H,94H,94H,94H,0FFH,94H,94H,94H,0F4H,04H,00H
DB 00H,00H,7FH,00H,40H,41H,22H,14H,0CH,13H,10H,30H,20H,61H,20H,00H
;-- 文字: 用 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,00H,00H,0FEH,22H,22H,22H,22H,0FEH,22H,22H,22H,22H,0FEH,00H,00H
DB 80H,40H,30H,0FH,02H,02H,02H,02H,0FFH,02H,02H,42H,82H,7FH,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
;-- 文字: 机 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 08H,08H,0C8H,0FFH,48H,88H,08H,00H,0FEH,02H,02H,02H,0FEH,00H,00H,00H
DB 04H,03H,00H,0FFH,00H,41H,30H,0CH,03H,00H,00H,00H,3FH,40H,78H,00H
;-- 文字: 总 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,00H,00H,0F8H,89H,8EH,88H,88H,88H,8CH,8BH,0F8H,00H,00H,00H,00H
DB 00H,20H,38H,00H,3CH,40H,40H,42H,4CH,40H,40H,70H,04H,18H,30H,00H
;-- 文字: 厂 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,00H,0FEH,02H,02H,02H,02H,02H,02H,02H,02H,02H,02H,02H,02H,00H
DB 40H,30H,0FH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
;-- 文字: 生 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,80H,60H,1EH,10H,10H,10H,10H,0FFH,12H,10H,10H,98H,10H,00H,00H
DB 01H,40H,40H,41H,41H,41H,41H,41H,7FH,41H,41H,41H,41H,61H,40H,00H
;-- 文字: C --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 0C0H,30H,08H,08H,08H,08H,38H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 07H,18H,20H,20H,20H,10H,08H,00H,00H,00H,00H,00H,00H,00H,00H,00H
;-- 文字: E --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 08H,0F8H,88H,88H,0E8H,08H,10H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 20H,3FH,20H,20H,23H,20H,18H,00H,00H,00H,00H,00H,00H,00H,00H,00H
;-- 文字: 系 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,00H,02H,22H,0B2H,0AAH,66H,62H,22H,11H,4DH,81H,01H,01H,00H,00H
DB 00H,40H,21H,13H,09H,05H,41H,81H,7FH,01H,05H,09H,13H,62H,00H,00H
;-- 文字: 列 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 02H,82H,42H,0BAH,16H,12H,92H,7AH,12H,00H,0F8H,00H,00H,0FFH,00H,00H
DB 41H,40H,20H,10H,09H,06H,01H,00H,00H,00H,07H,20H,40H,3FH,00H,00H
;-- 文字: 仪 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 40H,20H,0F0H,0CH,03H,00H,38H,0C0H,01H,0EH,04H,0E0H,1CH,00H,00H,00H
DB 00H,00H,0FFH,00H,40H,40H,20H,10H,0BH,04H,0BH,10H,20H,60H,20H,00H
;-- 文字: 器 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 40H,40H,4FH,49H,49H,0C9H,0CFH,70H,0C0H,0CFH,49H,59H,69H,4FH,00H,00H
DB 02H,02H,7EH,45H,45H,44H,7CH,00H,7CH,44H,45H,45H,7EH,06H,02H,00H
;-- 文字: ! --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,00H,00H,0F0H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,5FH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
;-- 文字: ! --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 00H,00H,00H,0F0H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H,00H,5FH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -