看大多数朋友还在玩128*64黑白LCM,如果玩够了的话,为什么不试下彩色LCM市面上大把的也不贵,我向大家介绍的就是132*132*RGB64K色彩LCM,也许有朋友想靠,会不会很贵啊?其实只要人民币50,它就是诺基亚6100手机屏,市面上有很多。接口也比较简单,工作只要4条数据线,3。3V模块供电。但是背光供电要6伏。来上个照片吧!如图一,切记现在这种屏驱动IC有两种EPSON和非利蒲的。我们程序中用到的是非利蒲的,两者的指令集是不同的。其中棕色线路的是非利蒲,绿色的EPSON(大多数情况)。《如图片一所示》好了给大家点亮132*132真彩图片的截图,是不是比128*64黑白屏好看多了?其实点亮它的程序也十分简单,整个程序才2K!(不带彩色图片数据文件)如果带(132*132彩色图片(5:6:5)格式文件)大概32K。《如图片二所示》所以推荐采用64K的STC89C516。由于LCM的数据接口,采用小间距的柔性PCB,所以,要焊线引出。《如图片三所始》从右到左分别是1----11脚其中11脚悬空没焊。《如图片四所示》要想彻底玩转,还要对BMP的文件格式有个进一步的了解。所谓的文件格式就是图象数据在电脑中的存储格式,只有了解到每位数据和象素的对应关系,才能在LCM上完整再现图片。众所周知,图片实际是有一个一个的点所组成,这个点实际就是象素,而每一个象素的颜色是任意的可以为红色,黄色,绿色和。。。。,那么这个点是如何做到的?其实这个点还可以继续分正三个部分,通常是红,绿,蓝三色!假如这三个部分中只有红色点是亮的。那么它组成的这个象素点也是红色的(也就是色度是红色的),另外根据红色点的亮度等级不同那么红色的绚艳程度也不同,那就是所谓的色饱和度。当然这三个红,绿,蓝组合起来就可以最成其他颜色,如红+蓝=紫,红+绿=黄,绿+蓝=青,假如用5位2进制数。表示每个色点(不是象素,三个色点才组成一个象素)的话,那么这个色点的绚艳等级就是2的5次方=32级,根据LCM驱动模块的特性,就可以确定每个色点的饱和度等级,比如我们这款收机屏,可以软件调整在4K色或者256色,和最艳丽的64K色,那么在这种最大的显示模式(64K色)是如何分配呢,刚才提到本模块的最大显示分辨率是132*132象素。不多罗嗦了,先研究一个最简单的BMP图片,它只有3个象素点。我们研究下。首先用EDIT32文本编辑软件打开此BMP文件,如《附图六所示》:各部分数据含义解释:A:是“BM”所对应的ASIC码,代表此文件是BMP文件格式。B:整个文件的大小,我们查看属性看到本文件大小为66个字节这里是00000042,就是16进制的0X42,也就是十进制的66!C:这四个字节设置成0,没任何理由,系统规定的。D:真正象素的数据开始绝对地址,比如这里是00000036,那么我们从0X36位置处找到第一个象素的第一部分数据(每个象素有三个组成部分:红,绿,蓝各占一个字节,总共3个字节,24位,这就是24位真彩的来历)。E:位图信息头的长度。(好象都是0X28)F:本位图每行的象素个数(这里是3)G:本位图每列的象素个数(这里是1,因为只有一行)K:位图的位面数(恒为1)L:本位图的图象色彩深度,本文件是24位真彩色,所以是0018M:本位图文件的象素点数据压缩格式。(0,代表不压缩,每个字节代表一种色度分量,3个字节组成完整象素点)1,代表采用RLE8压缩格式,2代表采用RLE4压缩格式,3,采用位域存放一个象素的RGB三部分,我们的132*132模块就是采用这点!5:6:5格式,也就是RGB色度分量按5:6:5分2这两个字节。N:象素占的字节个数:这里是3个象素点,每个象素点三个字节,本应是9才对,但这里却是0000000C也就是12,为什么呢?因为有规定,每行的象素所占字节的个数,必须注意是每行的象素所占字节的个数,一定要是4的整数!不够的填0。所以就多出3个填充字节了。O:水平分辨率。P:垂直分辨率。Q:本文件所使用的颜色数,8位是256,4位是16。。。,对于真彩色这里的东西没用,所以为0。R:指定重要颜色数的个数,如果所用的颜色同等重要,就设置成0,XXXXXX:呵呵,因为256以下的象素都有一个256*R*G*B的色度盘,但这里的色度都直接包含到象素数据里了。所以空白S:真正的象素数据开始点(白点),FFFFFF代表红绿蓝都是最大,所以红+绿+蓝=白!!T:第二个象素(黑点),000000代表红绿蓝都是最小,所以组成了黑点。U:第三个象素(白点),FFFFFF代表红绿蓝都是最大,所以红+绿+蓝=白!!V:本行象素的3个字节填充数据。为什么要填充,前面讲过了。OVER!BMP文件格式就是这么简单。你当然可以自己用画图工具来制作简单的象素图片,然后用文本编辑软件打开,进行分析。为了方便大家自己深入钻研,特贴下图做参考《如附图7》所示!第二节:自己制作图片象素提取工具那么如何才能将上面所说的图片显示到132*132*RGB上呢,总体说来很简单,只要将每个象素所对应的数据经过MCU的三条数据线送到LCM中的相对应的显示RAM中就可以了。但要碰到下面的问题:1,电脑中的图片格式一般是4位,8,16,24位,32,或者4:4:4等位图格式,但是我们的LCM中能显示的最大限度是5:6:5数据格式,所以要想简单的把图片显示到LCM上,我们必须将所要显示的图片用PHOTOSHOP转换下数据格式,比如将24位的真彩8:8:8转成16位的:5:6:5格式。过程很简单,用PHOTOSHOP打开所要转换的图片,然后另寸为BMP文件,会弹出对话框,选择高级,选择图片格式5:6:5就得,如下图所示。2,下一步就是生成C能识别的象素数组。我们用TURBOC或者VC++根据我们最上边对图片数据结构的分析,写一个彩色LCM图片提取程序是很简单的。附件中有用VC++写的图片转LCM数组生成程序,并有源代码,整个程序好象这有百十行!嘿嘿。由于程序简单,你可以结合前面讲的自己分析。使用方法,将用PHOTOSHOP处理过的132*132图片命名为zty.bmp和2.EXE放在同一个文件夹里,双击2.EXE就会自动生成名字为PIX的库文件,里面就是图象数组了。执行上边所生成2.EXE所将132*132彩色图片生成的图片象素数组如下图:不仅可以生成数组PIX。H还可以分析出图片的一些信息如下图3,将所生成的图象数组放到KEIL中编译,在LCM驱动中调用,就可以在你的屏幕上显示出动人的图片了代码请登陆http:://里面有比较好玩的东西,不看后悔哦!