在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            51單片機—ADC0808—05—①

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

            畢竟ADC這個東西用的比較多,也很成熟,做出來的東西也是挺多的,所以這個東東就用兩三個實驗來敘述吧~

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

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

            1、ADC0808的簡介

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

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

            1)ADC0808芯片的介紹



            2)ADC0808的引腳





            3)ADC0808的工作流程



            4)與51單片機的借口


            基本上也就這么點東西~~~很簡單吧~~我感覺也是~~

            我艸,然我白白調(diào)了半天程序,就那么一點點的錯誤,浪費了好多的時間,真不爽啊~~~


            貼圖看看~~



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


            //------------------------------------------------------------------------------
            //實現(xiàn)由ADC0808作為A/D轉(zhuǎn)換器對電阻進(jìn)行電壓的測試
            //數(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ù)
            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ù)我就不貼出來了,比如宏定義啊,軟件延時啊,引腳定義什么的~~):

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

            評論


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

            關(guān)閉