ARM
1602B液晶使用实例 (含原理图和源程序代码)
液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。
本实验以常见的1602B字符型LCD模块为例,介绍该模块的简单使用。1602B可以显示2行16个字符,有8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。
该模块也可以只用D4-D7作为四位数据分两次传送。这样的话可以节省MCU的I/O口资源。本实验将使用Atmega8并采用四位数据方式来控制1602B循环显示“Welcome www.elecfans.com!”和“Tel:13308844201 527dz@527dz.com”。
1602B外观如下图所示:
1602B封装尺寸图:
1602B引脚说明:
编号 |
符号 |
引脚说明 |
编号 |
符号 |
引脚说明 |
1 |
VSS |
电源地 |
9 |
D2 |
双向数据口 |
2 |
VDD |
电源正极 |
10 |
D3 |
双向数据口 |
3 |
VL |
对比度调节 |
11 |
D4 |
双向数据口 |
4 |
RS |
数据/命令选择 |
12 |
D5 |
双向数据口 |
5 |
R/W |
读/写选择 |
13 |
D6 |
双向数据口 |
6 |
E |
模块使能端 |
14 |
D7 |
双向数据口 |
7 |
D0 |
双向数据口 |
15 |
BLK |
背光源地 |
8 |
D1 |
双向数据口 |
16 |
BLA |
背光源正极 |
注意事项:从该模块的正面看,引脚排列从右向左为:15脚、16脚,然后才是1-14脚(线路板上已经标明)。
VDD:电源正极,4.5-5.5V,通常使用5V电压;
VL:LCD对比度调节端,电压调节范围为0-5V。接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;
RS:MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;
R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据;
E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。
D0-D7:8位数据总线,三态双向。如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。本充电器就是采用4位数据传送方式;
BLA: LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;
BLK: LED背光地端。
线路图:
C源代码下载:点击此处下载
1602B 数据手册:
点击此处下载 (PDF格式)
点击此处下载 (更详细的html使用说明,谢谢会员 xsykg 提供)
后记:
网友andy提供了六条线的连接方法,即LCD_RW接地(RW中只用W不需要R,所以可以省一根线)。点击此处下载6线的源代码
网友afeng提供了M16下的威廉希尔官方网站 及C代码: 点击此处下载M16的威廉希尔官方网站 图(protel格式)及源代码
网友rz12345反映,用下载的1602六线驱动,经改动用atmanAVR编译,下载试验后发现显示不稳定,表现是开关电源时1602有时工作不正常,查使用说明发现原程序对1602初始化不够,经试验改动如下:
void LCD_init(void)
{
delay_nms(1000);
unsigned int i=0;
for (i=0;i<20;i++)
{
LCD_write_char(0,0x28); //4bit test
delay_nms(15);
}
LCD_write_char(0,0x0c); //显示开
delay_nms(5);
.............................
全部0条评论
快来发表一下你的评论吧 !