谘詢電話

ENGLISH0755-88840386
新聞中心

谘詢電話

0755-88840386
您的位置:首頁 > K8凯发大酒店天生赢家專題 > 專業技術專題 > 工業自動化稱重儀表>詳情頁

適用於稱重儀的ADuC834二次儀表係統

發布時間:2021-05-12 10:46:40 |來源:網絡轉載

本文介紹一種真正意義上的完整的數據采集係統芯片--ADuC834,這種嶄新的微處理轉換器和先進的混合信號處理工藝顯著提高了數據采集係統的性能,適用於稱重儀等儀器,並大幅度減少了二次儀表係統的開發時間和成本。

ADuC834是美國模擬器件(AD)公司最新投入市場的一款微處理轉換器產品,它集成了雙路Σ-Δ型ADC、溫度傳感器、增益可程控放大器(PGA)、8位51MCU、62k的可編程程序EEPROM、4k的數據FlashMemory、2304字節的片內RAM、12位DAC以及定器、I2C兼容的SPI和標準的串行I/O等。由此可見,ADuC834本身就是一個內嵌MCU的高性能數據采集係統,利用它可以極方便地構成各種二次儀表係統。

1 ADuC834芯片介紹

ADuC834內部集成了兩路獨立的Σ-ΔADC,其中主通道ADC為24位,輔助通道ADC的16位。兩個獨立的ADC通道由於使用了數字濾波,因而可以實現寬動範圍的低頻信號測量,非常適用於稱重儀、張力應變儀、壓力轉換器和溫度測量等方麵的應用。其中主通道的AD輸入範圍在±20mV~±2.56V之間分為8檔,使用時可任選一檔。由於使用了Σ-Δ轉換技術,因此可以實現高達24位無丟失碼性能,且輔助通道還可以作為溫度傳感器使用。

ADuC834利用32kHz晶振來驅動片內鎖相環(PLL)以產生內部所需要的工作頻率,它的微控製器內核與8051兼容。片內外圍設備包括一個與SPI和I2C兼容的串行端口、多路數字輸入/輸出端口、看門狗定時器、電源監視器以及時間間隔計數器。同時片內還提供了62kB閃速/電擦除程序存儲器以及2304字節的片內RAM。

ADuC834本身能提供程序串行下載,所以可以直接下載調試程序,非常方便於稱重儀的程序的開發和設計。因此,利用ADuC834可以非常簡單地製作各種複雜的二次儀表。

2 二次儀表的硬件電路設計

本儀表係統設計主要針對兩路傳器進行采樣,然後進行數據處理和相應的數據顯示,同時要求有複雜菜單設計。由於數據處理過程中要用到浮點乘除運算,同時要求有菜單設置,因此,利用ADuC834的62k程序存儲空間可以進行各種複雜的運算和處理,而不需要外擴程序存儲器。
本係統利用ADuC834的P3口構成3×4鍵盤,並通過P0、P2口和7HC138譯碼器來構成10個數碼管動態顯示屏,然後利用ADuC834的P1.0、P1.1和74HC164構成8個發光LED的顯示,同時利用ADuC834的串口SPI功能進行軟件調試。

2.1 數碼管的動態顯示

利用ADuC834的P2口的P2.0~P2.4,並通過74HC138譯碼可以得到8個地址選通信號,而P2.5和P2.6則用於構成剩下的2個選通信號,同時把P0口作為顯示的數據接口。

用程序可選擇ADuC834定時器T2的自裝入方式,並可將其定時為2ms,同時可采用動態方式刷新數碼管的顯示緩衝區,以實現動態顯示。

2.2 鍵盤控製電路

由ADuC834的P3口的P3.0~P3.6可以構成鍵盤控製電路。
該鍵盤有3行4列共12個鍵,使用7個I/O作為控製線,其中采用P3.0、P3.1、P3.2作為行掃描線,采用P3.3~P3.6作為列加複線來構成矩陣鍵盤。運行中,當有鍵按下時,程序並不立即進行按鍵處理程序,隻有在按鍵按下又鬆開的時刻才進入程序處理,因為這樣可防止按鍵的連擊和抖動。

2.3 發光LED設計

由於本係統要求有8種狀態顯示,故需要使用8個發光LED來表示當前程序運行的不同狀態。而這可利用P1.0、P1.1和74HC164控製8個發光數碼管來進行顯示(稱重儀顯示器)。

3 二次儀表的軟件程序設計

3.1 數據采集程序

進行AD采集時,可選擇ADuC834的內部參考電壓(注意此時內部參考電壓是Vref=1.25V,所以ADC通道輸入範圍都縮小一半),並通過寫寄存器AD0CON的RN2、RN1和RN0來選擇不同的輸入範圍道替換,以實現對兩個通道輸入電壓的AD采樣。其初始采集程序如下:

EADC=0; /*禁止ADC中斷*/

ADCMODE=0x20; /*啟動主ADC*/

tempfloat=flash_read(2); /*讀取輸入通道選擇配置*/

temp=(uchar)(tempfloat-10001); /*采用24位的ADC,使用內部參考電壓,選擇AIN1、AIN2輸入,選擇雙極性編碼,

ANGE=+-TEMP*/

EADC=1; /*允許ADC采樣中斷*/

ADCMODE=0x23; /*進行連續采樣*/

……

下麵是ADC中斷服務子程序,其中ADC的中斷號為6

void adc_int(void) interrupt 6


{

EADC=0;
RDY0=0;
……
EADC=1;

}

3.2 用戶閃速/電擦除數據寄存器的編程

ADuC834的用戶閃速/電擦除數據存儲器的容量為4kB,利用這些EEPROM可以進行係統配置信息的存儲。具體程序如下:

sfr EDARL="0xe6";

# define F_READ 0x01 /*讀取頁*/

# define F_WRITE 0x02 /*寫入頁*/

# define F_VERIFY 0x04 /*檢測頁*/

# define F_ERASE 0x05 /*擦除頁*/

# define_F_ERASEALL 0x06 /*全部擦除*/

float flash_read(unsigned char f_add) /*從地址f_add讀取浮點數據*/

{

float idATA f_data=0;
float idata *ph;
uchar idata *puc;
pf=&f_data;
puc=(uchar idata *)pf;
EDARL=f_add;
ECON=0x01;
*puc=EDATA1;
++puc;
*puc=EDATA2;
++puc;
*puc=EDATA3;
++puc;
*puc=EDATA4;
return f_data;

}

unsigned char flash_write(unsigned char f_add,float f_data)

/*寫浮點數據f_data到地址f_add*/

{

float idata *pf;
uchar idata *puc;
uchar idata temp;
pf=&f_data;
puc=(uchar idata *)pf;
EDARL=f-add;
ECON=0x05; /*首先擦除*/
EDARL=f_add;
EDATA1=*(puc++);
EDATA2=*(puc++);
EDATA3=*(puc++);
EDATA4=*(puc);
ECON=0x02; /*寫數據*/
ECON=0x04; /*檢測數據
temp=ECON;
if(temp= =0)return TRUE;
else return FLASE;

}

4 結束語

本文所描述的二次儀表的軟硬件設計具有采集速度快、精度高、係統體積小的特點,特別適用於需要進行複雜運算且要求采集精度較高、體積較小的係統中。在實際的稱重儀表設計開發中,使用ADuC834可在很大程序上縮短開發時間並降低成本。另外,筆者設計的這款二次儀表在各種稱重儀應用中也取得了很好的使用效果。

 

本文源於網絡轉載,如有侵權,請聯係刪除

分享到
網站地圖凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8