C51液晶顯示(LMC1602A)實(shí)驗(yàn)2
因?yàn)樵趐rotues上沒有找到這款液晶屏幕,所以就不截圖了,經(jīng)過驗(yàn)證是對的。
程序一:在液晶屏上顯示一個1
//在液晶屏上顯示一個字符
#include
#define uchar unsigned char
#define uint unsigned int
//端口設(shè)置
sbit lcden=P3^4;
sbit lcdrs=P3^5;
//延遲函數(shù),大約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;//寫完關(guān)閉使能
}
//寫數(shù)據(jù)
void write_data(uchar date)
{
lcdrs=1;//寫數(shù)據(jù)
P0=date;
delay(5);
lcden=1;//啟動使能
delay(5);
lcden=0;//關(guān)閉使能
}
//初始化子程序
void init()
{
lcden=0;
write_com(0x38);//顯示設(shè)置
write_com(0x0e);//顯示開關(guān)與光標(biāo)設(shè)置
write_com(0x06);
write_com(0x01);//清屏幕
write_com(0x80);//數(shù)據(jù)指針初始化
}
//主函數(shù)
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";
//端口設(shè)置
sbit lcden=P3^4;
sbit lcdrs=P3^5;
uchar num;
//延時函數(shù)
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;//寫完關(guān)閉使能
}
//寫數(shù)據(jù)
void write_data(uchar date)
{
lcdrs=1;//寫數(shù)據(jù)
P0=date;
delay(5);
lcden=1;//啟動使能
delay(5);
lcden=0;
}
//初始化子程序
void init()
{
lcden=0;
write_com(0x38);//顯示設(shè)置
write_com(0x0e);//顯示開關(guān)與光標(biāo)設(shè)置
write_com(0x06);
write_com(0x01);//清屏幕
write_com(0x80+0x10);//數(shù)據(jù)指針初始化
}
//主函數(shù)
void main()
{
init();
for(num=0;num<11;num++)
{
write_data(table[num]);
delay(20);
}
//write_com(1);
write_com(0x80+0x53);//數(shù)據(jù)指針初始化
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);//停止
}