《基于单片机gps定位信息显示系统设计.doc》由会员分享,可在线阅读,更多相关《基于单片机gps定位信息显示系统设计.doc(35页珍藏版)》请在金锄头文库上搜索。
1、目录一、系统整体概述2(一)主要内容2(二)系统方案的总体设计2二、硬件设计3(一)硬件总体结构框图3(二)单片机的介绍41. STC89C52的简介42. STC89C52引脚图4(三)GPS(UBLOX NEO 6M)模块介绍41. UBLOX NEO 6M简介42. UBLOX NEO 6M性能和管脚定义5(四)LCD(12864)模块介绍61. LCD(12864)简介62. LCD(12864)引脚介绍63. LCD(12864)操作时序6(五)硬件电路PCB板的绘制71. 原理图的绘制72. PCB板的绘制73. 实际硬件电路8三、软件设计9(一)软件设计思路9(二)模块化软件设计
2、91. GPS接收模块设计92. 单片机模块设计113. 显示模块设计11四、系统调试与结果13(一)硬件调试13(二)软件调试13(三)设计结果14五、总 结16参考文献17附录18一、系统整体概述(一)主要内容在学习C51系列单片机和GPS定位原理以及GPS相关知识的理论知识基础上,我们需要在种类繁多的单片机和GPS类型中选择合适的单片机和GPS模块,GPS模块的作用是用来接收卫星信号然后提取相应的信息,单片机作为本次设计系统的控制核心,对GPS模块接收到的信息进行处理,然后用液晶显示屏实时显示预设的数据信息。系统的具体实现主要由软硬件设计结合完成。硬件设计核心是单片机最小系统的设计,然后
3、在最小系统的基础上设计本次设计所需的外围电路,借助成品GPS模块,完成硬件电路的焊接,该设计硬件电路设计并不复杂,而且体积小便于携带。软件设计的核心内容是实现GPS模块与单片机的通信进而完成系统设计的要求,因为模块化设计具有功能清晰、调试方便等优点,而且在不同平台上移植方便,所以这次设计的思路是采用模块化设计,整个软件开发环境用Keil软件,采用C语言编程,硬件则为使用Altium Designer。(二)系统方案的总体设计本次设计的目标是要在单片机的基础上完成GPS定位信息显示系统设计。根据设计预设的要求,我们设计是以单片机为控制核心,控制GPS接收模块,最后利用液晶显示设备就可以实现系统设
4、计目标。市场上单片机种类很多,C51系列单片机,STM系列单片机等等。通过考虑单片机的普适性、所具备的功能、具体I/0口的性能以及价格是否经济实用等因素,本次设计采用C51系列单片机。系统整体是由硬件设计和软件设计两部分设计而成,采用C51系列单片机、GPS定位模块、LCD液晶显示模块设计而成。硬件设计主要由单片机(STC89C52)、GPS模块(UBLOX NEO 6M)、LCD12864液晶显示模块等组成;接收GPS模块传送的数据信息是软件设计的重点,进而获得当前所处位置的经纬度、航向和海拔等信息。二、硬件设计(一)硬件总体结构框图 硬件总体结构框图如图2-1所示。液晶显示电路 STC89
5、C52GPS接收模块GPS信号 电源 图2-1 硬件总体结构框图本次设计系统的硬件电路主要由下面几部分构成:第一,接收模块电路。GPS模块负责锁定卫星,然后把信息传送给单片机。第二,控制模块电路。以STC89C52单片机为控制核心,读取GPS模块传送的数据,然后把读取的数据送到液晶显示屏即实现了单片机的控制作用。第三,液晶显示电路。51单片机控制液晶显示电路,在液晶显示屏进而可以显示GPS模块读取的数据信息。第四,电源部分电路。整个系统的正常工作需要电源部分为其提供电源。此外,硬件电路中还会涉及一些使单片机正常工作的外围电路,以保证单片机正常工作。(二)单片机的介绍1. STC89C52的简介
6、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模
7、块实物图如图2-2所示。 图2-3 GPS模块实物2. UBLOX NEO 6M性能和管脚定义(1) 定位时间(TTFF):精准的定位时间和当前环境有关。 (2)灵敏度 Min Lyp Max 单位 跟踪 -160 dBm 捕获 -147 dBm表2-4 GPS灵敏度(3)精度2D平面:2.5m平均 漂移:=2.1375V,OL=OH=1.995V -0.3V=OL=2.1375V,OL=0.7125V表2-5 GPS管脚定义(更加详细资料可参考UBLOX NEO 6M数据手册)(四)LCD(12864)模块介绍1. LCD(12864)简介LCD(12864)液晶显示模块类型属于汉字图形类型
8、的液晶模块,可在显示屏上显示数字、符号和汉字等字符。可与CPU直接连接,设有串行和并行这两种控制方式。具有多种功能可供使用,具体使用哪种功能可查阅芯片资料。2. LCD(12864)引脚介绍D0D7是数据口,RS(CS)是数据/命令选择端(串片选),R/W(SID)端口是读/写选择端(串数据口),E(SCLK)是使能信号(串同步时钟信号),PSB端口是串/并选择端口,RST是我们熟悉而且常用的复位端口(低电平有效),BLA与BLK则是并不常用的背光电源正极端和负极端。LCD(12864)的引脚如图2-6所示。 图2-6 LCD12864引脚3. LCD(12864)操作时序12864控制可使用
9、两种时序,分别为并行操作时序和串行操作时序。(具体内容太多,可参考12864数据手册。)(五)硬件电路PCB板的绘制大二时由于自学过Altium Designer,又参加飞思卡尔智能车竞赛绘制电路板,加上平时经常绘制一些较为复杂的PCB,所以此系统所有硬件由Altium Designer设计完成。 1. 原理图的绘制根据系统要求绘制的硬件原理图如图2-6所示。其中包括了单片机最小系统电路(复位、震荡、程序下载接口等电路)、电源电路、12864显示屏接口电路和led指示灯电路。 图2-7 硬件电路原理图 2. PCB板的绘制根据系统要求及原理图绘制的PCB图如图2-8所示。 图2-8 硬件电路P
10、CB图3. 实际硬件电路 由于资金原因,设计好的PCB并没有送某宝卖家打印,实际电路板由洞洞板焊接而成,如图2-9所示。图2-9 实际硬件图三、软件设计(一)软件设计思路实现GPS接收模块与单片机的通信是软件设计的核心模块,然后可以实现在液晶显示屏上实时显示当前的数据信息。整个编程是用keil软件,采用C语言编程。功能清晰、调试方便等特点是软件模块化设计所具有的优点,所以采用模块化设计,GPS数据接收模块、单片机模块、LCD模块和实时显示模块是软件程序设计的四个组成部分。程序的设计思路是GPS模块接收信息,然后向单片机发送固定格式的数据,单片机通过串口接收数据,并对数据进行解析,最终实现在LC
11、D显示屏上显示时间、经纬度和高度等信息。详细源代码见附录。(2) 模块化软件设计1. GPS接收模块设计 首先在搜索卫星时显示“华水课程设计”、“江涛”和“GPS显示项目”,然后进行识别判断GPS模块收到的信息是否完成发送给单片机的操作,若有信息发送给单片机,但接收到的信息我们并不是全部需要,所以需要进行识别判断相应语句的操作,然后把需要的信息存入到GPRMC语句中。GPS接收模块程序流程图如图3-1所示。结 束 图3-1GPS接收模块流程图2. 单片机模块设计GPS模块接收到数据信息后,需要把信息传送到单片机,单片机经过分析以及对数据信息进行筛选处理,然后送到液晶显示屏实时显示相应的位置信息
12、,具体主要通过两个界面显示。单片机模块程序设计流程图如图3-2所示。 图3-2 单片机模块流程图3. 显示模块设计GPS模块接收信息后,把信息传送给单片机,单片机首先对数据进行筛选和处理等操作,然后就可以把信息送到液晶显示模块,就实现了在液晶显示屏实时显示当前位置我们所需的信息。液晶显示屏主要分为两个界面显示,界面一实时显示当前的日期、时间和经纬度信息,界面二实时显示当前所处位置的速度、航向、高度和海拔。显示模块程序设计流程图如图3-3所示。界面一显示设置界面二显示设置 图3-3 显示模块流程图四、系统调试与结果(一)硬件调试检测电路设计和工艺设计等方面的故障是硬件调试的主要任务。1. 检查电
13、路设计中所有元件的焊接以及引脚是否有故障。首先用万用表逐个检查焊点,目的是检测是否出现短路和断路故障。然后接入电源,观察电源指示灯的工作状态,硬件电路加入电源指示灯可以方便的检测硬件电路焊接是否正常。 2. 进行仿真操作。用单片机控制仿真操作,目的是用来检查系统所涉及的接口是否达到设计的要求。 把程序下载到单片机上。利用Keil软件,将已经完成的程序进行选择生成头文件的操作,然后把文件下载到STC89C52单片机。4. 检查单个模块。通过下载51单片机自带的程序到单片机,然后查看液晶显示屏(LCD12864)的显示情况判断单个模块是否工作正常。(二)软件调试软件调试时我们是使用Keil软件进行仿真和调试,可以检查程序是否出错,而且同时可以纠正程序的错误,若硬件设计有问题,就可以