美容仪LCD液晶屏
美容仪液晶显示屏
美容仪液晶显示屏采用的是国际先进技术VA液晶显示屏,自带触摸功能,对比度好,颜色鲜艳,还可以支持定制。
以下图为例
3.SEG脚9个并拢一起,3V电压负极触碰,就可以看见显示内容了。
应用领域广泛
以下是收集了一些资料关于如果用单片机MCU来直接驱动LCD液晶显示屏。希望对阁下有所帮助。
LED数码管的驱动是比较简单也容易理解的,多位数码管一般是LED阵列的形式,每个数字使用一个公共端,不同数字的对应同笔段使用一个控制端;驱动采用分时扫描没个数字位,动态显示。但是LED比较费电,我想做一个用电池供电的钟,用发光管电池就撑不了多久了。于是我考虑用液晶。 在深圳这边的卓进威厂家我买到一个4位笔段式液晶屏,4个数字最中间有冒号,边上还有几个箭头符号,一共有15个引脚,正合适用AVR来驱动做一个钟。
笔段式LCD屏的结构与LED数码管很相似,但是由于是液晶,工作机理上不同,驱动方式也有很大差异:
(1) LED有正负之分,液晶笔划没有。
(2) LED在直流电压下工作,液晶需要交流电压,防止电解效应。
(3) LED需要电流提供发光的能量,液晶笔划显示状态下电流非常微弱。
(4) LED对微小电流不反应,液晶则很敏感。
不难看出,用LED的驱动方式来对待LCD屏是行不通的。我在买回来测试这块屏之前没有意识到,于是走了不少的弯路。与LED驱动不同的是需要给每个笔划加上一个交流电压。一般用30-60Hz的方波就可以了,频率再低显示会有所波动,频率高了功耗也会增加,因为LCD对电路呈现容性。而且,正负电压都可以“点亮”液晶。
好在AVR的I/O口可以三态输出,也就是除了高/低电平,还可以呈现高阻抗,相当于断开连接。于是我想到了这样的办法:不需要显示的那一组笔划对应的公共端悬空(I/O口选择三态),那么就不会加上电压了。照这个思路,我的实验电路焊好,出来的显示却是一团糟:笔划都黑了看不清。我这才考虑到液晶本身的问题:阻抗高,而且有电容,是不可一边悬空的!这个道理也许跟CMOS输入端差不多。查找了一些关于液晶的资料,大致知道LCD屏不是那么简单的,驱动方式通常是1/N,也就是电压不止高低两档。可是单片机I/O没有那么多输出状态可以选择。
1/3 Bias驱动需要将Vcc--GND之间的电压三等分,一个周期驱动波形示例如下:
COM1: V+ --------
2/3 --------
1/3 --------
GND --------
COM2: V+ --------
2/3 --------
1/3 --------
GND --------
SEG1: V+ --------
2/3 --------
1/3 --------
GND --------
SEG2: V+ --------
2/3 --------
1/3 --------
GND --------
在(COM1,SEG1)笔段上,电压为+1, -1/3, -1, +1/3 ...在(COM1,SEG2)上为+1/3, +1/3, -1/3, -1/3 ... 在(COM2,SEG1)上:+1/3, +1/3, -1/3, -1/3 ...在(COM2,SEG2)上:-1/3, +1, +1/3, -1 ...
于是计算平均功率,在(COM1,SEG1)和(COM2,SEG2)上面是2*1^2+2*(1/3)^2=20/9在(COM1,SEG2)和(COM2,SEG1)上面是4*(1/3)^2=4/9,两者之比5:1
假如不是上图的1/2分时驱动而是1/4分时驱动,这个比例将变为
2*1^2+6*(1/3)^2 vs 8*(1/3)^2 = 3:1
若将原来的1/2 Bias改用1/3 Bias驱动,对于我的LCD屏这个比值从7:3改善为3:1了。既然PIC16F913只设计了1/2 Bias与1/3 Bias,用起来应该问题不大。
AVR单个I/O口要实现4种电压输出——不可能吧,我是想不出来了。AVR最多只有三种电压输出,能不能对这个电压再做等分呢?一番思索之后我想这样行不行:就4等分吧.
COM1: V+ --------
3/4
1/2 ------- --------
1/4
GND --------
COM2: V+ --------
3/4
1/2 -------- --------
1/4
GND --------
SEG1: V+
3/4 -------- ---------
1/2
1/4 ----------------
GND
SEG2: V+
3/4 ----------------
1/2
1/4 -------- ---------
GND
我的做法就是SEGx输出有两种:3/4*Vcc和1/4*Vcc,而COMy输出有三种:Vcc, GND, 1/2*Vcc.对于每个I/O口,并不需要4种电压输出。当然这样跟1/3 Bias驱动是不一样的,但是却达到了1/3 Bias驱动的效果,只不过加在液晶笔段上的电压
值更大
不是Vcc而是3/4*Vcc了,因此电源电压也需要提高。这里计算省略。
这种驱动方式我称之为"伪1/3 Bias驱动".对于COMy的处理和前面一样,对于SEGx,将I/O输出电压改变一下,高电平3/4*Vcc,低电平1/4*Vcc就好了。我的做法是:
/-------------- I/O Port pin
|
[ ]
[ ] 1Meg
[ ]
|
to LCD SEGx --------------+
|
[ ]
[ ] 1Meg
[ ]
|
|
1/2 Vcc
这里的1/2 Vcc可以将电源电压用电阻分压得到,我想的办法是直接接个几uF电容到GND,实验是成功的。因为随着扫描的进行,这个地方的平均电压是输出高电平和低电平的一半。
目前我做了一个Mega48V的秒计数器,再改改就能把钟做出来了。
补充一下,液晶屏的引脚与笔划的对应跟LED数码管可能不一样,我这个屏是这样的: 以前有一个家用热水器控制项目,硬件与软件是分开搞的.为了省成本,硬件工程师不用专用液晶驱动IC,把我搞得够呛.整个项目20天时间,光液晶驱动程序用去了10多天. 如果能选择驱动IC来驱动,软件更简单一点。驱动IC已经有简化处理了,表格上处理也容易。因为这个原理是MUC连接驱动IC,驱动IC再连接屏。MCU只需要5根数据口,VDD,VSS,DADTA,WR,CS,输入到驱动芯片,节省了大量的IO口。驱动IC只要和LCD液晶屏的COM线和SEG线一一连接,事情就完成了,接下来就是用MUC来驱动。驱动IC现有的一般选择HT1621B系列。 |