数模转换器与模数转换器_第1页
数模转换器与模数转换器_第2页
数模转换器与模数转换器_第3页
数模转换器与模数转换器_第4页
数模转换器与模数转换器_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

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

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

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

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

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

6、称为变送器,在自动化仪表中经常把检测仪表称为变送器, 如温度变送器、压力变送器等。如温度变送器、压力变送器等。 7/105 本章内容安排本章内容安排 本章首先介绍模数转换器的工作原理及性能指本章首先介绍模数转换器的工作原理及性能指 标;标; 然后介绍模数转换器然后介绍模数转换器ADS7852与单片机的接口与单片机的接口 方法及编程应用,方法及编程应用,介绍介绍STC15F2K60S2单片机单片机 片内集成模数转换模块的使用片内集成模数转换模块的使用; 最后介绍数模转换器最后介绍数模转换器TLV5616与单片机的接口与单片机的接口 方法及编程应用。方法及编程应用。 8/105 9.1模数转换器的

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

8、示。逐次逼近式模数转换器电路框图如图所示。 图9-2 逐次逼近式模数转换器的工作原理 10/105 逐次逼近式模数转换器主要由逐次逼近式模数转换器主要由逐次逼近寄存器逐次逼近寄存器 SAR、数字数字/电压转换器电压转换器、比较器比较器、时序及控时序及控 制逻辑制逻辑等部分组成。等部分组成。 11/105 工作过程工作过程 当模数转换器收到当模数转换器收到“转换命令转换命令”并清除并清除SAR寄存器后,寄存器后, 控制电路先设定控制电路先设定SAR中的最高位为中的最高位为“1”,其余位为,其余位为 “0”,此预测数据被送至,此预测数据被送至D/A转换器,转换成电压转换器,转换成电压Vc。 然后将

9、然后将Vc与输入模拟电压与输入模拟电压Vx在高增益的比较器中进行在高增益的比较器中进行 比较,比较器的的输出为逻辑比较,比较器的的输出为逻辑0或逻辑或逻辑1。 如果如果VxVc,说明此位置,说明此位置“1”是对的,应予保留;如是对的,应予保留;如 果果VxVc,说明此位置,说明此位置“1”不合适,应予清除。不合适,应予清除。 按该方法继续对次高位进行转换、比较和判断,决定按该方法继续对次高位进行转换、比较和判断,决定 次高位应取次高位应取“1”还是取还是取“0”。 重复上述过程,直至确定重复上述过程,直至确定SAR最低位为止。最低位为止。 该过程完成后,状态线改变状态,表示已完成一次完该过程完

10、成后,状态线改变状态,表示已完成一次完 整的转换,整的转换,SAR中的内容就是与输入的模拟电压对应中的内容就是与输入的模拟电压对应 的二进制数字代码。的二进制数字代码。 12/105 2、双积分式模数转换器的工作原理、双积分式模数转换器的工作原理 双积分式模数转换器转换方法的抗干扰能力比双积分式模数转换器转换方法的抗干扰能力比 逐次逼近式模数转换器强。逐次逼近式模数转换器强。 该方法的基础是测量两个时间:该方法的基础是测量两个时间: 一个是模拟输入电压向电容充电的固定时间一个是模拟输入电压向电容充电的固定时间 另一个是在已知参考电压下放电所需的时间另一个是在已知参考电压下放电所需的时间 模拟输

11、入电压与参考电压的比值就等于上述两模拟输入电压与参考电压的比值就等于上述两 个时间值之比。个时间值之比。 13/105 双积分模数转换器的组成框图如图所示。双积分模数转换器的组成框图如图所示。 图9-3 双积分式模数转换器的组成框图 14/105 双积分式模数转换器优点双积分式模数转换器优点 具有精度高、抗干扰能力强的特点,在实际工具有精度高、抗干扰能力强的特点,在实际工 程中得到了使用。程中得到了使用。 由于逐次逼近式模数转换技术能很好的兼顾速由于逐次逼近式模数转换技术能很好的兼顾速 度和精度,故在度和精度,故在16位以下的模数转换器中得到位以下的模数转换器中得到 了广泛应用。了广泛应用。

12、15/105 二、模数转换器的性能指标二、模数转换器的性能指标 A/D转换器是实现单片机数据采集的常用外围转换器是实现单片机数据采集的常用外围 器件。器件。A/D转换器的品种繁多,性能各异,在转换器的品种繁多,性能各异,在 设计数据采集系统时,首先碰到的问题就是如设计数据采集系统时,首先碰到的问题就是如 何选择合适的何选择合适的A/D转换器以满足系统设计的要转换器以满足系统设计的要 求。求。 选择选择A/D转换器需要综合考虑多项因素,如系转换器需要综合考虑多项因素,如系 统技术指标、成本、功耗、安装等。统技术指标、成本、功耗、安装等。 16/105 1、分辨率、分辨率 分辨率是分辨率是A/D转

13、换器能够分辨最小信号的能转换器能够分辨最小信号的能 力,表示数字量变化一个相邻数码所需输入力,表示数字量变化一个相邻数码所需输入 模拟电压的变化量。模拟电压的变化量。 分辨率越高,转换时对输入模拟信号变化的分辨率越高,转换时对输入模拟信号变化的 反应就越灵敏。反应就越灵敏。 17/105 例如,例如,8位位A/D转换器能够分辨出满刻度的转换器能够分辨出满刻度的 1/256,若满刻度输入电压为,若满刻度输入电压为5V,则该,则该8位位A/D 转换器能够分辨出输入电压变化的最小值为转换器能够分辨出输入电压变化的最小值为 19.5mV。 分辨率常用分辨率常用A/D转换器输出的二进制位数表示。转换器输

14、出的二进制位数表示。 常见的常见的A/D转换器有转换器有8位、位、10位、位、12位、位、14位位 和和16位等。位等。 18/105 一般把一般把8位以下的位以下的ADC器件归为低分辨率器件归为低分辨率ADC 器件;器件; 912位的位的ADC器件称为中分辨率器件称为中分辨率ADC器件;器件; 13位以上的位以上的ADC器件称为高分辨率器件称为高分辨率ADC器件。器件。 如何选择如何选择 10位以下的位以下的ADC器件误差较大,器件误差较大,11位以上位以上 对减小误差并无太大贡献,但对对减小误差并无太大贡献,但对ADC器件的器件的 要求却提得过高。要求却提得过高。因此,取因此,取10位或位

15、或11位是合适位是合适 的。的。由于模拟信号先经过测量装置,再经由于模拟信号先经过测量装置,再经A/D 转换器转换后才进行处理,因此,总的误差是转换器转换后才进行处理,因此,总的误差是 由测量误差和量化误差共同构成的。由测量误差和量化误差共同构成的。 19/105 A/D转换器的精度应与测量装置的精度相匹配。转换器的精度应与测量装置的精度相匹配。 一方面要求量化误差在总误差中所占的比重要一方面要求量化误差在总误差中所占的比重要 小,使它不显著地扩大测量误差;小,使它不显著地扩大测量误差; 另一方面必须根据目前测量装置的精度水平,另一方面必须根据目前测量装置的精度水平, 对对A/D转换器的位数提

16、出恰当的要求。转换器的位数提出恰当的要求。 20/105 2、通道、通道 有的单芯片内部含有多个有的单芯片内部含有多个ADC模块,可同时模块,可同时 实现多路信号的转换;实现多路信号的转换; 常见的多路常见的多路ADC器件只有一个公共的器件只有一个公共的ADC模模 块,由一个多路转换开关实现分时转换。块,由一个多路转换开关实现分时转换。 3、基准电压、基准电压 基准电压有内、外基准和单、双基准之分。基准电压有内、外基准和单、双基准之分。 21/105 4、转换速率、转换速率 转换时间转换时间:A/D转换器从启动转换到转换结束,转换器从启动转换到转换结束, 输出稳定的数字量,需要的一定的转换时间

17、。输出稳定的数字量,需要的一定的转换时间。 转换速率:转换速率:转换时间的倒数就是每秒钟能完成转换时间的倒数就是每秒钟能完成 的转换次数。的转换次数。 A/D转换器的型号不同,转换时间不同。逐次转换器的型号不同,转换时间不同。逐次 逼近式单片逼近式单片A/D转换器转换时间的典型值为转换器转换时间的典型值为 1.0200s。 22/105 应根据输入信号的最高频率来确定应根据输入信号的最高频率来确定ADC转换速度,保转换速度,保 证转换器的转换速率要高于系统要求的采样频率。证转换器的转换速率要高于系统要求的采样频率。 确定确定A/D转换器的转换速率时,应考虑系统的采样速转换器的转换速率时,应考虑

18、系统的采样速 率。率。 例如,如果用转换时间为例如,如果用转换时间为100s的的A/D转换器,则其转转换器,则其转 换速率为换速率为10KHz。根据采样定理和实际需要,一个周。根据采样定理和实际需要,一个周 期的波形需采期的波形需采10个样点,那么这样的个样点,那么这样的A/D转换器最高转换器最高 也只有处理频率为也只有处理频率为1KHz的模拟信号。对一般的单片的模拟信号。对一般的单片 机而言,在如此高的采样频率下,要在采样时间内完机而言,在如此高的采样频率下,要在采样时间内完 成成A/D转换以外的工作,如读取数据、再启动、保存转换以外的工作,如读取数据、再启动、保存 数据、循环计数等已经比较

19、困难了。数据、循环计数等已经比较困难了。 23/105 5、采样、采样/保持器保持器 采样采样/保持也称为跟踪保持也称为跟踪/保持(保持(Track/Hold缩写缩写 T/H)。)。 原则上采集直流和变化非常缓慢的模拟信号时原则上采集直流和变化非常缓慢的模拟信号时 可不用采样保持器。可不用采样保持器。 对于其他模拟信号一般都要加采样保持器。如对于其他模拟信号一般都要加采样保持器。如 果信号频率不高,果信号频率不高,A/D转换器的转换时间短,转换器的转换时间短, 即使用高速即使用高速A/D转换器时,也可不用采样转换器时,也可不用采样/保持保持 器。器。 24/105 6、量程、量程 量程即所能转

20、换的电压范围,如量程即所能转换的电压范围,如2.5V、5V和和 10V。 7、满刻度误差、满刻度误差 满度输出时对应的输入信号与理想输入信号值满度输出时对应的输入信号与理想输入信号值 之差称为满刻度误差。之差称为满刻度误差。 8、线性度、线性度 实际转换器的转移函数与理想直线的最大偏移实际转换器的转移函数与理想直线的最大偏移 称为线性度。称为线性度。 25/105 9、数字接口方式、数字接口方式 根据转换的数据输出接口方式,根据转换的数据输出接口方式,A/D转换器可转换器可 以分为并行接口和串行接口两种方式。以分为并行接口和串行接口两种方式。 并行方式一般在转换后可直接接收,但芯片的并行方式一

21、般在转换后可直接接收,但芯片的 引脚比较多;引脚比较多; 串行方式所用芯片引脚少,封装小,但需要软串行方式所用芯片引脚少,封装小,但需要软 件处理才能得到所需要的数据。件处理才能得到所需要的数据。 在单片机在单片机I/O引脚不多的情况下,使用串行器引脚不多的情况下,使用串行器 件可以节省件可以节省I/O资源。资源。 但是并行器件具有明显的转换速度优势。在转但是并行器件具有明显的转换速度优势。在转 换速度要求较高的情况下应选用并行器件。换速度要求较高的情况下应选用并行器件。 26/105 10、模拟信号类型、模拟信号类型 通常通常ADC器件的模拟输入信号都是电压信号。器件的模拟输入信号都是电压信

22、号。 同 时 根 据 信 号 是 否 过 零 , 还 分 成 单 极 性同 时 根 据 信 号 是 否 过 零 , 还 分 成 单 极 性 (Unipolar)信号和双极性()信号和双极性(Bipolar)信号。)信号。 11、电源电压、电源电压 电源电压有单电源,双电源和不同电压范围之电源电压有单电源,双电源和不同电压范围之 分,早期的分,早期的ADC器件要有器件要有+15V/-15V,如果选,如果选 用单用单+5V电源的芯片则可以使用单片机系统电电源的芯片则可以使用单片机系统电 源。源。 27/105 12、功耗、功耗 一般一般CMOS工艺的芯片功耗较低,对于电池供工艺的芯片功耗较低,对于

23、电池供 电的手持系统对功耗要求比较高的场合一定要电的手持系统对功耗要求比较高的场合一定要 注意功耗指标。注意功耗指标。 13、封装、封装 常见的封装有双列直插封装(常见的封装有双列直插封装(Dual In-line Package, DIP)和表贴型()和表贴型(Surface Mount Devices, SMD)封装。)封装。 28/105 9.2模数转换器的应用模数转换器的应用 本节首先分别介绍德州仪器公司生产的本节首先分别介绍德州仪器公司生产的A/D 转换器转换器ADS7852的应用方法,然后介绍的应用方法,然后介绍 STC15F2K60S2单片机片内集成的单片机片内集成的ADC模块的

24、模块的 使用。使用。 29/105 一、一、12位并行位并行A/D转换器转换器ADS7852及其应用及其应用 1、ADS7852简介简介 ADS7852是德州仪器公司(是德州仪器公司(Texas Instruments, TI)生产的一款高速逐次逼近式)生产的一款高速逐次逼近式A/D转换器。转换器。 30/105 具有以下主要特点:具有以下主要特点: 带有采样保持器带有采样保持器 具有具有8路模拟量输入、并行路模拟量输入、并行12位输出位输出 内部带有内部带有2.5V的参考电压源,输入的采样电压的参考电压源,输入的采样电压 可以从可以从0V到到2倍的参考电压值倍的参考电压值 500kHz的采样

25、频率,转换时间最大只需的采样频率,转换时间最大只需1.75s 单极性单极性5V工作电压工作电压 低功耗:低功耗:13mW 封装形式为封装形式为TQFP 工作温度为工作温度为-40到到+80 31/105 ADS7852的引脚图如图所示。的引脚图如图所示。 图9-4 ADS7852的引脚图 32/105 各引脚的功能介绍如下:各引脚的功能介绍如下: AIN0AIN7:8路模拟量输入引脚。路模拟量输入引脚。 DB0DB11:12位数字量输出,其中位数字量输出,其中DB0为最低位,为最低位, DB11为最高位。为最高位。 A0A2:8路模拟输入的地址选择。路模拟输入的地址选择。 Vss:电源电压,正

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

27、,输入,低电平有效。:片选信号,输入,低电平有效。/CS和和 /WR变低时,开始一次新的转换。变低时,开始一次新的转换。 :读信号,输入,低电平有效。:读信号,输入,低电平有效。/RD和和/CS 一起有效时用来读取转换后的数据。也用来设一起有效时用来读取转换后的数据。也用来设 置使芯片工作于省电模式。置使芯片工作于省电模式。 :写信号,输入,低电平有效。:写信号,输入,低电平有效。/WR与与/CS 同时有效时开始一次新的转换,也用来选择模同时有效时开始一次新的转换,也用来选择模 拟量输入通道。拟量输入通道。 BUSY CS RD WR 34/105 2、ADS7852的内部结构的内部结构 AD

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

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

30、换之后,当转换之后,当/RD和和/CS 变为高电平时,变为高电平时,A1和和A0脚应保持低电平,否则脚应保持低电平,否则 ADS7852将进入掉电模式。将进入掉电模式。 37/105 3、通道选择、通道选择 ADS7852有有8路输入,通过设置路输入,通过设置A0、A1、A2 来选择哪一路输入,具体的选择控制字如表所来选择哪一路输入,具体的选择控制字如表所 示。示。 A2A1A0通道号通道号 000通道通道0 001通道通道1 010通道通道2 011通道通道3 100通道通道4 101通道通道5 110通道通道6 111通道通道7 表9-1 ADS7852的通道选择控制字 38/105 4、

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

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

33、为作为ADS7852的时钟,频率设置为的时钟,频率设置为250KHz。 41/105 ADS7852的的/BUSY信号与信号与STC15F2K60S2的的 P 3 . 2 连 接 。 在连 接 。 在 A / D 转 换 结 束 后 , 通 知转 换 结 束 后 , 通 知 STC15F2K60S2及时读取数据。及时读取数据。 在电路设计中,一般在在电路设计中,一般在Vss和地之间接一个和地之间接一个 0.1uF的瓷片电容和的瓷片电容和10uF的钽电容,起滤波和的钽电容,起滤波和 解耦的作用。解耦的作用。 42/105 示例程序代码如下:示例程序代码如下: #include stc15.h /

34、包含包含STC15F2K60S2单片机寄存器定义文件单片机寄存器定义文件 /P2.7 为片选信号为片选信号; 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

35、x02; /T0工作在方式工作在方式2,8位自动重装位自动重装 TH0=254; /12/12/2/2=0.25MHZ INT_CLKO=INT_CLKO|0 x1; /T0输出时钟输出时钟 TR0=1;/启动启动T0 A0=0; A1=0; A2=0; /选择通道选择通道0 *ADS7852=0 x00; /写操作,开始写操作,开始AD转换转换 43/105 while(1) if(busy=1)/判断是否转换完毕判断是否转换完毕 lowdata=*ADS7852; ADdata=P1; ADdata= (ADdata8) +lowdata; /数据处理数据处理 *ADS7852=0 x00

36、; /开始下一次开始下一次AD转换转换 44/105 二、二、STC15F2K60S2集成的集成的A/D模块的结构及其模块的结构及其 使用使用 STC15F2K60S2单片机集成有单片机集成有8路路10位高速电位高速电 压输入型模数转换器(压输入型模数转换器(ADC),速度可达到),速度可达到 300KHz(30万次万次/秒),可做温度检测、压力秒),可做温度检测、压力 检测、电池电压检测、按键扫描、频谱检测等。检测、电池电压检测、按键扫描、频谱检测等。 45/105 1、模数转换器的结构及相关寄存器模数转换器的结构及相关寄存器 STC15F2K60S2单片机片内集成单片机片内集成8通道通道1

37、0位模位模 数转换器(数转换器(ADC)。)。 ADC输入通道与输入通道与P1口复用,上电复位后口复用,上电复位后P1口口 为弱上拉型为弱上拉型I/O口,用户可以通过软件设置将口,用户可以通过软件设置将8 路中的任何一路设置为路中的任何一路设置为ADC功能,不作为功能,不作为 ADC使用的口可继续作为使用的口可继续作为I/O口使用。口使用。 46/105 (1)模数转换器的结构)模数转换器的结构 STC15F2K60S2单片机单片机ADC的结构如图所示。的结构如图所示。 图图9-7 STC15F2K60S2单片机单片机ADC结构图结构图 47/105 STC15F2K60S2的的ADC组成组成

38、 多路选择开关多路选择开关 比较器比较器 逐次比较寄存器逐次比较寄存器 10位位DAC 转换结果寄存器(转换结果寄存器(ADC_RES和和ADC_RESL) ADC控制寄存器控制寄存器ADC_CONTR 48/105 STC15F2K60S2的的ADC转换原理转换原理 STC15F2K60S2的的ADC是逐次比较型模数转换是逐次比较型模数转换 器。器。 逐次比较型逐次比较型ADC由一个比较器和由一个比较器和D/A转换器构转换器构 成,通过逐次比较逻辑,从最高位(成,通过逐次比较逻辑,从最高位(MSB)开)开 始,顺序地对每一输入电压与内置始,顺序地对每一输入电压与内置D/A转换器转换器 输出进

39、行比较,经多次比较,使转换所得的数输出进行比较,经多次比较,使转换所得的数 字量逐次逼近输入模拟量对应值。字量逐次逼近输入模拟量对应值。 49/105 (2)参考电压源)参考电压源 STC15F2K60S2单片机单片机ADC模块的参考电压源模块的参考电压源 是输入工作电压是输入工作电压Vcc,一般不用外接参考电压,一般不用外接参考电压 源。源。 如果如果Vcc不稳定(例如电池供电的系统中,电不稳定(例如电池供电的系统中,电 池电压常常在池电压常常在5.3V-4.2V之间漂移),之间漂移), 则可以则可以 在在8路路A/D转换的一个通道外接一个稳定的参转换的一个通道外接一个稳定的参 考电压源,计

40、算出此时的工作电压考电压源,计算出此时的工作电压Vcc,再计,再计 算出其他几路算出其他几路A/D转换通道的电压。转换通道的电压。 50/105 (3)与)与ADC有关的特殊功能寄存器有关的特殊功能寄存器 1)P1口模拟功能控制寄存器口模拟功能控制寄存器P1ASF P1ASF(地址为(地址为9DH,复位值为,复位值为00H)各位的)各位的 定义如下:定义如下: 位号位号D7D6D5D4D3D2D1D0 位名称位名称P17ASFP16ASFP15ASFP14ASFP13ASFP12ASFP11ASFP10ASF 51/105 如果要使用相应口的模拟功能,需将如果要使用相应口的模拟功能,需将P1A

41、SF特特 殊功能寄存器中的相应位置为殊功能寄存器中的相应位置为1。 如,若要使用如,若要使用P1.6的模拟量功能,则需要将的模拟量功能,则需要将 P16ASF设置为设置为1。 注意,注意,P1ASF寄存器不能位寻址,可以使用汇寄存器不能位寻址,可以使用汇 编语言指令编语言指令ORL P1ASF, #40H,也可以使用,也可以使用 C语言语句语言语句P1ASF |= 0 x40; 位号位号D7D6D5D4D3D2D1D0 位名称位名称P17ASFP16ASFP15ASFP14ASFP13ASFP12ASFP11ASFP10ASF 52/105 2)ADC控制寄存器控制寄存器ADC_CONTR A

42、DC_CONTR(地址为(地址为BCH,复位值为,复位值为00H) 各位的定义如下:各位的定义如下: 位号位号D7D6D5D4D3D2D1D0 位名位名 称称 ADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS0 ADC_POWER:ADC电源控制位。电源控制位。 0:关闭:关闭ADC电源。电源。 1:打开:打开ADC电源。电源。 53/105 说明说明 建议进入空闲模式前,将建议进入空闲模式前,将ADC电源关闭,即电源关闭,即 ADC_POWER =0。 启动启动A/D转换前一定要确认转换前一定要确认ADC电源已打开,电源已打开, A/D转换结

43、束后关闭转换结束后关闭ADC电源可降低功耗,也电源可降低功耗,也 可不关闭。可不关闭。 初次打开内部初次打开内部ADC转换模拟电源,需适当延时,转换模拟电源,需适当延时, 等内部模拟电源稳定后,再启动等内部模拟电源稳定后,再启动A/D转换。转换。 建议启动建议启动A/D转换后,在转换后,在A/D转换结束之前,不转换结束之前,不 改变任何改变任何I/O口的状态,有利于提高口的状态,有利于提高A/D转换的转换的 精度。精度。 54/105 SPEED1、SPEED0:ADC转换速度控制位。转换速度控制位。 SPEED1SPEED0A/D转换所需时间转换所需时间 1190个时钟周期转换一次个时钟周期

44、转换一次 ,CPU工作频率工作频率21MHz时,时, A/D转换速度约转换速度约 300KHz,9位精度位精度 10180个时钟周期转换一次,可达到个时钟周期转换一次,可达到10位精度位精度 01360个时钟周期转换一次,可达到个时钟周期转换一次,可达到10位精度位精度 00540个时钟周期转换一次,可达到个时钟周期转换一次,可达到10位精度位精度 位位 号号 D7D6D5D4D3D2D1D0 位位 名名 称称 ADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS0 表表9-2 ADC转换速度控制转换速度控制 55/105 STC15F2K60S2

45、单片机单片机A/D转换模块的时钟转换模块的时钟 外部晶体时钟或内部外部晶体时钟或内部R/C振荡器所产生的系统振荡器所产生的系统 时钟,不使用时钟分频寄存器时钟,不使用时钟分频寄存器CLK_DIV对系对系 统时钟分频后所产生的供给统时钟分频后所产生的供给CPU工作所使用的工作所使用的 时钟。时钟。 优点优点:不仅可以让:不仅可以让ADC用较高的频率工作,提用较高的频率工作,提 高高A/D的转换速度;而且可以让的转换速度;而且可以让CPU用较低的用较低的 频率工作,降低系统的功耗。频率工作,降低系统的功耗。 56/105 需要注意需要注意 设置设置ADC_CONTR控制寄存器的语句执行后,控制寄存

46、器的语句执行后, 要经过要经过4个个CPU时钟的延时时钟的延时,其值才能够保证,其值才能够保证 被设置进被设置进ADC_CONTR控制寄存器。控制寄存器。 典型代码如下:典型代码如下: MOV ADC_CONTR, #DATA NOP NOP NOP NOP MOV A, ADC_CONTR ;经过经过4个时钟延时个时钟延时,才能正确读到才能正确读到ADC_CONTR控制控制 寄存器的值寄存器的值 57/105 ADC_FLAG:A/D转换结束标志位。转换结束标志位。 A/D转换完成后,转换完成后,ADC_FLAG = 1,要由软件,要由软件 清零。不管清零。不管A/D转换完成后由该位申请产生

47、中转换完成后由该位申请产生中 断,还是由软件查询该标志位判断断,还是由软件查询该标志位判断A/D转换是转换是 否结束,当否结束,当A/D转换完成后,转换完成后,ADC_FLAG = 1, 一定要软件清一定要软件清0。 位位 号号 D7D6D5D4D3D2D1D0 位位 名名 称称 ADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS0 58/105 CHS2、CHS1、CHS0:模拟输入通道选择,:模拟输入通道选择, 如表所示。如表所示。 用用MOV 语句对语句对 ADC_CONTR 寄存器进行赋值。寄存器进行赋值。 位位 号号 D7D6D5D4D

48、3D2D1D0 位位 名名 称称 ADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS0 CHS2CHS1CHS0模拟输入通道选择模拟输入通道选择 000选择选择P1.0作为作为A/D输入来用输入来用 001选择选择P1.1作为作为A/D输入来用输入来用 010选择选择P1.2作为作为A/D输入来用输入来用 011选择选择P1.3作为作为A/D输入来用输入来用 100选择选择P1.4作为作为A/D输入来用输入来用 101选择选择P1.5作为作为A/D输入来用输入来用 110选择选择P1.6作为作为A/D输入来用输入来用 111选择选择P1.7作为作

49、为A/D输入来用输入来用 表9-3 模拟输入通道选择 59/105 3)A/D转换结果存储格式控制及转换结果存储格式控制及A/D转换结果寄转换结果寄 存器存器ADC_RES、ADC_RESL 特殊功能寄存器特殊功能寄存器ADC_RES(地址为(地址为BDH,复,复 位值为位值为00H)和)和ADC_RESL(地址为(地址为BEH,复,复 位值为位值为00H)用于保存用于保存A/D转换结果转换结果。 特殊功能寄存器特殊功能寄存器CLK_DIV中的中的ADRJ位用于设位用于设 置置A/D转换结果的存储格式。转换结果的存储格式。 ADRJ=0时,ADC_RES7:0存放高8位ADC结果, ADC_R

50、ESL1:0存放低2位ADC结果; ADRJ=1时,ADC_RES1:0存放高2位ADC结果, ADC_RESL7:0存放低8位ADC结果。 60/105 如果如果STC15F2K60S2单片机的单片机的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为模拟输入通道输入

51、电压,为模拟输入通道输入电压,Vcc为单片机实为单片机实 际工作电压,用单片机工作电压作为模拟参考电压。际工作电压,用单片机工作电压作为模拟参考电压。 61/105 4)与)与A/D转换中断有关的寄存器转换中断有关的寄存器 中断允许控制寄存器中断允许控制寄存器IE中的中的EADC位(位(D5位)位) 用于开放用于开放ADC中断中断 EA位(位(D7位)用于开放位)用于开放CPU中断中断 中断优先级寄存器中断优先级寄存器IP中的中的PADC位(位(D5位)用位)用 于设置于设置A/D中断的优先级中断的优先级 在中断服务程序中,要使用软件将在中断服务程序中,要使用软件将A/D中断中断 标志位标志位

52、ADC_FLAG(也是(也是A/D转换结束标志转换结束标志 位)清位)清0。 62/105 2、STC15F2K60S2单片机单片机ADC模块的使用模块的使用 编程要点编程要点 打开打开ADC电源,第一次使用时要打开内部模拟电源,第一次使用时要打开内部模拟 电源(设置电源(设置ADC_CONTR)。)。 适当延时,等内部模拟电源稳定。一般延时适当延时,等内部模拟电源稳定。一般延时 1ms以内即可。以内即可。 设置设置P1口中的相应口线作为口中的相应口线作为A/D转换通道(设转换通道(设 置置P1ASF寄存器)。寄存器)。 63/105 选择选择ADC通道(设置通道(设置ADC_CONTR中的中

53、的 CHS2CHS0)。)。 根据需要设置转换结果存储格式(设置根据需要设置转换结果存储格式(设置AUXR1 中的中的ADRJ位)。位)。 查询查询A/D转换结束标志转换结束标志ADC_FLAG,判断,判断A/D 转换是否完成,若完成,则读出结果(结果保转换是否完成,若完成,则读出结果(结果保 存在存在ADC_RES和和ADC_RESL寄存器中),并寄存器中),并 进行数据处理。进行数据处理。 64/105 读取转换结果注意:读取转换结果注意: 如果是多通道模拟量进行转换,则更换如果是多通道模拟量进行转换,则更换A/D转转 换通道后要适当延时,使输入电压稳定,延时换通道后要适当延时,使输入电压

54、稳定,延时 量取量取20s200s即可,与输入电压源的内阻有即可,与输入电压源的内阻有 关。关。 如果输入电压信号源的内阻在如果输入电压信号源的内阻在10K 以下,可以下,可 不加延时。不加延时。 如果是单通道模拟量转换,则不需要更换如果是单通道模拟量转换,则不需要更换A/D 转换通道,也就不需要加延时。转换通道,也就不需要加延时。 65/105 若采用中断方式,还需进行中断设置(若采用中断方式,还需进行中断设置(EADC 置置1,EA置置1)。)。 在中断服务程序中读取在中断服务程序中读取ADC转换结果,并将转换结果,并将 ADC中断请求标志中断请求标志ADC_FLAG清零。清零。 66/1

55、05 【例例9-2】 编程实现利用编程实现利用STC12C5A60S2单片机单片机 ADC通道通道2采集外部模拟电压信号,采集外部模拟电压信号,8位精度,位精度, 采用查询方式循环进行转换,并将转换结果保采用查询方式循环进行转换,并将转换结果保 存于存于30H单元中。假设时钟频率为单元中。假设时钟频率为18.432MHz。 解解:取:取8位精度时,若位精度时,若ADRJ-0,则可直接使用,则可直接使用 转换结果寄存器转换结果寄存器ADC_RES的值。由于复位后,的值。由于复位后, ADRJ=0,因此,按照,因此,按照ADC的编程要点进行初的编程要点进行初 始化后,直接判断始化后,直接判断ADC

56、_FLAG标志是否为标志是否为1, 若为若为1,则读出,则读出ADC_RES寄存器的值,并存入寄存器的值,并存入 30H即可;若为即可;若为0,则继续等待。,则继续等待。 67/105 汇编语言程序代码如下:汇编语言程序代码如下: $INCLUDE (STC15.INC) ;包含包含STC15F2K60S2单片机寄存器定义文单片机寄存器定义文 件件 ADC_DAT EQU 30H ;A/D转换结果转换结果 ORG 0000H LJMP MAIN ORG 0050H MAIN: MOV SP, #70H ;设置堆栈设置堆栈 ORL ADC_CONTR, #80H ;开开A/D转换电源转换电源 M

57、OV A, #20H LCALL DELAY ;开电源后加适当延时,开电源后加适当延时,1ms以内即可以内即可 MOV P1ASF,#04H ;设置设置P1.2的模拟量功能的模拟量功能 MOV ADC_CONTR,#11100010B ;选择选择P1.2作为作为A/D转换通道转换通道 MOV A, #05H LCALL DELAY ;如果切换如果切换A/D转换通道转换通道,则需要加延时则需要加延时 68/105 WAIT_AD: ORL ADC_CONTR, #00001000B ;启动启动A/D转换转换 MOV A, #00010000B ;判断判断A/D转换是否完成转换是否完成 ANL A

58、, 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转换结果转换结果 LJMP WAIT_AD ;等待下一次转换完成等待下一次转换完成 69/105 DELAY: ;延时子程序延时子程序 PUSH 02 ;将寄存器组将寄存器组0 的的 R2 入栈入栈 PUSH 03 ;将寄存器组将寄存器组0 的的 R3 入栈入栈 PUSH 04 ;将寄存器组将寄存器组0

59、 的的 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, DELAY_LOOP1 ;4个时钟周期个时钟周期 DJNZ R4, DELAY_LOOP0 ;4个时钟周期个时钟周期 POP 04 POP 03 POP 02 RET END 70/105 C语言程序代码如下:语言程序代码如下: #include “stc12.h” /包含包含STC12C5

60、A60S2单片机寄存器定义文件单片机寄存器定义文件 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转换电源转换电源 for (i=0;i10000;i+); /适当延时适当延时 P1ASF=0 x04; /选择选择P1.2作为作为A/D转换通道转换通道 ADC_CONTR=0 xE2; for (i=0;i10000;i+); /适当延时适当延时 while(1) /循环进

温馨提示

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

最新文档

评论

0/150

提交评论