菜鸟学习lcd编程的起步
首先再次声明我是菜鸟,我写出来的目的是给没有接触过lcd的朋友看得,我本人水平有限,错误在所难免,欢迎指出。之所以产生写这个东西的想法,是因为趁着寒假这段时间看了看学习板的源程序,在看lcd的时候很不顺利,花了五个晚上才看完(白天偷懒了_!,毕竟在春节嘛)。联想起还有很多水平和我差不多甚至可能还低一点的菜鸟,就觉得有义务把五个晚上的学习心得写出来,顺便也给自己整理整理思路,嘿嘿。这个心得是针对学习板上的lcd驱动芯片SSD181X系列写的,当然思想应该是相通的。其实是我没有用过其它系列lcd(众人呕吐i
g……)。首先你要去网上下载一个SSD181X系列的PDF文件,这种文件网上到处都是,偶就不多说了。刚开始需要借用51论坛电子白菜大虾的文章作为总领,因为偶比较懒,不想写这么多拉~~~(不要飞鸡蛋……)当然还是有部分内容增加的拉。我介绍的这个是MOTO的手机屏,大小为9654(96列54行)。不过这个小小的LCD屏也是很不错的。对比度可调,而且还有背光:)具体驱动器是:SSD1815,是黑白点阵驱动芯片,最多支持132个SEG和64个COM,还有一个ICON(功能设置)行。说起SEG,COM,也许很多人没接触过,其实玻璃屏的LCD都是使用SEG,COM的扫描来驱动的,为使需要点亮的内容呈显示状态,须将交流驱动电压加在LCD的段电极与公共电极之间。原理涉及物理化学问题,这里就不多说,只打个比喻:一个‘井’字,是两行两列组成的,共有四个交点,其实就好比是2个SEG,2个COM,要驱动一个固定的点,要相应的一条COM和
f一条SEG都有效如果要几个点亮,几个点灭,就需要用到扫描的原理,还记得行列键盘的原理吗?其实它的驱动原理就差不多了:)
上面说的它支持132个SEG,64个COM,所以它支持最多13264个点的LCD。但实际上如果我们的LCD没有那么多个点话,就需要在上电的时候对1815进行初始化,指定COM和SEG的数目,还有BIAS数,说到BIAS,唉,又是个专业问题了,LCD的驱动波形由几级电平组成,为防止对比度不均匀,在不点亮象素对应的电极上仍加有一定电压,这对降低点亮象素产生的交叉干扰和防止对比度不均匀很重要。LCD中非点亮象素(非选点)的电压有效值与点亮象素(选择点)电压有效值之比(1
)称为偏压比。确实比较难以理解,你可以这样看:BIAS是电平强度,和COM有关的东西。以上这些都要在LCD上电的时候初始化好,才能正确地显示图文。1815还自带显示RAM,英文是GraphicDisplayDataRam就是图象显r