lcd1604顯示程式
晶振:11.0592mhz
日期:2009.4.25
引腳說明:
總引腳支數:16pin
1pin:vss 0v
2pin:vdd +5v
3pin:液晶顯示對比度調整,對地接可微調電阻10k
4pin:rs,數據/命令選擇(h/l),接i/o口
5pin:讀寫選擇(h/l),直接接地
6pin:e,使能信號,高脈衝
7pin~14pin:d0~d7,接一組8位io口
15pin:背光正極,接i/o口(需加驅動)
16pin:背光負極,可接地。
第一行內存地址: 0x80+0~f 共16位(16進制)
第一行記憶體地址: 0x80+0x40~4f 共16位(16進制)
第一行記憶體地址: 0x80+0x10~1f 共16位(16進制)
第一行記憶體地址: 0x80+0x50~5f 共16位(16進制)
*/
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table1[]=" G-TECH PE ";
uchar code table2[]="www.gtechzs.com ";
uchar code table3[]="TEL:760-88925368";
uchar code table4[]="FAX:760-88815278";
sbit lcden=P2^3;
sbit lcdrs=P2^1;
sbit ledd=P2^4;
uint num;
//************************
//延時子函式
void delay(uint z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=1;y>0;y--);
}
//***********************
//寫指令子函式
void write_com(uchar com)
{
lcdrs=0;
P0=com;
delay(50);
lcden=1;
delay(50);
lcden=0;
}
//***********************
//寫數鋸子函式
void write_data(uchar date)
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
//***********************
//顯示屏初始子函式
void init()
{
delay(500);
ledd=0;
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80+0);
}
//***********************
//***********************
//主函式
void main()
{
init(); //調用顯示屏初始子函式
while(1)
{
write_com(0x80+0); //調用寫指令子函式
for(num=0;num<16;num++)
{
write_data(table1[num]); //調用寫數鋸子函式
delay(1); //調用延時子函式
}
// write_com(1); //刷屏
write_com(0x80+0x40);
for(num=0;num<16;num++)
{
write_data(table2[num]);
delay(1);
}
write_com(0x80+0x10);
for(num=0;num<16;num++)
{
write_data(table3[num]);
delay(1);
}
write_com(0x80+0x50);
for(num=0;num<16;num++)
{
write_data(table4[num]);
delay(1);
}
}
}