#include
#define uchar unsigned char
#define uint unsigned int
sbit duan=P2^6;
sbit wei=P2^7;
sbit A=P1^0;
sbit lcd_en=P2^7;
sbit lcd_rs=P2^6;
sbit lcd_rw=P2^5;
sbit lcd_psb=P3^2;
uchar a,b,c,d,i,flag,temp;
uchar table0[64];
void delay(uint z);
void write_com(uchar com);
void write_date(uchar date);
void init();
void main()
{
init();
write_com(0x90);
for(a=0;a<17;a++)//局部定义数组并写入液晶(局部定义极大的节省RAM)
{
uchar table[]="51黑单片机";
write_date(table[a]);
}
delay(5000);
write_com(0x01);//清屏
write_com(0x90);//局部定义数组并写入液晶
for(a=0;a<16;a++)
{
uchar table1[]="GPS 信号接收中";
write_date(table1[a]);
}
write_com(0x8b);//局部定义数组并写入液晶
for(a=0;a<10;a++)
{
uchar table2[]={"请稍后…………"};
write_date(table2[a]);
}
delay(6000);
ES=1;
while(1)
{
if(flag==1)
{
if(table0[4]=='M')//确定是否收到"GPGGA"这一帧数据
{
d++;
if((d>=0)&&(d<=15))//前15秒显示经纬度
{
//以下给液晶写经纬度内容
uchar table3[]="纬度:";
uchar table4[]="经度:";
if(d==1)
write_com(0x01);//显示