簡單實用的高精度倒計時牌設計
引言
GPS是具有高精度、全天候和全球覆蓋能力的全球衛星定位系統。將GPS應用于時鐘倒計時系統中能實現高精度時間顯示功能。本文介紹的基于GPS的高精度、倒計時牌是衛星測時技術、計算機技術及通信技術三者的有機結合。該設計將整個系統分為GPS測時接收和時鐘顯示兩部分。可定時接收GPS衛星發送的數據并進行識別和緩存,并可對GPS測時數據進行格式轉換,以使其編碼格式適于接收,同時可在給定時間內刷新DSl2C887的時鐘時間,并讀取DS12C887時間,以進行倒計時和顯示。
1 系統硬件設計
基于GPS的高精度倒計時牌的硬件結構較為簡單,它包括控制模塊和顯示模塊兩部分,圖1所示是其電路結構。
1.1 控制模塊
AT89C5l型單片機是整個控制系統的核心,可用于完成對串行口控制器的初始化和數據讀寫,此外,還要對接收的各種數據進行識別、轉儲及顯示。
由于日本光電公司的GSV-15型OEM GPS接收板傳輸的數據是以串行方式輸出的一幀10位、波特率為4 800 bit信號,該信號與MCS-51型單片機的串口輸人輸出格式匹配,所以可利用單片機串行口直接從OEM接收數據。
DS12C887具有提供較高精度年、月、日、時、分、秒時間的功能,對其進行校準后,可在掉電情況下,10年之內仍能準確地進行計時,并且能與單片機直接相連。
1.2 顯示模塊
本系統利用74HC595來實現串行方式控制的數碼管顯示,而且占用口線少,硬件結構簡單。74HC595型串/并轉換移位寄存器具有鎖存和3態輸出功能,它的14腳(SER)為串行輸入端;12腳(RCLR)為移位時鐘端,可在上升沿將14腳數據移人寄存器;11腳(SRCLR)為鎖存時鐘端,可在上升沿鎖存數據;8腳(E)為3態輸出控制端,該腳接低電平時可輸出數據。
利用單片機輸出的數據和移位時鐘,可在時鐘上升沿將數據移人74HC595。P 1.0用于輸出數據,可在移位脈沖上升沿到來時將數據移出。P1.1輸出移位脈沖,P 1.2輸出鎖存脈沖。在并行輸出端上經74HC07驅動數碼管顯示。由于數據已被鎖存,因此,在傳送下一組數據時,前一組數據的內容不變的數據可整個系統即以此方式進行數據的傳送和顯示。由于本設計在控制模塊中是用單片機的串行口接收OEM板內容,所以,在顯示軟件模塊中要將P1.0、P 1.1、P 1.2定義為模擬串行口。這樣,P1.0、P 1.2、P 1.3就可作為串行口使用了。
2 系統軟件設計
2.1 主程序
本系統的程序包括對單片機自身串行口的設置以及初始化等,其主程序流程如圖2所示。
2.2 GPS測時接收程序
GPS測時數據可由串行口接收,并由單片機對其進行讀入、識別、轉換及存儲等操作。在程序開始時,首先識別接收信號,看其是否是要接收的信號,OEM板接收的時間信號的字頭為GPZ-DA。此外,由于接收的時間信號是ASCⅡ碼,所以要將接收數據轉化為二進制數。由于接收的時間為格林威治時間,所以必須將其轉化為北京時間,然后再將轉化后的時間寫入DSl2C887中。DS12C887是一種比較準確的計時電路,不需要時刻接收GPS信號。一般1小時接收1次GPS信號即可,其接收子程序流程如圖3所示。
2.3 時鐘倒計時顯示
此程序中用模擬串行口來讀取DS12C887的數據,然后利用74HC595對其數據進行顯示。其顯示子程序流程如圖4所示。
2.4倒計時子程序
若以計算從現在到2008年1月1日為例,首先由單片機讀DSl2C887的時間單元,并將其存放在以69H為起始的單元中。操作時可先讀取月份,然后利用查表方法計算其下月份到預定時間的天數。然后再利用查表方式判斷其月份是31天、30天,28天或29天,然后將查表得到的天數減去讀取日期,這樣,將二個天數相加就可得到實際天數。進行時、分、秒計算時,首先把2008年1月1日0點0時0分0秒轉化為2007年12月31日23點59時60秒.這樣就可以直接利用時、分、秒相減得到相差的時、分、秒。其倒計時流程如圖5所示。
3 結束語
本文所述的基于GPS的高精度、無誤差倒計時牌經調試運行和參數整定后,運行穩定可靠,連續長期運行積累的誤差為零,其即時時間精度誤差小于l5 ms。本系統的控制模塊結構簡單,便于實際開發應用。
評論