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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 六通道數(shù)據(jù)采集及處理系統(tǒng)的研制

          六通道數(shù)據(jù)采集及處理系統(tǒng)的研制

          作者: 時間:2012-03-19 來源:網(wǎng)絡(luò) 收藏

          3 系統(tǒng)軟件設(shè)計

          系統(tǒng)主程序框圖如圖8所示。

          系統(tǒng)主程序設(shè)計為一個循環(huán)程序,在一個循環(huán)中完成以下工作:①向A/D轉(zhuǎn)換器發(fā)送命令字,讀取A/D轉(zhuǎn)換器的轉(zhuǎn)換結(jié)果,并根據(jù)來自PC機的指令,將讀取的轉(zhuǎn)換結(jié)果進行初步;②將數(shù)據(jù)發(fā)送給PC機;③接收來自PC機的命令,并對命令做出反應。

          本系統(tǒng)中,TLC2543輸出結(jié)果設(shè)置成12位無符號整型數(shù),輸出順序為高位在前。為了使采樣結(jié)果更準確,采取如下采樣方式:在每一個主程序循環(huán)中,由單片計算機依次讀取AIN0~AIN5六個的采樣數(shù)據(jù),并將各的數(shù)據(jù)依次存放到單片機的RAM中,六個讀完一次之后,再依次讀取 AIN0~AIN5六個通道的采樣數(shù)據(jù),并將新讀取的各通道的數(shù)據(jù)分別加入到前面讀取的結(jié)果中,這樣連續(xù)讀取8次,得到各通道8次采樣結(jié)果之和,然后將這些結(jié)果分別除以8,得到各通道8次采樣結(jié)果的平均值,并把它們作為各通道的采樣結(jié)果傳送給PC機。由于A/D轉(zhuǎn)換器輸出的結(jié)果并不直接表示電壓的大?。?00H表示0V,F(xiàn)FFH表示3.0V),單片機可根據(jù)來自PC機的命令,將這些結(jié)果轉(zhuǎn)換成電壓值(如將FFFH轉(zhuǎn)換成003H),結(jié)果的轉(zhuǎn)換通過調(diào)用子程序完成。

          50.gif
          圖8 系統(tǒng)主程序框圖

          系統(tǒng)主程序每循環(huán)一次,單片機向PC機發(fā)送一組數(shù)據(jù),這一組數(shù)據(jù)包含三個部分:①三個同步字節(jié)#55H、#0AAH、#01H(供PC機識別發(fā)送內(nèi)容用);②AIN0~AIN5六個通道的采樣結(jié)果;③采樣結(jié)果的累加和(供PC機校驗發(fā)送數(shù)據(jù)的正確性用)。數(shù)據(jù)的發(fā)送通過調(diào)用發(fā)送子程序?qū)崿F(xiàn)。循環(huán)程序中有一個延時程序, PC機通過傳送延時參數(shù)控制單片機完成一次循環(huán)所需的時間,從而控制單片機向PC機發(fā)送數(shù)據(jù)的頻率。來自PC機的命令通過中斷方式讀入,每當PC機有信號傳入,就引起單片機的串行口中斷,單片機在中斷服務程序中讀入命令,并執(zhí)行收到的命令。

          單片機串行口的工作方式設(shè)置成方式1,串行通信的波特率設(shè)計為4800。設(shè)波特率發(fā)生器T1的初值為x,則[4]

          即 x=250(十)=#0FAH(十六)

          所以 TL1=#0FAH,TH1=#0FAH.



          評論


          相關(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); })();