<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 12位A/D轉(zhuǎn)換器TLC2543

          12位A/D轉(zhuǎn)換器TLC2543

          作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
          一、特性

          (1)12位分辨率A/D轉(zhuǎn)換器

          本文引用地址:http://www.ex-cimer.com/article/201611/316092.htm

          (2)在工作溫度范圍內(nèi)10μs轉(zhuǎn)換時間;

          (3)11個模擬輸入通道;

          (4)3路內(nèi)置自測試方式;

          (5)采樣率為66kbps;

          (6)線性誤差1LSB(max)

          (7)有轉(zhuǎn)換結(jié)束(EOC)輸出;

          (8)具有單、雙極性輸出;

          (9)可編程的MSB或LSB前導(dǎo);

          (10)可編程的輸出數(shù)據(jù)長度。

          二、引腳圖

          TLC2543的引腳排列如圖所示。其中:

          AIN0~AIN10:模擬輸入端;

          CS:片選端;

          DIN:串行數(shù)據(jù)輸入端;

          DOUT:A/D轉(zhuǎn)換結(jié)果的三態(tài)串行輸出端;

          EOC:轉(zhuǎn)換結(jié)束端;

          CLK:I/O時鐘;

          REF:正基準(zhǔn)電壓端;

          REF-:負(fù)基準(zhǔn)電壓端;

          VCC:電源;

          GND:地。

          三、程序

          本程序使用C51編程,每隔250ms采集一次數(shù)據(jù),并通過串口發(fā)送出去,程序如下:

          #include

          #include

          #include

          #defineucharunsignedchar

          #defineuintunsignedint

          sbitTCL2543_CLK=P3^2;

          sbitTCL2543_ADIN=P3^3;

          sbitTCL2543_DOUT=P3^4;

          sbitTCL2543_CS=P3^5;

          sbitEOC=P1^6;

          //其中port為通道:通道0:port=0x01通道1:port=0x02通道2:port=0x04...

          uintread2543(unsignedcharport)

          {

          unsignedinti;

          uintad_value=0;

          TCL2543_CLK=0;

          TCL2543_CS=0;

          EOC=1;

          port<<=4;

          for(i=0;i<12;i)

          {

          if(TCL2543_DOUT)ad_value|=0x01;

          TCL2543_ADIN=(bit)(port&0x80);

          TCL2543_CLK=1;

          _nop_();

          _nop_();

          _nop_();

          TCL2543_CLK=0;

          _nop_();

          _nop_();

          _nop_();

          port=port<<1;

          ad_value=ad_value<<1;

          }

          TCL2543_CS=1;

          ad_value=ad_value>>1;

          returnad_value;

          }

          voidmain(void)

          {

          unsignedinti=0,a=0,result=0,j=0;

          unsignedchartm_tm=5;

          floattmp;

          tm_tm=40;

          SCON=0x50;//串口方式1,允許接收

          TMOD=0x20;//定時器1定時方式2

          TCON=0x40;//設(shè)定時器1開始計數(shù)

          TH1=0xFD;//11.0592MHz9600波特率

          //TH1=0xF8;//30MHz,9600Bps=248=0xF8

          TL1=0xE8;

          TI=1;

          TR1=1;//啟動定時器

          //使用定時器。30MHz晶振,0.4us周期,預(yù)置50000=20ms,計數(shù)50次=1秒

          //使用定時器0。11.0592MHz晶振,1.0us周期,預(yù)置50000=50ms,計數(shù)20次=1秒

          TH0=60;//(65536-50000)/256;

          TL0=176;//(65536-50000)%256;

          TMOD=0x200x01;//T1T0,工作方式1

          TR0=1;//STARTT0

          while(1)

          {

          if(TF0==1)

          {

          a;

          if(a==tm_tm)//250ms

          {

          a=0;

          result=read2543(1);

          tmp=(result*60.0/4096.0);

          printf("%d,%4.2fn",result,tmp);

          }

          TF0=0;

          TH0=60;

          TL0=176;

          }

          }

          }


          ///////////////////////////////////////////////////////////////////////////////////////////

          ///////////////////////////////////////////////////////////////////////////////////////////////////////

          ////////////////////////////////////////////////////////////////////////////////////////////////////////

          #include

          #defineuintunsignedint
          #defineucharunsignedchar

          //**************************修改硬件時要修改的部分********************************

          sbitclock=P0^0;//輸入、輸出時鐘端
          sbitinput=P0^1;//數(shù)據(jù)輸入端
          sbitoutput=P0^2;//數(shù)據(jù)輸出端
          sbitCS=P0^3;//片選端,負(fù)電平有效

          voiddelay(ucharN)
          {
          while(N--);
          }

          uintread2543(ucharCON_WORD)//CON_WORD為選擇的通道,為0--10
          {
          uintad=0;
          uchari;
          CON_WORD<<=4;
          clock=0;
          CS=0;
          for(i=0;i<12;i++)
          {
          if(output==1)//讀取DATAOUT
          ad=ad|0x01;
          if(CON_WORD&0x80)//讀取控制字到INPUT
          input=1;
          else
          input=0;
          clock=1;
          delay(10);
          clock=0;
          delay(10);
          CON_WORD<<=1;
          ad<<=1;
          }
          CS=1;
          ad>>=1;
          return(ad);
          }

          voidinit_serial()//初始化串口
          {
          TMOD=0x20;//定時器T1使用工作方式2
          TH1=250;//設(shè)置初值
          TH0=250;
          TR1=1;//開始計時
          PCON=0x80;//SMOD=1;
          SCON=0x50;//工作方式1,波特率9600bit/s,允許接收
          TI=1;
          }

          voidmain()
          {
          uintad=0;
          floatfVoltage1;
          ucharbuf[5],i;
          init_serial();
          IE=0;//屏蔽中斷
          while(1)
          {
          ad=read2543(0);
          fVoltage1=(float)ad/0x0fff*5;
          buf[0]=(uchar)fVoltage1;
          buf[0]=buf[0]+0x30;
          buf[1]=.
          buf[2]=(uchar)(fVoltage1*10)%10;
          buf[2]=buf[2]+0x30;
          buf[3]=(uchar)(fVoltage1*100-buf[0]*100)%10;
          buf[3]=buf[3]+0x30;
          buf[4]=(uchar)((fVoltage1*1000)-buf[0]*1000-buf[1]*100)%10;
          buf[4]=buf[4]+0x30;
          i=0;
          while(i<5)
          {
          if(TI==1)
          {
          SBUF=buf[i];
          TI=0;
          i++;
          }
          }
          }
          }



          關(guān)鍵詞: 12位AD轉(zhuǎn)換器TLC254

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();