2串LED背光的液晶屏需要超过6V的起辉电压,在3.3V-5V的单片机应用中需要升压才能点亮,若采用规范制式电路和器件来驱动会很嫌麻烦。但是你若不耻引用俺的招式,就会懵地回转到简单易行、轻松愉快的搞定。
多次的科学实验证明了第一图最为简易而且实用靠谱。过亮时可以通过代码调整输出方波空宽比,还有条件设置程序中的亮度调整。这得益于STC之PWN功能很好玩。
波形显示:脉冲周期180uS、上为LED端波形,其直流幅值4,8V+2.2V脉冲、下为STC的输出端波形波幅4.1V,空宽比2:1。
在电池供电时二极管压降损耗不能忽略,加3极管后充电压降减小,实验证明效率提升明显。
双口同步驱动进一步减低STC推挽管损耗。
有的屏若方便引出中点连线的话则更为简单,适合于对称方波,这时可能会太亮需要电阻限流。
需要多倍升压时的电路,2口互为反相。但这时驱动电流小、效率比计较低。
若为STC单片机而且有PWM功能则用以下代码就可用P2.7直接通过电容和二极管驱动背光。
void PWM_Init(void) //算法为f = fosc/12/256
{ PCA_USE_P24P25P26P27(); //切换输出引脚
CCON = 0; //初始化PCA控制寄存器
PCA_CLK_12T(); //fosc/12
PCA_PWM2 = 0x00; //PCA模块2工作于8位PWM,
CCAP2H = CCAP2L = 0xb0; //0x80时输出对称方波,增减可调空宽比。
CCAPM2 = 0x42; //PCA模块2为6位PWM模式
CR = 1; //PCA定时器开始工作
}
若单片机没有PWM功能,可用定时器中断来翻转I\O口驱动背光。
(若单片机没有推挽输出功能,则还需要加推挽输出管。)
timer0()interrupt 3 using 1
{ TR1 = 0;
TL1 = 0x00; //重设定时初值
TH1 = 0xC4; //重设定时初值
TR1 = 1; //定时器1开始计时
LCD_BG=~LCD_BG;
}
void main()
{ P4M0 =0x10;
P3M0=0x20;
AUXR &= 0xBF; //定时器时钟12T模式
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x10; //设置定时器模式
TL1 = 0x00; //设置定时初值
TH1 = 0xC4; //设置定时初值
EA=1; //CPU开中断*/
ET1=1; //T0开中断*/
TF1= 0; //清除TF1标志
TR1 = 1; //定时器1开始计时
。。。。。
一个二极管和一个电容就搞掂背光电路
如果LED中引出焊线,会更简单,但你会注意到此法用空宽比改变不了亮度。只能用电阻调整
使用STC的PWM最低方波周率5-6KHz,人眼觉不出闪烁,效率很高,还有利于使用小电容。
|