数字电位器在液晶显示模块温度补偿电路中的应用

时间:2009-12-04

  液晶显示器件独具的低压、微功耗特性使它可以直接与大规模集成电路结合开发出一系列具有便携显示功能的产品,再加之其显示信息量大和接口方便等优点,现在已被广泛应用于计算机和数字式仪表等领域,成为测量结果显示和人机对话的重要工具。本文方案选用SMC0820E液晶显示模块作为显示器件。为使LCM在不同的温度下有较好显示效果,还引入数字电位器X9313实现其温度补偿电路,有效控制LCM偏压输入。本文在介绍SMC0820E和X9313的基础上,讨论了两者的硬件接口电路及软件编程。

  液晶显示模块SMC0820E

  SMC0802E标准字符点阵型液晶显示模块,采用点阵型STN(Super Twisted Nematic)液晶显示器,可显示2×8西文字符,字符尺寸为2.96mm×5.56(W×H)mm,内置HD44780接口型液晶显示控制器,可与MCU单片机直接连接,广泛应用于各类仪器仪表电子设备。

  1 主要技术参数

  工作电压:4.8~5.2V;

  工作电流:2.0mA(5.0V);

  工作温度:-30~+80℃;

  接口方式:并行接口。

  2 温度特性

  液晶既具有晶体的双折射性又具有液体的流动性,只有在一定的温度范围内才呈现液晶态,且在液晶态温度范围内,其特性也随温度变化而变化,这一特性对STN型LCD尤其重要。因此,LCD的特性与环境温度密切相关。温度低时,LCD的透射比就会降低,引起图像模糊;温度高时,又会产生严重的交叉效应。为保证液晶显示能在较宽的温度范围内正常工作,驱动电路的温度补偿是必不可少的。本方案引入数字电位器X9313进行温度补偿,可通过控制LCM的偏压输入使其保持稳定的对比度。通过实验,可得本文选用的液晶显示模块偏压输入的温度特性,该温度范围适合正常工作环境的要求,具体数据如表1所示。

  由表1可知,对LCM偏压输入的控制分为两部分:常温和低温。为得到低温情况下详细的温度特性,对表1中数据进行三次样条曲线拟合,可以得到该区间内任一温度对应的偏压输入值,拟合曲线如图1所示。

  图1 LCM温度特性拟合曲线

  数字电位器X9313

  数字电位器属于模拟/数字混合信号产品,是一种步进可调电阻。其输入为数字量,输出为模拟量,是一种特殊的数/模转换器。但其输出量并非电压或电流,而是电阻值或电阻比率,故亦称之为电阻式数/模转换器。

  1 性能特点

  数字电位器与机械电位器相比,具有许多优点,具体性能优点如下:

  (1)采用集成电路工艺制成的,彻底解决了因滑片磨损而造成接触不良的问题。

  (2)很容易与单片机或计算机接口,为实现批量产品的自动调节创造了条件。

  (3)具有存储设置或数据的记忆功能。下次通电时能自动恢复上次操作时的存储位置。

  (4)重复性好、可靠性高、密封性好、噪声低、不容易受污染、防潮湿、抗振动、抗冲击、基本不受温度、湿度、压力等环境因素的影响,使用寿命长,能提高系统的可靠性。

  2 工作原理

  X9313为基于三线加/减式接口的单路32抽头非易失性数字电位器。该接口属于异步串行接口,通过三根线来传送控制信号,包括片选信号(CS)、滑动方向控制信号线(U/D)和滑动端控制信号线(INC,又称计数脉冲输入信号线)。X9313有多种工作模式可供选择,用户通过不同状态下控制信号,选择所需的工作模式,具体内容可参见X9313数据手册。

  3 硬件接口电路

  液晶显示模块SMC0802E与微控制器的接口有直接访问和间接访问两种。直接访问方式就是把LCM作为存储器或I/O设备直接挂在单片机总线上;间接访问方式就是把LCM与单片机的某个I/O口连接,单片机通过对该I/O口的操作间接实现对LCM的控制。本方案采用直接访问方式,LCM的读写和片选信号也由MCU直接控制。数字电位器X9313的控制端CS、U/D、INC分别与MCU的三个I/O口连接,由MCU直接控制;输出端通过两个3kΩ分压电阻与SMC0802E的VEE和V0连接,VEE为液晶显示模块负压输出,经过电位器分压,得到所需偏压输入V0,调节LCM对比度。NPN型三极管的E极接入MCU的I/O口,C极接入SMC0802E的BLK引脚,通过MCU输出高低电平,控制三极管的导通,从而控制LCM背光的打开和关闭。具体硬件接口电路如图2所示。

  图2 硬件接口电路

  4 程序设计

  软件采用嵌入式C语言开发,温度补偿程序流程图如图3所示。

  图3 温度补偿程序流程图

  数字电位器程序主要包括三个部分:调节阻值至零,调节阻值至所需位置和保存阻值。根据X9313的模式选择和时序波形图,控制MCU的I/O口输出,选择数字电位器不同的工作模式,输出不同的阻值,调节LCM偏压输入。具体通用程序如下:

  void X9313_SetVol(uchar R_Num)

  {

  uchar i;

  _DINT();

  P2OUT |= BIT0;

  _NOP();_NOP();

  P2OUT |= BIT1;

  _NOP();_NOP();

  P2OUT &= (~BIT0);

  _NOP();

  //调节阻值到零

  P2OUT &= (~BIT2);

  _NOP();_NOP();

  for(i=0;i<32;i++)

  {

  P2OUT |= BIT1;

  Delay(2);

  P2OUT &= (~BIT1);

  Delay(2);

  }

  //调节阻值到R_Num

  P2OUT |= BIT2;

  _NOP();_NOP();

  for(i=0;i<R_Num;i++)

  {

  P2OUT |= BIT1;

  Delay(2);

  P2OUT &= (~BIT1);

  Delay(2);

  }

  //保存电阻值

  P2OUT |= BIT1;

  Delay(2);

  P2OUT |= BIT0;

  Delay(2);

  P2OUT |= BIT2;

  Delay(2);

  P2OUT |= BIT1;

  _EINT();

  }

  数字电位器输出电阻分辨率为总阻值的1/32,程序中R_Num表示模拟开关的位置,电位器输出电阻即为总阻值的R_Num/32。void Delay(int x)为延时函数,延时时间约Xms。

  结语

  将设计好的系统放入温度箱,进行温度实验,结果表明:在不同温度下,数字电位器输出不同的电阻值,液晶显示模块对比度稳定,显示良好。


  
上一篇:DMR终端锁相调频接收机设计
下一篇:基于双DSP的电力系统谐波分析仪的设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料