第十六节:液晶屏第三大类定律—任意位置显示一个点(彩色320240点阵屏).docVIP

  • 9
  • 0
  • 约1.52万字
  • 约 15页
  • 2018-03-09 发布于湖北
  • 举报

第十六节:液晶屏第三大类定律—任意位置显示一个点(彩色320240点阵屏).doc

第十六节:液晶屏第三大类定律—任意位置显示一个点(彩色320240点阵屏)

第十六节:液晶屏第三大类定律—任意位置显示一个点(彩色320240点阵屏) ? ?? ?? ?? ?第三大类定律:任意位置显示一个点的类型。 这类液晶屏在任意位置上以一个点为基本单位,因此X坐标数值的最大范围就直接是横向上的点阵数减去一(因为从零开始)。而Y坐标数值的最大范围就直接是纵向上的点阵数减去一(因为从零开始)。 (1)? ? ? ? 开场白: ? ?? ?这节 我以彩色320240点阵屏为例子,来继续深入了解第三大类定律:任意位置显示一个点的类型。 彩色320240点阵屏跟TFT彩屏有点不一样,彩色320240点阵屏是低像素的屏,仅仅适合显示有颜色的图标或者字体,不能显示照片或者图像等,单片机驱动它完全没有问题。TFT彩屏是高像素的屏,可以显示照片或者图像,用单片机驱动会显得力不从心,必须用高级的芯片,比如ARM系列的。 我这节讲的彩色320240点阵屏是用什么驱动IC呢?这个我也没有仔细去查,反正这类屏很常用,从深圳南头关外的107国道开往固戍方向的小型公共汽车上,就可以看到驾驶室仪表上用的就是这个屏,黑底红字,视觉效果非常棒。 如果读者看了鸿哥之前几节关于液晶显示屏的文章,相信读者能摸出了我做液晶驱动程序的套路: 第一步:当我拿到一款新的液晶屏时,我会先从液晶厂家要回一个演示驱动程序,如果厂家没有就想办法在网上下载一个。靠看驱动芯片的PDF文档写驱动程序是最笨的一个办法。 第二步:厂家或者网上的演示驱动程序大部分都是很乱,没有规则的,但是不用怕,只要根据“吴坚鸿液晶显示三大类定律“的指导思想,在别人的演示驱动程序中寻找到最核心的东西,也就是显示的基本单位是属于三种类型中的哪一种,最后根据显示单位的类型自己动手编写几个最核心的程序void zf_display816, void hz_display1616, void hz_display2424就够了,其它初始化的寄存器参数从来不用管,照抄就可以了。 彩色320240液晶屏实际上就是由一块彩色320240液晶屏组成的,没有分屏合并的概念。彩色320240屏在横向上是320个点,纵向上是240个点,也就是一个长方形的屏。因为它属于第三大类的屏,所以X轴坐标数值的最大范围是320-1=319,而纵向坐标数值的最大范围是240-1=239. 正常的操作思路是这样的,先设置要显示的点的颜色,然后就显示对应的点。要显示对应的点,只要在显示子程序中发送X轴与Y轴的位置数据,就相当于显示某个具体位置的点。 ? ?? ?? ?? ?? ?? ???横向取模,字节正序与倒序的概念解释:当我们一次在横向上显示八个点的基本单位时,实际上等于我们发送了一个字节的显示数据,比如0x01,如果是正序的屏,那么从左到右的八个点中,只有第8个点是显示的,其它的是空白,而如果是倒序的屏,则只有第1个点是显示的,其它是空白的。彩色320240这个屏因为是第三类的屏,所以无论是横向或者纵向,正序或者倒序都可以操作,关键是看你写的驱动程序是按什么模式来写的。我这节是以横向顺序屏的模式来写彩色320240的驱动程序。 ? ?? ?? ?? ?? ?? ? 取模软件是必须的,读者可以在网上自己下载,资料很多。 (2)功能需求: ? ?? ???在彩色320240屏上分别显示8X16的字符,16X16的汉字,24X24的汉字。 (3)硬件原理: 彩屏不用可调电阻调对比度,其它的跟一般的单色屏差不多。模块与背光的电源线接上5V,其它数据线跟单片机的IO口连接上。这个大家都懂。 (4)源码适合的单片机:pic18f4520,晶振为22.1184MHz。 (5)源代码讲解如下: #includepic18.h #define uchar unsigned char? #define uint??unsigned int? #define ulong unsigned long? #define RED? ???0xf800? ???//显示不同的颜色配置参数 #define GREEN? ?0x07e0 #define BLUE? ? 0x001f #define YELLOW??0xffe0 #define CYAN? ? 0x07ff #define MAGENTA 0xf81f #define BLACK? ?0x0000 #define WHITE? ?0xffff #define GRAY? ? 0x8410 #define hi_re 0xf800? ?? ? //显示不同的颜色配置参数 #define hi_or 0xfc00 #define hi_ye 0xffb0 #define hi_yg 0x87e0 #define hi_gr 0x07e0 #define hi_gc 0x07

文档评论(0)

1亿VIP精品文档

相关文档