基本信息
源码名称:公交车GPS报站系统设计
源码大小:0.17M
文件格式:.zip
开发语言:C/C++
更新时间:2020-08-09
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

随着科技的发展和人们日益增长的消费需求,GPS定位系统在生活中的地位越来越重要。GPS定位系统凭借实时性好、精度高、自动化程度高、定位效率高等突出优点,已经在许多领域得到广泛应用,国内北斗定位系统更是发展迅速,在车辆监控与定位系统中应用较多,在儿童、车辆防丢等方面的应用也越来越广。许多定位模块采用北斗和GPS双模,与GPS或北斗单模定位的区别是提取定位信息的关键字不同,其应用方法一致,为了项目描述方便,本项目以介绍GPS模块为主;项目中对GPS模块和MP3语音播报模块的原理及单片机工作流程进行了详细解析,适合各种基础的读者学习。该项目难度一般,应用场合较多,非常值得学习。


typedef struct SaveData 
{
char GPS_Buffer[GPS_Buffer_Length];
char isGetData; //是否获取到GPS数据
char isParseData; //是否解析完成
char UTCTime[UTCTime_Length]; //UTC时间
char latitude[latitude_Length]; //纬度
char N_S[N_S_Length]; //N/S
char longitude[longitude_Length]; //经度
char E_W[E_W_Length]; //E/W
char local_data[local_data_length];
char isUsefull; //定位信息是否有效
} xdata _SaveData;
//中断接收GPS模块的数据,并进行解析,放入结构体对应变量中
void RECEIVE_DATA(void) interrupt 4 using 3  

unsigned char temp = 0;
char i = 0;
ES=0;
RI=0;
temp = SBUF;
if(temp == '$')
{
RX_Count = 0;
}
if(RX_Count <= 5)
{
gpsRxBuffer[RX_Count ] = temp;
}
else if(gpsRxBuffer[0] == '$' && gpsRxBuffer[4] == 'M' && gpsRxBuffer[5] == 'C')
//确定是否收到"GPRMC/GNRMC"这一帧数据
{
gpsRxBuffer[RX_Count ] = temp;
if(temp == '\n')    
{
memset(Save_Data.GPS_Buffer, 0, GPS_Buffer_Length);      //清空
memcpy(Save_Data.GPS_Buffer, gpsRxBuffer, RX_Count);  
//保存数据
Save_Data.isGetData = true;
RX_Count = 0;
memset(gpsRxBuffer, 0, gpsRxBufferLength);    //清空
}
if(RX_Count >= 75)
{
RX_Count = 75;
gpsRxBuffer[RX_Count] = '\0';//添加结束符
}
}
ES=1;
}