《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 利用ADuC834構(gòu)成二次儀表系統(tǒng)
利用ADuC834構(gòu)成二次儀表系統(tǒng)
摘要: 本文所描述的二次儀表的軟硬件設(shè)計具有采集速度快、精度高、系統(tǒng)體積小的特點,,特別適用于需要進行復(fù)雜運算且要求采集精度較高,、體積較小的系統(tǒng)中。在實際的設(shè)計開發(fā)中,使用ADuC834可在很大程序上縮短開發(fā)時間并降低成本。另外,筆者設(shè)計的這款二次儀表在實際應(yīng)用中也取得了很好的使用效果,。
關(guān)鍵詞: DSP 二次儀表 ADuC834
Abstract:
Key words :

  ADuC834是一種真正意義上的完整的數(shù)據(jù)采集系統(tǒng)芯片。這種嶄新的微處理轉(zhuǎn)換器和先進的混合信號處理工藝顯著提高了數(shù)據(jù)采集系統(tǒng)的性能,,并大幅度減少了應(yīng)用系統(tǒng)的開發(fā)時間和成本,。ADuC834是美國模擬器件(AD)公司最新投入市場的一款微處理轉(zhuǎn)換器產(chǎn)品,它集成了雙路Σ-Δ型ADC,、溫度傳感器,、增益可程控放大器(PGA),、8位51MCU、62k的可編程程序EEPROM,、4k的數(shù)據(jù)Flash Memory,、2304字節(jié)的片內(nèi)RAM、12位DAC以及定器,、I2C兼容的SPI和標準的串行I/O等,。由此可見,ADuC834本身就是一個內(nèi)嵌MCU的高性能數(shù)據(jù)采集系統(tǒng),,利用它可以極方便地構(gòu)成各種二次儀表系統(tǒng),。

  1 ADuC834芯片介紹

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

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

  ADuC834本身能提供程序串行下載,所以可以直接下載調(diào)試程序,,非常方便于程序的開發(fā)和設(shè)計,。因此,利用ADuC834可以非常簡單地制作各種復(fù)雜的二次儀表,。

  2 二次儀表的硬件電路設(shè)計

  本系統(tǒng)設(shè)計主要針對兩路傳器進行采樣,,然后進行數(shù)據(jù)處理和相應(yīng)的數(shù)據(jù)顯示,同時要求有復(fù)雜菜單設(shè)計,。由于數(shù)據(jù)處理過程中要用到浮點乘除運算,,同時要求有菜單設(shè)置,,因此,利用ADuC834的62k程序存儲空間可以進行各種復(fù)雜的運算和處理,,而不需要外擴程序存儲器,。圖1是其硬件設(shè)計原理圖。

  

  

  

  

  本系統(tǒng)利用ADuC834的P3口構(gòu)成3×4鍵盤,,并通過P0,、P2口和7HC138譯碼器來構(gòu)成10個數(shù)碼管動態(tài)顯示屏,然后利用ADuC834的P1.0,、P1.1和74HC164構(gòu)成8個發(fā)光LED的顯示,,同時利用ADuC834的串口SPI功能進行軟件調(diào)試。

  2.1 數(shù)碼管的動態(tài)顯示

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

  用程序可選擇ADuC834定時器T2的自裝入方式,,并可將其定時為2ms,,同時可采用動態(tài)方式刷新數(shù)碼管的顯示緩沖區(qū),以實現(xiàn)動態(tài)顯示,。

  2.2 鍵盤控制電路

  由ADuC834的P3口的P3.0~P3.6可以構(gòu)成鍵盤控制電路,,其原理圖如圖2所示。

  

  

  

  

  由圖2可以看出,,該鍵盤有3行4列共12個鍵,,使用7個I/O作為控制線,其中采用P3.0,、P3.1,、P3.2作為行掃描線,采用P3.3~P3.6作為列加復(fù)線來構(gòu)成矩陣鍵盤,。運行中,,當(dāng)有鍵按下時,程序并不立即進行按鍵處理程序,,只有在按鍵按下又松開的時刻才進入程序處理,,因為這樣可防止按鍵的連擊和抖動。

  2.3 發(fā)光LED設(shè)計

  由于本系統(tǒng)要求有8種狀態(tài)顯示,,故需要使用8個發(fā)光LED來表示當(dāng)前程序運行的不同狀態(tài),。而這可利用P1.0、P1.1和74HC164控制8個發(fā)光數(shù)碼管來進行顯示,。

  3 二次儀表的軟件程序設(shè)計

  3.1 數(shù)據(jù)采集程序

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

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

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

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

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

  ANGE=+-TEMP*/

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

  ADCMODE=0x23; /*進行連續(xù)采樣*/

  下面是ADC中斷服務(wù)子程序,其中ADC的中斷號為6

  void adc_int(void) interrupt 6

  {

  EADC=0;

  RDY0=0;

  ……

  EADC=1;

  }

  3.2 用戶閃速/電擦除數(shù)據(jù)寄存器的編程

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

  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讀取浮點數(shù)據(jù)*/

  {

  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)

  /*寫浮點數(shù)據(jù)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; /*寫數(shù)據(jù)*/

  ECON=0x04; /*檢測數(shù)據(jù)

  temp=ECON;

  if(temp= =0)return TRUE;

  else return FLASE;

  }

  4 結(jié)論

  本文所描述的二次儀表的軟硬件設(shè)計具有采集速度快、精度高,、系統(tǒng)體積小的特點,,特別適用于需要進行復(fù)雜運算且要求采集精度較高、體積較小的系統(tǒng)中,。在實際的設(shè)計開發(fā)中,,使用ADuC834可在很大程序上縮短開發(fā)時間并降低成本。另外,,筆者設(shè)計的這款二次儀表在實際應(yīng)用中也取得了很好的使用效果,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。