第11章89C51单片机与DA转换器、AD转换器的接口_图文

第11章

89C51单片机与D/A转换器、 A/D转换器的接口

非电物理量(温度、压力、流量、速度等),须经传感器 转换成模拟电信号(电压或电流),必须转换成数字量,才能 在单片机中处理。 数字量,也常常需要转换为模拟信号。 A/D转换器(ADC):模拟量→数字量的器件。 D/A转换器(DAC):数字量→模拟量的器件。 只需合理选用商品化的大规模ADC、DAC芯片,了解引脚及 功能以及与单片机的接口设计。 11.1 11.1.1 89C51与DAC的接口 D/A转换器概述

1. 概述 输入:数字量,输出:模拟量。 转换过程:送到DAC的各位二进制数按其权的大小转换为相 应的模拟分量,再把各模拟分量叠加,其和就是D/A转换的结果。 使用D/A转换器时,要注意区分: * D/A转换器的输出形式; * 内部是否带有锁存器。 (1)电压与电流输出形式 两种输出形式:电压输出形式与电流输出形式。电流输出 的D/A转换器,如需模拟电压输出,可在其输出端加一个I-V转

换电路。

(2)D/A转换器内部是否带有锁存器 D/A转换需要一定时间,这段时间内输入端的数字量应稳定, 为此应在数字量输入端之前设置锁存器,以提供数据锁存功能。 根据芯片内是否带有锁存器,可分为内部无锁存器的和内部有 锁存器的两类。 * 内部无锁存器的D/A转换器 可与P1、P2口直接相接(因P1口和P2口的输出有锁存功能)。

但与P0口相接,需增加锁存器。
* 内部带有锁存器的D/A转换器 内部不但有锁存器,还包括地址译码电路,有的还有双重 或多重的数据缓冲电路,可与89C51的P0口直接相接。

2.主要技术指标

(1)分辨率
输入给DAC的单位数字量变化引起的模拟量输出的变化,通 常定义为输出满刻度值与2n之比。显然,二进制位数越多,分 辨率越高。 例如,若满量程为10V,根据定义则分辨率为10V/2n。设8

位D/A转换,即n=8,分辨率为10V/2n =39.1mV,该值占满量程
的0.391%,用1LSB表示。 同理:10位 D/A:1 LSB=9.77mV=0.1% 满量程

12位 D/A:1 LSB=2.44mV=0.024% 满量程 根据对DAC分辨率的需要,来选定DAC的位数。

(2)建立时间
描述DAC转换快慢的参数,表明转换速度。 定义:为从输入数字量到输出达到终值误差(1/2)LSB(最低有

效位)时所需的时间。电流输出时间较短,电压输出再加上I-V
转换时间,因此建立时间要长一些。快速DAC可达1?s以下。 (3)精度 理想情况,精度与分辨率基本一致,位数越多精度越高。 但由于电源电压、参考电压、电阻等各种因素存在着误差,精

度与分辨率并不完全一致。
位数相同,分辨率则相同,但相同位数的不同转换器精度 会有所不同。例如,某型号的8位DAC精度为0.19%,另一型号的

8位DAC精度为0.05%。

11.1.2

89C51与8位DAC0832的接口

1. DAC0832芯片介绍 (1)DAC0832的特性 美国国家半导体公司产品,具有两个输入数据寄存器的8位 DAC,能直接与89C51单片机相连。主要特性如下:

* 分辨率为8位; * 电流输出,稳定时间为1?s;

* 可双缓冲输入、单缓冲输入或直接数字输入;
* 单一电源供电(+5~+15V);

(2)DAC0832的引脚及逻辑结构

引脚:

图11-1

DAC0832的逻辑结构:

图11-2

引脚功能: DI0~DI7:8位数字信号输入端 CS*: 片选端。

ILE: 数据锁存允许控制端,高电平有效。
WR1*:输入寄存器写选通控制端。当CS*=0、ILE=1、 WR1*=0时,数据信号被锁存在输入寄存器中。 XFER*:数据传送控制。 WR2* :DAC寄存器写选通控制端。当XFER*=0,WR2* =0 时,输入寄存器状态传入DAC寄存器中。 IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大, 输入

数字量全为“0”时,IOUT1最小。

IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。 Rfb:外部反馈信号输入端, 内部已有反馈电阻Rfb,根据需要 也可外接反馈电阻。 Vcc:电源输入端,可在+5V~+15V范围内。 DGND:数字信号地。 AGND:模拟信号地。 “8位输入寄存器”用于存放CPU送来的数字量,使输入数字量 得到缓冲和锁存,由LE1*控制; “8位DAC寄存器” 存放待转换的数字量,由LE2*控制; “8位D/A转换电路”由T型电阻网络和电子开关组成,T型电阻 网络输出和数字量成正比的模拟电流。

2. DAC的的单、双极性的电压输出 接口电路与DAC的具体应用有关。 (1) DAC用作单极性电压输出 单极性模拟电压输出,可采用图11-4或图11-8所示接线。输 出电压Vout与输入数字量B的关系: Vout = -(B/256)*VRFE 式中,B=b7·7+ b6·6+……+ b1·1+ b0·0; 2 2 2 2 B为0时,Vout也为0,输入数字量为255时,Vout为最大值, 单极性。 (2)DAC用作双极性电压输出

双极性电压输出,采用图11-3接线:

图11-3 Vout =(B-128)*(VREF/128) 由上式,在选用+VREF时,(1)若输入数字量b7=1,则Vout为 正;(2)若输入数字量b7=0,则Vout为负。 在选用-VREF时,Vout与+VREF时极性相反。

3. 89C51与DAC0832的接口电路
(1)单缓冲方式 DAC0832的两个数据缓冲器有一个处于直通方式,另一个处于 受控的锁存方式。 在不要求多路输出同步的情况下,可采用单缓冲方式。 单缓冲方式的接口如图11-4:

图11-4

图11-4中,WR2*和XFER*接地,故DAC0832的“8位DAC寄存器”
(见图11-2)处于直通方式。“8位输入寄存器”受CS*和WR1* 端控制,且由译码器输出端FEH送来(也可由P2口的某一根口 线来控制)。因此,89C51执行如下两条指令就可在WR1*和CS* 上产生低电平信号,使0832接收89C51送来的数字量。 MOV R0,#0FEH MOVX @R0,A ;DAC地址FEH→R0 ;WR*和译码器FEH输出端有效

现说明DAC0832单缓冲方式的应用。 例11-1 DAC0832用作波形发生器。试根据图11-4,分别写出 产生锯齿波、三角波和矩形波的程序。

① 锯齿波的产生

ORG
START:MOV MOV LOOP: MOVX INC SJMP

2000H
R0,#0FEH ;DAC地址FEH→ R0 A,#00H ;数字量→A @R0,A A LOOP ;数字量→D/A转换器 ;数字量逐次加1

图11-5

输入数字量从0开始,逐次加1,为FFH时,加1则清0,模拟

输出又为0,然后又循环,输出锯齿波,如图11-5。
每一上升斜边分256个小台阶,每个小台阶暂留时间为执

行后三条指令所需要的时间。
② 三角波的产生 ORG 2000H START: MOV R0,#0FEH MOV A,#00H UP: MOVX @R0,A ;三角波上升边 INC A JNZ UP DOWN: DEC A ;A=0时再减1又为FFH MOVX @R0,A JNZ DOWN ;三角波下降边 SJMP UP

图11-6 ③ 矩形波的产生 ORG 2000H START: MOV R0,#0FEH

LOOP: MOV MOVX LCALL MOV

A,#data1 @R0,A ;置矩形波上限电平 DELAY1 ;调用高电平延时程序 A,#data2

MOVX LCALL SJMP

@R0,A DELAY2 LOOP

;置矩形波下限电平 ;调用低电平延时程序 ;重复进行下一个周期

图11-7 DELAY1、DELAY2为两个延时程序,决定矩形波高、低电平 时的持续时间。频率也可采用延时长短来改变。

(2)双缓冲方式
多路同步输出,必须采用双缓冲同步方式。接口电路如图 11-8: 1#DAC0832因和译码器FDH相连,占有两个端口地址FDH和FFH。 2#DAC0832的两个端口地址为FEH和FFH。其中,FDH和FEH分别

为1#和2#DAC0832的数字量输入控制端口地址,而FFH为启动D/A
转换的端口地址。 图11-8中DAC输出的VX和VY信号要同步,控制X-Y绘图仪绘 制的曲线光滑,否则绘制的曲线是阶梯状。控制程序如下:

图11-8

例11-2 内部RAM中两个长度为20的数据块,起始地址为分别
为addr1和addr2,编写能把addr1和addrr2中数据从1#和 2#DAC0832同步输出的程序。addr1和addr2中的数据,为绘制曲

线的X、Y坐标点。
DAC0832各端口地址: FDH: 1#DAC0832数字量输入控制端口 FEH: 2#DAC0832数字量输入控制端口 FFH: 1#和2#DAC0832启动D/A转换端口 工作寄存器0区的R1指向addr1;1区的R1指向addr2;0区的 R2存放数据块长度;0区和1区的R0指向DAC端口地址。程序为:

ORG 2000H addr1 DATA 20H ; 定义存储单元 addr2 DTOUT: MOV DATA 40H ; 定义存储单元 0区R1指向addr1 R1,#addr ;

MOV SETB MOV
CLR NEXT: MOV

R2,#20 ; 数据块长度送0区R2 RS0 ; 切换到工作寄存器1区 R1,#addr2 ; 1区R1指向addr2
RS0 R0,#0FDH ; 返回0区 ; 0区R0指向1#DAC0832数 ;字量控制端口

MOV
MOVX INC SETB

A,@R1
@RO,A R1 RS0

;addr1中数据送A
;addr1中数据送1#DAC0832 ; 修改addr1指针0区R1 ; 转1区。

R0,#0FEH ;1区R0指向2#DAC0832数字量 ;控制端口 MOV A,@R1 ;addr2中数据送A MOVX @R0,A ;addr2中数据送2#DAC0832 MOV INC INC R1 R0 ;修改addr2指针1区R1 ;1区R0指向DAC的启动D/A转换端口 ;启动DAC进行转换

MOVX @R0,A

CLR RS0 ;返回0区 DJNZ R2,NEXT ;若未完,则跳NEXT LJMP DTOUT ;若送完,则循环 END 11.1.3 89C51与12位电压输出型D/A转换器AD667的接口
8位DAC分辨率不够,可采用10位、12位、14位、16位的

DAC。本节介绍89C51与12位电压输出型的D/A转换器AD667

的接口设计。

AD667是分辨率为12位的电压输出型D/A转换器,建立时间≤3?s
(至0.01%)。 输入方式:双缓冲输入; 输出方式:电压输出,通过硬件编程可输出+5V,+10V, ±2.5V,±5V和±10V;

内含高稳定的基准电压源
可方便地与4位、8位或16位微处理器接口; 双电源工作电压:±12V~±15V。

1.引脚介绍
标准28脚双列直插式。图11-9为DIP封装引脚图,表11-1为其 引脚说明。

(1)内部功能结构及应用特性
图11-10是AD667内部功能结构框图。 AD667的应用特性: ① 模拟电压输出范围的配置 AD667通过片外引脚的不同连接,可获得不同的输出电压量程 范围。 单极性工作时,可以获得0~5V和0~10V的电压。 双极性工作时,可获得±2.5V,±5.5V和±10V的电压。具体

量程配置可由引脚1,2,3,9的不同连接实现,如表11-2所列。

图11-9

图11-10

由于AD667内置的量程电阻与其他元器件具有热跟踪性能,所

以AD667的增益和偏置漂移非常小。

② 单极性电压输出 图11-11为0~10V单极性电压输出电路原理图。 在电路运行之前,为保证转换精度,首先要进行电路调零 和增益调节。

电路调零

数字输入量全为“0”时,调节50k?电位器W1,

使其模拟电压输出端(VOUT)电压为0.000V。在大多数情况 下,并不需要调零,只要把4脚与5脚相连(接地)即可。

增益调节

数字输入量全为“1” 时,调节100?电位器W2,

使其模拟电压输出为9.9976V,即满量程的10.000V减去1LSB (约为2.44mV)所对应的模拟输出量。

图11-11

③ 双极性电压输出 图11-12是-5V~+5V双极性电压输出。在电路运行之前, 为保证转换精度,首先要进行偏置调节和增益调节。

图11-12

④ 内部/外部基准电压源的使用
AD667有内置低噪声基准电源,其绝对精度和温度系数都是 通过激光修正的,具有长期的稳定性。 片内基准电源可提供片内D/A转换器所需的基准电流,典型 值为VREFIN端提供的0.5mA,BPOFF(Bipolar Offset)端提供的 1.0mA。 ⑤ 接地与动态电容的接法 模拟地AGND与电源地PGND分开,可以减少器件的低频噪声

和增强高速性能。把地回路分开的目的是为了尽量减少低电平
信号路径中的电流。AGND是输出放大器中的地端,应与系统中 的模拟地直接相连。

电源地PGND可以与模拟电源的接地点就近连接。最后AGND与 PGND在一点上进行连接,一般连接到电源地PGND上。

另外,AD667的电源引脚到模拟地引脚间应加上适当的去耦
电容。 在输出放大器反馈电阻两端加一个20pF的小电容,可以明显

改善输出放大器的动态性能。
⑥ 数字输入控制与数据代码 AD667的总线接口逻辑由4个独立的可寻址锁存器组成,其中 有3个4位的输入数据锁存器(第一级锁存器)和1个12位的 DAC锁存器(第二级锁存器)。利用3个4位锁存器可以直接从 4位、8位或16位微处理器总线分次或一次加载12位数字量; 一旦数字量被装入12位的输入数据锁存器,就可以把12位

数据传入第二级的DAC锁存器,这种双缓冲结构可以避免产 生错误的模拟输出。

4个锁存器由4个地址输入A0~A3和控制,所有的控制都
是低电平有效,对应关系如表11-3所列。 所有锁存器都是电平触发,当控制信号有效时,锁存器

输出跟踪输入数据;当控制信号无效时,数据就被锁存。它
允许一个以上的锁存器被同时锁存。 建议任何未使用的数据和控制引脚最好与电源地相连, 以改善抗噪声干扰特性。 AD667使用正逻辑编码。

单极性输出时,输入编码采用直接二进制编码,输入000H产生

零模拟输出;输入FFFH产生比满量程少1LSB的模拟输出。
双极性输出时,输入编码采用偏移二进制编码。 输入为000H时,产生负的满量程输出; 输入为FFFH时,产生比满量程少1LSB的模拟输出; 输入为800H时,模拟输出为0。其中1LSB为最低位对应的模拟电

压。双极性输出时输入与输出关系如图11-13所示,输入数
字量N与输出模拟电压VOUT的关系为:

式中,VR为输出电压量程。

图11-13

⑦ 与微处理器的接口数据格式

AD667与位微处理器接口的数据格式为左对齐或右对齐的数据
格式。 左对齐调整数据格式为

D11D10D9D8D7D6D5D4D3D2D1D0××××
右对齐调整数据格式为 ×××× D11D10D9D8D7D6D5D4D3D2D1D0 2.AD667与89C51单片机的接口 图11-14所示为AD667与89C51单片机接口电路。

图11-14

89C51把AD667所占的3个端口地址视为外部数据存储器的3

个单元,对其进行选通。假定低8位数据存于20H单元,高4位
数据存入21H的低4位,实现D/A转换的程序如下: MOV A,20H

MOV
MOV MOV MOV RET

DPTR,#7FFEH
;低8位进第一级锁存器 A,21H DPTR,#7FFDH ;高4位进第一级锁存器 ;启动第二级锁存器 DPTR,#7FFBH

MOVX @DPTR,A

MOVX @DPTR,A MOVX @DPTR,A

11.2.1

A/D转换器概述

A/D转换器(ADC)的作用就是把模拟量转换成数字量,以 便于计算机进行处理。 随着超大规模集成电路技术的飞速发展,A/D转换器的新设 计思想和制造技术层出不穷。为满足各种不同的检测及控制任 务的需要,大量结构不同、性能各异的A/D转换芯片应运而生。 1.A/D转换器简介 尽管A/D转换器的种类很多,但目前广泛应用在单片机应用 系统中的主要有以下几种类型:逐次比较型转换器、双积分型

转换器、Σ-Δ式转换器。

逐次比较型:精度、速度和价格都适中,是最常用的A/D转换

器件。
双积分型:精度高、抗干扰性好、价格低廉,但转换速度慢, 得到广泛应用。

Σ-Δ型:具有积分式与逐次比较式ADC的双重优点。
对工业现场的串模干扰具有较强的抑制能力,不亚于双积 分ADC,但比双积分ADC的转换速度快,与逐次比较式ADC相

比,有较高的信噪比,分辨率高,线性度好不需采样保持电
路。因此,Σ-Δ型得到重视。 V/F转换型:适于转换速度要求不太高,远距离信号传输。

2. A/D转换器的主要技术指标 (1)转换时间和转换速率 完成一次转换所需要的时间。转换时间的倒数为转换速率。 并行式:20-50ns,速率为50-20M次/s(1M=106);

逐次比较式:0.4?s,速率为2.5M次/s。
(2) 分辨率 用输出二进制位数或BCD码位数表示。例如AD574,二进制 12位,即用212个数进行量化,分辨为1LSB,百分数表示 1/212=0.24‰。 又如双积分式A/D转换器MC14433, 分辨率为三位半。若满 字位为1999,其分辨率为1/1999=0.05%。

量化过程引起的误差为量化误差,是由于有限位数字对模拟
量进行量化而引起的误差。量化误差理论上规定为1个单位分辨 率,提高分辨率可减少量化误差。 (3)转换精度 定义为一个实际ADC与一个理想ADC在量化值上的差值。可 用绝对误差或相对误差表示。 3. A/D转换器的选择 按输出代码的有效位数分:8位、10位、12位等。 按转换速度分为超高速(≤1ns)、高速(≤1?s) 中速(≤1ms)、低速(≤1s)等。

为适应系统集成需要,将多路转换开关、时钟电路、基准

电压源、二/十进制译码器和转换电路集成在一个芯片内,为
用户提供方便。 (1)A/D转换器位数的确定 系统总精度涉及的环节较多:传感器变换精度、信号预处 理电路精度和A/D转换器及输出电路、控制机构精度,还包括软

件控制算法。
A/D转换器的位数至少要比系统总精度要求的最低分辨率 高1位,位数应与其他环节所能达到的精度相适应。只要不低

于它们就行,太高无意义,且价高。
8位以下:低分辨率,9~12位:中分辨率,13位以上:高 分辨率。

(2)A/D转换器转换速率的确定

从启动转换到转换结束,输出稳定的数字量,需要一定的时 间,这就是A/D转换器的转换时间。
低速:转换时间从几ms到几十ms 。

中速:逐次比较型的A/D转换器的转换时间可从几?s~100?s左 右。
高速:转换时间仅20~100ns。适用于雷达、数字通讯、实时光 谱分析、实时瞬态纪录、视频数字转换系统等。 如用转换时间为100?s的集成A/D转换器,其转换速率为 10千次/秒。根据采样定理和实际需要,一个周期的波形需 采10个点,最高也只能处理1kHz的信号。把转换时间减小

到10?s,信号频率可提高到10kHz。
(3)工作电压和基准电压 选择使用单一+5V工作电压的芯片,与单片机系统共用一个 电源就比较方便。 基准电压源是提供给A/D转换器在转换时所需要的参考电压,

在要求较高精度时,基准电压要单独用高精度稳压电源供给。

11.2.2

89C51与ADC 0809(逐次比较型)的接口

1. ADC0809引脚及功能

逐次比较式8路模拟输入、8位输出的A/D转换器。引脚
如图11-15所示。

图11-15

共28脚,双列直插式封装。主要引脚功能如下:

(1)IN0~IN7:8路模拟信号输入端。
(2) D0~D7:8位数字量输出端。 (3) C 、B 、A:控制8路模拟通道的切换,C、B、A=000 ~111分别对应IN0~IN7通道。 (4) OE、START、CLK:控制信号端,OE为输出允许端,START 为启动信号输入端,CLK为时钟信号输入端。 (5)VR(+)和VR(-):参考电压输入端。 2. ADC0809结构及转换原理 结构如图11-16。 0809完成1次转换需100?s左右,可对0~5V信号进行转换。

图11-16

3.89C51与ADC0809的接口 单片机如何来控制ADC? 首先用指令选择0809的一个模拟输入通道,当执行MOVX @DPTR,A时,单片机的WR*信号有效,产生一个启动信号给 0809的START脚,对选中通道转换。 转换结束后,0809发出转换结束EOC信号,该信号可供查询, 也可向单片机发出中断请求;当执行指令:MOVX A,@DPTR,单 片机发出RD*信号,加到OE端高电平把转换完毕的数字量读到A中。

查询和中断控制两种工作方式。
(1)查询方式

0809与89C51单片机的接口如图11-17。

图11-17

ALE脚的输出频率为1MHz,(时钟频率为6MHz),经D触发器 二分频为500kHz时钟信号。 0809输出三态锁存,8位数据输出可直接与数据总线相连。 引脚C、B、A分别与地址总线A2、A1、A0相连,选通IN0~IN7

中的一个。P2.7(A15)作为片选信号,在启动A/D转换时,由
WR*和P2.7控制ADC的地址锁存和转换启动,由于ALE和START连 在一起,因此0809在锁存通道地址的同时,启动并进行转换。 读取转换结果,用RD*信号和P2.7脚经或非后,产生的正脉 冲作为OE信号,用以打开三态输出锁存器。

对8路模拟信号轮流采样一次,采用软件延时的方式,并依

次把结果转储到数据存储区。
MAIN: MOV R1,#data ;置数据区首地址 ;且指向通道IN0 MOV R7,#08H ;置转换的通道个数

MOV

DPTR,#7FF8H;端口地址送DPTR,P2.7=0,

LOOP: MOVX @DPTR,A MOV R6,#0AH DELAY: NOP NOP
NOP DJNZ R6,DELAY MOVX A,@DPTR

;启动A/D转换 ;软件延时,等待转换结束

;读取转换结果

MOV INC INC

@R1,A DPTR R1

;存储转换结果 ;指向下一个通道 ;修改数据区指针 ;8个通道全采样完否?未完则继续

DJNZ R7,LOOP

……
(2)中断方式 将图11-17中EOC脚经一非门连接到8031的INT1*脚即可。转换 结束时,EOC发出一个脉冲向单片机提出中断申请,单片机响应

中断请求,在中断服务程序读A/D结果,并启动0809的下一次转
换,外中断1采用跳沿触发。

程序如下: INIT1: SETB SETB SETB MOV MOV MOVX …

IT1 ;外部中断1初始化编程 EA ;CPU开中断 EX1 ;选择外中断为跳沿触发方式 DPTR,#7FF8H;端口地址送DPTR A,#00H ; @DPTR,A ;启动0809对IN0通道转换 ;完成其他的工作

中断服务程序: PINT1: MOV MOVX MOV MOV MOVX RETI

DPTR,#7FF8H ;A/D结果送内部RAM单元30H A,@DPTR

30H,A A,#00H @DPTR,A;

;启动0809对IN0的转换

11.2.3

MCS-51与AD574(逐次比较型)的接口

8位分辨率的ADC常常不够,采用10位、12位、16位A/D转换器。

12位ADCAD574A(AD674A、AD1674A)。
1.AD574简介 12位逐次比较型。转换时间为25?s,转换精度为0.05%, AD574A是AD574的改进产品,AD674A又是AD574A的改进产品。

它们的引脚、内部结构和外部应用特性基本相同,但最大转换
速度由25?s提高到15?s。 目前带有采样保持器的12位改进型产品AD1674正以其优良的

性能价格比逐渐取代AD574A和AD674A。

28脚双列直插式封装,引脚如图11-18。

图11-18

引脚的功能如下:

CS*:片选信号端。
CE: 片启动信号。 R/C*:读出/转换控制信号。 12/8*:数据输出格式选择。 1: 12条数据线同时输出转换结果, 0: 转换结果为两个单字节输出,即只有高8位或低4位有 效。 A0:字节选择控制线。分为转换期间、读出期间 在转换期间: 0: 进行12位转换(转换时间为25?s); 1: 进行8位转换(转换时间为16?s) 。 在读出期间:

0:高8位数据有效;

1:低4位数据有效,中间4位为“0” ,高4位为三态。
因此当两次读出12位数据时,12位数据遵循左对齐原则,如 下所示: 结果的高8位 结果的低4位+4位尾0

上述五个控制信号组合的真值表如表11-4所示:

表11-4
CE CS* R/C* 12/8*

AD574控制真值表
A0 操 作

0 X 1 1 1 1 1

X 1 0 0 0 0 0

X X 0 0 1 1 1

X X X X +5V 地 地

X X 0 1 X 0 1

无操作 无操作 初始化为12位转换 初始化为8位转换 允许12位并行输出 允许高8位输出 允许低4位+4位尾0输出

STS:转换结束状态引脚。 转换完成时为低电平。可作为状态信息被CPU查询,也可用 它的下跳沿向CPU发出中断申请,通知A/D转换已完成,可读取

转换结果。
2. AD574的工作特性 工作状态由CE、CS*、R/C*、12/8*、A0五个控制信号决定,当 CE=1,CS*=0同时满足,才处于转换状态。 AD574处于工作状态时,R/C*=0,启动A/D转换;R/C*=1为数据 读出。12/8*和A0端用来控制转换字长和数据格式。A0=0按12位 转换方式启动转换;A0=1按8位转换方式启动转换。 当AD574处于数据读出(R/C*=1)状态时,A0和12/8*成为数

据输出格式控制端。12/8*=1对应12位并行输出;12/8*=0对应8
位的双字节输出。其中A0=0时输出高8位。A0=1时输出低4位, 并以4个0补足尾随的4位。 注意:12/8*端与TTL电平不兼容,故只能直接接+5V或地。 另外A0在数据输出期间不能变化。 3. AD574的单极性和双极性输入特性 图11-18(a)为单极性转换电路,可实现:0~10V或0~20V的 转换。 图11-18(b)为双极性转换电路,可实现:-5~+5V或-10~ +10V的转换。

图11-19

4. 89C51与AD574的接口

见图11-20,AD574片内有时钟,无须外加。 该电路采用双极性输入接法,可对-5~+5V或-10~+10V模
拟信号进行转换。也可采用单极性输入接法,具体电路见图 11-19(a)。 转换结果的高8位从DB11~DB4输出,低4位从DB3~DB0输出, 即A0=0时,读取结果的高8位;当A0=1时,读取结果的低4位。 若遵循左对齐的原则,DB3~DB0应接单片机的P0.7~P0.4。 STS引脚接单片机的P1.0引脚,采用查询方式读取转换结果。

图11-20

当单片机执行对外部数据存储器写指令,使CE=1,CS*=0,
R/C* =0,A0=0时,启动A/D转换。当单片机查询到P1.0引 脚为低电平时,转换结束,单片机使CE=1,CS* =0 , R/C* =1,A0=0,读取结果高8位;CE=1, CS*=0 , R/C* =1,A0=1,读取结果低4位。 转换的查询方式的程序如下(高8位转换结果存入R2中,低4 位存入R3中,遵循左对齐原则):

AD574A:MOV R0,0F8H

;端口地址送R0

MOVX @R0,A
SETB P1.0 LOOP: NOP

;启动AD574A进行转换
;置P1.0为输入

JB
NC

P1.0,LOOP
R0

;查询转换是否结束
;使R/=1,准备读取结果 ;读取高8位转换结果 ;高8位转换结果存入R2中 ;使R/=1,A0=1 ;读取低4位转换结果 ;低4位转换结果存入R3中

MOVX A,@R0 MOV R2,A INC R0 INC R0 MOVX A,@R0 MOV R3,A

11.2.4

89C51与A/D转换器MC14433(双积分型)的接口

双积分型转换速度慢,但精度可以做得比较高;对周期变化
的干扰信号积分为零,抗干扰性能也较好。 常用的有3?位双积分A/D转换器MC14433(精度相当于11位二

进制数)和4?位双积分A/D转换器ICL7135(精度相当于
14位二进制数)。 1. MC14433A/D转换器简介 MC14433是3?位双积分型A/D转换器,优点:精度高、抗干扰 性能好等,缺点:转换速度慢,约1-10次/秒。与国内产品 5G14433完全相同,可互换。 被转换电压量程为199.9mV或1.999V。转换结果以BCD码的形 式分四次送出。

(1)MC14433的引脚功能说明

MC14433A/D转换器引脚如图11-21:

图11-21

各引脚的功能如下:

(1)电源及共地端 VDD:主工作电源+5V。 VEE:模拟部分的负电源端,接-5V。 VAG:模拟地端。 VSS: 数字地端。 VR: 基准电压输入端。 (2)外接电阻及电容端 R1:积分电阻输入端,转换电压VX=2V时,R1=470Ω; VX=200mV时,R1=27kΩ。
C1:积分电容输入端,一般取0.1?F。 R1/C1:R1与C1的公共端。 CLKI、CLKO:外接振荡器时钟调节电阻RC,RC一般 取470Ω左右。

(3)转换启动/结束信号端 EOC:转换结束信号输出端,正脉冲有效。 DU:启动新的转换,若DU与EOC相连,每当A/D转换结束后, 自动启动新的转换。 (4)过量程信号输出端

OR*:当|VX|<VR,输出低电平。
(5)位选通控制端 DS4~DS1:分别为个、十、百、千位输出的选通脉冲,DS1

对应千位,DS4对应个位。每个选通脉冲宽度为18个时钟周期,
两个相应脉冲之间间隔为2个时钟周期。如图11-22所示

图11-22

(6)BCD码输出端
Q0~Q3:BCD码数据输出线。Q3为最高位,Q0为最低位。

当DS2、DS3和DS4选通期间,输出三位完整的BCD码数,但
在DS1(千位)选通期间,输出端Q0~Q3除了表示个位的0或1 外,还表示被转换电压的正负极性(Q2=1为正)、欠量程还 是过量程,具体含义如表11-5所示。

表11-5 Q3 1 0 × × 0 1 Q2 × × 1 0 × × Q1 × × × × × ×

DS1选通时Q3~Q0表示的结果 Q0 0 0 0 0 1 1 表 示 结 果 千位数为0 千位数为1 结果为正 结果为负 输入过量程 输入欠量程

2. MC14433与89C51单片机的接口
如图11-23,MC1403(与5G1403相同)为+2.5V精密基准源。 DU端与EOC端相连,即选择连续转换方式。EOC:转换结束输 出标志。 读取A/D转换结果可采用中断方式或查询方式。采用中断方

式时,EOC端与8031外部中断输入端INT0*或INT1*相连。采用
查询方式EOC端可与任一I/O口线相连。

图11-23

若用中断方式读结果,选用跳沿触发方式。如转换结果存到
8031内部RAM的20H、21H单元中,格式如下:

图11-24 初始化程序开放CPU中断,允许外部中断1中断请求,置外 部中断1为跳沿触发方式。 每次A/D转换结束,都向CPU请求中断,CPU响应中断,执 行中断服务程序,读取A/D转换的结果。 程序:

ORG 001BH LJMP PINT1 ;跳外部中断1的中断服务程序 ORG 0100H INITI:SETB IT1 ;选择外中断1为跳沿触发方式

MOV IE,#84H ;CPU开中断,允许外部中断1 ……
PINT1:MOV A,P1 ;外部中断1服务程序

JNB
JB JB

Acc.4,PINT1;等待DS1选通信号的到来
Acc.0,Per ;是否过、欠量程,是则转向Per处理 Acc.2,PL1 ;判结果极性,为正,跳PL1 ;结果为负,符号位07H置1

SETB 07H AJMP PL2 PL1: CLR 07H PL2: JB Acc.3,PL3


;结果为正,符号位清0 ;千位为0,跳PL3

SETB AJMP PL3: CLR PL4: MOV JNB MOV XCHD PL5: MOV JNB SWAP INC MOV PL6: MOV JNB

04H PL4 04H A,P1 Acc.5,PL4 R0,#20H A,@R0 A,P1; Acc.6,PL5 A R0 @R0,A A,P1 Acc.7,PL6

;千位为1,把04H位置1 ; ;千位为0,把04H位清0 ; ;等待百位的选通信号DS2 ;指针指向20H单元 ;百位→20H单元低4位 ;等待十位数的选通信号DS3的到来 ;读入十位,高低4位交换 ;指针指向21H单元 ;十位数的BCD码送入21H的高4位 ;等待个位数选通信号DS4的到来;


相关文档

第11章 89C51单片机与DA转换器,AD转换器的接口
第11章-1 89C51单片机与DA转换器AD转换器的接口
第11章89C51单片机与D-A转换器、A-D转换器的接口
第11章 89C51单片机与DA转换器AD转换器的接口
第11章89C51单片机与DA转换器、AD转换器接口
第11章89C51单片机与DA、AD转换器的接口
第十一章 MCS-51单片机与AD、DA转换器的接口
第11章 DA、AD转换的接口 单片机
单片机 第9章 MCS-51与DA及AD转换器接口
串行AD、DA转换器与89C51单片机的接口设计
电脑版