1602液晶显示器代码

手打完美运行  配套郭天祥51开发板

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
	
sbit lcden=P3^4;//位定义LCD使能端
sbit lcdrs=P3^5;//位定义LCD数据命令脚
sbit dula=P2^6;
sbit wela=P2^7;

uchar i;
uchar code teble[]="Blue-lover";


/******延时函数*****/
void delay(uint z)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=114;y>0;y--);
}
/*****发送命令函数*****/
void send_com(uchar com)
{
	lcdrs=0;//低电平切换接收命令
	P0=com;//发送命令
	lcden=1;//高电平准备读取命令
	delay(1);//延时 数据设置时间
	lcden=0;//低电平接收命令
	delay(1);
}
/*****发送数据函数*****/
void send_dat(uchar dat)
{
	lcdrs=1;//高电平切换接收数据
	P0=dat;//发送数据
	lcden=1;//高电平准备接收数据
	delay(1);//延时 数据设置时间
	lcden=0;//低电平接收数据
}
/*****LCD初始化*****/
void init()
{
	dula=0;//关闭段选锁存器
	wela=0;//关闭位选锁存器
	lcden=0;//LCD使能清零
	send_com(0x38);//功能设置:8位总线,两行显示模式
	send_com(0x0e);//显示开/关控制:开显示,游标显示,游标闪烁
	send_com(0x06);//设置输入模式:游标右移 AC自动加1,显示不发生移位元
	send_com(0x01);//清空显示,
}
/*****主函数*****/
void main()
{
	init();
	send_com(0x80+0x10);
	for(i=0;i<10;i++)
	{
		send_dat(teble[i]);
	}
	send_com(0x80+0x50);
	for(i=0;i<10;i++)
	{
		send_dat(teble[i]);
	}
	for(i=0;i<13;i++)
	{
		delay(300);
		send_com(0x18);//内容左移14位,屏幕外移动到屏幕中
	}
	while(1);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值