0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用PIC微控制器制作GPS时钟

科技观察员 来源:allaboutcircuits 作者:延斯·克里斯托弗 2022-04-26 17:13 次阅读

在本文中,我将向您展示一种使用PIC微控制器从GPS模块获取时间和日期的方法。

要求

带有MPLABX和XC8编译器的计算机。

PICKIT3.5或同等PIC编程器。

一个GPS模块,用于发送NMEA语句。

面包板和跳线、液晶显示器和一个5K电位器

零件清单中的零件。

介绍

在之前的文章使用Arduino制作GPS时钟和使用PICAXE制作GPS时钟中,我已经使用Arduino和PICAXE制作了GPS时钟。在本文中,我使用的是PIC16F628A。有关GPS和导航的简要介绍,请阅读第一个链接中的文章。

poYBAGJnt9WAQlzUAAD2_ZvYNlI486.jpg

在本文中,我使用的GPS模块与之前的文章中使用的不同。波特率是9600,所以我必须配置uart端口来匹配这个。为了读出时间,我将使用GPRMC语句。这句话看起来像这样:

$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10

GPRMC语句和其他语句每秒发送一次。该软件将搜索正确的并使用其中的信息

硬件

以下原理图建立在面包板上。注意显示LCD输出模块。D6和D7连接到PIC引脚12和13。这恰好是编程引脚PGC和PGD。我不会从LCD上读取数据,所以我将RW引脚接地。我也将D0-D3接地。像这样将未使用的引脚接地是一种很好的做法,但是如果我要向项目添加更多功能,我喜欢将安装在PCB上的PIC上未使用的引脚路由到焊盘以便于访问。这里不是这种情况,因为电路是面包板的。

pYYBAGJnt9aAG-fNAABbhptST50990.png

点击图片为全尺寸。

零件清单

以下是EagleCAD中BOMulp的编辑列表。

poYBAGJnt9eAeD_4AACOwr0bs-s569.jpg

软件

该软件已被评论,但我将在这里大致介绍它。

首先是包含库、配置位、变量声明和函数原型。然后我有驱动液晶显示器的功能。要使LCD显示屏正常工作,您必须遵循特定的方法。之后是uart函数和两个函数,用于在接收到的时间和日期无效时显示消息。

主程序以一些指令开始:关闭比较器,为端口设置正确的方向,并将所有端口设置为低。然后初始化LCD端口和uart端口。在主while循环中,RX接收到的每个字节都放在一个变量中。比较变量以查看它是否是美元符号$。如果它是一个美元符号,我现在知道我在NMEA句子的开头,但我不知道是哪一个。然后它读取接下来的六个字节并将它们放入一个数组中。然后将该数组与预定义的数组进行比较。如果相等,那么我知道两件事:一,我有一个句子,二,我有正确的句子。现在遵循许多for循环,以读取正确的值并将其放置在正确的位置。在这个例子中,它读取时间、日期、纬度和经度,

当程序接近主while循环结束时,它会在LCD上显示时间和日期。显示的时间通常称为GPSZULU时间。

您可以下载下面的c源代码。

结论

在本文中,我向您展示了一种使用PIC微控制器从GPS模块获取时间和日期的方法。只需对代码进行少量更改,您就可以在不同的PIC上使用它。该程序读取时间、日期、纬度和经度,但它只显示时间和日期。我挑战读者显示纬度和经度。

图片和视频

这是面包板的一些图片。

pYYBAGJnt9iAeYwfAAFllzEZH8M814.jpg

启动画面。

poYBAGJnt9mAN14_AAFle5om9Ow667.jpg

在PIC接收到有效数据之前。

poYBAGJnt9qAWBXzAAFlLV0yjLg795.jpg

该模块有一个小型备用电池,有助于在卫星修复之前更快地启动时钟。

pYYBAGJnt9yABbOxAAFe6euX-GM151.jpg

现在NMEA语句中有有效信息。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6809

    浏览量

    147636
  • PIC微控制器
    +关注

    关注

    0

    文章

    17

    浏览量

    7354
  • GPS模块
    +关注

    关注

    0

    文章

    85

    浏览量

    16141
收藏 人收藏

    评论

    相关推荐

    如何使用PIC微控制器旋转步进电机

    在本教程中,我们将步进电机与PIC微控制器PIC16F877A连接。
    发表于 11-15 17:25 1106次阅读
    如何使用<b class='flag-5'>PIC</b><b class='flag-5'>微控制器</b>旋转步进电机

    专门为工业环境设计的PIC微控制器

    亲爱的大家,有没有人应该知道专门为工业环境设计的PIC微控制器
    发表于 09-17 06:26

    怎么设置PIC微控制器时钟频率?

    当设置PIC微控制器时钟频率时,我们是必须在MPLAB中设置它,还是可以通过使用OSCCON寄存的代码内的软件进行设置?
    发表于 03-23 10:08

    如何设计PIC18f2520微控制器的PCB

    我正在设计一个带有PIC18f2520微控制器的PCB,我想知道我是否能用pickit3给微控制器供电,因为我已经把微控制器的vdd引脚连接到电压调节
    发表于 05-11 06:44

    讨论AVR,ARM,8051和PIC微控制器之间的区别

    ,8051和PIC微控制器之间的区别。**AVR,ARM,8051和PIC微控制器之间的区别**微控制器之间的差异主要包括什么是
    发表于 11-23 07:24

    AVR,ARM,8051和PIC微控制器之间的区别在哪

    ,8051和PIC微控制器之间的区别。AVR,ARM,8051和PIC微控制器之间的区别 微控制器之间的差异主要包括什么是
    发表于 11-23 08:24

    PIC微控制器技术及应用 1-12章

    本书以美国Microchip(微芯)公司的PIC微控制器为例,详细介绍了PIC微控制器基础知识、基本应用开发,以及高级应用开发。
    发表于 04-26 11:29 2次下载

    PIC微控制器技术及应用 13-23章

    本书以美国Microchip(微芯)公司的PIC微控制器为例,详细介绍了PIC微控制器基础知识、基本应用开发,以及高级应用开发。
    发表于 04-26 11:29 1次下载

    PIC微控制器技术及应用 24-29章

    本书以美国Microchip(微芯)公司的PIC微控制器为例,详细介绍了PIC微控制器基础知识、基本应用开发,以及高级应用开发。
    发表于 04-26 11:29 1次下载

    PIC微控制器基础与实践 (加)myke predko著 12-

    本书是“图解电子创新制作”丛书之一。本书主要介绍广泛应用的PIC微控制器及在其基础上建立的系统。通过123个引人入胜的实验,讲述了利用C语言、汇编语言对以PIC
    发表于 04-26 11:33 0次下载

    PIC微控制器基础与实践 (加)myke predko著 9-1

    本书是“图解电子创新制作”丛书之一。本书主要介绍广泛应用的PIC微控制器及在其基础上建立的系统。通过123个引人入胜的实验,讲述了利用C语言、汇编语言对以PIC
    发表于 04-26 11:33 0次下载

    PIC微控制器基础与实践 (加)myke predko著 1-3

    本书是“图解电子创新制作”丛书之一。本书主要介绍广泛应用的PIC微控制器及在其基础上建立的系统。通过123个引人入胜的实验,讲述了利用C语言、汇编语言对以PIC
    发表于 04-26 11:33 0次下载

    PIC微控制器基础与实践 (加)myke predko著 6-9

    本书是“图解电子创新制作”丛书之一。本书主要介绍广泛应用的PIC微控制器及在其基础上建立的系统。通过123个引人入胜的实验,讲述了利用C语言、汇编语言对以PIC
    发表于 04-26 11:33 0次下载

    PIC微控制器基础与实践 (加)myke predko著 4-6

    本书是“图解电子创新制作”丛书之一。本书主要介绍广泛应用的PIC微控制器及在其基础上建立的系统。通过123个引人入胜的实验,讲述了利用C语言、汇编语言对以PIC
    发表于 04-26 11:42 0次下载

    PIC微控制器接口嵌入式设计,交互仿真

    PIC微控制器接口嵌入式设计,交互仿真
    发表于 10-13 10:45 7次下载
    <b class='flag-5'>PIC</b><b class='flag-5'>微控制器</b>接口嵌入式设计,交互仿真