資源簡介
基于51的GPS數(shù)據(jù)分離,1602顯示,使用串口通信,將GPS傳回數(shù)據(jù)中的時間,日期,經(jīng)緯度分離出來, 在1602液晶上顯示

代碼片段和文件信息
#include
#include?“1602.h“
sbit?GPS_SPD=P2^1;?//GPS模塊速率設置
sbit?KEY1=P2^0;?//顯示內容分屏切換
char?code?TIME_AREA=?8;?//時區(qū)
//GPS數(shù)據(jù)存儲數(shù)組
unsigned?char?JD[10];?//經(jīng)度
unsigned?char?JD_a;?//經(jīng)度方向
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];?//使用的衛(wèi)星數(shù)
unsigned?char?total_sat[2];?//天空中總衛(wèi)星數(shù)
unsigned?char?lock;?//定位狀態(tài)
//串口中斷需要的變量
unsigned?char?seg_count;?//逗號計數(shù)器
unsigned?char?dot_count;?//小數(shù)點計數(shù)器
unsigned?char?byte_count;?//位數(shù)計數(shù)器
unsigned?char?cmd_number;?//命令類型
unsigned?char?mode;?//0:結束模式,1:命令模式,2:數(shù)據(jù)模式
unsigned?char?buf_full;?//1:整句接收完成,相應數(shù)據(jù)有效。0:緩存數(shù)據(jù)無效。
unsigned?char?cmd[5];?//命令類型存儲數(shù)組
//顯示需要的變量
unsigned?int?dsp_count;?//刷新次數(shù)計數(shù)器
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);?//顯示經(jīng)度
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]);?//顯示接收衛(wèi)星數(shù)
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);?//顯示經(jīng)度
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]);?//顯示接收衛(wèi)星數(shù)
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數(shù)據(jù)分離\GPS\1602
?????文件???????8501??2016-01-06?14:45??gps數(shù)據(jù)分離\GPS\1602.c
?????文件???????3686??2016-01-06?13:28??gps數(shù)據(jù)分離\GPS\1602.h
?????文件???????6300??2016-01-06?15:59??gps數(shù)據(jù)分離\GPS\1602.hex
?????文件??????16863??2016-01-06?14:45??gps數(shù)據(jù)分離\GPS\1602.LST
?????文件??????29095??2016-01-06?15:59??gps數(shù)據(jù)分離\GPS\1602.M51
?????文件??????25346??2016-01-06?14:45??gps數(shù)據(jù)分離\GPS\1602.OBJ
?????文件???????1140??2016-01-06?15:59??gps數(shù)據(jù)分離\GPS\1602.Opt
?????文件????????421??2016-01-06?15:59??gps數(shù)據(jù)分離\GPS\1602.plg
?????文件???????1990??2016-01-06?15:04??gps數(shù)據(jù)分離\GPS\1602.Uv2
????.......??????1141??2016-01-06?15:59??gps數(shù)據(jù)分離\GPS\1602_Opt.Bak
????.......?????????0??2016-01-06?13:01??gps數(shù)據(jù)分離\GPS\1602_Uv2.Bak
?????文件????1109623??2016-01-03?14:27??gps數(shù)據(jù)分離\對于GPS模塊數(shù)據(jù)接收和提取的問題分析?-?telezhaohu的日志?-?電子工程世界-論壇.pdf
?????目錄??????????0??2016-01-06?15:59??gps數(shù)據(jù)分離\GPS
?????目錄??????????0??2016-01-06?16:12??gps數(shù)據(jù)分離
-----------?---------??----------?-----??----
??????????????1224837????????????????????15
評論
共有 條評論