您的位置 首页 观点

STC单片机内置ADC的使用方法

STC系列单片机中的STC89LE516AD/X2提供了8路8位精度的高速A/D转换器,位于P1口上,从而省去了片外ADC的麻烦。这8路ADC为电压输入型,可…

STC系列单片机中的STC89LE516AD/X2供给了8路8位精度的高速A/D转化器,坐落P1口上,然后省去了片外ADC的费事。这8路ADC为电压输入型,可做按键扫描,电池电压检测,频谱检测等。ADC转化进程需求17个机器周期。经过对相关功用寄存器的恰当装备,就可以操控其作业。下面就对相关功用寄存器进行介绍。

A/D转化寄存器总表:

寄存器

地址

称号

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转化

操控寄存器

ADC_FLAG

ADC_START

CHS2

CHS1

CHS0

xxx0

0000

ADC_DATA

C6H

A/D转化

成果寄存器

0000

0000

(1) P1_ADC_EN:特别功用寄存器

P1.x作为A/D转化输入通道来用答应特别功用寄存器。相应位为“1”时,对应的P1.x口作为A/D转化运用,内部上拉电阻主动断开。

(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是模仿/数字转化(ADC)发动操控位,设置为1时,开端转化。

ADC_FLAG是模仿/数字转化完毕标志位,当A/D转化完成后,ADC_FLAG=1。

(3) ADC_DATA: A/D转化成果特别功用寄存器

模仿/数字转化成果计算公式为 成果=256×Vin/Vcc

Vin是模仿输入通道输入电压,Vcc为单片机实际作业电压,用单片机作业电压作为模仿参阅电压。

内置ADC的运用例程:

STC_ADC.h:

sfr P1_ADC_EN=0x97;

sfr ADC_CONTR=0xc5;

sfr ADC_DATA=0xc6;

int GetAD(unsigned char channel)//channel为要取的通道号(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进制数,别离对应AD7~0,置1代表翻开此路

{

P1=P1|ADin;//要设置为A/D转化的P1.x口,先设为高

P1_ADC_EN=ADin;

}

_main.c:

#include

#include adc.h>

/*

————————————————-

此程序用以阐明STC单片机ADC的运用方法

————————————————-

*/

void delay(unsigned time)

{

while(time–);

}

void main()

{

AD_Init(0x63);//0110,0011,要设置为A/D转化的P1.x口,先设置为高

//0110,0011,P1的P1.0,P1.1,P1.5,P1.6设置为A/D转化输入脚

//断开P1.0,P1.1,P1.5,P1.6内部上拉电阻

while(1)

{

P2=GetAD(0);

delay(10000);

P2=GetAD(1);

delay(10000);

P2=GetAD(5);

delay(10000);

P2=GetAD(6);

delay(10000);

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/272493.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部