程序代码: /* 程序功能:用单片机内部AD实现外部电压转换为数字信号 作者:朱波 时间:2012年1月14日 AD工作流程:1.配置引脚为不带上拉电阻的输入 2.进行ADC多工选择寄存器(ADMUX)的设置(参考电压的选择和输入通道、增益的选择) 3.进行ADC控制和状态寄存器A(ADCSRA) 的设置(使能AD) 4.进行ADC控制和状态寄存器A(ADCSRA) 的设置(启动AD) 5.进行查询设置(转换完成后跳出循环) 6.进行ADC数据寄存器(ADCL、ADCH)的设置 7.返回AD转换结果 完整程序源代码下载:http://www.51hei.com/f/hdjz.rar 滑动窗口均值滤波函数应用的注意事项: Aver_Voltage(mega16_ad())函数的应用和 #define ADC_BUFF_SIZE_BIT_COUNT 5 #define ADC_BUFF_SIZE (1< #include关键字:滑动窗口 均值滤波 avr单片机 AD转换#define uchar unsigned char #define uint unsigned int #define ADC_BUFF_SIZE_BIT_COUNT 6 #define ADC_BUFF_SIZE (1<>ADC_BUFF_SIZE_BIT_COUNT;//用移位的方式做除法,计算平均值 s_cBufferCounter++; if(s_cBufferCounter==ADC_BUFF_SIZE) s_cBufferCounter=0; return Aver_Volt; } void main() { uint ada,i,ad[4]; while(1) { //ada=mega16_ad(); Aver_Voltage(mega16_ad()); for(i=0;i<4;i++) { ad[3-i]=Aver_Volt%10; Aver_Volt=Aver_Volt/10; } for(i=0;i<4;i++) { show(ad[i],i); delay(2); } } }
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』