在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STC單片機(jī)內(nèi)置ADC的使用方法

            STC單片機(jī)內(nèi)置ADC的使用方法

            作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò) 收藏
            STC系列單片機(jī)中的STC89LE516AD/X2提供了8路8位精度的高速A/D轉(zhuǎn)換器,位于P1口上,從而省去了片外ADC的麻煩。這8路ADC為電壓輸入型,可做按鍵掃描,電池電壓檢測(cè),頻譜檢測(cè)等。ADC轉(zhuǎn)換過(guò)程需要17個(gè)機(jī)器周期。通過(guò)對(duì)相關(guān)功能寄存器的適當(dāng)配置,就可以控制其工作。下面就對(duì)相關(guān)功能寄存器進(jìn)行介紹。

            A/D轉(zhuǎn)換寄存器總表:

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

            寄存器

            地址

            名稱

            7

            6

            5

            4

            3

            2

            1

            0

            初始初

            P1_ADC_EN

            97H

            允許P1.x

            成為A/D口

            P17

            P16

            P15

            P14

            P13

            P12

            P11

            P10

            0000

            0000

            ADC_

            CONTR

            C5H

            A/D轉(zhuǎn)換

            控制寄存器

            ADC_FLAG

            ADC_START

            CHS2

            CHS1

            CHS0

            xxx0

            0000

            ADC_DATA

            C6H

            A/D轉(zhuǎn)換

            結(jié)果寄存器

            0000

            0000

            (1) P1_ADC_EN:特殊功能寄存器

            P1.x作為A/D轉(zhuǎn)換輸入通道來(lái)用允許特殊功能寄存器。相應(yīng)位為“1”時(shí),對(duì)應(yīng)的P1.x口作為A/D轉(zhuǎn)換使用,內(nèi)部上拉電阻自動(dòng)斷開(kāi)。

            (2) ADC_CONTR:特殊功能寄存器

            CHS2/CHS1/CHS0是模擬輸入通道選擇,CHS2/CHS1/CHS0的取值如下表所示:

            CHS2

            CHS1

            CHS0

            模擬輸入通道選擇

            0

            0

            0

            選擇P1.0為A/D輸入

            0

            0

            1

            選擇P1.1為A/D輸入

            0

            1

            0

            選擇P1.2為A/D輸入

            0

            1

            1

            選擇P1.3為A/D輸入

            1

            0

            0

            選擇P1.4為A/D輸入

            1

            0

            1

            選擇P1.5為A/D輸入

            1

            1

            0

            選擇P1.6為A/D輸入

            1

            1

            1

            選擇P1.7為A/D輸入

            ADC_START是模擬/數(shù)字轉(zhuǎn)換(ADC)啟動(dòng)控制位,設(shè)置為1時(shí),開(kāi)始轉(zhuǎn)換。

            ADC_FLAG是模擬/數(shù)字轉(zhuǎn)換結(jié)束標(biāo)志位,當(dāng)A/D轉(zhuǎn)換完成后,ADC_FLAG=1。

            (3) ADC_DATA: A/D轉(zhuǎn)換結(jié)果特殊功能寄存器

            模擬/數(shù)字轉(zhuǎn)換結(jié)果計(jì)算公式為 結(jié)果=256×Vin/Vcc

            Vin是模擬輸入通道輸入電壓,Vcc為單片機(jī)實(shí)際工作電壓,用單片機(jī)工作電壓作為模擬參考電壓。

            內(nèi)置ADC的使用例程:

            STC_ADC.h:

            sfr P1_ADC_EN=0x97;

            sfr ADC_CONTR=0xc5;

            sfr ADC_DATA=0xc6;

            int GetAD(unsigned char channel)//channel為要取的通道號(hào)(0~7)

            {

            unsigned char AD_finished=0;

            ADC_DATA=0;

            ADC_CONTR=channel;

            ADC_CONTR|=0x08;

            while(!AD_finished)

            AD_finished=(ADC_CONTR&0x10);

            ADC_CONTR&=0xF7;

            return (ADC_DATA);

            }

            void AD_Init(unsigned char ADin)// ADC初始化,ADin為八位2進(jìn)制數(shù),分別對(duì)應(yīng)AD7~0,置1代表打開(kāi)此路

            {

            P1=P1|ADin;//要設(shè)置為A/D轉(zhuǎn)換的P1.x口,先設(shè)為高

            P1_ADC_EN=ADin;

            }

            _main.c:

            #include

            #include adc.h>

            /*

            -------------------------------------------------

            此程序用以說(shuō)明STC單片機(jī)ADC的使用方法

            -------------------------------------------------

            */

            void delay(unsigned time)

            {

            while(time--);

            }

            void main()

            {

            AD_Init(0x63);//0110,0011,要設(shè)置為A/D轉(zhuǎn)換的P1.x口,先設(shè)置為高

            //0110,0011,P1的P1.0,P1.1,P1.5,P1.6設(shè)置為A/D轉(zhuǎn)換輸入腳

            //斷開(kāi)P1.0,P1.1,P1.5,P1.6內(nèi)部上拉電阻

            while(1)

            {

            P2=GetAD(0);

            delay(10000);

            P2=GetAD(1);

            delay(10000);

            P2=GetAD(5);

            delay(10000);

            P2=GetAD(6);

            delay(10000);

            }

            }



            關(guān)鍵詞: STC單片機(jī)內(nèi)置AD

            評(píng)論


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

            關(guān)閉