/********************************************************************************
* 描述: LCD1602 滚动显示*
* 显示方式: *
* 1、从左到右逐字显示,闪动二次,清屏。*
* 2、再从右到左逐字显示,闪动二次,清屏。*
* 3、周期性地重复上述显示方式。* 编写时间:2010-10-27
*********************************************************************************/
#include<>
#include <>
#define uint unsigned int
#define uchar unsigned char
#define LCD P0
sbit rs=P2^6;
sbit rw=P2^5;
sbit E=P2^7;
uchar tmp4[10]="Diamond";
uchar tmp5[]="I miss you!";
uchar code dis1[] = {" Diamond "};
uchar code dis2[] = {"I miss you!"};
uchar code dis3[] = {"!hcum yrev "};
uchar code dis4[] = {"nowk uoy od"};
uchar code dis5[] = {"Tineer"};
uchar code dis6[] = {"QQ:276257103"};
void delay(uint z)
{
uint x,y;
for (x=z;x>0;x--)
for(y=110;y>0;y--);
}
()//写指令
{
rs=0;
rw=0;
E=1;
;
delay(5);
E=0;
}
write_data(uchar dat)//写数据
{
rs=1;
rw=0;
E=1;
LCD=dat;
delay(5);
E=0;
}
lcd_pos(uchar pos)
{ //设定显示位置
(pos | 0x80);
}
lcd_init()
{ //LCD初始化设定
(0x38); //16*2显示,5*7点阵,8位数据
delay(1);
(0x0c); //显示开,关光标
delay(1);
(0x06); //移动光标
delay(1);
(0x01); //清除LCD的显示内容
delay(1);
}
void main()
{
int i;
while(1)
{
lcd_init();
delay(10);
(0x06);
(0x80+0x00);
for(i=0;i<8;i++)
{
LCD=write_data(dis1[i]);
delay(300);
}
(0x80+0X40+0x00);
for(i=0;i<11;i+
51单片机1602液晶 来自淘豆网www.taodocs.com转载请标明出处.