📄 lcd_tx.asm
字号:
;实验三、LCD 图形显示实验
;文件名称 LCD_TX.ASM
;显示无线发射的一幅画。
;在第3行显示"WWW.LJD-2008.COM"
NAME LCD_TX
$NOLIST
$INCLUDE(LJD_2008.INC)
$INCLUDE(LCD.INC)
$LIST
;-----------------------------------------------------------------
; ORG 0000H
AJMP BEGIN
;
;
ORG 0040H
BEGIN:
MOV SP,#60H
CALL INITIAL_GLCD ;调用初始化
QQ: CALL DDISALL ;调用点显示子程序
SJMP $
;==================================================================
DDISALL: MOV A,#34H; extension instruction, graphic display off
LCALL COMMAND_GLCD
MOV DPTR,#TAB1 ;画的上半部分的点
MOV 5AH,DPL
MOV 5BH,DPH
MOV DPTR,#TAB2 ;画的下半部分的点
MOV 5CH,DPL
MOV 5DH,DPH
MOV Y,#0 ;显示点的起始位置
DDISA1: MOV X,#0
DDISA2: MOV A,#0
MOV DPL,5AH
MOV DPH,5BH
MOVC A,@A+DPTR
MOV DATA1,A
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV DATA2,A
INC DPTR
MOV 5AH,DPL
MOV 5BH,DPH
LCALL WRXY
INC X
MOV A,X
CJNE A,#08,DDISA2
DDS: MOV DPL,5CH
MOV DPH,5DH
MOV A,#00H
MOVC A,@A+DPTR
MOV DATA1,A
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV DATA2,A
INC DPTR
MOV 5CH,DPL
MOV 5DH,DPH
LCALL WRXY
INC X
MOV A,X
CJNE A,#16,DDS
INC Y
MOV A,Y
CJNE A,#32,DDISA1
NOP
MOV A,#36H; extension instruction, graphic display on
CALL COMMAND_GLCD
NOP
RET
NOP;---------------
;
;
WRXY: NOP ;写 2个字节到XY position
MOV A,Y
ORL A,#80H ; set Y address
LCALL COMMAND_GLCD
MOV A,X ; set X address
ORL A,#80H
LCALL COMMAND_GLCD
NOP
MOV A,DATA1
LCALL WRITE_GLCD
MOV A,DATA2
LCALL WRITE_GLCD
RET
;---------------------------------------------------------
;点阵式 LCD(128X64)模块显示实验
;以下是公共的程序:
;----------------------------------------------------------
;执行 LCD 初始化工作
INITIAL_GLCD:
PUSH ACC
MOV A,#30H ;功能设定
CALL COMMAND_GLCD
MOV A,#30H ;功能设定
CALL COMMAND_GLCD
MOV A,#30H ;功能设定
CALL COMMAND_GLCD
MOV A,#06H ;显示器控制:游标不显示;但是字会闪烁
CALL COMMAND_GLCD
MOV A,#01H ;清除显示器
CALL COMMAND_GLCD
MOV A,#0CH ;进入模式设定
CALL COMMAND_GLCD
POP ACC
RET
;---------------------------------------------------------------
;检查LCD 忙碌标志
CHKBUSY_GLCD:
PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#R_B_GLCD
CHK$: MOVX A,@DPTR
JB ACC.7,CHK$ ;判别是不是忙?
POP ACC
POP DPL
POP DPH
RET
;---------------------------------------------------------------
;写命令到 GLCD
COMMAND_GLCD:
PUSH DPH
PUSH DPL
CALL CHKBUSY_GLCD ;判别是不是忙?
MOV DPTR,#W_C_GLCD
MOVX @DPTR,A ;写入命令
POP DPL
POP DPH
RET
;---------------------------------------------------------------
;写资料到 GLCD
WRITE_GLCD:
PUSH DPH
PUSH DPL
CALL CHKBUSY_GLCD ;判别是不是忙?
MOV DPTR,#W_D_GLCD ;写入数据
MOVX @DPTR,A
POP DPL
POP DPH
RET
;--------------------------------------------------------------------
;清除 LCD 的显示幕
CLEAR_GLCD:
PUSH ACC
MOV A,#01H ;清除显示器
CALL COMMAND_GLCD
POP ACC
RET
;--------------------------------------------------------------------
;将 ACC 内容,以十六进制值显示
HEX_LCD:
PUSH DPH
PUSH DPL
PUSH ACC
PUSH ACC
SWAP A ;高低四位元交换
ANL A,#0FH ;留下低四位元
MOV DPTR,#ASCII_CODE ;DPTR 指到 ASCII_CODE
MOVC A,@A+DPTR ;取得 ASCII 码
CALL WRITE_GLCD ;写到 LCD
POP ACC
ANL A,#0FH ;留下低四位元
MOVC A,@A+DPTR ;取得 ASCII 码
CALL WRITE_GLCD ;写到 LCD
POP ACC
POP DPL
POP DPH
RET
ASCII_CODE: DB '0123456789ABCDEF'
;--------------------------------------------
TAB1:DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,040H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,001H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,003H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,006H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,00CH,000H,000H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,018H,000H,000H,030H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,030H,008H,000H,060H,0C0H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,030H,010H,000H,0C0H,060H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,060H,060H,001H,080H,060H,000H,000H,000H,000H,000H,003H,000H,000H,000H,000H
DB 000H,0E0H,0C0H,003H,000H,070H,000H,000H,000H,000H,000H,001H,000H,000H,000H,000H
DB 000H,0C0H,080H,007H,000H,070H,000H,000H,000H,0F0H,000H,021H,018H,000H,000H,000H
DB 001H,0C1H,082H,00EH,000H,078H,000H,000H,00FH,000H,000H,061H,008H,000H,000H,000H
DB 001H,083H,004H,00CH,000H,078H,000H,000H,003H,000H,000H,041H,000H,000H,000H,000H
DB 001H,083H,008H,01CH,000H,0FCH,000H,000H,003H,000H,000H,089H,0E0H,000H,000H,000H
DB 003H,002H,019H,080H,000H,0FCH,000H,000H,003H,078H,001H,01BH,080H,000H,000H,000H
DB 003H,006H,011H,09CH,000H,0FCH,000H,000H,007H,0C0H,003H,015H,098H,000H,000H,000H
DB 003H,004H,013H,000H,000H,0FCH,000H,000H,07BH,000H,003H,0E0H,0E0H,000H,000H,000H
DB 002H,004H,023H,090H,000H,0FCH,000H,000H,002H,080H,000H,043H,080H,000H,000H,000H
DB 006H,00CH,023H,0F0H,001H,0FCH,000H,000H,006H,080H,000H,080H,098H,000H,000H,000H
DB 006H,008H,021H,0E0H,001H,0FCH,000H,000H,004H,080H,001H,0F0H,050H,000H,000H,000H
DB 006H,008H,040H,0F0H,001H,0FCH,000H,000H,00CH,080H,081H,000H,060H,000H,000H,000H
DB 004H,008H,040H,070H,003H,0FCH,000H,000H,018H,080H,080H,008H,0E0H,000H,000H,000H
DB 004H,008H,040H,098H,003H,0FCH,000H,000H,030H,080H,080H,071H,020H,000H,000H,000H
DB 004H,008H,001H,088H,003H,0FCH,000H,000H,060H,0C1H,087H,086H,012H,000H,000H,000H
DB 004H,008H,001H,084H,007H,0F8H,000H,000H,080H,07FH,082H,000H,01AH,000H,000H,000H
DB 004H,000H,001H,080H,007H,0F8H,000H,000H,000H,000H,000H,000H,00EH,000H,000H,000H
DB 004H,000H,001H,000H,00FH,0F8H,000H,000H,000H,000H,000H,000H,002H,000H,000H,000H
TAB2:DB 000H,000H,003H,000H,00FH,0F2H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,003H,000H,01FH,0F3H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,003H,000H,01FH,0E3H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,003H,000H,03FH,0E7H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,003H,000H,03FH,0DFH,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,002H,000H,07FH,085H,080H,000H,000H,01FH,000H,000H,000H,000H,000H,000H
DB 000H,000H,002H,000H,0FFH,004H,080H,000H,000H,063H,000H,030H,000H,000H,000H,000H
DB 000H,000H,000H,001H,0FEH,00CH,060H,000H,018H,004H,000H,018H,01CH,000H,000H,000H
DB 000H,000H,001H,003H,0FCH,003H,0E0H,000H,00CH,018H,000H,000H,0ECH,000H,000H,000H
DB 000H,000H,001H,007H,0F0H,01FH,0E0H,000H,000H,00BH,000H,001H,088H,000H,000H,000H
DB 000H,000H,000H,00FH,0C1H,0BFH,0F0H,000H,000H,0F5H,000H,000H,048H,000H,000H,000H
DB 000H,000H,000H,01EH,00FH,03FH,0F0H,000H,000H,091H,000H,030H,048H,000H,000H,000H
DB 000H,000H,000H,000H,01FH,07FH,0F0H,000H,03CH,09DH,001H,0F0H,048H,000H,000H,000H
DB 000H,000H,000H,000H,01FH,07FH,0F0H,000H,008H,091H,000H,033H,0E8H,000H,000H,000H
DB 000H,000H,000H,000H,03EH,07FH,0F0H,000H,010H,08DH,000H,020H,088H,000H,000H,000H
DB 000H,000H,000H,000H,03EH,0FFH,0F0H,000H,010H,090H,080H,020H,088H,000H,000H,000H
DB 000H,000H,000H,000H,03EH,0FFH,0F0H,000H,008H,090H,080H,024H,088H,000H,000H,000H
DB 000H,000H,000H,000H,01CH,0FFH,0F8H,000H,008H,083H,080H,038H,084H,040H,000H,000H
DB 000H,000H,000H,000H,00DH,0FFH,0C0H,000H,03CH,001H,000H,030H,086H,040H,000H,000H
DB 000H,000H,000H,000H,00DH,0FCH,000H,000H,043H,0C0H,000H,060H,083H,0C0H,000H,000H
DB 000H,000H,000H,000H,001H,0C0H,000H,000H,000H,03FH,0F0H,000H,080H,040H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,007H,0C0H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;以上您调入了一幅图象: 长度x宽度=128x64, 调整后为: 128x64
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -