DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 676|回复: 0
打印 上一主题 下一主题

[GPS] 基于单片机的GPS信息显示器设计与实现

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-30 06:31:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于单片机的GPs信息显示器设计与实现
张军涛,
(广东松山职业技术学院,
张智军
广东韶关512126)
[摘要]该信息显示器以A 9S52单片机为核心控制器件,通过串行通信,提取HOLUX GR一87 GPS模
块接收的时间和定位信息,并实现了LCD显示。文章同时给出了系统的硬件原理图和部分程序框图及源代
码。
[关键词]GPS;单片机;液晶显示器
[中图分类号]TN967.1 [文献标识码]B

、引言
全球定位系统(GlobM Positioning System)是美国
从20世纪70年代开始研制,于1994年全面建成,以接
收导航卫星信号为基础的非自主式导航与定位系
统。该系统能够在海、陆、空范围内,全天候的、连续
实时的免费提供高精度的三维位置、三维速度和时
间信息,为人类的导航和定位提供了可靠的保障。
目前,GPS全球定位技术已日趋成熟,在经济、军事
和社会生活中的很多领域得到了广泛应用,正发挥
着日益重要的作用。
二、HOLUX GR-87 GPS接收模块简介
(一)GPS接收模块的主要性能指标
GPS接收模块主要性能指标:最多可同时接收2O
个卫星;接收码:L1,C/A码;更新速率:IHZ;直流电
源电压为3.3V一5.5V;位置精确度为lOm(无差分修正
输入);热开机:1秒;暖开机:38秒;冷开机:42秒。
(二)HOLUX GR一87 GPS模块接口说明
GPS接收模块及其引脚说明如图1。
GPS接收机在某一时刻接收到4颗以上的GPS卫
星信号导航电文,通过变频、放大、滤波等一系列处
理过程,实现对GPS卫星信号的跟踪、锁定、测量,从
图1 GPS接收模块及其引脚
而产生计算位置的数据信息(包括:纬度、经度、高
度、速度、日期、时间、航向、卫星状况等),经由I/O口
输出串行数据。
(三)GPS接收模块的输出数据格式
HOLUX GR一87 GPS接收模块的通信波特率默
认值为4800bps,1个起始位,8个数据位,1个停止
位,无奇偶校验位。通常使用NMEA一0183格式输
出,数据代码为ASCII码字符。本模块所使用的GPS
数据主要由帧头、帧尾和帧内数据组成,根据数据帧
的不同,帧头也 .湘同,主要有”SGPGGA”、”$GPGSA”、
”$GPGSV”以及”$GPRMC”等。这些帧头标识了后续
帧内数据的组成结构,各帧均以回车符和换行符作
为帧尾标识一帧的结束。每一帧数据都有各自不同
的含义,使用时必然了解清楚,本设计用到$GPGGA
★[收稿日期]2011-12—20
[作者筒介]张军涛(1977-),男,山东平度人,讲师,工程硕士,研究方向:工业自动化。
巨溜国囱 张军涛★张智军——基于单片机的GPs信息显示器设计与实现 第1期
和$GPRMC两个定位数据。以”$GPGGA”帧的结构为
例各字段释义如下:例如从GPS接收机输出语
句:$GPGGA,084720,3203.9527,N,11853.4639,E,
2,o6,1,65.7,M,2.4,M,O,000371中得到的部分信
息为:定位时间为UTC(Universal Time Coordinated.



世界协调时间)时间8:47:20,位置为北纬32度
03.952 7分,东经1 1 8度53.463 9分。
三、采集与显示GPS定位信息的系统设计
(一)系统硬件设计
系统设计的电路原理图如图2。
囝圜固囫 张军涛★张智军——基于单片机的GPs信息显示遂 塞 篁 塑
4.单片机电路设计
采用Atmel公司的AT89S52单片机为控制处
理模块,采用11.0592 MHz的晶振;用P2口为与
LCD12864液晶数据输出端相连,P1.0到P1.2为控制
LCD的使能端。RXD为GPS模块的数据输入端;加入
了单片机按钮复位电路及ISP下载口。P1.3和P1.4为
翻页按键用途。P0口及其他未用到的端口为扩展
口,留作以后使用。
(二)系统软件设计
图3为软件的主程序流程图。系统软件主要由
初始化模块、数据接收处理模块组成。初始化模块
完成开机上电后对单片机、液晶显示器和GPs模块
的初始化工作。对单片机设置串口工作模式、设置
波特率和中断工作模式;对液晶显示器设置开机画
面和显示模式;完成对GPS模块串口的成功通信。
数据接收处理模块负责处理从GPS接收到的数
据。在单片机串口收到信息后,先判别是否为语句
引导头”j5-t,再接收信息内容,通过语句corn—rx—buf
[rx_pointer++]=com_rx_byte;把接收到的数据存入
com _ rx
_ buf~组中,然后根据语句标识区分出信息类
别以对收~IJASC II码进行处理显示。
判断$GPGGA头方法:
if((com_】x_buf=:‘G && (com_rx_buf==,I) &&
(com_rx_buf == G,)&& (com_rx_buf == G &&
(com_rx_buf=='A'));
判断j5GPRMc头的方法:
if((com_rx_buf=='G3&& (com玎【buf==,P &&
(com_rx_buf == R && (com_rx_buf == M &&
(com_rx_buf=='C'))。
若整个数据接收正确,便对数据进行处理;若接
收不正确,则重新进行接收。本设计中,接收时主要
提取并存储以下数据内容:当前日期、时间、定位状
态、纬度、经度、使用卫星、海拔。如图4所示。数据
更新率为每秒一次。系统工作时GPS模块不断得到
新的数据,单片机不短刷新RAM内容,处理完数据
送到液晶显示器进行显示。
图4 数据接受程序流程图
圜l蜀囫 张军涛★张智军——基于单片机的GPs信息显示器设计与实现 第1期
1.时间数据处理
在对GPS接收到的卫星信息进行处理时,碰到
较为麻烦的问题是在对接收到的时间信息进行转
换上。直接从卫星接收到的时间是UTC时间,北京
时间应在UTC时间上加上8小时才是准确的北京
时,在超出24小时时应作减24小时处理。程序
如下: ,
void Cal_
gps_time(void){ /*1t~间处理$,
unsigned char hh;
unsigned char i,temp_ _buft[1o1;
if(eal data_len(gps_time)!=o),,如果gps__time数
组接收数据处理
{
hh=(gps_time一"03 10+(gpsjime-'0");
,滕换成aSC 、
hh+=8; 每时间校正成北京时间
if(hh>=24),/女Ⅱ果超过24小时,在进行处理
{
hh-=24;
dayflag=1; ,/进行日期JJIll程序设置
l
temp_buf=hh/10+'0 ;
temp_buf=hh% 1O+"0 ;
temp_buf= :,;
temp_buf=gps_ time;
temp—buf=gps
_
time;
temp_buf= :,.
temp_buf=gps_
time;
temp_buff=gps
_
time;
temp_buf=个:
for(i=0;i
基于单片机的GPS信息显示器设计与实现.pdf (283.19 KB, 下载次数: 0)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-4 12:35 , 耗时 0.089436 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表