LCD显示移动字符代码
时间:01-12 10:59 阅读:991次
*温馨提示:点击图片可以放大观看高清大图
简介:本文介绍的是LCD显示移动字符代码。要求LCD移动显示字符,从右至左移出,然后闪烁四次,不断循环。
**********************************************************************
;* 功能: LCD移动显示字符,从右至左移出,然后闪烁四次,不断循环。
;* 第一行显示 welcomeU”第二行显示ww.51c51.comG
;*********************************************************************/
#i nclude<at89x51.h> //头文件
#define uchar unsigned char //定义方面后面使用
uchar code dis1[]={"welcome"}; //定义显示字符数组
uchar code dis2[]={"www.51c51.com"};
sbit rs=P2^0; //定义LCD脚位
sbit rw=P2^1;
sbit en=P2^2;
//--------原型声明--------
lcd_init(); //LCD初使化
lcd_wcmd(uchar cmd); //写指令到LCD
lcd_wdat(uchar dat); //写数据到LCD
delay(uchar us); //延时函数
flash(); //LCD闪烁
//---------声明结束--------
//----------延时i*500us----------
delay(uchar us) //延时程序500us
{
uchar i;
while(us--)
{
for(i=0;i<50;i++);
}
}
//-------------延时ms*2ms----------------
delayA(uchar ms)
{
uchar e;
while(ms--)
for(e=0;e<250;e++);
}
//-------------写指令到LCD---------------
lcd_wcmd(uchar cmd) //写指令数据
{
P0=cmd;
rs=0;
rw=0;
en=1;
delay(1);
en=0;
delay(1);
}
//------------------写数据到LCD----------------
lcd_wdat(uchar dat) //写数据到LCD
{
P0=dat;
rs=1;
rw=0;
en=1;
delay(1);
en=0;
delay(1);
}
//-------------lcd初使化----------------
lcd_init() //LCD初使化
{
lcd_wcmd(0x38);
lcd_wcmd(0x0c);
//lcd_wcmd(0x06);
lcd_wcmd(0x01);
}
//---------------字符闪烁---------------
flash() //字符闪烁
{
lcd_wcmd(0x08);
delayA(250);
;
lcd_wcmd(0x0c);
delayA(250);
}
//---------------主函数---------------
void main()
{
uchar s,y;
lcd_init(); //初使化LCD
delay(250);
while(1)
{
lcd_wcmd(0x01); //清屏
delay(20); //延时一些时间
lcd_wcmd(0x94); //第一行开始显示位置
s=0;
while(dis1[s]!='\0')
{
lcd_wdat(dis1[s]);
s++;
}
lcd_wcmd(0xd1); //第二行显示位置
s=0;
while(dis2[s]!='\0')
{
lcd_wdat(dis2[s]);
s++;
}
for(y=0;y<15;y++) //移动字符的个数
{
lcd_wcmd(0x18); //字符左移
delayA(250); //控制移动速度500ms
}
for(y=0;y<4;y++) //闪烁四次
{flash();}
//while(1); //加上次句只循环一次
}
}
//----------------主函数结束--------------------