基于GPS的高精度無誤差倒計時牌的設計
1 引言
gps是global positioning system的簡稱,是利用導航衛(wèi)星進行測時和測距的全球定位系統。它具有精度高、全天候和全球覆蓋能力。將gps應用于時鐘倒計時系統中能實現高精度時間顯示功能?;趃ps的高精度、倒計時牌是衛(wèi)星測時技術、計算機技術及通信技術三者的有機結合。從功能模塊上看,整個系統分為gps測時接收系統和時鐘顯示系統。它主要完成以下功能:
定時接收gps衛(wèi)星發(fā)送的數據并進行識別和緩存;
對gps測時數據進行格式轉換,以使編碼格式適于接收;
在給定時間內刷新ds12c887型時鐘的時間;
讀ds12c887時間,進行倒計時換算并顯示。
2 硬件設計
基于gps的高精度倒計時牌的硬件結構較為簡單,包括控制模塊和顯示模塊,如圖1所示。
2.1 控制模塊
89c51型單片機是整個控制系統的核心,完成對串行口控制器的初始化和數據讀寫,還要對接收的各種數據進行識別、轉儲及顯示。
由于日本光電公司gsv-15型oem gps接收板傳輸的數據以串行方式輸出一幀10位、波特率為4800bit,mcs-51型單片機串口輸入輸出格式匹配,所以利用單片機串行口直接從oem接收數據。
ds12c887具有提供較高精度年、月、日、時、分、秒時間的功能,對其校準后,在掉電情況下,10年之內仍能準確的進行計時,并且能與單片機直接相連。
2.2 顯示模塊
本系統利用74hc595實現串行方式控制數碼管顯示,占用口線少,硬件結構簡單。74hc595型串/并轉換移位寄存器具有鎖存和3態(tài)輸出功能。14腳(ser)為串行輸入端;12腳(rclr)為移位時鐘端,上升沿將14腳數據移入寄存器;11腳(srclr)為鎖存時鐘端,上升沿鎖存數據;8腳(e)為3態(tài)輸出控制端,接低電平時輸出數據。
單片機輸出數據和移位時鐘,在時鐘上升沿時將數據移入74hc595。p1.0輸出數據,在移位脈沖上升沿到來時數據移出。p1.1輸出移位脈沖。p1.2輸出鎖存脈沖。數據出現在并行輸出端上經74hc07驅動數碼管顯示,由于數據已被鎖存,在傳送下一組數據時,前一組數據的內容不變,以此方式進行數據的傳送和顯示。由于在控制模塊中已用單片機的串行口接收oem板內容,所以在顯示模塊軟件中要將p1.0、p1.1、p1.2定義為模擬的串行口。這樣,p1.0、p1.2、p1.3就可作為串行口使用。
3 軟件設計
3.1 主程序
包括對單片機自身機制的設置串行口的初始化等,如圖2所示。
gps測時接收數據由串行口接收,由單片機對其進行讀入、識別、轉換及存儲等操作,在程序開始時,首先識別接收信號,看其是否是要接收的信號,oem板接收的時間信號的字頭為gpzda。由于接收的時間信號是ascⅱ碼,所以要將接收數據轉化為二進制數。由于接收的時間為格林威治時間,所以必須轉化為北京時間,然后將轉化后的時間寫入ds12c887中。ds12c887是一種比較準確的計時電路,不需要時刻接收gps信號。筆者規(guī)定1小時接收1次gps信號,其流程如圖3所示。
3.3 時鐘倒計時顯示
在此程序中模擬串行口,讀ds12c887的數據,利用74hc595對其數據進行顯示,流程如圖4所示。
3.4 倒計時子程序
以計算從現在到2006年1月1日為例,單片機讀ds12c887的時間單元,并將其存放在以69h為起始的單元中。先讀取月份,利用查表的方法計算其下月份到預定時間的天數。然后再利用查表方式判斷其月份是31天、30天,28天或29天,然后將查表得到的天數減去讀取日期,這樣將二個天數相加就得到實際天數。進行時、分、秒的計算時,首先把2006年1月1日0點0時0分0秒轉化為2006年12月31日23點59時60秒,這樣直接利用時、分、秒相減就得到相差的時、分、秒。倒計時流程如圖5所示。
4 結束語
本文所述的基于gps的高精度、無誤差倒計時牌經調試運行和參數整定后,運行穩(wěn)定可靠,連續(xù)長期運行積累的誤差為零,當時的時間精度誤差<15ms。本系統的控制模塊結構簡單,便于實際開發(fā)應用。
評論