12864是128×64显示分辨率的一种LCD液晶显示屏,对于电子爱好者来说是必然会去尝试的一个器件,要想在12864上显示东西,就必须为其编写驱动,这个驱动说难也不难,说简单也不算简单,但是世上无难事,只怕有心人。
其实我们要做的就是写几个容易使用的函数,比如在屏幕上画一个点,你会这么想,好吧,有没有现成的draw_point(int x,int y)诸如此类的函数给我使用呢?其实学习C语言到了后期很大程度上,一部分函数是自己写,还有其他很多的函数不是自己写,而是直接调用写好了的,当然,这些写好的函数会给外部提供一个简单易用的接口,就比如上面所提到的那种,对于12864来说嘛,肯定是有的,不过在这里,我的目的是自己写一个。
话说回来,12864的驱动其实是指一种更为通用的函数的集合,通过这样的集合的互相有顺序的调用,你就可以做到你想要做的事情,当然,这些会在后面一一说明,好了,废话不多说,那就开始吧。
在学习某一个电子器件的时候,有两个东西是很重要而且是唯一重要的,一个是时序图,还有一个,还是时序图,电子器件如果不是那种一接上电源就能亮的,那就肯定有时序图,因为时序图就像是一部使用说明书,他能够帮助你快速的找到这个器件的关键所在,也能顺利的学习驱动起这个器件所需要的各条语句的架构,所以说,首先也是唯一,你要看时序图,多看时序图。
在时序图之前,还有一件事情需要说明,并行方式驱动和串行方式驱动,其实说白了,就是有两种方式可以驱动12864,你如果单片机上有很多可用的接口(如果单片机是啥还不知道,这个我就不解释了,可以问问百度),那么就用并行,如果可用的接口很少,那么就用串行的,就像并行需要10根线,那么串行就只需要3根线,就在于用多少资源,干的是一样的事情,这个事情就是从这些线上传输信息给单片机,只不过干事情的速度有快慢罢了,当然,从驱动上说,当然是资源多好办事,并行的驱动比较容易写出来。
好,那就分并行和串行来介绍12864的驱动,并行的方式,首先亮图:
图1
这张图就是时序图,并行的我们就看上面这张,也就是8-bit这张图,对于LCD来说,LCD能做的事情就是显示,显示点,然后由点发散开来,线,面,啥都有,当然也就会有英文中文的字符了,那么完成这件事,就只要干好两件事,一件是告诉LCD我要给你发出数据,另一件就是紧接着发出数据,LCD其中有固化好了的硬件的电路,也就是根据这上面的图可以看出来的东西,作用就是当你发出信号时让他会知道你要发出数据,在你发出数据后他能接收数据放到正确的地方去,如此而已,其实对于所有的电子器件来说也就是这么简单的一件事,只不过有的器件做的事情比较复杂,时序图就不会只有那么一两张,会有7,8,9,10张,能够发出的信号的种类也有几十上百种,在清楚了这些之后,所有的器件驱动都是一样写。
好了,先到这里,元芳,后面更精彩!
用户1602177 2012-10-30 16:03