低成本的STC單片機的導航授時系統(tǒng)設計
2 系統(tǒng)軟件設計
2.1 設計流程
軟件沒計是系統(tǒng)的控制中心。系統(tǒng)使用C語言在Keil uVision4編譯器中編寫STC單片機程序。程序主要包括接收GPS數(shù)據(jù)、處理GPS數(shù)據(jù)、顯示控制等。主程序流程如圖5所示。本文引用地址:http://m.butianyuan.cn/article/172425.htm
2.2 控制程序
STC12C5A通過串口接收一組完整的GPS數(shù)據(jù)后,通過控制程序對GPS信息作相應的處理。處理完后通過串口發(fā)送給上位機,在整個過程中必須同時打開2個串口。STC12C5A的2個串口剛好滿足系統(tǒng)要求,而且可以對它們設置不同的波特率。STC12C5A系列的單片機擴展了1 KB的RAM空間,足夠本系統(tǒng)作為暫時的緩沖器。系統(tǒng)不用保存大量的數(shù)據(jù),雖然串口2一直在接收GPS導航數(shù)據(jù)和授時數(shù)據(jù),同樣串口1以更高的波特率在向上位機發(fā)送數(shù)據(jù),最后所有的數(shù)據(jù)都會通過上位機軟件以.txt格式保存在PC機上。控制程序在設置串口中斷優(yōu)先級時會把發(fā)送數(shù)據(jù)的串口中斷設置成最高優(yōu)先級,優(yōu)先滿足串口發(fā)送。接收GPS數(shù)據(jù)時每隔1 s接收一次導航信息,這樣不會影響導航的精度。發(fā)送數(shù)據(jù)的串口波特率設置成115 200 bps,接收GPS數(shù)據(jù)的串口波特率設置成9 600 bps,2個串口的初始化程序代碼如下:
數(shù)據(jù)處理部分主要是判斷GPS發(fā)送給STC單片機的數(shù)據(jù)是否有效,在數(shù)據(jù)有效時提取經(jīng)度、緯度、海拔、衛(wèi)星日期、時間信息保存在字符數(shù)組中。數(shù)據(jù)保存完后確定數(shù)據(jù)是發(fā)送給LCD顯示屏顯示,還是通過串口發(fā)送給上位機軟件顯示。顯示模式有LCD顯示和上位機軟件顯示,默認方式是LCD顯示。如果需要上位機界面為顯示模式時,先通過上位機軟件中的“發(fā)送設置”對話框設置“顯示模式”為1,然后發(fā)送給STC單片機。
評論