第2章模拟量输入通道_第1页
第2章模拟量输入通道_第2页
第2章模拟量输入通道_第3页
第2章模拟量输入通道_第4页
第2章模拟量输入通道_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章 模拟量输入通道,学习目标: 1. 了解模拟量输入通道常用器件的功能作用 与结构组成。 2. 掌握8位A/D转换器ADC0809的原理组成、功能特性及与AT89C52的接口电路。 3. 了解12位A/D转换器AD574A的功能特性及与AT89C52的接口电路。 4. 了解双积分式A/D转换器MC14433的功能特性及与AT89C52的接口电路。,返回总目录,本章主要内容,引言 2.1信号调理电路 2.2多路模拟开关 2.3前置放大器 2.4采样保持器 2.5A/D转换器 2.6接口电路 本章小结 思考题,引言 在微机控制系统中,输入信号多是模拟量。那么一个数字计算机是如何通过输入通道采集

2、模拟信号的呢? 模拟量输入通道的任务是把被控对象的模拟量信号如温度、压力、流量、液位、重量等转换成计算机可以接收的数字量信号。如图2-1所示,来自于工业现场传感器或变送器的多个模拟量信号首先需要信号调理,然后经多路模拟开关,分时切换到后级进行前置放大、采样保持和模/数转换,通过接口电路以数字量信号进入主机系统,从而完成对过程参数的巡回检测任务。显然,该通道的核心是模/数转换器即A/D转换器或ADC,通常把模拟量输入通道称为A/D通道或AI通道。,2.1 信号调理电路,在模拟量输入通道中,对现场可能引入的各种干扰必须采取相应的技术措施以保证模/数转换的精度,所以首先要在通道之前设置输入信号调理电

3、路。 根据通道需要,可以采取不同的信号调理技术,如信号滤波、光电隔离、电平转换、过电压保护、反电压保护、电流/电压变换等。本节主要介绍模拟量输入通道中常用的电流/电压变换技术,其余部分参见4.2.1与9.2有关内容。 在控制系统中,对被控量的检测往往采用各种类型的现场变送器,它们的输出一般为0 10 mA或4 20 mA的统一电流信号,对此需采用电阻分压法把现场的电流信号转换为电压信号,以下是两种变换电路。,1.无源I/V变换电路 无源I/V变换电路是利用无源器件电阻来实现,加上RC滤波和二极管限幅等保护,如图2-2(a)所示,其中R2为精密电阻。对于0 10 mA输入信号,可取R1=100,

4、R2=500,这样当输入电流在0 10 mA量程变化时,输出的电压就为0 5 V范围;而对于4 20 mA输入信号,可取R1=100,R2=250,这样当输入电流为4 20 mA时,输出的电压为1 5 V。,2. 有源I/V变换 有源I/V变换是利用有源器件运算放大器和电阻电容组成,如图2-2(b)所示。利用同相放大电路,把电阻R1上的输入电压变成标准输出电压。 该同相放大电路的放大倍数为,(2-1),若取R1=200,R3=100k,R4=150k,则输入电流 I 的0 10 mA就对应电压输出V的0 5 V;若取R1=200,R3=100k,R4=25k,则4 20 mA的输入电流对应于1

5、 5 V的电压输出。,2.2 多路模拟开关,由于微机的工作速度远远快于被测参数的变化,因此一台微机系统可供几十个检测回路使用,但微机在某一时刻只能接收一个通道的信号。所以,必须通过多路模拟开关实现多选1的操作,将多路输入信号依次地切换到后级。 目前,微机控制系统使用的多路开关种类很多,如集成电路芯片CD4051(双向、单端、8路)、CD4052(单向、双端、4路)、AD7506(单向、单端、16路)等。,2.2.1结构原理,现以常用的CD4051为例,8路模拟开关的结构原理如图2-3所示。CD4051由电平转换、译码驱动及开关电路三部分组成,引脚中的禁止端很重要。当禁止端为“1”时,前后级通道

6、断开,即S0S7端与Sm端不可能接通;当为“0”时,则通道可以被接通,通过改变控制输入端C、B、A的数值,就可选通8个通道S0S7中的一路。比如:当C、B、A= 000时,通道S0选通;当C、B、A=001时,通道S1选通;当C、B、A = 111时,通道S7选通。其真值表如表2-1所示。,表2-1 CD4051的真值表,注:表中 表示1或0都可以,2.2.2 扩展电路,当采样通道多至16路时,可直接选用16路模拟开关的芯片,也可以将2个8路4051并联起来,组成1个单端的16路开关。 例题2-1 试用两个CD4051扩展成一个116路的模拟开关。,例题分析:图2-4给出了两个CD4051扩展

7、为16路模拟开关的电路。数据总线D3D0作为通道选择信号,D3用来控制两个多路开关的禁止端。当D3=0时,选中上面的多路开关,此时当D2、D1、D0从000变为111,则依次选通上面的S0S7通道;当D3=1时,经反相器变成低电平,选中下面的多路开关,此时当D2、D1、D0从000变为111,则依次选通下面的S8=15通道。如此,组成一个16路的模拟开关。,2.3 前置放大器,前置放大器的任务是将模拟输入小信号放大到A/D转换的量程范围之内,如05V DC。对单纯的微弱信号,可用一个运算放大器进行单端同相放大或单端反相放大。如图2-5所示,信号源的一端若接放大器的正端为同相放大,同相放大电路的

8、放大倍数G =1+R2/R1;若信号源的一端接放大器的负端为反相放大,反相放大电路的放大倍数G =R2/R1。当然,这两种电路都是单端放大,所以信号源的另一端是与放大器的另一个输入端共地。,2.3.1 测量放大器,但来自生产现场的传感器信号往往带有较大的共模干扰, 而单个运放电路的差动输入端难以起到很好的抑制作用。 因此,A/D通道中的前置放大器常采用由一组运放构成的测量放大器,也称仪表放大器,如图2-6(a)所示。 经典的测量放大器是由三个运放组成的对称结构,测量放大器的差动输入端VIN和VIN分别是两个运放A1、A2的同相输入端,输入阻抗很高,而且完全对称地直接与被测信号相连,因而有着极强

9、的抑制共模干扰能力。,图中RG是外接电阻,专用来调整放大器增益的。因此,放大器的增益G与这个外 接电阻RG有着密切的关系。增益公式为,目前这种测量放大器的集成电路芯片有 多种,如AD521/522、INA102等。,(2-2),2.3.2 可变增益放大器,在A/D转换通道中,多路被测信号共用一个测量放大器,而各路的输入信号大小往往不同,但都要放大到A/D转换器的同一量程范围。因此,对应于各路不同大小的输入信号,测量放大器的增益也应不同。具有这种性能的放大器称为可变增益放大器或可编程放大器,如图2-6(b)所示。,把图(a)中的外接电阻RG换成一组精密的电阻网络,每个电阻支路上有一个开关,通过支

10、路开关依次通断就可改变放大器的增益,根据开关支路上的电阻值与增益公式,就可算得支路开关自上而下闭合时的放大器增益分别为2、4、8、16、32、64、128、256倍。显然,这一组开关如果用多路模拟开关(类似CD4051)就可方便地进行增益可变的计算机数字程序控制。 此类集成电路芯片有AD612/614等。,2.4 采样保持器,当某一通道进行A/D转换时,由于A/D 转换需要一定的时间,如果输入信号变化较快,就会引起较大的转换误差。为了保证A/D转换的精度,需要应用采样保持器。,2.4.1 数据采样定理,把连续变化的量变成离散量后再进行处理的微机控制系统,称为离散系统或采样数据系统。离散系统的采

11、样形式有周期采样、多阶采样和随机采样。应用最多的是周期采样,如图2-7所示,周期采样就是以相同的时间间隔进行采样,即把一个连续变化的模拟信号y(t),按一定的时间间隔T转变为在瞬时0,T,2T,的一连串脉冲序列信号 y*(t)。执行采样动作的装置叫采样器或采样开关,采样开关每次闭合的时间称为采样时间或采样宽度,采样开关每次通断的时间间隔称为采样周期T。在实际系统中, T,也就是说,可以近似地认为采样信号y*(t)是y(t)在采样开关闭合时的瞬时值。,由经验可知,采样频率越高,采样信号 y*(t)越接近原信号y(t),但若采样频率过高,在实时控制系统中将会把许多宝贵的时间用在采样上,从而失去了实

12、时控制的机会。为了使采样信号y*(t)既不失真,又不会因频率太高而浪费时间,我们可依据香农采样定理。香农定理指出:为了使采样信号y*(t)能完全复现原信号y(t),采样频率f 至少要为原信号最高有效频率fmax的2倍,即f 2fmax。 采样定理给出了y*(t)唯一地复现y(t)所必需的最低采样频率。实际应用中,常取f (5 10)fmax。,2.4.2采样保持器,采样保持器是在两次采样的间隔时间内,一直保持采样值不变直到下一个采样时刻。采样保持器的组成原理电路与工作波性如图2-8(a)、(b)所示。采样保持器由输入输出缓冲放大器A1、A2和采样开关S、保持电容CH等组成。采样期间,开关S闭合

13、,输入电压VIN通过A1对CH快速充电,输出电压VOUT跟随VIN变化;保持期间,开关S断开,由于A2的输入阻抗很高,理想情况下电容将保持CH电压VC不变,因而输出电压VOUTVC也保持恒定。,在A/D通道中,采样保持器的采样与保持状态应与后级的A/D转换相配合:保持器的采样期间,不启动A/D转换器,一旦进入保持期间,立即启动A/D转换器,从而保证A/D 转换时的模拟输入电压恒定,保证A/D转换的精度。 实际上保持期间的电容电压VC是会渐渐下降的,因此电容容量的大小决定采样保持器的精度。一般选用容量为5101000pF的聚四氟乙烯等电容器。 常用的集成采样保持器有LF198/298/398、A

14、D582、AD583等 。,2.5 A/D转换器,A/D转换器能把输入的模拟电压变成与它成正比的数字量,即能把被控对象的各种模拟信息变成计算机可以识别的数字信息。,2.5.1 工作原理与性能指标,A/D转换器从原理上可分为多种,常用的主要有逐位逼近式和双积分式两种。 1逐位逼近式A/D转换原理 一个n位A/D转换器是由n位寄存器、n位D/A转换器、运算比较器、控制逻辑电路、输出锁存器等五部分组成。现以4位A/D转换器把模拟量9转换为二进制数1001为例,说明逐位逼近式A/D转换器的工作原理。,如图2-9所示,当启动信号作用后,时钟信号在控制逻辑作用下,首先使寄存器的最高位D3 1,其余为0,此

15、数字量1000经D/A转换器转换成模拟电压即VO 8,送到比较器输入端与被转换的模拟量VIN = 9进行比较,控制逻辑根据比较器的输出进行判断。当VIN VO,则保留D3 = 1;再对下一位D2进行比较,同样先使D2 1,与上一位D3位一起即1100进入D/A转换器,转换为VO 12再进入比较器,与VIN 9比较,因VIN VO,则使D2 0;再下一位D1位也是如此,D1 1即1010,经D/A转换为VO = 10,再与VIN 9比较,因VIN VO,则使D1 0;最后一位D0 1即1001经D/A转换为VO 9,再与VIN 9比较,因VIN VO,保留D0 1。比较完毕,寄存器中的数字量10

16、01即为模拟量9的转换结果,存在输出锁存器中等待输出。,一个 n 位A/D转换器的模数转换表达式是,式中 n n位A/D转换器; VR+、VR基准电压源的正、负输入; VIN 要转换的输入模拟量; B转换后的输出数字量。 即当基准电压源确定之后,n位A/D转换器的输出数字量B与要转换的输入模拟量VIN呈正比。,(2-3),例题2-2:一个8位A/D转换器,设VR+ = 5.02 V, VR = 0 V,计算当VIN分别为0 V、2.5 V、5 V时所对应的转换数字量。,解:把已知数代入公式(2-3):,0 V、2.5 V、5 V时所对应的转换数字量分别为00H、80H、FFH。 此种A/D转换

17、器的常用品种有普通型8位单路ADC0801ADC0805、8位 8路ADC0808/0809、8位16路ADC0816/0817等,混合集成高速型12位单 路AD574A、ADC803等。,2双积分式A/D转换原理,双积分式A/D转换原理如图2-10所示,在转换开始信号控制下,开关接通模拟输入端,输入的模拟电压VIN 在固定时间T内对积分器上的电容C充电(正向积分),时间一到,控制逻辑将开关切换到与VIN极性相反的基准电源上,此时电容C开始放电(反向积分),同时计数器开始计数。当比较器判定电容C放电完毕时就输出信号,由控制逻辑停止计数器的计数,并发出转换结束信号。这时计数器所记的脉冲个数正比于

18、放电时间。,放电时间T1或T2又正比于输入电压VIN,即输入电压大,则放电时间长,计数器的计数值越大。因此,计数器计数值的大小反映了输入电压VIN在固定积分时间T内的平均值。 此种A/D转换器的常用品种有输出为3位半BCD码(二进制编码的十进制数)的ICL7107、MC14433、输出为4位半BCD码的ICL7135等。,3A/D转换器的性能指标,(1)分辨率 分辨率是指A/D转换器对微小输入信号变化的敏感程度。分辨率越高,转换时对输入量微小变化的反应越灵敏。通常用数字量的位数来表示,如8位、10位、12位等。分辨率为n,表示它可以对满刻度的1/2n的变化量作出反应。即: 分辨率 = 满刻度值

19、/2n,(2)转换精度 A/D转换器的转换精度可以用绝对误差和相对误差来表示。 所谓绝对误差,是指对应于一个给定数字量A/D转换器的误差,其误差的大小由实际模拟量输入值和理论值之差来度量。绝对误差包括增益误差,零点误差和非线性误差等。 相对误差是指绝对误差与满刻度值之比,一般用百分数来表示,对A/D转换器常用最低有效值的位数LSB来表示。1LSB = 12n 例如,对于一个8位0 5 V的A/D转换器,如果其相对误差为1LSB,则其绝对误差为19.5 mV,相对百分误差为0.39。一般来说,位数n越大,其相对误差(或绝对误差)越小。,(3)转换时间 A/D转换器完成一次转换所需的时间称为转换时

20、间。如逐位逼近式A/D 转换器的转换时间为s级,双积分式A/D转换器的转换时间为ms级。,2.5.2 ADC0809芯片,ADC0809的结构组成 ADC0809为逐位逼近式8位A/D转换器,分辨率为1/28 = 0.39 %,模拟电压转换范围是 0 +5 V,标准转换时间为100s,采用28脚双立直插式封装,其内部结构及引脚如图2-11所示。,ADC0809是在逐位逼近式A/D转换的原理基础上,增加了一个8路模拟开关、一个用来选择通道的地址锁存译码电路和一个三态输出锁存器。共有28只管脚,各引脚功能如下: IN0IN7:8路模拟量输入端。允许8路模拟量分时输入,共用一个A/D转换器。 ALE

21、:地址锁存允许信号,输入,高电平有效。上升沿时锁存3位通道选择信号。 ADDA、ADDB、ADDC:3位地址线即模拟量通道选择线。ALE为高电平时,地址译码与对应通道选择见表2-2 。,表 2-2 被选通道和地址的关系,START:启动A/D转换信号,输入,高电平有效。上升沿时将转换器内部清零,下降沿时启动A/D转换。 EOC:转换结束信号,输出,高电平有效。平时EOC为高电平,A/D转换期间为低电平,A/D转换结束后又变为高电平。EOC可用作向CPU 申请中断的信号,或供CPU查询A/D转换是否结束的信号。 OE:输出允许信号,输入,高电平有效。该信号用来打开三态输出缓冲器,将A/D转换得到

22、的8位数字量送到数据总线上。,D0D7:8位数字量输出。D0为最低位,D7为最高位。由于有三态输出锁存,可与CPU数据总线直接相连。 CLOCK:外部时钟脉冲输入端。当脉冲频率为640kHz时,A/D转换时间为100s。 VR+,VR-:基准电压源正、负端。取决于被转换的模拟电压范围,通常VR+ = 5 V DC,VR = 0 V DC。 Vcc:工作电源, 5VDC。 GND:电源地。,2.ADC0809的转换时序,了解ADC0809的内部转换时序非常重要,这是设计分析硬件与软件时的主要依据。如图2-12所示,其转换过程表述如下:首先ALE的上升沿将地址代码锁存、译码后选通模拟开关中的某一路

23、,使该路模拟量进入到A/D转换器中。同时START 的上升沿将转换器内部清零,下降沿起动A/D转换,即在时钟的作用下,逐位逼近过程开始,转换结束信号EOC即变为低电平。当转换结束后,EOC恢复高电平,此时,如果对输出允许OE输入一高电平命令,则可读出数据。,2.5.3 AD574A芯片,AD574A是一种高性能的逐位逼近式A/D转换器,内部结构大体与ADC0809类似,带有输出锁存缓冲器,因而可以直接与单片机接口;不同的是只能输入一路模拟量,输出为12位数字量,分辨率为1/212 =0.024%,转换时间为 25 uS,适合于在高精度快速采样系统中使用。 AD574A采用28脚双立直插式封装,

24、引脚排列如图2-13所示。,10VIN,20VIN,BIP OFF:模拟信号输入端。单极性应用时,将BIP OFF接0 V,双极性时接10 V。量程可以是10 V,也可以是20 V。输入信号在10 V范围内变化时,将输入信号接至10 VIN;在20V范围内变化时,接至20VIN。模拟输入信号的几种接法如表2-3所示,相应电路如图2-14所示。,表2-3 模拟输入信号的几种接法,Vcc:工作电源正端,+12 VDC或+15 VDC。 VEE:工作电源负端,12 VDC或15 VDC。 VL:逻辑电源端,+5 VDC。虽然使用的工作电源为12 VDC或15 VDC, 但数字量输出及控制信号的逻辑电

25、平仍可直接与TTL兼容。 DGND,AGND:数字地,模拟地。 REF OUT:基准电压源输出端,芯片内部基准电压源为+10.00 V1。 REF IN:基准电压源输入端,如果REF OUT通过电阻接至REF IN,则可用来调量程。,:转换结束信号,高电平表示正在转换,低电平表示已转换完毕。 DB0-DB11:12位输出数据线,三态输出锁存,可与CPU数据线直接相连。 CE:片能用信号,输入,高电平有效。 :片选信号,输入,低电平有效。 R/:读/转换信号,输入,高电平为读A/D转换数据,低电平为起动A/D转换。,12/:数据输出方式选择信号,输入,高电平时输出12位数据,低电平时与A0信号配

26、合输出高8位或低4位数据。12/不能用TTL电平控制,必须直接接至+5V(引脚1)或数字地(引脚15)。 A0:字节信号,在转换状态,A0为低电平可使AD574A产生12位转换,A0为高电平可使AD574A产生8位转换。在读数状态,如果12/为低电平,当A0为低电平时,则输出高8位数,而A0为高电平时,则输出低4位数;如果12/为高电平,则A0的状态不起作用。,CE、 、R/ 12/ 、 A0各控制信号的组合作用,列于表2-4。,注: 表示1或0都可以。,表2-4 AD574A控制信号的作用,2.5.4 MC14433芯片,MC14433是美国Motolola公司生产,是目前市场上广为流行的最

27、典型的双积分A/D转换器,输出为三位半BCD码,即个位、十位、百位的值可以是0 9,而千位的值只能是0或1,这个分辨率相当于11位二进制数。MC14433具有自动校零、自动极性输出、自动量程控制信号输出、抗工频干扰能力强、单基准电压、外接元件少、价格低廉等特点。但其转换速度慢,一次A/D转换时间为100ms 250ms。在不要求高速转换的场合如温度控制系统中,被广泛应用。它的国产替代品5G14433,与MC14433完全相同,可以互换使用。,MC14433为24引脚芯片,其内部原理框图与引脚排列如图2-15所示。,模拟电路部分有基准电压、模拟电压输入部分。被转换的模拟电压输入量程为1999mv

28、或l999V两种,与之相对应的基准电压分别为+200mV或+2V两种。 数字电路部分由逻辑控制、BCD码及输出锁存器、多路开关、时钟以及极性判别、溢出检测等电路组成。5G14433采用字位动态扫描BCD码输出方式,即千、百、十、个位BCD码轮流地在Q0Q3端输出,同时在DS1DS4端出现同步字位选通信号。,VAG:被测电压VX和基准电压VR的接地端(模拟地)。 VR:外接输入基准电压,+200mV或+2V。 VX:被测电压输入端。 R1、R1/C1、C1:外接积分电阻和积分电容元 件端,外接元件典型值:当基准电压为2V时,、C1 = 0.1F,R1 = 470 k;当基准电压为200mV时,C

29、1 = 0.1F,R1 = 27 k。,C01、C02:外接失调补偿电容C0端,C0的典型值为0.1F。 DU:转换更新控制端。当该引脚输入一个高电平,就把转换结果送到输出锁存器上。通常把DU与EOC连接,每次的AD转换结果都被更新。 CLOKI和CLKO:时钟振荡器外接电阻Rc 端,Rc的典型值为470 k,时钟频率随着Rc增加而下降。 VEE:模拟部分的负电源端,接5V。 VSS:数字地,实际应用时VSS接VAG,即模拟地和数字地相连。 EOC:转换结束标志输出。当A/D转换结束后,该引脚输出一个正脉冲。,:过量程标志输出,平时为高电平,当输入的模拟信号超过量程范围,该引脚上出现低电平。

30、DS1DS4:选通脉冲输出端。当转换结束后,将循环输出千位、百位、十位、个位的数据。当DS1为高电平、DS2DS4 为低电平,表示当前输出千位;当DS2为高电平其它DS位为低电平,表示当前输出百位;当DS3为高电平其它DS位为低电平,表示当前输出十位;当DS4为高电平其它DS位为低电平,表示当前输出个位。,Q0Q3:BCD码数据输出线。其中Q0为最低位,Q3为最高位。当DS2、DS3、DS4顺序选通期间,Q0Q3分别输出完整的BCD码,即09十个数字任一个都可。但在DS1选通期间,数据输出线Q0Q3除了表示千位的0或1外,还表示转换值的正、负极处和欠量程还是过量程,其含义见表2-5。,表2-5

31、 DS1选通时Q0Q3表示的输出结果,注: 表示1或0都可以。,由表2-5可知: 1Q3表示BCD千位的数值:Q3=1,则千位数为0,Q3=0,则千位数为1。 2Q2表示转换值的极性:Q2=1为正极性,VX0,Q2=0为负极性,VX0。 3Q0表示量程范围:Q0=0表示VX 未超出量程范围;在Q0=1、Q3=0时,表示过量程,在Q0=1、Q3=1时,表示欠量程。 4在DS1=1时,Q1的输出没有意义。 VDD:正电源端,接+5V。,2.6 接口电路,单片机与A/D转换器的接口电路主要是解决如何分时采集多路模拟量输入信号的,即如何启动A/D转换,如何判断A/D完成一次模数转换,单片机如何读入并存

32、放转换结果的。 下面介绍几个典型芯片与AT89C52单片机的接口电路。,2.6.1 ADC0809与AT89C52的接口电路,ADC0809的转换时序说明,通过转换结束信号EOC引脚上电平的高低就可判断A/D转换是否完成,因此可以设计出用单片机查询EOC引脚电平的查询方式以及用EOC引脚电平向单片机申请中断的中断方式等多种接口电路。,1查询方式读A/D转换 单片机启动ADC0809转换以后,接着就查询EOC的电平状态,当EOC变为“1”时,表示A/D转换结束,单片机再给输出允许端OE送一个高电平,即读入A/D转换后的数据。该查询方式的接口电路如图2-16所示。,由于ADC0809带有输出锁存器

33、,因此它的输出数据线D0D7可以和AT89C52的P0口直接相连;AT89C52通过P2.0、P2.1、P2.2三条I/O线分别连到ADC0809的3条地址线ADDA、ADDB、ADDC,用来选通8个模拟通道;通过P2.3控制ADC0809的地址锁存ALE端与启动转换START端;通过P2.5查询EOC的电平状态;A/D转换结束后,再通过P2.4控制ADC0809的输出允许端OE,通过P0口将转换后的数字信号读入单片机内;由P1.0输出频率可调的方波信号至ADC0809的时钟脉冲CLOCK端。,例题2-3:如2-16图所示,试用查询方式编程,对8个模拟通道的模拟电压进行巡回检测,并将A/D转换

34、结果存入内部RAM以30H单元为始地址的数据缓冲区。 解:程序清单如下: MOV R0,#30H ;数据缓冲区始地址送R0 MOV R1,#0 ;A/D转换通道地址送入R1(即000) MOV R2,#8 ;通道数(8路)存放于R2中 MOVP2,#0 ;设置ADC0809的START、ALE、OE为低电平,LOOP:MOVP2,R1 ;输出通道地址(即选通1N0通道) SETB P2.3 ;利用软件在P2.3查询方式读A/D转换上形成一正脉冲以锁存通道地址 CLRP2.3 ;启动A/D转换 WATT:JNB P2.5,WATT ;判断转换是否结束,未结束则继续查询,直到转换结束 SETBP2

35、.4 ;打开ADC0809转换结果输出门 MOV R0,P0 ;转换结果存放于数据缓冲区 CLRP2.4 ;关闭ADC0809转换结果输出门 INCR0 ;数据缓冲区指针加1 INCR1 ;模拟通道地址加1 DJNZ R2,LOOP ;8路巡回采集未结束,则转向LOOP继续,2中断方式读A/D转换,中断方式读A/D转换的接口电路与查询方式基本类似,只是改动了ADC0809转换结束信号EOC的一根连线,将EOC经非门与AT89C52的INT0(P3.2)相接,以中断请求的形式通知单片机,单片机响应中断后,在中断服务程序中使OE端变为高电平,读取A/D转换结果,接口电路如图2-17所示,例题2-4

36、:如图2-17所示,对8个模拟通道的模拟电压进行巡回检测,并将A/D转换结果存入内部RAM以30H单元为始地址的数据缓冲区,试写出中断服务程序。 解:在INT0的中断服务程序中,完成两个任务:读取当前通道A/D转换结果;启动下一通道的A/D转换。 INT0_SER:MOVA,P2 ;读当前通道地址ANLA,#07H ADDA,#30H ;计算当前通道在A/D转换缓冲区的地址 MOVR0,A SETBP2.4;打开ADC0809转换结果输出门,MOVR0,P0;将A/D转换结果存放在缓冲区 CLRP2.4 ;关闭ADC0809转换结果输出门 MOVA,P2 ;计算下一通道地址 ANLA,#07H

37、 INCA ANLA,#07H MOVP2,A ;打开下一通道 SETBP2.3 CLRP2.3 RETI;中断返回,2.6.2 AD574A与AT89C52的接口电路,12位A/D转换器与8位单片机的接口不同于8位A/D转换器的接口,其主要区别在于转换后的12位数字量要分两次读出。因此,存放数据的内存单元及逻辑控制信号也不同。但相似的是,在A/D转换器与单片机之间的数据传送方法上也可以使用程序查询、中断控制等多种方法。由于AD574A的转换速度很高(大约25s),一般多采用查询方式。,AD574A与AT89C52的查询方式接口电路如图2-18所示,图中采用双极性输入方式,12位输出数据线与A

38、T89C52的P0口以分时复用的方式连接,P2口用作A/D转换的控制信号,引脚12/接地。根据AD574A的控制时序,启动A/D转换时以12位进行;读入时按照高8位与低4位分两次读入。,以下是图2-18的驱动程序: MOVP2,#11H;启动12位位转换 MOVP2,#1EH;设置AD574A处于无操作状态 WATT:JB P2.4,WATT;等待转换结束 MOVP2,#13H;读高8位 MOV30H,P0;高8位存内部RAM 30H中 MOVP2,#1EH;设置AD574A处于无操作状态 MOVP2,#17H;读低4位 MOVA,P0 ANLA,#0F0H;屏蔽无效的4位 MOV31H,A;

39、低4位存内部RAM 31H中 MOVP2,#1EH ;设置AD574A处于无操作状态,2.6.3 MC14433与AT89C52的接口电路,虽然MC14433需外接的元件很少,但为使其工作在最佳状态,也必须注意与单片机的电路连接和外接元器件的选择。图2-19为MC14433与AT89C52的接口电路。 主要外接器件是时钟振荡器外接电阻 RC、外接失调补偿电容C0和外接积分阻容元件R1、C1,输入VX量程设定为1.999 V,基准电源为 VR = 2 V,采用 5G1403精密电源;时钟信号CLKO、CLKI两端外接电阻RC=300 k,可产生 66 kHZ的时钟,完成一次A/D转换的时间约为2

40、50 ms;C01、C02两端外接失调补偿电容C0=0.1F;R1、R1/C1、C1端外接积分电阻R1 = 470 k和积分电容C1 = 0.1F;将DU端与EOC端短接,使每次A/D转换结束时都将转换结果送至内部的锁存器,再经多路开关输出选通信号DS1DS4及BCD码数据Q0Q3,CPU通过P1口读入后进行分类处理。,由于EOC是A/D转换结束输出标志信号,因此CPU可定时查询EOC引脚,或采用中断方式。图中为采用中断方式的接口电路,将MC14433的转换结束标志输出信号EOC和转换更新控制信号DU两引脚相连,则选择了连续A/D转换方式。MC14433上电后即对外部输入模拟电压Vx进行A/D

41、转换,每次A/D转换结束后,EOC输出一个正脉冲,一方面通过DU端控制A/D转换结果的更新输出,另一方面经非门向CPU的申请中断,CPU响应中断后,在中断程序中分别取走千位(还有标志位)、百位、十位和个位的BCD码。软件查询时,应按DS1、DS2、DS3、DS4的顺序。经处理后送入单片机内RAM的2EH、2FH单元中,数据存放的格式如图2-20所示。,主程序的初始化是开放CPU及中断,与有关的初始化主程序: SETB IT0 ;选择边沿触发中断 SETB EX0 ;允许中断开放 SETB EA ;允许总中断开放 MC14433 A/D转换中断子程序框图如图2-21所示。,相应的中断子程序如下: ORG 0003H ;中断矢量 LJMP PINT0 ;转中断实际入口地址 PINT0: PUSH A ;保护现场 PUSH PSW ; SETB 03H ;设置中断 标志置1 LOOP: MOV A,P1 ;读A/D转换值及状态 JNB ACC.4,LOOP ;DS11,未选通,查询等待 JB ACC.0,PERR ;查是否通过、欠量程,Q

温馨提示

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

评论

0/150

提交评论