基于51单片机GPS定位系统设LCD12864显示(程序+原理图+PCB+论文)
资料编号:202
功能介绍:
(1).定位功能
GPS通过接收卫星信号,可以准确地定出其所在的位置,位置误差小于10米。利用GPS,在12864上面显示当前位置。
(2).查询时间功能
GPS还可以接收卫星发下来的时间信息,利用单片机控制12864显示出当前时间,用户可以很方便的了解时间。
总体设计方案
个人手持设备要求是功耗要足够低、操作简单、界面美观、方便观看。为完成相应功能,本设计提出的方案如图1.1所示。系统包括以下几个基本模块:电源模块、主控模块、显示模块、GPS定位模块。GPS模块负责接收卫星信息,单片机模块负责读取GPS模块数据并处理,显示模块主要负责将GPS模块接收到的数据显示出来供用户随时观看。
图1.1 系统结构框图
部分程序展示:
int GPS_RMC_Parse(char *line,GPS_INFO *GPS)
{
uchar ch, status, tmp;
float lati_cent_tmp, lati_second_tmp;
float long_cent_tmp, long_second_tmp;
float speed_tmp;
char *buf = line;
ch = buf[5];
status = buf[GetComma(2, buf)];
if (ch == 'C') //如果第五个字符是C,($GPRMC)
{
if (status == 'A') //如果数据有效,则分析
{
GPS -> NS = buf[GetComma(4, buf)];
GPS -> EW = buf[GetComma(6, buf)];
GPS->latitude = Get_Double_Number(&buf[GetComma(3, buf)]);
GPS->longitude = Get_Double_Number(&buf[GetComma( 5, buf)]);
GPS->latitude_Degree = (int)GPS->latitude / 100; //分离纬度
lati_cent_tmp = (GPS->latitude - GPS->latitude_Degree * 100);
GPS->latitude_Cent = (int)lati_cent_tmp;
lati_second_tmp = (lati_cent_tmp - GPS->latitude_Cent) * 60;
GPS->latitude_Second = (int)lati_second_tmp;
GPS->longitude_Degree = (int)GPS->longitude / 100; //分离经度
long_cent_tmp = (GPS->longitude - GPS->longitude_Degree * 100);
GPS->longitude_Cent = (int)long_cent_tmp;
long_second_tmp = (long_cent_tmp - GPS->longitude_Cent) * 60;
GPS->longitude_Second = (int)long_second_tmp;
speed_tmp = Get_Float_Number(&buf[GetComma(7, buf)]); //速度(单位:海里/时)
GPS->speed = speed_tmp * 1.85; //1海里=1.85公里
GPS->direction = Get_Float_Number(&buf[GetComma(8, buf)]); //角度
GPS->D.hour = (buf[7] - '0') * 10 + (buf[8] - '0'); //时间
GPS->D.minute = (buf[9] - '0') * 10 + (buf[10] - '0');
GPS->D.second = (buf[11] - '0') * 10 + (buf[12] - '0');
tmp = GetComma(9, buf);
GPS->D.day = (buf[tmp + 0] - '0') * 10 + (buf[tmp + 1] - '0'); //日期
GPS->D.month = (buf[tmp + 2] - '0') * 10 + (buf[tmp + 3] - '0');
GPS->D.year = (buf[tmp + 4] - '0') * 10 + (buf[tmp + 5] - '0')+2000;
UTC2BTC(&GPS->D);
return 1;
}
}
return 0;
}
下面是该资料的分享下载链接:
https://pan.baidu.com/s/18_l8Yn95WZUnjjyEsP0Hug?pwd=q8iu
基于51单片机GPS定位系统设LCD12864显示(程序+原理图+PCB+论文)相关推荐
- 21、基于51单片机智能电饭堡系统设计(程序+原理图+PCB图+Proteus仿真+答辩技巧+开题报告+参考论文+元器件清单等)
摘 要 电饭煲是人们日常生活中最普遍的家用电器,随着人们生活水平的提到,电饭煲也日趋智能化,本课题主要基于家电智能化的背景下,根据智能电饭煲的发展和现状,探讨智能电饭煲如何实现智能化的煮饭.预约.再 ...
- 基于51单片机手势控制智能台灯(程序+原理图+PCB)
功能介绍: 1.采用手势传感器PAJ7620U2来检测当前的手势动作: 2.可以通过手势动作来控制灯的开关: 3.可以通过手势动作来控制LED灯的亮度: 4.LCD1602显示亮度等级: 5.可以通过 ...
- 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文)
本设计: 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0019 下载链接 [ ...
- 基于51单片机的智能门禁系统仿真LCD12864显示原理图程序
硬件设计 本电路是由STC89C52 单片机为控制核心,射频卡信息由MFRC522模块读出,通过MCU在LCD12864上显示,通过按键完成密码验证和修改密码的功能.整个门禁系统框图如图3-1所示. ...
- 34、基于51单片机锂电池电压电流容量检测仪表LCD液晶显示 原理图PCB程序设计
方案选择 单片机的选择 方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度.非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通 ...
- 基于51单片机的智能路灯控制系统proteus仿真原理图PCB
功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前时间/环境光强/工作模式 2.支持路灯故障检测 3.工作时间内(17~24时),两个路灯同时点亮,24时以后,B路灯 ...
- 基于51单片机电子秒表倒计时器proteus仿真程序原理图PCB数码管显示语言播报
硬件设计 仿真图1: 计时功能,数码管显示 仿真图2 数码管LCD结合显示:具有多次记录模式: 仿真图3 数码管显示:具有时钟和秒表功能: 仿真图4 数码管显示:具有语音播报功能(这里采用示波器模拟, ...
- 基于51单片机的倒车雷达声光报警系统proteus仿真原理图PCB
功能: 0.本系统采用STC89C52作为单片机 1.本系统采用LCD1602液晶实时显示测试距离 2.两个功能按键可以设置距离阈值的大小 3.系统报警电路由蜂鸣器和LED组成的声光报警器 3.低于预 ...
- 基于51单片机的智能停车场车位收费系统原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 2.采用LCD1602液晶屏可以实时查看车位使用情况 3.采用超声波模块HC-SR04来检测车位是否有车,且每个车位都附有LED指示灯来实时显示车 ...
最新文章
- NLLLoss CrossEntropyLoss Pytorch
- 漫画:什么是红黑树?
- 子弹短信新发布,支付宝即将入驻
- 我的世界linux开服权限不足,我的世界路由器开服怎么获得超级管理员权限
- c语言中元音字母对应的的值,全国计算机等级考试二级C语言南开上机百题改错题第59...
- python画动态玫瑰花图片大全_【python】trutle绘制送给女神的玫瑰花图
- vi中如何跳到指定行
- 自定义view imageviw
- 递归的Fibonacci在数羊
- 关于DNF的多媒体包NPK文件的那些事儿(4)- NPK文件操作流程
- 学习笔记——利用串口通信控制LED指示灯开关
- Qt 直接在控件上拖拽图片到桌面、QQ
- 网上商城系统面试时怎么说的思路
- 时间戳和时间的相互转换,以及中国本地时间转换成国外时间
- 小米5x的android版本,小米5X是什么系统_小米5X系统更新-太平洋IT百科
- 戴尔灵越新增固态硬盘不识别问题解决
- 得物小程序最新版算法
- 好游戏需要一颗好心脏 国产游戏引擎发展史
- Android 组件化开源app -开眼短视频(OpenEyes)
- 【CVPR2022】ACVNet:一种基于注意力连接代价体的双目立体匹配网络