基于GPS的高精度无误差倒计时牌设计
扫描二维码
随时随地手机看文章
引言
GPS是Global Positioning System的简称,是利用导航卫星进行测时和测距的全球定位系统,它具有精度高、全天候和全球覆盖能力,将GPS应用于时钟倒计时系统能实现高精度时间显示功能,基于GPS的高精度,倒计时牌是卫星测时技术,计算机技术及通信技术三者的有机结合。从功能模块上看,整个系统分为GPS测时接收系统和时钟显示系统,它主要完成以下功能:
◆ 定时接收GPS卫星发送的数据并进行识别和缓存;
◆ 对GPS测时数据进行格式转换,以使编码格式适于接收;
◆ 在给定时间内刷新DS12C887型时钟的时间;
◆ 读DS12C887时间,进行倒计时换算并显示。
硬件设计
基于GPS的高精度倒计时牌的硬件结构较为简单,它包括控制模块和显示模块两部分,图1所示是其电路图。
◇ 控制模块
AT89C52单片机是整个控制系统的核心,用于完成对串行口控制器的初始化和数据读写,还要对接收的各种数据进行识别、转储及显示。由于日本光电公司的GSV-15型OEM GPS接收板传输的数据以串行方式输出,它的一帧为10位、波特率为4800bit,与MCS-51型单片机串口输入输出格式匹配,所以利用单片机串行口直接从OEM接收数据,而DS12C887具有提供较高精度年、月、日、时、分、秒时间的功能,对其校准后,在掉电情况下,10年之内仍能准确的进行计时,并且能与单片机直接相连。
◇ 显示模块
本系统利用74HC595来实现串行方式控制数码管显示,因而占用口线少,硬件结构简单,74HC595型串/并转换移位寄存器具有锁存和3态输出功能。 14脚(SER)为串行输入端;12脚(RCLR)为移位时钟端。可在上升沿将14脚数据移入寄存器;11脚(SRCLR)为锁存时钟端,可在上升沿锁存数据;8脚(E)为3态输出控制端,接低电平时输出数据。
单片机输出数据和移位时钟,在时钟上升沿时将数据移入74HC595,P1.0 输出数据,在移位脉冲上升沿到来时数据移出。P1.1输出移位脉冲。P1.2输出锁存脉冲。数据出现在并行输出端上经74HC07驱动数码管显示,由于数据已被锁存,在传送下一组数据时,前一组数据的内容不变,以此方式进行数据的传送和显示。由于在控制模块中已用单片机的串行口接收OEM板内容,所以在显示模块软件中要将P1.0、P1.1、P1.2定义为模拟的串行口。这样,P1.0、P1.2、P1.3就可以作为串行口来使用。
软件设计
◇ 主程序
软件设计的主程序部分包括对单片机自身的机制的设置和对串行口的初始化等,图2所示是其主程序流程图。
◇ GPS的测时接收
GPS的测时接收数据由串行口接收,由单片机对其进行读入、识别、转换及存储等操作,在程序开始时,首先识别接收信号,看其是否是要接收的信号,OEM板接收的时间信号的字头为GPZDA。由于接收的时间信号是ASC II码。所以要将接收的数据转化为二进制数。由于接收的时间为格林威治时间,所以必须转化为北京时间,然后将转化后的时间写入DS12C887 中,DS12C887是一种比较准确的计时电路,它不需要时刻接收GPS信号,设计时可规定1小时接收1次GPS信号,其接收子程序流程如图3所示。
◇ 时钟倒计时显示
此程序主要用于模拟串行口,以便读取DS12C887的数据,并利用74HC595对其数据进行显示,其流程如图4所示。
◇ 倒计时子程序
以从现在到2008年1月1日为例来说明其设计,首先由单片机读DS12C887的时间单元,并将其存放在以69H为起始的单元中,先读取月份,利用查表的方法计算其下月份到预定时间的天数。然后再利用查表方式判断其月份是31天、30天、28天或29天,然后将查表得到的天数减去读取日期,这样将二个天数相加就会得到实际天数。进行时、分、秒的计算时,首先要把2008年1月1日0点0时0秒转化为2008年12月31日23点59时60秒,这样,直接利用时、分、秒响箭就能得到相差的时、分、秒。倒计时流程如图5所示。
结束语
本文所述的是基于GPS的高精度、无误差倒计时牌经调试运行和参数整定后,运行稳定可靠,连续长期运行积累的误差为零,当时的时间精度误差小于15ms。本系统的控制模块结构简单,便于实际开发应用。