当前位置:首页 > 技术学院 > 技术前线
[导读]STC系列单片机中的STC89LE516AD/X2提供了8路8位精度的高速A/D转换器,位于P1口上,从而省去了片外ADC的麻烦。这8路ADC为电压输入型,可做按键扫描,电池电压检测,频谱检测等。ADC转换过程需要17个机器周期。通过对相关功能寄存器的适当配置,就可以控制其工作。下面就对相关功能寄存器进行介绍。

A/D转换寄存器总表:


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

P1.x作为A/D转换输入通道来用允许特殊功能寄存器。相应位为“1”时,对应的P1.x口作为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

/*

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

此程序用以说明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);

}

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Intel公司1980年推出了MCS-51系列单片机:集成 8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。 80C5...

关键字: C51 KEIL 编程

c上标3下标5怎么算用计算机,c上标3下标5怎么算

关键字: C51 KEIL

keil uvision2 C51软件我们在前面有所介绍,是目前功能最强大的单片机c语言集成开发环境

关键字: keil c51 使用 C

Keil C51是美国Keil软件公司(现已被ARM公司收购)出品的支持8051系列单片机架构的一款IDE(集成开发环境)。 Keil C51是一款经典的、功能强大的、适用宽广的集成开发环境,是业界知名度、口碑比较好的...

关键字: keil c51 安装 C

AD18使用的简单介绍,添加库,添加PCB封装库,快速添加引脚,绘制器件

关键字: ad pcb封装库

首先,我是只是一个大学应届毕业生,本人也是因为参加了挑战杯这个项目,所学也专业包涵单片机内容,所以才开始我的ZigBee之旅,写了2个月左右,项目的基本要求大致是达到了。写这篇博客主要是总结这2个月所学的知识,供大家学习...

关键字: cc2530 开发 C

2.4G通讯 我的nrf24l01之行之CC2530 zigbee无线串口模块的霸气

关键字: cc2530 无线通信 C 编程

STC90C52RC系列单片机是宏晶科技推出的一款高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统的8051单片机,12时钟/机器周期和6时钟/机器周期任意选择,并且内部集成了MAX810专用复位电路。STC90C...

关键字: stc90c52 编程 C

GD32F405系列互联型产品采用全新工艺制程设计,整合了强大的运算效能和丰富的外设接口。处理器主频可达168MHz,并提供了完整的DSP指令集,并行计算能力和专用浮点运算单元(FPU)。

关键字: gd32f405rgt6 C KEIL

有关GD32F450的以太网半双工调试经历

关键字: gd32f450 C 编程
关闭
关闭