C51液晶显示(LMC1602A)实验2
扫描二维码
随时随地手机看文章
因为在protues上没有找到这款液晶屏幕,所以就不截图了,经过验证是对的。
程序一:在液晶屏上显示一个1
//在液晶屏上显示一个字符
#include
#define uchar unsigned char
#define uint unsigned int
//端口设置
sbit lcden=P3^4;
sbit lcdrs=P3^5;
//延迟函数,大约1秒
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//写命令
void write_com(uchar com)
{
lcdrs=0;//写命令
P0=com;
delay(5);
lcden=1;//启动使能,向存储器写
delay(5);
lcden=0;//写完关闭使能
}
//写数据
void write_data(uchar date)
{
lcdrs=1;//写数据
P0=date;
delay(5);
lcden=1;//启动使能
delay(5);
lcden=0;//关闭使能
}
//初始化子程序
void init()
{
lcden=0;
write_com(0x38);//显示设置
write_com(0x0e);//显示开关与光标设置
write_com(0x06);
write_com(0x01);//清屏幕
write_com(0x80);//数据指针初始化
}
//主函数
void main()
{
init();
write_data('1');
while(1);
}
程序二:在液晶屏上显示一串字符
//在液晶屏上显示一串字符
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LIKE MCU!";
uchar code table1[]="TAO XIAO SHOU";
//端口设置
sbit lcden=P3^4;
sbit lcdrs=P3^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)
{
lcdrs=0;//写命令
P0=com;
delay(5);
lcden=1;//启动使能,向存储器写
delay(5);
lcden=0;//写完关闭使能
}
//写数据
void write_data(uchar date)
{
lcdrs=1;//写数据
P0=date;
delay(5);
lcden=1;//启动使能
delay(5);
lcden=0;
}
//初始化子程序
void init()
{
lcden=0;
write_com(0x38);//显示设置
write_com(0x0e);//显示开关与光标设置
write_com(0x06);
write_com(0x01);//清屏幕
write_com(0x80+0x10);//数据指针初始化
}
//主函数
void main()
{
init();
for(num=0;num<11;num++)
{
write_data(table[num]);
delay(20);
}
//write_com(1);
write_com(0x80+0x53);//数据指针初始化
for(num=0;num<13;num++)
{
write_data(table1[num]);
delay(20);
}
for(num=0;num<16;num++)
{
write_com(0x18);//整个屏幕左移
delay(20);
}
while(1);//停止
}