![]() |
| 首页 | 段码屏产品分类 | LCD段码屏视角分类 | 段码屏开模时间 | 段码屏驱动 | 了解段码屏 | 联系我们 | |
![]() |
段码LCD液晶屏驱动方法 发布时间:2016年9月9日 15时26分
大家平常在生活中见到最多的就是段码是液晶屏幕了,他有普通的数码管的特征,又有点阵LCD的特征,固定的图形,省成本而有好看,那么,我们今天来一起玩玩! 首先,大家不要以为用单片机来驱动就以为断码屏是直流驱动的,其实,段码屏是交流驱动,什么是交流?矩形波,正弦波等。大家可能会经常用驱动芯片来玩,例 如HT1621等,但是有些段式屏IO口比较少,或者说IO口充足的情况下,也懒得在去写控制器的驱动了。与单片机接口方便,而后者驱动电流小,功耗低、寿命长、字形美观、显示清晰、视角大、驱动方式灵活、应用广泛【1】。但在控制上LCD较复杂,因为LCD电极之间的相对电压直流平均值必须为0【2】,否则易引起LCD氧化,因此LCD不能简单地用电平信号控制,而要用一定波形的方波序列来控制。LCD显示有静态和时分割两种方 但是,IO模拟驱动段式液晶有一个前提条件,就是IO必须是三态, 为什么?下面我们一起细细道来: 第一步,段码式液晶屏的重要参数:工作电压, 占空比, 偏压比。这三个参数非常重要,必须都要满足。 第二步,驱动方式:根据 LCD 的驱动原理可知,LCD 像素点上只能加上 AC 电压,LCD 显示器的对比度由 COM脚上的电压值减去 SEG 脚上的电压值决定,当这个电压 差大于 LCD 的饱和电压就能打开像素点,小于 LCD 阈值电压就能关闭像素点,LCD 型 MCU 已经由内建的 LCD 驱动电路自动产生 LCD 驱动信号,因此只要 I/O 口能仿真输 出该驱动信号,就能完成 LCD 的驱动。 段码式液晶屏幕主要有两种引脚,COM,SEG,跟数码管很像,但是,压差必须是交替变化,例如第一时刻是正向的3V,那么第二时刻必须是反向的3V,注意一点,如果 给段码式液晶屏通直流电,不用多久屏幕就会废了,所以千万注意。下面我们来考虑如何模拟COM口的波形,以1/4D,1/2B为例子: 只要模拟出以上波形,你的液晶屏已经成功了一大半了。 1. void display_sub(u8 y) //lcd display subroutine 2. { 3. switch(y) //4*com,VDD and -VDD LCD display,so 8 timebase interrupt one sacn period 4. { 5. case 1: 6. {com1_output_high();break;} 7. case 2: 8. {com1_output_low();break;} 9. case 3: 10. {com2_output_high();break;} 11. case 4: 12. {com2_output_low();break;} 13. case 5: 14. {com3_output_high();break;} 15. case 6: 16. {com3_output_low();break;} 17. case 7: 18. {com4_output_high();break;} 19. case 8: 20. {com4_output_low();break;} 21. default: 22. {LCDPluseStep=0; 23. get_display_code(AD_Value,KeyScanRetVal); 24. break;} 25. } 26. } 入上图代码所示,定时2ms,让4个COM交替输出波形即可。 1. static void seg1_output(void) //seg1 output subroutine 2. { 3. if(1 == (LCDPluseStep%2)) //com_pulse is odd,com output high (VDD) 4. { 5. if(0 == (DisplayCode1&0x10)) 6. {SEG1=1;} 7. else 8. {SEG1=0;} 9. } 10. else //com_pulse is even,com output low (VSS) 11. { 12. if(0 == (DisplayCode1&0x10)) 13. {SEG1=0;} 14. else 15. {SEG1=1;} 16. } 17. } 时刻让SEG电平跟COM的电平反向,那么驱动段式液晶就不会有多大难度了 |
|