为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

AVR事无巨细系列十,片内ADC

2012-04-26 7页 pdf 302KB 186阅读

用户头像

is_306619

暂无简介

举报
AVR事无巨细系列十,片内ADC 事无巨细,AVR学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG ADC上阵 E-mail:Losingamong@qq.com 事无巨细,ADC上阵 元器件明天就应该补齐了,到时候板上剩下的大部分资源就可以启用了,活活。今天还 是要挖掘挖掘可用的资源吧。 今天来讲讲 AVR单片机的片内 ADC的使用方法。比较简单,希望很快完成...
AVR事无巨细系列十,片内ADC
事无巨细,AVR学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG ADC上阵 E-mail:Losingamong@qq.com 事无巨细,ADC上阵 元器件明天就应该补齐了,到时候板上剩下的大部分资源就可以启用了,活活。今天还 是要挖掘挖掘可用的资源吧。 今天来讲讲 AVR单片机的片内 ADC的使用方法。比较简单,希望很快完成。 先看看什么是 ADC: ADC,英文全称为 Analog Digital Converter,即模拟数字转换器,可以将连续的模 拟量通过取样转换成离散的数字量。 那什么是模拟量呢:在时间上或数值上都是连续的物理量称为模拟量,比如温度, 电压,电流,气压,它们都是连续变化的,在波形上都是一条平滑的曲线。 所以对 ADC 通俗的理解则是:用数字来达模拟量的大小。 ADC 现在已经被大量应用于日常生活中了,常见的数字式电子产品诸如 MP3,数 码相机,高清电视,还有你看这篇文章时正在使用的个人电脑,都不可能摆脱的了 ADC 的身影。各位对 ADC 的理解,ADC 之于行业的意义,相信会在生产生活中逐渐得到全 面的体会的。 AVR 单片机,相比于 8 位单片机市场的老大——51 单片机来说,内部集成了 10 位精度的 ADC,不得不说这是一个巨大的优势。首先 ADC 是模拟器件,容易受到干扰, 集成在片内,干扰问题得到了很好的解决。其次,节省了外围电路,也大大降低了成 本,电路也因此变得简易,要知道一片低级的 ADC 就差不多顶一片 51 或者 AT MEGA16 了。况且 10 位的精度,足够应付大部分要求不高的工作场合了。 现在我说说 ADC 转换器的一些关键参数: 参考电压,关于参考电压,要记住以下几点点: 1、提供 ADC 转换的分辨率,具体见转换精度的说明。 2、参考电压直接影响 ADC 的转换精度,所以要十分准确。 3、输入电压大于参考电压的规定值,转换量程仍为参考电压最大值,但是应该 尽量避免这种情况,否则会产生未知的危险,甚至烧毁单片机。 4、参考电压(有的 ADC 芯片是参考电压的数倍)代表 ADC 输入电压的最大值。 转换精度:也称最小分辨率,精度是指 ADC 将模拟量转换之后的最小变化量。比 如 10 位精度 ADC,参考电压为 5V,转换结果位 10 位二进制数。它的转换精度则为 5/(2 Bb s . Ce p a r k. co m 事无巨细,AVR学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG ADC上阵 E-mail:Losingamong@qq.com 的 10 次方)=4.88mv。表示转换后数字量每±1,则表示模拟量有±4.88mv 的变化。 转换时间:衡量 ADC 性能的一个重要指标,即 ADC 完成一次转换所需要的时间, ADC 的工作时钟频率越高,转换越快。(当然高速的 AD 价格可以是很贵的) AVR 片内的 AD,可通过设置分别使用不同的参考电压,转换方式,时钟频率以及 单路或差分输入通道,可以将差分信号放大。应该说功能还是比较全面的。 注:差分信号,即两个有一定差值的信号,将差分信号放大即是将此差值进行放 大。 现在可以看看 AVR 单片机的各个寄存器的关键位,我们就是通过操作这些寄存器 来设置 AVR 片内 AD 的工作方式的: ADMUX 寄存器: REFS1、REFS0:ADC 参考电压选择位; ADLAR:ADC 转换结果对齐选择位; MUX4~MUX0:输入通道选择位,包括差分信号的输入。 ADCSRA 寄存器: ADEN:ADC 转换使能位,该位置“1”时,ADC 可以启用。 ADSC:ADC 转换开始位,该位置“1”时,转换启动。 ADATE:ADC 自带转换触发允许,即该位置“1”时,ADC 在设定工作方式下连续 转换,而不是单次转换。 ADIE:ADC 中断允许为,ADC 一次转换完成后,将该位置“1”,在全局中断允许 的前提下,可触发 ADC 中断。 ADCL 和 ADCH 寄存器:存放 ADC 转换结果。 SFIOR 寄存器: ADTS2、ADTS1、ADTS0:设置 ADC 连续转换的方式。 以上各寄存器详细功能请查看 AVR 官方数据手册,有详细说明。 我的设置方案为:使用内部 2.56V 参考电压,转换结果左对齐,输入通道 PA0, 连续自由转换(即转换完一次接着马上进行下一次转换),使能 ADC 中断。(其实很简 单,就 5 个要设置的地方)设置完以后启动 ADC(写 ADSC 位为“1”),ADC 就开始工 作了。 来看论坛的片内 ADC 的外围电路设计: Bb s . Ce p a r k. co m 事无巨细,AVR学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG ADC上阵 E-mail:Losingamong@qq.com 异常简单的一个电路,只有一个 10K电位器提供输入电压,接在输入通道 PA0上, 滑动 PA0可得到不同的输入电压从而得到不同的显示效果,验证我们的程序正确与否。 下面是源程序,功能为将采样到的模拟电压转换为数字量并在数码管显示,其中 数码管显示的各个函数功能在《事无巨细,数码管闪亮》一文有详解,在此节省篇幅, 不做重复说明: #include #include #include #define uchar unsigned char #define uint unsigned int /*数码管显示数据与位置数组*/ unsigned char const LedData[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f}; unsigned char const LedPos[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; /*全局变量定义*/ Bb s . Ce p a r k. co m 事无巨细,AVR学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG ADC上阵 E-mail:Losingamong@qq.com uchar bai,shi,ge; /*函数声明*/ void HC595shift(void); void HC595store(void); void display(uchar pos,uchar dat); void HC595send(uchar x); void init(void); void readbyte(void); int main(void) { init(); while(1); //等待中断产生,即转换结束 } void init(void) { DDRA=0x00; PORTA=0x00; //PA0 设置为输入口,内部上拉失效,高阻态 DDRB=0xff; PORTB=0x00; //PB 口设置输出方向,输出低电平 ADMUX=0xe0; //内部参考电源 2.56V,输出数据左对齐,PA0 输入通 道 SFIOR=0; //自由连续转换 /*使能 ADC,开始转换,允许自动转换,允许 ADC 中断,128 分频*/ ADCSRA=0xef; sei(); //允许全局中断 } Bb s . Ce p a r k. co m 事无巨细,AVR学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG ADC上阵 E-mail:Losingamong@qq.com ISR(ADC_vect ) //ADC 转换函数 { readbyte(); //读取转换结果 display(0,16); /*显示转换结果,小数点*/ display(0,bai); /*显示转换结果,最高位*/ display(1,shi); /*显示转换结果,次高位*/ display(2,ge); /*显示转换结果,最低位*/ } void readbyte(void) //读取转换字节函数 { uchar byte; byte=ADCH; bai=byte/100; shi=byte%100/10; ge=byte%10; } /*以下为一系列数码管显示函数*/ void HC595send(uchar x) { uchar n,temp; for(n=0;n<8;n++) { temp=x&0x80; if(temp!=0) { PORTB|=(1<
/
本文档为【AVR事无巨细系列十,片内ADC】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索