5.模数转换(ADC)的程序设计.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR单片机编程 ——模数转换(ADC)的程序设计 主讲:梁莹林 机械电子工程学院 主要内容: ADC的原理及相关概念 ADC寄存器的设置 ADC采样与处理程序设计 ADC的原理及相关概念 ADC的原理及相关概念 ADC的原理及相关概念 ADC的原理及相关概念 ADC的原理及相关概念 ADC的原理及相关概念 ADC的原理及相关概念 ADC的原理及相关概念 ADC的原理及相关概念 ADC寄存器的设置 ADC寄存器的设置 ADC多工选择寄存器ADMUX ADC控制和状态寄存器ADCSRA ADC数据寄存器(ADCL和ADCH) ADC寄存器的设置 ADC寄存器的设置 Bit 7 – ADEN ADC使能 Bit 6 – ADSC ADC开始转换 Bit 5 – ADFR ADC连续转换选择(=1) Bit 4 – ADIF ADC中断标志 Bit 3 – ADIE ADC中断使能 Bits 2:0 – ADPS2:0 ADC预分频器选择位 ADC寄存器的设置 ADC采样与处理程序设计 ADC采样与处理程序设计 ADC采样与处理程序设计 ADC采样与处理程序设计 * * 采样――利用采样脉冲序列,从信号中抽取一系列 离散值,使之成为采样信号x(nTs)的过程. 编码――将经过量化的值变为二进制数字的过程。 量化――把采样信号经过舍入变为只有有限个有 效数字的数,这一过程称为量化. A/D转换 每周期应该有多少采样点 ? 最少2点: 采样定理   为保证采样后信号能真实地保留原始模拟信号信息,信号采样频率必须至少为原信号中最高频率成分的2倍。这是采样的基本法则,称为采样定理。(最好是10倍)!!!! Fs > 2 Fmax 需注意,满足采样定理,只保证不发生频率混叠,而不能保证此时的采样信号能真实地反映原信号x(t)。工程实际中采样频率通常大于信号中最高频率成分的3到5倍。 A/D采样前的抗混迭滤波: 物理信号 对象 传感器 电信号 放大调制 电信号 A/D 转换 数字信号 展开 低通滤波(0-Fs/2) 放大 AVR的片上ADC: 最高分辨率时,采样率高达15 kSPS 最高转换精度10位(把Vmax1024等分) VIN为被选中引脚的输入电压,VREF为参考电压。 0x000 代表模拟地电平 0x3FF 代表所选参考电压的数值减去1LSB。 转换结果: ADC使用流程: 1、初始化相关寄存器 2、启动首次转换,丢弃首次结果 3、启动转换,并读取转换结果 4、数据滤波 5、进行单位制变换 Bit7:6 – REFS1:0 参考电压选择。 Bit5 – ADLAR ADC转换结果左对齐(=1) Bit4:0 – MUX4:0 模拟通道与增益选择位 ADLAR = 0(右对齐): ADLAR = 1(左对齐): ADC 数据寄存器: void ADCInit (INT8U vref, INT8U preScale) { DDRF=0x00; PORTF=0xFF; ADMUX = (vref 0x03) 6;//基准源选择 ADCSRA = (0x07preScale);//分频 } ADC初始化程序: 相应端口一定要设置成输入 void ADCEn (void) { DDRF =0x00; PORTF =0x00; ADCSRA |= (1ADEN);//使能ADC ADCSRA |= (1ADSC);//启动ADC,转换一次 loop_until_bit_is_set(ADCSRA,ADIF);//等待AD转换结束 ADCSRA |= (1ADIF); } ADC使能程序: INT16U ADCGet (INT8U ch) { ADMUX = 0xE0;//屏蔽高三位 1110 0000 ADMUX |= ch; ADCSRA|=(1ADSC);//启动ADC; loop_until_bit_is_set(ADCSRA,ADIF);//等待AD转换结束 ADCSRA|=(1ADIF); return( ADC ); } 先切换通道,再转换 从指定ADC通道获取数据 *

文档评论(0)

霞霞147 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档