当前位置:文档之家› 基于单片机GPS定位信息显示系统设计

基于单片机GPS定位信息显示系统设计

目录一、系统整体概述 (2)(一)主要内容 (2)(二)系统方案的总体设计 (2)二、硬件设计 (3)(一)硬件总体结构框图 (3)(二)单片机的介绍 (3)1. STC89C52的简介 (3)2. STC89C52引脚图 (4)(三)GPS(UBLOX NEO 6M)模块介绍 (4)1. UBLOX NEO 6M简介 (4)2. UBLOX NEO 6M性能和管脚定义 (5)(四)LCD(12864)模块介绍 (5)1. LCD(12864)简介 (5)2. LCD(12864)引脚介绍 (6)3. LCD(12864)操作时序 (6)(五)硬件电路PCB板的绘制 (6)1. 原理图的绘制 (6)2. PCB板的绘制 (7)3. 实际硬件电路 (8)三、软件设计 (9)(一)软件设计思路 (9)(二)模块化软件设计 (9)1. GPS接收模块设计 (9)2. 单片机模块设计 (11)3. 显示模块设计 (11)四、系统调试与结果 (13)(一)硬件调试 (13)(二)软件调试 (13)(三)设计结果 (14)五、总结 (16)参考文献 (17)附录 (18)一、系统整体概述(一)主要内容在学习C51系列单片机和GPS定位原理以及GPS相关知识的理论知识基础上,我们需要在种类繁多的单片机和GPS类型中选择合适的单片机和GPS模块,GPS模块的作用是用来接收卫星信号然后提取相应的信息,单片机作为本次设计系统的控制核心,对GPS模块接收到的信息进行处理,然后用液晶显示屏实时显示预设的数据信息。

系统的具体实现主要由软硬件设计结合完成。

硬件设计核心是单片机最小系统的设计,然后在最小系统的基础上设计本次设计所需的外围电路,借助成品GPS模块,完成硬件电路的焊接,该设计硬件电路设计并不复杂,而且体积小便于携带。

软件设计的核心内容是实现GPS模块与单片机的通信进而完成系统设计的要求,因为模块化设计具有功能清晰、调试方便等优点,而且在不同平台上移植方便,所以这次设计的思路是采用模块化设计,整个软件开发环境用Keil 软件,采用C语言编程,硬件则为使用Altium Designer。

(二)系统方案的总体设计本次设计的目标是要在单片机的基础上完成GPS定位信息显示系统设计。

根据设计预设的要求,我们设计是以单片机为控制核心,控制GPS接收模块,最后利用液晶显示设备就可以实现系统设计目标。

市场上单片机种类很多,C51系列单片机,STM系列单片机等等。

通过考虑单片机的普适性、所具备的功能、具体I/0口的性能以及价格是否经济实用等因素,本次设计采用C51系列单片机。

系统整体是由硬件设计和软件设计两部分设计而成,采用C51系列单片机、GPS定位模块、LCD液晶显示模块设计而成。

硬件设计主要由单片机(STC89C52)、GPS模块(UBLOX NEO 6M)、LCD12864液晶显示模块等组成;接收GPS模块传送的数据信息是软件设计的重点,进而获得当前所处位置的经纬度、航向和海拔等信息。

二、硬件设计(一)硬件总体结构框图硬件总体结构框图如图2-1所示。

本次设计系统的硬件电路主要由下面几部分构成:第一,接收模块电路。

GPS模块负责锁定卫星,然后把信息传送给单片机。

第二,控制模块电路。

以STC89C52单片机为控制核心,读取GPS模块传送的数据,然后把读取的数据送到液晶显示屏即实现了单片机的控制作用。

第三,液晶显示电路。

51单片机控制液晶显示电路,在液晶显示屏进而可以显示GPS模块读取的数据信息。

第四,电源部分电路。

整个系统的正常工作需要电源部分为其提供电源。

此外,硬件电路中还会涉及一些使单片机正常工作的外围电路,以保证单片机正常工作。

(二)单片机的介绍1. STC89C52的简介STC89C52是STC公司生产的一种控制器。

MCS-51内核是该单片机的经典内核,而且在STC89C52上做了很多的创新,使其不仅具有传统51单片机所具有的功能,而且引进了很多创新的功能,使STC89C52的应用范围更加广泛。

STC89C52具体的使用标准可以查阅相关书籍和芯片技术手册,更多资料不再说明。

2. STC89C52引脚图图2-2 STC89C52引脚图(三)GPS(UBLOX NEO 6M)模块介绍1. UBLOX NEO 6M简介本次课程设计使用的GPS(UBLOX NEO 6M)模块是一个完整的成品接收模块,具有高性能、低功耗的优点,能满足我们本次设计定位的要求。

GPS模块实物图如图2-2所示。

图2-3 GPS模块实物2. UBLOX NEO 6M性能和管脚定义(3)精度2D平面:2.5m[平均] 漂移:<0.02m/s2D平面:2m[平均],有WAAS辅助授时精度:1us (4)UBLOX NEO 6M管脚定义见表2-5所示。

(四)LCD(12864)模块介绍1. LCD(12864)简介LCD(12864)液晶显示模块类型属于汉字图形类型的液晶模块,可在显示屏上显示数字、符号和汉字等字符。

可与CPU直接连接,设有串行和并行这两种控制方式。

具有多种功能可供使用,具体使用哪种功能可查阅芯片资料。

2. LCD(12864)引脚介绍D0~D7是数据口,RS(CS)是数据/命令选择端(串片选),R/W(SID)端口是读/写选择端(串数据口),E(SCLK)是使能信号(串同步时钟信号),PSB端口是串/并选择端口,RST是我们熟悉而且常用的复位端口(低电平有效),BLA与BLK则是并不常用的背光电源正极端和负极端。

LCD(12864)的引脚如图2-6所示。

图2-6 LCD12864引脚3. LCD(12864)操作时序12864控制可使用两种时序,分别为并行操作时序和串行操作时序。

(具体内容太多,可参考12864数据手册。

)(五)硬件电路PCB板的绘制大二时由于自学过Altium Designer,又参加飞思卡尔智能车竞赛绘制电路板,加上平时经常绘制一些较为复杂的PCB,所以此系统所有硬件由Altium Designer设计完成。

1. 原理图的绘制根据系统要求绘制的硬件原理图如图2-6所示。

其中包括了单片机最小系统电路(复位、震荡、程序下载接口等电路)、电源电路、12864显示屏接口电路和led指示灯电路。

图2-7 硬件电路原理图2. PCB板的绘制根据系统要求及原理图绘制的PCB图如图2-8所示。

图2-8 硬件电路PCB图3. 实际硬件电路由于资金原因,设计好的PCB并没有送某宝卖家打印,实际电路板由洞洞板焊接而成,如图2-9所示。

图2-9 实际硬件图三、软件设计(一)软件设计思路实现GPS接收模块与单片机的通信是软件设计的核心模块,然后可以实现在液晶显示屏上实时显示当前的数据信息。

整个编程是用keil软件,采用C语言编程。

功能清晰、调试方便等特点是软件模块化设计所具有的优点,所以采用模块化设计,GPS数据接收模块、单片机模块、LCD模块和实时显示模块是软件程序设计的四个组成部分。

程序的设计思路是GPS模块接收信息,然后向单片机发送固定格式的数据,单片机通过串口接收数据,并对数据进行解析,最终实现在LCD显示屏上显示时间、经纬度和高度等信息。

详细源代码见附录。

(二)模块化软件设计1. GPS接收模块设计首先在搜索卫星时显示“华水课程设计”、“江涛201412712”和“GPS 显示项目”,然后进行识别判断GPS模块收到的信息是否完成发送给单片机的操作,若有信息发送给单片机,但接收到的信息我们并不是全部需要,所以需要进行识别判断相应语句的操作,然后把需要的信息存入到GPRMC语句中。

GPS 接收模块程序流程图如图3-1所示。

开始显示界面初始化GPRMC判断有效性分析纬度、经度、速度、海拔、航向、高度、时间、日期提取数据存储和处理结束图3-1GPS接收模块流程图2. 单片机模块设计GPS模块接收到数据信息后,需要把信息传送到单片机,单片机经过分析以及对数据信息进行筛选处理,然后送到液晶显示屏实时显示相应的位置信息,具体主要通过两个界面显示。

单片机模块程序设计流程图如图3-2所示。

开始接收GPS模块数据单片机模块设置初始化数据处理数据写入STC89C52进行显示结束图3-2 单片机模块流程图3. 显示模块设计GPS模块接收信息后,把信息传送给单片机,单片机首先对数据进行筛选和处理等操作,然后就可以把信息送到液晶显示模块,就实现了在液晶显示屏实时显示当前位置我们所需的信息。

液晶显示屏主要分为两个界面显示,界面一实时显示当前的日期、时间和经纬度信息,界面二实时显示当前所处位置的速度、航向、高度和海拔。

显示模块程序设计流程图如图3-3所示。

开始初始化设置分页显示界面一显示设置界面二显示设置结束图3-3 显示模块流程图四、系统调试与结果(一)硬件调试检测电路设计和工艺设计等方面的故障是硬件调试的主要任务。

1. 检查电路设计中所有元件的焊接以及引脚是否有故障。

首先用万用表逐个检查焊点,目的是检测是否出现短路和断路故障。

然后接入电源,观察电源指示灯的工作状态,硬件电路加入电源指示灯可以方便的检测硬件电路焊接是否正常。

2. 进行仿真操作。

用单片机控制仿真操作,目的是用来检查系统所涉及的接口是否达到设计的要求。

把程序下载到单片机上。

利用Keil软件,将已经完成的程序进行选择生成头文件的操作,然后把文件下载到STC89C52单片机。

4. 检查单个模块。

通过下载51单片机自带的程序到单片机,然后查看液晶显示屏(LCD12864)的显示情况判断单个模块是否工作正常。

(二)软件调试软件调试时我们是使用Keil软件进行仿真和调试,可以检查程序是否出错,而且同时可以纠正程序的错误,若硬件设计有问题,就可以检查出硬件的故障然后我们就可以进行修改。

因为程序设计是模块化的,所以在调试时可以逐个模块进行调试,若模块调试结果正常,就可以进行整个程序的调试。

尤其注意查看各个模块的语法正确而参数设计不正确的情况。

1. 检查已经编译完成的LCD(12864)液晶显示模块程序,查看液晶显示屏能否正常显示。

2. 检查已经编译完成的GPS模块程序,查看液晶显示屏显示的信息和预设结果的差距进而修改GPS接收模块程序。

3. 运行整个程序,观察液晶显示屏的结果是否实时显示当前位置我们所设想的信息,通过显示效果进行相应的软硬件修改。

(三)设计结果软件调试初各个模块工作正常,但一旦运行整个程序,液晶显示屏在GPS 搜索卫星界面后出现乱码,通过多次的调试和检测,原来是晶振不符合要求,更换晶振后,再次进行调试和检测,最终液晶显示屏显示了预想的结果,即实现了实时显示当前位置的日期、时间、纬度、经度等信息。

调试结果初始化界面如图4-1所示。

图4-1 初始化界面把当前位置液晶显示屏显示的信息与谷歌地图显示的位置信息进行对比,日期、时间非常精确,但经度与纬度出现了误差。

相关主题