基于单片机的经纬度定位显示装置设计

(整期优先)网络出版时间:2020-10-22
/ 2

基于单片机的经纬度定位显示装置设计

李大一 杜龙龙 肖黄煜

宿州学院 机械与电子工程学院 安徽宿州

摘要:全球定位系统(GPS)是以接收导航卫星信号为基础的非自主式导航与定位系统,有全球覆盖、全天候、连续实时提供高精度的位置、速度和时间信息的能力,具有很好的导航和定位功能。GPS技术在通讯导航、遥感等众多学科领域得到极其广泛应用。现在,GPS的外型设计已经转向便携式发展,踏入了寻常百姓的生活中[1]

论文主要研究GPS接收机和单片机串行数据通信的基本原理和实现GPS定位信息的接收和定位信息在显示器上实时显示所在地的经纬度。该定位系统完成后,定位精度能达到15m,所以该装置在测控领域的应用开发中具有一定的实用价值和借鉴价值。


关键词:GPS;接收机;单片机;串行通信


卫星定位作用及原理

由于卫星定位系统在军事上的战略意义,各国都在建立卫星定位系统。如美国GPS卫星定位系统、俄罗斯GlONSS卫星定位系统、欧洲伽利略NAVSAT卫星系统和中国“北斗一号”系统。人们在日常生产生活中已离不开卫星定位系统。

GPS(Global Positioning System,全球定位系统),是一个由24颗卫星组成的卫星系统。可以保证在任意时刻,任何地点都同时检测到4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,从而实现导航、定位、授时等功能[3]

系统设计

1.系统结构

系统硬件部分电路大致上可以分成电源、单片机系统及外围电路和LCD显示屏电路三部分。

电路为单片机控制的GPS器件,实现定位系统数据的采集和现实。其中所使用的器件主要有3个,单片机89C52、GPS模块NEO-6M以及LCD显示模块。在单片机控制下,按照需求显示接受到的数据。以单片机为核心将GPS数据发送模块,LCD显示模块系统的结合形成一个整体,实现功能。

2.数据采集方案

为了减少接收出错,采集数据时使用串行口中断数据接收方式。

方案①:直接接收,接收到的数据,先把串行口发送的数据接收到数据缓冲区后,再对数据进行处理。GPS模块为一种智能模块,它每秒钟会发出几种数据,包括:$GPGGA、$GPRMC、等数据格式。每个数据为15~36个字节数据。

方案②:选择接收,先判断接收到的数据的格式,然后选择需要的格式中的一些数据进行存储。这样节约了RAM,解决RAM不够用的问题。例如:接收$GPGGA格式数据的时间:前五次数据接收的时候先判断数句格式(依次判断接收到的数据是否先后为‘$’、 ‘G’、 ‘P’、 ‘G’、 ‘G’、 ‘A’),如果是,然后判断接下来的逗号(‘,’)是第几个逗号。若是第一个,接下来的数据是时间,如果是第二个,接下来的数据是纬度,依此类推。

方案比较:前者数据接收的方案虽然接收的方法简单,接收程序简单,但需要很大的RAM空间,需要外加存储器,程序编写需要改写数据存储处理程序。这样就增加了开发的诸多问题,包括成本,开发时间,试调难度等。后者方案比起前者节约了RAM,而且数据接收前只需先简单判断接收到的数据格式即可;减少了中断处理的时间,减少了开发的成本和开发时间和电路的复杂程度。所以本设计采用第二种方案[3][4]

3.数据接收和处理

本设计显示需要显示相应的数据信息,采用LCD12864做显示器,电路中的可变电阻作用为调节VEE输入引脚的电压,实现对LCD对比度的调节。

GPS数据模块不需要自己设计,采用成品电路模块做数据传送。我们只需设计GPS数据通行部分即可在单片机串口收到信息后,先判别是否为语句引导头“$”,然后再接收信息内容,在收到“*”字符ASCⅡ码后再接收二个字节结束接收,然后根据语句标识区分出信息类别以对收到ASCⅡ码进行处理显示。

4.控制模块

本设计采用AT89C52单片机为核心控制芯片,控制任务包括两个部分:数据接受控制和显示。①:数据接收控制:单片机内集成了串行口通信电路,本设计应用这个电路接收外部数据,其数据格式为8位数据+1位停止位。把接收到的数据存储到缓冲区。②:显示控制:利用单片机的I/O端口控制LCD显示器显示信息;显示之前先从缓冲区取出数据,经过CPU处理过,送到LCD显示需要信息。

6.主程序设计

系统的主程序开始后,先是对系统初始化,包括设置串口、定时器、中断,LCD初始化;然后LCD显示屏进入开机状态,显示开机信息,转入正常的显示,并接收数据,每次显示两串字符。由于单片机无停机指令,可以设置系统程序不断地循环执行数据信息显示。

系统程序结构属中断方式,大多数功能在中断服务子程序中完成。根据结构,可将程序划分为几个功能化模块:串行口中断服务程序、显示子程序、扫描程序。各个模块可进行独立设计、调试和查错,最终再连接成一个整体。系统程序流程图如图1

5f911b8480ed6_html_8129c8b11e7d7c69.jpg

图1 主程序流程图


先是系统初始化,然后显示开机信息,最后根据系统接收到的信息综合处理,得到数据显示到显示屏上。检测LCD是否在处理其它数据而处于忙状态时,则读取忙状态信号位,当RS=0,RW=1,E=1时,LCD输出八位数据,最高位DB7为忙状态位(LCD_busy_flag),若为1,表示LCD处于忙状态,为0表示LCD空闲。

在串口通信中需要设置串口通信的数据传输速度,及波特率,设置定时器的溢出率即可,晶振为11.0592MHz,当TL1 =0xfa;,TH1 =0xfa时为4800kbps波特率[6]。计算公式为:

5f911b8480ed6_html_9742576842165b2f.gif

5f911b8480ed6_html_f67ad12122fc9b35.gif

TMOD特殊功能寄存器为定时器计数器工作方式寄存器,前四位控制定时器1,后四位控制定时器0;本设计采用定时器1,工作方式2(8位自动重装载,N=8)。

SCON为串行口数据通信控制特殊寄存器,高三位为工作方式控制位,本设计采用工作方式1,8位数据异步通信。D4位为接收允许控制位,本设计要采用串行口中断接收GPGGA数据。

IE为中断允许控制特殊寄存器,本设计要打开串行口中断和总中断。

8.数据接收程序

RI=0;软件清除中断标志位,串行口中断需要软件清零,去除中断标志。

进入中断后先判断接收数据格式,否则会出现接收数据错误的问题,先判断是否接收到GPGGA格式语句的第一个字符“$”,其ASCII码为0x24,收到后,继续判断格式是不是为GPGGA,分五次中断判断,如果是,开始记录数据并设置记录标志(read_start),否则退出数据接收中断[7]

结束语

手持设备需要功耗低、易操作、界面简洁。系统包括电源模块、主控模块、显示模块、GPS定位模块。GPS模块负责接收卫星信息,单片机模块负责读取GPS模块数据并处理,显示模块负责将GPS模块接收到的数据显示出来供用户随时观看,本设计可满足绝大用户的需求,并且它具有很强的延展性,可自行添加以后发展所需要的扩展模块,是一个很具有使用价值的系统。


参考文献

[1]董四海.GPS全球定位系统的发展趋势及市场前景[J].微型机与应用.1997(11).

[2]刘晓.等基于单片机采集GPS数据系统的设计青岛科技大学学报[J].2006(2).

[3]刘美生.全球定位系统及其应用综述(三)GPS的应用[J].中国测试技术.2007年1期.

[4]求是科技. 单片机典型模块设计实例导航[M].北京人民邮电出版社. 2004.

[5]王惠南.GPS 导航原理与应用[ M] . 北京科学出版社. 2003.

[6]黄凌.基于单片机的GPS 信息处理系统[J]. 现代电子技术.2007.

[7]刘一杰、施一民、过静君. 全球定位系统(GPS)的原理与数据处理[M].同济大学出版社.1996.

4