六通道數(shù)據(jù)采集及處理系統(tǒng)的研制
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)用子程序完成。
圖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.
評論