下面是我們用在智能變送器中的AD采樣程序已經在KEILC51V7.05環境中編譯,並從計算機的串口下載到智能變送器的電路板上,能正確采樣並在液晶上顯示和通過DA轉換器得到相應的電流值。
#include <REG1210.H>
#define XTAL 843200 // 設置晶振頻率
#define A_CLK 9
#define DECIMATION 288
void main( )
{
ACLK=A_CLK; // 設置模擬時鐘頻率
ADCON0=0x31; // 設置參考電壓和增益倍數
ADCON2 = DECIMATION & 0xFF; //設置AD轉換速率每秒10次
ADCON3=(DECIMATION>>8) & 0x07;
ADCON1 = 0x01; // 設置濾波方法
ADMUX=0X10;
PDCON&=0x0f7 ; //打開AD轉換器
while(1)
{
display((ADRESH); //調用顯示函數顯示轉換結果
display((ADRESM);
display((ADRESL);
}
}
D/A轉換器的設置:
相對於A/D轉換而言,D/A轉換器的設置就非常簡單。它需要配置4個DA轉換寄存器(DAC0~DAC3)和DAC裝載控制寄存器。DA轉換寄存器控制著相應的電壓輸出方式和參考電壓。裝載控制寄存器是用來控制裝載DA數據方式的。
軟件設計
智能變送器的軟件部分包括以下幾個模塊:(1)對MSC1211進行初始化包括對單片機進行初始化、液晶顯器、A/D轉換器和D/A轉換器的初始化。(2)A/D轉換器的校準包括各通道增益、零點漂移校正。(3)現場壓力和溫度數據的采集(4)壓力傳感器的零點校準,溫度漂移補償和非線性補償(5)量程轉換,D/A數據輸出(6)實時壓力顯示。軟件流程圖如圖2所示。
圖2 軟件流程圖
表1:不同溫度下的壓力測試結果(壓力單位kPa,溫度單位°C) 標準值 20 40 60 80
溫度
20 19.988 39.990 60.012 79.985
40 20.003 40.005 59.988 80.005
60 20.010 39.985 60.010 79.990
實驗結果
通過采用SensymICT19C系列的壓阻式壓力傳感器,其主要技術指標為:量程為100kPa,靈敏度為2mV/V,零點為±2mV,線性度為±0.2%,工作溫度為-40~125°c。A/D轉換器的輸入信號範圍設置為±100mV,經過溫度漂移補償和非線性校正後,所得的試驗部分結果為如表1所示,經過計算可得其精度在千分之三以內,滿足了制造高精度變送器的要求。