- 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)