前言
本节我们开始学习LCD1602,LCD1602是字符型液晶显示屏,在实际项目中应用非常广泛,学完本节就可以逐步开发一些好玩的应用了。
一、基础知识
1.LCD1602简介
LCD1602是字符型液晶显示模块,专门用于显示字母、数字、符号等点阵式LCD,顾名思义,LCD1602一共可以显示两行,每一行能够显示16个字符数据,采用5V供电,具有低功耗、长寿面、搞可靠性等特性,实物图如下:
(1) 引脚说明
在 LCD1602 内部含有 80 个字节的 DDRAM,它是用来寄存显示字符的。其地址和屏幕的对应关系如下
从上图可知,LCD1602中80个字节并不是所有的都用来显示数据,只有第一行的00-0F,第二行的40~4F用来显示,其他地址只能用来存储
(2) 指令表
(3) 常用指令说明
-
清屏指令
功能:清楚屏幕,置AC为0 -
模式设置指令
功能:光标和显示模式设置
设定每次输入1位数据后光标的移位方向,并且设定每次写入后的字符是否移动。
I/D(光标移动方向): 1:右移 0:左移
S(显示屏整体是否移动): 1 :有效右移 0:无效 -
显示开关控制指令
功能:控制显示器开/关,光标开/关,光标是否闪烁
D:1,开启显示功能; 0,关闭显示功能
C:1,有光标;0,无光标
B:1,光标闪烁;0,光标不闪烁 -
功能设定指令
功能:设置数据总线位数、显示行数、字型
DL:1,数据总线为8位; 0,数据总线为4位
N:1,显示2行;0,显示1行
F:1,5X7点阵;0,5X10点阵
2.硬件设计
打开硬件设计电路,LCD相关电路如下
注意:R7控制LCD1602驱动电压,可调,一般设计需要10K可调电阻,也可以字型调试OK后,焊接固定电阻。
二、实例
1.创建工程
将上一节工程复制出来,并修改名字为05-lcd1602
2.修改程序
/*------------------------------------------------------
*店铺网址:https://shop321633213.taobao.com/?spm=a1z10.3-c.0.0.33816af5iLgN2F
*适用于A08开发板
*实验现象:驱动LCD1602
*QQ群:906015840
* ------------------------------------------------------*/
#include<reg51.h> //头文件
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table_xiaoyi[]="XIAOYI IOT"; //
uchar code table_xiaoyi_welcome[]="Welcome!";
sbit LCD_EN=P3^7; //液晶使能信号
sbit LCD_RS=P3^5; //数据/命令选择端
sbit LCD_WR=P3^6;
void delay_ms(uint ms)
{
uint x,y;
for(x=ms;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com) //命令
{
LCD_RS=0; //选择写命令
P0=com;
delay_ms(5);
LCD_EN=1; //使能信号
LCD_EN=0; //关闭使能
}
void write_data(uchar date) //数据
{
LCD_RS=1; //选择写数据
P0=date;
delay_ms(5);
LCD_EN=1;
LCD_EN=0;
}
void init()
{
LCD_EN=0;
write_com(0x38); //00111000 设置16*2显示,5*7点阵 8为数据接口
write_com(0x0c); //00001100 设置开显示,不显示光标
write_com(0x06); // 00000110 写一个字符后地址指针加 1
write_com(0x01); //00000001 显示清0,数据指针清零
}
void main(void) //主函数
{
uchar i;
LCD_WR=0;
init();
// 写第一行数据
write_com(0x80);
for(i=0;i<10;i++)
{
write_data(table_xiaoyi[i]);
delay_ms(5);
}
// 写第二行数据
write_com(0x80+0x40);
for(i=0;i<8;i++)
{
write_data(table_xiaoyi_welcome[i]);
delay_ms(5);
}
while(1);
}
程序中将字符串"XIAOYI IOT"显示在第一行,"Welcome"显示在第二行。
三、运行
将上述程序生成的hex文件烧录到板子中,板子显示如下:
四、结语
如您在使用过程中有任何问题,请加QQ群进一步交流。
QQ交流群:906015840 (备注:物联网项目交流)
源码获取:扫描下方二维码,关注公众号,回复"51单片机"即可
硬件获取:淘宝搜索店铺"小驿物联"。
一叶孤沙出品:一沙一世界,一叶一菩提