• 欢迎来到 - 我就爱电子网 - http://www.592dz.com !
您的位置:> 我就爱电子网电子文章信息显示与光电技术双缓冲实现图形液晶的快速显示 -- 正文
正文

双缓冲实现图形液晶的快速显示

[09-15 23:17:43]   来源:http://www.592dz.com  信息显示与光电技术   阅读:9698

 

概要:光标,光标处的数据读和写等等。更改显示RAM中的数据,也就更改了液晶屏的相应内容。作为现在流行的显示器件,液晶有其固有的优越性,但也有严重不足之处。相对CRT等显示器件而言,最主要缺陷是视觉效果差,亮度不足,视角偏小,响应速度慢(“拖尾”现象)。同时,根据前面的叙述,我们可以看到:由于硬件系统的局限性,显示RAM通过内部总线与控制器相连,微处理器对液晶显示RAM 的寻址采用了间接的端口译码方式,而不是速度更快的直接内存寻址。译码的延时会进一步减缓显示速度。表现在用户界面上,很可能出现刷新的延迟,屏幕的闪烁,以及余辉现象,都会引起视觉的不舒适。一方面降低了产品的档次,另外用户长时间操作时会导致眼睛的疲劳,产生厌倦情绪。2.基本介绍无论是LCD还是CRT,进行绘图,都是在“画布”上做清除旧位置的图和重新画新位置的图的操作。当程序执行速度不够快时,我们会看到清除的操作与重画的操作,这就造成了闪烁现象。解决这个问题的方法之一,就是把清除与重画的操作放在另一张“画布”上完成,等到画完后再复制到最后要显示的“画布”上。这种绘图方式就是双缓冲。实际上,图形的双缓冲显示方式,对于Windows程序设计员来说,一点也不陌生。以MFC绘图机制来说,CPaintDC就是要显示的画布,如果我们使用另外一个兼

双缓冲实现图形液晶的快速显示,http://www.592dz.com

  摘要:液晶是嵌入式设备最常用的显示器件。本文详细介绍了用双缓冲的方式实现图形液晶的快速显示。

  1. 引言

  在嵌入式设备中,液晶已经成为显示器件的首选。液晶类型有字符和图形之分,字符液晶便宜且显示速度较快。在中文显示或者复杂图表显示的场合,需要使用图形液晶。

  在液晶接口电路设计时,需要正确使用液晶控制器。典型应用时,特别是在嵌入式系统中,常常采用端口寻址的液晶控制器,如SED1335、T6963C等。这种寻址方式的好处是只占用很少的几个地址空间,并且控制方便。液晶控制器一方面通过外部总线和微处理器相连;一方面通过内部总线与显示缓冲RAM相连;还有一些驱动的控制线和数据线与液晶相连。微处理器通过液晶控制器,采用地址译码方式来执行液晶控制、显示、绘制,以及存贮操作等指令。常用指令有:初始化,显示方式,移动光标,光标处的数据读和写等等。更改显示RAM中的数据,也就更改了液晶屏的相应内容。

  作为现在流行的显示器件,液晶有其固有的优越性,但也有严重不足之处。相对CRT等显示器件而言,最主要缺陷是视觉效果差,亮度不足,视角偏小,响应速度慢(“拖尾”现象)。同时,根据前面的叙述,我们可以看到:由于硬件系统的局限性,显示RAM通过内部总线与控制器相连,微处理器对液晶显示RAM 的寻址采用了间接的端口译码方式,而不是速度更快的直接内存寻址。译码的延时会进一步减缓显示速度。表现在用户界面上,很可能出现刷新的延迟,屏幕的闪烁,以及余辉现象,都会引起视觉的不舒适。一方面降低了产品的档次,另外用户长时间操作时会导致眼睛的疲劳,产生厌倦情绪。

  2. 基本介绍

  无论是LCD还是CRT,进行绘图,都是在“画布”上做清除旧位置的图和重新画新位置的图的操作。当程序执行速度不够快时,我们会看到清除的操作与重画的操作,这就造成了闪烁现象。解决这个问题的方法之一,就是把清除与重画的操作放在另一张“画布”上完成,等到画完后再复制到最后要显示的“画布”上。这种绘图方式就是双缓冲。

  实际上,图形的双缓冲显示方式,对于Windows程序设计员来说,一点也不陌生。以MFC绘图机制来说,CPaintDC就是要显示的画布,如果我们使用另外一个兼容的DC来做清除与重画的操作,再把整个DC的图像复制到CPaintDC,就可以避免屏幕闪烁的问题。对于多数嵌入式设备来说,由于MCU的处理速度要慢许多,因此在软件设计中,更需借鉴这种方法,以期提高显示速度,最大限度地降低液晶的显示缺陷。

  3. 实现方法

  双缓冲方式不仅可以提高液晶显示速度,还可以改善软件模块的封装性和可移植性。实现时,就是在系统存贮器中开辟一块显示RAM 的镜像缓冲区域,此区域保存了预备显示图像的“快照”。当更改屏幕内容时,先更改镜像区域的内容;需要显示时,才把“快照”数据刷新到显示RAM。这样对于用户界面而言,显示速度只取决于“快照”的送入速度。

  下面,我们以两种常用的液晶控制器(T6963C和SED1335)为例,说明如何使用双缓冲的方式进行液晶的快速显示。为了简单起见,我们直接选用内藏驱动和控制器的典型图形液晶显示模块。

  1) 基于T963C的液晶显示模块SMG24064B

  SMG24064B是显示点阵为240*64、控制器为T6963C的液晶显示模块,工作环境是5V/10mA,生产厂家为长沙太阳人。许多液晶生产厂家都有和这款相兼容的产品,如大连东显、深圳拓普微、台湾晶采等。其接口信号说明如下:

  表1 SMG24064B信号线说明


  SMG24064B应用时,可以采用总线方式或者模拟口线方式。双缓冲方式只能采用总线方式,通过端口译码来实现。下图是一种典型的接口电路。图中的GAL实现地址译码,当然也可以采用74138等完成译码。译码输出信号连接到T6963C控制器的片选使能端CE,而数据命令选择端C/D可以接地址线A0。


  图1 SMG24064B与8031的总线连接

  这样,就得到了两个译码端口,一个端口作为控制口,向T6963C送入命令;一个端口作为数据口,向T6963C送入数据。采用地址译码方式来执行液晶控制、显示、绘制,以及存贮操作等指令。

  显而易见,240×64液晶的显示RAM 空间为240/8×64=1920字节。而T6963C控制器内部自带8KB的RAM缓冲区,其中显示缓冲区首地址寄存器对应的后续1920字节的内容就映射到LCD屏幕的相应位置。这样,我们从嵌入式系统MCU扩充的外部RAM中分配1920字节作为镜像显示缓冲(软件编程也就是从外部RAM中分配1920字节的数组),来实现双缓冲显示。对于应用系统而言,如果扩展的外部RAM较大(如32KB)时,分配不到2KB的镜像显示缓冲,开销不算大;但却可以大大改善显示的速度。

  这样,LCD的绘图程序,比如画点、画线、填充、字符串显示等,都是在镜像缓冲RAM中操作的;只有两个程序,LCD的初始化程序InitLCD(初始化液晶,设置液晶的显示模式等)和显示程序DisplayLCD(把镜像缓冲数据刷新到T6963C内的显示RAM缓冲),与底层硬件相关。下面是显示程序DisplayLCD的实现流程:

  1、 设置液晶显示的起始0地址(数据口写入数据0x00和0x00,命令口写入数据0x24);

[1] [2]  下一页


标签:信息显示与光电技术显示及光电大全,光电显示技术信息显示与光电技术
《双缓冲实现图形液晶的快速显示》相关文章