LCD显示模块

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

写地址

void WriteAddress(unsigned char x) { WriteInstruction(x|0x80); //显示位置的确 定方法规定为 “80H+地 址码x" }


延时15mS(给1602型LCD一段反映时间) 写指令38H(不检测忙信号)(还未开始工作,显示模式 设置为16*2显示,5*7点阵,8位数据接口) 延时5mS 写指令38H(不检测忙信号) 延时5mS 写指令38H(不检测忙信号) 延时5mS(连续设置3次确保初始化成功) 以后每次写指令、读/写数据操作均需要检测忙信号
R/W为读写信号线,高 电平时进行读操作,低 电平时进行写操作。
引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口, 各引脚接口说明如表所示:
VL为液晶显示 器对比度调整端, 接正电源时对比 度最弱,接地时 对比度最高,使 用时可以通过一 个10K的电位器 调整对比度,通 常接地
返回值:result。result=1,忙碌;result=0,不忙
写指令








void WriteInstruction (unsigned char dictate) { while(BusyTest()==1); //如果忙就等待 RS=0; //根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; E=0; //E置低电平(写指令时,E为高脉冲, // 就是让E从0到1发生正跳变,所以应先置"0" _nop_(); _nop_(); //空操作两个机器周期,给硬件反应时间 P0=dictate; //将数据送入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); //空操作四个机器周期,给硬件反应时间 E=1; //E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); //空操作四个机器周期,给硬件反应时间 E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令 }
写数据



Baidu Nhomakorabea


void WriteData(unsigned char y) { while(BusyTest()==1); RS=1; //RS为高电平,RW为低电平时,可以写入数据 RW=0; E=0; //E置低电平(写指令时,E为高脉冲, // 就是让E从0到1发生正跳变,所以应先置"0" P0=y; //将数据送入P0口,即将数据写入液晶模块 _nop_(); _nop_(); _nop_(); _nop_(); //空操作四个机器周期,给硬件反应时间 E=1; //E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); //空操作四个机器周期,给硬件反应时间 E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令 }
+5V
AT89C51
31 30 29 EA ALE PSEN
C3
10u 9 RST
18
R1
10k 19
XTAL2
XTAL1
GND
P07
P00 P01 P02 P03 P04 P05 P06 P07
7 8 9 10 11 12 13 14
D0 D1 D2 D3 D4 D5 D6 D7
1602字符型液晶显示器
技术参数
1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,
带背光的比不带背光的厚,是否带背光在应用中并无差别
1602LCD主要技术参数: 显示容量:16×2个字符 芯片工作电压:4.5—5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.95×4.35 (W×H)mm
1602型LCD工作过程

DQ



VCC
初始化(设置显示模式,数据接口等) 读状态 写指令 写数据 自动显示
1602型LCD初始化
部分初始化指令: 写指令38H:显示模式设置 写指令01H:显示清屏 写指令0CH:显示开及光标设置

写指令08H:显示关闭 写指令06H:显示光标移动设置
E端为使能端,当E端由高电平跳变成低 RS为寄存器选择,高电平时选择数据寄存 电平时,液晶模块执行命令。 器、低电平时选择指令寄存器。
1602LCD的指令

1602液晶模块内部的控制器共有11条控制指令
1602LCD的指令说明


指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。 指令3:光标和显示模式设置 I/D:光标移动方向,高电平 右移,低电平左移 S:屏幕上所有文字是否左移或者右移。 高电平表示有效,低电平则无效。 指令4:显示开关控制。 D:控制整体显示的开与关,高 电平表示开显示,低电平表示关显示 C:控制光标的开与 关,高电平表示有光标,低电平表示无光标 B:控制光标 是否闪烁,高电平闪烁,低电平不闪烁。


指令5:光标或显示移位 S/C:高电平时移动显示的文字, 低电平时移动光标。



指令6:功能设置命令 DL:高电平时为8位总线,低电平 时为4位总线 N:低电平时为单行显示,高电平时双行显 示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10 的点阵字符。 指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。 指令9:读忙信号和光标地址 BF:为忙标志位,高电平 表示忙,此时模块不能接收命令或者数据,如果为低电平 表示不忙。 指令10:写数据。 指令11:读数据。
读状态





unsigned char BusyTest(void) { bit result; RS=0; //根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1; //E=1,才允许读写 _nop_(); //空操作 _nop_(); _nop_(); _nop_(); //空操作四个机器周期,给硬件反应时间 result=BF; //将忙碌标志电平赋给result E=0; return result; }
1602型LCD的读写操作
液晶显示模块是一个慢显示器件,所以在执行每条指令 之前一定要读状态,确认模块的忙标志“BF”为低电平, 表示不忙,否则此指令失效 。即欲写先读
1602型LCD内部地址

要显示字符时要先输入显示字符地址,也就是告诉模块在 哪里显示字符,如图是1602的内部显示地址。
例如第二行第一个字符的地址是40H,那么是否直接写入40H就 可以将光标定位在第二行第一个字符的位置呢? 这样不行,因为写入显示地址时要求最高位D7恒定为高电平1, 所以实际写入的数据应该是(第八条指令) 01000000B(40H)+10000000B(80H)=11000000B(C0H)。
LCD液晶显示 应用编程
LCD液晶显示器

按显示形式可分为:字段型、点阵字符型、点阵图形 型 1602点阵字符型LCD


字符型液晶显示模块是一种专门用于显示字母、数字、符号等 点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。 只要将待显示字符的标准ASCII码放入内部数据显示用存储器 DD RAM,内部控制总线就会自动将字符传送到显示器上。
LCD液晶显示模块接口电路
+5V LCD1602
GND
+5V
VSS VDD VEE
RS RW E 4 5 6
R2
10k
R3
10k
R4
10k
R5
10k
R6
10k
R7
10k
R8
10k
R9
10k
1 2 3
P00
P01
P02
P03
P04
P05
P06
U1
8 7 6 5 4 3 2 1 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P3.7/RD P3.6/WR P3.5/T1 P3.4/T0 P3.3/INT1 P3.2/INT0 P3.1/TXD P3.0/RXD P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8 P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 17 16 15 14 13 12 11 10 28 27 26 25 24 23 22 21 32 33 34 35 36 37 38 39 P07 P06 P05 P04 P03 P02 P01 P00
相关文档
最新文档