ATmega16之AD转换与ADC中断程序 (2)_第1页
ATmega16之AD转换与ADC中断程序 (2)_第2页
ATmega16之AD转换与ADC中断程序 (2)_第3页
ATmega16之AD转换与ADC中断程序 (2)_第4页
ATmega16之AD转换与ADC中断程序 (2)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1ATmega16AD转换与ADC中断程序ADC23ADC的使用:与模数转换器有关的寄存器 ADC通道选择寄存器(ADMUX) ADC通道选择寄存器用于选择需要进行模数转换的模拟通道。 ADC控制和状态寄存器(ADCSRA) ADC控制和状态寄存器可以实现ADC的控制和状态显示。 ADC数据寄存器(ADCL和ADCH) ADC数据寄存器存储模数转换后的数值, 特定功能寄存器(SFIOR) ADC控制和状态寄存器可以实现ADC的控制和状态显示 。4模拟量测量 ADC转换过程一般为:选择通道和转换频率启动转换转换结束检查读取转换数据。5 ATmega16内部 ADC 特点 模拟噪声抑制技术 ADC

2、 转换结果 ADC 及相关寄存器 ADC 中断程序61、ATmega16内部ADC特点 10 位精度,逐次逼近型 ADC 65 - 260 s 的转换时间 最高分辨率时采样率高达 15 kSPS 8 路复用的单端输入通道 7 路差分输入通道 2 路可选增益为 10 x 与 200 x 的差分输入通道71、ATmega16内部ADC特点 可选的左对齐 ADC 读数 0 - VCC 的 ADC 输入电压范围 可选的 2.56V ADC 参考电压 连续转换或单次转换模式 通过自动触发中断源启动 ADC 转换 ADC 转换结束中断 基于睡眠模式的噪声抑制器81、ATmega16内部ADC特点 一个10

3、位的逐次逼近型 ADC,与一个8通道的模拟多路复用器连接,能对来自端口 A 的8 路单端输入电压进行采样。 ADC 包括一个采样保持电路 ADC 由 AVCC 引脚单独提供电源。AVCC与VCC 之间的偏差不能超过 0.3V。91、ATmega16内部ADC特点 逐次逼近电路需要一个从 50 kHz 到 200 kHz 的输入时钟以获得最大精度(所需的转换精度低于10 比特时输入时钟频率可以高于 200 kHz)101、ATmega16内部ADC特点 ADC 模块包括一个预分频器,可以由任何超过100 kHz 的 CPU 时钟来产生可接受的 ADC 时钟。预分频器通过 ADCSRA 寄存器的

4、ADPS 进行设置。置位 ADCSRA 寄存器的 ADEN 将使能ADC,预分频器开始计数。只要 ADEN 为1,预分频器就持续计数,直到 ADEN 清零。111、ATmega16内部ADC特点 ADCSRA 寄存器的 ADSC 置位后,单端转换在下一个 ADC 时钟周期的上升沿开始启动。121、ATmega16内部ADC特点 正常转换需要 13 个 ADC 时钟周期。为了初始化模拟电路,ADC 使能( ADCSRA 寄存器的 ADEN 置位) 后的第一次转换需要 25 个 ADC 时钟周期。131、ATmega16内部ADC特点142、模拟噪声抑制技术 设备内部及外部的数字电路都会产生电磁干

5、扰(EMI),从而影响模拟测量的精度。如果转换精度要求较高,那么可以通过以下方法来减少噪声:- 1. 模拟通路越短越好。保证模拟信号线位于模拟地之上,并使它们与高速切换的数字信号线分开。- 2. AVCC 应通过 LC 网络与数字电压源 VCC 连接。- 3. 使用 ADC 噪声抑制器来降低来自 CPU 的干扰噪声。- 4. 如果有其他 ADC 端口被用作数字输出,那么必须保证在转换进行过程中它们不会有电平的切换。153、ADC转换结果 转换结束后( ADIF 为高 ),转换结果被存入ADC 结果寄存器( ADCL, ADCH )。 单次转换的结果如下( VIN 为被选中引脚的输入电压):16

6、3、ADC转换结果 如果使用差分通道,结果(用2 的补码形式表示):173、ADC转换结果 差分测量范围:184、ADC及相关寄存器 ADC 多工选择寄存器 ADMUX:ADMUX194、ADC及相关寄存器 Bit 7:6 REFS1:0: 参考电压选择REFS1RESF0参考电压选择参考电压选择00AREF,内部Vref关闭01AVCC,AREF引脚外加滤波电容10保留112.56V片内基准电压源,AREF引脚外加滤波电容ADMUX204、ADC及相关寄存器 Bit 7:6 REFS1:0: 参考电压选择- 如果将一个固定电源接到 AREF 引脚,那么就不能选择其他的基准源,因为这会导致片内

7、基准源与外部参考源的短路。如果 AREF 引脚没有联接任何外部参考源,则可以选择 AVCC 或1.1V 作为基准源。参考源改变后的第一次 ADC 转换结果可能不准确,建议不要使用这一次的转换结果。ADMUX214、ADC及相关寄存器 Bit 5 ADLAR: ADC 转换结果 左对齐- ADLAR 影响 ADC 转换结果在 ADC 数据寄存器中的存放形式ADLAR 置位时转换结果为左对齐,否则为右对齐 ADLAR 的改变将立即影响 ADC 数据寄存器的内容,不论是否有转换正在进行。ADMUX224、ADC及相关寄存器 Bits 4:0 MUX4:0: 模拟通道与增益选择位MUX4.MUX0单端

8、输入单端输入00000ADC000001ADC100010ADC200011ADC300100ADC400101ADC500110ADC600111ADC7详见ATmega16数据手册 Page204 Table84ADMUX234、ADC及相关寄存器 ADC 控制和状态寄存器A ADCSRA:ADCSRA244、ADC及相关寄存器 Bit 7 ADEN: ADC 使能- ADEN 置位即启动 ADC,否则 ADC 功能关闭。在转换过程中关闭 ADC 将立即中止正在进行的转换。ADCSRA254、ADC及相关寄存器 Bit 6 ADSC: ADC 开始转换- 在单次转换模式下,ADSC 置位将

9、启动一次 ADC 转换。在连续转换模式下,ADSC 置位将启动首次转换。第一次转换( 在 ADC 启动之后置位 ADSC,或者在使能 ADC 的同时置位 ADSC ) 需要 25 个ADC 时钟周期,而不是正常情况下的 13 个。第一次转换执行 ADC初始化的工作。- 在转换进行过程中读取 ADSC 的返回值为 1”,直到转换结束。ADSC 清零不产生任何动作。ADCSRA264、ADC及相关寄存器 Bit 5 ADATE: ADC 自动触发使能- ADATE 置位将启动 ADC 自动触发功能。触发信号的上跳沿启动ADC转换。触发信号源通过 SFIOR 寄存器的 ADC 触发信号源选择位 AD

10、TS 设置。ADCSRA274、ADC及相关寄存器 Bit 4 ADIF: ADC 中断标志 - 在 ADC 转换结束,且数据寄存器被更新后,ADIF 置位。如果ADIE 及 SREG 中的全局中断使能位 I 也置位,ADC 转换结束中断服务程序即得以执行,同时 ADIF 硬件清零。此外,还可以通过向此标志写1 来清 ADIF。要注意的是,如果对 ADCSRA 进行读修改写操作,那么待处理的中断会被禁止。ADCSRA284、ADC及相关寄存器 Bit 3 ADIE: ADC 中断使能 - 若 ADIE 及 SREG 的位 I 置位, ADC 转换结束中断即被使能。ADCSRA294、ADC及相

11、关寄存器 Bit 2:0 ADPS2:0: ADC 预分频器选择位 ADPS2ADPS1ADPS1分频因子分频因子0002001201040118100161013211064111128ADCSRA304、ADC及相关寄存器 ADC 数据寄存器 ADCL 及 ADCH:ADCL 及 ADCH314、ADC及相关寄存器 ADC 数据寄存器 ADCL 及 ADCH:ADCL 及 ADCH324、ADC及相关寄存器 ADC 数据寄存器 ADCL 及 ADCH:- 读取 ADCL 之后,ADC 数据寄存器一直要等到 ADCH 也被读出才可以进行数据更新。因此,如果转换结果为左对齐,且要求的精度不高于

12、 8 比特,那么仅需读取 ADCH 就足够了。否则必须先读出ADCL 再读 ADCH。ADCL 及 ADCH334、ADC及相关寄存器 特殊功能 IO 寄存器 SFIOR:SFIOR344、ADC及相关寄存器 Bit 7:5 ADTS2:0: ADC 自动触发源- 若 ADCSRA 寄存器的 ADATE 置位,ADTS 的值将确定触发 ADC 转换的触发源;否则,ADTS 的设置没有意义。被选中的中断标志在其上升沿触发 ADC 转换。从一个中断标志清零的触发源切换到中断标志置位的触发源会使触发信号产生一个上升沿。如果此时ADCSRA 寄存器的 ADEN 为 1,ADC 转换即被启动。切换到连续

13、运行模式(ADTS2:0=0)时,即使 ADC 中断标志已经置位也不会产生触发事件。SFIOR354、ADC及相关寄存器 Bit 7:5 ADTS2:0: ADC 自动触发源ADTS2ADTS1ADTS0触发源触发源000连续转换模式001模拟比较器010外部中断请求 0011定时器/ 计数器0 比较匹配100定时器/ 计数器0 溢出101定时器/ 计数器比较匹配B110定时器/ 计数器1 溢出111定时器/ 计数器1 捕捉事件SFIOR364、ADC及相关寄存器 Bit 4 Res: 保留位- 这一位保留。为了与以后的器件相兼容,在写 SFIOR 时这一位应写0。SFIOR374、ADC及相

14、关寄存器 模拟比较器控制和状态寄存器 ACSR- Bit 7 ACD: 模拟比较器禁用ACD 置位时,模拟比较器的电源被切断。可以在任何时候设置此位来关掉模拟比较器。这可以减少器件工作模式及空闲模式下的功耗。改变 ACD 位时,必须清零 ACSR 寄存器的 ACIE 位来禁止模拟比较器中断。否则 ACD 改变时可能会产生中断。SFIOR384、ADC及相关寄存器 中断寄存器 SREG- Bit 7 I: 全局中断使能I 置位时使能全局中断。单独的中断使能由其他独立的控制寄存器控制。如果 I 清零,则不论单独中断标志置位与否,都不会产生中断。任意一个中断发生后 I 清零,而执行 RETI 指令后 I 恢复置位以使能中断。I 也可以通过 SEI 和 CLI 指令来置位和清零。SFIOR395、ADC中断程序 “#pragma interrupt_handler : ”- ADC 转换结束中断向量为 15- 中断向量表见 ATmega16 数据手册 Page43 Table1840信号滤波 在模拟量测量中,因为有噪声干扰和其它干扰,转换的数据会出现跳变,使显示的数据不稳定。为了消除干扰,在硬件通道中要加入滤波电路,在软件中需要采用滤波技

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论