欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STC12單片機GPRS通信 GPS新修改,增加判斷gps是否定位功能
[打印本頁]
作者:
woshihaha
時間:
2017-7-24 20:59
標題:
STC12單片機GPRS通信 GPS新修改,增加判斷gps是否定位功能
有需要的朋友可以加我
0.png
(53.36 KB, 下載次數: 55)
下載附件
2017-7-25 00:26 上傳
單片機源程序如下:
#include"stc.h"
#include"GPS.h"
#define uchar unsigned char
#define uint unsigned int
//GPS數據存儲數組
uchar JD[10]; //經度
uchar JD_a; //經度方向
uchar WD[9]; //緯度
uchar WD_a; //緯度方向
uchar time[6]; //時間
uchar speed[5]; //速度
uchar high[6]; //高度
uchar angle[5]; //方位角
uchar use_sat[2]; //使用的衛星數
uchar total_sat[2]; //天空中總衛星數
uchar lock; //定位狀態
uchar date[6]; //日期
//串口中斷需要的變量
uchar seg_count; //逗號計數器
uchar dot_count; //小數點計數器
uchar byte_count; //位數計數器
uchar cmd_number; //命令類型
uchar mode; //0:結束模式,1:命令模式,2:數據模式
uchar buf_full; //1:整句接收完成,相應數據有效。0:緩存數據無效。
uchar cmd[5]; //命令類型存儲數組
void uart2_init()
{
S2CON=0x50;//串行口2工作方式1,允許接收
BRT=0xfd; //11.0592下波特率為4800
IE2=0x01; //開啟串口2通訊中斷
AUXR|=0x11;
}
void uart() interrupt 8
{
uchar k;
uchar temp;
k=S2CON&0x01; //讀取串口2的S2RI位狀態
if(k==1)
{
temp=S2BUF;
switch(temp)
{
case ' $ ' :
cmd_number=0; //類型命令清空
mode=1; //接收命令模式
byte_count=0; //接收位數清空
break;
case ',':
seg_count++; //逗號累計加1
byte_count=0; //出現逗號則進去另一字段
break;
case '*':
switch(cmd_number)
{
case 1:buf_full|=0x01;break; //有效接收GPGGA數據
case 2:buf_full|=0x02;break; //有效接收GPGSV數據
case 3:buf_full|=0x04;break; //有效接收GPRMC數據
}
mode=0;
break;
default:
if(mode==1) //接收命令
{
cmd[byte_count]=temp; //接收命令字符保存于cmd
if(byte_count>=4)
{
if(cmd[0]=='G')
{
if(cmd[1]=='P')
{
if(cmd[2]=='G')
{
if(cmd[3]=='G')
{
if(cmd[4]=='A')
{
cmd_number=1; //接收到GPGGA類型
mode=2;
seg_count=0;
byte_count=0;
}
}
else
if(cmd[3]=='S')
{
if(cmd[4]=='V')
{
cmd_number=2; //接收到GPGSV類型
mode=2;
seg_count=0;
byte_count=0;
}
}
}
else
if(cmd[2]=='R')
{
if(cmd[3]=='M')
{
if(cmd[4]=='C')
{
cmd_number=3; //接收到GPRMC類型
mode=2;
seg_count=0;
byte_count=0;
}
}
}
}
}
}
}
else
if(mode==2) //數據命令
{
switch(cmd_number)
{
case 1: //GPGGA類型
switch(seg_count)
{
case 2: //接收字段2緯度信息
if(byte_count<9)
{
WD[byte_count]=temp;
}
break;
case 3: //接收字段3緯度方向
if(byte_count<1)
{
WD_a=temp;
}
break;
case 4: //接收字段4經度信息
if(byte_count<10)
{
JD[byte_count]=temp;
}
break;
case 5: //接收字段5經度方向
if(byte_count<1)
{
JD_a=temp;
}
break;
case 6: //GPS狀態 0=未定位 1\2=已定位
if(byte_count<1)
{
lock=temp;
}
break;
case 7: //接收字段7定位使用的衛星數信息
if(byte_count<2)
{
use_sat[byte_count]=temp;
}
break;
case 9: //接收字段9海拔高度信息
if(byte_count<6)
{
high[byte_count]=temp;
}
break;
}
break;
case 2: //GPGSV類型
switch(seg_count)
{
case 3: //接收字段3天空中的衛星總數信息
if(byte_count<2)
{
total_sat[byte_count]=temp;
}
break;
}
break;
case 3: //GPRMC類型
switch(seg_count)
{
case 1: //接收字段1時間信息
if(byte_count<6)
{
time[byte_count]=temp;
}
break;
case 7: //接收字段7速度信息 單位節 Knots
if(byte_count<5)
{
speed[byte_count]=temp;
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
STC12 GPRS GPS新修改,增加判斷gps是否定位功能.rar
(57.66 KB, 下載次數: 48)
2017-7-24 21:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1