微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC16F877的A/D模块

PIC16F877的A/D模块

时间:11-24 来源:互联网 点击:
模拟数字转换器(A/D)模块有多达8个模拟输入通道。模拟输入对一个采样保持电容器充电,采样保持电容的输出是A/D转换器的输入。A/D 转换器采用逐次逼近法将这一模拟电平产生数字转换结果,其转换结果为 10 位数字。模拟参考电压 ( 正电源电压和负电源电压 ) 可通过软件选择为器件的电源电压 (AVDD、AVss) 或者AN3/VREF+和AN2/VREF-引脚上的电平。A/D 转换器具备可在休眠状态下工作的独特特性。

结构框图如下:

操作步骤:

ADRESH:ADRESL寄存器中保存了A/D转换的10位结果。当A/D转换完成之后,转换结果被载入这一A/D结果寄存器对中,GO/DONE(ADCON0<2>)位被清零,且A/D中断标志位ADIF置1。当配置好A/D 模块后,在启动转换前必须先选择A/D转换的通道。模拟输入通道的相应TRIS位必须设置为输入。采集时间(acquisition time)的确定参见“A/D采集时间要求”小节。在这一采集时间过去之后,A/D转换即可开始。按照以下步骤进行A/D转换:
1. 配置A/D模块
• 对模拟引脚/参考电压/数字I/O(ADCON1)进行配置
• 选择A/D输入通道(ADCON0)
• 选择A/D转换时钟(ADCON0)
• 打开A/D转换模块(ADCON0)
2. 需要时,设置A/D中断
• 将ADIF位清零
• 将ADIE位置1
• 将GIE位置1
3.等待所需的采集时间
4.启动A/D转换
• 将GO/DONE置1(ADCON0)
5.等待A/D转换完成,通过以下两种方法之一可判断转换是否完成:
• 查询GO/DONE位是否被清零或ADIF位被置1;

• 等待A/D转换的中断。
6.读取A/D结果寄存器对(ADRESH:ADRESL),需要时将ADIF位清零。
7. 要再次进行A/D转换,根据要求转入步骤1或步骤2。
图 23-2 为 A/D转换顺序及所使用的术语。 采集时间是 A/D 模块的保持电容连接到外部电平的时间。随后是12TAD的转换时间,开始于GO位被置1。这两段时间的总和即采样时间(samplingtime)。为确保保持电容充电至适当电平以使A/D转换达到所需精度,应保证一个最小采集时间。

A/D转换时钟的选择
每一位的A/D 转换时间被定义为 TAD。每完成一次10位A/D转换需要11.5个 TAD。A/D转换的时钟可用软件进行选择,对于TAD可以有以下4种选择:
• 2Tosc
• 8Tosc
• 32Tosc
• A/D模块内部RC振荡器

与A/D有关的寄存器:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top