当前位置:文档之家› 一种通用的LCD显示屏驱动程序

一种通用的LCD显示屏驱动程序

一种通用的LCD显示屏驱动程序
摘要:本文介绍了一种通用的LCD显示电路,并以PIC16F873芯片设计出了结合硬件的较为通用的驱动程序。

LCD显示屏具有体积小、重量轻、耗电低、显示内容丰富、易于定制、使用寿命长等优点,被广泛用于仪器仪表、家电、控制产品等诸多领域。

根据不同的LCD显示屏其驱动程序分为静态驱动和动态驱动。

因为动态驱动比静态驱动占用的芯片硬件资源少、驱动电路简单等特点而成为LCD驱动的主流。

本文正是采用动态驱动方式,以Microchip公司的PIC16F873芯片,设计出一种较为通用的LCD显示电路及其LCD显示的相应驱动程序,目的在于减少研发人员的工作量,避免不必要的重复性工作。

1.LCD显示的硬件电路
为了达到动态显示的目的,在电路中使用了三个移位计数器,其中两个用于LCD显示,一个用于控制LED双色灯显示,显示部分共占用PIC16F873芯片6个I/O口,分别为RC0、RC1、RC2、RC3、RC4、RC5。

可以实现控制的显示笔划位数达48个,如图1所示。

其中RC3、RC5配合产生移位输入信号,RC0、RC1、RC2、RC4配合控制背电极(COM0、COM1、COM2)。

当背电极COM0、COM1、COM2与笔画电极(由移位计数器输出)之间的电势差达到5V时,对应的笔画就显示,否则不显示。

为了延长液晶显示屏的寿命,通常间隔交换背电极与笔画电极的电位。

例如,当要COM0显示的时候可以使得RC0、RC1为5V,RC2、RC4为0V,这样COM0电压为5V,COM1、COM2电压为2.5V,然后RC0、RC1为0V,RC2、RC4为5V,这样COM0电压为0V,COM1、COM2电压为2.5V。

达到显示目的。

2.驱动波形
在电路中使用RC3为时钟输入端,RC5作为数据输入端进行主同步串行。

当要输入COM0行上的数据是1000 1010 1100 0100时,其驱动波形如图2所示。

在正向输出(COM0端为低电平)结束后,进行反向输出(COM0端为高电平)。

图3为一个完整显示周期内COM0、COM1、COM2的波形变化。

3.LCD软件显示程序
本文以PIC16F873为芯片,采用PIC汇编语言,在MAPLAB-ICD开发器上实现。

程序包括移位输入数据子程序、显示矩阵校正程序、LCD显示输出程序,具体流程如图4。

其中显示校正程序是将自己定义的单元值与LCD显示矩阵的值对应;移位输入数据子程序是将校正好的数据移位输入到LCD的笔画电极;LCD显示输出程序则调用移位计数器把数据转换成正确的显示结果。

在本刊的网站上给出了源程序,其中,移位输入数据子程序请参照源代码(a);显示矩阵校正程序请参照源代码(b);LCD显示输出程序请参照源代码(c)。

4.结语
如果LCD显示屏的显示矩阵很规则,在设计程序的时候就可以省去矩阵校正子程序部分。

本文针对没有规律的显示矩阵排列设计了软件驱动程序,巧妙采用了移位计数器和PIC16F873上面的串行数据输出功能,达到了通用显示的目的,本文的方法已经在智能充电器的LCD显示部分得到了很好的应用,并且显示效果相当令人满意。

所提供的源程序均为调试过的程序,可以直接使用。

◆。

相关主题