




已阅读5页,还剩87页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章ATmega单片机的模拟接口及使用方法,主讲:海涛,广西大学电气工程学院,内容提要本章描述ATmega单片机A/D转换器和PWM发生器的基本原理和应用。在A/D转换器中,首先说明原理、结构、控制和相应特殊寄存器的用法,然后介绍软件设计及应用实例。在PWM发生器中,分别介绍结构原理和实际应用。此外本章还介绍几种滤波方法。,6.1模拟比较器模拟比较器对正极AIN0的值与负极AIN1的值进行比较。当AIN0上的电压比负极AIN1上的电压要高时,模拟比较器的输出ACO即置位。比较器的输出可用来触发定时器/计数器1的输入捕捉功能。此外,比较器还可触发自己专有的、独立的中断。用户可以选择比较器是以上升沿、下降沿还是交替变化的边沿来触发中断。,图6.1为比较器及其外围逻辑电路的框图。,1、特殊功能IO寄存器SFIOR,Bit3ACME:模拟比较器多路复用器使能当此位为逻辑“1”,且ADC处于关闭状态(ADCSRA寄存器的ADEN为“0”)时,ADC多路复用器为模拟比较器选择负极输入。当此位为“0”时,AIN1连接到比较器的负极输入端。,2、模拟比较器控制和状态寄存器(ACSR),例如ACSR0 xXX;/可根据下面的引脚功能,来设置相应的值。,Bit7ACD:模拟比较器禁用Bit6ACBG:选择模拟比较器的能隙基准源Bit5ACO:模拟比较器输出Bit4ACI:模拟比较器中断标志Bit3ACIE:模拟比较器中断使能Bit2ACIC:模拟比较器输入捕捉使能Bits1,0ACIS1,ACIS0:模拟比较器中断模式选择,需要改变ACIS1/ACIS0时,必须清零ACSR寄存器的中断使能位来禁止模拟比较器中断。否则有可能在改变这两位时产生中断。,6.2模数转换器6.2.1主要特点ATmega16有一个10位的逐次逼近型ADC。ADC与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。单端电压输入以0V(GND)为基准。器件还支持16路差分电压输入组合。两路差分输入(ADC1、ADC0与ADC3、ADC2)有可编程增益级,在A/D转换前给差分输入电压提供0dB(1x)、20dB(10 x)或46dB(200 x)的放大级。,七路差分模拟输入通道共享一个通用负端(ADC1),而其他任何ADC输入可做为正输入端。如果使用1x或10 x增益,可得到8位分辨率。如果使用200 x增益,可得到7位分辨率。ADC包括一个采样保持电路,以确保在转换过程中输入到ADC的电压保持恒定。ADC由AVCC引脚单独提供电源。AVCC与VCC之间的偏差不能超过0.3V。标称值为2.56V的基准电压,以及AVCC,都位于器件之内。基准电压可以通过在AREF引脚上加一个电容进行解耦,以更好地抑制噪声。,图6.2模数转换器方框图,6.2.2ADC的工作原理ADC通过逐次逼近的方法将输入的模拟电压转换成一个10位的数字量。最小值代表GND,最大值代表AREF引脚上的电压再减去1LSB。通过写ADMUX寄存器的REFSn位可以把AVCC或内部2.56V的参考电压连接到AREF引脚。在AREF上外加电容可以对片内参考电压进行解耦以提高噪声抑制性能。,6.2.3启动ADC转换向ADC启动转换位ADSC位写“1”可以启动单次转换。在转换过程中此位保持为高,直到转换结束,然后被硬件清零。如果在转换过程中选择了另一个通道,那么ADC会在改变通道前完成这一次转换。,图6.3ADC自动触发逻辑,使用ADC中断标志作为触发源,可以在正在进行的转换结束后即开始下一次ADC转换。之后ADC便工作在连续转换模式,持续地进行采样并对ADC数据寄存器进行更新。第一次转换通过向ADCSRA寄存器的ADSC写1来启动。如果使能了自动触发,置位ADCSRA寄存器的ADSC将启动单次转换。ADSC标志还可用来检测转换是否在进行之中。不论转换是如何启动的,在转换进行过程中ADSC一直为1。,6.2.4预分频及ADC转换时序,图6.4ADC预分频器,图6.5ADC时序图,第一次转换(单次转换模式),图6.6ADC时序图,单次转换,图6.7ADC时序图,自动触发的转换,图6.8ADC时序图,连续转换,表6.3ADC转换时间,6.2.5差分增益信道当使用差分增益通道,需要考虑转换的确定特征。差分转换与内部时钟CKADC2同步等于ADC时钟的一半。同步是当ADC接口在CKADC2边沿出现采样与保持时自动实现的。如果使用差分增益通道且通过自动触发启动转换,在转换时ADC必须关闭。当使用自动触发时,ADC预分频器在转换启动前复位。由于在转换前的增益级依靠稳定的ADC时钟,该转换无效。,6.2.6通道或基准源的选择ADMUX寄存器中的MUXn及REFS1:0通过临时寄存器实现了单缓冲。CPU可对此临时寄存器进行随机访问。这保证了在转换过程中通道和基准源的切换发生于安全的时刻。在转换启动之前通道及基准源的选择可随时进行。一旦转换开始就不允许再选择通道和基准源了,从而保证ADC有充足的采样时间。,6.2.7ADC输入通道选择模拟通道时请注意以下几个方面:工作于单次转换模式时,总是在启动转换之前选定通道。在ADSC置位后的一个ADC时钟周期就可以选择新的模拟输入通道了。但是最简单的办法是等待转换结束后再改变通道。,在连续转换模式下,总是在第一次转换开始之前选定通道。在ADSC置位后的一个ADC时钟周期就可以选择新的模拟输入通道了。但是最简单的办法是等待转换结束后再改变通道。然而,此时新一次转换已经自动开始了,下一次的转换结果反映的是以前选定的模拟输入通道。以后的转换才是针对新通道的。,6.2.8ADC基准电压源ADC的参考电压源(VREF)反映了ADC的转换范围。若单端通道电平超过了VREF,其结果将接近0 x3FF。VREF可以是AVCC、内部2.56V基准或外接于AREF引脚的电压。AVCC通过一个无源开关与ADC相连。片内的2.56V参考电压由能隙基准源(VBG)通过内部放大器产生。无论是哪种情况,AREF都直接与ADC相连,通过在AREF与地之间外加电容可以提高参考电压的抗噪性。,6.2.9ADC噪声抑制器ADC的噪声抑制器使其可以在睡眠模式下进行转换,从而降低由于CPU及外围I/O设备噪声引入的影响。噪声抑制器可在ADC降噪模式及空闲模式下使用。为了使用这一特性,应采用如下步骤:1.确定ADC已经使能,且没有处于转换状态。工作模式应该为单次转换,并且ADC转换结束中断使能。2.进入ADC降噪模式(或空闲模式)。一旦CPU被挂起,ADC便开始转换。,3.如果在ADC转换结束之前没有其他中断产生,那么ADC中断将唤醒CPU并执行ADC转换结束中断服务程序。如果在ADC转换结束之前有其他的中断源唤醒了CPU,对应的中断服务程序得到执行。ADC转换结束后产生ADC转换结束中断请求。CPU将工作到新的休眠指令得到执行。,6.2.10模拟输入电路单端通道的模拟输入电路见图6.9。不论是否用作ADC的输入通道,输入到ADCn的模拟信号都受到引脚电容及输入泄露的影响。用作ADC的输入通道时,模拟信号源必须通过一个串联电阻(输入通道的组合电阻)驱动采样/保持(S/H)电容。,图6.9模拟输入电路,图6.10所示为一通用的模拟信号输入电路。它对模拟输入信号进行偏移和增益处理,使输入到模拟引脚(ADC0ADC7)的电压为05V,偏移细调通过R2实现。增益范围由调整R5完成。,图6.10偏移和增益整定电路,例6.1电压采集,通道ADC2,ADC3。ADMUX=0 xED(ADC3-ADC2,10 x增益,2.56V参考电压,左对齐)ADC3上电压为300mV,ADC2电压为500mV。ADCR=512*10*(300-500)/2560=-400=0 x270ADCL将读为0 x00,且ADCH读为0 x9C。给ADLAR写0右对齐:ADCL=0 x70,ADCH=0 x02。,6.2.11ADC转换结果转换结束后(ADIF为高),转换结果被存入ADC结果寄存器(ADCL,ADCH)。单次转换的结果如下:,式中,VIN为被选中引脚的输入电压,VREF为参考电压,0 x000代表模拟地电平,0 x3FF代表所选参考电压的数值减去1LSB。,如果使用差分通道,结果是:,式中,VPOS为输入引脚正电压,VNEG为输入引脚负电压,GAIN为选定的增益因子,且VREF为参考电压。结果用2的补码形式表示,从0 x200(-512d)到0 x1FF(+511d)。如果用户希望对结果执行快速极性检测,判断MSB(ADCH中ADC9),如该位为1,结果为负;该位为0,结果为正。,表6.4给出当选定的增益为GAIN且参考电压为VREF的差分输入对(ADCn-ADCm)的输入码结果。下表6.4输入电压与输出码的相互关系,1、ADC多工选择寄存器(ADMUX),例如:ADMUX0 xXX;/根据下面的表6.5和表6.6来选择ADC的参考电压和通道,Bit7:6REFS1:0:参考电压选择表6.5ADC参考电压选择,Bit5ADLAR:ADC转换结果左对齐Bits4:0MUX4:0:模拟通道与增益选择位细节见表6.6。,2、ADC控制和状态寄存器A(ADCSRA),例如:ADCSRA0 xXX;/根据使用情况,对所需要的功能标志位置位即可ADPS20是用来选择几分频,Bit7ADEN:ADC使能Bit6ADSC:ADC开始转换Bit5ADATE:ADC自动触发使能Bit4ADIF:ADC中断标志Bit3ADIE:ADC中断使能Bits2:0ADPS2:0:ADC预分频器选择位,表6.7ADC预分选择,3、ADC数据寄存器(ADCL及ADCH)ADLAR=0,ADLAR=1,ADC转换结束后,转换结果存于这两个寄存器之中。如果采用差分通道,结果由2的补码形式表示。读取ADCL之后,ADC数据寄存器一直要等到ADCH也被读出才可以进行数据更新。因此,如果转换结果为左对齐,且要求的精度不高于8比特,那么仅需读取ADCH就足够了。否则必须先读出ADCL再读ADCH。,4、特殊功能IO寄存器(SFIOR),Bit7:5ADTS2:0:ADC自动触发源若ADCSRA寄存器的ADATE置位,ADTS的值将确定触发ADC转换的触发源;否则,ADTS的设置没有意义。被选中的中断标志在其上升沿触发ADC转换。,表6.8ADC自动触发选择,Bit4Res:保留位这一位保留。为了与以后的器件相兼容,在写SFIOR时这一位应写0。,例6.4图6.11是以ATmage16为核心构成多路电力参数数据采集系统,UN1UN6是精密运放,ADC选择片内2.56为基准电压,64分频时钟源,将采集数值在数码管上显示出来,控制数码管74LS595从上到下排列顺序为:c、b、a。1、电力参数数据采集系统原理图图6.11ATmage16构成多路数据采集系统原理图,2、电力参数数据采集流程框图图6.12电力参数数据采集流程框图,6.3脉冲宽度调制输出PWM(DA)功能特点及功能1、脉冲宽度调制输出PWM的结构和工作原理将某个要转换的数字量(例512)写入到OCR0(输出比较寄存器)中,其值不断与8位循环记数器的内容比较。二者相等时,比较输出正脉冲,RS触发器复位,使PWM/PB3端变为低电位。,OCR0中数据为80H时,PWM/PB3端输出波形如图6.13所示。,图6.13当数据512时的输出波形,从上述可知,输出波形的周期固定为1024T(状态周期),当晶振为8MHz时1024T=10243/8=384s。占空比=OCR0中数据/256,如上例占空比=512/1024=50%。复位时OCR0清0,占空比=00H1024=0%,即PWMPB3端始终为低电平。图6.14给出了几种典型的PWM输出波形图,若将这些波形积分,则可得到10位分辨率的模拟信号。图6.14PWM输出波形,2、PWM应用举例例6.3产生PWM波形,占空比参数值由a控制,频率为CPU主频确定。,voidtimers_init(chara)/输入参数:占空比由a控制sbi(DDRD,5);/输出比较器A定义为输出OCR1A=1024-10.24*a;/定时器1的输出比较器A,比较匹配预定值OCR1B=0 x00;/定时器1的输出比较器BTCNT1=0 x00;/T1的计数器,计数当前值TCCR1A=0 xc3;/T1的控制字,比较匹配时置位OC1A/OC1B,在TOP时清零TCCR1B=0 x09;/T1的控制字,无预分频,clkI/O/1TOP(计数上限值),intmain(void)timers_init(25);/参数a为25,产生占空比为25的PWM波形,PWM引脚输出的脉冲信号经滤波后可变为模拟信号。为了获得较高精度的8位DA输出,在滤波前先通过缓冲器将PWM脉冲信号摆幅转化为05V,再经滤波、放大输出。DA缓冲器电路如图6-13所示。,图6.15D/A缓冲器电路,6.4数字滤波方法单片机系统面对的现场往往比较恶劣,因此所采集信号中总会混杂有各类干扰。除了采用硬件进行滤波(如阻容滤波)外,对输入计算机的信号进行数字滤波也是十分必要的。所谓数字滤波,就是通过一定的计算程序,对采集的数据进行处理,以提高有用信号在采集值中的比例,减少各种干扰和噪声。,与阻容滤波相比,数字滤波具有如下一些优点:1、可以根据干扰的类型,设计出相应类型的数字滤波器。2、滤波范围宽,特别是对于低频信号(如0.001Hz及以下)更为有效,而模拟滤波器由于电容容量的限制,频率不能太低。3、可靠性高。4、数字滤波程序可以多路共享。,下面介绍几种常用的数字滤波方法。1算术平均值滤波设测量值为,则每采集了N个数据后,进行一次算术平均。其计算方法如式(6.1)所示:,(61),根据数理统计的理论,上式的算术平均值实际上是这样一个值,它与各采样值间的误差的平方和最小。得到后即可计算出偏差值:从上面可以看出,每计算一次控制器输出值,就必须采样N次。因此,N的取值不能太大。算术平均值法主要对压力,流量等含有周期性脉动的信号有效。而对突发性的脉冲干扰,这种滤波方法的效果则不理想。,(62),2中值滤波所谓中值滤波法是连续采样n次,首先要做的工作是先采集n个参数并按大小排序,即有,或者从大到小排序。如果当N为偶数时,如果当N为奇数时,,中值滤波既可以去掉由于偶然因数引起的干扰,同时对与脉动干扰也比较有效。但是这种方法由于计算量比较大,对于一些需要快速采样的参数就不十分合适。中值滤波的关键所在是形成按大小顺序排列的一组数。假设采样N次,如果使用高级语言,首先将N个采样值按从大到小(或从小到大)排列,然后将其放在一个数组X(N)里,此时X(N+1)/2)则为采样值。,3表决滤波首先要做的工作是先采集N个参数并按大小排序,即有x1x2xn-10;则xn=xn1若xn-xn-1=0;则xn=xn若xn-xn-10;则xn=xn+1,这种滤波方式非常简单,运算也很节省时间,可以很有效地使采样到的参数处理得很平滑,但只能用于惯性较大的系统。这种滤波方式非常简单,运算也很节省时间,可以很有效地使采样到的参数处理得很平滑,但只能用于惯性较大的系统。,5去最老值滤波先将采样到的参数按时间次序排序,x1、x2、xn,其中x1最老,xn最新,当再采集一个参数xn+1后作如下变化:x1=x2、x2=x3,xn-1=xn,xn=xn+1然后进行一次算术平均。,6程序判断滤波如果我们事先就知道,所采样的信号,其在两个采样点之间不可能有很大的变化,则可以根据现场的经验确定一个最大偏差m。每次采样后都将其与前一个采样值进行比较,一旦两个值的差超出了m,则表明采集的信号中包含有较大的干扰,应该去掉;如果未超出m,可将该数据作为本次采样值。这种方法对于一些突发性的干扰,如大功率用电设备的启停或其他冲击性负载带来的电流尖峰干扰比较有效。,例6.7图6.17是ATmega16进行电压采集进行后,经中值滤波后并用数码管显示程序。图6.17电压采集和数码管显示原理图,ucharled241=0 x60,0 x7e,0 x31,0 x32,0 x2e,0 xa2,0 xa0,0 x7a,0 x20,0 x22,0 x28,0 xa4,0 xe1,0 x34,0 xa1,0 xa9,0 x40,0 x5e,0 x11,0 x12,0 x0e,0 x82,0 x80,0 x5a,0 x00,0 x02,0 x08,0 x84,0 xc1,0 x14,0 x81,0 x89,0 xff,0 xbf,0 x64,0 xdf,0 xa1,0 x68,0 x34,0 xf4,0 xa5;/数码管编码AD转换程序:#includeJL_f1.h#includeJL_f1ADC.h,externucharub;voidadc_init(void)/WIZARD_MAP(ADC)/ADCClock:125.000kHz/ADCVoltageReference:AVCC/ADCNoiseCancelerDisabledSFIOR|=0 x0;/特殊功能I/O寄存器ADMUX=0 x40;/ADC多工选择寄存器,AVCC,AREF引脚外加滤波电容ADCSRA=0 x86;/ADC控制和状态寄存器A,0 x86为ADC使能,预分频为64分频/WIZARD_MAP(ADC),unsignedintread_adc(unsignedcharadc_input)/SetADCinputADMUX,/电压获取程序uintget_u(void)doublein=0;staticdoubled1,d2,d3,d_new,m1,m2,m3;d_new=read_adc(0);d1=d2;d2=d3;d3=d_new;m1=m2;m2=m3;if(d1d3)|(d1d2)m3=d1;,elseif(d2d3)|(d2d1)m3=d2;elsem3=d3;/三个AD转换后的值中取中间值in=(0*m1+0*m2+3.0*m3)/3.0;/三个中间值加权平均in*=5;return(uint)in;,/电压显示程序voidlcd_u(void)ad1=get_u();if(ub=1)ub=0;elsead1=0;led19=(ad1/1000)%10;led18=(ad1/100)%10;led17=(ad1/10)%10;led16=39;,/数码管显示程序/RCK=PA5SCK=PA6SER=PA7voidled_outbyt(chara)/显示一个字符chari,d;for(i=0;i8;i+)cbi(PORTA,6);/595移位寄存器使能d=a/595串行输入使能,elsecbi(PORTA,7);a=1;sbi(PORTA,6);voidled_list(void)/循环显示uchari,j;j=1;,for(i=0;i8;i+)led_outbyt(led2ledi);led_outbyt(j);led_outbyt(led2ledi+8);led_outbyt(j);led_outbyt(led2ledi+16);led_ou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游安全管理报告
- 2025浙江省金华成泰农商银行社会招聘考试备考试题及答案解析
- 2025浙江金华市市场监督管理局窗口招聘1人笔试备考题库及答案解析
- 油井液面监测规范
- 2025榆林煤化消防员和消防驾驶员招聘(20人)笔试参考题库附带答案详解
- UML钞栏图规定和操作手册
- 2025西安光环电子科技有限公司招聘(3-5人)笔试备考试题及答案解析
- 心理治疗理论及方法制度手册制定方案制定
- 土地使用权许可审批管理规定细则
- 2025四川绵阳市中级人民法院招聘合同制审判辅助人员19人笔试参考题库附答案解析
- 口腔科中医临床诊疗技术
- itop-4412开发板之精英版使用手册
- 老年肌肉衰减综合征肌少症培训课件
- 中学生物学教学技能与实践课件
- 中国文化概论(第三版)全套课件
- 井喷失控事故案例教育-井筒工程处课件
- 《农产品质量安全》系列讲座(第一讲-农产品质量及安全)课件
- 折彩粽的手工制作ppt公开课
- 日语教程单词表(任卫平版)
- 市场调查与分析教学完整版ppt课件-全套教学教程(PPT 416页)
- 托业考试Toeic考题
评论
0/150
提交评论