atmega48adc模数转换例子

atmega48adc模数转换例子

ID:20251921

大小:34.00 KB

页数:3页

时间:2018-10-11

atmega48adc模数转换例子_第1页
atmega48adc模数转换例子_第2页
atmega48adc模数转换例子_第3页
资源描述:

《atmega48adc模数转换例子》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ATMEGA48的ADC模数转换例子ATMEGA48的ADC模数转换例子作者:佚名    AVR单片机来源:不详    点击数:1401    更新时间:2007-8-11    //ADC结果由串口输出到电脑显示#include#include#includevoidmain(void){  //外部时钟7.3728MHz(请取消时钟8分频) //串口初始化,波特率9600Hz,8个数据位,1个停止位,无奇偶校验,无中断使能 UCSR0B=8; UCSR0C=6; UBRR0L=47; //********************

2、********************************************* ADMUX=96;                 //设置参考电压为AVCC,结构左对齐(就是8位精度) ADCSRA

3、=135;              //使能ADC,ADC时钟=系统时钟128分频 while(1) {   unsignedcharadc;   ADMUX=ADMUX&240

4、2;      //清除已选择的ADC通道,选择新的ADC通道(0-7)   ADCSRA

5、=64;             //启动单次ADC转换   while((ADCSRA&16)==0);

6、  //等待ADC转换结束   adc=ADCH;               //结果左对齐只需读取高8位数据   ADCSRA

7、=16;             //清除ADC转换结束标记   putchar(adc/100+48);    //从串口输出ADC的百位数   putchar(adc/10%10+48);  //从串口输出ADC的十位数   putchar(adc%10+48);     //从串口输出ADC的个位数   delay_ms(500);          //延时   putchar(13);            //回车   putchar(10); 

8、           //换行    }}我选用的是单通道输入模式,AD转换周期为208uS,固定对通道0进行采样。奇怪的是,输入电压为0,当参考电压选择内部或者外加的2.56V时,采样值在0x1f和0x1e之间波动,当参考电压选择AVCC5.0V时,采样值在0x0f、0x0e和0x10之间波动。也就是说,相当于单片机内部叠加了一个约70mv(2.56*31/1023)的偏置电压。而且这个偏置电压会随着输入电压的增大而减少,0v时大概为70mv,2V时大概为50mv。这个现象同时在Atmega8L和Atmega16L上出现。想了、试了很久都没解决,有点怀疑是我买的单片机本身有问题。我是采

9、用查询方式读取AD转换结果的,以下是我的程序,请各位大侠帮忙侃侃呀~~~voidadc_init(void){ADCSR=0x00;  ADMUX=0x40;ACSR  =0x80;ADCSR=0x86;}unsignedintReadADC(void){    unsignedchari=0;    CLI();         ADMUX&=0XF8;        ADCSR

10、=0x40;                          while(!(ADCSR&0x10));                 for(i=200;i>0;i--);    ADCSR

11、=0x10

12、;           //  i=ADCL;  //  i+=(unsignedint)ADCH<<8;    SEI();      returnADC;}答1:呵呵,终于找到原因了问题在于用做AD转换通道的IO要禁用内部上拉电阻,否则就会出现上述问题!!!另外,也要特别注意的是AD转换时钟不能太高,一般在50KHz~200KHz之间,否则AD转换结果会一直跳动,且不精确。答2:AVCC本来就是个很不稳定的源  拿AVCC来当基准,当然会跳!相关文章:步进电机的微步控制(也可以叫做细分)ATMEGA64串口下载上位机程序及BOOTLOAD程序笔记本上无并口时,怎么使用并口ISP?GC

13、CAVR和CodeVisionAVR编译实测对比[求助]一个外部中断问题(ATMEG)IAR的一次使用笔记,奇怪现象,仅作经验记录今天安装了cv的1248b的版本,程序优化做的很好2006年的最后一天怎么也的整个新版本progisp1.64痛恨ATMEL如何在ICCAVR中定义位变量?急哈~~全中国首发——USBAVRmkIILite,已正式发布!WINAVR出新版本了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。