AVRr单片机:第10章 模拟比较器和ADC接口_第1页
AVRr单片机:第10章 模拟比较器和ADC接口_第2页
AVRr单片机:第10章 模拟比较器和ADC接口_第3页
AVRr单片机:第10章 模拟比较器和ADC接口_第4页
AVRr单片机:第10章 模拟比较器和ADC接口_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、第 10章 模拟比较器和ADC接口10.1 模拟比较器ACBG=1时ACME=1且ADEN=0时10.1.1 与模拟比较器相关的寄存器和标志位(1) 1) 特殊功能 IO寄存器SFIOR 注:SFIOR寄存器只能字节寻址,不能位寻址。如要使位ACME=1,不能写成:SFIOR.3=1;应写成SFIOR=SFIOR|0X08; 原因是:在CVAVR中规定:I/O端口地址在00H1FH之间的寄存器才可以位寻址,大于1FH的寄存器只能进行字节寻址。(详见课本P38-39) 2) 模拟比较器控制和状态寄存器ACSR10.1.1 与模拟比较器相关的寄存器和标志位(2)10.1.1 与模拟比较器相关的寄存

2、器和标志位(3) 3)ADC 多路复用器选择寄存器ADMUX ADC 控制和状态寄存器 AADCSRA10.1.1 与模拟比较器相关的寄存器和标志位(4)10.1.2 模拟比较器的应用设计 例10.1 系统电源电压的监测例10.1 系统电源电压的监测#include void main(void) PORTB.2 = 1; /PB2 设置为输出,控制 LED DDRB.2 = 1; / 模拟比较器初始化 ACSR=0 x40; /允许模拟比较器,AIN0 设置为内部 Bandgap 参考电压 1.22V while (1) /循环检测 AC0 位 if (ACSR.5) PORTB.2 = 0

3、; / AIN0 AIN1,低电压报警 模拟比较器使用注意点 芯片 RESET后,模拟比较器为允许工作状态。如果系统中不使用模拟比较器功能,应将寄存器 ACSR 的ACD 位置 1,关闭模拟比较器,这样可以减少电源的消耗。 使用模拟比较器时,应注意比较器的两个输入端口 PB2、PB3 的设置。当 PB2/PB3作为模拟输入端使用时,PB2/PB3 应设置为输入工作方式,且上拉电阻无效,这样就不会使 PB2/PB3 上输入的模拟电压受到影响。 当 AIN0 设置为使用芯片内部 1.22V的固定能隙(Bandgap)参考电源时,PB2 口仍然可以作为通用 I/O端口使用,这样就能节省一个 I/O引

4、脚。例子(补充) 如图,R2,R3分压后作为模拟比较器的正输入端,模拟比较器的负输入端接至PA0,要求用中断实现:当比较器的输出电平变化时,D1取反。10.2 模数转换器ADC 10.2.1 10 位ADC结构10.2.2 ADC相关的I/O寄存器(1) 10.2.2 ADC相关的I/O寄存器(2)10.2.2 ADC相关的I/O寄存器(3)10.2.2 ADC相关的I/O寄存器(4)10.2.2 ADC相关的I/O寄存器(5)10.2.3 ADC应用设计要点(1) 1预分频与转换时间 在通常情况下,ADC 的逐次比较转换电路要达到最大精度时,需要 50kHz200kHz 之间的采样时钟。在要

5、求转换精度低于 10 位的情况下,ADC 的采样时钟可以高于 200kHz,以获得更高的采样率。10.2.3 ADC应用设计要点(2) AVR 的ADC 完成一次转换的时间见表 10-7。10.2.3 ADC应用设计要点(3) 2ADC 输入通道和参考电源的选择 在开始转换前改变通道设置。最简单的方法是等到转换完成后,再改变通道选择。 ADC 电压参考源 ADC 的参考电压(VREF)决定了 A/D 转换的范围。 无论选用什么内部参考电源,外部 AREF 引脚都是直接与 ADC相连的,因此,可以通过外部在 AREF 引脚和地之间并接一个电容,使内部参考电源更加稳定和抗噪。 如果将一个外部固定的

6、电压源连接到 AREF 引脚,那就不能使用任何的内部参考电源,否则就会使外部电压源短路。ADC 转换结果 A/D 转换结束后(ADIF = 1) ,在 ADC 数据寄存器(ADCL 和ADCH)中可以取得转换的结果。对于单端输入的 A/D 转换,其转换结果为: ADC =(VIN1024)/ VREF 其中 VIN 表示选定的输入引脚上的电压,VREF 表示选定的参考电源的电压。0 x000 表示输入引脚的电压为模拟地,0 x3FF 表示输入引脚的电压为参考电压值减去一个 LSB。 对于差分转换,其结果为(ADC结果为补码形式): ADC=(VPOS-VNEG) GAIN512/VREF X原

7、=X补补,真值为原码按权展开。例题1(单次触发-查询) 如图,VREF=5V(AVCC),05V的模拟电压从PA0输入,A/D转换后的10位结果从高到低由PD1,PD0,PC7PC0输出。系统时钟采用片内的4MHZ时钟。例题2(单次触发-中断) 如图,VREF=5V(AVCC),05V的模拟电压从PA7输入,A/D转换后的10位结果从高到低由PD1,PD0,PC7PC0输出。系统时钟采用片外的16MHZ晶体。例题3(自动触发-连续转换模式-中断) 如图,VREF=5V(AVCC),05V的模拟电压从PA0输入,A/D转换后的10位结果从高到低由PD1,PD0,PC7PC0输出。系统时钟采用片外

8、的16MHZ晶体。例题4(自动触发-外部中断0触发) 如图,VREF=5V,05V的模拟电压从PA0输入,A/D转换后的10位结果从高到低由PD1,PD0,PC7PC0输出。系统时钟采用片外的16MHZ晶体。要求按一次按钮,PB7上的LED灯取反,且A/D转换一次。例题5(自动触发-T/C0比较匹配(2ms)触发 ) 课本例10.3 简易电压表的设计与实现例 10.3 简易电压表的实际与实现#include flash unsigned char led_710=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F;flash

9、unsigned char position4=0 xfe,0 xfd,0 xfb,0 xf7;unsigned char a,b;unsigned char dis_buff4=0,0,0,0,posit;bit time_2ms_ok;/ ADC电压值送显示缓冲区函数void adc_to_disbuffer(unsigned int adc)unsigned char i;for (i=0;i=4 ) posit = 0;void main(void)DDRA=0 x0f;PORTA=0 x0f;DDRC=0 xff; / LED显示控制I/O端口初始化PORTC=0 x00;/ T/C

10、0 初始化TCCR0=0 x0B; / 内部时钟,64分频(4M/64=62.5KHz),CTC模式TCNT0=0 x00; OCR0=0 x7C; / OCR0 = 0 x7C(124),(124+1)/62.5=2msTIMSK=0 x02; / 允许T/C0比较中断 / ADC 初始化 ADMUX=0 x47; / 参考电源AVcc、ADC7单端输入 SFIOR&=0 x1F; SFIOR|=0 x60; / 选择T/C0比较匹配中断为ADC触发源 ADCSRA=0 xAD; / ADC允许、自动触发转换、ADC转换中断允许、 ADCclk=125Kz #asm(sei) / 开

11、放全局中断 while (1) if (time_2ms_ok) display(); / LED扫描显示 time_2ms_ok = 0; 10.2.5 ADC的应用设计的深入讨论(1) 1AVcc 的稳定性。 2参考电压VREF的选择确定 3. ADC 通道带宽和输入阻抗 1)、在单端 ADC转换方式时,ADC 通道的输入频率带宽取决于 ADC 转换时钟频率。2)、差分方式 ADC 转换的带宽是由芯片内部的差分放大器的带宽决定,为 4KHz。3)、AVR 的ADC 输入阻抗典型值为 100M。10.2.5 ADC的应用设计的深入讨论(2) 4. ADC 采样时钟的选择 设被测模拟信号的最高频率 fs,则ADC采样时钟的频率为: fADC=fs*(410)*13 为了保证转换精度,fAD

温馨提示

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

评论

0/150

提交评论