学完51单片机再来学AVR,感觉很简单上手,LCD1602在学51的时分学过,所以能够直接修正相关的IO口操作即可。现在趁便也温习一下。1602能够显现两行字符,每行能够显现16个字符,惋惜的是不能显现中文,在我调试的时分它帮我不少的忙。
一、首要技术参数:
显现容量:16X2个字符(两行,每行16个字符)
模块作业电源:4.5~5.5V
模块作业电流: 2.0mA (5.0V)
模块最佳作业电源: 5.0V
字符尺度:2.95X4.35(WXH)mm
二、IO引脚功用
LCD1602A模块引脚功用 |
|||||
编号 |
符号 |
引脚阐明 |
编号 |
符号 |
引脚阐明 |
1 |
VSS |
电源地(模块供电) |
9 |
D2 |
Data I/O |
2 |
VDD |
电源正极(模块供电) |
10 |
D3 |
Data I/O |
3 |
VL |
接在滑动电阻能够调理对比度 |
11 |
D4 |
Data I/O |
4 |
RS |
数据/指令挑选端 (H/L) |
12 |
D5 |
Data I/O |
5 |
R/W |
读/写挑选端 (H/L) |
13 |
D6 |
Data I/O |
6 |
E |
使能信号(告诉芯片读取数据) |
14 |
D7 |
Data I/O |
7 |
D0 |
Data I/O |
15 |
BLA |
模块背光灯正极 |
8 |
D1 |
Data I/O |
16 |
BLK |
模块背光灯负极 |
三、根本操作时序:
读状况:输入:RS=L、RW=H、E=H模块输出:状况字=D0~D7
写指令:输入:RS=L、RW=L、D0~D7=指令码、E=H模块输出:无
读数据:输入:RS=H、RW=H、E=H 模块输出:数据=D0~D7
写数据:输入:RS=H、RW=L、D0~D7=数据、E=H 模块输出:无
状况字阐明(由于单片机的速度或许快过1602,所以需求判别当1602是否在忙,或许延时。) |
|||||||
STA7 |
STA6 |
STA5 |
STA4 |
STA3 |
STA2 |
STA1 |
STA0 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
STA0-6:当时数据地址指针的数值 |
|||||||
STA7 |
首要用来查看1602模块的是否能够写入或读出操作 |
1:制止0:答应 |
|||||
四、指令阐明(这指令是用来设置1602显现的方法)
显现形式设置 |
||||||||
指令码 |
功用 |
|||||||
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
设置16X2显现,5X7点阵,8位数据接口 |
显现开/关及光标设置 |
||||||||
指令码 |
功用 |
|||||||
0 |
0 |
0 |
0 |
1 |
D |
C |
B |
D=1 开显现D=0 关显现 |
0 |
0 |
0 |
0 |
0 |
1 |
N |
S |
N=1 当读或写一个字符后地址指针加1,且光 |
五、时序图
写操作(写指令、写数据)时序图
时序参数
写指令时序,RS拉低表明写指令,R/W拉低表明写操作,给DB0-DB7赋值指令数据并坚持>40ns时刻,将E拉高表明数据现已准备好坚持>150ns让1602读取,将E拉低,并延时>10ns一次写操作结束。
写数据时序,RS拉高表明写数据,R/W拉低表明写操作,给DB0-DB7赋值指令数据并坚持>40ns时刻,将E拉高表明数据现已准备好坚持>150ns让1602读取,将E拉低,并延时>10ns一次写操作结束。