精华内容
下载资源
问答
  • lcd原理封装

    2014-02-23 15:28:55
    lcd 原理图封装,5600.6200通用芯片
  • SSD1963支持18位和24位颜色屏,可以兼容16位RGB565的应用,但是网上的原理图都是18位或24位的,真正应用16位会有问题,SSD1963手册并没有描述16位RGB565的应用。
  • FSMC驱动LCD原理 FSMC驱动外部SRAM(LCD被当做SRAM) SRAM控制包含: 地址线(如A0~A25) 数据线(如D0~D15) 写信号(WE,即WR) 读信号(OE,即RD) 片选信号(CS) 若SRAM支持字节控制,还有UB/LB信号。 上一节提到的...
  • STM32学习——TFTLCD原理

    千次阅读 2019-04-22 00:59:11
    STM32学习——TFTLCD原理 一.TFTLCD 简介 TFT-LCD 即薄膜晶体管液晶显示器(Thin Film Transistor-Liquid Crystal Display) TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象 素上都设置有...

    STM32学习——TFTLCD原理

    一.TFTLCD 简介

    TFT-LCD 即薄膜晶体管液晶显示器(Thin Film Transistor-Liquid Crystal Display)
    TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象 素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特 性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。

    TFTLCD特点:亮度好、对比度高、层次感强、颜色鲜艳,是目前最主流的LCD显示器。广泛应用于电视、手机、电脑、平板等各种电子产品。

    ALIENTEK提供丰富的TFTLCD模块型号,供大家选择,目前有以下型号可选:
    1,ATK-2.8寸 TFTLCD模块
    分辨率:240320,驱动IC:ILI9341,电阻触摸屏,16位并口驱动
    2,ATK-3.5寸 TFTLCD模块
    分辨率:320
    480,驱动IC:NT35310,电阻触摸屏,16位并口驱动
    3,ATK-4.3寸 TFTLCD模块
    分辨率:480800,驱动IC:NT35510,电容触摸屏,16位并口驱动
    4,ATK-7寸 TFTLCD模块(V1版本)
    分辨率:480
    800,驱动IC:CPLD+SDRAM,电容触摸屏,16位并口驱动
    5,ATK-7寸 TFTLCD模块(V2版本)
    分辨率:480*800,驱动IC:SSD1963,电容触摸屏,8/9/12/16位并口驱动

    这里我们介绍的是ALINETEK 2.8寸 TFTLCD。


    二.ALINETEK 2.8寸 TFTLCD模块原理图介绍

    1.ALINETEK 2.8寸 TFTLCD实物图

    在这里插入图片描述

    240*320分辨率
    16位真彩显示(65536色)
    自带电阻触摸屏
    自带背光电路

    注意:模块是3.3V供电的,不支持5V电压的MCU,
    如果是5V MCU,必须在信号线串接120R电阻使用。
    
    

    2.ALINETEK 2.8寸 TFTLCD原理图:

    在这里插入图片描述
    (对应上图序号1,2,3):
    在这里插入图片描述


    3.ALINETEK 2.8寸 TFTLCD接口说明(16位80并口):

    在这里插入图片描述
    在这里插入图片描述

    注意:DB1~DB8,DB10~DB17,总是按顺序连接MCU的D0~D15
    

    三.ALINETEK 2.8寸 TFTLCD 16位80并口驱动简介

    首先我们介绍一下模块的 8080 并行接口,8080 并行接口的发明者是 INTEL,该总线也被 广泛应用于各类液晶显示器,ALIENTEK OLED 模块也提供了这种接口,使得 MCU 可以快速 的访问 OLED。

    模块的8080并口读/写的过程为:
    先根据要写入/读取的数据的类型,设置RS为高(数据)/低(命令),然后拉低片选,选中ILI9341,接着我们根据是读数据,还是要写数据置RD/WR为低,然后:
    1.读数据:在RD的上升沿, 读取数据线上的数据(D[15:0]);
    2.写数据:在WR的上升沿,使数据写入到ILI9341里面

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    另外,在 8080 方式下读数据操作的时候,我们有时候(例如读显存的时候)需要一个假读命 (Dummy Read),以使得微控制器的操作频率和显存的操作频率相匹配。在读取真正的数据之 前,由一个的假读的过程。这里的假读,其实就是第一个读到的字节丢弃不要,从第二个开始, 才是我们真正要读的数据。
    一个典型的读显存的时序图,
    在这里插入图片描述
    可以看到,在发送了列地址之后,开始读数据,第一个是 Dummy Read,也就是假读,我 们从第二个开始,才算是真正有效的数据。


    四.TFTLCD驱动流程

    在这里插入图片描述
    任何 LCD,使用流程都可以简单的用以上流程图表示。
    硬复位:方法一,将 TFTLCD 的 RST 同 STM32F1 的 RESET 连接在一起,只要按下开发板的 RESET 键, 就会对 LCD 进行硬复位。
    方法二,将 TFTLCD 的 RST 同 STM32F1 的 GPIO连接在一起,先拉低,延迟100us,然后
    再释放RST(拉高),完成复位。
    初始化序列:由厂商直接提供。
    画点流程:设置坐标—>写 GRAM 指令—>写入颜色数据,然后在 LCD 上 面,我们就可以看到对应的点显示我们写入的颜色。
    读点流程:设置坐标—>读 GRAM 指令 —>读取颜色数据,这样就可以获取到对应点的颜色数据。


    五.TFTLCD驱动原理-指令简介

    1.RGB565格式说明

    模块对外接口采用16位并口,颜色深度为16位,格式为RGB565,关系如下图:
    在这里插入图片描述
    从图中可以看出,ILI9341 在 16 位模式下面,数据线有用的是:D17~ D13 和 D11~ D1,D0 和 D12 没有用到,实际上在我们 LCD 模块里面,ILI9341 的 D0 和 D12 压根就没有引出来,这 样,ILI9341 的 D17~ D13 和 D11~ D1 对应 MCU 的 D15~D0。
    这样 MCU 的 16 位数据,最低 5 位代表蓝色,中间 6 位为绿色,最高 5 位为红色。数值越 大,表示该颜色越深.


    2.ILI9341指令格式说明——0XD3

    在这里插入图片描述
    从上表可以看出,0XD3 指令后面跟了 4 个参数,最后 2 个参数,读出来是 0X93 和 0X41, 刚好是我们控制器 ILI9341 的数字部分,从而,通过该指令,即可判别所用的 LCD 驱动器是什 么型号,这样,我们的代码,就可以根据控制器的型号去执行对应驱动 IC 的初始化代码,从而 兼容不同驱动 IC 的屏,使得一个代码支持多款 LCD。


    3.ILI9341指令格式说明——0X36

    在这里插入图片描述
    0X36(存储访问控制指令),可以控制 ILI9341 存储器的读写方向,简 单的说,就是在连续写 GRAM 的时候,可以控制 GRAM 指针的增长方向,从而控制显示方式 (读 GRAM 也是一样)。

    从上表可以看出,0X36 指令后面,紧跟一个参数,这里我们主要关注:MY、MX、MV 这三个位,通过这三个位的设置,我们可以控制整个 ILI9341 的全部扫描方向。见下图:
    在这里插入图片描述


    4.ILI9341指令格式说明——0X2A

    在这里插入图片描述
    0X2A(列地址设置指令),在从左到右,从上到下的扫描方式(默认) 下面,该指令用于设置横坐标(x 坐标).
    在默认扫描方式时,该指令用于设置 x 坐标,该指令带有 4 个参数,实际上是 2 个坐标值: SC 和 EC,即列地址的起始值和结束值,SC 必须小于等于 EC,且 0≤SC/EC≤239(LCD分辨率240*320)。一般在设 置 x 坐标的时候,我们只需要带 2 个参数即可,也就是设置 SC 即可,因为如果 EC 没有变化, 我们只需要设置一次即可(EC在初始化 ILI9341 的时候设置好了),从而提高速度。


    5.ILI9341指令格式说明——0X2B

    在这里插入图片描述
    0X2B(页地址设置指令),在从左到右,从上到下的扫描方式 (默认)下面,该指令用于设置纵坐标(y 坐标)。
    在默认扫描方式时,该指令用于设置 y 坐标,该指令带有 4 个参数,实际上是 2 个坐标值:SP 和 EP,即页地址的起始值和结束值,SP 必须小于等于 EP,且 0≤SP/EP≤319(LCD分辨率240*320)。一般在设置 y 坐标的时候,我们只需要带 2 个参数即可,也就是设置 SP 即可,因为如果 EP 没有变化,我 们只需要设置一次即可(EP在初始化 ILI9341 的时候设置好了),从而提高速度。

    当要在LCD屏内开窗时,则需要使用到 SC,EC,SP , EP。
    在这里插入图片描述


    6.ILI9341指令格式说明——0X2C

    在这里插入图片描述
    0X2C(写 GRAM 指令),在发送该指令之后,我们便可以往 LCD 的 GRAM 里面写入颜色数据,该指令支持连续写。
    从上表可知,在收到指令 0X2C 之后,数据有效位宽变为 16 位,我们可以连续写入 LCD GRAM 值,而 GRAM 的地址将根据 MY/MX/MV 设置的扫描方向进行自增。
    例如:假设设置 的是从左到右,从上到下的扫描方式,那么设置好起始坐标(通过 SC,SP 设置)后,每写入 一个颜色值,GRAM 地址将会自动自增 1(SC++),如果碰到 EC,则回到 SC,同时 SP++,一 直到坐标:EC,EP 结束,其间无需再次设置的坐标,从而大大提高写入速度。

    特别注意: ILI9341 所有的指令都是 8 位的(高 8 位无效),
    且参数 除了读写 GRAM 的时候是 16 位,其他操作参数,
    都是 8 位的。
    

    7.ILI9341指令格式说明——0X2E

    在这里插入图片描述
    0X2E(读 GRAM 指令),用于读取 ILI9341 的显存(GRAM),注意该指令在 ILI9341 的数据手册上面的描述是有误的。
    该指令用于读取 GRAM,如表 ,ILI9341 在收到该指令后,第一次输出的是 dummy 数据,也就是无效的数据,第二次开始,读取到的才是有效的 GRAM 数据(从坐标: SC,SP 开始),输出规律为:每个颜色分量占 8 个位,一次输出 2 个颜色分量。
    比如:第一次输出是 R1G1,随后的规律为:B1R2—>G2B2—>R3G3—>B3R4—>G4B4—>R5G5… 以此类推。
    如果 我们只需要读取一个点的颜色值,那么只需要接收到参数 3 即可,如果要连续读取(利用 GRAM地址自增,方法同上),那么就按照上述规律去接收颜色数据。

    展开全文
  • LED LCD 原理图库

    2019-04-08 20:24:03
    这是led和LCD原理图库,可以直接使用,欢迎下载。。。
  • 第001节_LCD硬件原理 先简单介绍下LCD的操作原理。 如下图的LCD示意图,里面的每个点就是一个像素点。 想象有一个电子枪,一边移动,一边发出各种颜色的光。这里有很多细节问题,我们一个一个的梳理。 1.电子枪是...

    第001节_LCD硬件原理
    先简单介绍下LCD的操作原理。
    如下图的LCD示意图,里面的每个点就是一个像素点。

    想象有一个电子枪,一边移动,一边发出各种颜色的光。这里有很多细节问题,我们一个一个的梳理。
    韦东山
    1.电子枪是如何移动的?
    答:有一条CLK时钟线与LCD相连,每发出一次CLK(高低电平),电子枪就移动一个像素。

    1.颜色如何确定?
    答:由连接LCD的三组线:R(Red)、G(Green)、B(Blue)确定。

    1.电子枪如何得知应跳到下一行?
    答:有一条HSYNC信号线与LCD相连,每发出一次脉冲(高低电平),电子枪就跳到下一行。

    1.电子枪如何得知应跳到原点?
    答:有一条VSYNC信号线与LCD相连,每发出一次脉冲(高低电平),电子枪就跳到原点。

    1.RGB线上的数据从何而来?
    答:内存里面划分一块显存(FrameBuffer),里面存放了要显示的数据,LCD控制器从里面将数据读出来,通过RGB三组线传给电子枪,电子枪再依次打到显示屏上。

    1.前面的信号由谁发给LCD?
    答:有S3C2440里面的LCD控制器来控制发出信号。
    通过JZ2440原理图对上面进行验证,下图的LCD控制器接口图。
    来自韦东山
    ①是时钟信号,每来一个CLK,电子枪就移动一个像素;
    ②是用来传输颜色数据;
    ③是垂直方向同步信号,FRAME(帧);
    ④是水平方向同步信号,LINE(行);
    再来看看LCD的芯片手册。
    来自韦东山
    先是VLED+、VLED-背光灯电源。VDD、VDD是LCD电源。
    R0-R7、G0-G7、B0-B7是红绿蓝颜色信号。
    PCLK是像素时钟信号。DISP是像素开关。
    HSYNC、VSYNC分别是水平方向、垂直方向信号。
    DE数据使能。X1、Y1、X2、Y2是触摸屏信号。
    可以看出LCD有很多信号,这些信号要根据时序图传输才能正确显示。参考JZ2440_4.3寸LCD手册_AT043TN24的时序如下:
    来自韦东山
    从最小的像素开始分析,电子枪每次在CLK下降沿(本开发板是下降沿)从数据线Dn0-Dn7上得到数据,发射到显示屏上,然后移动到下一个位置。Dn0-Dn7上的数据来源就是前面介绍的FrameBuffer。就这样从一行的最左边,一直移动到一行的最右边,完成了一行的显示,假设为x。
    当打完一行的最后一个数据后,就会收到Hsync行同步信号,根据时序图,一个Hsync周期可以大致分为五部分组成:thp、thb、1/tc、thd、thf。thp称为脉冲宽度,这个时间不能太短,太短电子枪可能识别不到。电子枪正确识别到thp后,会从最右端移动最左端,这个移动的时间就是thb,称之为移动时间。thf表示显示完最右像素,再过多久Hsync才来。
    同理,当电子枪一行一行的从上面移动到最下面时,Vsync垂直同步信号就让电子枪移动回最上边。Vsync中的tvp是脉冲宽度,tvb是移动时间,tvf表示显示完最下一行像素,再过多久Vsync才来。
    假设一共有y行,则LCD的分辨率就是x*y。
    关于显示原理,可以参考这篇博客:http://www.cnblogs.com/shangdawei/p/4760933.html
    里面有一个LCD显示配置示意图如下:

    当发出一个HSYNC信号后,电子枪就会从最右边花费HBP时长移动到最左边,等到了最右边后,等待HFP时长HSYNC信号才回来。因此,HBP和HFP分别决定了左边和右边的黑框。
    同理,当发出一个VSYNC信号后,电子枪就会从最下边花费VBP时长移动到最上边,等到了最下边后,等待VFP时长VSYNC信号才回来。因此,VBP和VFP分别决定了上边和下边的黑框。
    中间灰色区域才是有效显示区域。
    再来解决最后一个问题:每个像素再FrameBuffer中,占据多少位BPP(Bits Per Pixels)?
    前面的LCD引脚功能图里,R0-R7、G0-G7、B0-B7,每个像素是占据3*8=24位的,即硬件上LCD的BPP是确定的。
    虽然LCD上的引脚是固定的,但我们使用的时候,可以根据实际情况进行取舍,比如我们的JZ2440使用的是16BPP,因此LCD只需要R0-R4、G0-G5、B0-B4与SOC相连,5+6+6=16BPP,每个像素就只占据16位数据。
    我们写程序的思路如下:
    1.
    查看LCD芯片手册,查看相关的时间参数、分辨率、引脚极性;
    2.
    3.
    根据以上信息设置LCD控制器寄存器,让其发出正确信号;
    4.
    5.
    在内存里面分配一个FrameBuffer,在里面用若干位表示一个像素,再把首地址告诉LCD控制器;
    6.
    之后LCD控制器就能周而复始取出FrameBuffer里面的像素数据,配合其它控制信号,发送给电子枪,电子枪再让在LCD上显示出来。以后我们想显示图像,只需要编写程序向FrameBuffer填入相应数据即可,硬件会自动的完成显示操作。

    第002节_S3C2440_LCD控制器
    LCD控制器主要功能和需要的设置:

    1.取:从内存(FrameBuffer)取出某个像素的数据;之后需要把FrameBuffer地址、BPP、分辨率告诉LCD控制器;

    1.发:配合其它信号把FrameBuffer数据发给LCD;需要设置LCD控制器时序、设置引脚极性;
    这里主要的难点就是如何配合其它信号,需要我们阅读LCD芯片手册,知道其时序要求,然后设置相应的LCD控制器。
    先看下S3C2440芯片手册上的LCD控制器框图:
    来自韦东山
    通过设置REGBANK(寄存器组),LCDCDMA会自动(无需CPU参与)把内存上FrameBuffer里的数据,通过VIDPRCS发送到引脚VD[23:0]上,再配合VIDEOMUX引脚的控制信号,正确的显示出来。
    S3C2440芯片手册介绍了LCD控制器支持TFT和STN两种LCD,我们常用的都是TFT材质的,因此主要看TFT相关的部分。
    调色板的概念:
    画油画的时候,通常先在调色板里配好想要的颜色,再用画笔沾到画布上作画。LCD控制器里也借用了这个概念,从FrameBuffer获得数据,这个数据作为索引从调色板获得对应数据,再发给电子枪显示出来。
    来自韦东山
    如图,假如是16BPP的数据,LCD控制器从FB取出16bit数据,显示到LCD上。
    当如果想节约内存,对颜色要求也没那么高,就可以采用调色板的方式,调色板里存放了256个16bit的数据,FB只存放每个像素的索引,根据索引去调色板找到对应的数据传给LCD控制器,再通过电子枪显示出来。
    假设现在想要LCD只显示一种颜色怎么办?
    如果是16BPP/24BPP需要修改FB里面的数据,填充同一个值。
    如果是8BPP可以修改FB为同一种颜色,也可以设置调色板为同一种颜色,对于S3C22440有个临时调色板的特性,一旦使能了临时调色板,不管FB里面是什么数据,都只调用临时调色板的数据。

    转载自https://www.cnblogs.com/weidongshan/articles/8520585.html

    展开全文
  • 嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。
  • STM32驱动LCD原理

    千次阅读 2020-06-30 14:00:37
    它与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。 ▲驱动...

    目录

    01、使用FSMC驱动LCD

    02、标准8080接口

    03、使用FSMC驱动8080接口

    04、颜色模式


    TFTLCD即薄膜晶体管液晶显示器。它与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。

    ▲驱动流程

    01、使用FSMC驱动LCD

    关于FSMC,把数据写入相应的地址,FSMC就会把地址从FSMC_A出去,写入的数据会会从FSMC_D发出去。至于片选等信号线都是自动的。读的话,直接读相应的地址,就会拿到改地址上的数据。

    FSMC驱动外部SRAM时,外部SRAM的控制一般有:

    • 地址线(如A0~A25)

    • 数据线(如D0~D15)

    • 写信号(WE,即WR)

    • 读信号(OE,即RD)

    • 片选信号(CS)

    如果SRAM支持字节控制,那么还有UB/LB信号。

     

    而TFTLCD的信号包括:RS(命令数据标志位)、D0~D15、WR、RD、CS、RST和BL等,其中真正在操作LCD的时候需要用到的就只有:

    • CS

    • WR

    • RS

    • D0~D15

    • RD

    其操作时序和SRAM的控制完全类似,唯一不同就是TFTLCD有RS信号,但是没有地址信号。

     

    TFTLCD通过RS信号来决定传送的数据是数据还是命令,本质上可以理解为一个地址信号,比如我们把RS接在A0上面,那么当FSMC控制器写地址0的时候,会使得A0变为0,对TFTLCD来说,就是写命令。而FSMC写地址1的时候,A0将会变为1,对TFTLCD来说,就是写数据了。这样,就把数据和命令区分开了,他们其实就是对应SRAM操作的两个连续地址。当然RS也可以接在其他地址线上。

    因此,可以把TFTLCD当成一个SRAM来用,只不过这个SRAM有2个地址,这就是FSMC可以驱动LCD的原理。

     

    02、标准8080接口

    8080总线又叫Intel总线,大致来说,Intel总线的控制线有四根,RD写使能,WR读使能,ALE地址锁存,CS片选。

    8080中:有RD(read),WR(Write)脚,RD,WR可以同时为高,不能同时为低!!RD为低时表示要从LCD中读出数据在D0-D7脚上,WR为低时表示:将当前D0-D7上的数据写入LCD

    模块的8080并口读/写的过程为:

    先根据要写入/读取的数据的类型,设置RS为高(数据)/低(命令),然后拉低片选,选中液晶IC,接着我们根据是读数据,还是要写数据置RD/WR为低,然后:

    1.读数据:在RD的上升沿,读取数据线上的数据(D[15:0]);

    2.写数据:在WR的上升沿,使数据写入到液晶IC里面;

    ▲8080并口写时序

    ▲8080并口读时序

    在NXP的UsingFlexIO to Drive 8080 Bus Interface LCDModule文档中同样也提到了8080接口(P6),我找到的介绍8080接口的官方文档,就只有NXP这个文档。文档下载链接见问末尾。

    ▲写时序

    ▲读时序

    03、使用FSMC驱动8080接口

    ▲读时序

    ▲写时序

    04、颜色模式

    4.1RGB565

    每个像素用16比特位表示,占2个字节,RGB分量分别使用5位、6位、5位

    4.1RGB888

    每个像素用8比特位表示,占1个字节,注意:在内存中RGB各分量的排列顺序为:BGRBGR BGR ......

     

    点击查看本文所在的专辑,STM32F207教程

     

    文档下载链接:百度云盘和谐比较严重,链接可能失效

    链接:https://pan.baidu.com/s/1nBxy-l-j5v39RXjUV9LgrA    提取码:6j8z

     

    如果链接失效,请关注微信公众号,找到下载专区->博客附件,编号0010的下载资源,免费获得。

    12

     

    展开全文
  • LCD12864接口原理图.pdf

    2019-03-11 21:09:40
    LCD12864接口原理图,
  • LCD原理图设计和调试

    2013-05-31 13:11:50
    很好的LCD硬件设计和软件调试资料,很全,对于各种LCD有详细的介绍
  • 段式LCD原理

    千次阅读 2019-06-15 22:14:33
    最近做的一款产品中涉及到段式LCD的显示,在网上查询了很多资料,这篇资料对我的帮助最大,特别搜录下来供参考。 LCD的驱动不像LED那样,加上电压(LED实际上是电流驱动)就可以长期显示的。LCD驱动必须使用交流...

    最近做的一款产品中涉及到段式LCD的显示,在网上查询了很多资料,这篇资料对我的帮助最大,特别搜录下来供参考。

        LCD的驱动不像LED那样,加上电压(LED实际上是电流驱动)就可以长期显示的。LCD驱动必须使用交流电压驱动才能保持稳定的显示,如果在LCD上加上稳定的直流电压,不但不能正常显示,时间久了还会损坏LCD。一段LCD由背电极和段电极组成,需要显示时, 在背电极和段电极之间加上合适的交流电压(通常使用方波)。为了调节对比度,可以 调节方波中每半个周期中显示的时间(即占空比)来实现。 
        通常,为了节约驱动口,将多个背电极连在一起,形成公共背电极端:COM。另外,再将属于不同COM的段电极连接在一起,形成公共段电极端:SEG当在某个COM和 某个SEG之间加了足够的交流电压之后,就会将对应的段点亮(实际上是变黑)。 
        像万利的板子上使用的这种LCD,有4个COM,还有16个SEG。要想某一SEG显示时,需要在对应的SEG和COM之间加上足够的交流电压。在万利的板子上,COM驱动使用了两个电阻分压,输出电压为1/2Vcc,当不想让某位显示时,就将它的电压设置为1/2Vcc(通过 设置IO口为高阻态来完成),这样加在对应的SEG和COM之间的电压只有1/2Vcc,不足以点亮对应的SEG。需要显示的,就将COM电压设置为0或者1,这样SEG电压跟COM电压相反的段就被点亮了(变黑),因为它们之间的电压为Vcc。通过定期扫描每个COM,即可稳定的在LCD上显示需要的图形了。需要显示字符或者数字时,自己先将对应的图案设计好,在显示时,发送到相应的SEG和COM上即可。但是如果使用100%的时间都驱动的话,会造成对比度太高,甚至出现不该显示的地方也显示了。因此在显示一段时间后,就将COM和SEG都设置为低,以关闭它的显示,降低对比度。通过调节关闭时间的长短(PWM),可以调节对比度。在下面的测试程序中,为了简化程序,使用了50%固定的占空比。 
        为了方便描述,我们把COM为低电平时点亮叫做正亮,COM为高电平时点亮叫做负亮。扫描每个COM分成4个阶段:正亮,关闭,负亮,关闭。因此对于本板子上的LCD驱动,总共有16个状态,每个COM都有上面所说的4个状态。我们每隔2ms就切换一次状态,这样整个扫描周期就是2*16=32ms,基本上感觉不到闪烁。 
        但是需要注意的是,这个LCD中的每个COM并不是刚好对应着显示图案中的一个字符的位置。每个COM都对应着每个显示字符中的相同4段!换句话说,要显示第一个字符位置的字符,每个COM都要被用到。因此,要改变某个字符位置的显示,就需要改变每次COM输出时对应的SEG中的4段。为此,建立一个缓冲区,当需要修改显示字符时,就修改缓冲区中的内容。这个缓冲区有4行,每行中有16个SEG,对应着一个COM。需要修改显示时,把每行中对应的4个SEG设置为需要的值,这样就实现了某个显示位置图案的修改。 
        为了显示字符,需要事先把需要显示的字符按照SEG和COM的分布,制作成数据保存起来,需要显示时,就把它复制到显示缓冲区中对应的位置去。另外,由于输入的参数是字符的ASCII码,因此还需要将ASCII码转换为对应的字符图案的索引值。使用一个专门的函数来完成这些转换和 填充缓冲区,在需要修改显示数据时,就调用该函数。 
        为了方便大家对这个LCD的驱动方式和编程,下面简单的画一下驱动的波形图。 

     

        这里只画出2个SEG波形图,实际有16个SEG,只要你理解了2个SEG的,那么16个的也是一样的意思。如图所示,所有偶数阶段都是关闭显示阶段,这时COM和SEG都是0,将不会有段被点亮,通过调节关闭显示阶段所占的时间百分比,即可调节总体显示的对比度。SEG和COM之间电平相差1格的显示不出来或者浓度不够,而SEG和COM之间电平相差2格的则可以显示出来或者浓度较深。例如第一阶段中的SEG1和COM1之间相差2格,第三阶段中COM1和SEG1相差2格,因而SEG1和COM1之间的交叉点(即点1)被显示。又如第九阶段的SEG1和COM3之间相差2格,第十一阶段中的COM3和SEG1之间相差2格,因而SEG1和COM3之间的交叉点(即点5)被显示出来。其它点以此类推。

        最后,再来看看万利板子上的LCD的COM和SEG之间的关系图,如下图所示。

     

     

          图中显示,S0、S1、S2、S3属于第一个字符,在显示第一个字符时,只要在对应的COM选中时,将需要显示的SEG放在上面即可。其余几个字符类似。例如要显示一个数字3,则应该将A段、B段、C段、D段、G段、K段显示。某段显示,用1表示,不显示用0表示,得到的各段值如下:
    X=0 I="0" A="1" DP="0"
    F=0 H="0" J="0" B="1"
    E=0 G="1" K="1" C="1"
    L=0 M="0" N="0" D="1"
        注意是低位在先的,把每行用十六进制来表示(高位在先),就是0x4,0x8,0xE,0x8。它们分别对应着COM1~COM3选中时S3~S0的输出值。为了方便管理,将这4个十六进制值合并为一个2字节的值0x48E8保存。其它各字符的构造方式相同。显示时,分别取出各段的值写入到对应的缓冲区去。

    扫描LCD的程序流程如下:
    ①、COM1设置为低电平,其余COM为1/2高电平,设置PE口为需要的电平(16个段码),延时2ms;
    ②、4个COM、PE口均设置为低电平,关闭显示,延时2ms;
    ③、COM1设置为高电平,其余COM为1/2高电平,设置PE口为需要的电平(第一步16个段码的取反),延时2ms。
    ④、4个COM、PE口均设置为低电平,关闭显示,延时2ms;
        然后对剩下的3个COM重复前面4个步骤,这样一个完整的扫描就完成了。

        具体的实现代码比较长,这里就不再贴出了,在工程包中的LCD.C中可以查看。该测试工程包使用软件延时的方法来实现LCD的扫描,实际使用时,可以将扫描代码放在定时器中断中处理。该测试程序使用一个时钟功能来演示LCD的显示,显示为xx分xx秒。从这里下载整个测试的工程包:

    这是测试工程包的链接:http://58.17.218.42:83/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/space.ednchina.com/Upload/Blog/2008/7/31/e49cc0fc-349f-4378-8518-8bb4a2289d1a.rar

    展开全文
  • TFT-LCD的驱动原理(提高篇),详细讲述TFT_LCD的驱动原理,本次我们将针对 TFT-LCD 的整体系统面来做介绍,也就是对其驱动原理来做介绍,而其驱动原理仍然因为一些架构上差异的关系而有所不同。首先我们来介绍由于 Cs...
  • STM32单片机驱动LCD原理和驱动代码详解(附代码和工具软件) LCD也叫液晶屏,肉眼可以看到里面有很多个小像素点,通过程序可以控制各个像素点亮灭,着不同的颜色,多个像素点的不同颜色便组成了我们所看到的文字或...
  • S5PV310开发板LCD原理

    2011-09-16 10:38:46
    S5PV310开发板LCD液晶显示器原理
  • LCD原理讲解&LCD制成

    2011-12-05 11:01:20
    本资料讲述了LCD的显示原理及加工制程, 资料描述过程配合多图说明,比较简单易懂 对于想了解LCD的人士是一个不错的引导
  • LCD原理

    2008-02-10 22:16:40
    很实用,非常好的资料。
  • 【STM32】TFTLCD驱动原理

    千次阅读 2020-09-07 11:42:32
    TFTLCD原理图03. TFTLCD接口描述04. TFTLCD驱动芯片05. ILI9341命令06. TFTLCD使用流程07. 附录08. 声明 01. TFTLCD简介 TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal ...
  • LCD原理与维修

    2013-11-16 21:57:08
    概述液晶显示器的主要技术指标;电路工作原理提要及检修步骤
  • STM32F4——TFT-LCD原理及FSMC

    千次阅读 2017-01-04 17:44:10
    TFT-LCD 一、简介:  TFT-LCD即薄膜晶体管液晶显示器,依据其尺寸、分辨率和驱动芯片的不同有很多分类,下边会依据2.8寸320X240分辨率以ILI9341芯片驱动的TFT-LCD做相关介绍。 二、接口:  模块采用16...
  • STM32F429IGT开发板原理图,在正点原子阿波罗开发板的基础上二次开发,增加了WiFi/BT和4G通讯模块,本开发板使用主芯片STM32F429IGT6,SDRAM W9825G6KH-6I,NAND Flash W9825G6KH-6I,SPI Flash W25Q256JVEIQ,外围...
  • 要知道ILI9341的驱动原理,首先当然得从TFT-LCD的工作原理开始理解起。这里从网上找了好多,感觉这篇简单又清楚,因此转载过来学习。转载过程中删减了一些无关的内容。 转自:『流浪的Coder』 一、<
  • LCD工作原理

    2015-12-22 17:47:25
    S3C44B0X LCD 控制器介绍 控制器的外部接口信号
  • [笔记分享] [Display] LCD原理介绍

    千次阅读 2017-08-29 16:30:39
    介绍这里暂时先只介绍某几种LCD类型的显示原理。由于STN和TN LCD显示原理很相似,知识液晶分子的扭曲角度不同而已,所以我们先介绍TN显示原理。TN LCD显示原理TN型采用的是液晶显示器中最基本的显示技术,而之后其它...
  • lcd液晶屏原理

    2012-12-17 16:08:56
    lcd液晶屏原理
  • tft lcd 显示原理技术

    2019-02-21 01:10:37
    tft,lcd显示原理技术解析。
  • LCD原理及命令

    千次阅读 2020-02-16 17:28:25
    2、LCD引脚及原理图 VL用单片机上的电位器调对比度。 3、LCD命令 DL: 0时:选择4位数据总线模式。 1时:选择8位数据总线模式。 N: 0时:选择显示一行。 1时:选择显示两行。 显示开/关及光标设置 指令码功能 ...
  • LCD显示原理

    万次阅读 2018-10-29 10:10:37
    TN LCD液晶屏显示原理     当上下两块玻璃之间没有施加电压时,液晶的排列会依照上下两块玻璃的配向膜而定。对于TN型的液晶来说,上下的配向膜的角度差恰为90度.所以液晶分子的排列由上而下会自动旋转90...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,999
精华内容 9,199
关键字:

lcd原理