图形点阵式液晶显示模块与51单片机的接口设计
1 WGM-12832结构特点及操作
1.1 点阵式液晶显示器WGM-12832简介
WGM-12832是内置ST7920控制器的128×32点阵式液晶显示器,通过对ST7920控制器的编程可以实现液晶显示器的各种应用。WGM-12832具有如下特点:(1)可以显示数字、字母、特殊字符、图形、曲线和汉字;(2)显示内容为128(列)×32(行)点,全屏幕点阵,可显示2行汉字,每行8个字;(3)IC内带8 139个16×16点阵中文字库,126个16×8字母符号,并提供4个16×16点阵的自定义字功能;(4)与CPU接口采用串行控制方式;(5)功耗低,最大工作功耗15 mW。
WGM-12832模块主要硬件结构框图如图1所示。
WGM-12832共有7个外接引脚,其采用串口发送指令和数据,优点在于满足显示目的的同时,占用很少的CPU引脚资源。因此,在很多低端CPU的引脚较少时,也能驱动WGM-12832液晶,满足了不同微系统的需求。
1.2 WGM-12832控制指令
WGM-12832共有2个指令集:基本指令集和扩充指令集。基本指令集包括了对液晶WGM-12832的基本操作,如判断控制器是否为忙、清除显示、设定显示的地址、写数据和读数据等。而扩充指令集则在基本指令集的基础上最大限度地满足了现实的显示需要。比如:能够设置睡眠模式,满足低功耗的需求;可以设置图形显示,更进一步使显示变得多样化,提供更人性化的交互方式。
单片机对WGM-12832的操作原理为:单片机先确认ST7920内部处于非“忙”状态。即读取BF位,当BF为0时,ST7920才可接收新的指令。如果在送指令前不检查BF位,那么在前一条指令和这条指令中间必须延迟一段较长的时间,确保前一条指令执行完。在操作时,ST7920在单片机的时钟信号的控制下,通过数据线传送给ST7920,当ST7920成功接收到数据后,转入内部时钟控制,封锁I/O口缓冲器,置“忙”标志。ST7920根据接收数据中的RW和RS位判断所接收到的是数据、指令、还是所要显示的内容,并进行相应的处理。处理完成后,撤消I/O口缓冲器的封锁,“忙”标志清零。在写入数据到RAM中时,每个RAM的位址都可以连续写入2个位元的资料(2 B),当写人第二个字节时,位址计数器(AC)的值就会自动加1,即在连续写入内容时,只需要设定开始的位址,并连续写入数据就能达到目的。因为ST7920是能控制128×64点阵的驱动芯片,WGM-12832只用了ST7920资源的1/2。在使用上需要注意,DDRAM位址中的88 H~8 FH和98 H~9 FH中的内容是不能显示出来的。位址80H~87H和90H~97H的内容会被分别显示在第1行和第2行。
2 单片机与WGM-12832液晶的接口电路
AT89S51和液晶WGM-12832模块的接口电路如图2所示。由于WGM-12832采用串口通信,外接引脚较少,与单片机连接采用直接连接的方法,即用I/O口直接与LCD数据线和控制线相连,其特点是简单、直观、操作方便。在此电路中,采用软件模拟液晶的时序,达到正确显示的目的。
3 软件编程
对WGM-12832的软件编程采用Franklin 51语言开发,主要包括两部分,一部分是给液晶写指令,另一部分是给液晶写数据。有了这2个基本的子程序,就可以构造出各种实用的显示子程序。由于液晶内部自带汉字模块,只需发送汉字对应的代码就可以实现汉字的显示,其代码可以在ST7920模块的资料中查找。对于图形和曲线显示的原理类似,只需要设置好相应的水平地址和垂直地址,并把相应的图形编码写入液晶模块,就可显示出所要显示的内容。
发送指令子程序:
4 结论
随着仪器、仪表、电子设备等智能化程度的提高,单片机系统的液晶显示模块使用的也越来越广泛。在单片机与液晶的接口中,关键是要满足液晶的时序要求;在软件编程中,关键是要进行正确的初始化、操作及显示内容的代码。以上接口电路和相应的程序已经通过调试,并在实际中得到应用。