📄 lcd显示实验.txt
字号:
MASTERI EQU 200H ;左液晶的地址口
MASTERD EQU 202H ;左液晶的数据口
SLAVEI EQU 210H ;右液晶的地址口
SLAVED EQU 212H ;右液晶的数据口
EQU 0AFH ;点亮LCD
LCDOFF EQU 0AEH ;灭LCD
STATICOFF EQU 0A4H
STARTLINE EQU 0C0H ;0~31
STARTCOL EQU 00H ;0~79
STARTPAGE EQU 0B8H ;0~3
READMODIOFF EQU 0EEH
DUTY EQU 0A9H
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START:
PUSH CS
POP DS
NOP
NOP
MOV SI,4000H ;临时存放液晶地址口的变量
MOV DI,4100H ;临时存放液晶数据口的变量
CALL INITLCD ;初始化LCD
CALL CLEARLCD ;清LCD
LEA BX,CCTAB ;置显示常数表起始位置
MOV [SI],MASTERI ;写左液晶
MOV [DI],MASTERD
MOV AH,STARTCOL+29 ;置起始列
MOV CH,STARTPAGE ;置起始页
CALL WRITEHZ ;写“欢”字
MOV AH,STARTCOL+45
MOV CH,STARTPAGE
CALL WRITEHZ ;写“迎”字
MOV [SI],SLAVEI
MOV [DI],SLAVED
MOV AH,STARTCOL
MOV CH,STARTPAGE
CALL WRITEHZ ;写“使”字
MOV [SI],SLAVEI
MOV [DI],SLAVED
MOV AH,STARTCOL+16
MOV CH,STARTPAGE
CALL WRITEHZ ;写“用”字
MOV [SI],MASTERI ;在左液晶写"A"
MOV [DI],MASTERD
MOV AH,STARTCOL
MOV CH,STARTPAGE+2
CALL WRITEA
MOV AH,STARTCOL+8 ;写"E"
MOV CH,STARTPAGE+2
CALL WRITEA
MOV AH,STARTCOL+16 ;写"D"
MOV CH,STARTPAGE+2
CALL WRITEA
MOV AH,STARTCOL+24 ;写"K"
MOV CH,STARTPAGE+2
CALL WRITEA
MOV AH,STARTCOL+32 ;写"_"
MOV CH,STARTPAGE+2
CALL WRITEA
MOV AH,STARTCOL+38 ;写"T"
MOV CH,STARTPAGE+2
CALL WRITEA
MOV AH,STARTCOL+46 ;写"5"
MOV CH,STARTPAGE+2
CALL WRITEA
MOV AH,STARTCOL+54 ;写"9"
MOV CH,STARTPAGE+2
CALL WRITEA
MOV [SI],SLAVEI ;在右液晶上显示
MOV [DI],SLAVED
MOV AH,STARTCOL ;写"8"
MOV CH,STARTPAGE+2
CALL WRITEA
MOV AH,STARTCOL+8 ;写"实"
MOV CH,STARTPAGE+2
CALL WRITEHZ
MOV AH,STARTCOL+24 ;写"验"
MOV CH,STARTPAGE+2
CALL WRITEHZ
MOV AH,STARTCOL+40 ;写"仪"
MOV CH,STARTPAGE+2
CALL WRITEHZ
JMP $
INITLCD PROC NEAR ;初始化LCD子程序
MOV DX,MASTERI
MOV AL,LCDON
OUT DX,AL
MOV AL,STARTLINE
OUT DX,AL
MOV AL,STARTPAGE
OUT DX,AL
MOV DX,SLAVEI
MOV AL,LCDON
OUT DX,AL
MOV AL,STARTLINE
OUT DX,AL
MOV AL,STARTPAGE
OUT DX,AL
RET
INITLCD ENDP
CLEARLCD PROC NEAR ;清零子程序
MOV CH,02H ;分别清除左右液晶
WRITE_M_S:
CALL WRITELCDCMD1
MOV BL,00 ;分0-3页写
WRITEPAGE:
CALL WRITELCDCMD2
MOV BH,00 ;分61列写
WRITELINE:
MOV AL,STARTCOL
CALL WRITELCDDATA
INC BH
CMP BH,61
JLE WRITELINE
INC BL
CMP BL,04
JL WRITEPAGE
DEC CH
CMP CH,0
JNE WRITE_M_S
RET
CLEARLCD ENDP
WRITELCDCMD1 PROC NEAR
CMP CH,01
JNE MASTER1
MOV DX,SLAVEI
CALL AA
JMP EXIT1
MASTER1:
MOV DX,MASTERI
CALL AA
EXIT1: RET
WRITELCDCMD1 ENDP
AA PROC NEAR
MOV AL,STARTPAGE
OUT DX,AL
MOV AL,STARTLINE
OUT DX,AL
RET
AA ENDP
WRITELCDCMD2 PROC NEAR
CMP BL,00
JNE LL1
MOV AL,STARTPAGE
OUT DX,AL
JMP EXIT2
LL1:
CMP BL,01
JNE LL2
MOV AL,0B9H
OUT DX,AL
JMP EXIT2
LL2:
CMP BL,02
JNE LL3
MOV AL,0BAH
OUT DX,AL
JMP EXIT2
LL3:
MOV AL,0BBH
OUT DX,AL
EXIT2:
RET
WRITELCDCMD2 ENDP
WRITELCDDATA PROC NEAR
ADD AL,BH
OUT DX,AL
INC DX
INC DX
MOV AL,00
OUT DX,AL
DEC DX
DEC DX
RET
WRITELCDDATA ENDP
WRITEHZ PROC NEAR ;写16*16点阵汉字子程序
MOV DX,[SI]
MOV AL,AH
OUT DX,AL
MOV AL,ch
OUT DX,AL
MOV CL,16
CALL TEMP
MOV AL,ah
OUT DX,AL
INC CH
MOV AL,CH
OUT DX,AL
MOV CL,16
CALL TEMP
RET
WRITEHZ ENDP
WRITEA PROC NEAR ;写8*16点阵字符子程序
MOV DX,[SI]
MOV AL,AH
OUT DX,AL
MOV AL,ch
OUT DX,AL
MOV CL,8
CALL TEMP
MOV AL,ah
OUT DX,AL
INC CH
MOV AL,CH
OUT DX,AL
MOV CL,8
CALL TEMP
RET
WRITEA ENDP
TEMP PROC NEAR
T_S: MOV AL,0
XLAT
PUSH DX
CALL DISP
POP DX
INC BX
DEC CL
CMP CL,0
JNE T_S
RET
TEMP ENDP
DISP PROC NEAR
MOV DX,[DI]
OUT DX,AL
RET
DISP ENDP
CCTAB:
DB 004H,034H,0C4H,004H,0C4H,03CH,020H,010H,00FH,0E8H,008H,008H,028H,018H,000H,000H;欢
DB 010H,008H,006H,001H,082H,08CH,040H,030H,00CH,003H,00CH,010H,060H,0C0H,040H,000H
DB 040H,042H,044H,0C8H,000H,0FCH,004H,002H,002H,0FCH,004H,004H,004H,0FEH,004H,000H;迎
DB 000H,040H,020H,01FH,020H,047H,042H,041H,040H,07FH,040H,042H,044H,063H,020H,000H
DB 040H,020H,0F0H,01CH,007H,0F2H,094H,094H,094H,0FFH,094H,094H,094H,0F4H,004H,000H;使
DB 000H,000H,07FH,000H,040H,041H,022H,014H,00CH,013H,010H,030H,020H,061H,020H,000H
DB 000H,000H,000H,0FEH,022H,022H,022H,022H,0FEH,022H,022H,022H,022H,0FEH,000H,000H;用
DB 080H,040H,030H,00FH,002H,002H,002H,002H,0FFH,002H,002H,042H,082H,07FH,000H,000H
DB 000H,000H,0C0H,038H,0E0H,000H,000H,000H,020H,03CH,023H,002H,002H,027H,038H,020H;A
DB 008H,0F8H,088H,088H,0E8H,008H,010H,000H,020H,03FH,020H,020H,023H,020H,018H,000H;E
DB 008H,0F8H,008H,008H,008H,010H,0E0H,000H,020H,03FH,020H,020H,020H,010H,00FH,000H;D
DB 008H,0F8H,088H,0C0H,028H,018H,008H,000H,020H,03FH,020H,001H,026H,038H,020H,000H;K
DB 000H,000H,000H,000H,000H,000H,000H,000H,080H,080H,080H,080H,080H,080H,080H,080H;_
DB 018H,008H,008H,0F8H,008H,008H,018H,000H,000H,000H,020H,03FH,020H,000H,000H,000H;T
DB 000H,0F8H,008H,088H,088H,008H,008H,000H,000H,019H,021H,020H,020H,011H,00EH,000H;5
DB 000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,031H,022H,022H,011H,00FH,000H;9
DB 000H,070H,088H,008H,008H,088H,070H,000H,000H,01CH,022H,021H,021H,022H,01CH,000H;8
DB 000H,010H,00CH,004H,04CH,0B4H,094H,005H,0F6H,004H,004H,004H,014H,00CH,004H,000H;实
DB 000H,082H,082H,042H,042H,023H,012H,00AH,007H,00AH,012H,0E2H,042H,002H,002H,000H
DB 002H,0FAH,082H,082H,0FEH,080H,040H,060H,058H,046H,048H,050H,020H,020H,020H,000H;验
DB 008H,008H,004H,024H,040H,03FH,022H,02CH,021H,02EH,020H,030H,02CH,023H,020H,000H
DB 040H,020H,0F0H,00CH,003H,000H,038H,0C0H,001H,00EH,004H,0E0H,01CH,000H,000H,000H;仪
DB 000H,000H,0FFH,000H,040H,040H,020H,010H,00BH,004H,00BH,010H,020H,060H,020H,000H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -