#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LCD_RS=P3^5;//数据命令选择
sbit LCD_RW=P3^6;//读写选择
sbit LCD_EN=P3^4;//使能端
sbit LCD_PSB=P3^7;//串并行选择
sbit wela=P2^6;
sbit dula=P2^7;
uchar code dis0[]={"谢谢大家看帖子"};
uchar code dis1[]={"欢迎大家"};
uchar code dis2[]={"早登高峰"};
uchar code dis3[]={"感谢教程网"};
uchar i;
/*延时1ms*/
void delay(uint time)
{
uint x,y;
for(x=time;x>0;x--)
for(y=114;y>0;y--);
}
/*写指令到LCD函数*/
void write_cmd(uchar cmd)
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
P0=cmd;
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
/*写数据到LCD函数*/
void write_dat(uchar dat)
{
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
/*设定显示位置*/
void lcd_pos(uchar x,uchar y)
{
uchar pos;
if(x==0)
{x=0x80;}
else if(x==1)
{x=0x90;}
else if(x==2)
{x=0x88;}
else if(x==3)
{x=0x98;}
pos=x+y;
write_cmd(pos);
}
/*LCD初始化*/
void lcd_init()
{
LCD_PSB=1; //选择为并行串口
wela=0;
dula=0;
delay(10);
write_cmd(0x30);
delay(5);
write_cmd(0x0C);
delay(5);
}
main()
{
lcd_init();//LCD初始化
lcd_pos(0,0);//显示在第一行第一格
i=0;
while(dis0[i]!='\0')
{
write_dat(dis0[i]);
i++;
}
lcd_pos(1,0);
i=0;
while(dis1[i]!='\0')
{
write_dat(dis1[i]);
i++;
}
lcd_pos(2,0);
i=0;
while(dis2[i]!='\0')
{
write_dat(dis2[i]);
i++;
}
lcd_pos(3,0);
i=0;
while(dis3[i]!='\0')
{
write_dat(dis3[i]);
i++;
}
}
|