资源简介
基于51的GPS数据分离,1602显示,使用串口通信,将GPS传回数据中的时间,日期,经纬度分离出来, 在1602液晶上显示
代码片段和文件信息
#include
#include “1602.h“
sbit GPS_SPD=P2^1; //GPS模块速率设置
sbit KEY1=P2^0; //显示内容分屏切换
char code TIME_AREA= 8; //时区
//GPS数据存储数组
unsigned char JD[10]; //经度
unsigned char JD_a; //经度方向
unsigned char WD[9]; //纬度
unsigned char WD_a; //纬度方向
unsigned char date[6]; //日期
unsigned char time[6]; //时间
unsigned char speed[5]={‘0‘‘0‘‘0‘‘0‘‘0‘}; //速度
unsigned char high[6]; //高度
unsigned char angle[5]; //方位角
unsigned char use_sat[2]; //使用的卫星数
unsigned char total_sat[2]; //天空中总卫星数
unsigned char lock; //定位状态
//串口中断需要的变量
unsigned char seg_count; //逗号计数器
unsigned char dot_count; //小数点计数器
unsigned char byte_count; //位数计数器
unsigned char cmd_number; //命令类型
unsigned char mode; //0:结束模式,1:命令模式,2:数据模式
unsigned char buf_full; //1:整句接收完成,相应数据有效。0:缓存数据无效。
unsigned char cmd[5]; //命令类型存储数组
//显示需要的变量
unsigned int dsp_count; //刷新次数计数器
unsigned char time_count;
bit page;
void sys_init(void);
bit chk_key(void);
void ser_init()
{
TMOD=0X20;//设置定时器T1为工作方式2
TR1=1;//启动定时器T1
TH1=0xfd;//T1定时器装初值
TL1=0xfd;
REN=1;//允许串口接收
SM0=0;
SM1=1;//设置串口工作方式1
ES=1;//开串口中断
EA=1;//开总中断
}
main()
{
unsigned char i;
char Bhour;
sys_init();
lock=1;
use_sat[0]=‘0‘;
use_sat[1]=‘0‘;
total_sat[0]=‘0‘;
total_sat[1]=‘0‘;
while(1){
if(buf_full==0) //无GPS信号时
{
dsp_count++;
if(dsp_count>=65000){
LCD_cls(); //清屏
LCD_write_string(00“No GPS connect..“);
LCD_write_string(01“Please Check..“);
while(buf_full==0);
LCD_cls();
dsp_count=0;
}
}
else{ //有GPS信号时
if(chk_key()){ //检测到按键切换显示
page=!page;
LCD_cls();
}
if(!page){ //页面1
if(buf_full|0x01){ //GGA语句
if(lock==0){ //如果未定位
LCD_write_string(00“*---.--.---- “);
LCD_write_string(01“* --.--.---- “);
}else{ //如果已定位
LCD_write_char(00JD_a); //显示经度
for(i=0;i<10;i++){
LCD_write_char(i+10JD[i]);
}
LCD_write_char(01WD_a); //显示纬度
LCD_write_char(11‘ ‘);
for(i=0;i<9;i++){
LCD_write_char(i+21WD[i]);
}
}
LCD_write_char(141use_sat[0]); //显示接收卫星数
LCD_write_char(151use_sat[1]);
buf_full&=~0x01;
dsp_count=0;
}
if(buf_full|0x02){ //GSV语句
LCD_write_char(141total_sat[0]);
LCD_write_char(151total_sat[1]);
buf_full&=~0x02;
dsp_count=0;
}
if(buf_full|0x04){
if(lock==0){ //如果未定位
LCD_write_string(00“*---.--.---- “);
LCD_write_string(01“* --.--.---- “);
}else{ //如果已定位
LCD_write_char(00JD_a); //显示经度
for(i=0;i<10;i++){
LCD_write_char(i+10JD[i]);
}
LCD_write_char(01WD_a); //显示纬度
LCD_write_char(11‘ ‘);
for(i=0;i<9;i++){
LCD_write_char(i+21WD[i]);
}
}
LCD_write_char(140use_sat[0]); //显示接收卫星数
LCD_write_char(150use_sat[1]);
buf_full&=~0x04;
dsp_count=0;
}
}
else{ //页面2
if(buf_full|0x01){ //GGA语句
buf_full&=~0x01;
dsp_count=0;
}
if(buf_full|0x02){
buf_full&=~0x02;
dsp_count=0;
}
if(buf_full|0x04){ //RMC语句
Bhour=((time[0]-0x30)*10+time[1]-0x30)+TIME_AREA;
if(Bhour>=24){
Bhour-=24;
}else if(Bhour<0){
Bhour+=24;
}
LCD_write_char(01date[4]);
LCD_write_char(11date[5]);
LCD_writ
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 20731 2016-01-06 15:59 gps数据分离\GPS\1602
文件 8501 2016-01-06 14:45 gps数据分离\GPS\1602.c
文件 3686 2016-01-06 13:28 gps数据分离\GPS\1602.h
文件 6300 2016-01-06 15:59 gps数据分离\GPS\1602.hex
文件 16863 2016-01-06 14:45 gps数据分离\GPS\1602.LST
文件 29095 2016-01-06 15:59 gps数据分离\GPS\1602.M51
文件 25346 2016-01-06 14:45 gps数据分离\GPS\1602.OBJ
文件 1140 2016-01-06 15:59 gps数据分离\GPS\1602.Opt
文件 421 2016-01-06 15:59 gps数据分离\GPS\1602.plg
文件 1990 2016-01-06 15:04 gps数据分离\GPS\1602.Uv2
....... 1141 2016-01-06 15:59 gps数据分离\GPS\1602_Opt.Bak
....... 0 2016-01-06 13:01 gps数据分离\GPS\1602_Uv2.Bak
文件 1109623 2016-01-03 14:27 gps数据分离\对于GPS模块数据接收和提取的问题分析 - telezhaohu的日志 - 电子工程世界-论坛.pdf
目录 0 2016-01-06 15:59 gps数据分离\GPS
目录 0 2016-01-06 16:12 gps数据分离
----------- --------- ---------- ----- ----
1224837 15
- 上一篇:基于Echarts的物流大数据管理平台.rar
- 下一篇:nc-verilog 学习
相关资源
- STM32+GPS程序
- stm32解析GPS模块数据流
- GPS单点定位程序设计
- gps模块gps模块gps模块
- IF GPS Signal Simulator Development and Verifi
- GPS SiRF_spec
- GPS数据转谷歌地图轨迹的工具NMEA2KM
- GPS芯片手册
- GNSS-Viewer用户手册.rev0.2
- GPS、北斗、GLONASS测试软件
- mtk2503 gps 北斗测试工具
- GPS/INS Integrated Navigation Simulation
- GPSR 梯度投影法
- gps cgpsmapedit
- GB∕T_18314-2009《全球定位系统(GPS)测
- EC20状态机代码TCP传GPS数据 _CAN通讯
- GPS相对定位程序
- gps测量与数据处理
- GPS的PMF-FFT捕获过程
- GPS软件接收机鲁郁
- gps导航原理与应用_王惠南
- 基于onenet平台的gps+gprs定位服务ardui
- GPS相对定位的数学模型
- 论文题目:GPS/5INS组合导航系统研究
- 51单片机GPS例程
- 中海达GPS解算软件HGO数据处理软件包
- china-satellite-navigation-conference-csnc-201
- GPS卫星导航定位原理与方法 第二版
- 美国DAGR AN/PSN-13 GPS接收机说明书
- 华测GPS数据处理
评论
共有 条评论