51单片机控制LCD1602显示(含电路图,代码)

这篇博客展示了如何用C语言编程控制1602液晶显示屏进行初始化、写命令和写数据操作,实现显示单个字符和字符串的功能。通过定义控制引脚、延时函数和检查忙状态的函数,实现了LCD的高效通信。代码中包含LCD初始化、写命令、写数据以及显示字符串的函数,并在主函数中演示了实际应用。
摘要由CSDN通过智能技术生成

源代码如下:

#include<reg51.h>
#include<intrins.h>
#define out P0
sbit RS=P2^0;
sbit RW=P2^1;
sbit E =P2^2;          //定义控制引脚

//延时函数
void delay(unsigned long n)
{
	while(n)
	{
		_nop_();
		n--;
	}
}

//检查当前1602是否处于忙状态
void LCDcheckbusy(void)
{
	unsigned char dt;
	do
	{
		dt=0xff;
		E=0;
		RS=0;
		RW=1;
		E=1;
		dt=out;
	}while(dt&0x80);
	E=0;
}

//LCD写命令函数
void LCDwritecmd(unsigned char com)
{
	LCDcheckbusy();
	E=0;
	RS=0;
	RW=0;
	out=com;
	E=1;
	_nop_();
	E=0;
	delay(1);
}

//LCD显示函数
void LCDwritedata(unsigned char dat)
{
	LCDcheckbusy();
	E=0;
	RS=1;
	RW=0;
	out=dat;
	E=1;
	_nop_();
	E=0;
	delay(1);
}

void LCDstr(char *str)
{
	while(*str)
	{
		LCDwritedata(*str);
		str++;
	}
}

//LCD初始化函数
void LCDinitial(void)
{
	LCDwritecmd(0x38);
	LCDwritecmd(0x0c);
	LCDwritecmd(0x06);
	LCDwritecmd(0x01);
	delay(1);
}

//主函数,1602显示单个字符和字符串
void main()
{
	unsigned char *str="hello world!";	  //定义要显示的字符串
	unsigned char code temp[]="hello world!";	  //定义要显示的字符串

	LCDinitial();

	LCDwritecmd(0x80);     //在第一行显示
	LCDwritedata('1');     //显示单个字符     

	LCDwritecmd(0x80+0x40);      //在第二行显示

//	LCDstr("hello world!");

//	LCDstr(str);

	LCDstr(temp);

	while(1);
}




电路图及运行结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值