资料编号: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+论文)相关推荐

  1. 21、基于51单片机智能电饭堡系统设计(程序+原理图+PCB图+Proteus仿真+答辩技巧+开题报告+参考论文+元器件清单等)

    摘  要 电饭煲是人们日常生活中最普遍的家用电器,随着人们生活水平的提到,电饭煲也日趋智能化,本课题主要基于家电智能化的背景下,根据智能电饭煲的发展和现状,探讨智能电饭煲如何实现智能化的煮饭.预约.再 ...

  2. 基于51单片机手势控制智能台灯(程序+原理图+PCB)

    功能介绍: 1.采用手势传感器PAJ7620U2来检测当前的手势动作: 2.可以通过手势动作来控制灯的开关: 3.可以通过手势动作来控制LED灯的亮度: 4.LCD1602显示亮度等级: 5.可以通过 ...

  3. 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文)

    本设计: 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0019 下载链接 [ ...

  4. 基于51单片机的智能门禁系统仿真LCD12864显示原理图程序

    硬件设计 本电路是由STC89C52 单片机为控制核心,射频卡信息由MFRC522模块读出,通过MCU在LCD12864上显示,通过按键完成密码验证和修改密码的功能.整个门禁系统框图如图3-1所示. ...

  5. 34、基于51单片机锂电池电压电流容量检测仪表LCD液晶显示 原理图PCB程序设计

    方案选择 单片机的选择 方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度.非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通 ...

  6. 基于51单片机的智能路灯控制系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前时间/环境光强/工作模式 2.支持路灯故障检测 3.工作时间内(17~24时),两个路灯同时点亮,24时以后,B路灯 ...

  7. 基于51单片机电子秒表倒计时器proteus仿真程序原理图PCB数码管显示语言播报

    硬件设计 仿真图1: 计时功能,数码管显示 仿真图2 数码管LCD结合显示:具有多次记录模式: 仿真图3 数码管显示:具有时钟和秒表功能: 仿真图4 数码管显示:具有语音播报功能(这里采用示波器模拟, ...

  8. 基于51单片机的倒车雷达声光报警系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.本系统采用LCD1602液晶实时显示测试距离 2.两个功能按键可以设置距离阈值的大小 3.系统报警电路由蜂鸣器和LED组成的声光报警器 3.低于预 ...

  9. 基于51单片机的智能停车场车位收费系统原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 2.采用LCD1602液晶屏可以实时查看车位使用情况 3.采用超声波模块HC-SR04来检测车位是否有车,且每个车位都附有LED指示灯来实时显示车 ...

最新文章

  1. NLLLoss CrossEntropyLoss Pytorch
  2. 漫画:什么是红黑树?
  3. 子弹短信新发布,支付宝即将入驻
  4. 我的世界linux开服权限不足,我的世界路由器开服怎么获得超级管理员权限
  5. c语言中元音字母对应的的值,全国计算机等级考试二级C语言南开上机百题改错题第59...
  6. python画动态玫瑰花图片大全_【python】trutle绘制送给女神的玫瑰花图
  7. vi中如何跳到指定行
  8. 自定义view imageviw
  9. 递归的Fibonacci在数羊
  10. 关于DNF的多媒体包NPK文件的那些事儿(4)- NPK文件操作流程
  11. 学习笔记——利用串口通信控制LED指示灯开关
  12. Qt 直接在控件上拖拽图片到桌面、QQ
  13. 网上商城系统面试时怎么说的思路
  14. 时间戳和时间的相互转换,以及中国本地时间转换成国外时间
  15. 小米5x的android版本,小米5X是什么系统_小米5X系统更新-太平洋IT百科
  16. 戴尔灵越新增固态硬盘不识别问题解决
  17. 得物小程序最新版算法
  18. 好游戏需要一颗好心脏 国产游戏引擎发展史
  19. Android 组件化开源app -开眼短视频(OpenEyes)
  20. 【CVPR2022】ACVNet:一种基于注意力连接代价体的双目立体匹配网络

热门文章

  1. 图像增强系列之图像自动去暗角算法。
  2. 模拟文件目录系统-CatalogTree
  3. 命令行cmd如何切换目录
  4. C/C++黑魔法-隐含的this指针
  5. 谷牛期权持仓重心上移
  6. 冻结训练的理解与使用
  7. java的ognl写文件_JAVA之:OGNL表达式练习
  8. rsa加解密 --- jsencrypt.min.js --- 支持长字符串分段加解密
  9. 1000个手工绘制污渍笔刷
  10. CentOS6.4离线安装mysql5.6.22