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

  • 3
  • 0
  • 约1.86千字
  • 约 20页
  • 2017-06-05 发布于重庆
  • 举报
5模数转换(ADC)的程序设计

AVR单片机编程 ——模数转换(ADC)的程序设计 主讲:梁莹林 机械电子工程学院 主要内容: ADC的原理及相关概念 ADC寄存器的设置 ADC采样与处理程序设计 ADC的原理及相关概念 采样――利用采样脉冲序列,从信号中抽取一系列 离散值,使之成为采样信号x(nTs)的过程. 编码――将经过量化的值变为二进制数字的过程。 量化――把采样信号经过舍入变为只有有限个有 效数字的数,这一过程称为量化. ADC的原理及相关概念 ADC的原理及相关概念 每周期应该有多少采样点 ? ADC的原理及相关概念 ADC的原理及相关概念 采样定理   为保证采样后信号能真实地保留原始模拟信号信息,信号采样频率必须至少为原信号中最高频率成分的2倍。这是采样的基本法则,称为采样定理。 Fs > 2 Fmax ADC的原理及相关概念 需注意,满足采样定理,只保证不发生频率混叠,而不能保证此时的采样信号能真实地反映原信号x(t)。工程实际中采样频率通常大于信号中最高频率成分的3到5倍。 ADC的原理及相关概念 A/D采样前的抗混迭滤波: ADC的原理及相关概念 AVR的片上ADC: 最高分辨率时,采样率高达15 kSPS 最高转换精度10位 ADC的原理及相关概念 VIN为被选中引脚的输入电压,VREF为参考电压。 0x000 代表模拟地电平 0x3FF 代表所选参考电压的数值减去1LSB。 转换结果: ADC寄存器的设置 ADC使用流程: 1、初始化相关寄存器 2、启动首次转换,丢弃首次结果 3、启动转换,并读取转换结果 4、数据滤波 5、进行单位制变换 ADC寄存器的设置 ADC多工选择寄存器ADMUX ADC控制和状态寄存器ADCSRA ADC数据寄存器(ADCL和ADCH) ADC寄存器的设置 Bit7:6 – REFS1:0 参考电压选择。 Bit5 – ADLAR ADC转换结果左对齐(=1) Bit4:0 – MUX4:0 模拟通道与增益选择位 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寄存器的设置 ADLAR = 0(右对齐): ADLAR = 1(左对齐): ADC 数据寄存器: ADC采样与处理程序设计 void ADCInit (INT8U vref, INT8U preScale) { DDRF=0x00; PORTF=0xFF; ADMUX = (vref 0x03) 6;//基准源选择 ADCSRA = (0x07preScale);//分频 } ADC初始化程序: 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使能程序: 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通道获取数据 ADC采样与处理程序设计 INT8U i; INT16U temp; for (i=0; i10; i++) //采集10次 { temp += ADCGet(0); } temp = temp/10;//求10次平均 数据处理程序:

文档评论(0)

1亿VIP精品文档

相关文档