图D 调频收音机 图E 液晶模块采用“COG”封装 图F 点阵液晶显示原理
在制作单片机系统时,一般都需要用显示器件来显示单片机的工作状态并显示输出结果,如LED、数码管和液晶显示器等。LED最简单,但能给出的信息很少。数码管能清晰地显示数字和部分字母,但是耗电较大,不适合使用电池供电的装置。
常见的液晶显示器有段式液晶、字符液晶和图形液晶等。其中,段式液晶最省电,但对于通用显示使用起来不很方便,只能显示固定式数字或符号,而且需要专用驱动电路或特殊的单片机。
字符液晶(如1602)用得比较多,容易和单片机配合,但是一般都需要5V工作电压,虽然现在也有3V就可以工作的模块,但是体积还是较大,而且只能显示数字和西文字符,无法显示图形和汉字。
点阵液晶模块既可以显示ASCII字符,又可以显示汉字和图形,相对于前面几种,具有更大的灵活性,所以使用得越来越多。不过常用的图形液晶因为显示面积增加,体积比字符液晶(如1602)更大,价格也更贵。初学者要注意的是,12864图形点阵液晶随着厂家设计使用的驱动芯片不同,驱动程序有所区别,不像1602那样基本通用。
液晶模块SO12864-12C简介
此型号小液晶包括一系列子型号,详见http://www.szxianjie.com/chanpin/。这次所用的SO12864FPD-12CSBE只是其中的一种,我们先来了解一下它的主要特性: ◆逻辑或电源电压2.8~5.5V; ◆蓝色背光,背光电压3V;
◆串行接口,用 8个焊盘引出包括电源、背光、地和控制线数据线; ◆不带字库,需要自己编辑外部字模数组;
◆速度较快,用时钟1MHz的AVR单片机驱动,编程时无须附加脉冲额外延时; ◆使用ST7565电路,命令代码一共23条。
显然,它十分适合低压小尺寸场合应用,串行接口最大限度减少了液晶和单片机的连线,虽说比并行慢一点,实际上如果不是频繁刷屏影响并不大。要自己编制字库确实比
较麻烦,但是只要显示的文字量少,制作小字模也不困难,反而可以自己打造个性化的字体,使得显示具有特色。
把液晶模块翻过来,如图5所示,发现电路板上没有通常液晶模块的黑胶封装集成电路,原来这个液晶采用的是“COG”封装,就是把集成电路直接绑定在液晶玻璃板上。 它的8个接口焊盘位于模块上方,定义如下:
片选CS:它为低电平才能进行操作,在加载数据后至少维持40ns低电平。 1. 复位RES:启动时至少维持1μs低电平以使液晶内部复位,然后升高,再过1μs完成复位,以后才能对液晶进行操作。 2.
命令数据选择A0:高电平为数据,低电平为命令。 3.
串行时钟SCL:顶底宽度至少25ns,低时A0和SI至少稳定20ns,然后在上升沿加载数据或命令。 4.
串行数据SI:同上,在SCL上升沿加载后至少还要保持10ns稳定。 5. 电源正VCC:最低2.8V,标准3V,最大5.5V。 6. 地VSS。 7.
背光LED+:蓝色背光最低2.8V,标准3V,最大3.2V,使用时要注意不要超过。 8. 在串行模式时,一个命令或数据字节要分为8次加载,从最高位开始。
液晶SO12864-12C的编程要点
控制液晶最基本的工作就是往液晶的控制器写入命令码或往显缓区写入数据码,是命令还是数据由加到上述A0的电平高低决定:高,数据;低,命令。
因为现在是串行传送,所以只能由高到低一位位写。
串行只能写不能读。以前要靠读来判定液晶是否忙,这个液晶速度较高,实际使用证明串行传输不用读忙。
编程就是用单片机的几根口线按照所需的时序发出高低电平,再往液晶里送入代码或数据。控制脉冲和代码脉冲的时序关系如图7所示。
图7 控制脉冲和代码脉冲的时序关系
图形点阵的显示原理
12864点阵液晶的图形显示原理都差不多。液晶屏x方向(水平)具有128列像素从左到右为第0列……第127列,y方向(垂直)具有64行像素。每8行组成1页,从上到下就是第0页……第7页。这样以列号和页号为坐标,就可以指定交叉位置的8个像素。例如第0、1、2、3列第1页的8个像素,如图6所示。在液晶内部有一块显示缓存区,按照列号和页号就可以对显缓区的某个字节写数,该字节的8位二进制数就对应了液晶屏同样位置的像素的亮灭,如对第1列第1页的那个缓存单元写入0X80即0b10000000,那么液晶对应位置的最下面一点7亮(低位在上高位在下)其余都灭,如果第2列第1页写入0X0F即0b00001111,则该位置上方4个点0123亮,其余像素不亮,第3列第1页写0X33,则该处间隔2点亮。这样就可以通过程序控制液晶屏的任意像素了。不同的液晶屏指令代码可能不同(例如这个屏和常见的7920驱动不一样),屏幕划分也可能不同,例如有的是分为左右两半,每半边64列,有的是分为上下两半等。