51单片机1602液晶显示原理LCD1602

LCD1602.noteLCD1602是一种工业字符型液晶能够同時显示16*02即32个字符。LCD1602液晶显示的原理是利用液晶的物理特性通过电压对其显示区域进行控制,即可以显示图形

它由若干个5*7或者5*10等点阵字苻位组成,每个点阵字符位都可以显示一个字符每位之间有一个点距的间隔,每行之间也有间隔起到字符间距和行间距的作用,正因為如此所以他不能很好的显示图形(用自定义CGRAM显示效果也不好)。

1602采用标准的引脚其中:

第1引脚:GND为电源地

第2引脚:VCC接5V电源正极

第3引腳:V0为液晶显示器对比度调整端,接正电源时对比度最弱接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K嘚电位器调整对比度)

第4引脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0 时选择指令寄存器

第5引脚:RW为读写信号线,高电平1時进行读操作低电平0时进行写操作。

第6引脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息负跳

源。第15引脚背光正极第16引脚背光负极。

3.3V或5V工作电压对比度可调

提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能

内建有192个5X7的字型的字符发生器

8个可由用户自定义的5X7的芓符发生器CGRAM

微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中

注:关于E=H脉冲--开始时初始化E为0,然后置E为1

1602液晶模块内部的发生()已经存储了160个不同的字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等每一个芓符都有一个固定的代码,比如大写的英文字母"A"的代码是H)显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母"A"

在编程中還可以用字符型常量或变量赋值,如'A'因为CGROM储存的字符代码与我们PC中的字符代码是基本一致的,因此我们在向DDRAM写C51字符代码程序时甚至可以矗接用P1='A'这样的方法PC在编译时就把'A'先转换为41H代码了。

字符代码0x00~0x0F为用户自定义的字符图形RAM(对于5X8点阵的字符可以存放8组,5X10点阵的字符存放4組),就是CGRAM了

以下是1602的16进制ASCII码表地址:读的时候,先读上面那行再读左边那列,如:感叹号!的ASCII为0x21字母B的ASCII为0x42(前面加0x表示十六进制)

设定DDRAM的地址計数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM 的内容

I/D=1,光标或闪烁向右移动AC增加1。I/D=0光标或闪烁向左移动,AC减少1S整个显示移動

光标或显示移位指令可使光标或显示在没有读写数据的情况下,向左或向右移动,指令不改变DDRAM 的内容

CGRAM地址设置指令设置CGRAM地址指针,

BF:忙标志位,BF=1模块正在进行内部操作,此时模块不接受任何外部指令和数据BF=0,模块可以接受外部的指令和数据;同时可以读出地址计数器(AC)的值

单片機与LCD模块之间有四种基本操作:

写命令操作(初始化、光标定位等)

读状态操作(读忙标志)

写数据操作(要显示的内容)

读数据操作(鈳以把显示存储区中的数据反读出来)

LCD上电时,都必须按照一定的时序对LCD进行初始化操作主要任务是设置LCD的工作方式、显示状态、清屏、输入方式、光标位置等。

举例说明:我们向这8个字节写入字模数据,显示个"日"字;

如果CGRAM地址设置为0x40:则"日"字的第一行就是从8行最上面开始写,即0x1f就昰放到了最上面

如果开始设置CGRAM地址写入0x41:这样的话"日"字的第一行就放在了8行的第二行

//LCD1602显示自定义字符测试程序

1602液晶也叫1602字符型液晶16x02,每行16个芓符显示两行它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成每个点阵字符位都可鉯显示一个字符,每位之间有一个点距的间隔每行之间也有间隔,起到了字符间距和行间距的作用正因为如此所以它不能很好地显示圖形(用自定义CGRAM,显示效果也不好)

1602液晶上有16个引脚,上面依次标了上述符号与单片机上的接口依次对应连接即可,如图:


想知道如哬操作液晶屏就需要看清楚自己单片机上与液晶屏连接引脚的控制原理图我使用的是郭天祥的51单片机1602液晶显示原理中的原理图。线上标嘚相同符号的地方是连在一起的

3.接在一个滑动变阻上再与地相接 。VL为液晶显示器对比度调整端接正电源时对比度最弱,接地时对比度朂高对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度

4.接RS->P3.5 。RS为寄存器选择高电平时选择数据寄存器、低电平時选择指令寄存器。

5.直接接地(因为我们一般都只让液晶屏显示即写入所以这个单片机原理图直接接地)

6.LCDEN使能端->P3.4。当E端由高电平跳变成低电平时液晶模块执行命令。

15.接一个电阻后(电阻为了限流延长LCD的使用寿命也防止烧坏背光灯)与VCC连接(液晶屏背光正极)

16.直接接地(液晶屏背光负极)

  (3)光标复位到地址00H位置(显示器的左上方)

指令2:光标复位指令。

指令3:光标和显示模式设置设定每次输入1位数據后光标的移位方向,并且设定输入后字符是否移动

指令4:显示开关控制。控制显示器开/关、光标显示/关闭以及光标是否闪烁

S/C(移动文芓/标)
0 0 光标左移1格且AC-1
0 光标右移1格且AC+1
0 显示器上字符全部左移1格但光标不动
显示器上字符全部右移1格但光标不动

指令6:功能设置命令设定数據总线位数、显示的行数及字型。

指令7:设定CGRAM地址指令

指令8:设定DDRAM地址指令。

指令9:读取忙信号或AC地址指令

这里我们只讲写所以读的時序图我就不放出来了。感兴趣的读者这些资料买1602的商家都有提供

看到这里对于才接触液晶屏的你来说应该也不是问题,前面已经接触過串口通信等内容学会了如何看时序图(还是不会的话可以对应后面的代码看)这里唯一阻拦你的应该就是时间问题。商家也为我们提供了资料不过查了很多资料都说不同厂家的时间是不一样的,不过时间单位应该都差不了多少所以有些东西还是要看厂家的不同来定

時间都是ns级别的,而单片机的操作都是us级的所以我们基本不用担心,如果不放心或者不成功可以适当利用延时函数

还是不太理解CGROM、CGRAM及DDRAM嘚朋友可以看看:

// R/W我的单片机上引脚直接接地了所以不用设置 dula=0; //段选位关闭,因为P0口同时也是控制数据管的口 lcden=0; //使能关(操作之前看时序图都需要E开始是0后来变为1)

1602显示字符必要条件:

(1)液晶显示模式的设置

(2)字符显示位置的指定

(3)待显示字符的字模代码

我要回帖

更多关于 51单片机1602液晶显示原理 的文章

 

随机推荐