C52控制GPS程序(3)
时间:2026-01-20
时间:2026-01-20
西经)
break;
case 6: GPS_quality = tmp;
break;
case 7: if(Bytes_counter<2) //$GPGGA第7段处理 正在使用解算位置的卫星数量(00~12)(前面的0也将被传输)
GPS_sv[Bytes_counter] = tmp;
GPS_sv[2] = '\0';
break;
case 9: if(Bytes_counter<7) //$GPGGA第9段处理 海拔高度(-9999.9~99999.9)
{
GPS_alt[Bytes_counter] = tmp;
GPS_alt[Bytes_counter+1] = '\0';
}
break;
default:break;
}
}
void GPRMC(uchar tmp)
{
switch(Segment)
{
case 9: if(Bytes_counter<2) //$GPRMC第9段处理 UTC日期,ddmmyy(日月年)格式转换为yy-mm-dd
{
GPS_date[6+Bytes_counter] = tmp;
}
if(Bytes_counter>1 && Bytes_counter<4)//月
{
GPS_date[1+Bytes_counter] = tmp;
GPS_date[5] = '-';
}
if(Bytes_counter>3 && Bytes_counter<6)//年
{
GPS_date[Bytes_counter-4] = tmp;
GPS_date[2] = '-';
GPS_date[8] = '\0';
}
break;
default:break;
}
}
void GPGSA(uchar tmp)
{
switch(Segment)
{
case 2: GPS_status = tmp; //$GPGSA第2段处理 定位类型,1=没有定位,2=2D定位,3=3D定位
break;
default:break;
}
}
void GPVTG(uchar tmp)
{
switch(Segment)
{
case 7:if(Bytes_counter < 7)//地面速率(0000.0~1851.8公里/小时,前面的0也将被传输)
{
GPS_speed[Bytes_counter] = tmp;
GPS_speed[Bytes_counter+1] = '$';//这里4个字符是Km/h
GPS_speed[Bytes_counter+2] = '"';
GPS_speed[Bytes_counter+3] = '/';
GPS_speed[Bytes_counter+4] = '#';
GPS_speed[Bytes_counter+5] = '\0';
}
break;
default:break;
}
}
void main()
{
L1602_init();
L1602_string(1,1,"GPS initializing");
L1602_string(2,1,"Please wait");
delay_10ms(100);
while(num)
{
L1602_string(2,12,".");
delay_10ms(100);
L1602_string(2,13,".");
delay_10ms(100);
L1602_string(2,14,".");
delay_10ms(100);
L1602_string(2,12
," ");
L1602_string(2,13," ");
L1602_string(2,14," ");
delay_10ms(100);
num--;
}
L1602_string(1,1,"
下一篇:16管道热处理硬度检测报告