GPS卫星计时周期清零,GPS周期翻转,GPS周期清零

GPS采用的是原子钟计时,而这个起点对应UTC时间(世界协调时间)的1980年1月6日0时开始对齐。 但UTC随着地球自转变化的情况出现闰秒现象,但GPS原子钟不会。
至2020年3月 GPS时与UTC已经差别有18s, 对了还有个原子时TAI

! RELATIONSHIP BETWEEN TAI AND UTC (TAI - UTC),
1980 Jan. 19s
1981 Jul. 20s
1982 Jul. 21s
1983 Jul. 22s
1985 Jul. 23s
1988 Jan. 24s
1990 Jan. 25s
1991 Jan. 26s
1992 Jul. 27s
1993 Jul. 28s
1994 Jul. 29s
1996 Jan. 30s
1997 Jul. 31s
1999 Jan. 32s
2006 Jan. 33s
2009 Jan. 34s
2012 Jul. 35s
2015 Jul. 36s
2017 Jan. 37s

GPS 采用WN week number 最大计时周期为1023周,所以会出现清零情况:
从GPS系统时的起始时刻算起,
第一次GPS周数翻转是1999年8月21日,
第二次翻转正好是2019年4月6日,
第三次翻转将会在2038年11月20日

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是基于51单片机的C语言代码实现: ```c #include <reg51.h> sbit LED = P1^0; //定义LED控制引脚 sbit INT0 = P3^2; //定义外部中断INT0引脚 sbit INT1 = P3^3; //定义外部中断INT1引脚 sbit DIO = P2^0; //定义数码管DIO引脚 sbit CLK = P2^1; //定义数码管CLK引脚 unsigned char code segCode[]={ //显示0~9的数码管段码 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f }; unsigned char cnt = 0; //计时器计数值 unsigned char flag = 0; //计时计时标志 unsigned char pause = 0; //计时器暂停标志 void delay(unsigned int t) //延时函数 { unsigned int i, j; for(i = t; i > 0; i--) for(j = 110; j > 0; j--); } void writeByte(unsigned char dat) //写入一个字节到数码管 { unsigned char i; for(i = 0; i < 8; i++) { DIO = dat & 0x01; CLK = 0; delay(1); CLK = 1; delay(1); dat >>= 1; } } void display(unsigned char dat) //数码管显示函数 { writeByte(segCode[dat]); } void timer() interrupt 1 //定时器中断服务函数 { TH0 = 0x3c; TL0 = 0xb0; cnt++; //计时器计数器加1 if(cnt == 60) //计时器计数值达到60 { cnt = 0; flag = 1; //计时计时标志置1 } } void main() { TMOD = 0x01; //定时器0工作在模式1 TH0 = 0x3c; TL0 = 0xb0; ET0 = 1; //开启定时器0中断 EA = 1; //开启总中断 while(1) { if(flag) //计时计时标志为1 { flag = 0; if(!pause) //计时器未暂停 { if(cnt == 0) //计时器计数值零 { LED = ~LED; //LED翻转 delay(1000); LED = ~LED; } display(cnt % 10); //显示秒位 } } if(!INT0) //外部中断INT0按键按下 { delay(10); if(!INT0) //再次检测按键状态,确保按键真正被按下 { pause = ~pause; //计时器暂停标志置反 while(!INT0); //等待按键释放 } } if(cnt == 0 && pause) //计时器计数值零且计时器已暂停 { display(0); //显示0 } } } ``` 注:数码管使用的是共阴数码管,CLK接P2.1,DIO接P2.0。外部中断按键需要使用上拉电阻,按下时引脚会被拉低。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值