单片机 LCD1602液晶显示

本文介绍了使用Proteus8和C51编写的LCD显示程序,展示了如何初始化LCD、写入命令和数据,以及在LCD上显示欢迎和欢迎到中国的文字。程序通过定义P3口的某些位来控制RS、RW和E信号,并通过延时函数控制显示更新。在主函数中,程序不断循环地在LCD的不同位置交替显示两行文本。
摘要由CSDN通过智能技术生成

proteus 8

 

 


kile5 

代码:

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit RS=P3^5;
sbit RW=P3^6;
sbit E=P3^7;
uchar code k4[]={"welcome"};
uchar code k5[]={"to china!"};
void det()
{
	uint i,j;
	for(i=0;i<=5;i++)
	{
		for(j=0;j<500;j++);
	}

}

void write_ml(uchar sum)  //写入命令
{
		RS=0;  //选择命令
		RW=0;  //写入
		P1=sum; //输入命令
		det();
		E=1;
		det();
		E=0;   //开启使能,关闭使能产生 下降沿   
}

void write_sj(uchar sum)//写入数据
{
	RS=1;   //接受数据
	RW=0;   //写
	P1=sum;  //输入数据
	det();
	E=1;
	det();
	E=0;
	
}

void init()  //初始化程序
{
	write_ml(0x38);  //设置8位数据接口 ,2行显示
	det();
	write_ml(0x0c);  //设置开显示,不显示光标
	det();
	write_ml(0x01);  //显示清0 ,数据指针清0
	det();
	
}	

void main()
{
	uint i=0;2
	init();
	while(1)
	{
		i=0;
		write_ml(0x80+0x05);
		while(k4[i]!='\0')
		{
			write_sj(k4[i]);
			i++;
			det();
		}
		write_ml(0x80+0x45);
		for(i=0;i<=9;i++)
		{
			write_sj(k5[i]);
			det();
		}
	
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值