普通MCU驱动液晶LCD方法_第1页
普通MCU驱动液晶LCD方法_第2页
普通MCU驱动液晶LCD方法_第3页
普通MCU驱动液晶LCD方法_第4页
普通MCU驱动液晶LCD方法_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LCD(Liquid Crystal Diodes)是液晶显示器的简称。LCD显示器具有体积小、重量轻、功耗极低、易于定制、显示内容丰富等特点,被越来越广泛地应用于仪器仪表、通信产品、家用电器等领域。根据不同种类的LCD,其驱动方式分为静态和动态两种,其中动态驱动方式可以减少LCD显示器的引线和相应的驱动电路,适用于较多位的字符显示和点阵式显示,是现在和将来LCD显示驱动的主导方式。但LCD的动态驱动与控制较为复杂,实际应用中,通常都是使用专用的IC芯片,或直接采用具有动态LCD驱动接口的单片机。前者一般较为昂贵,且通用性不好,后者则需具有针对相应单片机的开发系统或开发手段。这些都限制了LCD显示器更为广泛的应用。本文介绍了一种简单的方法,可以用一般并行接口配合单片机软件进行LCD的动态驱动,从而使得具有任何型号单片机开发手段的人都可以使用动态驱动的LCD显示器。作为实例,本文采用与MCS51系列兼容的ATMEL 89C1051单片机串行口扩充的并行口实现了具有3个公共背极,51个显示段位的LCD的驱动,显示效果良好,费用极其低廉。2动态LCD的一般驱动原理1由于LCD的电化学特性,LCD的驱动一般采用交流驱动。图1为基本的LCD驱动电路和工作波形。图中A为显示频率信号,C为显示控制信号。从中可以看出,当LCD两极间电压为零时,不显示;而当LCD两端为交替变化的电压时,LCD显示。动态驱动方式的实质是用矩阵驱动法来驱动字段的显示。在此,字段引线相当于行引线,公共背极引线相当于列引线,字符的每一字段相当于矩阵的一个点。由于是交流驱动,因而不能采用象LED的动态驱动方法,即用LCD的公共电极作为显示的开关控制极;也不能将LCD驱动线悬空,否则在悬空线与选通线交点上的非选通点则会由于液晶所具有的电容特性而产生交叉显示效应,使清晰度下降。一般作法是在非选通点上加上低于LCD显示阈值的电压信号,以消除交叉效应的影响,如偏压法。图2以22矩阵为例说明采用偏压法时只有D、S线交点显示的情形。各线上所加电压及其相位如图2(b),各显示点的电压如图2(c)所示。从中可知,在显示点上有工作电压Vc,其它点上的最高电压只有1/2Vc。因此,当显示阈值电压大于1/2Vc而小于Vc时仅显示点显示。由以上可知,动态LCD驱动与控制较为复杂,因而在实际应用中,通常都是使用专用集成电路,如MC145000和MC145001等或带有LCD动态驱动接口的单片机。在众多显示器件中,TN液晶显示器以它价格低廉,耗电量低,显示清晰等优势成为很多小产品的首选显示器件;lcd正常显示需要交流方波,而且为了不重复显示笔段,需要4个COM分时显示,但是专用的lcd驱动芯片价格较高,且增加了系统的复杂程度,带lcd驱动的mcu价格更是不低,怎么办呢? 如果我们徐娅的笔段不多的话就可以考虑用普通IO型的单片机模拟lcd驱动波形来使用lcd了.要使用LCD之前我们需要了解关于LCD的几个参数:1. 电压: 这个我们一般和mcu供电电压一致就可以了,lcd电压高于mcu电压易造成亮度不够,lcd电压低于mcu电压易造成鬼影(不该点亮的笔段却点亮)2. 偏压(BIAS): 偏压级数越多lcd的对比度级别就越多,对于mcu驱动的简单lcd我们为了简单只需要亮和不亮两种状态就够了,所以只要1/2的就可以了,不必做成1/3,1/4 .3. 周期(DUTY): 周期跟公共端COM的个数有关,例如3个com,周期就是1/3 ,4个com周期就是1/4了解以上几点我们就可以进行下一步了,下面以一个例子作为引述: 图1 LCD 逻辑图图2 MCU脚位图我们以以上两个图片作为此次实验,图1为LCD的逻辑图和连线图,图2是与单片机连接的脚位图,注意实际上单片机的COM1-COM4这几个引脚对地和VCC之间接有100K的电阻.我们需要在lcd上面第一个8字从0-9依次显示,每秒递增1次,一直循环: 根据图1得到0-9的com1-com4对应的SEG码如下:;COM1BTL查表;COM1BTL:ADD PC,ARETL 0XF1;0RETL 0XF3RETL 0XF1RETL 0XF1RETL 0X03;4RETL 0XF1;5RETL 0XF1RETL 0XF1RETL 0XF1RETL 0XF1;9; ;COM2BTL查表;COM2BTL: ADD PC,ARETL 0XF0;0RETL 0XF2;1RETL 0XF2;2RETL 0XF2;3RETL 0XF0;RETL 0XF1RETL 0XF1;6RETL 0XF2;RETL 0XF0;RETL 0XF0;9;COM3BTL查表;COM3BTL: ADD PC,ARETL 0XF1;0RETL 0XF3;1RETL 0XF0;2RETL 0XF2;3RETL 0XF2;4RETL 0XF2;5RETL 0XF0;6RETL 0XF3;7RETL 0XF0;8RETL 0XF2;9;COM4BTL查表;COM4BTL: ADD PC,ARETL 0XF0;0RETL 0XF2;1RETL 0XF1;2RETL 0XF0;3RETL 0XF2;4RETL 0XF0;5RETL 0XF0;6RETL 0XF2;7RETL 0XF0;8RETL 0XF0;9以上查表采用的是0代表点亮1代表不点亮,得到以上查表我们需要做的就是每个COM分时输出固定的波形,com输出波形同时查表输出对应的笔段,这样就能正常显示了,具体流程图如下;1. COM1 输出高,其他com1/2电平(输入),seg查表2.COM1 输出低,其他com1/2电平(输入),seg查表并取反3. COM2 输出高,其他com1/2电平(输入),seg查表4. COM2 输出低,其他com1/2电平(输入),seg查表并取反5. COM3 输出高,其他com1/2电平(输入),seg查表6. COM3 输出低,其他com1/2电平(输入),seg查表并取反7. COM4 输出高,其他com1/2电平(输入),seg查表8. COM4 输出低,其他com1/2电平(输入),seg查表并取反9. 跳到1 具体程序如下:LCD_DSPLY:;11111;COM1=3V,其他COM=1.5V;MOV A,0XFF;IOW P5IOW P6;MOV A,LCD_BUF; LCD显示查表CALL COM1BTL ;MOV P6,A;驱动seg显示;MOV A,0B00001110IOW P5;P5方向BS P5,COM1;COM1=3V;MOV A,0B11111100IOW P6;CALL DELAY16MS;延时16ms,扫描一个周期=16ms约60HZ;2222;COM1=0V,其他COM=1.5V;MOV A,0XFF;IOW P5IOW P6;MOV A,LCD_BUF; LCD显示查表CALL COM1BTL ;MOV TBL_BUF,A;COMA TBL_BUF;seg取反MOV P6,A;驱动seg显示;MOV A,0B00001110IOW P5;P5方向BC P5,COM1;COM1=0V;MOV A,0B11111100IOW P6;CALL DELAY16MS;延时16ms,扫描一个周期=16ms约60HZ;3333333;COM2=3V,其他COM=1.5V;MOV A,0XFF;IOW P5IOW P6;MOV A,LCD_BUF; LCD显示查表CALL COM2BTL ;MOV P6,A;驱动seg显示;MOV A,0B00001101IOW P5;P5方向BS P5,COM2;COM2=3V;MOV A,0B11111100IOW P6;CALL DELAY16MS;延时16ms,扫描一个周期=16ms约60HZ;44444444,COM2=0V,其他COM=1.5V;MOV A,0XFF;IOW P5IOW P6;MOV A,LCD_BUF; LCD显示查表CALL COM2BTL ;MOV TBL_BUF,A;COMA TBL_BUF;seg取反MOV P6,A;驱动seg显示;MOV A,0B00001101IOW P5;P5方向BC P5,COM2;COM2=0V;MOV A,0B11111100IOW P6;CALL DELAY16MS;延时16ms,扫描一个周期=16ms约60HZ;55555,COM3=3V,其他COM=1.5V;MOV A,0XFF;IOW P5IOW P6;MOV A,LCD_BUF; LCD显示查表CALL COM3BTL ;MOV P6,A;驱动seg显示;MOV A,0B00001011IOW P5;P5方向BS P5,COM3;COM3=3V;MOV A,0B11111100IOW P6;CALL DELAY16MS;延时16ms,扫描一个周期=16ms约60HZ;6666666,COM3=0V,其他COM=1.5V;MOV A,0XFF;IOW P5IOW P6;MOV A,LCD_BUF; LCD显示查表CALL COM3BTL ;MOV TBL_BUF,A;COMA TBL_BUF;seg取反MOV P6,A;驱动seg显示;MOV A,0B00001011IOW P5;P5方向BC P5,COM3;COM3=3V;MOV A,0B11111100IOW P6;CALL DELAY16MS;延时16ms,扫描一个周期=16ms约60HZ;7777777,COM4=3V,其他COM=1.5V;MOV A,0XFF;IOW P5IOW P6;MOV A,LCD_BUF; LCD显示查表CALL COM4BTL ;MOV P6,A;驱动seg显示;MOV A,0B00000111IOW P5;P5方向BS P5,COM4;COM4=3V;MOV A,0B11111100IOW P6;CALL DELAY16MS;延时16ms,扫描一个周期=16ms约60HZ;888888,COM4=0V,其他COM=1.5V;MOV A,0XFF;IOW P5IOW P6;MOV A,LCD_BUF; LCD显示查表CALL COM4BTL ;MOV TBL_BUF,A;COMA TBL_BUF;seg取反MOV P6,A;驱动seg显示;MOV A,0B00000111IOW P5;P5方向BC P5,COM4;COM4=3V;MOV A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论