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