/*
程序效果:單片機(jī)控制液晶顯示器1602顯示字母數(shù)字,用戶自行更改io
程序版權(quán):http://www.zg4o1577.cn
*/
#include<reg52.h> //頭文件
#define uchar unsigned char //宏定義
#define uint unsigned int
uchar code table[]="51HEI XING XING " ; //顯示的字母
uchar code table1[]="51HEI MCU XUE YUAU" ;
sbit lcdrs=P1^0; //寄存器選擇引腳
sbit lcdwr=P1^1; //讀寫引腳
sbit lcde=P1^2; //片選引腳
void delay(uchar x) //延時子函數(shù)
{
uchar i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void write_com(uchar com) //寫指令子函數(shù)
{ //根據(jù)1602液晶顯示器協(xié)議編寫
P2=com;
lcdrs=0;
lcdwr=0;
delay(5);
lcde=0;
delay(5);
lcde=1;
}
void write_dat(uchar dat) //寫數(shù)據(jù)子函數(shù)
{
P2=dat;
lcdrs=1;
lcdwr=0;
delay(5);
lcde=0;
delay(5);
lcde=1;
}
void init() //初始化子函數(shù)
{
write_com(0x01); //清屏
write_com(0x3f); //功能設(shè)置
write_com(0x0d); //顯示控制
write_com(0x06); //輸入方式設(shè)置
}
void main()
{
uchar i; //定義局部變量
init();
write_com(0x80+0x02+0x10); //指針的位置
for(i=0;i<15;i++) //顯示
{
write_dat(table[i]);
delay(50); //延時,用于調(diào)節(jié)速度不匹配
}
write_com(0x80+0x40+0x10);
for(i=0;i<16;i++)
{
write_dat(table1[i]);
delay(50);
}
for(i=0;i<16;i++)
{
write_com(0x18);
delay(50);
}
while(1);
}