|
摘要:MGLS240128 香港精电公司生产的内藏T6963C控制器液晶显示模块。文中介绍了MGLS240128的原理及功能,给出了该显示模块与单片机的接口方法。同时给出了用C51语言编制的图形显示应用程序。 关键词:液晶模块;单片机;图形显示;C51 1 引言 在目前诸多的显示器件中,液晶显示器以其具有工作电压低、功耗低、显示信息量大、寿命 、不产生电磁辐射污染、可以显示复杂的文字及图形等优点,而在各种仪器仪表、电子设备、移动通讯及家用电器中得到了广泛的应用。本文介绍MGLS240128T图形液晶显示模块就是香港精电公司生产的、内藏T6963C控制器的液晶显示模块。
2 模块工作原理 2.1 基本功能 MGLS240128T图形液晶显示模块由控制器T6963C、列驱动器T6A39、行驱动器T6A40以及与外部设备的接口等几部分组成,它既能显示字符(包括中文和西文字符),又能显示图形,还能够将字符与图形混合显示。其主要 数如下: ●点阵数:240×128; ●点尺寸:0.4×0.4mm; ●视屏尺寸:114×64mm; ●汉字字体:8×8,8×6; ●背光:LED或EL; ●电源:+5V; ●工作温度范围:-20~ +70℃。 2.2 引脚功能 MGLS240128T图形液晶显示模块的引脚说明如表1所示。该模块对液晶显示的控制和驱动都由模块内部的芯片及电路来完成,因此它与外部的连接只有数据线和控制线。主控CPU通过 些数据线和控制线来设置所需要的显示方式,其它功能均由模块自动完成。
表1 MGLS240128T模块的引脚功能 管 脚 号管 脚 名 称功 能 描 述 1FG框架地2GND电源地3VCC电源电压4NC未用5WR写控制信号,低电平有效6RD读控制信号,低电平有效7CS片选信号,低电平有效8C/D通道选通信号,C/D1为表示指令,C/D为0表示数据通道9RST复位信号,低电平有效10~17DB0~7数据总线,三态18FS字体选择,FS为0选择8×8字体,FS为1选择8×6字体2.3 指令系统 MGLS240128T图形液晶显示模块本身内藏控制器T6963C,它最大的特点是具有独特的硬件初始设置功能,由于显示驱动所需的参数(如占空比系数、驱动传输的字节数/行以及字符的字体选择等)均由引脚电平来设置,因此T6963C的初始化在上电时就已基本设置完成。除此之外,它还具有很强的软件控制能力,也就是由主控CPU通过接口写入液晶模块的指令来实现模块控制。软件控制主要集中于显示功能的设置上。该模块的常用指令如表2所列。
表2 MGLS240128T模块的常用指令设置 指令名称控制状态指 令 代 码CDRDWRD7D6D5D4D3D2D1D0读状态字111S7S6S5S4S3S2N1S0地址指令设置11000100N2N1N0显示区域设置110010000N1N0显示方式设置1101000CGN2N1N0显示状态设置1101001N3N2N1N0光标自动读写设置11011000N2N1N0数据自动读写设置110101100N1N0数据一次读写设置11011000N2N1N0屏读(一字节)设置11011100000屏读(一行)设置11011101000位操作1101111N3N2N1N0数据写操作010数 据数据读操作001数 据3 液晶模块的应用 3.1 与单片机的接口连接 MGLS240128T液晶显示模块与计算机的接口时序采用Inter8080时序。下面以8031单片机为例说明其接口方法。它与单片机的接口方法分为直接访问方式和间接控制方式。 直接访问方式是把液晶模块作为存储器接在CPU的数据线、地址线和控制线上,同时把它的数据总线接在8031的P0口上,片选以及寄存器选择信号线由P2口提供,读写操作由单片机的读写操作信号控制。这种方式是以访问存储器的方式访问液晶显示模块,具体连接如图1(a)所示。 间接控制方式则不使用单片机的数据系统,而是利用它的I/O口来实现与显示模块的联系。即将液晶显示模块的数据线与单片机的P1口连接作为数据总线,另外三根时序控制信号线通常利用8031的P3口中未被使用的I/O口来控制。这种访问方式不占用CPU的存储器空间,它的接口电路与时序无关,其时序完全靠软件编程实现。接口方式如图1(b)所示。 3.2 软件设计 单片机与液晶显示模块接口程序中的文字显示已经为 们所熟悉,因此这里不再赘述,本文只介绍图形显示方法。图形或曲线的显示程序的关键在于显示点地址的计算,下面给出采用C51语言编制的图形显示的主要相关程序。 //发送数据 void w_data(unsigned char d) {CS=0; check(); CD=0;P2=d;WRITE=0;WRITE=1; CS=1; } //发送命令 void w_command(unsigned char d) {CS=0; check(); CD=1;P2=d;WRITE=0;WRITE=1; CS=1; } //查状态 void check(void) {unsigned char M; do{P2=0xff; CD=1;READ=0; M=P2; READ=1; } while((M&0x03)<0x03); } //画点 void draw(x,y) {unsigned int m; unsigned char n,t; n=0x12; t=0x34; m=(y&0x7f)*0x20; n=x/8; t=m-(m/0x100)*0x100+n; w_data(t); t=m/0x100+0x08; w_data(t); w_command(0x24); if(y>=0x80) n=0xf8; else n=0xf0; t=x%8; t=(~t)&0x07; t=n|t; w_command(t); } //画一条正弦曲线 void main(void) { init(); clear(); for(x=0;x<180;x++) { y=psin[x]; y=y|0x80; draw(x,y); } while(1){} } 4 结束语 MGLS240128T图形液晶显示模块是一种性能价格比较高的液晶显示模块,其内部具有适配80系列的操作时序电路,该模块与单片机的接口十分方便。由于它不仅能很方便地进行大信息量的各种字符显示,且能实现图形及曲线的显示,这就使人机接口更友好。因此,可为单片机在各领域中的应用提供十分简单、方便、功能强大的LCD显示功能。 () |