1602液晶操作方法及代碼
CODE:
#include
#define uint unsigned int
#define uchar unsigned char
sbit lcdwrite=P2^5;
sbit lcddatecommand=P2^6;
sbit lcde=P2^7;
uchar code LA_Mask[]="LA_Mask";
uchar code AT_Eagle[]="AT_Eagle";
uchar i;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=0;y<=112;y++)
{
}
}
}
void write_command(uchar command)//寫指令
{
lcddatecommand=0;
lcdwrite=0;
P0=command;
delay(1);
lcde=1;
delay(1);
lcde=0;
}
void write_date(uchar date)//寫數(shù)據(jù)
{
lcddatecommand=1;
lcdwrite=0;
P0=date;
delay(5);
lcde=1;
delay(5);
lcde=0;
}
void init()
{
lcde=0;
write_command(0x38);//設置16*2顯示,5*7點陣,8位數(shù)據(jù)接口
write_command(0x0c);//設置開顯示,不顯示光標
write_command(0x06);// 寫一個字符后地址指針加1
write_command(0x01);//顯示清0,數(shù)據(jù)指針清0
}
void main()
{
init();
write_command(0x80+0x10);
for(i=0;i<7;i++)
{
write_date(LA_Mask[i]);
delay(1);
}
write_command(0x80+0x50);
for(i=0;i<8;i++)
{
write_date(AT_Eagle[i]);
delay(1);
}
for(i=0;i<16;i++)
{
write_command(0x18);//整屏左移,同時光標跟隨移動
//write_command(0x1c);//整屏右移,同時光標跟隨移動
delay(200);
}
while(1);
}
評論