1、引言
GPS是Global Positioning System的簡稱,是利用導(dǎo)航衛(wèi)星進(jìn)行測時和測距的全球定位系統(tǒng)。它具有精度高、全天候和全球覆蓋能力。將GPS應(yīng)用于時鐘倒計時系統(tǒng)中能實現(xiàn)高精度時間顯示功能。基于GPS的高精度、倒計時牌是衛(wèi)星測時技術(shù)、計算機(jī)技術(shù)及通信技術(shù)三者的有機(jī)結(jié)合。從功能模塊上看,整個系統(tǒng)分為GPS測時接收系統(tǒng)和時鐘顯示系統(tǒng)。它主要完成以下功能:
定時接收GPS衛(wèi)星發(fā)送的數(shù)據(jù)并進(jìn)行識別和緩存;
對GPS測時數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,以使編碼格式適于接收;
在給定時間內(nèi)刷新DS12C887型時鐘的時間;
讀DS12C887時間,進(jìn)行倒計時換算并顯示。
2、硬件設(shè)計
基于GPS的高精度倒計時牌的硬件結(jié)構(gòu)較為簡單,包括控制模塊和顯示模塊,如圖1所示。
2.1 控制模塊
89C51型單片機(jī)是整個控制系統(tǒng)的核心,完成對串行口控制器的初始化和數(shù)據(jù)讀寫,還要對接收的各種數(shù)據(jù)進(jìn)行識別、轉(zhuǎn)儲及顯示。
由于日本光電公司GSV-15型OEM GPS接收板傳輸?shù)臄?shù)據(jù)以串行方式輸出一幀10位、波特率為4800bit,MCS-51型單片機(jī)串口輸入輸出格式匹配,所以利用單片機(jī)串行口直接從OEM接收數(shù)據(jù)。
DS12C887具有提供較高精度年、月、日、時、分、秒時間的功能,對其校準(zhǔn)后,在掉電情況下,10年之內(nèi)仍能準(zhǔn)確的進(jìn)行計時,并且能與單片機(jī)直接相連。
2.2 顯示模塊
本系統(tǒng)利用74HC595實現(xiàn)串行方式控制數(shù)碼管顯示,占用口線少,硬件結(jié)構(gòu)簡單。74HC595型串/并轉(zhuǎn)換移位寄存器具有鎖存和3態(tài)輸出功能。14腳(SER)為串行輸入端;12腳(RCLR)為移位時鐘端,上升沿將14腳數(shù)據(jù)移入寄存器;11腳(SRCLR)為鎖存時鐘端,上升沿鎖存數(shù)據(jù);8腳(E)為3態(tài)輸出控制端,接低電平時輸出數(shù)據(jù)。
單片機(jī)輸出數(shù)據(jù)和移位時鐘,在時鐘上升沿時將數(shù)據(jù)移入74HC595。P1.0輸出數(shù)據(jù),在移位脈沖上升沿到來時數(shù)據(jù)移出。P1.1輸出移位脈沖。P1.2輸出鎖存脈沖。數(shù)據(jù)出現(xiàn)在并行輸出端上經(jīng)74HC07驅(qū)動數(shù)碼管顯示,由于數(shù)據(jù)已被鎖存,在傳送下一組數(shù)據(jù)時,前一組數(shù)據(jù)的內(nèi)容不變,以此方式進(jìn)行數(shù)據(jù)的傳送和顯示。由于在控制模塊中已用單片機(jī)的串行口接收OEM板內(nèi)容,所以在顯示模塊軟件中要將P1.0、P1.1、P1.2定義為模擬的串行口。這樣,P1.0、P1.2、P1.3就可作為串行口使用。
3、軟件設(shè)計
3.1 主程序
包括對單片機(jī)自身機(jī)制的設(shè)置串行口的初始化等,如圖2所示。
3.2 GPS測時接收
GPS測時接收數(shù)據(jù)由串行口接收,由單片機(jī)對其進(jìn)行讀入、識別、轉(zhuǎn)換及存儲等操作,在程序開始時,首先識別接收信號,看其是否是要接收的信號,OEM板接收的時間信號的字頭為GPZDA。由于接收的時間信號是ASCⅡ碼,所以要將接收數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制數(shù)。由于接收的時間為格林威治時間,所以必須轉(zhuǎn)化為北京時間,然后將轉(zhuǎn)化后的時間寫入DS12C887中。DS12C887是一種比較準(zhǔn)確的計時電路,不需要時刻接收GPS信號。筆者規(guī)定1小時接收1次GPS信號,其流程如圖3所示。
3.3 時鐘倒計時顯示
在此程序中模擬串行口,讀DS12C887的數(shù)據(jù),利用74HC595對其數(shù)據(jù)進(jìn)行顯示,流程如圖4所示。
3.4 倒計時子程序
以計算從現(xiàn)在到2006年1月1日為例,單片機(jī)讀DS12C887的時間單元,并將其存放在以69H為起始的單元中。先讀取月份,利用查表的方法計算其下月份到預(yù)定時間的天數(shù)。然后再利用查表方式判斷其月份是31天、30天,28天或29天,然后將查表得到的天數(shù)減去讀取日期,這樣將二個天數(shù)相加就得到實際天數(shù)。進(jìn)行時、分、秒的計算時,首先把2006年1月1日0點0時0分0秒轉(zhuǎn)化為2006年12月31日23點59時60秒,這樣直接利用時、分、秒相減就得到相差的時、分、秒。倒計時流程如圖5所示。
4 、結(jié)束語
本文所述的基于GPS的高精度、無誤差倒計時牌經(jīng)調(diào)試運行和參數(shù)整定后,運行穩(wěn)定可靠,連續(xù)長期運行積累的誤差為零,當(dāng)時的時間精度誤差<15ms。本系統(tǒng)的控制模塊結(jié)構(gòu)簡單,便于實際開發(fā)應(yīng)用。
責(zé)任編輯:gt
-
芯片
+關(guān)注
關(guān)注
456文章
51283瀏覽量
427780 -
單片機(jī)
+關(guān)注
關(guān)注
6044文章
44627瀏覽量
638978 -
gps
+關(guān)注
關(guān)注
22文章
2903瀏覽量
166824
發(fā)布評論請先 登錄
相關(guān)推薦
如何去實現(xiàn)一種基于單片機(jī)的倒計時牌控制系統(tǒng)設(shè)計
通過STC89C52單片機(jī)與時鐘芯片DS12C887通信
DS12C887高精度電子時鐘設(shè)計
51單片機(jī)DS12C887時鐘芯片DS18B20溫度芯片1602
基于DS12C887的數(shù)字時鐘的實現(xiàn)
基于GPS的高精度無誤差倒計時牌的設(shè)計
![基于GPS的<b class='flag-5'>高精度</b>無誤差<b class='flag-5'>倒計時牌</b>的設(shè)計](https://file.elecfans.com/web2/M00/49/6D/poYBAGKhwLKALdipAABMZWSS4Z8397.png)
以AT89C51單片機(jī)為控制核心的低成本高精度倒計時系統(tǒng)設(shè)計
![以AT89<b class='flag-5'>C</b>51<b class='flag-5'>單片機(jī)</b>為控制核心的低成本<b class='flag-5'>高精度</b><b class='flag-5'>倒計時</b>系統(tǒng)設(shè)計](https://file.elecfans.com/web1/M00/58/E6/o4YBAFthIyeAM99EAAAHzYdF5I0938.jpg)
基于51單片機(jī)的倒計時牌控制系統(tǒng)仿真
基于52單片機(jī)和DS12C887的高精度多功能電子鐘
![基于52<b class='flag-5'>單片機(jī)</b>和<b class='flag-5'>DS12C887</b>的<b class='flag-5'>高精度</b>多功能電子鐘](https://file.elecfans.com/web1/M00/4E/E2/o4YBAFrMmLaAR9MBAAAlN25Twus540.jpg)
基于AT89C52單片機(jī)和衛(wèi)星定位技術(shù)實現(xiàn)高精度倒計時牌的應(yīng)用方案
![基于AT89<b class='flag-5'>C</b>52<b class='flag-5'>單片機(jī)</b>和衛(wèi)星定位技術(shù)<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>高精度</b><b class='flag-5'>倒計時牌</b>的應(yīng)用方案](https://file.elecfans.com/web1/M00/E9/06/o4YBAGBr2eaAFpShAAEnMG9Mlrg513.png)
評論