历史上的今天
今天是:2024年09月14日(星期六)
2021年09月14日 | 44-基于51单片机的GPS定位系统设计
2021-09-14 来源:eefocus
具体实现功能
系统由STC89C52单片机+UBLOX-NEO-6M GPS模块+液晶屏12864+电源+LED灯指示模块构成。
具体功能:
能自动校准并用12864液晶显示屏显示时间、经纬度、速度、航向、高度和海拔等数据。

设计背景
GPS 是英文Global Positioning System(全球定位系统)的简称,而其中文简称为“球位系”。GPS起始于1958年美国军方的一个项目,1964年投入使用。是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统 。其主要目的是为陆、海、空三大领域提供实时、 全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的。经过20余年的研究实验,耗资300亿美元,到1994年,全球覆盖率高达98%的24颗GPS卫星星座己布设完成。随着人民生活水平的发展,GPS技术被越来越多的应用在个人PDA、个人车载终端、手机等设备上。人们通过GPS,能准确知道自己所在的位置,从实现到导航、确定旅游路线、获取地理信息等功能。本文介绍的GPS导航系统,以单片机作为主控芯片,配以GPS、12864显示屏,构建了一个GPS信息显示的系统。本系统在一定程度上推动了GPS导航设备研究的发展。
硬件设计
GPS是由美国国防部研制的导航卫星测距、授时、定位和导航系统,它由21颗工作卫星和3颗在轨备用卫星组成。GPS系统由3部分构成:
一是GPS卫星(空间部分),由21颗工作卫星,3颗备用卫星组成;
二是地面支撑系统(地面监控部分),由1个主控站,3个注入站,5个监测站组成;
三是GPS接收机(用户部分),接收GPS卫星发射信号,以获得必要的信息.
卫星不间断地发送自身的参数和时间信息,GPs接收机接收卫星发射的信号中含有时间信息的数据,这些数据经过串口通信传送给单片机或计算机,经分析计算后便可得到准确的时间信息.另外接收机都有一个输出端专门输出1pps信号,其上升沿对应接收机串口输出的UTC时间,精确度可达1|us,可直接提供给需要时间校准的用户,也可与串口输出的UTC时刻共同作用在单片机或计算机上以获得更精确的时间。
本系统主要采用的硬件有51单片机,液晶显示模块,GPS模块以及一些外围电路构成。
软件设计
系统的主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断,LCD1602初始化;然后LCD显示屏进入开机状态,显示开机信息(LCD_log),转入正常的显示,并接收数据,每次显示两串字符。接着由于单片机没有停机指令,所以可以设置系统程序不断地循环执行数据信息显示。
系统程序结构属中断方式,绝大多数功能在中断服务子程序中完成。根据总体结构,可将程序划分为几个功能化模块:串行口中断服务程序、显示子程序、扫描程序。各个模块可进行独立设计、调试和查错,最终再连接成一个整体。
原理图
本系统原理图设计采用Altium Designer19,具体如图。
程序
本设计利用KEIL5软件实现程序设计,具体如图。

仿真实现
本设计利用protues8.7软件实现仿真设计,具体如图。
史海拾趣
|
经过本人的改造,友善之臂的qtopia自带的浏览器终于支持中文网页了,也就是,如果能把应用程序再汉化下,就可以应用到开发中。空说无凭,先给大家上几张图。(X86-qtopia在PC上运行) … 查看全部问答> |
|
安装好后(SYSTEM中有红色控件)把SPCOMM控件放入窗体,没写一行代码直接编译弹出SPCOMM单元文件,编译不过,好像内嵌了一个代码单元,怎么回事?… 查看全部问答> |
|
大学刚毕业就直奔人才市场,很不错的在这家公司面试,当时说好了刚毕业工资会低点2200,包吃住的,转正3000.总体觉得还可以吧,就很高兴的周一去公司签了,可是谈工资的时候却说吃住要扣400也就是说工资1800了,当时真的很郁闷吧。说了包吃住结果这 ...… 查看全部问答> |
|
商品化STM32系列ISP软件和ISP-STM32F编程器上市啦! 新颖、快速、方便、实用的商品化STM32系列ISP软件和ISP-STM32F编程器上市啦!产品特点:易学易用:连接方便、操作简单、提示全面- 高速编程:(4秒/32K,7秒/64K,14秒/128K;高速读取:1秒/32K,2秒/64K,4秒/128K- 操作简便:自动识别 ...… 查看全部问答> |
|
对于晶振来讲,我查询过很多厂家,其最次的精度都≤50PPM,也就是说2万个脉冲,才误差1个脉冲,对于32.768kHz的晶振来说,在STM32上也就是1秒钟差1个半脉冲了,也就是1天才能差4秒。 然而ST公司却在芯片中添加了晶体的校正程序,为晶体脉冲在 ...… 查看全部问答> |
|
最近向商家买几片ATMEL的存储器,我要的是128K,可是用起来总觉得好象不像,跟原来要的32K差不多大,我现在的片子上写的是:ATMEL316 24C256N SI27A 底面写的是 2E4476 请问专家,到底怎么来区分他们的大小?24系列的地址应该都是15位的吧 ...… 查看全部问答> |
|
在protues仿真中,用AD0804采集数据后,直接赋给SBUF,然后通过虚拟终端显示,但是不能显示出来,该怎么写?谢谢! SBUF=P2; while(!TI); TI=0;这个是参照郭天翔那个写的 但是虚拟终端显示 ...… 查看全部问答> |
|
本帖最后由 langmanhengxing 于 2014-7-17 17:27 编辑 我用UART-GPS-NEO-7M-C模块,通过杜邦线连接stm32f103r8t6核心板,通过串口usart GPS 定位的信息都能够通过板子传输到电脑上。(我用sscom 串口工具观看定位数据) 但是定位误差 ...… 查看全部问答> |






