您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术单片机和图形液晶显示器接口应用技术 正文
单片机和图形液晶显示器接口应用技术

单片机和图形液晶显示器接口应用技术

点击数:7862 次   录入时间:03-04 11:59:12   整理:http://www.55dianzi.com   DSP/FPGA技术
       通用子程序:通用子程序分左半屏、右半屏写指令代码子程序和写显示数据子程序。 液晶 显示驱动器HD16202 内部有个忙标志寄存器,当BF=1 时,表示内部操作正在运行,不能接受外部数据或指令。下面子程序中设指令代码寄存器为COMM,数据寄存器为DATA。

       (COMM EQU 20H /*指令寄存器*/ DATA EQU 21H /*数据寄存器*/)

       (1) 左半屏写指令子程序

       WR_CMD1: MOV DPTR,#CRADR1 ;/*读状态字口地址*/

www.55dianzi.com        WAIT1: MOVX A,@DPTR ;/* 读状态字 */

       JB ACC.7,WAIT1 ;/*判忙标志BF,如BF=1 忙,等待*/

       MOV DPTR,#CWADR1 ;/*写指令字口地址*/

       MOV A,COMM ;/*取指令代码*/

       MOVX @DPTR,A ;/*写指令代码*/

       RET

       (2)左半屏写数据子程序

       WR_DATA1:MOV DPTR,#CRADR1 ;/*读状态字口地址*/

        WAIT11: MOVX A,@DPTR ;/* 读状态字 */

       JB ACC.7,WAIT11 ;/*判忙标志BF,如BF=1 忙,等待*/

       MOV DPTR,#DWADR1 ;/*写数据字口地址*/

       MOV A,DATA ;/*取数据/

       MOVX @DPTR,A ;/*写数据*/

       RET

       (3)右半屏写指令子程序WR_CMD2 和右半屏写数据子程序WR_DATA2 的编制同左半屏子程序相同,只是对应口地址不同。

       8X16 字符显示子程序:MGLS12864 液晶 显示屏由二片HD61202 控制,LCD 显示中应尽量避免一个字符一半在左半屏显示,另一半在右半屏显示的情况。设列地址寄存器为COLUMN,页地址寄存器为PAGE,要显示的字符代码寄存器为ASCIICODE,W78E58 内RAM28H-RAM37H 共16 个字节存放8×16 的点阵数据,生成的8×16 点阵库文件存放在 单片机 W78E58 存储器中的首地址定义为ASCII_DOT816。

       DISP_ASCII816: MOV DPTR,#ASCII_DOT816 ;8×16 点阵库首地址

       MOV A,ASCIICODE ;显示字符代码ASCIICODE

       MOV B,#16 ;每个字符点阵占16 个字节

       MUL AB ;计算显示字符在字库的首地址

       ADD A,DPL

       MOV DPL,A

       MOV A,DPH

       ADDC A,B

       MOV DPH,A

       ;MOV R0,#28H ;将点阵数据放到RAM28H-RAM37H

       MOV R2,#00H

       LP_MOVDOT16: MOV A,R2

       MOVC A,@A+DPTR

www.55dianzi.com

       MOV @R0,A ;如要将字符反显(黑底白字),则读出点

       INC R0 ;阵数据后求反放入 单片机 的RAM 中

       INC R2

       CJNE R2,#16,LP_MOVDOT16

       ;

       PUSH COLUMN

       MOV A,COLUMN ;显示列数COLUMN 是否在右半屏

       CJNE A,#64,ASCII_IF64

        ASCII_IF64: JNC ASCII_YGE64

       MOV DPTR,#CWADR1 ;在左半屏时,选择左半屏写指令代码地址

       CLR FIRST0_SECOND1_BIT ;左半屏列数标志BIT=0

       SJMP ALL_COLUMN

       ASCII_YGE64: CLR C

       SUBB A,#64

       MOV COLUMN,A

       MOV DPTR,#CWADR2 ;在右半屏时,选择右半屏写指令代码地址

       SETB FIRST0_SECOND1_BIT ;右半屏列数标志BIT=1

       ALL_COLUMN: MOV A,PAGE

       ADD A,#10111000B ;设置页地址命令

       MOVX @DPTR,A

       MOV A,COLUMN ;设置列地址命令

       ADD A,#01000000B

       MOVX @DPTR,A

       MOV DPTR,DWADR1 ;根据左右半屏列数标志,选择写显示数据地址

       JNB FIRST0_SECOND1_BIT,ALLMOV1

       MOV DPTR,DWADR2

       ALLMOV1: MOV R0,#28H

       MOV_8BYTE1: MOV A,@R0

       MOVX @DPTR,A ;写显示数据

       NOP

       INC R0

       CJNE R0,#30H,MOV_8BYTE1

www.55dianzi.com

       MOV DPTR,#CWADR1

       JNB FIRST0_SECOND_BIT,ALLMOV2

       MOV DPTR,#CWADR2

       ALLMOV2: MOV A,PAGE

       INC A ;页地址加1

       ADD A,#10111000B

       MOVX @DPTR,A ;设置页地址命令

       MOV A,COLUMN ;设置列地址命令

        ADD A,#01000000B

       MOVX @DPTR,A

       MOV DPTR,DWADR1;根据左右半屏列数标志,选择写显示数据地址

       JNB FIRST0_SECOND1_BIT,ALLMOV3

       MOV DPTR,DWADR2

       ALLMOV3: MOV R0,#30H

       MOV_8BYTE2: MOV A,@R0

       MOVX @DPTR,A ;写显示数据

       INC R0

       CJNE R0,#38H,MOV_8BYTE2

       ;

       POP COLUMN

       RET

       16×16 汉字显示子程序:16×16 汉字显示子程序与8X16 字符显示子程序基本相同。不同在于每次写32 字

       节显示数据,可定义W78E58 内RAM28H-RAM47H 共32 个字节存放16×16 的点阵数据,生成的16×16 点阵库文件存放在 单片机 W78E58 存储器中的首地址定义为HzK_DOT16X16。具体程序略,读者如需要可来函索取。

       结语

       本文在介绍 液晶 显示模块与单片机 接口 的同时,采用了新颖的改造方案以解决应用中的问题。由于节省了单片机口线,使系统资源得到了充分利用。可显示汉字、字符和 图形 ,使人机界面更为美观、易读。其它如8×8 西文点阵字库及图形的建立和显示可参照上面介绍的方法来编写程序。由于各种液晶显示模块的接口基本相同,因此本文所讨论的内容也适用于其它型号的液晶显示模块。液晶显示较其它显示终端有许多优点:功耗低且字型美观、可用集成电池供电,便于携带等。相信它将得到越来越广泛的使用。

上一页  [1] [2] 


本文关键字:单片机  接口  液晶显示器  应用技术  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术