LCD1602教程(一)

目录

LCD1602主要技术参数:

引脚说明:

接线说明:

基本操作时序:

RAM地址映射图:

指令说明:

初始化设置

显示模式设置

显示开/关及光标设置

数据控制

数据指针设置

其他设置

初始化过程(复位过程)

参考程序:

效果图:

附录:

读操作时序

写操作时序

时序参数


LCD1602主要技术参数:

显示容量16 X 2 个字符
芯片工作电压4.5 ~ 5.5V
工作电流2.0 mA(5.0V)
模块最佳工作电压5.0V
字符尺寸2.95 X 4.35(WXH)mm

 

引脚说明:

编号符号引脚说明编号符号引脚说明
1VSS电源地9D2Data I/O
2VDD电源正极10D3Data I/O
3VL液晶显示偏压信号11D4Data I/O
4RS数据/命令选择端(H/L)12D5Data I/O
5R/W读/写选择端(H/L)13D6Data I/O
6E使能信号14D7Data I/O
7D0Data I/O15BLA背光源正极
8D1Data I/O16BLK背光源负极

 

接线说明:

基本操作时序:

 输入输出
读状态RS=L,RW=H,E=HD0 ~ D7 =状态字
写指令RS=L,RW=L,D0 ~ D7 =,E=高脉冲
读数据RS=H,RW=H,E=HD0 ~ D7 =数据
写数据RS=H,RW=L,D0 ~ D7 =,E=高脉冲

RAM地址映射图:

指令说明:

初始化设置

显示模式设置

显示开/关及光标设置

数据控制

   控制器内部设有一个数据地址指针,用户可以通过它们来访问内部的全部80字节RAM。

数据指针设置

其他设置

初始化过程(复位过程)

写指令 38H :显示模式设置

写指令 08H :显示关闭

写指令 01H :显示清屏

写指令 06H :显示光标移动位置

写指令 0CH :显示开及光标设置

 

参考程序:

/*
接线说明:
		RS=P3^5;RW=P3^6;EN=P3^7;
		D0~D7=P2^0~P2^7;
		BLA=+5V;BLK=GND;
		VSS=GND;VDD=+5V;
		VL引脚外接1K电阻然后接入GND;	
*/
#include<reg52.h>
#include<intrins.h>

#define uchar unsigned char
#define uint unsigned int
uchar num;
uint i,j;

sbit LCD1602_RS=P3^5;
sbit LCD1602_RW=P3^6;
sbit LCD1602_EN=P3^7;

uchar code table1[]="MCU:STC89C52RC";
uchar code table2[]="     2020-12-28";

void Delay500ms();//作为逐个字符之间的显示时间
void Delay5ms();//时序图中Tpw
void init();//液晶初始化
void LCD1602_RWite_com(uchar com);//写命令函数
void LCD1602_RWite_data(uchar dat);//写数据函数

void main()
{
	P2=0;
	init();
	
	LCD1602_RWite_com(0x80);
	for(num=0;num<14 ;num++)//14为table1的字符的长度
	{
		LCD1602_RWite_data(table1[num]);
		Delay500ms();	
	}
	
	LCD1602_RWite_com(0x80+0x40);
	for(num=0;num<15 ;num++)//15为table2的字符的长度
	{
		LCD1602_RWite_data(table2[num]);
		Delay500ms();
	}	
	while(1);
}

void Delay500ms()		//@11.0592MHz
{
	uchar i, j, k;
	
	_nop_();
	i = 4;
	j = 129;
	k = 119;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void Delay5ms()		//@11.0592MHz
{
	uchar i, j;
	
	i = 9;
	j = 244;
	do
	{
		while (--j);
	} while (--i);
}
void LCD1602_RWite_com(uchar com) //写命令
{
	LCD1602_RS=0;
	LCD1602_RW=0;
	LCD1602_EN=0;
	P2=com;
	LCD1602_EN=1;
	Delay5ms();
	LCD1602_EN=0;

}
void LCD1602_RWite_data(uchar dat)	//写数据
{
	LCD1602_RS=1;
	LCD1602_RW=0;
	LCD1602_EN=0;
	P2=dat;
	LCD1602_EN=1;
	Delay5ms();
	LCD1602_EN=0;

}

void init()	//初始化
{
	LCD1602_RWite_com(0x38);//显示模式设置
	LCD1602_RWite_com(0x08);//显示关闭
	LCD1602_RWite_com(0x01);//显示清屏
	LCD1602_RWite_com(0x06);//显示光标移动设置
	LCD1602_RWite_com(0x0f);//显示开及光标设置
}

效果图:

附录:

读操作时序

写操作时序

时序参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值