ATmega16之AD转换与ADC中断程序

上传人:dja****22 文档编号:243074203 上传时间:2024-09-15 格式:PPT 页数:42 大小:269.50KB
返回 下载 相关 举报
ATmega16之AD转换与ADC中断程序_第1页
第1页 / 共42页
ATmega16之AD转换与ADC中断程序_第2页
第2页 / 共42页
ATmega16之AD转换与ADC中断程序_第3页
第3页 / 共42页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ATmega16,AD转换与ADC中断程序,ADC,1,2,ADC,的使用:与模数转换器有关的寄存器,ADC,通道选择寄存器(,ADMUX),ADC,通道选择寄存器用于选择需要进行模数转换的模拟通道。,ADC,控制和状态寄存器(,ADCSRA),ADC,控制和状态寄存器可以实现,ADC,的控制和状态显示。,ADC,数据寄存器(,ADCL,和,ADCH),ADC,数据寄存器存储模数转换后的数值,, 特定功能寄存器(,SFIOR),ADC,控制和状态寄存器可以实现,ADC,的控制和状态显示 。,3,模拟量测量,ADC,转换过程一般为:选择通道和转换频率启动转换转换结束检查读取转换数据。,4,ATmega16内部 ADC 特点,模拟噪声抑制技术,ADC 转换结果,ADC 及相关寄存器,ADC 中断程序,5,1,、,ATmega16,内部,ADC,特点,10,位精度,,逐次逼近型,ADC,65 - 260 s,的转换时间,最高分辨率时采样率高达,15 kSPS,8,路复用的单端输入通道,7,路差分输入通道,2,路可选增益为,10x,与,200x,的差分输入通道,6,1,、,ATmega16,内部,ADC,特点,可选的左对齐,ADC,读数,0 - VCC,的,ADC,输入电压范围,可选的,2.56V ADC,参考电压,连续转换或单次转换模式,通过自动触发中断源启动,ADC,转换,ADC,转换结束中断,基于睡眠模式的噪声抑制器,7,1,、,ATmega16,内部,ADC,特点,一个10位的逐次逼近型 ADC,与一个8通道的模拟多路复用器连接,能对来自端口 A 的8 路单端输入电压进行采样。,ADC 包括一个采样保持电路,ADC 由 AVCC 引脚单独提供电源。AVCC与VCC 之间的偏差不能超过 0.3V。,8,1,、,ATmega16,内部,ADC,特点,逐次逼近电路需要一个从 50 kHz 到 200 kHz 的输入时钟以获得最大精度(所需的转换精度低于10 比特时输入时钟频率可以高于 200 kHz),9,1,、,ATmega16,内部,ADC,特点,ADC 模块包括一个预分频器,可以由任何超过100 kHz 的 CPU 时钟来产生可接受的 ADC 时钟。预分频器通过 ADCSRA 寄存器的 ADPS 进行设置。置位 ADCSRA 寄存器的 ADEN 将使能ADC,预分频器开始计数。只要 ADEN 为1,预分频器就持续计数,直到 ADEN 清零。,10,1,、,ATmega16,内部,ADC,特点,ADCSRA 寄存器的 ADSC 置位后,单端转换在下一个 ADC 时钟周期的上升沿开始启动。,11,1,、,ATmega16,内部,ADC,特点,正常转换需要 13 个 ADC 时钟周期。为了初始化模拟电路,ADC 使能( ADCSRA 寄存器的 ADEN 置位) 后的第一次转换需要 25 个 ADC 时钟周期。,12,1、ATmega16内部ADC特点,13,2,、模拟噪声抑制技术,设备内部及外部的数字电路都会产生电磁干扰,(EMI),,从而影响模拟测量的精度。如果转换精度要求较高,那么可以通过以下方法来减少噪声:,- 1.,模拟通路越短越好。保证模拟信号线位于模拟地之上,并使它们与高速切换的数字信号线分开。,- 2. AVCC,应通过,LC,网络与数字电压源,VCC,连接。,- 3.,使用,ADC,噪声抑制器来降低来自,CPU,的干扰噪声。,- 4.,如果有其他,ADC,端口被用作数字输出,那么必须保证在转换进行过程中它们不会有电平的切换。,14,3、ADC转换结果,转换结束后( ADIF 为高 ),转换结果被存入ADC 结果寄存器( ADCL, ADCH )。,单次转换的结果如下( VIN 为被选中引脚的输入电压):,15,3,、,ADC,转换结果,如果使用差分通道,结果(用2 的补码形式表示):,16,3,、,ADC,转换结果,差分测量范围:,17,4,、,ADC,及相关寄存器,ADC 多工选择寄存器 ADMUX:,ADMUX,18,4,、,ADC,及相关寄存器,Bit 7:6 REFS1:0: 参考电压选择,REFS1,RESF0,参考电压选择,0,0,AREF,内部Vref关闭,0,1,AVCC,AREF引脚外加滤波电容,1,0,保留,1,1,2.56V片内基准电压源,AREF引脚外加滤波电容,ADMUX,19,4,、,ADC,及相关寄存器,Bit 7:6 REFS1:0:,参考电压选择,-,如果将一个固定电源接到,AREF,引脚,那么就不能选择其他的基准源,因为这会导致片内基准源与外部参考源的短路。如果,AREF,引脚没有联接任何外部参考源,则可以选择,AVCC,或,1.1V,作为基准源。参考源改变后的第一次,ADC,转换结果可能不准确,建议不要使用这一次的转换结果。,ADMUX,20,4,、,ADC,及相关寄存器,Bit 5 ADLAR: ADC,转换结果 左对齐,- ADLAR,影响,ADC,转换结果在,ADC,数据寄存器中的存放形式,ADLAR,置位时转换结果为左对齐,否则为右对齐,ADLAR,的改变将立即影响,ADC,数据寄存器的内容,不论是否有转换正在进行。,ADMUX,21,4,、,ADC,及相关寄存器,Bits 4:0 MUX4:0: 模拟通道与增益选择位,MUX4.MUX0,单端输入,00000,ADC0,00001,ADC1,00010,ADC2,00011,ADC3,00100,ADC4,00101,ADC5,00110,ADC6,00111,ADC7,详见ATmega16数据手册 Page204 Table84,ADMUX,22,4,、,ADC,及相关寄存器,ADC 控制和状态寄存器A ADCSRA:,ADCSRA,23,4,、,ADC,及相关寄存器,Bit 7 ADEN: ADC,使能,- ADEN,置位即启动,ADC,,否则,ADC,功能关闭。在转换过程中关闭,ADC,将立即中止正在进行的转换。,ADCSRA,24,4,、,ADC,及相关寄存器,Bit 6 ADSC: ADC,开始转换,-,在单次转换模式下,,ADSC,置位将启动一次,ADC,转换。在连续转换模式下,,ADSC,置位将启动首次转换。第一次转换,(,在,ADC,启动之后置位,ADSC,,或者在使能,ADC,的同时置位,ADSC ),需要,25,个,ADC,时钟周期,而不是正常情况下的,13,个。第一次转换执行,ADC,初始化的工作。,-,在转换进行过程中读取,ADSC,的返回值为,1”,,直到转换结束。,ADSC,清零不产生任何动作。,ADCSRA,25,4,、,ADC,及相关寄存器,Bit 5 ADATE: ADC,自动触发使能,- ADATE,置位将启动,ADC,自动触发功能。触发信号的上跳沿启动,ADC,转换。触发信号源通过,SFIOR,寄存器的,ADC,触发信号源选择位,ADTS,设置。,ADCSRA,26,4,、,ADC,及相关寄存器,Bit 4 ADIF: ADC,中断标志,-,在,ADC,转换结束,且数据寄存器被更新后,,ADIF,置位。如果,ADIE,及,SREG,中的全局中断使能位,I,也置位,,ADC,转换结束中断服务程序即得以执行,同时,ADIF,硬件清零。此外,还可以通过向此标志写,1,来清,ADIF,。要注意的是,如果对,ADCSRA,进行读修改写操作,那么待处理的中断会被禁止。,ADCSRA,27,4,、,ADC,及相关寄存器,Bit 3 ADIE: ADC,中断使能,-,若,ADIE,及,SREG,的位,I,置位,,ADC,转换结束中断即被使能。,ADCSRA,28,4,、,ADC,及相关寄存器,Bit 2:0 ADPS2:0: ADC,预分频器选择位,ADPS2,ADPS1,ADPS1,分频因子,0,0,0,2,0,0,1,2,0,1,0,4,0,1,1,8,1,0,0,16,1,0,1,32,1,1,0,64,1,1,1,128,ADCSRA,29,4,、,ADC,及相关寄存器,ADC 数据寄存器 ADCL 及 ADCH:,ADCL 及 ADCH,30,4,、,ADC,及相关寄存器,ADC 数据寄存器 ADCL 及 ADCH:,ADCL 及 ADCH,31,4,、,ADC,及相关寄存器,ADC,数据寄存器 ,ADCL,及,ADCH,:,-,读取,ADCL,之后,,ADC,数据寄存器一直要等到,ADCH,也被读出才可以进行数据更新。因此,如果转换结果为左对齐,且要求的精度不高于,8,比特,那么仅需读取,ADCH,就足够了。否则必须先读出,ADCL,再读,ADCH,。,ADCL 及 ADCH,32,4,、,ADC,及相关寄存器,特殊功能 IO 寄存器 SFIOR:,SFIOR,33,4,、,ADC,及相关寄存器,Bit 7:5 ADTS2:0: ADC,自动触发源,-,若,ADCSRA,寄存器的,ADATE,置位,,ADTS,的值将确定触发,ADC,转换的触发源;否则,,ADTS,的设置没有意义。被选中的中断标志在其上升沿触发,ADC,转换。从一个中断标志清零的触发源切换到中断标志置位的触发源会使触发信号产生一个上升沿。如果此时,ADCSRA,寄存器的,ADEN,为,1,,,ADC,转换即被启动。切换到连续运行模式,(ADTS2:0=0),时,即使,ADC,中断标志已经置位也不会产生触发事件。,SFIOR,34,4,、,ADC,及相关寄存器,Bit 7:5 ADTS2:0: ADC 自动触发源,ADTS2,ADTS1,ADTS0,触发源,0,0,0,连续转换模式,0,0,1,模拟比较器,0,1,0,外部中断请求 0,0,1,1,定时器/ 计数器0 比较匹配,1,0,0,定时器/ 计数器0 溢出,1,0,1,定时器/ 计数器比较匹配B,1,1,0,定时器/ 计数器1 溢出,1,1,1,定时器/ 计数器1 捕捉事件,SFIOR,35,4,、,ADC,及相关寄存器,Bit 4 Res:,保留位,-,这一位保留。为了与以后的器件相兼容,在写,SFIOR,时这一位应写,0,。,SFIOR,36,4,、,ADC,及相关寄存器,模拟比较器控制和状态寄存器 ,ACSR,- Bit 7 ACD:,模拟比较器禁用,ACD,置位时,模拟比较器的电源被切断。可以在任何时候设置此位来关掉模拟比较器。这可以减少器件工作模式及空闲模式下的功耗。改变,ACD,位时,必须清零,ACSR,寄存器的,ACIE,位来禁止模拟比较器中断。否则,ACD,改变时可能会产生中断。,SFIOR,37,4,、,ADC,及相关寄存器,中断寄存器 ,SREG,- Bit 7 I:,全局中断使能,I,置位时使能全局中断。单独的中断使能由其他独立的控制寄存器控制。如果,I,清零,则不论单独中断标志置位与否,都不会产生中断。任意一个中断发生后,I,清零,而执行,RETI,指令后,I,恢复置位以使能中断。,I,也可以通过,SEI,和,CLI,指令来置位和清零。,SFIOR,38,5,、,ADC,中断程序,“,#pragma interrupt_handler : ”,- ADC,转换结束中断向量为,15,-,中断向量表见,ATmega16,数据手册,Page43 Table18,39,信号滤波,在模拟量测量中,因为有噪声干扰和其它干扰,转换的数据会出现跳变,使显示的数据不稳定。为了消除干扰,在硬件通道中要加入滤波电路,在软件中需要采用滤波技术消除干扰。滤波的方法有很多,这里介绍两种常见的滤波方法。,40,平均滤波,:对一个参数进行连续的多次采样,然后取其平均值。因为是在很短的时间内进行的多次采样,对消除高频干扰是较有效的。,一阶滞后滤波,:设上个采样周期的测量结果为,Yn-1,,,本次转换值为,xn,,,滤波系数为,,0=1,本次的测量结果为,Yn,,,则,Yn=,Yn-1+,(1-),xn,。,越大,滤波作用越强。,41,量程变换,转换的数字与输入的被测量不同,如果直接显示转换值,将与被测量的信号对应不上,要进行量程变换。,例如:用某一通道测量温度,当温度为0时,其电压值为1,V;,温度为100时,电压值为5,V。,而通道经校准,在5,V,时的转换值为1000,1,V,时的转换值为200。为了准确的显示温度值,应按下式进行变换,Y=100*(X-200)/(1000-200),式中,,X,为,A/D,转换后的值,,Y,为显示值,上式按线性比例推算而出。,42,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!