导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[原创]7寸视频&串口显示模组调试技巧之1——层切换效果[tianya1984]

 *第20627篇: [原创]7寸视频&串口显示模组调试技巧之1——层切换效果

  
楼 主:tianya1984 2011年10月24日13:52
 [原创]7寸视频&串口显示模组调试技巧之1——层切换效果

详细资料说明,http//, 请联系马先生  021-58526513,15900987355   QQ:1006177846

在《7寸串口&视频液晶显示模组使用说明书.pdf》的指令集中有如下说明:

当叠加层色彩为0x0000时,当前
显示视频层图像;当叠加层色彩为0xffff时,则当前显示图片层图像;否则,当前像素将显示叠加层数据所表示的相应色彩。

         这句说明作何理解呢?实际上,晶奥科技的串口系列显示模组通常有两层,带视频功能的模组则有三层。所谓两层或三层又到底是怎么回事呢?下面特权同学将带大家领会其中的奥妙。

层的概念

         先来了解一下层的概念及不同层的用处。串口&视频模组是一款智能模组,它包括了叠加层、图片层和视频层。所谓叠加层,顾名思义,就是可以把一些色彩值叠加到本身显示为图片或视频的当前显示画面中,一般能够在叠加层显示的指令(或者确切的说可以操作叠加层数据变化的指令)如表1所示,包括文本显示、置点、多线段连线、画圆和区域操作。叠加层最大的特点是用户可以直接的访问读写,即通常说是的“所见即所得”,用户所送出的值即最终的显示色彩(但0x0000和0xffff两个保留值是例外)。

表1 叠加层操作指令

分类
 功能
 指令
 指令参数
 描述
 
文本显示
 16X16点阵GB2312国标简体汉字
 0x54
 Xadd(2Byte) + Yadd(2Byte) + String
 (Xadd,Yadd)为当前字符串显示的启示坐标。String为多个需要显示的国标码值。每个国标码为两个字节,其中高字节在前、低字节在后。若显示ASIIC码,则直接送ASIIC码值即可。
 
32X32点阵GB2312国标简体汉字
 0x55
 
64X64点阵GB2312国标简体汉字
 0x6e
 
置点
 背景色显示多个点
 0x50
 Xadd(2Byte)+Yadd(2Byte) +……
 (Xadd,Yadd)为当前需要显示背景色像素点的坐标。若显示n个点,则连续送n次的X和Y坐标值。该指令主要用于删除点。
 
前景色显示多个点
 0x51
 (Xadd,Yadd)为当前需要显示前景色像素点的坐标。若显示n个点,则连续送n次的X和Y坐标值。
 
多线段连线
 多个指定点用线段进行连接(前景色)
 0x56
 Xadd(2Byte)+Yadd(2Byte) +……
 (Xadd,Yadd)为当前需要用前景色连线的像素点坐标。若连接n个点,则送n次X和Y坐标值。
 
多个指定点用线段进行连接(背景色)
 0x6d
 (Xadd,Yadd)为当前需要用背景色连线的像素点坐标。若连接n个点,则送n次X和Y坐标值。该指令主要用于删除点。
 
频谱显示
 0x75
 X0add(2Byte)+Y0add(2Byte)+Hmax+h1+h2+……
 X0add为x轴坐标起点,Y0add为频谱水平起点,Hmax(1Byte)为谱线的最大高度。hi(0=0,1,2……)为单根谱线的高度(1Byte),每增加一个i值,x轴坐标自动增1。谱线显示前景色,比hi值大的区域显示背景色。
 
画圆
 画圆弧
 0x57
 Type(1Byte) + xadd(2Byte) + yadd(2Byte) + r(1Byte)
 Type=0x00:背景色画圆;Type=0x01:前景色画圆。以(xadd,yadd)为圆心,画半径为r的圆弧。
 
区域操作
 区域清屏(背景色填充)
 0x64
 X0add2Byte) + Y0add(2Byte) + X1add2Byte) + Y1add(2Byte)
 对起始坐标(X0add,Y0add)到结束坐标(X1add,Y1add)的矩形区域使用背景色填充。
 
整屏清屏
 0x52
 无
 背景色填充整屏显示。
 
 

         

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    图片层即用于存取当前显示图片的存储区,这个层和叠加层略有不同,不是用户可以直接读写访问的。当用户使用图片调用指令时,模组内部自动将原本存储在非易失存储器(如flash)中的图片数据加载到该层中。用户通常会使用一幅漂亮的图片作为界面背景,也可以使用一些小图片拼凑出一幅完美的显示界面,这些图片显示方式都为我们的所模组支持。如表2所示,为该模组的图片层相关指令。

表2 图片层指令

分类
 功能
 指令
 指令参数
 描述
 


 满屏区
 0x70
 Photo_num(1Byte)
 显示Flash中预存的第 Photo_num(0-49)幅满屏图片。
 
小图区
 0x9c
 Photo_num(1Byte) + xadd(2Byte) + yadd(2Byte)
 在以(xadd,yadd)为起点的位置显示Flash中预存的第Photo_num(0-191)幅小图片。
 
 

         

 

 

 

 

 

 

 

    最后是视频层,这个层也非叠加层一样是用户可以直接操作的。用户可以通过相关指令控制该层的显示与否,也可以缩放或任意位置摆放该层的显示图像。视频层相关的操作指令如表3所示 。

表3 视频层指令

分类
 功能
 指令
 指令参数
 描述
 
AV显示控制
 拍照指令
 0x80
 0x40 + page(1Byte)
 执行一次拍照操作,page表示拍照存储页,可取值为1-7。
 
拍照显示
 0x41 + page(1Byte)
 执行拍照显示,page表示显示的拍照页,可取值为1-7,当希望返回正常实时AV显示时,设置page = 0即可。
 
视频显示模式
 0x88
 Dis_mode(1Byte) + Xpos(2Byte) + Ypos(2Byte)
 Dis_mode为视频缩放控制寄存器:0—640*480; 1--480*360; 2—400*300; 3—320*240; Xpos和Ypos为视频显示起始坐标,高字节在前。
 
AV芯片配置功能
 0x8f
 ADDR(1Byte) + DATA(1Byte)
 具体功能定义查看说明⑧
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

层的切换

         再从硬件结构上来理解层的区别,对于液晶显示屏上的任意像素点而言,它对应着16位的色彩数据。通常在模组处于工作状态时,叠加层、图片层、视频层三个层同时分别输出相同像素点的16位色彩数据,而此时液晶屏上只能显示其中的一个数据。我们通过控制叠加层中的数据来切换不同的层(即决定是显示叠加层、图片层还是视频层的数据)。如图1所示,每个液晶像素点在显示时,同时输出叠加层、图片层和视频层数据,而叠加层的数据取值决定了图片层数据显示与否,叠加层和图片层数据共同决定了视频层数据显示与否。对于叠加层而言,它所输出的0xffff和0x0000这两个数据是保留作为层切换数据(相应在叠加层就无法显示0xffff和0x0000的色彩了),也即通常所说的透明层。在模组内部会判断叠加层的数据,如果为0xffff,则当前像素点显示的数据来自图片层,而此时图片层的数据不一定就是最终显示的数据,若图片层数据为0x0000,则最终显示为视频图像;如果叠加层不为0xffff,则还需要判断叠加层数据是否为0x0000,若是,则显示视频层,否,则显示叠加层本身。

图1 层显示原理

 

效果演示

         说了这么多,也许大家还是犯傻,到底是怎么回事啊?说起来好像蛮轻巧的,实现起来到底效果又如何?下面就有带大家来领略一下对层的妙用。

         如图2所示,就是叠加层中带上图片显示的效果。如何实现的呢?我们先发送清屏指令(清屏色彩为红色),液晶屏就会满屏红色。接着发送小图片显示指令(包括该图片的具体位号和显示位置),调出图2所示的一个飞行扫描界面,但是发送完该指令后发现图片并没有马上出现,为什么?回顾“层的切换”小节内容,原来是因为当前叠加层满屏红色(对应数据为0xf800),而图片层需要显示的一个前提是叠加层数据为0xffff,那么若要让图2的图片显示出来,则还需要对图片所在矩形区域进行清屏(清屏色彩为0xffff)。

图2 图片层和叠加层

         图片层和视频层显示的效果如图3所示。首先发送叠加层清屏为0xffff指令,将终端显示的主动权交给图片层。对于图片层,若是显示数据为0x0000,那么相应的显示色彩为视频层数据。图3中就是充分利用这一技巧,作了一幅带坐标指示并且部分底色为0x0000的图片,透过图片的0x0000色彩,最终显示就看到了视频图像。

图3 图片层和视频层

         如图4所示,“晶奥”两字是处于叠加层,前景色为黄色,背景色则为显示图片层的0xffff,那么最终就实现了图片层上叠加字符的效果。实际上,如图3的实现方式,因为图片层中嵌入了视频层的现实,因此叠加层若为数据0xffff就能够同时也叠加到由图片层决定的视频层上。而通常情况下,若想在视频层上叠加字符(点、线、圆等其他相关指令类似),则可以送前景色为字符色彩,背景色为显示视频层的0x0000。


  
2楼:k19001579 2011年12月15日13:28
 [建议]
LPC1788微控制器还支持超扭曲向列(STN)和薄膜晶体管(TFT)图像显示面板,像素最高达1024×768像素,同时支持单色和最高24位真彩色。 
   120MHz(可以超频哦。呵呵)的LPC178x微控制器片载最大内存支持512KB闪存、96KBSRAM和4KBEEPROM。
   32位外部存储控制器支持SDRAM、SRAM,NOR和NandFLASH器件,提供四种芯片选择LQFP208 LQFP144 TFBGA208 TFBGA180 。 
   LPC178x系列还支持其他多个外设,包括:
     1个TFT LCD控制器
     1个USB主机和设备控制器、
     1个10/100T以太网控制器、
     防篡改事件记录器、
     8通道通用DMA(GPDMA)控制器、
     12位ADC、10位DAC、
     马达控制PWM和正交编码器接口、
     5个UART、
     3个I2C、
     1个I2S音频接口、
     3个SSP/SPI、智能卡接口、
     4个计时器、窗口看门狗定时器、
     1个超低功耗RTC
     以及最多165个通用I/O引脚。 

    恩智浦低成本开发工具平台,LPC1788现已批量供货,价格大幅下降。QQ:19001579 E-MAIL:19001579@QQ.COM TEL:13510231143 可以询价,如需资料请发邮件或加QQ

    LPC178x微控制器支持IAR、Keil MDK EmbeddedArtists和FutureDesigns等公司众多业界领先的综合硬件开发工具,以及LPCXpresso、ARM/Keil、CodeRed、IAR、Segger、MicroDigital、I2ST等公司的软件开发工具;
    此外,还支持丰富的产品驱动程序库和免费图形库(如:UCGUI,UCLINUX,EWIN,FATFS,UCFS)及SWIM(简单视窗接口管理器)。 
LPCCORTEX-M3
LPC1768FBD100
LPC1766FBD100
LPC1754FBD80
LPC1752FBD80
LPC1788FBD208
有需要的,请联系!QQ:19001579 E-MAIL:19001579@QQ.COM 有DEMO源代码,有FAE支持


>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:TYCO/AMP汽车类连接器、消费类电子连接器

[下一篇主题]:为了适应这种现状,开关电源的产生与发展成为了必然