LCD显示原理 : 以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。
1602是字符型液晶,通过一个一个点阵来显示,由于每一个点阵之间会有很大的间隔因此不适合来显示图形,只能用来显示数字,字母和各种符号。
1602 2行 每行16个字符
液晶接口信号说明:
VO 液晶显示对比调节端:在单片机中已经直接与一个调节器相连,不需要我们用软件来调节。(当你认为你的编程一定正确的时候但是呢就是显示不出你想要的字符很可能问题就出在这里,赶快去旋转你的小按钮吧。)
RS: 数据/命令选择端(H/L);
R/W 读写选择端(H/L);
E 使能信号.
1602的操作流程
- 通过RS确定是些数据还是写命令。
- 读写端设置为写的模式,即为低电平
- 将数据或命令传送到数据线上
- 给E一个高脉冲将数据送入液晶控制器,完成写操作。
# include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LOVE YOU!";
uchar code table1[]="wangchen23333";
sbit lcden=P2^7;//需要调节的三个IO.
sbit lcdrs=P2^6;
sbit lcdwr=P2^5;
uchar num;
void delay (uint z)
{
uint x,y;
for(x=z;x>0;x--){
for(y=110;y>0;y--);
}
}
void write_com(uchar com){
lcden=0;
lcdrs=0;//设置为数据命令
lcdwr=0;//写操作
P0=com;//将数据送上数据线
delay(5);//来个缓存保证数据全部已经传输
lcden=1;//一个高电平将数据送入液晶显示器
delay(5);
lcden=0;
}
void write_date(uchar date){
lcden=0;
lcdrs=1;
lcdwr=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init(){
lcden=0;
write_com(0x38);// 一写格式等命令
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
}
void main ()
{
init();
for(num=0;num<11;num++){
write_date(table[num]);
delay(5);
}
write_com (0x80+0x40);
for(num=0;num<13;num++){
write_date(table1[num]);
delay(5);
}
while(1);
} //可以将这组代码当成一个模板,如果要改变内容只需要改变字符数组内的元素就行了。
结语:
人啊总不能太闲,否则稍微一努力就感动的不得了。