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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)—ADC0808—05—①

          51單片機(jī)—ADC0808—05—①

          作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
          早晚也是閑著沒事情做~~干脆就發(fā)點(diǎn)簡(jiǎn)單的東西,畢竟所謂的復(fù)雜就是一堆簡(jiǎn)單的堆出來的~~~究其根本,沒有什么復(fù)雜的~

          畢竟ADC這個(gè)東西用的比較多,也很成熟,做出來的東西也是挺多的,所以這個(gè)東東就用兩三個(gè)實(shí)驗(yàn)來敘述吧~

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

          先說一下ADC0808 這款A(yù)/D轉(zhuǎn)換器的介紹:

          1、ADC0808的簡(jiǎn)介

          A/D轉(zhuǎn)換器是一種能把輸入模擬電壓或者電流信息變成與其成正比的數(shù)字量信息的電路芯片。A/D轉(zhuǎn)換器用于實(shí)現(xiàn)模擬量到數(shù)字量的轉(zhuǎn)換。

          ADC0808是典型的8通道模擬輸入8位并行數(shù)字輸出的逐次逼近式A/D轉(zhuǎn)換器。該轉(zhuǎn)換器采用COMS工藝,可以實(shí)現(xiàn)8路模擬信號(hào)的分時(shí)采集。片內(nèi)有8路模擬選通開關(guān),以及相應(yīng)的通道地址鎖存用譯碼電路。

          1)ADC0808芯片的介紹



          2)ADC0808的引腳





          3)ADC0808的工作流程



          4)與51單片機(jī)的借口


          基本上也就這么點(diǎn)東西~~~很簡(jiǎn)單吧~~我感覺也是~~

          我艸,然我白白調(diào)了半天程序,就那么一點(diǎn)點(diǎn)的錯(cuò)誤,浪費(fèi)了好多的時(shí)間,真不爽啊~~~


          貼圖看看~~



          由于以后會(huì)用模塊化編程,便于自己以后直接調(diào)用~~~,這個(gè)主函數(shù):


          //------------------------------------------------------------------------------
          //實(shí)現(xiàn)由ADC0808作為A/D轉(zhuǎn)換器對(duì)電阻進(jìn)行電壓的測(cè)試
          //數(shù)碼管顯示的數(shù)據(jù)范圍為0~255
          #include"reg52.h"
          #include"macroandconst.h"
          #include"delay.h"
          #include"adc0808.h"
          //------------------------------------------------------------------------------
          uchar code seg_disp[4]={0x10,0x20,0x40,0x00};//LED顯示的控制代碼
          uchar count;//LED顯示位控制
          sbittem=P2^0;
          uchar temp_0=0;
          //------------------------------------------------------------------------------
          //定時(shí)器初始化函數(shù)
          void timer_init()
          {
          TMOD=0X12;//T0工作在模式2,T1工作在模式1
          TH0=(256-50)/256;
          TL0=TH0;
          TH1=(65536-4000)/256;
          TL1=(65536-4000)%6;

          ET0=1;
          ET1=1;
          TR0=1;
          TR1=1;
          //PT1=1;

          EA=1;
          }
          //------------------------------------------------------------------------------
          //main
          void main()
          {
          timer_init();
          while(1)
          {
          ADC0808_init();
          }
          }
          //------------------------------------------------------------------------------
          //timer0
          void timer0() interrupt 1
          {
          CLK=~CLK;
          if(temp_0==100)
          {
          temp_0=0;
          tem=~tem;
          }
          }
          //------------------------------------------------------------------------------
          //timer1
          void timer1() interrupt 3
          {
          TH1=(65536-4000)/256;
          TL1=(65536-4000)%6;
          for(count=0;count<4;count++)
          {
          P1=seg_disp[count]|display[count];
          delay(10);
          }
          }

          然后就是ADC0808的初始化函數(shù)了(一些輔助的函數(shù)我就不貼出來了,比如宏定義啊,軟件延時(shí)啊,引腳定義什么的~~):

          //------------------------------------------------------------------------------
          //adc0808的文件函數(shù)
          #include"reg52.h"
          #include"delay.h"
          #include"macroandconst.h"
          //------------------------------------------------------------------------------
          sbit START=P3^0; //轉(zhuǎn)換啟動(dòng)信號(hào)
          sbit OE=P3^1;//輸出允許信號(hào)
          sbit EOC=P3^2;//轉(zhuǎn)換結(jié)束狀態(tài)信號(hào)
          sbit CLK=P3^7;//時(shí)鐘信號(hào)輸入端,ADC0808內(nèi)部沒有時(shí)鐘電路,所需的時(shí)鐘信號(hào)由外部輸入,通常頻率為500KHz
          uchar get_data;//ADC0808轉(zhuǎn)換后的數(shù)值
          uchar temp;//用于存儲(chǔ)ADC0808轉(zhuǎn)換后處理過程中的臨時(shí)數(shù)值
          uchar display[3];//存儲(chǔ)十進(jìn)制的數(shù)值
          //------------------------------------------------------------------------------
          //ADC0808的啟動(dòng)和轉(zhuǎn)換的初始化函數(shù)
          void ADC0808_init()
          {
          START=0;//START信號(hào)上升沿,將所有內(nèi)部寄存器清0
          START=1;
          START=0;//START信號(hào)下降沿,開始A/D轉(zhuǎn)換,在轉(zhuǎn)換過程中START保持為低電平

          while(EOC==0);//等待轉(zhuǎn)換結(jié)束

          OE=1;//允許器件輸出轉(zhuǎn)換的結(jié)果

          get_data=P0;//P0口接ADC0808,你懂得~~
          temp=get_data;//暫存轉(zhuǎn)換結(jié)果

          OE=0;

          display[0]=get_data/100;//將轉(zhuǎn)換的結(jié)果轉(zhuǎn)換為10進(jìn)制數(shù)
          display[1]=get_data0/10;
          display[2]=get_data;
          }



          關(guān)鍵詞: 51單片機(jī)ADC080

          評(píng)論


          技術(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); })();