收藏 分享(赏)

基于gps的精确电子日历设计推荐.doc

上传人:kuailexingkong 文档编号:1741500 上传时间:2018-08-21 格式:DOC 页数:60 大小:3.90MB
下载 相关 举报
基于gps的精确电子日历设计推荐.doc_第1页
第1页 / 共60页
基于gps的精确电子日历设计推荐.doc_第2页
第2页 / 共60页
基于gps的精确电子日历设计推荐.doc_第3页
第3页 / 共60页
基于gps的精确电子日历设计推荐.doc_第4页
第4页 / 共60页
基于gps的精确电子日历设计推荐.doc_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、基于 GPS 的精确电子日历设计基于 GPS的精确电子日历设计摘 要随着时代的发展,生活节奏的加快,人们的时间观念愈来愈强,设计开发数字时钟具有良好的应用前景。然而传统的时间服务方式越来越难以满足现代工业化生产实践对时间的要求。在 GPS 的高速发展下,其授时功能已日益被人们所关注 1。由于单片机价格的低成本、高性能,在自动控制产品中得到了广泛的应用。本设计利用 Atmel 公司的 AT89S52 单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用 C 语言进行软件编程,并用实验板进行演示、验证。本论文主要介绍构成 GPS 高精度时钟的各模块芯片的功能及各管脚的连接与执行情况,详细阐

2、述了 GPS 授时系统中的授时模块,包括 GPS 授时的同步利用方式和 GPS 接受端的数据输出形式以及 GPS 模块与单片机之间的连接通信,来达到读取 GPS 信息并且在 LCD1602 上显示时间的目的。本文给出了从 GPS 模块读取的数据中截取时间数据并和单片机之间进行传输显示的流程图及主要程序。考虑到接受 GPS 信号的问题上,本系统将加入一个DS1302 时钟芯片用来解决 GPS 信号中断或者信号强度太低导致读取不到数据的问题。最后,本文描述了 GPS 高精度时钟在设计和实现过程中可能出现的问题及其调试过程,并对该模块实际应用上的展望。关键字:高精度时钟;GPS 接收模块;AT89C

3、52;LCD1602;DS1302AbstractWith the development of The Times, the accelerating rhythm of life ,peoples concept of time becomes more and more strong,therefore, design and development digital clock has a good application prospect.However, traditional way of time service is increasingly difficult to meet

4、 the requirements of modern industrial production practice of the time. In the rapid development of GPS, the GPS clock function is increasingly attention by people.Because of the price of low-cost, high-performance single chip microcomputer has been widely used in automatic control of the products.T

5、his design use the AT89S52 microcontroller on the electronic clock of Atmel company development,implements the required function of the hardware circuit is designed,application C language for software programming and demonstration, validation with the test board. This paper introduces a GPS high pre

6、cision clock module chip function and the pin connection with the implementation,GPS timing GPS clock module in the system are expounded in detail,including GPS timing synchronization using method and GPS receiving the data output form and the connection between the GPS module and MCU communication,

7、to read the purpose of the GPS information and on the LCD1602 display time. The data read from the GPS module are given in this paper the interception time data and transmission between MCU and shows the flow chart and main program.Considering the received GPS signal problems,this system will join a

8、 DS1302 clock chip is used to solve GPS signal or the signal strength is too low, lead to cant read data.Finally, this article describes the GPS high precision clock possible problems in the process of design and implementation and debugging process, and the module on the practical application prosp

9、ects. Keywords:High precision clock;GPS receiver module;AT89C52;LCD1602;DS1302 基于 GPS 的精确电子日历设计目 录摘 要Abstract第一章 绪论 11.1 选题意义和论文任务 11.2 国内外研究以及趋势 .11.3 论文结构 .2第二章 GPS 高精度时钟的硬件设计 32.1 系统主要芯片选型 .32.1.1 微处理器 AT89C52 32.1.2 GPS 接收模块 42.1.3 时钟芯片 DS1302 52.1.4 显示模块 LCD1602.62.2 硬件设计总体思路 .72.3 硬件电路设计 82.3.

10、1 GPS 接受模块和单片机的连接 82.3.2 LCD1602 和单片机的连接 .92.3.3 按键模块和单片机的连接 .102.3.4 时钟芯片 DS1302 和单片机的连接 10第三章 GPS 高精度时钟的软件设计 113.1 GPS 授时系统的同步利用方式 .113.1.1 脉冲同步方式 .113.1.2 串行同步方式 .113.2 GPS 授时模块的形式及流程图 .123.3 LCD1602 的显示操作 .143.3.1 读状态操作 .143.3.2 写命令操作 .143.3.3 LCD 初始化 143.4 GPS 高精度时钟主要程序、流程图及注释 .153.4.1 主程序流程图 .

11、153.4.2 初始化程序 .163.4.3 按键检测程序 .173.4.4 DS1302 的读写程序 183.4.5 LCD1602 的读写程序 .19第四章 调试过程 204.1 GPS 接收信息强度 204.2 GPS 和单片机的通信 .204.3 程序运行 .204.4 DS1302 的晶振频率 .204.5 误差分析 .20第 5章 总结 21参考文献 22致谢 23附录 24浙江理工大学本科毕业设计(论文)1第 1章 绪论1.1 选题意义和论文任务随着科技的飞速进步,我国电力系统自动化技术快速发展,为了做到统内部统一的管理和调度,整个系统对时间的统一性要求越来越高,同时对时间的同步

12、精度要求也越来越高。互联网领域在世界各地分布着成千上万的服务器,计算机监控系统、数据采集系统、大型网络服务器系统、移动通信网络系统都需要统一的高精度时间以便管理。GPS时钟具有工作稳定、时间精度高、安全可靠、无需人工校时维护等优点广泛应用于广播电视系统的时间授时、同步锁定及车站、码头、机场、宾馆及户外广场等场合的时间显示。GPS性能特点: 可以全球全天候工作。GPS能为用户提供连续、实时的位置、三维速度和精密时间。 定位精度高。三维位置定位精度优于25米,三维速度精度优于住0.3米/秒,时间精度100纳秒,采用载波测距定位精度可达厘米级。 保密、抗干扰。GPS卫星发射的P码精测码扩频信号,比高

13、灵敏度接收机所能接收的最低信号电平还低几十个分贝。用户接收机为了解扩频接收信号,必须产生与信号中扩频伪码相同的本机伪码因具有较强的保密性,此外利用P码良好的相关特性还可增强用户接收机抗电子干扰的能力。在许许多多的精密研究中,绝不允许时间上的过多偏差,为了提高时钟的精确度,需要引入 GPS 信号,每 个 GPS 卫 星 上 都 有 2-3 个 高 精 度 的 原 子 钟 , 这 几 块 原 子 钟互 为 备 份 的 同 时 , 也 互 相 纠 正 。 另 外 GPS 信 号 中 自 带 了 误 差 纠 正 码 , 接 收 端 可 以很 容 易 的 把 延 迟 的 这 段 传 输 延 迟 去 掉

14、。本 次 设 计 的 任 务 是 在查阅国内资料的基础上了解 GPS 的原理和功能,了解单片机的原理和软件编程方法,设计单片机最小系统、键盘电路、显示电路、闹钟电路。本系统采用 AT89C52 作为主控制器,为了防止 GPS 无信号或者信号弱照成无数据输出,附加了时钟芯片 DS1302 充当第二时钟源,加入按键电路用来设定时间值以及闹钟值,显示方面采用 LCD1602 显示时间。基于 GPS 的高精度时钟设计21.2 国内外研究以及趋势传统的时间服务方式越来越难以满足现代工业化生产实践对时间的要求。随着GPS的发展,其授时功能已日益被人们所关注。利用GPS OEM接收模块,进行二次研制开发实现

15、实时时钟系统,具有精度高、无积累误差,不受地域、气候等环境条件限制,操作方便等特点。GPS时钟可广泛应用于电力系统、通讯、交通管理及国防等需要对时、计时、守时的相关领域 2。目前,市场上基于GPS的同步时钟系统种类非常多,但扩展的内容和接口各有不同,各个时钟系统所用的中心处理模块也各有特色。总体上说各种GPS同步时时钟的差别主要在于其时间的精准度、提供给用户的接口及输出信息。从处理器上大体可分为两大类型,一种是FPGA型,一种是单片机型。前者是基于FPGA实现的,FPGA 能够用硬件实现各功能模块并行执行,其速度远远超过单片机。所以这种系统一般精确度要高,但是其成本也比较高。后一种主要是通过单

16、片机对GPS信号进行采集,再转换成约定的格式输出给用户。由于单片机是由串行软件指令控制的,所以其体系结构将在很大程度上影响同步时种系统的精确度,使其误差相对比较大。1.3 论文结构第一章,详细论述了 GPS 高精度时钟的优越性,同时探讨了 GPS 的应用前景,进而提出了本论文的研究任务。第二章,给出了 GPS 高精度时钟设计的主要芯片选型,详细论述了 GPS 模块的NEMA0183 协议,并以此协议进行数据截取输出。第三章,给出了 GPS 接受模块进行截取数据的原理、流程图以及主要程序。第四章,给出了在 GPS 无信号或信号强度太弱时采用时钟芯片 DS1302 进行计时并用 LCD1602 显

17、示的主要程序。第五章,描述了本系统在设计和实现过程中出现的问题及调试过程。第六章,对全文进行系统的总结,并对 GPS 时钟的研究应用进行展望。浙江理工大学本科毕业设计(论文)3第 2章 GPS 高精度时钟的硬件设计2.1 系统主要芯片选型2.1.1 微处理器 AT89C52AT89C52 是 51 系列单片机的一个型号,它是 ATMEL 公司生产的。AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼

18、容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和Flash 存储单元,功能强大的 AT89C52 单片机可提供许多较复杂系统控制应用场合 3。 AT89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S 系列的才支持在线编程)。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。下图 2.1 为 AT89C52 的最小系统 4。图 2.1 AT8

19、9C52 的最小系统基于 GPS 的高精度时钟设计42.1.2 GPS 接收模块GPS 模块就是集成了 RF 射频芯片、基带芯片和核心 CPU,并加上相关外围电路而组成的一个集成电路。所谓的基带芯片就是用来合成即将发射的基带信号,或对接收到的基带信号进行解码。具体地说,就是:发射时,把音频信号编译成用来发射的基带码;接收时,把收到的基带码解译为音频信号。同时,也负责地址信息(手机号、网站地址) 、文字信息(短讯文字、网站文字) 、图片信息的编译。GPS 接收端可输出的语句数据格式有$GPGGA,$GPGSA ,$GPGSV,$GPRMC,$GPVTG,$LCGLL,$LCVTG,$PGRME,

20、$PGRMF,$PGRMT,$PGRMV ,$GPGLL 。不同的语句中传送的信息不同,由于“$GPGGA”语句数据格式输出的第一位数据就是所需要的时间数据,利于单片机对时间信息的接收处理,因此本接收机授时系统采用“$GPGGA” “$GPRMC”格式输出时间数据 7。$GPGGA(Global Positioning System Fix Data(GGA) )语句格式如下:$GPGGA,UTC 时间,hhmmss (时分秒)格式纬度 ddmm.mmmm(度分)格式(前面的 0 也将被传输)纬度半球 N(北半球)或 S(南半球)经度 dddmm.mmmm(度分)格式(前面的 0 也将被传输)

21、经度半球 E(东经)或 W(西经)GPS 状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算正在使用解算位置的卫星数量(00-12) (前面的 0 也将被传输)HDOP 水平精度因子(0.5-99.9)海拔高度(-9999.9-99999.9)地球椭球面相对大地水准面的高度差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)差分站 ID 号 0000-1023浙江理工大学本科毕业设计(论文)5$GPRMC(Recommended Minimum Specific GPS/TRANSIT Data(RMC) )语句格式如下:$GPRMC,UTC 时间,hhmmss (

22、时分秒)格式定位状态,A=有效定位,V=无效定位纬度 ddmm.mmmm(度分)格式(前面的0也将被传输)纬度半球 N(北半球)或 S(南半球)经度 dddmm.mmmm(度分)格式(前面的0也将被传输)经度半球 E(东经)或 W(西经)地面速率(000.0-999.9节,前面的0也将被传输)地面航向(000.0-359.9度,以真北为参考基准,前面的0也将被传输)UTC 日期,ddmmyy(日月年)格式磁偏角(000.0-180.0度,前面的0也将被传输)磁偏角方向,E(东)或 W(西)模式指示(仅 NMEA0183 3.00版本输出,A=自主定位,D =差分,E =估算,N=数据无效)2.

23、1.3 时钟芯片 DS1302DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V-5.5V。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。DS1302内部有一个318的用于临时性存放数据的RAM 寄存器 。DS1302 是 DS1202的升级产品,与 DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力,下图2.2为 DS1302的引脚图。基于 GPS 的高精度时钟设计6图 2

24、.2 DS1302 的引脚图DS1302 的引脚中 Vcc1 为后备电源, Vcc2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电。当 Vcc2 大于Vcc1+0.2V 时,Vcc2 给 DS1302 供电。当 Vcc2 小于 Vcc1 时,DS1302 由 Vcc1 供电。X1 和 X2 是振荡源,外接 32.768kHz 晶振。RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或

25、多字节数据传送的方法。当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中 RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在 Vcc2.0V 之前,RST 必须保持低电平。只有在 SCLK 为低电平时,才能将RST 置为高电平。 I/O 为串行数据输入输出端(双向),SCLK 为时钟输入端。DS1302 的控制字如下图2.3所示,控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入 DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取 RAM 数据;位5至位1指示操作单元的地址;最低有效

26、位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。图 2.3 DS1302 的控制字节2.1.4 显示模块 LCD1602LCD显示器分为字段显示和字符显示两种,可采用LCD1602作为显示器件输出信息,可以显示2行16个汉字。液晶显示模块具有体积小、功耗低、显示内容丰富、不需要外加驱动电路等优点,是单片机应用设计中最常用的显示器件,下图2.4为LCD1602的引脚图。浙江理工大学本科毕业设计(论文)7图2.4 LCD1602的引脚图LCD1602 其引脚功能如下:RS:数据和指令选择控制端,RS =0 命令状态;RS=1 数据;R/W:读写控制线,R/W=0

27、 写操作;R/W=1 读操作;A:背光控制正电源;K:背光控制地;E:数据读写操作控制位,E 线向 LCD 模块发送一个脉冲,LCD 模块和单片机间将进行一次数据交换;DB0-DB7:数据线,可用 8 位连接,也可只用高 4 位连接,节约单片机源;VDD:电源端;VEE:亮度控制端( 1-5V);VSS:接地端。2.2 硬件设计总体思路在整个系统的硬件设计中,采用 AT89C52 作为主处理芯片。时间信号采用 GPS 接收模块和 AT89C52 相结合,截取 GPS 接收端输出的时间数据并用 LCD1602 显示。在GPS 接收端无数据输出时,即无 GPS 信号或信号强度太弱时,采用 DS13

28、02 时钟芯片进行计时。本系统在显示时间的基础上加入闹钟模块,并且设置 4 个功能按钮可以对当前的时间进行设置并且修改闹钟时间。系统采用 LCD1602 进行输出显示,1602 中数据总线 DB0-7 对应单片机中的 P1 口,3 条控制线分别接另外 3 个单片机端口,其他对应接上电源和地。在键盘模块中添加上拉电阻,上拉电阻可以保证在没有按键输入时,进入单片机四个 I/O 口的按键状态均为高电平,防止干扰产生;当有按键按下时,相应的端口线状态转为低电平,总体框架如下图 2.5 所示。基于 GPS 的高精度时钟设计8图 2.5 高 精 度 GPS 时 钟 系 统 的 框 架 简 图2.3 硬件电

29、路设计系统的整体硬件电路图如下图 2.5 所示:图 2.5 系统的整体硬件电路图2.3.1 GPS 接受模块和单片机的连接单片机上的 3.0 和 3.1 管脚除了作为普通的 IO 口外,还有另外的用途。P3.0(RXD)、浙江理工大学本科毕业设计(论文)9P3.1(TXD)是 Receive Data ,Transmit Data 的意思,即 RXD 为接收数据的引脚,TXD为发送数据的引脚。将 GPS 接收模块的 2 条信号线分别对应接上 RXD、TXD 端口进行数据的通讯,用来接收时间信号并对时间信号进行截取输出,如下图 2.6 所示连接。图 2.6 GPS 接收端和 AT89C52 的连

30、接2.3.2 LCD1602 和单片机的连接1602 中数据总线 DB0-7 对应单片机中的 P1 口,3 条控制线分别接另外 3 个单片机端口,其他对应接上电源和地(下图 2.7)。AT89C52P3.0 P3.1 GPS 接收模块 VCCGROUNDLCD1602VSS VDD VEE D0-D7 RS R/W EAT89C52P2.1P2.2P1 口 P2.3 GROUNDVCCGROUND基于 GPS 的高精度时钟设计10图 2.7 LCD1602 和单片机 AT89C52 的连接LCD1602 中 VDD 为电源正极,VSS 为电源接地端,VEE 为液晶显示器对比度调整端,接正电源时

31、对比度最弱,接地时对比度最高。LCD1602 有四种基本的操作时序:读状态、写指令、读数据和写数据。读状态:输入:RS=L,RW=H,E=H 输出:D0-D7 = 状态字写指令:输入:RS=L,RW=L,D0-D7 = 指令码,E=高脉冲输出:无读数据:输入:RS=H,RW=H,E=H输出:D0-D7 = 数据写数据:输入:RS =H,RW=L ,D0-D7 = 数据,E= 高脉冲输出:无2.3.3 按键模块和单片机的连接键盘模块设置了四个按键:KEY1、KEY2、KEY3、KEY4 。其中 KEY1 为设置时间值,KEY2 为设定值上升键,用 KEY3 为设定值减小键,KEY4 是设定闹钟值

32、。电路连接如下图 2-8 所示,4 个上拉电阻可以保证在没有按键输入时,进入单片机四个 I/O 口的按键状态均为高电平,防止干扰产生;当有按键按下时,相应的端口线状态转为低电平。浙江理工大学本科毕业设计(论文)11R5R6R7R8+5VKEY1KEY2KEY3KEY4P0.0P0.1P0.2P0.3图 2.8 按键模块和单片机的连接2.3.4 时钟芯片 DS1302 和单片机的连接DS1302 与 CPU 的连接需要三条线,即 SCLK、I/O 、RST,分别连接单片机的 3 个端口 3.5、3.6、3.7(下图 2.9),用来对 DS1302 的命令字的读写和数据的读写。X1 和X2 是振荡

33、源,外接 32.768kHz 晶振。RST 是复位 /片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。图 2.9 DS1302 和 52 单片机的连接第 3章 GPS 高精度时钟的软件分析设计3.1 GPS授时系统的同步利用方式3.1.1 脉冲同步方式脉冲同步方式,即同步时钟每隔一定的时间间隔输出一个精确的同步脉冲。监控装置在接收到同步脉冲后进行对时,消除装置内部时钟的走时误差。同步脉冲的周期、频率、电平、脉宽、脉冲的正负、上升和下降时间、同步的时刻等均可能有所变化。基于 GPS 的高精度时钟设计12根据脉冲输出接口的不同,同步脉冲分为有源 TTL 电平输出、无源空接点输出、固态

34、继电器输出等。有源 TTL 电平输出,即每隔一定的时间间隔产生一个 TTL 电平脉冲,或正脉冲或负脉冲,脉冲的宽度和占空比可以不同。这种输出,用户可以直接引出同步信号,不必外加电源。无源空接点输出,即将同步脉冲作为一开关量输出,一般是使用一个光电三极管,从集电极输出。可根据应用要求,在同步时钟到来时,三极管由导通变截止,或由截止变导通。1PPS(秒脉冲,即:pulse per second 脉冲/秒)输出,是一个电平信号,一般以方波形式输出,高电平(也有较少数为低电平的)表示有秒脉冲输出,其持续时间很短,一般在毫秒量级上,其电平信号为+5V,持续时间为毫秒级,低电平(也有较少数为高电平的)表示

35、没有信号输出。高电平上升沿为 1PPS 输出的精确时刻。在 GPS OEM 板取得有效导航解析的时候,秒脉冲上升沿的时刻与 GPS 时刻相差在50ns 以内,与串行口输出的 UTC 标准时间相差在 1us 以内。OEM 板先为用户提供秒脉冲,再提供与该秒脉冲相对应的 UTC 标准时间。有时在没有收到卫星信号或导航解无效的情况下(即没有收到 UTC 的校正数据),OEM 板通过开发工具板也能向外发送秒脉冲,但此时秒脉冲为 GPS OEM 内部未改正钟差、钟漂的原始时钟的时间,其上升沿的时刻不准确、不稳定,误差较大,无实用价值。仅在取得正确导航解时才可以用 UTC 时间对 GPS OEM 内部时间

36、进行校正,输出精确时间。3.1.2 串行同步方式串行同步方式是时钟以串行数据流的方式输出时间信息,各种自动装置接收每秒一次的串行时间信息获得时间同步。串行通信的标准和格式多种多样,按信息码的格式不同,分别有 ASCII 码、IRIG-B 码等。按串行通信接口标准的不同,ASCII 码有RS232C、RS422/485 等方式,IRIG-B 码有 TTL 直流电平码输出、1kHZ 正弦波调制码输出、MANCHESTER 调制码输出等方式。(1)RS232/422/485 串行接口输出同步时钟通过 RS232/422/485 串行口在整秒、整分或整时,输出一次时间信息。时间信息格式一般是由帧头、时

37、、分、秒、日、月、年及结束符组成。自动装置在接浙江理工大学本科毕业设计(论文)13收到对时信号后,通过软件校正内部时钟。使用串行口方式对时,比脉冲对时方式复杂。受接收过程中信息处理时间的影响,对时精度差。如果要提高对时精度,还需要再给出对时脉冲信号。(2)IRIG-B 码串行输出IRIG-B 是美国最先采用的一种国际时间码标准。目前电力系统中的许多进口装置均使用 IRIG-B 时间码获取时间信息,因此 IRIG-B 码制串行输出也应作为 GPS 同步时钟输出的一种可选形式。IRIG-B 信号有 TTL 直流电平码和 1kHZ 正弦波调制码两种形式。每一码脉冲的宽度是 10ms,通过改变直流电平

38、占空比或变化 1kHZ 调制信号的幅值来表示逻辑“1”与“0”及标识符(帧起始符,相邻秒、分、小时、日期、数据的分隔符)。起始位的上升沿即为同步时刻。IRIG-B TTL 直流电平码的分辨率为 10ms,不加调制解调,使用方便,但只适于近距离传输。1kHZ 正弦波调制码的分辨率为 1ms,适合远距离传输,这种正弦波调制码一般通过音频传输线路来传输数据。所以本文认为,在装置硬件资源丰富的前提下可以考虑两种方案同时结合使用,即是将脉冲校时和串口校时结合起来的综合校时方案。3.2 GPS授时模块的形式及流程图OEM板输出的数据是以数据流的形式输出,采集的起始时刻未必是一帧数据的开始时刻,所以在数据采

39、集时,必须先判断字头块,在接收到字头块后,开始采集数据。OEM板每隔1s自动输出观测数据帧和位置数据帧一次,但输出的格式是多种多样的,因此必须先给OEM板发送指令来控制其输出数据格式。接收数据需要设定单片机的波特率,使其与GPS OEM板的传输波特率一致。给OEM板发送一条指令,使其发送的0183数据格式为“$GPGGA”,该指令预先存在数据存储器里,用循环方式顺次从程序存储器里取出数据就可循环发送。然后0EM板将输出相应格式的数据,单片机对接收的信息进行判断,如果是“$GPGGA”,则接收下面的6个ASCII码并存储在单片机的RAM里;如果不是“$GPGGA” ,则继续判断,直到是“$GPG

40、GA” 。也可采用循环方式接收时间信息。由于接收到的时间是世界标准时(UTC),因此在此时间上加上8h才是准确的北京时,在超出24h时应作减24h处理,然后进行显示处理。显示采用动态显示原理,每个时间状态显示停留一段时间,显示完后程序跳转到主函数以便接受下一秒的数据并将其显示。下图3.1为授时程序流程图。 小时部分加 8初始化基于 GPS 的高精度时钟设计143.3 LCD1602 的显示操作LCD 有四种基本操作,具体如表 3.1 所示。表 3.1 LCD 与单片机之间的四种基本操作状态 RS R/W 操作状态 1 0 0 写命令操作(初始化,光标定位等)状态 2 0 1 读状态操作(读忙标

41、志位)状态 3 1 0 写数据操作(要显示内容)发送字节发送完否接受字符循环判断是否为$GPGGA 字符循环 6 次接收数据并存取是否24指向储存单元左边开始取数据送出一位显示延时指向下一个单元读完 6位位控信号右移一位N图 3.1 授时程序流程图NNYY浙江理工大学本科毕业设计(论文)15状态 4 1 1 读数据操作(可以把显示存储区中的数据反 读出来)3.3.1 读状态操作执行读状态字操作,如表 3.1 所示须满足 RS=0、R/W=1。根据管脚功能,当为有效电平时,状态命令字可从 LCD 模块传输到数据总线。同时可以保持一段时间,从而实现读状态字的功能。如下图 3.2 所示为读入状态字流

42、程图。RS 清 0等待RW 置 1等待E 置 1 等待读入状态字等待E 清 0 等待RW 清 0 等待结束图 3.2 读入状态字流程图3.3.2 写命令操作由表 3.1 可知当 RS=0,R/W=0 时,才可以通过单片机或用户指令把数据即命令,写到 LCD 模块,此时就对 LCD 进行调制。可采用查询方式:先读入状态字,再判断忙标志,最后写命令字。3.3.3 LCD 初始化从通电开始通过延时,先经过判忙后再进行功能设置,过一段时间后可以设制显示状态(如设置行、位或阵列)再经过延时后清屏后再可以设置输入方式,具体如图 3.3所示。上电延时 20ms功能设置延时 37us显示状态设置清屏延时 1.

43、52ms输入方式设置返回基于 GPS 的高精度时钟设计16图 3.3 LCD 初始化流程图3.4 GPS 高精度时钟主要程序、流程图及注释3.4.1 主程序流程图本系统主程序流程图如下图 3.4 所示。3.4 主程序流程图在开始的初始化中,需要对各芯片进行初始化,初始化完成后要判断 GPS 接收端有没有数据输出(有没有 GPS 信号) ,即单片机有没有数据读入。如果没有 GPS 信息,为了防止时间停滞,采用 DS1302 计时。因为 GPS 接收端的数据传输是类似于网络中带有包头的数据包传输,所以要对其数据进行包头判断,在确定下数据头之后,还需要有一个逗号计数器。这个逗号计数器的作用就是在已获

44、得的(确定头部)数据中截取所需的一部分。3.4.2 初始化程序开始初始化有 GPS信号?截取 GPS 时间数据LCD1602 显示设置闹钟时间是否到闹铃时间?从 DS1302 读数据YYNN闹铃操作单片机处理浙江理工大学本科毕业设计(论文)17void Initial_LCD1602(void)/LCD1602 初始化RW=0;LCDEN=0;write_com(0x38);/写指令显示模式设置write_com(0x0c);/显示光标开及光标设置write_com(0x06);/显示光标移动设置write_com(0x01);/显示清屏void init()/总初始化Initial_LCD1

45、602();altp=0;/给各标志位附初值BLA=0;blaflag=0;yearh=20;TMOD=0x20;/设置定时器模式PCON = 0x00;/电源控制寄存器设置SCON = 0x50;/串行口控制寄存器TH1 = 0xFd;/波特率 9600 设定TL1 = 0xFd;TR1 = 1; /启动定时器EA=1; /开中断IE=0x90;/中断允许控制寄存器基于 GPS 的高精度时钟设计183.4.3 按键检测流程按键检测流程图如下图 3.5 所示。图 3.5 按键检测流程图其中按键 1 为校准当前时间的功能切换按键,按键 2 为对应的数值加 1 的功能按键,按键 3 为对应的数值减

46、 1 按键,按键 4 为设置闹钟时间的功能切换按键,通过这 4 个按键可以对时间进行校准并且设定闹钟时间。初始化按键按键 1按下?光标左移一位按键 4按下?切换到闹钟界面按键 2按下?按键 3按下?对应的数值加 1 对应的数值减 1Y YY YN NN N浙江理工大学本科毕业设计(论文)193.4.4 DS1302 的读写程序/向 DS1302 写一个字节void write_a_byte_to_ds1302(uchar datt)uchar i;for(i=0;i=1;/位移操作/向 DS1302 读取一个字节 uchar get_a_byte_from_ds1302()uchar i,b,

47、t;for(i=0;i=1;t=DIO;b|=t#include/#include#define uchar unsigned char #define uint unsigned int/*-DS1302-*/寄存器宏定义 #define WRITE_SECOND 0x80 #define WRITE_MINUTE 0x82 #define WRITE_HOUR 0x84 #define WRITE_MDAY 0x86#define WRITE_MONTH 0x88 基于 GPS 的高精度时钟设计26#define WRITE_WDAY 0x8A#define WRITE_YEAR 0x8C

48、#define WRITE_ALMINUTE 0xC0#define WRITE_ALHOUR 0xC2#define WRITE_ALARM 0xC4#define READ_SECOND 0x81 #define READ_MINUTE 0x83 #define READ_HOUR 0x85#define READ_MDAY 0x87#define READ_MONTH 0x89 #define READ_WDAY 0x8B#define READ_YEAR 0x8D #define READ_ALMINUTE 0xC1 #define READ_ALHOUR 0xC3#define RE

49、AD_ALARM 0xC5#define WRITE_PROTECT 0x8Esbit SCLK=P36;sbit DIO=P37;sbit CE=P35;sbit BEEP=P20;sbit DQ=P17;sbit BLA=P24;sbit RS=P21;sbit RW=P22;sbit LCDEN=P23;sbit s1=P00;sbit s2=P01;sbit s3=P02;sbit s4=P03;bit blaflag;uint count0,count1;/*DS1302*/bit amt,altp;uint ytemp,year;uchar num1,num4,s1num,s2num,s3num,s4num,wday,mday,month,flag,alflag;uchar timecount;char miao,shi,fen,yearl,yearh;char alshi,alfen,alarm;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报