六通道數據采集及處理系統的研制
3 系統軟件設計
系統主程序框圖如圖8所示。
系統主程序設計為一個(gè)循環(huán)程序,在一個(gè)循環(huán)中完成以下工作:①向A/D轉換器發(fā)送命令字,讀取A/D轉換器的轉換結果,并根據來(lái)自PC機的指令,將讀取的轉換結果進(jìn)行初步處理;②將數據發(fā)送給PC機;③接收來(lái)自PC機的命令,并對命令做出反應。
本系統中,TLC2543輸出結果設置成12位無(wú)符號整型數,輸出順序為高位在前。為了使采樣結果更準確,采取如下采樣方式:在每一個(gè)主程序循環(huán)中,由單片計算機依次讀取AIN0~AIN5六個(gè)通道的采樣數據,并將各通道的數據依次存放到單片機的RAM中,六個(gè)通道讀完一次之后,再依次讀取 AIN0~AIN5六個(gè)通道的采樣數據,并將新讀取的各通道的數據分別加入到前面讀取的結果中,這樣連續讀取8次,得到各通道8次采樣結果之和,然后將這些結果分別除以8,得到各通道8次采樣結果的平均值,并把它們作為各通道的采樣結果傳送給PC機。由于A(yíng)/D轉換器輸出的結果并不直接表示電壓的大?。?00H表示0V,FFFH表示3.0V),單片機可根據來(lái)自PC機的命令,將這些結果轉換成電壓值(如將FFFH轉換成003H),結果的轉換通過(guò)調用子程序完成。
圖8 系統主程序框圖
系統主程序每循環(huán)一次,單片機向PC機發(fā)送一組數據,這一組數據包含三個(gè)部分:①三個(gè)同步字節#55H、#0AAH、#01H(供PC機識別發(fā)送內容用);②A(yíng)IN0~AIN5六個(gè)通道的采樣結果;③采樣結果的累加和(供PC機校驗發(fā)送數據的正確性用)。數據的發(fā)送通過(guò)調用發(fā)送子程序實(shí)現。循環(huán)程序中有一個(gè)延時(shí)程序, PC機通過(guò)傳送延時(shí)參數控制單片機完成一次循環(huán)所需的時(shí)間,從而控制單片機向PC機發(fā)送數據的頻率。來(lái)自PC機的命令通過(guò)中斷方式讀入,每當PC機有信號傳入,就引起單片機的串行口中斷,單片機在中斷服務(wù)程序中讀入命令,并執行收到的命令。
單片機串行口的工作方式設置成方式1,串行通信的波特率設計為4800。設波特率發(fā)生器T1的初值為x,則[4]
即 x=250(十)=#0FAH(十六)
所以 TL1=#0FAH,TH1=#0FAH.
評論