Download presentation
Presentation is loading. Please wait.
Published byΘέμις Αλεξανδρίδης Modified 5年之前
1
8.3 A/D转换器及接口技术 A/D转换器概述 在大规模集成电路高速发展的今天,由于计算机控制技术在工程领域内的广泛应用,A/D转换器在应用系统中占据着重要的地位。为了满足各种不同的检测及控制任务的需要,大量结构不同,性能各异的A/D转换电路应运而生。尽管A/D转换器的种类繁多,但目前广泛使用的还是逐次比较式和双积分式。
2
A/D转换器的主要技术指标 A/D转换器的主要技术指标如下: (1) 分辨率:指对输入模拟量变化的灵敏度。习惯上用输出二进制的位数或BCD码位数表示。 (2) 转换精度:指与数字输出量所对应的模拟输入量的实际值与理论值之间的差值。精度有绝对精度和相对精度两种表示方法。 (3) 转换速率:指能够重复进行数据转换的速度,即每秒转换的次数,而完成一次A/D转换所需的时间(包括稳定时间),为转换速率的倒数。
3
AT89C51单片机与ADC0809接口应用 1. ADC0809内部结构及特性 ADC0809是8位逐次比较式A/D转换器,其内部包括8位A/D转换器,8路模拟开关、三态输出锁存器以及地址译码器等。它可分别对8路0~5 V模拟量输入信号进行转换。输出量有三态锁存缓冲,可直接连到单片机的数据总线上。图8-10是ADC0809的内部结构图。
4
图8-10 ADC0809内部结构图
5
2. ADC0809引脚功能 图8-11是ADC0809的引脚图,引脚功能如下: (1) IN0~IN7:8路模拟量输的入端。 (2) 2-1~2-8:8位数字量输出端口,2-1为最高有效位,2-8为最低有效位。 (3) START:启动控制输入端,加正脉冲,立即启动A/D转换。
6
图8-11 ADC0809引脚图
7
(4) ALE:地址锁存控制端。 (5) EOC:转换结束信号输出端。 (6) OE:输出允许控制端。 (7) CLK:时钟信号输入端。 (8) REF(+)、REF(-):参考电压输入端,一般REF(+)接VCC,REF(-)接GND。 (9) ADDA、ADDB、ADDC:8位模拟开关的3位地址选通输入端,用来选择对应的输入通道,其对应关系如表8-2所示。 (10) VCC和GND:电源端和接地端。
8
表8-2 8路模拟开关功能表 ADDC ADDB ADDA 输入通道 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1
表 路模拟开关功能表 ADDC ADDB ADDA 输入通道 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
9
3.AT89C51与ADC0809接口 ADC0809与AT89C51的连接有三种方式:查询方式、中断方式和定时方式。应用时采用什么方式,应该根据具体情况来选择。 图8-12为单片机AT89C51与ADC0809的硬件电路图。该连接图既可作为中断方式,又可作为查询方式,通过软件编程,这两种方式都能够实现。
10
图8-12 AT89C51与ADC0809的接口图
11
[例8.3] 用查询方式分别对8路模拟信号轮流采样一次,并依次把结果转存到以30H为首址的数据存储区,程序如下:
MAIN: MOV R1,#30H ;置数据区首址 MOV DPTR,#0FFF8H ;指向IN0 MOV R7,#08H ;置通道数 LOOP:MOVX @DPTR,A ;启动A/D转换 MOV R6,#05H ;软件延时 DLAY: NOP DJNZ R6,DLAY
12
WAIT:JNB P3.2,WAIT ;查询EOC是否为高,高则转换结束 MOVX MOV @R1,A ;存取数据 INC DPTR ;指向下一个通道 INC R1 ;指向下一个存储单元 DJNZ R7,LOOP ;巡回检测八个通道 RET
13
[例8.4] 利用中断方式分别对8路模拟信号轮流采集一次,转换结果依次存放在首址为30H的片内数据区,程序如下:
ORG H AJMP MAIN ORG H AJMP PINT1 MIAN:MOV R1,#30H ;置数据区首址 MOV DPTR,#0FEF8H ;指向IN0 MOV R7,#08H
14
SETB IT0 SETB EX0 ;开中断 SETB EA LOOP:MOVX @DPTR,A ;启动A/D转换 PINT1:MOVX ;读取数据 MOV @R1,A ;存取数据
15
INC R1 ;更新存储单元 INC DPTR ;更新通道 DJNZ R7,DONE CLR EXO ;关中断 CLR EA RETI ;中断返回 DONE: MOVX @DPTR,A RETI
16
AT89C51与MC14433接口应用 1. MC14433的结构及特性 MC14433是 位双积分A/D转换器,它具有抗干扰性能好、转换精度高、自动校零、自动极性输出、自动量程控制信号输出、动态高位扫描BCD码输出、单基准电压、过量欠量程输出标志等特点,但其转换速度慢,在不要求高速转换的场合被广泛地应用。
17
2.MC14433引脚介绍 MC14433的引脚如图8-13所示。各引脚功能如下: (1) VAG:被测电压VX和基准电压VR的接地端(模拟地)。 (2) VR:外接基准电压(+2 V或+200 mV)。 (3) VX:被测电压输入端。 (4) R1,R1/C1,C1:外接积分电阻和外接积分电容端。 (5) CO1,CO2:外接失调补偿电容,典型值为0.1 μF。
18
(6) DU:更新输出的A/D转换数据结果的输入端,当DU与EOC相连时,每次的A/D转换结果都被更新。
(7) CLK1,CLK0:时钟信号输入、输出端。 (8) VDD、VEE:分别为正电源端(接+5 V)和模拟负电源端(接-5 V)。 (9) VSS:数字地或系统地。 (10) EOC:转换周期结束标志,每当一个A/D转换周期结束,输出一个宽度为时钟周期二分之一的正脉冲。
19
(11) (11) OR:过量程标志,平时为高电平,当|VX|>VR时,为低电平。
(12) DS1~DS4:多路选通脉冲输出端,DS1对应千位,DS4对应个位,每个选通脉冲宽度为18个时钟周期,两个相邻脉冲之间间隔2个时钟周期,其脉冲时序图见图8-14。
20
图8-14 MC14433选通脉冲时序图
21
(13) Q0~Q3:BCD码数据输出端,其中Q0为最低位,Q3为最高位。在DS2、DS3和DS4选通期间,分别输出三位完整的BCD码,即0~9这10个数码中的任何一个。但在DS1选通期间,Q0~Q3输出除了表示千位的0或1外,还表示了正负极性及欠过量程,其含义见表8-3。
22
表8-3 DS1选通时Q0~Q3表示的输出结果 DS1 Q3 Q2 Q1 Q0 输出结果状态 1 × 千位数为0 千位数为1 输出结果为正值
千位数为0 千位数为1 输出结果为正值 输出结果为负值 输入信号为过量程 输入信号为欠量程
23
3.AT89C51与MC14433的接口 由于MC14433的A/D转换结果是动态分时输出BCD码。Q0~Q3和DS1~DS4都不是总线式的,因此,单片机只能通过并行口或扩展并行口与其相连。图8-15为AT89C51与MC14433的硬件接口图。
24
图8-15 AT89C51与MC14433接口图
25
图8-15中,MC14433用集成精密+2.5 V电压基准源经电位器分压作为A/D转换的基准电压。EOC与DU相连,用来选择连续转换方式,每次转换结果都送至输出寄存器,并且由EOC作为查询或中断方式读取转换结果的输入信号。 用MC14433设计的A/D转换电路中,在程序设计时,因为要对符号位进行位处理,所以要将数据保存在能够进行位处理的单元。下面的程序是在中断程序中用查询方式读取MC14433的BCD码扫描输出值,并将读取的数据存在能进行位寻址的2EH、2FH单元,数据存放格式如图8-16所示。
26
图8-16 数据存放格式
27
程序如下: MAIN:SETB IT ;INT1为边沿触发方式 MOV IE,# B ;CPU开中断,允许INT1中断 中断服务程序: PINT1: MOV A,P1 JNB ACC.4,PINT ;等待DS1信号 JB ACC.0,PER ;过欠量程转PER
28
JB ACC.2,PL ;结果为正转PL1 SETB 77H ;负数,符号位置1 AJMP PL2 PL1:CLR 77H ;正数,符号位清0 PL2:JB ACC.3,PL3 ;ACC.3=0时,千位数为1 SETB 74H ;千位数置1 AJMP PL4
29
PL3:CLR 74H ;千位数清零 PL4:MOV A,P1 JNB ACC.5,PL4 ;等待百位BCD码的选通信号 MOV R0,#2EH XCHD ;百位数送入2EH低4位 PL5:MOV A,P1 JNB ACC.6,PL5 ;等待十位数选通信号DS3
30
SWAP A ;高低4位交换 INC R ;指向2FH单元 MOV @R0,A ;十位数送入2FH PL6:MOV A,P1 JNB ACC.7,PL ;等待个位数选通信号DS4 XCHD ;个位数送入2FH低4位 RETI PER:SETB 10H ;置过欠量程标志
31
8.4 D/A转换器及接口技术 8.4.1 D/A转换器的主要技术指标 1. 分辨率
分辨率指最小输出电压(对应的输入数字量最低有效位为1)与最大输出电压(对应的数字输入量所有位全为1)之比。 例如,对于10位D/A转换器,其分辨率为
32
2. 转换精度 D/A的转换精度主要取决于D/A转换器的二进制位数。例如,8位的D/A相对误差是1/256,16位的D/A相对误差为1/65 536。显然,二进制位数越多精度越高。 3. 建立时间 D/A转换器是指从数字输入端发生变化开始,到输出模拟信号电压(或模拟信号电流)达到满刻度值(1/2)LSB时所需要的时间。
33
D/A转换器与单片机的接口 1. 不带数据锁存器的D/A转换器的接口方法 对于这类D/A转换器与单片机的接口连接,只需在D/A转换器输入端外加一个锁存器即可。MC1408是一个不带锁存器的8位D/A转换器,图8-17是MC1408与89C51的接口连线图。
34
从图8-17中可知,由于MC1408不带数据锁存器,所以用一片片外锁存器74LS273作为具有数据锁存的并行输出口,其输出端与MC1408的输入端相连,用2.5 V的AD580作为D/A的参考电压源。MC1408的输出外接一个运放,目的是由电流型转换为电压型的输出,用RBP选择输出电压的极性:若连上RBP,输出电压是双极性的;若断开RBP,则输出电压是单极性的。
35
图8-17 不带数据锁存器的D/A转换器与AT89C51的连接图
36
根据图8-17中的连接方法,选通74LS273的口地址为FEH,以下三条指令就能实现D/A转换。
MOV A,#NN ;NN为待转换的数字量 MOV R0,#0FEH ;送口地址 ;输出转换数据
37
执行MOVX指令,即产生信号,将锁存在74LS273中的数据输出到MC1408,立即进行D/A转换。
以下程序可以产生连续的锯齿波。 MOV R0,#0FEH MOV A,#00H ;置转换初值 ;启动D/A转换 INC A ;转换值加1 AJMP LOOP
38
2. 带数据锁存器的D/A转换器的接口方法 1) DAC0832特性与结构 DAC0832具有两个输入数据寄存器的8位DAC,分辨率为8位,电流稳定时间1 μs,可采用单缓冲、双缓冲或直接数字输入工作方式,转换结果为电流型,它能直接与51系列单片机接口。DAC0809是单一电源供电(+5 V~+15 V),低功耗。图8-18是DAC0832的内部逻辑结构图。
39
图8-18 DAC0832的内部结构图
40
2) DAC0832引脚功能介绍 图8-19是DAC0832的引脚图。各引脚功能如下: (1) DI0~DI7:数据输入线。 (2) ILE:数据锁存允许端,高电平有效。 (3) :输入寄存器选择信号端,低电平有效。 (4) :输入寄存器的写选通信号端,低电平有效。 (5) :DAC寄存器的写选通信号端,低电平有效。 (6) :数据转换控制信号线,低电平有效。
41
图8-19 DAC0832的引脚图
42
(7) VREF:基准电源输入端。 (8) Rfb:反馈信号输入端(反馈电阻在芯片内部)。 (9) IOUT1、IOUT2:电流输出端。 (10) VCC:电源输入端。 (11) AGND:模拟信号地。 (12) DGND:数字信号地。
43
3) DAC0832与AT89C51的接口 从图8-19可知,只有当和ILE同时有效时,才能够通过 将数据写入输入寄存器。 (1) 单缓冲工作方式:在应用系统中,当只有一路模拟量输出或虽有多路模拟量但不需要做同步输出时,就可以采用单缓冲工作方式。
44
图8-20 DAC0832单缓冲方式下的连接方法
45
在图8-20中,D/A转换器的基准电压VREF取自MC1403的分压输出,LM324的功能是把电流型输出转换成单极性的电压型输出,由于 、 并接到地址锁存器的A0,所以0832的口地址为FFFEH。
按照图8-23,产生梯形波的程序如下:
46
START: MOV DPTR,#0FFFEH ;选中0832
STEP: MOV R6,#20H ;置阶跃值 MOV R4,#05H ;置阶跃次数 MOV A,#00H ;送初值 LOOP: MOVX @DPTR,A ;启动D/A转换 ACALL DELAY ;调延时程序 ADD A,R6 ;加阶跃值 DJNZ R4,LOOP ;重复数到否 AJMP STEP
47
(2) 双缓冲工作方式:双缓冲工作方式用于需要同时输出几路模拟信号的场合。此种方式下,每一路模拟量都需要一片DAC0832,从而构成多个0832同步输出系统,图8-21是两路模拟信号同步输出的电路连接方法。
48
图8-21 两路模拟信号同步输出系统
49
下面是按照图8-21使两路模拟电压同时输出的程序清单:
MOV DPTR,#0FFFEH MOV A,#Xdata MOVX @DPTR,A ;Xdata写入第一片0832的输入寄存器 MOV DPTR,#0FFFDH MOV A,#Ydata
50
MOVX @DPTR,A ;Ydata写入第二片0832的输入寄存器 MOV DPTR,#0FBH MOV @DPTR,A ;两片0832的输入寄存器的数据同时送到各自的DAC寄存器
Similar presentations