GPS全球定位Word格式.docx

上传人:b****5 文档编号:18059386 上传时间:2022-12-13 格式:DOCX 页数:26 大小:1.11MB
下载 相关 举报
GPS全球定位Word格式.docx_第1页
第1页 / 共26页
GPS全球定位Word格式.docx_第2页
第2页 / 共26页
GPS全球定位Word格式.docx_第3页
第3页 / 共26页
GPS全球定位Word格式.docx_第4页
第4页 / 共26页
GPS全球定位Word格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

GPS全球定位Word格式.docx

《GPS全球定位Word格式.docx》由会员分享,可在线阅读,更多相关《GPS全球定位Word格式.docx(26页珍藏版)》请在冰豆网上搜索。

GPS全球定位Word格式.docx

1.4.2GPS消息格式

GPS以NMEA协议格式发送消息,要正确解析出信息首先要了解NMEA协议的格式。

基本NMEA指令是一个ASCII字符串,它以’$’字符开始、以<CR><LF>序列结束。

NMEA标准消息以’GP’开始,然后是三个字符的消息标识码。

消息头和后面的内容通过逗号进行分隔,消息以校检码结束(校检码由一个‘*’和两个16位的校验字组成。

校验码字段并不用逗号进行分隔。

目前,校验码得

到的方式是从‘$’到‘*’之间的字符进行逐位计算。

作为ASCII表示法,每个字段的长度是随着精度的不同而变化的,因此记录的长短是变化的。

这里以$GPRMC为例分校NMEA协议的格式

字段

格式

描述

消息标识

$GPRMC

RMC协议头

时间

Hhmmss.sss

时间精确到1ms

状态

Char

A:

有效V:

无效

纬度

Float

度*100+分

N/S

N:

北纬

S:

南纬

经度

E/W

E:

东经

W:

西经

速度

单位:

knots(节)

地面航向

0~359度,以北为参考基准

日期

Ddmmyy

日月年格式

磁偏角

0~180度

磁偏角方向

东W:

西

校验码

*xx

2digits

消息结尾

<

CR>

LF>

ASCII,13

ASCII,10

下面以实际的例子分析NMEA消息格式

$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10

从上面的消息可以得到

对于消息$GPRMC

时间第一个逗号后面161229.487表示时间为16点12分29.487秒

有效位第二个逗号后面A表示这条消息是有效的

纬度第三个逗号后面3723.2475和N表示北纬3723.2475

经度第五个逗号的12158.3416和E表示东经12158.3416

2、硬件系统设计

SPCE061A开发板

2.1LCD液晶显示

1.3SPLC501液晶模组

SPLC501液晶显示模组为128*64点阵,面板采用STN(SuperTwistedNematic)超扭曲向列技术制成并且由128Segment和64Common组成,LCM非常容易通过接口被访问。

下面为SPLC501液晶显示模组的基本参数:

显示模式

黄色模式STN液晶

显示格式

128*64点阵地图液晶显示

输入数据

兼容68/80系列MPU数据输入

背光

黄绿色LED

模块尺寸

72.8(长)×

73.6(宽)×

9.5(高)mm

视屏尺寸

58.84(宽)×

35.79(长)mm

点大小

0.42(宽)×

0.51(长)mm

像素尺寸

0.46(宽)×

0.56(长)mm

模组上的液晶显示器采用的驱动控制芯片为凌阳科技的SPLC501A芯片,该芯片为液晶显示控制驱动器,集行、列驱动器和控制器于一体,广泛用于小规模液晶显示模块。

SPLC501A单芯片液晶驱动,可以直接与其他微控制器接口总线相连。

微控制器可以将显示数据通过8位数据总线或者串行接口写到SPLC501A的显存中。

下列是SPLC501A的特点:

◇内置8580位显示RAM。

RAM中的一位数据控制液晶屏上的一个象素点的亮、暗状态。

“1”亮“0”暗。

◇具有65行驱动输出和132列驱动输出(注:

模组中的液晶显示面板仅为64行、128列)

◇可以直接与80系列和68系列微处理器相连。

◇内置晶振电路,也可以外接晶振

◇工作温度范围为-40摄氏度~+85摄氏度

 

为方便学生进行单片机接口方面的学习专门设计的模块,SPLC501液晶显示模组可以方便的和61板连接,可进行字符显示、汉字显示以及图形显示;

应用在需要图形、文本显示的系统中。

SPLC501液晶模组的电路图如图2.7所示

图SPLC501液晶模组

SPLC501液晶显示模组引出了时序操作的接口引脚,还引出了对操作时序进行选择的C86和PS接线。

模组中的接口引脚“+”、“V3”分别为电源输入端和高电平引针(供时序选择跳线用),而“—”、“GND”都是接地引脚。

模组接口定义表

接口引脚名

说明

CS1

片选,低电平有效

RES

复位脚

A0

数据命令选择脚

R/W

对于6800系列MPU的读/写信号(R/W)

对于8080系列MPU的写信号(W/R)

EP

对于6800系列MPU的时钟信号使能脚(EP)

对于8080系列MPU的读信号(RD)

DB0

8位数据总线

DB1

DB2

DB3

DB4

DB5

DB6

DB7

VR

端口输出电压

C86

C86=‘H’选择6800MPU系列

C86=‘L’选择8080MPU系列

PS

串、并行时序选择

SPLC501液晶模组的实物图如图2.4所示:

2.2GPS模组

GPS模组是一款高性能的GPS(GlobalPositioningSystem)信号接收模组,该模组采用APM7101主芯片,定位精度在10米以内。

它集成了SiRFstarⅢGPS处理器,LNA电路,SAW滤波器,振荡和校准电路,该模组具有以下特性:

20个通道接收

弱信号下快速TTFFs(TimetoFirstFix)

两个UART收发通道

接收灵敏度可达-159dBm

支持NMEA-0183和SiRF协议

支持SBAS(WAAS、EGONS)

GPS模组电路如图:

图GPS模组电路图

GPS模组带有一个10针的接口,该接口可以在使用时直接与单片机MCU连接,或者通过RS232转换模块和PC机相连接使用。

通过串口发送或接受数据。

在连接好以后,需要将GPS的短天线接到GPS模组,如果室内信号不好,需要外加长天线。

下表是GPSModule接口定义表:

PinNo

功能

1

电源,3V~6.5V

2

复位信号RST

3

备选复位信号

4

5

6

7

8

串行数据接收口Rx

9

串行数据输出口Tx

10

GPS模组实物图(左侧为天线):

2.3GPS全球定位系统硬件连接图

3、系统软件设计

3.1软件构成

本系统软件包括下面程序模块:

主程序:

首先完成硬件模块的初始化,进行键盘扫描,处理键盘信息,再根椐键值跳转到各功能子模块;

键盘扫描模块:

完成对61板三个按键的扫描并加入去抖功能;

UART接收模块:

完成对UART接口的初始化,利用中断接收数据;

Queue队列模块:

配合UART中断使用,完成对接收信息的保存与提取;

SPLC501驱动模块:

驱动SPLC501LCD;

GPS消息解析模块:

完成GPS消息的解析;

GPS各功能子模块:

实现地图显示、经纬度显示、日历功能。

语音播报子模块:

实现经纬度、时间语音播报

3.2主程序

主程序流程如图。

程序运行后首先初始化各个硬件模块,然后程序进入主循环,不断进行按键扫描,根据按键进入相应的功能模块。

图3.2主程序流程图

//工程名称:

GPS_061A

//功能描述:

通过GPS模块接收到的信息,显示时间,经纬度及在地图上定位当前位置.

//涉及的库:

CMacro1016.lib

//clib.lib

//组成文件:

main.c

//china.cchina.hDataOSfortLCD.asmSPLC501Driver_IO.asm

//gps.cgps.hpicture.cpicture.hKey.cKey.h

//Queue.cuart.c

//

//硬件连接:

GPS61板

//电源------------电源

//地------------地

//TX------------IOB7

//RX------------IOB10

//R4------------IOB8

//

//SPLC50161板

//LCDD0~D7---接IOA8~IOA15

//LCDEP----接IOB6

//LCDRWP----接IOB5

//LCDA0----接IOB4

//LCD/CS1----接IOB9或接地也可

//IO高电平:

3.3V

//维护记录:

2007-08-9v1.0

//========================================================

//文件名称:

main.c

GPS定位

2007-08-9v1.0

#include"

spce061a.h"

UART.h"

gps.h"

china.h"

Key.h"

./c501/SPLC501User.h"

picture.h"

#defineSIZE16

//语法格式:

intCPU_Init(void)

//实现功能:

初始化CPU时钟49MHz

//参数:

//返回值:

0

//========================================================

intInit_CPU()

{

*P_SystemClock=C_Fosc_49M|C_Fosc;

//设置系统时钟与CPU时钟全为49MHz

*P_INT_Ctrl_New=*P_INT_Ctrl_New|C_IRQ5_2Hz|C_IRQ5_4Hz;

//打开2Hz中断用于滚动显示信息.

return0;

}

voidOpen_IRQ_2Hz()

打开2Hz中断

voidOpen_IRQ_2Hz()

{

*P_INT_Ctrl_New|=C_IRQ5_2Hz;

//打开2Hz中断用于滚动显示信息.

voidClose_IRQ_2Hz()

关闭2Hz中断

voidClose_IRQ_2Hz()

*P_INT_Ctrl_New&

=~C_IRQ5_2Hz;

intmain(void)

intmain()

intKey;

unsignedinti;

Init_CPU();

Init_Key();

Init_UART();

Init_GPS();

//LCD501_Init(5);

//LCD501_ClrScreen(0);

//LCD501_SetPaintMode(PAINT_COVER);

for(i=0xf;

i>

0;

i--)//凌阳科技DEMO,仅供演示

{

*P_Watchdog_Clear=1;

LCD501_Bitmap(1*SIZE,1*SIZE,encoding_23);

//演LCD501_Bitmap(2*SIZE,1*SIZE,encoding_24);

//示LCD501_Bitmap(3*SIZE,1*SIZE,encoding_25);

//程LCD501_Bitmap(4*SIZE,1*SIZE,encoding_26);

//序LCD501_Bitmap(5*SIZE,1*SIZE,encoding_27);

//严

LCD501_Bitmap(6*SIZE,1*SIZE,encoding_28);

//禁

LCD501_Bitmap(1*SIZE,2*SIZE,encoding_29);

//用

LCD501_Bitmap(2*SIZE,2*SIZE,encoding_2a);

//于

LCD501_Bitmap(3*SIZE,2*SIZE,encoding_2b);

//毕

LCD501_Bitmap(4*SIZE,2*SIZE,encoding_2c);

//业

LCD501_Bitmap(5*SIZE,2*SIZE,encoding_2d);

//设

LCD501_Bitmap(6*SIZE,2*SIZE,encoding_2e);

//计

}

LCD501_ClrScreen(0);

*P_Watchdog_Clear=1;

LCD501_Bitmap(2*SIZE,1*SIZE,encoding_10);

//凌LCD501_Bitmap(3*SIZE,1*SIZE,encoding_11);

//阳LCD501_Bitmap(4*SIZE,1*SIZE,encoding_12);

//科LCD501_Bitmap(5*SIZE,1*SIZE,encoding_13);

//技

LCD501_Bitmap(0.5*SIZE,2*SIZE,encoding_14);

//G

LCD501_Bitmap(1.5*SIZE,2*SIZE,encoding_15);

//P

LCD501_Bitmap(2.5*SIZE,2*SIZE,encoding_16);

//S

LCD501_Bitmap(3.5*SIZE,2*SIZE,encoding_17);

//定

LCD501_Bitmap(4.5*SIZE,2*SIZE,encoding_18);

//位

LCD501_Bitmap(5.5*SIZE,2*SIZE,encoding_19);

//系

LCD501_Bitmap(6.5*SIZE,2*SIZE,encoding_1a);

//统

while

(1)

Key=Key_GetValue();

switch(Key)

{

caseC_KEY2:

Close_IRQ_2Hz();

//关闭2Hz中断,在显示地图时并不显示流动信息.

Show_Map();

Open_IRQ_2Hz();

*P_Watchdog_Clear=1;

LCD501_Bitmap(2*SIZE,1*SIZE,encoding_10);

//凌

LCD501_Bitmap(3*SIZE,1*SIZE,encoding_11);

//阳LCD501_Bitmap(4*SIZE,1*SIZE,encoding_12);

//科LCD501_Bitmap(5*SIZE,1*SIZE,encoding_13);

//技

LCD501_Bitmap(0.5*SIZE,2*SIZE,encoding_14);

//G

LCD501_Bitmap(1.5*SIZE,2*SIZE,encoding_15);

//P

LCD501_Bitmap(2.5*SIZE,2*SIZE,encoding_16);

//S

LCD501_Bitmap(3.5*SIZE,2*SIZE,encoding_17);

//定

LCD501_Bitmap(4.5*SIZE,2*SIZE,encoding_18);

//位

LCD501_Bitmap(5.5*SIZE,2*SIZE,encoding_19);

//系

LCD501_Bitmap(6.5*SIZE,2*SIZE,encoding_1a);

//统

break;

caseC_KEY1:

Show_Num();

LCD501_Bitmap(2*SIZE,1*SIZE,encoding_10);

//凌LCD501_Bitmap(3*SIZE,1*SIZE,encoding_11);

//阳

LCD501_Bitmap(4*SIZE,1*SIZE,encoding_12);

//科LCD501_Bitmap(5*SIZE,1*SIZE,encoding_13);

LCD501_Bitmap(0.5*SIZE,2*SIZE,encoding_14);

LCD501_Bitmap(1.5*SIZE,2*SIZE,encoding_15);

//PLCD501_Bitmap(2.5*SIZE,2*SIZE,encoding_16);

LCD501_Bitmap(3.5*SIZE,2*SIZE,encoding_17);

LCD501_Bitmap(4.5*SIZE,2*SIZE,encoding_18);

LCD501_Bitmap(5.5*SIZE,2*SIZE,encoding_19);

LCD501_Bitmap(6.5*SIZE,2*SIZE,encoding_1a);

//统

caseC_KEY3:

Show_Time();

//凌LCD501_Bitmap(3*SIZE,1*SIZE,encoding_11);

//阳LCD501_Bitmap(4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1