1 引言 GPS是Global Positioning System的簡稱,是利用導航衛星進行測時和測距的全球定位系統,它具有精度高、全天候和全球覆蓋能力,將GPS應用于時鐘倒計時系統能實現高精度時間顯示功能,基于GPS的高精度,倒計時牌是衛星測時技術,計算機技術及通信技術三者的有機結合。從功能模塊上看,整個系統分為GPS測時接收系統和時鐘顯示系統,它主要完成以下功能: ◆ 定時接收GPS衛星發送的數據并進行識別和緩存; ◆ 對GPS測時數據進行格式轉換,以使編碼格式適于接收; ◆ 在給定時間內刷新DS12C887型時鐘的時間; ◆ 讀DS12C887時間,進行倒計時換算并顯示。 2 硬件設計 基于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就可以作為串行口來使用。 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所示。 4 結束語 本文所述的是基于GPS的高精度、無誤差倒計時牌經調試運行和參數整定后,運行穩定可靠,連續長期運行積累的誤差為零,當時的時間精度誤差小于15ms。本系統的控制模塊結構簡單,便于實際開發應用。 |