学习了LCD用来显示两行邮箱和手机号
三种显示方式:
直接显示
滚动显示
闪烁显示
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
#include<reg51.h>
sbit rs=P2^0;
sbit rw=P2^1;
sbit en=P2^2;
#define uint unsigned int
#define uchar unsigned char
uchar code tab1[]={"123456@163.com"};
uchar code tab2[]={"tel:1234567891"};
void delay(unsigned int xms);
void write_com(uchar com)
{
rw=0;
rs=0;//指令寄存器
P0=com;
delay(5);
en=1;
delay(5);
en=0;
}
void write_data(uchar dat)
{
rw=0;
rs=1;//数据寄存器
P0=dat;
delay(5);
en=1;
delay(5);
en=0;
}
void init()
{
en=0;
write_com(0x01);
write_com(0x06);
write_com(0x0c);
write_com(0x38);
}
int main()
{
uint i;
init();
write_com(0x80+0x10);
for(i=0;i<15;i++)
{
write_data(tab1[ i]);
delay(50);
}
write_com(0x80+0x50);
for(i=0;i<15;i++)
{
write_data(tab2[ i]);
delay(50);
}
while(1)
{
for(i=0;i<16;i++)
{
write_com(0x1c);
delay(50);
}
}
return 0;
}
void delay(unsigned int xms)
{
unsigned i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
全部资料51hei下载地址:
邮箱电话.zip
(107.96 KB, 下载次数: 23)
|