<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 利用ADuC834構成二次儀表系統

利用ADuC834構成二次儀表系統

作者: 時(shí)間:2008-03-25 來(lái)源: 收藏

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

本文引用地址:http://dyxdggzs.com/article/80604.htm

  1芯片介紹

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

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

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

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

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

  

硬件設計原理圖

 

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

  2.1 數碼管的動(dòng)態(tài)顯示

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

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

  2.2 鍵盤(pán)控制電路

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

  

鍵盤(pán)控制電路

 

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

  2.3 發(fā)光LED設計

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

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

  3.1 數據采集程序

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

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

  ADCMODE=0x20; /*啟動(dòng)主ADC*/

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

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

  ANGE=+-TEMP*/

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

  ADCMODE=0x23; /*進(jìn)行連續采樣*/

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

  void adc_int(void) interrupt 6

  {

  EADC=0;

  RDY0=0;

  ……

  EADC=1;

  }

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

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

  sfr EDARL="0xe6";

  # define F_READ 0x01 /*讀取頁(yè)*/

  # define F_WRITE 0x02 /*寫(xiě)入頁(yè)*/

  # define F_VERIFY 0x04 /*檢測頁(yè)*/

  # define F_ERASE 0x05 /*擦除頁(yè)*/

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

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

  {

  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)

  /*寫(xiě)浮點(diǎn)數據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; /*寫(xiě)數據*/

  ECON=0x04; /*檢測數據

  temp=ECON;

  if(temp= =0)return TRUE;

  else return FLASE;

  }

  4 結論

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

c++相關(guān)文章:c++教程


晶振相關(guān)文章:晶振原理
鎖相環(huán)相關(guān)文章:鎖相環(huán)原理


關(guān)鍵詞: ADuC834

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>