- ;192*64液晶(带字库)测试程序
- ;芯片型号:ST7920
- ;晶振11.0592M
- LCD_RS EQU P4.0 ;LCD 数据/命令选择端
- LCD_RW EQU P4.1 ;LCD 读/写选择端
- LCD_EN EQU P4.2 ;LCD 使能信号
- LCD_BG EQU P4.3 ;LCD 背光控制端
- LCD_SJ EQU P0 ;LCD 数据
- COM EQU 20H
- DAT EQU 21H
- ;===========================================================
- ORG 0000H
- AJMP START
- ORG 0100H
- ;===========================================================
- START: MOV SP,#60H
- CLR LCD_BG ;打开LCD背光
- MOV COM,#30H ;功能设置--8BIT控制界面,基本指令集
- ACALL WRI ;调用写指令子程序
- LCALL DELAY ;延迟39uS
- MOV COM,#0CH ;显示打开,光标关,反白显示关
- ACALL WRI ;调用写指令子程序
- LCALL DELAY ;延迟39uS
- MOV COM,#01H ;清除屏幕显示,将DDRAM的地址计数器归零
- ACALL WRI ;调用写指令子程序
- LCALL DELAY ;延迟39uS
- MOV COM,#06H ;DDRAM的地址计数器(AC)加1
- ACALL WRI ;调用写指令子程序
- LCALL DELAY ;延迟39uS
- ;*************************************以上是模块初始化
- MOV R2,#64 ;DDRAM地址记数器设为最大
- MOV R1,#10H ;从代码为“10”处显示
- MOV COM,#80H ;DDRAM地址---0000000
- ACALL WRI ;调用写指令子程序
- DISP5A: MOV DAT,R1
- ACALL WRD ;调用写数据子程序
- INC R1
- DJNZ R2,DISP5A
- LCALL DELAY1 ;1S延时子程序
- ;*************************************以上是写入半角字符
- MOV R2,#64 ;DDRAM地址记数器设为最大
- MOV R1,#0DEH ;字符低位地址
- MOV COM,#80H ;DDRAM地址---0000000
- ACALL WRI ;调用写指令子程序
- DISP5: MOV DAT,#0B4H ;写入字符高位地址
- ACALL WRD ;调用写数据子程序
- MOV DAT,R1
- ACALL WRD
- INC R1
- DJNZ R2,DISP5
- LCALL DELAY1 ;1S延时子程序
- ;*************************************以上是从字库中“崔”字处开始显示汉字
- MOV COM,#01H ;清屏
- ACALL WRI
- LCALL DELAY
- MOV COM,#32H ;功能设置---8BIT控制界面,绘图显示开
- ACALL WRI ;调用写指令子程序
- LCALL DELAY ;延迟39uS
- MOV COM,#36H ;功能设置---8BIT控制界面,扩充指令集
- ACALL WRI ;调用写指令子程序
- LCALL DELAY ;延迟39uS
- DISPLAY6:MOV DPTR,#DAB2 ;图形数据入口地址
- MOV R2,#32 ;32行(双屏结构的上半屏)
- MOV R3,#80H ;Y地址寄存器
- DISP6: MOV COM,R3 ;设置绘图区的Y地址坐标
- INC R3 ;Y地址加1
- LCALL WRI
- MOV COM,#80H ;设置绘图区的X地址坐标
- LCALL WRI
- MOV R1,#16 ;16*8列
- DISP7: CLR A
- MOVC A,@A+DPTR
- MOV DAT,A
- LCALL WRD
- INC DPTR
- DJNZ R1,DISP7
- DJNZ R2,DISP6 ;写满全屏的16*8字节X64
- MOV R2,#32 ;32行(双屏结构的下半屏)
- MOV R3,#80H ;Y地址寄存器
- DISP8: MOV COM,R3 ;设置绘图区的Y地址坐标
- INC R3 ;Y地址加1
- LCALL WRI
- MOV COM,#88H ;设置绘图区的X地址坐标
- LCALL WRI
- MOV R1,#16 ;16*8列
- DISP9: CLR A
- MOVC A,@A+DPTR
- MOV DAT,A
- LCALL WRD
- INC DPTR
- DJNZ R1,DISP9
- DJNZ R2,DISP8 ;写满全屏的16*8字节X64
- LCALL DELAY1 ;1S延时子程序
- LJMP START ;从开始处循环显示
- ;*************************************以上是写入图画面
- WRI: PUSH ACC
- CLR LCD_RS
- SETB LCD_RW
- WRI1: MOV LCD_SJ,#0FFH
- SETB LCD_EN
- MOV A,LCD_SJ
- CLR LCD_EN
- JB ACC.7,WRI1
- CLR LCD_RW
- MOV LCD_SJ,COM
- SETB LCD_EN
- CLR LCD_EN
- POP ACC
- RET
- ;*************************************以上是写指令子程序
- WRD: PUSH ACC
- CLR LCD_RS
- SETB LCD_RW
- WRD1: MOV LCD_SJ,#0FFH
- SETB LCD_EN
- MOV A,LCD_SJ
- CLR LCD_EN
- JB ACC.7,WRD1
- SETB LCD_RS
- CLR LCD_RW
- MOV LCD_SJ,DAT
- SETB LCD_EN
- CLR LCD_EN
- POP ACC
- RET
- ;*************************************以上是写数据子程序
- DELAY: MOV R7,#200 ;延迟39uS;17
- DJNZ R7,$
- RET ;17*2*(12/11.0592)+2*(12/11.0592)≈39uS
- DELAY1: MOV R4,#200 ;延迟1S,06D;08
- DELAY11: MOV R7,#0E2H
- DELAY41: MOV R6,#0FFH ;07D
- DJNZ R6,$
- DJNZ R7,DELAY41
- DJNZ R4,DELAY11
- RET ;255*2*226*8*(12/11.0592)+2*(12/11.0592)=1000459uS≈1S
- ;*************************************以上是延时子程序
- DAB2: ;画面数据表
- DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
- DB 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 01H
- DB 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 01H
- 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, 11H,0FFH, 80H, 40H, 08H, 30H, 10H, 20H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 68H, 3FH,0FFH, 08H, 30H, 11H,0F8H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 68H, 3FH,0FFH, 08H, 30H, 11H,0F8H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 01H,0FFH, 00H, 00H, 7FH,0FEH, 7DH, 08H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 11H, 6BH, 07H,0FCH, 16H, 30H, 2DH,0F8H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0DH,0FFH, 04H, 0CH, 16H, 30H, 2DH, 08H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 00H, 3FH,0FFH, 16H, 30H, 2DH,0F8H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 00H, 3FH,0FFH, 16H, 30H, 2DH,0F8H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH,0FFH, 30H, 01H, 66H,0FEH, 2DH, 26H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 1CH, 00H, 03H,0F0H, 76H, 82H, 2DH, 28H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0DH,0FFH, 82H, 11H, 08H, 82H, 11H, 10H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 8BH, 04H, 11H, 16H, 82H, 2DH, 28H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0CH, 8BH, 04H, 11H, 16H, 82H, 2DH, 28H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 0DH, 18H,0B8H, 1FH, 60H,0FEH, 41H,0C6H, 00H
- DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 00H, 07H, 8FH,0FFH, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 00H, 08H, 70H, 40H,0EFH, 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 00H, 08H, 70H, 40H,0EFH, 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 00H, 10H, 00H, 80H, 10H, 60H, 00H, 0FH,0FFH, 30H, 0CH, 00H, 80H, 00H, 00H, 00H
- DB 00H, 20H, 18H, 38H, 20H, 60H, 00H, 00H, 60H, 08H, 0CH, 1FH,0FCH, 1CH, 00H, 00H
- DB 00H,0C0H, 64H, 45H, 00H, 60H, 00H, 03H,0FCH, 0BH,0FFH, 00H, 80H, 3EH, 00H, 00H
- DB 00H,0C1H, 00H, 01H, 00H, 10H, 00H, 00H, 80H, 00H, 0CH, 08H, 88H, 3EH, 00H, 00H
- DB 00H,0C1H, 00H, 01H, 00H, 10H, 00H, 00H, 80H, 00H, 0CH, 08H, 88H, 3EH, 00H, 00H
- DB 01H, 01H, 00H, 00H,0C0H, 10H, 00H, 1FH,0FFH,0BDH, 8CH, 06H,0B0H, 3EH, 00H, 00H
- DB 02H, 0EH, 18H, 1CH,0C0H, 10H, 00H, 01H, 00H, 04H, 4CH, 7FH,0FEH, 1CH, 00H, 00H
- DB 02H, 16H, 64H, 22H, 20H, 10H, 00H, 03H,0FCH, 04H, 4CH, 01H,0C0H, 1CH, 00H, 00H
- DB 02H, 16H, 64H, 22H, 20H, 10H, 00H, 03H,0FCH, 04H, 4CH, 01H,0C0H, 1CH, 00H, 00H
- DB 04H,0E8H, 83H, 41H, 1CH, 08H, 00H, 0DH, 04H, 04H, 0CH, 06H,0B0H, 00H, 00H, 00H
- DB 07H, 10H, 8FH, 47H, 03H, 88H, 00H, 11H,0FCH, 04H, 3CH, 08H, 88H, 1CH, 00H, 00H
- DB 00H, 20H, 6CH, 26H, 01H, 78H, 00H, 01H, 04H, 0AH, 00H, 70H, 86H, 1CH, 00H, 00H
- DB 00H,0C0H, 18H, 1CH, 00H, 80H, 00H, 01H,0FCH, 31H,0FFH, 00H, 80H, 00H, 00H, 00H
- DB 00H,0C0H, 18H, 1CH, 00H, 80H, 00H, 01H,0FCH, 31H,0FFH, 00H, 80H, 00H, 00H, 00H
- DB 00H,0C1H, 87H, 80H, 00H, 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 01H, 06H, 78H, 3CH, 20H, 60H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 01H, 08H, 07H,0C2H,0C0H, 60H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 01H, 08H, 00H, 01H,0C0H, 60H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 01H, 08H, 00H, 01H,0C0H, 60H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 01H, 08H, 18H, 01H,0C0H, 60H, 00H, 00H, 00H,0F1H,0F3H, 87H,0C0H, 00H, 00H, 00H
- DB 00H,0C6H, 18H,0C2H, 20H, 80H, 00H, 00H, 03H, 0EH, 1CH, 78H, 70H, 00H, 00H, 00H
- DB 00H,0C1H, 00H,0C2H, 00H, 80H, 00H, 00H, 04H, 44H, 11H, 10H, 38H, 00H, 00H, 00H
- DB 00H, 26H,0E0H, 04H, 01H, 00H, 00H, 00H, 04H, 80H, 12H, 00H, 38H, 00H, 00H, 00H
- DB 00H, 26H,0E0H, 04H, 01H, 00H, 00H, 00H, 04H, 80H, 12H, 00H, 38H, 00H, 00H, 00H
- DB 00H, 11H, 18H, 38H, 03H, 00H, 00H, 00H, 04H, 80H, 12H, 00H, 38H, 00H, 00H, 00H
- DB 00H, 0EH, 87H,0C2H, 1CH, 00H, 00H, 00H, 04H, 00H, 10H, 00H, 38H, 00H, 00H, 00H
- DB 00H, 01H,0E0H, 04H,0E0H, 00H, 00H, 00H, 03H, 00H, 1CH, 00H, 70H, 00H, 00H, 00H
- DB 00H, 1EH, 18H, 3FH, 1EH, 00H, 00H, 00H, 00H, 80H, 32H, 00H,0C0H, 00H, 00H, 00H
- DB 00H, 1EH, 18H, 3FH, 1EH, 00H, 00H, 00H, 00H, 80H, 32H, 00H,0C0H, 00H, 00H, 00H
- DB 00H, 38H, 07H,0C0H, 0FH, 00H, 00H, 00H, 00H, 40H, 61H, 01H, 80H, 00H, 00H, 00H
- DB 00H,0E9H,0FFH,0FFH, 0DH, 80H, 00H, 00H, 00H, 31H,0C0H, 87H, 00H, 00H, 00H, 00H
- DB 01H,0E9H, 1BH,0B9H, 0DH,0E0H, 00H, 00H, 00H, 0BH, 80H, 6EH, 00H, 00H, 00H, 00H
- DB 03H,0C9H,0F0H, 1FH, 0CH,0F0H, 00H, 00H, 00H, 06H, 00H, 18H, 00H, 00H, 00H, 00H
- DB 03H,0C9H,0F0H, 1FH, 0CH,0F0H, 00H, 00H, 00H, 06H, 00H, 18H, 00H, 00H, 00H, 00H
- DB 07H, 06H,0E0H, 06H, 10H, 78H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 07H,0C1H, 00H, 00H, 20H,0F8H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 07H,0E0H, 80H, 00H,0C1H,0F8H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 07H,0E0H, 80H, 00H,0C1H,0F8H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
- DB 80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H, 01H
- DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
- END
复制代码
|