文档详情

第6章ATmega单片机的模拟接口及使用方法讲义.ppt

发布:2017-04-21约4.9千字共48页下载文档
文本预览下载声明
第6章 ATmega单片机的 模拟接口及使用方法  ;6.1模拟比较器 模拟比较器对正极AIN0 的值与负极AIN1 的值进行比较。当AIN0 上的电压比负极AIN1上的电压要高时,模拟比较器的输出ACO 即置位。 比较器的输出可用来触发定时器/ 计数器1 的输入捕捉功能。 此外,比较器还可触发自己专有的、独立的中断。用户可以选择比较器是以上升沿、下降沿还是交替变化的边沿来触发中断。 中断向量:ANA_COMP_vect;图6.1为比较器及其外围逻辑电路的框图。;1、特殊功能IO寄存器-SFIOR;2、模拟比较器控制和状态寄存器(ACSR);需要改变ACIS1/ACIS0 时,必须清零ACSR 寄存器的中断使能位来禁止模拟比较器中断。否则有可能在改变这两位时产生中断。;模拟比较器的应用举例;#include “avr/io.h” int main() {unsigned char mid; //定义变量 DDRD = 0xff; //设置PC口为输出 PORTD = 0xff; //设置PC口为输出为高电平(LED熄灭) ACSR = 0x00; //启动模拟比较器 while(1) { mid = ACSR 0x20; //读出模拟比较器的输出值 if( mid == 0 ) // 输出1 熄灭LED PORTD=1; else PORTD=0; // 输出0 点亮LED } };6.2 模数转换器 6.2.1 主要特点 ATmega16有一个10位的逐次逼近型ADC。 ADC与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。 器件还支持16 路差分电压输入组合。两路差分输入(ADC1、ADC0 与ADC3、ADC2)有可编程增益级,在A/D 转换前给差分输入电压提供0dB(1x)、20dB(10x) 或46dB(200x)的放大级。;  七路差分模拟输入通道共享一个通用负端(ADC1), 而其他任何ADC 输入可做为正输入端。如果使用1x 或10x 增益,可得到8 位分辨率。如果使用200x 增益,可得到7 位分辨率。 ADC 包括一个采样保持电路,以确保在转换过程中输入到ADC 的电压保持恒定。  ADC 由AVCC 引脚单独提供电源。AVCC 与VCC 之间的偏差不能超过± 0.3V。 标称值为2.56V 的基准电压,以及AVCC,都位于器件之内。基准电压可以通过在AREF引脚上加一个电容进行解耦,以更好地抑制噪声。;图6.2 模数转换器方框图;6.2.2 ADC的工作原理 ADC 通过逐次逼近的方法将输入的模拟电压转换成一个10 位的数字量。 最小值代表GND,最大值代表AREF引脚上的电压再减去1 LSB。 通过写ADMUX寄存器的REFSn位可以把AVCC 或内部2.56V 的参考电压连接到AREF 引脚。 在AREF 上外加电容可以对片内参考电压进行解耦以提高噪声抑制性能。;;图6.3 ADC 自动触发逻辑;使用ADC 中断标志作为触发源,可以在正在进行的转换结束后即开始下一次ADC 转换。之后ADC 便工作在连续转换模式,持续地进行采样并对ADC 数据寄存器进行更新。第一次转换通过向ADCSRA 寄存器的ADSC 写1 来启动。 如果使能了自动触发,置位ADCSRA 寄存器的ADSC 将启动单次转换。ADSC 标志还可用来检测转换是否在进行之中。不论转换是如何启动的,在转换进行过程中ADSC 一直为1。;6.2.4 预分频及ADC 转换时序;图6.5 ADC 时序图, 第一次转换( 单次转换模式);图6.6 ADC 时序图,单次转换;图6.7 ADC 时序图,自动触发的转换;图6.8 ADC 时序图,连续转换;表6.3 ADC转换时间;6.2.7 ADC 输入通道 选择模拟通道时请注意以下几个方面: 单次转换模式,总是在启动转换之前选定通道。在ADSC 置位后的一个ADC 时钟周期就可以选择新的模拟输入通道了。但是最简单的办法是等待转换结束后再改变通道。 在连续转换模式下,切换通道的方法同单次模式,若转换结束后再改变通道,此时新一次转换已经自动开始了,下一次的转换结果反映的是以前选定的模拟输入通道。以后的转换才是针对新通道的。 若切换到差分增益通道,由于自动偏移抵消电路需要沉积时间,第一次转换结果准确率很低,最好舍弃。;6.2.8 ADC 基准电压源 ADC参考电压源(VREF)反映了ADC的转换范围。若单端通道电平超过了VREF
显示全部
相似文档