• 注册 / 登录
  • 切换到窄版
  • 查看: 1795|回复: 0

    LCD液晶屏的控制原理

    [复制链接]

    676

    主题

    690

    帖子

    6808

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6808
    发表于 2023-8-7 16:28:14 | 显示全部楼层 |阅读模式

    路线栈欢迎您!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    前言

    型号1602,它是上世纪80的产物,但是直到现在它还是非常受欢迎,在很多设备上都可以看到它的身影。1602A液晶作为一种液晶模块,是专门用于显示字幕、数字以及符号。

    1.png

    工作原理

    1602A液晶显示图案如下,如果放大来看,会发现它的像素就是一个个的小方块。

    2.png

    如果我们让它的像素全部显示出来是这样的;它横着有16个这样的区域,竖着有两个,所以这种屏幕的型号是1602。

    每一个区域横着数有5个像素,竖着数有7个像素,每个区域就是35个像素,所以整个屏幕就是1120个像素。

    3.png

    那这个玩意儿是怎么控制这1000多个像素的,要搞明白这个问题,我们首先要知道它的一个像素是怎么控制的。

    屏幕的最下面是一层LED背光板,当我们给它接上电,它就可以发光。在它的上面有一层液晶,每一个像素都是由一小块液晶来控制的。

    当我们不给液晶施加电压,它几乎是完全透明的;而当我们给某一小块液晶施加电压之后,它就不透光了,因此形成了一个的小黑点,也就是我们看到的像素点。

    4.png

    因为不需要色彩显示,所以只需要让液晶介于透光和不够光两种状态之间就可以,我们只需要控制液晶的高低电压,就能控制一个像素点了。如果是控制一个像素点,那很简单,让微控制器的引脚直接控制液晶的电压就可以了。

    5.png

    但是面对1120个像素点,微控制器就力不从心了。因为一般的微控制器引脚数量有限,没办法控制1000多块液晶。

    控制方式

    针对这个疼点,聪明的人类开发了一个显示芯片HD44780U,它有80个引脚。

    6.png

    这样我们只需要要把要发送的东西丢给这个芯片,它就能控制液晶屏的像素点了,极大的方面了我们的编程工作,形象一点来说,这个显示芯片其实充当着计算机当中显卡的角色。

    可以看一下1602屏的背面,这个大黑点里面封装的就是HD4478U芯片。采用这种封装能节省成本。

    7.png

    1602上有16个引脚,它的数据引脚有8个;通过这些引脚我们就能控制LCD屏幕了。

    8.png

    因为一块区域只有35个像素,所以它只能显示数字、字母和符号这些简单的信息,一共能显示240个字符。不能显示汉字。

    9.png

    这些字符基本上都是通过ascii码进行编码的,只需要8位0或者1的排列组合,这就能表述这些字符。所以它的数据引脚正好也是是8根线。比如大写字母A的ASCLL码是0100 0001,那只需要让微控制器的这8个引脚分别输出相应的高低电平就可以了。

    但是还没有指定这个大写字母A要发到哪一块区域;因此HD44780U为每一块区域都设计了一个字节的DRAM(内存),这个DRAM就相当于现在显卡的显存,可以对比一下,Nvidia最新旗舰显卡4090显存是24GB。

    而这块显示芯片一共也才80个字节。可以横着显示40个字符,竖着显示两个字符。所以它可以同时控制80个字符。

    10.png

    看LCD屏幕一共也才能显示32个字符,那这个芯片为什么能控制80个字符呢;因为这个HD44780U芯片是通用芯片,不单单是用来控制这一种规格的屏幕。如果用来控制1602的话,它的显存永远都是有48字节用不到的。

    在微控制器给它发送数据之前,都需要先发送显存的地址,然后再发送数据,这样数据就会被保存在相应的显存里面。比如我们想让第一块区域显示A,就需要先发送第一块显存的地址,然后再发送A的ASCLL码。这样就能在第一块区域显示A了。

    11.png

    这就是微控制器的编程思路,因为有这个显示芯片的存在,让编程变的简单了很多。

    那这个显示芯片又是怎么控制这块LCD屏幕的呢。

    12.png

    这是HD44780U的引脚分布图,直接控制液晶像素点的是这些引脚,COM引脚控制横向像素,SEG引脚控制纵向像素,比如我们控制A这个字符。就需要这些引脚分别输出不同的电压就可以了。

    但还有一个问题,就拿第一块区域来说,这些引脚是没办法同时控制每一个像素的。

    比如我们控制第一行的时候,先让COM端为低电压。然后再来控制它的SEG引脚,就能控制第一行的像素了,如果是显示像素就给这个引脚高电压,不显示就给它低电平;但在同一时间就没有办法控制其它行的像素了。

    因此人们想到了扫描的控制方式,比如先控制第一行像素,然后再来控制第二行像素,这样逐行扫描,就能控制所有的像素了。

    那这样我们人眼不就看到它一直在扫描了吗;当然不会了,这里面运用了人眼的视觉暂留,它的扫描频率很快,所以我们看到的就是静止的画面。

    但还有一个问题,你看它一共有40个SEG引脚,而一个字符纵向有5个像素点,这样的话它就只能控制纵向的8个区域,那另一半区域怎么控制呢?

    刚才不是说它内置了80个字节的显存,那应该能控制80个字符,现在怎么只能控制16个字符呢?

    它确实能控制80个字符,但如果超过16个字符,就没有多余的引脚了,因此就得就得借助驱动电路。你看这个1602的背面,除了主控HD44780U之外,还有一个HD44100H的驱动芯片,它就是来协助主控完成另一半的显示任务的。

    13.png

    这是它的引脚分布,它正好也有40个SEG引脚。

    14.png

    把它和主控连到一块,就可以控制LCD所有的像素了。

    15.png

    主控是通过串行方式给这个驱动芯片发送信息,然后这个驱动芯片就可以控制它引脚的状态了;现在正好能控制的就是32个字符个字符。

    16.png

    如果我们给它再加3块驱动芯片,然后再换一款能显示80个字符的液晶屏,它就能控制80个字符了。

    17.png

    18.png

    此时显示芯片HD44780U的性能正好被榨干了,就是再让它多控制一个像素都是不可能的,因为此时的显存已经满了。

    总结 :

    LCD常用的偏光片有三种类型

    反射型:这种玻璃没有背光源,只能正显(浅色屏底,深色字幕),而且在低亮度环境下有余没有背光而不能被看清楚。
    半透型:这种玻璃有背光源,可正显也可负显,在亮度较高的环境下可关闭背光源,亮度低时开启背光源。
    透射型:这种玻璃的背光源是常亮的。大部分LCD是带有背光源的,因为显示模块需要在不同的亮度环境下都能显示出能被识别的内容。

    想要对1602液晶屏了解掌握,就先要明白这一工业产品的作用以及它的工作原理,只有明白了其中的工作原理,我们才能举一反三。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|路丝栈 ( 粤ICP备2021053448号 )

    GMT+8, 2024-12-22 15:15 , Processed in 0.046425 second(s), 21 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表