一起玩转树莓派(11)——使用LCD屏(一)

简介: 一起玩转树莓派(11)——使用LCD屏

通过本系列博客前几篇文章的介绍,我们已经体验过了许多传感器元件,它们大多非常简单,可以直接对其进行数据读取或写入,无需复杂的指令配置。本篇博客,我们将介绍一个相对复杂的元件:LCD屏。当今大多数常见的电子设备为了便于用户操作,都会配备一块LCD液晶显示屏,用户通过屏幕可以获取到设备的相关信息方便使用。下面,我们将尝试使用树莓派来在LCD屏上展示信息。


一、LCD 1602


LCD屏是Liquid Crystal Display的简称,即液晶显示屏。LCD 1602是一种点阵式的给付型液晶显示屏,其型号为1602本身也是有意义的,表示其可以显示2行信息,每行可以显示16个字符。LCD1602最多可以显示32个字符,价格上也并不昂贵,十几元钱即可买到。LCD1602有16个引脚,如下图所示:


image.png


LCD1602的16个引脚看上去很多,但实际上使用起来并不复杂,我们首先将上图这些引脚的功能来介绍一下。


引脚1:接地引脚

引脚2:接5V电压

引脚3:VE引脚为屏幕对比度调整引脚,接地时对比度最大,接正极电源时对比度最小。

引脚4:RS引脚为功能模式引脚(也被称为寄存器选择引脚),为其加高电平时为数据模式(存取屏幕展示的数据),为其加低电平时为指令模式(读取指令)。

引脚5:RW引脚为读写模式引脚,为其加高电平时为读操作,为其加低电平时为写操作。

引脚6:Enable引脚,此引脚用来触发动作,负跳变时进行数据处理或指令的执行。

引脚7-引脚14:这8个引脚为数据引脚,用来进行数据传输。

引脚15:背光电源引脚。

引脚16:背光接地引脚。

上面所介绍的引脚中,引脚1,引脚2,引脚15和引脚16比较好理解,其都是作为供电功能,无需编程操作。引脚3是一个单独调增对比度功能的引脚,作用也相对独立,无需复杂的指令操作。引脚4和引脚5是比较核心的两个引脚,这两个引脚的高低电平状态组合共有4种,分别会将LCD1602设置为读指令模式,写指令模式,读数据模式和写数据模式。引脚6可以理解为一个触发引脚,通过操作这个引脚的电平跳变来让LCD1602执行具体的功能。引脚7-引脚14用来进行数据的存取或指令的存取。


现在请你务必将上面所介绍的内容完全理解,否则后面的内容可能会更加令你迷惑。对于LCD1206的读数据模式和写数据模式你应该没有什么疑惑,只要通过引脚4和引脚5设置正确的模式后,再通过GPIO来写和读引脚7到引脚14的电平数据,即可得到一个8位的数据。我们核心需要理解的是指令模式,LCD1602的指令集如下:


image.png


上图中的RS和R/W就是引脚4和引脚5,其控制模式,与指令本身无关,我们可以先不关心。从DB7到DB0是真正的指令部分。我们下面来逐一介绍。


1. 指令一:0000 0001


清屏指令,响应时间为1.53ms。


2.指令二:0000 001- (最后一位’-‘表示0和1都可以,不被关心)


光标归位指令,执行后光标的位置会回到起点,但是数据寄存器中的数据不会清空。


3.指令三:0000 01[I/D][SH]


光标移动模式设置指令,I/D和SH两个控制为光标或屏幕移动模式。


I/D设置为0:每次读取一个字符后光标左移。


I/D设置为1:每次读取一个字符后光标右移。


SH设置为0:屏幕不移动。


SH设置为1:屏幕移动,方向与I/D的设置一致。


4.指令四:0000 1[D][C][B]


显示模式设置指令,D,C,B这三个位分别设置主显示功能,光标显示功能,光标闪烁功能。


D:设置为0则关闭屏幕,设置为1开启屏幕。


C:设置为0关闭光标,设置为1显示光标。


B:设置为0光标不闪烁,设置为1光标闪烁。


5.指令五:0001  [S/C][R/L]--


设置光标和显示屏移动方向。


S/C设置为0时,R/L设置为0则光标左移,RL设置为1时光标右移。


S/C设置为1时,R/L设置为0则显示内容左移,R/L设置为1则显示内容右移。


6.指令六:001[DL] [N][F]--


功能模式设置指令。


DL:设置为1时采用8位总线读数据,设置为0时采用4位总线读数据。


N:设置为0时是单行显示模式,设置为1时是双行显示模式。


F:设置为0时为5*8的点阵字符,设置为1时为5*11的点阵字符。


7.指令七:01[A5][A4] [A3][A2][A1][A0]


设置下一个字符要显示的位置。A5位设置要定位到的行,A0到A4位定位要显示的位置,取值为0-16之间。


8.指令八:1[A6][A5][A4] [A3][A2][A1][A0]


数据寄存器地址设置。


了解了LD1602显示屏上面的指令用法,我们就可以编程来控制显示屏显示的内容了。


目录
相关文章
|
传感器 存储 定位技术
一起玩转树莓派(18)——MPU6050陀螺仪加速度传感器模块应用
现在智能手机的功能已经非常强大,除了基础的通信功能外,测位测速,空间角度等数据的测量也非常方便,这在线路导航,地图,体感游戏等应用中十分重要。不知你是否想过,智能设备是如何获取到其所在的空间状态与加速度等数据的呢?MPU6050就是提供这类数据测量的一种传感器模块。
2712 0
|
存储 人工智能 文字识别
AI开发初体验:昇腾加持,OrangePi AIpro 开发板
本文分享了作者使用OrangePi AIpro开发板的初体验,详细介绍了开箱、硬件连接、AI程序开发环境搭建、以及通过Jupyter Lab运行AI程序的过程,并展示了文字识别、图像分类和卡通化等AI应用实例,表达了AI时代已经到来的观点。
1680 1
|
12月前
|
机器学习/深度学习 计算机视觉
深入浅出卷积神经网络(CNN)
【10月更文挑战第5天】本文将通过浅显易懂的语言和实际代码示例,带你了解卷积神经网络(CNN)的基础知识、工作原理以及如何应用。我们将一起探索这个强大的深度学习工具,看看它是如何在图像识别、语音处理等领域大放异彩的。无论你是初学者还是有一定基础的学习者,这篇文章都会为你提供有价值的信息和知识。让我们一起踏上这段深入浅出的CNN之旅吧!
|
Ubuntu Docker 索引
2024年最新版 Ubuntu 20+ 上安装 Docker
这篇文章提供了在Ubuntu 20+版本上安装Docker的详细步骤,包括更新软件包索引、安装依赖包、添加Docker官方GPG密钥、设置Docker稳定版仓库、安装Docker CE以及验证安装是否成功,并指导如何将用户添加到docker组以非root用户身份运行Docker。
|
存储 程序员 C++
C/C++ 内存分配 new 操作符:剖析new操作符的实现机制和使用技巧
C/C++ 内存分配 new 操作符:剖析new操作符的实现机制和使用技巧
466 0
idea没有Maven运行界面怎么办
idea没有Maven运行界面怎么办
|
存储 自然语言处理 关系型数据库
如何使用AnalyticDB PostgreSQL 版实现“一站式全文检索”业务
本文从阿里云用户使用云原生数据仓库AnalyticDB PostgreSQL版(以下简称ADB PG)的实际体验出发,介绍ADB PG如何实现“一站式全文检索”业务,并详细阐述ADB PG使用的优势技术,最后提供对应业务案例分析。
如何使用AnalyticDB PostgreSQL 版实现“一站式全文检索”业务
|
网络安全 网络架构 数据安全/隐私保护
树莓派通过网线连接电脑(校园网也能连接),实现SSH连接
树莓派通过网线连接电脑(校园网也能连接),实现SSH连接
|
网络安全
树莓派连接电脑,显示拒绝连接解决方案
树莓派连接电脑,显示拒绝连接解决方案
1218 0
|
传感器 存储 芯片
一起玩转树莓派(18)——MPU6050螺旋仪加速度传感器模块应用(二)
一起玩转树莓派(18)——MPU6050螺旋仪加速度传感器模块应用
511 1
一起玩转树莓派(18)——MPU6050螺旋仪加速度传感器模块应用(二)