手打完美运行 配套郭天祥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);
}