浅尝一下AT89c51与lcd1602的显示

简单介绍一下LCD1602的引脚、指令、热线,使用。

仿真中VEE直接接地,15,16脚是没有的!

来看一下显示地址与实际显示位置的关系:

原始显示地址为0x80,以下的地址要以0x80为初始值往上加。

第一行0x80 + 0x00 = 0x80,开始,陆续加1;

第二行0x80 + 0x40 = 0xc0,开始,陆续加1。

LCD1602常用的指令码:

对于LCD1602,经常用的还是写命令比较多。

RS = 0 的时候写命令;

RS = 1 的时候写数据。

仿真一下:

AT89C51连线,标线图

LCD1602连线、标线图

先测试一下显示单个字符,代码如下:

#include <REGX51.H>
				
sbit RS = P3^0;
sbit RW = P3^1;
sbit E = P3^2;

void delay(unsigned int t)
{
	unsigned int i=0, j=0;
	for(i=0;i<t;i++)
	{
		for(j=0;j<120;j++);
	}
}

void writeData(unsigned char dat)
{
	RS = 1;
	RW = 0;
	E = 0;
	P2 = dat;	
	delay(5);
	E = 1;
	E = 0;
}

void writeCom(unsigned char com)
{
	RS = 0;
	RW = 0;
	E = 0;
	P2 = com;	
	delay(5);
	E = 1;
	E = 0;
}

void initLcd1602()
{
	writeCom(0x38);	
	writeCom(0x0c);
	writeCom(0x06);
	writeCom(0x01);
}
void display()
{
	writeCom(0x80);
	delay(5);
	writeData('A');
	delay(5);  
}

void main()
{
	initLcd1602();
	while(1)
	{
		display();
	}
}

没问题,接下来再显示一个字符串,代码如下:

#include <REGX51.H>
				
sbit RS = P3^0;
sbit RW = P3^1;
sbit E = P3^2;

unsigned char str[] = {"Hello world!"};

void delay(unsigned int t)
{
	unsigned int i=0, j=0;
	for(i=0;i<t;i++)
	{
		for(j=0;j<120;j++);
	}
}

void writeData(unsigned char dat)
{
	RS = 1;
	RW = 0;
	E = 0;
	P2 = dat;	
	delay(5);
	E = 1;
	E = 0;
}

void writeCom(unsigned char com)
{
	RS = 0;
	RW = 0;
	E = 0;
	P2 = com;	
	delay(5);
	E = 1;
	E = 0;
}

void initLcd1602()
{
	writeCom(0x38);	
	writeCom(0x0c);
	writeCom(0x06);
	writeCom(0x01);
}
void display()
{
	unsigned i=0;
	writeCom(0x80);
	delay(5);
//	writeData('A');
//	delay(5);  
//	writeData('x');
//	delay(5); 
//	writeData(0X38);
//	delay(5);
	while(str[i] != '\0')
	{
		writeData(str[i]);
		i++;
	}
}

void main()
{
	initLcd1602();
	while(1)
	{
		display();
	}
}

好了,显示正常,完活!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东成2022

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值