文档介绍:A\D 转换 A(analog ): 模拟量 D(digital): 数字量各个主讲有自己的理解?因为单片机在内部只会处理数字量,所以要把外部的模拟量转换成数字量。模拟量转成数字量的必要性模拟量采样输出数字量 A/D 转换器模拟量数字量 Vref TOP Vx 数字寄存器?? 10 位精度?? 8 路复用的单端输入通道?? 7 路差分输入通道?? 2 路可选增益为 10x 与 200x 的差分输入通道??可选的左右对齐 ADC 读数?? 0 - VCC 的 ADC 输入电压范围??可选的 ADC 参考电压??连续转换或单次转换模式??通过自动触发中断源启动 ADC 转换?? ADC 转换结束中断 ATmega16 中的模/数转换器? 10 位精度: 在 mega16 中的 AD 使用了 10 位的二进制数来表示输入电压的量化值,期中最小值为 0X000 ,最大值为 0X3FF 。数值的上限在 AD 中被称为”参考电压”。输入的电压应该在 0到参考电压之间。 8位复用的单端输入通道左对齐与右对齐 AD 转换的结果是 10 位二进制数, 8位寄存器不足以存储, 所以 AVR 使用了 ADCH 和 ADCL 两个寄存器来存储和表达。 Mega16 中的相关寄存器 ADC 多路复用选择器 ADMUX ?位 7:6 – REFS1:0: 参考电压选择如图所示,通过这几位可以选择参考电压。如果在转换过程中改变了它们的设置, 只有等到当前转换结束(ADCSRA 寄存器的 ADIF 置位) 之后改变才会起作用。如果在 AREF 引脚上施加了外部参考电压,内部参考电压就不能被选用了。?位 5 – ADLAR: ADC 转换结果左对齐 ADLAR 影响 ADC 转换结果在 ADC 数据寄存器中的存放形式。 ADLAR 置位时转换结果为左对齐,否则为右对齐。 ADLAR 的改变将立即影响 ADC 数据寄存器的内容,不论是否有转换正在进行。?位 4:0 – MUX3:0: 模拟通道选择位通过这几位的设置,可以对连接到 ADC 的模拟输入进行选择。细节见 Table100 。如果在转换过程中改变这几位的值,那么只有到转换结束(ADCSRA 寄存器的 ADIF 置位) 后新的设置才有效。 ADC 控制及状态寄存器 A-ADCSRA 主讲就带着看技术文档吧,我不粘贴了。 ADC 数据寄存器— ADCL 及 ADCH ADLAR = 0 ADLAR = 1 ?读取 ADCL 之后, ADC 数据寄存器一直要等到 ADCH 也被读出才可以进行数据更新。因此,如果转换结果为左对齐,且要求的精度不高于 8 比特,那么仅需读取 ADCH 就足够了。否则必须先读出 ADCL 再读 ADCH 。 ADCL 及 ADCH 的读取