《第5章信号转换-AVR单片机应用技术项目化教程课件.ppt》由会员分享,可在线阅读,更多相关《第5章信号转换-AVR单片机应用技术项目化教程课件.ppt(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5 5 章章 信号转换信号转换 D/A D/A转换器转换器一一 A/DA/D转换器转换器二二 ATmega16ATmega16集成集成A/DA/D转换器转换器三三四四 在宇宙中,绝大部分信号都是以模拟信号形式存在,如温度、大气压力等。在单片机等数字系统中,只能识别“0”或者“1”的数字信号,而连续的变化缓慢的模拟信号单片机是无法识别的。因此在实际中应将这些信号通过传感器转换成电信号,然后在通过器件转换成计算机系统能够识别的数字信号。在计算机内部处理完成的数字信号,不能直接作用到负载,许多负载是无法接收和处理数字信号,比如模拟放大器等,此时需要将单片机处理完成的数字信号转变成模拟信号再输出给
2、相应的负载,这一过程可以用图5-1表示。第第5 5章章 信号转换信号转换第第5 5章章 信号转换信号转换 在将模拟信号转变成数字信号的称之为模拟信号-数字信号变换器(Analog to Digital Converter),简称A/D转换器或ADC。将数字信号转换成模拟信号的器件称为数字信号-模拟信号转换器(Digital to Analog Converter),简称D/A转换器或DAC。无论是将模拟信号转换成数字信号,还是将数字信号转换成模拟信号,均是有损变换,变换之后的信号与实际值存在误差。为了保证数据处理结果的准确性,A/D转换器和D/A转换器必须有足够的转换精度转换精度。同时,为了适
3、应快速处理的检测和控制过程的需要,A/D转换器和D/A转换器还必须有足够快的转换速度转换速度。第第5 5章章 信号转换信号转换5.1.1 D/A5.1.1 D/A转换器工作原理转换器工作原理5.1 D/A5.1 D/A转换器转换器1 1工作原理工作原理 D/A转换器根据其工作原理而言有很多种类型,下面以一种简单的D/A转换模型讨论其工作原理。一串二进制所组成的数字信号,其每位所代表的权值不同。以4位二进制为例,Dn=d3d2d1d0,每位数字的权值可以依次写成23222120。图5-2是4位权电阻网络D/A转换器的原理图,它由权电阻网络、4个电子开关以及求和电路组成。权电阻网络的比值满足23:
4、22:21:20的关系。S3、S2、S1、S0是4个电子开关,它们的状态分别受d3、d2、d1、d0的取值状态的控制,当相应的数字位d的值为0时开关S接到地,为1时开关S接Vref电压。5.1.1 D/A5.1.1 D/A转换器工作原理转换器工作原理5.1 D/A5.1 D/A转换器转换器1 1工作原理工作原理 5.1.1 D/A5.1.1 D/A转换器工作原理转换器工作原理5.1 D/A5.1 D/A转换器转换器1 1工作原理工作原理而数字d只取0或1。当d取0时对应支路的电流等于0,当取1时对应支路电流按上式计算。为了便于进一步分析,取RF=R/2,带入5-1式后有由此可见,从dn端输入数
5、字信号,在输出端可以得到相应的模拟信号。图5-2是一种结构简单、元件少的D/A转换器,很好的解释了D/A转换器的工作原理。实际中,不考虑D/A转换器所实现的方法,均可写成5-4式更具一般性5.1.1 D/A5.1.1 D/A转换器工作原理转换器工作原理5.1 D/A5.1 D/A转换器转换器1 1工作原理工作原理 定量分析公式5-4,若Vref接+5V,n=8,即有8位数字量。当输入数字量dn=00000000(0 x00)时,输出模拟电压为0V,当输入数字量dn=11111111(0 xff)时,输出的模拟量Vo=Vref=+5V。当输入最小的数字量dn=00000001(0 x01)时,输
6、出的模拟电压为+5V/255=0.0191V,也就是说输入数字量每增1,输出模拟电压增加约19mV。把这个最小的模拟电压称为D/A转换器的分辨率。5.1.1 D/A5.1.1 D/A转换器工作原理转换器工作原理5.1 D/A5.1 D/A转换器转换器1 1工作原理工作原理若取n=10,其他参数不变,分辨率变成了4.8mV,显然n值越大,表示的数字量得范围越大,输出模拟电压的分辨率越高。若取Vref=2.5V,n=8,分辨率变为9.8mV,但是满程时(输入数字量全为1)输出模拟电压最大值Vo=Vref=2.5V。将Vref称为满量程电压,其值影响转换器的最大值,也影响分辨率,但在实际中Vref确
7、定以后,影响分辨率的就只有n了。当要获得负输出电压时可以将Vref接负压。在实际中,D/A转换器的n有8位、10位、16位等。5.1.1 D/A5.1.1 D/A转换器工作原理转换器工作原理5.1 D/A5.1 D/A转换器转换器2.D/A2.D/A转换器性能指标转换器性能指标(4 4)满量程。)满量程。D/A转换器可输出的模拟信号的最大值,通常用2nVref表示标称满量程。(5 5)精度。)精度。分绝对精度与相对精度,是由于非线性、零点刻度、满量程刻度及温漂等因素引起的误差。表示D/A转换器实际输出与其理论值的误差,可折合成数字量的位数表示。需注意的是,分辨率与精度是两个概念,不能混淆。一般
8、以满量程相对误差表示D/A转换器的精度。(6 6)线性误差。)线性误差。输出值对穿过D/A转换器转移特性曲线零点和满量程点两端点的直线的最大偏离。通常由满量程的百分率或最低位(LSB)的分数来表示。如LSB/2。5.1.2 5.1.2 集成集成D/AD/A转换器转换器5.1 D/A5.1 D/A转换器转换器1.8位集成位集成D/A转换芯片转换芯片DAC0808 (2 2)DAC0808DAC0808结构与使用结构与使用DAC0808内部结构如图5-3所示。其内部由模拟电子开关、倒T电阻网络、基准恒流源、偏置电路等组成。DAC0808共有16个引脚,其引脚功能如表5-1所示。5.1.2 5.1.
9、2 集成集成D/AD/A转换器转换器5.1 D/A5.1 D/A转换器转换器1.8位集成位集成D/A转换芯片转换芯片DAC0808 (2 2)DAC0808DAC0808结构与使用结构与使用。5.1.2 5.1.2 集成集成D/AD/A转换器转换器5.1 D/A5.1 D/A转换器转换器1.8位集成位集成D/A转换芯片转换芯片DAC0808 (2 2)DAC0808DAC0808结构与使用结构与使用 图5-4为DAC0808的应用图,图中14脚和15脚接的电阻阻值要相等,保证转换误差最小。4脚外接的运算放大器将输出的电流信号转换成电压信号。在d0-d7端输入数字量,在vo端可以获得相应的模拟电
10、压值。5.1.2 5.1.2 集成集成D/AD/A转换器转换器5.1 D/A5.1 D/A转换器转换器【练习练习1 1】将数字量转换成模拟量,使用电压表测量模拟电压。【练习练习2 2】产生三角波,使用示波器测量。【练习练习3 3】数控可调稳压电源。5.1.2 5.1.2 集成集成D/AD/A转换器转换器5.1 D/A5.1 D/A转换器转换器【练习练习3 3】数字可调稳压电源。5.1.2 5.1.2 集成集成D/AD/A转换器转换器5.1 D/A5.1 D/A转换器转换器【练习练习3 3】数字可调稳压电源。5.1.2 5.1.2 集成集成D/AD/A转换器转换器5.1 D/A5.1 D/A转换
11、器转换器【练习练习3 3】数字可调稳压电源。VrefVref:DAC输出电压(CPU数控)。VoVo:负载输出电压。5.1.2 5.1.2 集成集成D/AD/A转换器转换器5.1 D/A5.1 D/A转换器转换器【练习练习3 3】具体要求:(1)输入电压范围:8-20V,输出1V-12V可调,步进20mV;(2)通过按键K0,K1实现输出电压的增减,每按下输出电压增减20mV。(3)输出低于1V会有什么现象?什么原因?如何解决?5.5.2 A/D2 A/D转换器转换器5.5.2 2.1 1 逐次渐进比较逐次渐进比较A/DA/D转换器转换器1.1.逐次渐进比较式逐次渐进比较式A/DA/D 逐次渐
12、进比较式A/D转换器主要由内置的DAC、模拟比较器、逐次渐进寄存器、控制逻辑等电路组成,如图5-5所示。逐次渐进比较器式A/D转换器工作时需要外部输入一个脉冲信号。简单而言,逐次渐进比较式A/D转换器的工作过程其实质就是使逐次渐进寄存器的数逐渐接近真实值得过程。其工作如下:逐渐渐进寄存器内容全部清零,然后将最高位置1后送入DAC转换成模拟信号vo。vo信号与输入的模拟信号vi在模拟比较器中进行比较。5.5.2 A/D2 A/D转换器转换器5.5.2 2.1 1 逐次渐进比较逐次渐进比较A/DA/D转换器转换器1.1.逐次渐进比较式逐次渐进比较式A/DA/D 若vivo说明逐次渐进比较寄存器中预
13、置的数值太小,最高位的1保留,否则说明逐次渐进比较寄存器中预置的数值太大,最高位的1清零,将次高位置1送入DAC转换成vo电压送入比较器再次与vi进行比较,若vivo,次高位的1保留,否则将其清零,将次次高位置1后继续重复这一过程,直到将最低位置1且比较结束为止,此时逐次渐进寄存器中的数值代表了输入模拟电压vi的数值量。这一过程如同使用天平称量未知重量的物品,不断的增减已知砝码的数量,当天平平衡时读取已知砝码的重量就可获知未知物品的重量。5.5.2 A/D2 A/D转换器转换器5.2.2 A/D5.2.2 A/D转换器的性能参数转换器的性能参数公式公式5-45-4变形后有变形后有 公式中公式中
14、vi vi:输入模拟信号;:输入模拟信号;dn dn:输出数字量;:输出数字量;n n:数字量二进制结果位数;:数字量二进制结果位数;Vref Vref:参考电压。:参考电压。5.5.2 A/D2 A/D转换器转换器5.2.2 A/D5.2.2 A/D转换器的性能参数转换器的性能参数 定量分析公式5-5,若n=8,Vref=5V,vi=0V时,输出dn数字量为00000000(0 x00),当输入Vi=Vref时,输出数字量为11111111(0 xff)。显然输入模拟电压在0-Vref之间变化,输出数字量在00-FF之间变化。也就是说,输入模拟量是连续变化的,但是输出的数字量是阶跃变化,且只
15、有256个阶跃。当dn=00000001(0 x01)时,即数字量得最小变化量,对应的模拟电压的变化值为255/Vref=19mV,换言之,模拟电压每增减19mV,数字量增减1.当模拟电压的变化幅度小于19mV时对应的数字量不会有改变,这个数值定义为A/D转换器的分辨率。显然,分辨率和n有关。5.5.2 A/D2 A/D转换器转换器5.2.2 A/D5.2.2 A/D转换器的性能参数转换器的性能参数(3 3)量化误差。)量化误差。由于A/D的有限分辩率而引起的误差,即有限分辩率A/D阶梯状转移特性曲线与无限分辩率A/D(理想A/D)的转移特性曲线(直线)之间的最大偏差。通常为为1 个或0.5个
16、最小数字量的模拟变化量,表示为1LSB、1/2LSB。(4 4)偏移误差。)偏移误差。输入信号为零时输出信号不为零的值,可外接电位器调至最小。(5 5)满刻度误差。)满刻度误差。满度输出时对应的输入信号与理想输入信号值之差。(6 6)线性度。)线性度。实际转换器的转移函数与理想直线的最大偏移,不包括以上三种误差。此外还有绝对精度、相对精度、微分非线性、单调性和无错码、总谐波失真、积分非线性等。5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器Atmega16单片机内部集成一个10bit的逐次渐进比较式A/D转换器,根据芯片封装不同,可以输入8-10路模拟信号,
17、通过编程选择其中一路信号进行转换。模拟信号可以是单端信号输入,也可以是差分信号输入。内部集成了可编程的增益放大器,在差分信号输入时可以编程调整放大倍数。内部集成的A/D转换器具有较高的转换速度和转换精度,此外还有多种工作转换模式可供选择,其特点主要如下 10 位转换精度;1/2LSB 的非线性度误差及 2 LSB 的绝对精度;转换时间65-260s;最高分辨率时采样率高达15kbpS;5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器 8 路与I/O口复用的单端输入通道,7路差分输入通道;2 路可选增益为10 x 与200 x 的差分输入通道;支持连续转换或单
18、次转换模式;连续模式中通过选择自动触发中断源启动A/D转换;转换结束后产生标志位可以触发中断。5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器ATmega16内部集成的为逐次渐进比较式A/D转换器,由10bitDAC、采样保持比较器、通道选择器、单/双极性选择器、采样时钟预分频器、触发源选择电路、寄存器等组成,其内部结构见图5-6所示。ADC0-ADC7ADC0-ADC7:模拟信号输入引脚AREFAREF:A/D转换器外部基准参考电压输入引脚;AVCCAVCC:A/D转换器工作电源供电引脚,工作时接到VCC;X X增益:增益:对差分输入信号进行放大,单极性信
19、号无放大作用;10bitD/A10bitD/A转换器:转换器:逐次渐进比较式A/D转换的核心部件;转换控制逻辑:转换控制逻辑:控制、协调A/D转换器的工作过程;预分频:预分频:产生A/D转换器转换时所需的时钟;触发源选择:触发源选择:选择触发A/D转换方式的中断事件;ADMUXADMUX:通道号选择寄存器;ADCSRAADCSRA:状态与控制寄存器;ADC:ADC:转换结果数据寄存器。5.3.1 A/D5.3.1 A/D转换器结构转换器结构5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器5.3.1 A/D5.3.1 A/D转换器结构转换器结构5.5.3 AT
20、mega163 ATmega16集成集成 A/D A/D转换器转换器1 1模拟输入信号模拟输入信号芯片可以输入8模拟信号,如图5-6中的ADC-ADC7为8路模拟信号输入引脚。通过编程,选择对其中一路模拟信号进行A/D转换。模拟输入信号可以是单极性信号,单极性信号直接进入A/D转换器进行转换,也可以是双极性差分信号,器件对差分信号具有增益放大功能。七路差分模拟输入通道共享一个通用负端(ADC1),其他任何 ADC 输入可做为正输入端。5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器2 2可编程增
21、益放大器可编程增益放大器单极性模拟信号直接送入A/D转换器进行转换。而对差分信号,器件支持16路差分电压输入组合无增益功能,2路差分输入(ADC1、ADC0 与 ADC3、ADC2)有可编程增益级,在 A/D 转换前为差分输入信号提供 0dB(1x)、20dB(10 x)或 46dB(200 x)的增益放大。如果使用1x或10 x增益,可获得8bit分辨率,使用200 x增益则可获得 7bit分辨率。5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器3 3启动转换启动转换 图5-6中的ADEN信号
22、控制A/D转换器的启动和停止。当ADEN为1时A/D转换器开始工作,当ADEN为0时A/D转换器停止工作。4.4.触发方式触发方式 A/D转换器根据触发方式不同可以有两种转换模式:单次转换和连续自动转换。单次转换:单次转换:触发一次转换一次,完成转换后器件停止工作。要进行一次新的转换必再次进行触发。当图5-6中的ADATE置0时为单次转换模式,每次工作均需将ADSC置1,该位每置位一次启动ADC完成一次转换。5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器连续自动转换:连续自动转换:转换结束后自
23、动启动下一次转换,只要启动一次后就可以周而复始的进行转换。当图5-6中的ADATE置1时为连续自动转换模式。连续自动自动转换可以有触发源触发(如定时中断、外部中断等),可以不需要触发源自动进行转换,如图5-7。启动A/D转换的触发信号来自或门A2,其输入端来自ADSC与ADATE与触发源信号的与。5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器 当A
24、DATE为0时,或门A2的输出等于ADSC,每置位一次ADSC启动一次A/D转换,此即为单次转换模式。而当ADATE为1时(ADSC=0),或门A2的输出由与门A1得另一路信号来决定,而这另一路信号为各种触发源,触发源如表5-2所示。通过多路选择器选择其中一个信号作为A/D转换的触发信号,如选择T/C0的溢出事件作为A/D转换的触发源,T/C0每溢出一次启动一次A/D转换。5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器5 5基准参考电压源基准参考电压源A/D转换器的基准电压可以选择内部的或者外
25、部电压源。外部电压源由AREF引脚提供,器件内部集成了2.56V的基准电压,也可以使用AVCC也可以作为内部基准电压。AVCC引脚独立供电,其与VCC之间的电压偏差不能超过 0.3V。在AREF引脚上外接一个电容进行去耦可以更好地抑制噪声。A/D转换器进行转换工作前,可以随时选择输入模拟信号通道及参考电压。一旦A/D转换器开始工作就不允许进行通道号及参考源选择操作。5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器6 6转换时钟转换时钟ATmega16集成的逐次渐进比较A/D转换器需要一个50kH
26、z200kHz之间的时钟驱动转换器工作并获得最大转换精度。转换时钟的高低与转换精度有密切关系。当输入时钟频率高于200 kHz时转换精度将低于10bit,但可以获得较高的采样率。5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器6 6转换时钟转换时钟5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理系统时钟经过与分频器进行2、4、16、32、64、128次分频后送到A/D转换器时钟输入端。A/D转换器完成一次转换大约需要13 个时钟周期。为了初始化模拟电路,第一次启动转换大约需要经历
27、25 个A/D时钟周期后方能读取转换结果。5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器7.7.转换结果转换结果A/D转换器输出10bit的转换结果,保存在ADC寄存器中,CPU访问该寄存器即刻读取A/D转换结果。对于单极性信号,输入模拟信号与保存在ADC寄存器中的数字量之间的关系可以用公式表示5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器7.7.转换结果转换结果对于双极性差分信号,输入模拟信号与保存在ADC寄存器中的数字量之间的关系可以用公式表示:5.3
28、.2 A/D5.3.2 A/D转换器工作原理转换器工作原理VP代表正极输入的正电压,VN代表负极输入的负电压。GAIN 为选定的增益系数,VREF 为参考电压。差分转换结果以2的补码形式输出,从0 x200(-512)到0 x1ff(+511)。通过ADC的第9位(MSB)即可快速检测电压极性。ADC第9位为1,结果为负,VPVN,如图5-9所示。5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器7.7.转换结果转换结果5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器
29、转换器7.7.转换结果转换结果例如选定增益为GAIN=10,参考电压=2.56V(2560mV),ADC3引脚电压为300mV,ADC2引脚电压为500mV则有:ADC=51210(300-500)/2560=-400ADC=51210(300-500)/2560=-400默认格式下(右对齐)保存ADC寄存器的补码结果为0 x270。5.3.2 A/D5.3.2 A/D转换器工作原理转换器工作原理5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器1.1.通道选择寄存器通道选择寄存器ADMUXADMUX通道选择ADMUX寄存器主要有3个功能:选择通道号、设置结果
30、对其格式、选择参考电压源,如下所示5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器REFS1-REFS0REFS1-REFS0(Bit7-Bit6Bit7-Bit6)位:)位:基准参考电压选择位,可以选择3种参考电压模式,见表5-2所示。5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器1.1.通道选择寄存器通道选择寄存器ADMUXADMUX5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器1.1.通道选择寄存器通道选择寄存器ADM
31、UXADMUX5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器ADLAR(Bit5)位:ADC转换结果寄存器数据对其格式。ADLAR=1,ADC数据左对齐,ADLAR=0,ADC数据右对齐。MUX0-MUX4(Bit0.4)位:5位二进制选择输入通道的模拟信号。可以选择单极性信号或差分信号输入以及设置差分输入信号的增益系数,见表5-3所示。编号0-7是单端信号输入,ADC0-ADC7输入单端信号,无增益放大倍数。编号8-15是差分输入模式,差分信号为ADC0-ADC3不同引脚输入组合,具有增益放大功能,放大倍数分别为10倍和200倍。5.5.3 ATmega163 AT
32、mega16集成集成 A/D A/D转换器转换器1.1.通道选择寄存器通道选择寄存器ADMUXADMUX5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器 编号16-29亦为差分输入模式,差分信号分别从ADC0-ADC7不同引脚输入组合,增益放大倍数为1倍,即无增益功能。编号30-31为A/D转换器接固定的1.22V和0V电平,用于程序、器件的测试与调试。5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器1.1.通道选择寄存器通道选择寄存器ADMUXADMUX5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器5.5.
33、3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器1.1.通道选择寄存器通道选择寄存器ADMUXADMUX5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器1.1.通道选择寄存器通道选择寄存器ADMUXADMUX5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器2.2.状态与控制寄存器状态与控制寄存器ADSCRAADSCRA5.3.3 5.3.3 集成集成A/
34、DA/D转换器的寄存器转换器的寄存器状态与控制寄存器ADSCRA的主要作用是控制A/D转换器工作以及保存其状态,位定义如下图所示:ADENADEN(Bit 7 Bit 7):):ADC 使能控制位,ADEN置位即启动ADC,否则ADC关闭。ADSCADSC(Bit 6 Bit 6):):单次采样触发控制位,在单次转换模式时将ADSC 置1次将启动一次A/D 转换器,进行一次模拟信号的采样。A/D转换结束后ADSC变成低电平,若要启动下一次转换必须再次将ADSC置位。在连续转换模式下,ADSC 置位将启动首次转换。ADSC 清零不产生任何动作。5.5.3 ATmega163 ATmega16集成
35、集成 A/D A/D转换器转换器2.2.状态与控制寄存器状态与控制寄存器ADSCRAADSCRA5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器ADATEADATE(Bit 5 Bit 5):):自动采样触发控制位。ADATE置位将启动ADC自动触发功能,此时A/D采样不受ADSC位的控制,受触发源的控制,触发信号的上升沿时对模拟信号进行采样。自动采样触发信号源通可以通过编程选择,如表5-4。ADIFADIF(Bit 4 Bit 4):):A/D采样结束中断标志位。A/D转换器每次转换结束该位置位。若使能A/D采样中断,在结束中断服务程序的同时自动将ADIF 硬件清零。
36、也可以通过软件方式向此标志写1 将其清除。5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器2.2.状态与控制寄存器状态与控制寄存器ADSCRAADSCRA5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器ADIEADIE(Bit 3 Bit 3):):A/D中断使能控制位。该位置位使能A/D转换结束中断,若全局中断开启(SREG的I位置位),当A/D采样结束后会产生中断请求。ADPS2:0ADPS2:0(Bit 2:0 Bit 2:0):):A/D转换器工作时钟预分频器分频系数选择位。逐次渐进比较式A/D转换器工作时需要一个时钟信号才可
37、以工作,该时钟来自系统晶振时钟的分频,对系统时钟的分频可以通过ADPS2-0进行设置,见表5-4。5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器2.2.状态与控制寄存器状态与控制寄存器ADSCRAADSCRA5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器 3.3.数据寄存器数据寄存器ADCADC5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器 A/D采样转换结束输出的数字量保存在ADC寄存器中。16bit的ADC寄存器分成2
38、个8bit的寄存器ADCH和ADCL。A/D转换器输出10bit的结果,在ADC寄存器中可以右对齐(ADLAR位=0)5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器 3.3.数据寄存器数据寄存器ADCADC5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器也可以左对齐(ADLAR位=1)5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器4.4.其它寄存器其它寄存器5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器5.5.3 ATmega163 ATmega16集成集成 A/D A
39、/D转换器转换器4.4.其它寄存器其它寄存器5.3.3 5.3.3 集成集成A/DA/D转换器的寄存器转换器的寄存器连续转换模式:连续转换模式:选择该模式时,A/D转换器每完成一次转换自动进行下一次,自动触发,无需其他触发源。模拟比较器:选择该触发源时,模拟比较器每产生一次比较器的高电平翻转均会触发一次A/D转换器进行采样转换工作。在其他时间A/D转换器不工作。INT0INT0:外部中断0触发方式。选择该触发源时当外部中断触发中断后会触发A/D转换器进行一次采样转换工作,在其他时间A/D转换器不工作。比较匹配:比较匹配:定时器比较匹配触发方式,当定时器计数值与比较器匹配寄存器中的内容相等时产生
40、的比较匹配事件触发一次A/D转换,其他时间不工作。5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器4.4.其它寄存器其它寄存器溢出:溢出:定时器溢出时触发A/D转换器开始采样转换,其他时间A/D转换器不工作。捕捉:捕捉:T/C1的捕捉器产生捕捉事件时触发A/D转换器开始工作。选择定时器匹配或溢出方式触发A/D转换器可以设定其采样速率,采样速率为定时器定时时间的倒数。设置ADTS的值必须是在连续转换模式下进行,对于单次转换模式对ADTS进行设置不影响A/D转换器。被选中触发源在其的中断标志的上升沿触发A/D转换。5.3.3 5.3.3 集成集成A/DA/D转换
41、器的寄存器转换器的寄存器5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器5.3.3 A/D5.3.3 A/D转换器的应用转换器的应用步 骤确定转换极性:单/双选定通道号:ADC0-ADC7。确定增益倍率:x。选定触发方式:单次/自动。若为自动,确定触发源。选定采样时钟。选定参考电压。选定数据对齐方式。如果使用中断,设置中断相关。5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器5.3.3 A/D5.3.3 A/D转换器的应用转换器的应用系统时钟为8M,按如下要求完成寄存器初始化。【例5-1】ADC转换时钟为大于100Khz,
42、小于200Khz,单次采样模式,转换结果右对齐,通道号为ADC3,VREF=AVCC,查询方式读取转换结果。解:转换时钟在100Khz200Khz之间,系统时钟=8M=8000Khz,设分频系数为64则8000/64=125Khz,满足题设要求,打开A/D转换器,对ADCSRA寄存器设置如下:ADCSRA=1ADEN|1ADPS2|1ADPS1;ADCSRA=1ADEN|1ADPS2|1ADPS1;选择通道号为ADC3,则MUX0、MUX1设为1,参考电压为AREF,将REFS0设为1,对ADMUX寄存器设置如下:ADMUX=1MUX0|1MUX1|1REFS0;ADMUX=1MUX0|1MU
43、X1|1REFS0;设置单次采样模式:ADCSRA|=1ADSC;5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器【例5-2】ADC转换时钟大于200Khz,小于1000Khz,自动转换模式的连续触发方式,转换结果左对齐,模拟通道为ADC5,AREF=AVCC,中断方式读取转换结果。解:转换时钟在200Khz1000Khz之间,系统时钟=8M=8000Khz,设分频系数为16,则转换时钟为8000/16=500Khz,设置自动触发方式故ADATE需置1,设置中断方式读取结果故ADIE需设为1,对ADCSRA寄存器编程如下:ADCSRA=1ADEN|1ADAT
44、E|1ADIE|1ADPS0|1ADPS2;ADLAR置位选择A/D转换结果为左对齐,选择ADC5模拟输入通道,对ADMUX寄存器初始化如下:ADMUX=1MUX0|1MUX2|1RES0|1ADLAR;5.3.3 A/D5.3.3 A/D转换器的应用转换器的应用5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器【例5-3】ADC转换时钟大于500Khz,小于1000Khz,自动转换模式,模拟通道为ADC2,Vref=AVCC,使用T/C0溢出事件触发采样,转换结果右对齐,使采样速率=25khz,中断方式读取结果。解:分频系数设为16即可满足转换时钟的要求,设
45、置自动触发方式,中断方式读取结果,初始化ADCSRA寄存器:ADCSRA=1ADEN|1ADATE|1ADPS2|1ADIE;选择模拟输入通道和参考电压:ADMUX=1MUX1|1REFS0;自动触发模式下选择T/C0溢出触发A/D转换采样:SFIOR|=1ADTS2;5.3.3 A/D5.3.3 A/D转换器的应用转换器的应用5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器采样率为25Khz,即每秒钟采样25000个模拟信号值,则定时器的溢出时间为采样率的倒数即40us,计算定时器溢出方式的初始值:TCNT0=216;对定时器T/C0进行初始化:TCCR0
46、=1CS01;开总中断:SREG|=0 x80;需要注意的是Atmega16集成的A/D转换器在连续转换模式下完成一次转换约需要13个时钟,因此与采样率之间应满足这样的关系:采样率13转换时钟频率。显然本例中采样率为25Khz,2513=325500满足要求。5.3.3 A/D5.3.3 A/D转换器的应用转换器的应用5.5.3 ATmega163 ATmega16集成集成 A/D A/D转换器转换器【练 习】例5-1转换数字量,查询方式实现,模拟信号通过电位器输入到ADC3,转换结果显示在4位数码管,输入0V-5V,显示01023。5.3.3 A/D5.3.3 A/D转换器的应用转换器的应用
47、5.5.4 4 项目设计项目设计 设计一个简易电压表,能测量0-5V输入电压。模拟电压从ADC0端输入,调节电位使ADC0端电压在0-5V之间变化,将A/D采样转换结果显示在4位数码管中,数码管显示的数值与输入模拟电压相等,单位为V,使用单次采样,查询方式实现。5.4.1 5.4.1 数字电压表数字电压表1.1.项目要求项目要求5.5.4 4 项目设计项目设计 按例5-1方式完成A/D转换器寄存器的初始化,设置通道号、参考电压源、转换时钟、触发方式等。采样结果放在ADC寄存器中。ADC为16bit寄存器,因此需将该值放在int类型的变量中。ADC采样数值为10bit的离散化数字,对单端信号而其
48、值为无符号数,数的范围在0000(0 x00)-1023(0 x3ff)之间。即当输入模拟电压为0V时ADC=0000,当输入的模拟电压为5V时ADC=1023,如果直接将ADC的值进行BCD码转换并显示显然显示的数值在0000-1023,无法与输入模拟电压0.000V-5.00V对应,结果不直观。5.4.1 5.4.1 数字电压表数字电压表2.2.项目分析项目分析5.5.4 4 项目设计项目设计考虑公式5-4:5.4.1 5.4.1 数字电压表数字电压表2.2.项目分析项目分析显然,将ADC数值代入5-4右边的dn进行运算,得到的结果即为模拟电压输入值,将该值显示在数码管中的结果为0.000
49、V-5.000V之间。如果直接将Vref=5V代入式5-4其结果仅为0-5的整数,余下数字无法显示,为了使余下的数字能完整显示,将VREF扩大1000倍,即将分子小数点往右移动3位,这样公式5-4的结果为0000-5000的整数,分辨率为5V/1024,约为5mV。在数码管显示的时候再将小数点往左移动3位,这样显示结果就变成了0.000-5.000V,显示结果正常。5.5.4 4 项目设计项目设计考虑公式5-4:5.4.1 5.4.1 数字电压表数字电压表2.2.项目分析项目分析 需要注意的是,在公式5-4运算中应先做乘法,将VREF扩大1000倍后乘以dn,但结果已超过65535,应放在lo
50、ng变量中,也可以使用强制转换符,然后再做乘法运算,否则运算结果不正确。5.5.4 4 项目设计项目设计5.4.1 5.4.1 数字电压表数字电压表2.2.项目分析项目分析5.5.4 4 项目设计项目设计5.4.1 5.4.1 数字电压表数字电压表3.3.项目实现项目实现 根据项目设计内容,绘制原理图如图5-10,切记将AVCC、AREF引脚接上VCC。编写程序如下:5.5.4 4 项目设计项目设计5.4.1 5.4.1 数字电压表数字电压表3.3.项目实现项目实现5.5.4 4 项目设计项目设计5.4.1 5.4.1 数字电压表数字电压表3.3.项目实现项目实现5.5.4 4 项目设计项目设