第9章数模转换器与模数转换器本章学习目标了解数模转换器_第1页
第9章数模转换器与模数转换器本章学习目标了解数模转换器_第2页
第9章数模转换器与模数转换器本章学习目标了解数模转换器_第3页
第9章数模转换器与模数转换器本章学习目标了解数模转换器_第4页
免费预览已结束,剩余102页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1/105 第第9章章 数模转换器与模数转换器数模转换器与模数转换器本章学习目标本章学习目标了解数模转换器的工作原理及性能指标了解数模转换器的工作原理及性能指标掌握模数转换器的应用掌握模数转换器的应用了解数模转换器的工作原理及性能指标了解数模转换器的工作原理及性能指标掌握数模转换器的应用掌握数模转换器的应用2/105随着数字电子技术及计算机技术的广泛普及与应用,随着数字电子技术及计算机技术的广泛普及与应用,数字信号的传输与处理日趋普遍。数字信号的传输与处理日趋普遍。自然形态下的物理量多以自然形态下的物理量多以模拟量的形式模拟量的形式存在的,如温存在的,如温度、湿度、压力、流量、速度等,实际生产

2、、生活和度、湿度、压力、流量、速度等,实际生产、生活和科学实验中还会遇到化学量、生物量(包括医学)等。科学实验中还会遇到化学量、生物量(包括医学)等。从信号工程的角度来看,要进行信号的计算机处理,从信号工程的角度来看,要进行信号的计算机处理,上述所有的物理量、化学量和生物量等都需要使用相上述所有的物理量、化学量和生物量等都需要使用相应的传感器,将其转换成应的传感器,将其转换成电信号(称之为模拟量)电信号(称之为模拟量)将模拟量转换为计算机能够识别处理的将模拟量转换为计算机能够识别处理的数字量数字量,而后,而后再进行信号的传输、处理、存储、显示和控制。再进行信号的传输、处理、存储、显示和控制。3

3、/105同样,计算机控制外部设备时,如电动调节阀、同样,计算机控制外部设备时,如电动调节阀、调速系统等,需要将计算机输出的数字信号变调速系统等,需要将计算机输出的数字信号变换成外设能够接受的模拟信号。换成外设能够接受的模拟信号。将模拟量转换成数字量的器件称为模数转换器将模拟量转换成数字量的器件称为模数转换器(Analog to Digital Converter,ADC),也称),也称为为A/D转换器或者转换器或者ADC器件;器件;将数字量转换成模拟量的器件称为数模转换器将数字量转换成模拟量的器件称为数模转换器(Digital to Analog Converter,DAC),也称),也称为为

4、D/A转换器。转换器。4/105以单片机为核心,具有模拟量输入和输出的应以单片机为核心,具有模拟量输入和输出的应用系统结构如图所示。用系统结构如图所示。图9-1 具有模拟量输入输出的单片机系统 5/105传感器和变送器的区别传感器和变送器的区别检测仪表在模拟电子技术条件下,一般是包括检测仪表在模拟电子技术条件下,一般是包括传感器、检测点取样设备及放大器(进行抗干传感器、检测点取样设备及放大器(进行抗干扰处理及信号传输),当然还有电源及现场显扰处理及信号传输),当然还有电源及现场显示部分(可选择)。示部分(可选择)。传感器是一种把非电量转变成电信号的器件。传感器是一种把非电量转变成电信号的器件。

5、电信号一般分为连续量、离散量两种,实际上电信号一般分为连续量、离散量两种,实际上还可分成模拟量、开关量、脉冲量等。还可分成模拟量、开关量、脉冲量等。6/105模拟信号一般采用模拟信号一般采用4-20mA DC的标准信号传输。的标准信号传输。数字化过程中,常常把传感器和微处理器及通数字化过程中,常常把传感器和微处理器及通信网络接口封装在一个器件(称为检测仪表)信网络接口封装在一个器件(称为检测仪表)中,完成信息获取、处理、传输、存贮等功能。中,完成信息获取、处理、传输、存贮等功能。在自动化仪表中经常把检测仪表称为变送器,在自动化仪表中经常把检测仪表称为变送器,如温度变送器、压力变送器等。如温度变

6、送器、压力变送器等。7/105本章内容安排本章内容安排本章首先介绍模数转换器的工作原理及性能指本章首先介绍模数转换器的工作原理及性能指标;标;然后介绍模数转换器然后介绍模数转换器ADS7852与单片机的接口与单片机的接口方法及编程应用,介绍方法及编程应用,介绍STC15F2K60S2单片机单片机片内集成模数转换模块的使用;片内集成模数转换模块的使用;最后介绍数模转换器最后介绍数模转换器TLV5616与单片机的接口与单片机的接口方法及编程应用。方法及编程应用。8/1059.1模数转换器的工作原理及性能指标一、模数转换器的工作原理一、模数转换器的工作原理根据转换的工作原理不同,模数转换器可以分根据

7、转换的工作原理不同,模数转换器可以分为计数为计数-比较式、逐次逼近式和双斜率积分式。比较式、逐次逼近式和双斜率积分式。计数计数-比较式模数转换器结构简单,价格便宜,比较式模数转换器结构简单,价格便宜,转换速度慢,较少采用。转换速度慢,较少采用。下面主要介绍逐次逼近式和双斜率积分式模数下面主要介绍逐次逼近式和双斜率积分式模数转换器的工作原理。转换器的工作原理。9/1051、逐次逼近式模数转换器的工作原理、逐次逼近式模数转换器的工作原理逐次逼近式模数转换器电路框图如图所示。逐次逼近式模数转换器电路框图如图所示。图9-2 逐次逼近式模数转换器的工作原理10/105逐次逼近式模数转换器主要由逐次逼近式

8、模数转换器主要由逐次逼近寄存器逐次逼近寄存器SAR、数字数字/电压转换器电压转换器、比较器比较器、时序及控时序及控制逻辑制逻辑等部分组成。等部分组成。11/105工作过程工作过程当模数转换器收到当模数转换器收到“转换命令转换命令”并清除并清除SAR寄存器后,寄存器后,控制电路先设定控制电路先设定SAR中的最高位为中的最高位为“1”,其余位为,其余位为“0”,此预测数据被送至,此预测数据被送至D/A转换器,转换成电压转换器,转换成电压Vc。然后将然后将Vc与输入模拟电压与输入模拟电压Vx在高增益的比较器中进行在高增益的比较器中进行比较,比较器的的输出为逻辑比较,比较器的的输出为逻辑0或逻辑或逻辑

9、1。如果如果VxVc,说明此位置,说明此位置“1”是对的,应予保留;如是对的,应予保留;如果果VxVc,说明此位置,说明此位置“1”不合适,应予清除。不合适,应予清除。按该方法继续对次高位进行转换、比较和判断,决定按该方法继续对次高位进行转换、比较和判断,决定次高位应取次高位应取“1”还是取还是取“0”。重复上述过程,直至确定重复上述过程,直至确定SAR最低位为止。最低位为止。该过程完成后,状态线改变状态,表示已完成一次完该过程完成后,状态线改变状态,表示已完成一次完整的转换,整的转换,SAR中的内容就是与输入的模拟电压对应中的内容就是与输入的模拟电压对应的二进制数字代码。的二进制数字代码。1

10、2/1052、双积分式模数转换器的工作原理、双积分式模数转换器的工作原理双积分式模数转换器转换方法的抗干扰能力比双积分式模数转换器转换方法的抗干扰能力比逐次逼近式模数转换器强。逐次逼近式模数转换器强。该方法的基础是测量两个时间:该方法的基础是测量两个时间:一个是模拟输入电压向电容充电的固定时间一个是模拟输入电压向电容充电的固定时间另一个是在已知参考电压下放电所需的时间另一个是在已知参考电压下放电所需的时间模拟输入电压与参考电压的比值就等于上述两模拟输入电压与参考电压的比值就等于上述两个时间值之比。个时间值之比。13/105双积分模数转换器的组成框图如图所示。双积分模数转换器的组成框图如图所示。

11、图9-3 双积分式模数转换器的组成框图14/105双积分式模数转换器优点双积分式模数转换器优点具有精度高、抗干扰能力强的特点,在实际工具有精度高、抗干扰能力强的特点,在实际工程中得到了使用。程中得到了使用。由于逐次逼近式模数转换技术能很好的兼顾速由于逐次逼近式模数转换技术能很好的兼顾速度和精度,故在度和精度,故在16位以下的模数转换器中得到位以下的模数转换器中得到了广泛应用。了广泛应用。15/105二、模数转换器的性能指标二、模数转换器的性能指标A/D转换器是实现单片机数据采集的常用外围转换器是实现单片机数据采集的常用外围器件。器件。A/D转换器的品种繁多,性能各异,在转换器的品种繁多,性能各

12、异,在设计数据采集系统时,首先碰到的问题就是如设计数据采集系统时,首先碰到的问题就是如何选择合适的何选择合适的A/D转换器以满足系统设计的要转换器以满足系统设计的要求。求。选择选择A/D转换器需要综合考虑多项因素,如系转换器需要综合考虑多项因素,如系统技术指标、成本、功耗、安装等。统技术指标、成本、功耗、安装等。16/1051、分辨率、分辨率分辨率是分辨率是A/D转换器能够分辨最小信号的能转换器能够分辨最小信号的能力,表示数字量变化一个相邻数码所需输入力,表示数字量变化一个相邻数码所需输入模拟电压的变化量。模拟电压的变化量。分辨率越高,转换时对输入模拟信号变化的分辨率越高,转换时对输入模拟信号

13、变化的反应就越灵敏。反应就越灵敏。17/105例如,例如,8位位A/D转换器能够分辨出满刻度的转换器能够分辨出满刻度的1/256,若满刻度输入电压为,若满刻度输入电压为5V,则该,则该8位位A/D转换器能够分辨出输入电压变化的最小值为转换器能够分辨出输入电压变化的最小值为19.5mV。分辨率常用分辨率常用A/D转换器输出的二进制位数表示。转换器输出的二进制位数表示。常见的常见的A/D转换器有转换器有8位、位、10位、位、12位、位、14位位和和16位等。位等。18/105一般把一般把8位以下的位以下的ADC器件归为低分辨率器件归为低分辨率ADC器件;器件;912位的位的ADC器件称为中分辨率器

14、件称为中分辨率ADC器件;器件;13位以上的位以上的ADC器件称为高分辨率器件称为高分辨率ADC器件。器件。如何选择如何选择 10位以下的位以下的ADC器件误差较大,器件误差较大,11位以上位以上对减小误差并无太大贡献,但对对减小误差并无太大贡献,但对ADC器件的器件的要求却提得过高。要求却提得过高。因此,取因此,取10位或位或11位是合适位是合适的。的。由于模拟信号先经过测量装置,再经由于模拟信号先经过测量装置,再经A/D转换器转换后才进行处理,因此,总的误差是转换器转换后才进行处理,因此,总的误差是由测量误差和量化误差共同构成的。由测量误差和量化误差共同构成的。19/105A/D转换器的精

15、度应与测量装置的精度相匹配。转换器的精度应与测量装置的精度相匹配。一方面要求量化误差在总误差中所占的比重要一方面要求量化误差在总误差中所占的比重要小,使它不显著地扩大测量误差;小,使它不显著地扩大测量误差;另一方面必须根据目前测量装置的精度水平,另一方面必须根据目前测量装置的精度水平,对对A/D转换器的位数提出恰当的要求。转换器的位数提出恰当的要求。20/1052、通道、通道有的单芯片内部含有多个有的单芯片内部含有多个ADC模块,可同时模块,可同时实现多路信号的转换;实现多路信号的转换;常见的多路常见的多路ADC器件只有一个公共的器件只有一个公共的ADC模模块,由一个多路转换开关实现分时转换。

16、块,由一个多路转换开关实现分时转换。3、基准电压、基准电压基准电压有内、外基准和单、双基准之分。基准电压有内、外基准和单、双基准之分。21/1054、转换速率、转换速率转换时间转换时间:A/D转换器从启动转换到转换结束,转换器从启动转换到转换结束,输出稳定的数字量,需要的一定的转换时间。输出稳定的数字量,需要的一定的转换时间。转换速率:转换速率:转换时间的倒数就是每秒钟能完成转换时间的倒数就是每秒钟能完成的转换次数。的转换次数。A/D转换器的型号不同,转换时间不同。逐次转换器的型号不同,转换时间不同。逐次逼近式单片逼近式单片A/D转换器转换时间的典型值为转换器转换时间的典型值为1.0200s。

17、22/105应根据输入信号的最高频率来确定应根据输入信号的最高频率来确定ADC转换速度,保转换速度,保证转换器的转换速率要高于系统要求的采样频率。证转换器的转换速率要高于系统要求的采样频率。确定确定A/D转换器的转换速率时,应考虑系统的采样速转换器的转换速率时,应考虑系统的采样速率。率。例如,如果用转换时间为例如,如果用转换时间为100s的的A/D转换器,则其转转换器,则其转换速率为换速率为10KHz。根据采样定理和实际需要,一个周。根据采样定理和实际需要,一个周期的波形需采期的波形需采10个样点,那么这样的个样点,那么这样的A/D转换器最高转换器最高也只有处理频率为也只有处理频率为1KHz的

18、模拟信号。对一般的单片的模拟信号。对一般的单片机而言,在如此高的采样频率下,要在采样时间内完机而言,在如此高的采样频率下,要在采样时间内完成成A/D转换以外的工作,如读取数据、再启动、保存转换以外的工作,如读取数据、再启动、保存数据、循环计数等已经比较困难了。数据、循环计数等已经比较困难了。23/1055、采样、采样/保持器保持器采样采样/保持也称为跟踪保持也称为跟踪/保持(保持(Track/Hold缩写缩写T/H)。)。原则上采集直流和变化非常缓慢的模拟信号时原则上采集直流和变化非常缓慢的模拟信号时可不用采样保持器。可不用采样保持器。对于其他模拟信号一般都要加采样保持器。如对于其他模拟信号一

19、般都要加采样保持器。如果信号频率不高,果信号频率不高,A/D转换器的转换时间短,转换器的转换时间短,即使用高速即使用高速A/D转换器时,也可不用采样转换器时,也可不用采样/保持保持器。器。24/1056、量程、量程量程即所能转换的电压范围,如量程即所能转换的电压范围,如2.5V、5V和和10V。7、满刻度误差、满刻度误差满度输出时对应的输入信号与理想输入信号值满度输出时对应的输入信号与理想输入信号值之差称为满刻度误差。之差称为满刻度误差。8、线性度、线性度实际转换器的转移函数与理想直线的最大偏移实际转换器的转移函数与理想直线的最大偏移称为线性度。称为线性度。25/1059、数字接口方式、数字接

20、口方式根据转换的数据输出接口方式,根据转换的数据输出接口方式,A/D转换器可转换器可以分为并行接口和串行接口两种方式。以分为并行接口和串行接口两种方式。并行方式一般在转换后可直接接收,但芯片的并行方式一般在转换后可直接接收,但芯片的引脚比较多;引脚比较多;串行方式所用芯片引脚少,封装小,但需要软串行方式所用芯片引脚少,封装小,但需要软件处理才能得到所需要的数据。件处理才能得到所需要的数据。在单片机在单片机I/O引脚不多的情况下,使用串行器引脚不多的情况下,使用串行器件可以节省件可以节省I/O资源。资源。但是并行器件具有明显的转换速度优势。在转但是并行器件具有明显的转换速度优势。在转换速度要求较

21、高的情况下应选用并行器件。换速度要求较高的情况下应选用并行器件。26/10510、模拟信号类型、模拟信号类型通常通常ADC器件的模拟输入信号都是电压信号。器件的模拟输入信号都是电压信号。同 时 根 据 信 号 是 否 过 零 , 还 分 成 单 极 性同 时 根 据 信 号 是 否 过 零 , 还 分 成 单 极 性(Unipolar)信号和双极性()信号和双极性(Bipolar)信号。)信号。11、电源电压、电源电压电源电压有单电源,双电源和不同电压范围之电源电压有单电源,双电源和不同电压范围之分,早期的分,早期的ADC器件要有器件要有+15V/-15V,如果选,如果选用单用单+5V电源的芯

22、片则可以使用单片机系统电电源的芯片则可以使用单片机系统电源。源。27/10512、功耗、功耗一般一般CMOS工艺的芯片功耗较低,对于电池供工艺的芯片功耗较低,对于电池供电的手持系统对功耗要求比较高的场合一定要电的手持系统对功耗要求比较高的场合一定要注意功耗指标。注意功耗指标。13、封装、封装常见的封装有双列直插封装(常见的封装有双列直插封装(Dual In-line Package, DIP)和表贴型()和表贴型(Surface Mount Devices, SMD)封装。)封装。28/1059.2模数转换器的应用模数转换器的应用 本节首先分别介绍德州仪器公司生产的本节首先分别介绍德州仪器公司

23、生产的A/D转换器转换器ADS7852的应用方法,然后介绍的应用方法,然后介绍STC15F2K60S2单片机片内集成的单片机片内集成的ADC模块的模块的使用。使用。29/105一、一、12位并行位并行A/D转换器转换器ADS7852及其应用及其应用1、ADS7852简介简介ADS7852是德州仪器公司(是德州仪器公司(Texas Instruments,TI)生产的一款高速逐次逼近式)生产的一款高速逐次逼近式A/D转换器。转换器。30/105具有以下主要特点:具有以下主要特点:带有采样保持器带有采样保持器具有具有8路模拟量输入、并行路模拟量输入、并行12位输出位输出内部带有内部带有2.5V的参

24、考电压源,输入的采样电压的参考电压源,输入的采样电压可以从可以从0V到到2倍的参考电压值倍的参考电压值500kHz的采样频率,转换时间最大只需的采样频率,转换时间最大只需1.75s单极性单极性5V工作电压工作电压低功耗:低功耗:13mW封装形式为封装形式为TQFP工作温度为工作温度为-40到到+8031/105ADS7852的引脚图如图的引脚图如图9-4所示。所示。图9-4 ADS7852的引脚图32/105各引脚的功能介绍如下:各引脚的功能介绍如下:AIN0AIN7:8路模拟量输入引脚。路模拟量输入引脚。DB0DB11:12位数字量输出,其中位数字量输出,其中DB0为最低位,为最低位,DB1

25、1为最高位。为最高位。A0A2:8路模拟输入的地址选择。路模拟输入的地址选择。Vss:电源电压,正常接:电源电压,正常接+5V。VREF:外接参考电压。若不用外接参考电压,可在此:外接参考电压。若不用外接参考电压,可在此引脚和电源地之间接引脚和电源地之间接2.2F和和0.1F去耦电容各一个。去耦电容各一个。AGND和和DGND:分别为模拟地和数字地。:分别为模拟地和数字地。CLK:外部时钟输入(:外部时钟输入(200KHz8MHz),时钟的选),时钟的选择取决于采样速度择取决于采样速度fCLK=16*fSAMPLE。33/105 :忙指示输出,低电平有效。转换期间保:忙指示输出,低电平有效。转

26、换期间保持低电平,转换结束后变为高电平。持低电平,转换结束后变为高电平。 :片选信号,输入,低电平有效。:片选信号,输入,低电平有效。/CS和和/WR变低时,开始一次新的转换。变低时,开始一次新的转换。 :读信号,输入,低电平有效。:读信号,输入,低电平有效。/RD和和/CS一起有效时用来读取转换后的数据。也用来设一起有效时用来读取转换后的数据。也用来设置使芯片工作于省电模式。置使芯片工作于省电模式。 :写信号,输入,低电平有效。:写信号,输入,低电平有效。/WR与与/CS同时有效时开始一次新的转换,也用来选择模同时有效时开始一次新的转换,也用来选择模拟量输入通道。拟量输入通道。BUSYCSR

27、DWR34/1052、ADS7852的内部结构的内部结构ADS7852的内部结构如图所示。的内部结构如图所示。图9-5 ADS7852的内部结构图35/105ADS7852是逐次逼近型是逐次逼近型A/D转换器转换器一个一个8通道模拟开关通道模拟开关通信双向存取控制器(通信双向存取控制器(CDAC)比较器(比较器(Comparator)逐次比较逻辑寄存器(逐次比较逻辑寄存器(SAR)内部基准电压源内部基准电压源参考电压缓冲器参考电压缓冲器输出锁存和三态驱动器等。输出锁存和三态驱动器等。转换结果通过三态并行数据总线输出。转换结果通过三态并行数据总线输出。36/105工作过程工作过程首先置低引脚,然

28、后通过设置首先置低引脚,然后通过设置A2、A1和和A0的值的值来选择输入通道(来选择输入通道(000111分别对应分别对应07通通道),置低道),置低/WR引脚开始启动引脚开始启动A/D转换。转换。在在A/D转换期间,转换期间,/BUSY引脚输出低电平并保持引脚输出低电平并保持到转换结束。转换完成后,到转换结束。转换完成后, /BUSY引脚输出变引脚输出变为高电平,在为高电平,在DB11DB0上输出上输出12位有效数据,位有效数据,等待处理器读取,一次转换完成。等待处理器读取,一次转换完成。 /BUSY引脚引脚的上升沿可以锁存的上升沿可以锁存12位转换数据。位转换数据。需要注意的是,在需要注意

29、的是,在A/D转换之后,当转换之后,当/RD和和/CS变为高电平时,变为高电平时,A1和和A0脚应保持低电平,否则脚应保持低电平,否则ADS7852将进入掉电模式。将进入掉电模式。37/1053、通道选择、通道选择ADS7852有有8路输入,通过设置路输入,通过设置A0、A1、A2来选择哪一路输入,具体的选择控制字如表所来选择哪一路输入,具体的选择控制字如表所示。示。A2A1A0通道号通道号000通道通道0001通道通道1010通道通道2011通道通道3100通道通道4101通道通道5110通道通道6111通道通道7表9-1 ADS7852的通道选择控制字38/1054、ADS78752的接口

30、应用的接口应用【例【例9-1】ADS78752与与STC15F2K60S2单片机的单片机的接口电路如图所示。接口电路如图所示。图9-6 ADS78752的接口连接39/105硬件电路说明硬件电路说明由于由于ADS7852是是12位输出,而位输出,而STC15F2K60S2单单片 机 的 数 据 线 只 有片 机 的 数 据 线 只 有 8 位 , 所 以 使 用位 , 所 以 使 用STC15F2K60S2的的P0口与口与ADS7852的低的低8位数据位数据(DB0DB7)相连。)相连。ADS7852的高的高4位(位(DB8DB11)通过锁存器)通过锁存器74LS573与与STC15F2K60

31、S2的的Pl口低口低4位位(P1.0P1.3)相连。)相连。40/105当当A/D转换结束转换结束STC15F2K60S2读取转换结果读取转换结果时,数据的低时,数据的低8位(位(DB0DB7)被直接读入)被直接读入STC15F2K60S2内部,而在内部,而在/RD信号的上升沿,信号的上升沿,数据的高数据的高4位(位(DB8DB11)被)被74HC573锁存锁存在在STC15F2K60S2的的Pl口低口低4位(位(P1.0P1.3),),等待被读取。等待被读取。STC15F2K60S2单片机的时钟输出单片机的时钟输出CLKOUT0作为作为ADS7852的时钟,频率设置为的时钟,频率设置为250

32、KHz。41/105ADS7852的的/BUSY信号与信号与STC15F2K60S2的的P 3 . 2 连 接 。 在连 接 。 在 A / D 转 换 结 束 后 , 通 知转 换 结 束 后 , 通 知STC15F2K60S2及时读取数据。及时读取数据。在电路设计中,一般在在电路设计中,一般在Vss和地之间接一个和地之间接一个0.1uF的瓷片电容和的瓷片电容和10uF的钽电容,起滤波和的钽电容,起滤波和解耦的作用。解耦的作用。42/105示例程序代码如下:示例程序代码如下:#include stc15.h /包含包含STC15F2K60S2单片机寄存器定义文件单片机寄存器定义文件/P2.7

33、 为片选信号为片选信号; P3.5/T0CLK0为提供为提供AD转换时钟转换时钟sbit busy=P32; /P3.2 为为AD转换状态检测位转换状态检测位sbit A0=P15; /P1.5,P1.6,P1.7为通道选择位为通道选择位sbit A1=P16;sbit A2=P17; void main(void) int ADdata;char highdata,lowdata;char xdata *ADS7852; ADS7852=0 x7fff; /AD7852的地址的地址TMOD=0 x02; /T0工作在方式工作在方式2,8位自动重装位自动重装TH0=254; /12/12/2/

34、2=0.25MHZINT_CLKO=INT_CLKO|0 x1; /T0输出时钟输出时钟TR0=1;/启动启动T0A0=0; A1=0; A2=0; /选择通道选择通道0 *ADS7852=0 x00; /写操作,开始写操作,开始AD转换转换43/105while(1) if(busy=1)/判断是否转换完毕判断是否转换完毕lowdata=*ADS7852; ADdata=P1; ADdata= (ADdata8) +lowdata; /数据处理数据处理 *ADS7852=0 x00; /开始下一次开始下一次AD转换转换44/105二、二、STC15F2K60S2集成的集成的A/D模块的结构及

35、其模块的结构及其使用使用STC15F2K60S2单片机集成有单片机集成有8路路10位高速电位高速电压输入型模数转换器(压输入型模数转换器(ADC),速度可达到),速度可达到300KHz(30万次万次/秒),可做温度检测、压力秒),可做温度检测、压力检测、电池电压检测、按键扫描、频谱检测等。检测、电池电压检测、按键扫描、频谱检测等。45/1051、模数转换器的结构及相关寄存器模数转换器的结构及相关寄存器STC15F2K60S2单片机片内集成单片机片内集成8通道通道10位模位模数转换器(数转换器(ADC)。)。ADC输入通道与输入通道与P1口复用,上电复位后口复用,上电复位后P1口口为弱上拉型为弱

36、上拉型I/O口,用户可以通过软件设置将口,用户可以通过软件设置将8路中的任何一路设置为路中的任何一路设置为ADC功能,不作为功能,不作为ADC使用的口可继续作为使用的口可继续作为I/O口使用。口使用。46/105(1)模数转换器的结构)模数转换器的结构STC15F2K60S2单片机单片机ADC的结构如图所示。的结构如图所示。图图9-7 STC15F2K60S2单片机单片机ADC结构图结构图 47/105STC15F2K60S2的的ADC组成组成多路选择开关多路选择开关比较器比较器逐次比较寄存器逐次比较寄存器10位位DAC转换结果寄存器(转换结果寄存器(ADC_RES和和ADC_RESL)ADC

37、控制寄存器控制寄存器ADC_CONTR48/105STC15F2K60S2的的ADC转换原理转换原理STC15F2K60S2的的ADC是逐次比较型模数转换是逐次比较型模数转换器。器。逐次比较型逐次比较型ADC由一个比较器和由一个比较器和D/A转换器构转换器构成,通过逐次比较逻辑,从最高位(成,通过逐次比较逻辑,从最高位(MSB)开)开始,顺序地对每一输入电压与内置始,顺序地对每一输入电压与内置D/A转换器转换器输出进行比较,经多次比较,使转换所得的数输出进行比较,经多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。字量逐次逼近输入模拟量对应值。49/105(2)参考电压源)参考电压源STC

38、15F2K60S2单片机单片机ADC模块的参考电压源模块的参考电压源是输入工作电压是输入工作电压Vcc,一般不用外接参考电压,一般不用外接参考电压源。源。如果如果Vcc不稳定(例如电池供电的系统中,电不稳定(例如电池供电的系统中,电池电压常常在池电压常常在5.3V-4.2V之间漂移),之间漂移), 则可以则可以在在8路路A/D转换的一个通道外接一个稳定的参转换的一个通道外接一个稳定的参考电压源,计算出此时的工作电压考电压源,计算出此时的工作电压Vcc,再计,再计算出其他几路算出其他几路A/D转换通道的电压。转换通道的电压。50/105(3)与)与ADC有关的特殊功能寄存器有关的特殊功能寄存器1

39、)P1口模拟功能控制寄存器口模拟功能控制寄存器P1ASFP1ASF(地址为(地址为9DH,复位值为,复位值为00H)各位的)各位的定义如下:定义如下:位号位号D7D6D5D4D3D2D1D0位名称位名称P17ASFP16ASFP15ASFP14ASFP13ASFP12ASFP11ASFP10ASF51/105如果要使用相应口的模拟功能,需将如果要使用相应口的模拟功能,需将P1ASF特特殊功能寄存器中的相应位置为殊功能寄存器中的相应位置为1。如,若要使用如,若要使用P1.6的模拟量功能,则需要将的模拟量功能,则需要将P16ASF设置为设置为1。注意,注意,P1ASF寄存器不能位寻址,可以使用汇寄

40、存器不能位寻址,可以使用汇编语言指令编语言指令ORL P1ASF, #40H,也可以使用,也可以使用C语言语句语言语句P1ASF |= 0 x40;位号位号D7D6D5D4D3D2D1D0位名称位名称P17ASFP16ASFP15ASFP14ASFP13ASFP12ASFP11ASFP10ASF52/1052)ADC控制寄存器控制寄存器ADC_CONTRADC_CONTR(地址为(地址为BCH,复位值为,复位值为00H)各位的定义如下:各位的定义如下:位号位号D7D6D5D4D3D2D1D0位名位名称称ADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1

41、CHS0ADC_POWER:ADC电源控制位。电源控制位。0:关闭:关闭ADC电源。电源。1:打开:打开ADC电源。电源。53/105说明说明建议进入空闲模式前,将建议进入空闲模式前,将ADC电源关闭,即电源关闭,即ADC_POWER =0。启动启动A/D转换前一定要确认转换前一定要确认ADC电源已打开,电源已打开,A/D转换结束后关闭转换结束后关闭ADC电源可降低功耗,也电源可降低功耗,也可不关闭。可不关闭。初次打开内部初次打开内部ADC转换模拟电源,需适当延时,转换模拟电源,需适当延时,等内部模拟电源稳定后,再启动等内部模拟电源稳定后,再启动A/D转换。转换。建议启动建议启动A/D转换后,

42、在转换后,在A/D转换结束之前,不转换结束之前,不改变任何改变任何I/O口的状态,有利于提高口的状态,有利于提高A/D转换的转换的精度。精度。54/105SPEED1、SPEED0:ADC转换速度控制位。转换速度控制位。SPEED1SPEED0A/D转换所需时间转换所需时间1190个时钟周期转换一次个时钟周期转换一次 ,CPU工作频率工作频率21MHz时,时, A/D转换速度约转换速度约300KHz,9位精度位精度10180个时钟周期转换一次,可达到个时钟周期转换一次,可达到10位精度位精度01360个时钟周期转换一次,可达到个时钟周期转换一次,可达到10位精度位精度00540个时钟周期转换一

43、次,可达到个时钟周期转换一次,可达到10位精度位精度位位号号D7D6D5D4D3D2D1D0位位名名称称ADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS0表表9-2 ADC转换速度控制转换速度控制55/105STC15F2K60S2单片机单片机A/D转换模块的时钟转换模块的时钟外部晶体时钟或内部外部晶体时钟或内部R/C振荡器所产生的系统振荡器所产生的系统时钟,不使用时钟分频寄存器时钟,不使用时钟分频寄存器CLK_DIV对系对系统时钟分频后所产生的供给统时钟分频后所产生的供给CPU工作所使用的工作所使用的时钟。时钟。优点优点:不仅可以让:不仅可以

44、让ADC用较高的频率工作,提用较高的频率工作,提高高A/D的转换速度;而且可以让的转换速度;而且可以让CPU用较低的用较低的频率工作,降低系统的功耗。频率工作,降低系统的功耗。56/105需要注意需要注意设置设置ADC_CONTR控制寄存器的语句执行后,控制寄存器的语句执行后,要经过要经过4个个CPU时钟的延时时钟的延时,其值才能够保证,其值才能够保证被设置进被设置进ADC_CONTR控制寄存器。控制寄存器。典型代码如下:典型代码如下: MOV ADC_CONTR, #DATA NOP NOP NOP NOP MOV A, ADC_CONTR ;经过经过4个时钟延时个时钟延时,才能正确读到才能

45、正确读到ADC_CONTR控制控制寄存器的值寄存器的值57/105ADC_FLAG:A/D转换结束标志位。转换结束标志位。 A/D转换完成后,转换完成后,ADC_FLAG = 1,要由软件,要由软件清零。不管清零。不管A/D转换完成后由该位申请产生中转换完成后由该位申请产生中断,还是由软件查询该标志位判断断,还是由软件查询该标志位判断A/D转换是转换是否结束,当否结束,当A/D转换完成后,转换完成后,ADC_FLAG = 1,一定要软件清一定要软件清0。位位号号D7D6D5D4D3D2D1D0位位名名称称ADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS

46、1CHS058/105CHS2、CHS1、CHS0:模拟输入通道选择,:模拟输入通道选择,如表所示。如表所示。用用MOV 语句对语句对ADC_CONTR寄存器进行赋值。寄存器进行赋值。位位号号D7D6D5D4D3D2D1D0位位名名称称ADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS0CHS2CHS1CHS0模拟输入通道选择模拟输入通道选择000选择选择P1.0作为作为A/D输入来用输入来用001选择选择P1.1作为作为A/D输入来用输入来用010选择选择P1.2作为作为A/D输入来用输入来用011选择选择P1.3作为作为A/D输入来用输入来用

47、100选择选择P1.4作为作为A/D输入来用输入来用101选择选择P1.5作为作为A/D输入来用输入来用110选择选择P1.6作为作为A/D输入来用输入来用111选择选择P1.7作为作为A/D输入来用输入来用表9-3 模拟输入通道选择59/1053)A/D转换结果存储格式控制及转换结果存储格式控制及A/D转换结果寄存器转换结果寄存器ADC_RES、ADC_RESL特殊功能寄存器特殊功能寄存器ADC_RES(地址为(地址为BDH,复位值为,复位值为00H)和)和ADC_RESL(地址为(地址为BEH,复位值为,复位值为00H)用于保存用于保存A/D转换结果转换结果。特殊功能寄存器特殊功能寄存器C

48、LK_DIV中的中的ADRJ位用于设置位用于设置A/D转转换结果的存储格式。换结果的存储格式。 ADRJ位在位在时钟分频寄存器时钟分频寄存器CLK_DIV (也称为也称为PCON2,地址为地址为97H,复位值为,复位值为0000 x000B)中,其中,其各位的定义各位的定义如下如下:位号位号00D7D6D5D4D3D2D1D0位名称位名称MCKO_S1MCKO_S0ADRJTx_Rx-CLKS2CLKS1CLKS060/105 ADRJ=0时,ADC_RES7:0存放高8位ADC结果,ADC_RESL1:0存放低2位ADC结果; ADRJ=1时,ADC_RES1:0存放高2位ADC结果,ADC

49、_RESL7:0存放低8位ADC结果。位名称位名称寄存器寄存器D7D6D5D4D3D2D1D0ADC_RESADC_RES9ADC_RES8ADC_RES7ADC_RES6ADC_RES5ADC_RES4ADC_RES3ADC_RES2ADC_RESLADC_RES1ADC_RES0AUXR1ADRJ=0位名称位名称寄存器寄存器D7D6D5D4D3D2D1D0ADC_RESADC_RES9ADC_RES8ADC_RESLADC_RES7ADC_RES6ADC_RES5ADC_RES4ADC_RES3ADC_RES2ADC_RES1ADC_RES0AUXR1ADRJ=161/105如果如果STC

50、15F2K60S2单片机的单片机的10位位A/D转换结果转换结果的高的高8位存放在位存放在ADC_RES中,低中,低2位存放在位存放在ADC_RESL的低的低2位中,模位中,模/数转换结果计算公数转换结果计算公式如下:式如下:取取10位结果位结果 (ADC_RES7:0,ADC_RESL1:0) = 1024Vin/Vcc取取8位结果位结果 ADC_RES7:0 = 256Vin / Vcc Vin为模拟输入通道输入电压,为模拟输入通道输入电压,Vcc为单片机实为单片机实际工作电压,用单片机工作电压作为模拟参考电压。际工作电压,用单片机工作电压作为模拟参考电压。62/1054)与)与A/D转换

51、中断有关的寄存器转换中断有关的寄存器中断允许控制寄存器中断允许控制寄存器IE中的中的EADC位(位(D5位)位)用于开放用于开放ADC中断中断EA位(位(D7位)用于开放位)用于开放CPU中断中断中断优先级寄存器中断优先级寄存器IP中的中的PADC位(位(D5位)用位)用于设置于设置A/D中断的优先级中断的优先级 在中断服务程序中,要使用软件将在中断服务程序中,要使用软件将A/D中断中断标志位标志位ADC_FLAG(也是(也是A/D转换结束标志转换结束标志位)清位)清0。63/1052、STC15F2K60S2单片机单片机ADC模块的使用模块的使用编程要点编程要点 打开打开ADC电源,第一次使

52、用时要打开内部模电源,第一次使用时要打开内部模拟电源(设置拟电源(设置ADC_CONTR)。)。 适当延时,等内部模拟电源稳定。一般延时适当延时,等内部模拟电源稳定。一般延时1ms以内即可。以内即可。 设置设置P1口中的相应口线作为口中的相应口线作为A/D转换通道转换通道(设置(设置P1ASF寄存器)。寄存器)。64/105 选择选择ADC通道(设置通道(设置ADC_CONTR中的中的CHS2CHS0)。)。 根据需要设置转换结果存储格式(设置根据需要设置转换结果存储格式(设置AUXR1中的中的ADRJ位)。位)。 查询查询A/D转换结束标志转换结束标志ADC_FLAG,判断,判断A/D转换是

53、否完成,若完成,则读出结果(结转换是否完成,若完成,则读出结果(结果保存在果保存在ADC_RES和和ADC_RESL寄存器寄存器中),并进行数据处理。中),并进行数据处理。65/105读取转换结果注意:读取转换结果注意:如果是多通道模拟量进行转换,则更换如果是多通道模拟量进行转换,则更换A/D转转换通道后要适当延时,使输入电压稳定,延时换通道后要适当延时,使输入电压稳定,延时量取量取20s200s即可,与输入电压源的内阻有即可,与输入电压源的内阻有关。关。如果输入电压信号源的内阻在如果输入电压信号源的内阻在10K 以下,可以下,可不加延时。不加延时。如果是单通道模拟量转换,则不需要更换如果是单

54、通道模拟量转换,则不需要更换A/D转换通道,也就不需要加延时。转换通道,也就不需要加延时。66/105若采用中断方式,还需进行中断设置(若采用中断方式,还需进行中断设置(EADC置置1,EA置置1)。)。在中断服务程序中读取在中断服务程序中读取ADC转换结果,并将转换结果,并将ADC中断请求标志中断请求标志ADC_FLAG清零。清零。67/105【例例9-2】 编程实现利用编程实现利用STC15F2K60S2单片机单片机ADC通道通道2采集外部模拟电压信号,采集外部模拟电压信号,8位精度,位精度,采用查询方式循环进行转换,并将转换结果保采用查询方式循环进行转换,并将转换结果保存于存于30H单元

55、中。假设时钟频率为单元中。假设时钟频率为18.432MHz。解解:取:取8位精度时,若位精度时,若ADRJ-0,则可直接使用,则可直接使用转换结果寄存器转换结果寄存器ADC_RES的值。由于复位后,的值。由于复位后,ADRJ=0,因此,按照,因此,按照ADC的编程要点进行初的编程要点进行初始化后,直接判断始化后,直接判断ADC_FLAG标志是否为标志是否为1,若为若为1,则读出,则读出ADC_RES寄存器的值,并存入寄存器的值,并存入30H即可;若为即可;若为0,则继续等待。,则继续等待。68/105汇编语言程序代码如下:汇编语言程序代码如下:$INCLUDE (STC15.INC) ;包含包

56、含STC15单片机寄存器定义文件单片机寄存器定义文件ADC_DAT EQU 30H ;A/D转换结果转换结果 ORG 0000H LJMP MAIN ORG 0050H MAIN: MOV SP, #70H ;设置堆栈设置堆栈 ORL ADC_CONTR, #80H ;开开A/D转换电源转换电源 MOV A, #20H LCALL DELAY ;开电源后加适当延时,开电源后加适当延时,1ms以内即可以内即可 MOV P1ASF,#04H ;设置设置P1.2的模拟量功能的模拟量功能 MOV ADC_CONTR,#11100010B ;选择选择P1.2作为作为A/D转换通道转换通道 MOV A,

57、#05H LCALL DELAY ;如果切换如果切换A/D转换通道转换通道,则需要加延时则需要加延时69/105WAIT_AD: ORL ADC_CONTR, #00001000B ;启动启动A/D转换转换 MOV A, #00010000B ;判断判断A/D转换是否完成转换是否完成 ANL A, ADC_CONTR JZ WAIT_AD ;A/D 转换尚未完成转换尚未完成, 继续等待继续等待 ANL ADC_CONTR, #11100111B ;将将ADC_FLAG清零清零 MOV A, ADC_RES ;读取读取A/D转换结果转换结果 MOV ADC_DAT, A ;保存保存A/D转换结果

58、转换结果 LJMP WAIT_AD ;等待下一次转换完成等待下一次转换完成70/105DELAY: ;延时子程序延时子程序 PUSH 02 ;将寄存器组将寄存器组0 的的 R2 入栈入栈 PUSH 03 ;将寄存器组将寄存器组0 的的 R3 入栈入栈 PUSH 04 ;将寄存器组将寄存器组0 的的 R4 入栈入栈 MOV R4, A DELAY_LOOP0: MOV R3, #200 ;2个时钟周期个时钟周期Delay_LOOP1: MOV R2, #249 ;2个时钟周期个时钟周期DELAY_LOOP: DJNZ R2, DELAY_LOOP ;4个时钟周期个时钟周期 DJNZ R3, DE

59、LAY_LOOP1 ;4个时钟周期个时钟周期 DJNZ R4, DELAY_LOOP0 ;4个时钟周期个时钟周期 POP 04 POP 03 POP 02 RET END71/105C语言程序代码如下:语言程序代码如下:#include “stc15.h” /包含包含STC15单片机寄存器定义文件单片机寄存器定义文件unsigned char data adc_dat _at_ 0 x30; /A/D转换结果变量转换结果变量void main(void) unsigned long i; unsigned char status; ADC_CONTR|=0 x80; /开开A/D转换电源转换电

60、源 for (i=0;i10000;i+); /适当延时适当延时 P1ASF=0 x04; /选择选择P1.2作为作为A/D转换通道转换通道 ADC_CONTR=0 xE2; for (i=0;i10000;i+); /适当延时适当延时 while(1) /循环进行循环进行A/D 转换转换 ADC_CONTR|=0 x08; /重新启动重新启动 A/D 转换转换 status=0; while(status=0) /等待等待A/D转换结束转换结束 status=ADC_CONTR&0 x10; ADC_CONTR&=0 xE7; /将将ADC_FLAG清零清零 adc_dat=ADC_RES;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论