色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          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://cafeforensic.com/article/201611/316198.htm

          寄存器

          地址

          名稱(chēng)

          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ù)專(zhuān)區(qū)

          關(guān)閉