<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 低成本的STC單片機(jī)的導(dǎo)航授時(shí)系統(tǒng)設(shè)計(jì)

          低成本的STC單片機(jī)的導(dǎo)航授時(shí)系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2011-11-15 來源:網(wǎng)絡(luò) 收藏


          2 軟件
          2.1 流程
          軟件沒計(jì)是的控制中心。使用C語言在Keil uVision4編譯器中編寫程序。程序主要包括接收GPS數(shù)據(jù)、處理GPS數(shù)據(jù)、顯示控制等。主程序流程如圖5所示。

          本文引用地址:http://www.ex-cimer.com/article/172425.htm

          e.jpg


          2.2 控制程序
          12C5A通過串口接收一組完整的GPS數(shù)據(jù)后,通過控制程序?qū)PS信息作相應(yīng)的處理。處理完后通過串口發(fā)送給上位機(jī),在整個(gè)過程中必須同時(shí)打開2個(gè)串口。12C5A的2個(gè)串口剛好滿足系統(tǒng)要求,而且可以對(duì)它們設(shè)置不同的波特率。STC12C5A系列的擴(kuò)展了1 KB的RAM空間,足夠本系統(tǒng)作為暫時(shí)的緩沖器。系統(tǒng)不用保存大量的數(shù)據(jù),雖然串口2一直在接收GPS數(shù)據(jù)和數(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接收一次信息,這樣不會(huì)影響的精度。發(fā)送數(shù)據(jù)的串口波特率設(shè)置成115 200 bps,接收GPS數(shù)據(jù)的串口波特率設(shè)置成9 600 bps,2個(gè)串口的初始化程序代碼如下:
          f.jpg
          數(shù)據(jù)處理部分主要是判斷GPS發(fā)送給STC的數(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)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();