1、18051 单片机图形 LCD 驱动接口设计摘要:液晶显示器(LCD)具有显示信息丰富、功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,在多年来被单片机控制的智能仪器、仪表和电子 产品中广泛使用,从其 LCD 显示的内容可以分为段位式 LCD、点阵式 LCD、和字符 LCD。本文从 8086 单片机图形模式的 LCD 的显示屏幕驱动出发,详细描述了 LCD 的显示字符、数字、和显示图形、曲线以及各种中英文、外文等字体,而且可以实现整个显示屏的滚动、翻屏幕等功能的实现设计过程。 关键词:液晶显示器;驱动;图形 中图分类号: TN873+.93 文献标识码: A 文章编号: 一、液晶屏
2、与控制器的选择 要对液晶显示器进行控制,需要有对应的 LCD 控制器的控制权限与控制存储器的操作指令,通过 LCD 的存储空间来存储对显示器的操作命令和显示字符来直接指挥显示器。本文中,采用的单片机主要是精电蓬远公司出品的液晶屏 MGLS-12864。MGLS-12864 是香港信利公司生产的点阵图形式液晶显示模块,点阵数为 64 行 x128 列,每屏可以显示 4 行8个汉字(每汉字 1616 点阵)。该显示模块有 2 片 HD61202 作为列驱动器和 1 片 HD61203 作为行驱动器,可显示 64K 的点阵图形。其主要特点是能与 80 系列微处理器直接接口,可以进行图形、字符及图形和
3、字符混合3 种方式显示,并具有 64K 的内部存储器。显示屏共分 8 页,显示数据格2式及显示屏的页、行和列的分布情况如表 1 所示。 使用液晶显示器进行显示要有相应的 LCD 控制器来对其控制,以及一定的存储空间来存储输入的命令和显示的字符。本文中,液晶屏选用的是精电蓬远公司出品的液晶屏 MGLS-12864。 二、MGLS-12864 屏幕概述 1、MGLS-12864 概述 液晶显示器按其功能可分为笔段式和点矩阵式两种。后者又可以分成字符点阵式和图形点阵式,图形点阵式液晶显示器不仅可显示数字、字符等内容,还能显示汉字和任意图形。在中规模图形式液晶显示模块中,内置 8051 控制器的液晶显
4、示模块是目前较为常用的一种。MGLS-12864 是点阵式 LCD,液晶模块的工作电压是 5V0.5V,内置两片HD61202 和一片 HD61203。其中 HD61202 是列驱动器,有 64 路列驱动输出,6464 位显示 RAM,每位数据代表液晶屏上每个点的明暗状态;HD61203 作为行驱动器。控制器选用 Intel 公司 MCS-51 系列的 8051 芯片。该芯片价格低廉,指令系统功能强大,执行速度快,实用性强,能够符合系统要求。 2、MGLS-12864 的特点 (1)MGLS-12864 是点阵式液晶图形显示控制器,它能直接与 80 系列的 8 位微处理器接口; (2)MGLS
5、-12864 的字符字体由硬件设置,其字体有 4 种:35X8、6X8、7X8、8X8; (3)MGLS-12864 的占空比可从 1/16 到 1/128; (4)MGLS-12864 可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作等等; (5)MGLS-12864 具有内部字符发生器 CGROM,共有 128 个字符,MGLS-12864 可管理 64K 显示缓冲区及字符发生器 CGRAM。并允许 MPU 随时访问显示缓冲区,甚至可以进行位操作。 三、系统软件设计 实现功能可以看出,本设计中需要用到西文显示、汉字显示、绘图等子程序。首先
6、,要实现西文/汉字的显示,需要三个子程序:创建字模,写入字模,显示西文或汉字。MGLS-12864 实现西文/汉字的显示有三种方式:文本显示,图形显示和文本属性显示。由于绘图只能使用图形显示,因此在本设计中采用图形显示方法来实现西文/汉字的显示。其次,要实现绘图,需要由绘点子程序实现。绘图功能则是通过连续使用绘点子程序实现的。最后,还需要用到初始化子程序、清屏子程序。同时状态字的检测和指令的写入、数据的自动写、数据的一次写等子程序也是必不可少的。由于每进行一次操作都需要检测状态字,所以可以把状态字检测程序做成通用程序方便调用。初始化程序和清屏幕程序主要完成 MGLS-12864 的初始化和屏幕
7、清除功能。西文/汉字的显示首先需要创建字模,然后将字模写入 MGLS-12864 中,最后再在屏幕上显示出来。 3.1 引脚功能 (1)D0D7:MGLS-12864 与 MPU 接口的数据总线,三态; 4(2)/RD,/WR:读、写选通信号,低电平有效,输入信号; (3)/CE:MGLS-12864 的片选信号,低电平有效; (4)C/D:通道选择信号,1 为指令通道,0 为数据通道; (5)/RESET,/HALT:/RESET 为低电平有效的复位信号,它将行、列计数器和显示寄存器清零,关显示;/HALT 具有/RESET 的基本功能,还将种植内部时钟振荡器的工作; (6)DUAL,SDS
8、EL:DUAL=1 为单屏结构,DUAL=0 为双屏结构;SDSEL=0 为一位串行数据传输方式,SDSEL=1 为二位并行数据传输方式; (7)MD2,MD3:设置显示窗口长度,从而确定了列数据传输个数的最大值,起组 3.2 控制器命令字格式 控制驱动器的指令系统比较简单,将命令字及其功能特征编辑成速查表,供编程时查对,控制器命令字格式如表 1 所示 有关命令格式的相关说明:显示开/关指令:当 DB0=1 时 LCD 显示RAM 中的内容,DB0=0 时无显示。 读状态指令:BUSY:1-内部在工作 0-正常状态;ON/OFF:1-显示关闭 0-显示打开;REST:1-复位状态 0-正常状态
9、 3.3 驱动子程序设计 #include #defineRWP2.4 /定义 P2.4 为读写引脚/ 5#defineDIP2.7 /定义 P2.7 为命令,数据引脚/ delay(intd)/延迟子程序/ inti,j; for(i=0;id;i+) for(j=0;j20;j+); voidLCD_init() /显示器初始化/ RS=0;RW=0;P0=0X3c; /定义双行显示/ P0=0X0e;/显示光标/ P0=0X01;/清除命令/ voidLCD_command(unsignedcharc)/写命令到显示器/ P0=c; RW=0; DI=0; voidLCD_print(u
10、nsignedchart)/写数据到显示器/ P0=t; 6RW=0; DI=1; 四、小结 利用自带字库的中文液晶图形点阵模块串口接口方式的优势比并口明显,节省 I/O 了口,不占用 ROM,接口电路简单,解决了显示汉字字符数量有限的瓶颈问题和小体积非总线结构单片机的汉字显示问题。笔者相信今后其使用率将逐步提高,对照本文的串并口两种方式,希望对广大同行在使用液晶图形点阵模块时有所启发和帮助。 参考文献: 1、北京精电蓬远显示技术有限公司内藏 MGLS-12864 液晶显示模块使用手册.第二版.北京:北京精电蓬远显示技术有限公司.1999 年 2 、郭强液晶显示应用技术.北京:电子工业出版社.2002. 3 、曾一江单片微机原理与接口技术.北京:科学出版社.2006. 4 、蔡美琴MCS-51 系列单片机系统及其应用(第 2 版).北京:高等教育出版社.2004.