第13章微机原理与接口技术答案欧青立编

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第13章模拟量输入/输出接口技术
习题
13.1 什么是模拟量接口?在微机的哪些应用领域中要用到模拟接口?
【参考答案】模拟量接口是模拟系统与数字系统或计算机之间的接口,包括A/D转换接口和D/A转换接口,其中A/D转换器和D/A转换器是其核心。

A/D转换的基本目的是便于计算机处理外部世界的物理量,即识别和计算外部世界。

A/D接口的功能是把外界模拟量变换成数字量。

D/A转换的基本目的是便于控制驱动执行机构,控制与操作外部模拟设备。

D/A接口是把数字量变换为模拟量的电路。

其作用是把计算机的数字信号转换为模拟设备中连续变化的模拟信号,以便计算机控制外部模拟设备。

在测控系统和智能测量仪器中,计算机在数据采集和过程控制中,采集对象往往是连续变化的物理量(温度、压力、流量、位移、转速、电流、电压等),但计算机处理的是离散的数字量,因此需要对连接变化的物理量(模拟量)进行采样、保持,再把模拟量转换为数字量交给计算机处理、保存等。

这一过程称为A/D转换。

计算机输出的数字量有时需要转换为模拟量以控制某些执行元件(如声卡播放音乐等),这一过程称为D/A 转换。

因此,A/D和D/A接口是计算机测控系统中不可缺少的接口电路。

这些场合需要用到模拟接口。

13.2 什么是A/D?什么D/A?A/D和D/A转换器在微型计算机应用中起什么作用?
【参考答案】模拟量转换为数字量称为A/D。

把数字量转换为模拟量称为D/A。

A/D 转换的基本目的是便于计算机处理外部世界的物理量,即识别和计算外部世界。

D/A转换的基本目的是便于控制驱动执行机构,控制与操作外部模拟设备。

在微机应用中A/D 转换器完成输入模拟量到数字量的转换,供微机采集数据。

D/A转换器完成微机输出数字量到模拟量的转换,实现微机控制。

13.3 什么是A/D转换精度?什么是转换速率?什么是分辨率?
【参考答案】精度用最大的静态转换误差的形式表示,这个转换误差应包括非线性误差、比例系数误差及漂移误差等综合误差,它反映了实际输出电压与理论输出电压之间的接近程度。

对A/D转换器来说,通常用量化精度来描述,即指A/D转换器实际输出与理论值之间的误差。

对D/A转换器来说,指D/A转换器实际输出与理论值之间的误差。

转换时间是指完成一次转换所需的时间(包括稳定时间),转换时间的倒数即为转换
速率。

对于A/D转换器来说,转换时间是指从启动转换信号开始到转换结束所得到的稳定的数字输出量为止的时间。

对于D/A转换器来说,其指数字量输入到转换完成、输出达到最终电压值并稳定为止所需的时间。

对于A/D转换器来说,分辨率用来表示A/D转换器对输入模拟量信号分辨的能力,它表示输出数字量变化一个相邻数码所需输入模拟电压的变化量,即可转换成数字量的最小电压(量化阶梯)。

D/A转换器分辨率也用输出模拟量的最小变化量相对于输出模拟量满刻度值的百分比表示。

13.4 D/A转换的基本原理是什么?
【参考答案】D/A转换器是将输入的二进制数字量转换成模拟量,以电压或电流的形式输出,从而完成数字量至模拟量的转换过程。

D/A转换器实质上是一个解码器,其核心器件是“解码网络”。

一般常用的线性D/A转换器,其输出模拟电压V o或模拟电流I o和输入数字量D N间成正比关系。

设参考电压为V ref,则输出电压V o与输入数字量D N的正比关系如下式所示。

V o = D N×V ref/2n
将输入的每一位二进制代码按其权值大小转换成相应的模拟量,然后将代表各位的模拟量相加,则所得的总模拟量与数字量成正比,这样便实现了从数字量到模拟量的转换。

13.5 D/A转换器的主要参数有哪几种?反映了D/A转换器的什么性能?
【参考答案】D/A转换器的主要参数有分辨率、转换时间、精度、线性度。

对于D/A转换器来说,分辨率反映了输出模拟电压的最小变化量,即所能分辨的最小电压值。

D/A转换器的分辨率是指能分辨的最小电压增量,或1个二进制增量所代表的模拟量大小,即输入数字的最低有效位(LSB)变化1,所引起的输出模拟量的变化。

对于D/A转换器来说,转换时间是指数字量输入到转换完成、输出达到最终电压值并稳定为止所需的时间。

一般电流型D/A转换器在几百微秒到几秒之内;而电压型D/A 转换器转换较慢,取决于运算放大器的响应时间。

对D/A转换器来说,精度指D/A转换器实际输出与理论值之间的误差,一般采用数字量的最低有效位作为衡量单位(如1/2LSB)。

若D/A分辨率为20mV,则精度为±
10mV。

通常用非线性误差的大小表示A/D转换器和D/A转换器的线性度。

线性度表明当数字量变化时,D/A转换器输出的模拟量按比例变化的程度。

13.6 A/D转换器的主要参数有哪几种?反映了A/D转换器的什么性能?
【参考答案】D/A转换器的主要参数有分辨率、转换时间、精度、线性度。

对于A/D转换器来说,分辨率用来表示A/D转换器对输入模拟量信号分辨的能力,它表示输出数字量变化一个相邻数码所需输入模拟电压的变化量,即可转换成数字量的最小电压(量化阶梯)。

转换时间是指完成一次转换所需的时间(包括稳定时间)。

对于A/D转换器来说,转换时间是指从启动转换信号开始到转换结束所得到的稳定的数字输出量为止的时间。

·2·
对A/D转换器来说,通常用量化精度来描述,即指A/D转换器实际输出与理论值之间的误差,一般采用数字量的最低有效位作为衡量单位(如±1/2LSB)。

通常用非线性误差的大小表示A/D转换器和D/A转换器的线性度。

线性度表明当模拟量变化时,A/D转换器输出的数字量按比例变化的程度。

13.7 DAC0832有哪几种工作方式?每种工作方式适用于什么场合?
【参考答案】DAC0832可工作于下列几种方式。

(1)输入输出直通方式:即CS#、WR1#、WR2#、XFER#接地,ILE接高电平,使内部的两个寄存器都处于直通状态,输入数据直接送到D/A转换器中进行电流转换,模拟输出始终跟随输入变化。

(2)单级锁存方式:也称单级缓冲方式。

两级锁存器只锁存其一,另一级锁存器直通,如WR2#、XFER#接地,DAC寄存器不锁存。

当ILE接高,CS#和WR1#同时有效时,输入数据才能通过输入寄存器,并直通DAC寄存器。

采用单级锁存方式时,CPU
只需一次写入即可开始转换,控制比较简单。

(3)两级锁存方式:也称双缓冲方式。

两级锁存器均不直通。

两级锁存器分别控制输入。

当其有关控制信号电平有效时,依次开通输入锁存器1和DAC锁存器2,进行
D/A转换。

转换时一般需要两个步骤,首先使CS#=0、WR1#=0、ILE=1,将数据写入输入锁存器,然后使WR2#=0、XFER#=0,将输入寄存器的内容写入DAC锁存器,并启动变换。

这种方式的优点如下:数据接收和D/A转换可异步进行,可实现多个DAC同步转换输出,即分时写入同步转换。

此时,一般需两个I/O端口地址。

13.8 若一个D/A转换器的满量程(对应于数字量255)为10V。

若输出信号不希望从0增长到最大,而是由一个下限2.0V增长到上限8.0V。

分别确定上下限所对应的数字。

【参考答案】因为满量程为10V ,则每一步的电压变化量为10/256=0.039V/步。

于是,下限是2.0/0.039=51.3步, 取51,即33H ;上限是8.0/0.039=205.1步, 取205,即CDH 。

13.9 已知某DAC的输入为12位二进制数,满刻度输出电压V om=10V,试求最小分辨率电压和分辨率。

【参考答案】12位DAC的最小分辨率电压VLSB=10/4095=0.0244%,分辨率
=1/4095=0.0244%,。

13.10 画出采用PC控制DAC0832产生方波的电路原理示意图,并编写用PC控制DAC0832产生方波的汇编程序。

【参考答案】采用PC控制DAC0832产生方波的电路原理示意图如图T13.10。

·3·
·4
·
图 T13.10 DAC0832产生方波的电路原理示意图
PC 控制DAC0832产生方波的汇编程序段如下。

设输出的方波电压的低电平为0V 、高电平为5V ,周期大于1µs ,方波周期个数为65536。

MOV CX ,0FFFFH
;方波周期个数 MOV DX ,300H
;DAC0832
的端口地址 MOV AL ,00H
;初始电平为0V FB : OUT DX ,AL
;输出数据,使DAC0832输出端得到模拟电压输出 NOT AL
;取非 00H ←→FFH CALL DY1
;调用延时程序,延时>1µs LOOP FB
;开始下一周期,如果波数无限长,则使用JMP FB DY1: MOV BX ,DYDA
;延时程序段,延时常数为DYDA DY0: DEC BX
;延时常数减1 JNZ DY0
;时间未到,继续减1 RET ;延时程序段结束
13.11 设计一个基于DAC0832的电路和相应程序,实现一个锯齿波发生器的功能,使锯齿波的量正向增长,并且锯齿波周期可调。

【参考答案】采用PC 控制DAC0832产生锯齿波的电路原理示意图如图T13.11(同图T13.10)。

图 T13.11 DAC0832产生锯齿波的电路原理示意图
产生锯齿波电压为0~5V ,对应输出数据00H ~FFH 。

锯齿波上升部分采用数据值加1的方法,使输出数据由00H 变化到FFH 。

在下降时由FFH 突变到00H ,不需采用重新赋00H 的方法,FFH 加1自动变为00H 。

产生锯齿波信号的程序段如下。

MOV CX ,0FFFFH ;锯齿波周期个数
MOV DX ,300H ;DAC0832的端口地址 MOV AL ,00H ;初始电平0V
JCB:OUT DX,AL ;输出数据,使DAC0832输出端得到模拟电压输出INC AL ;数字量加1
CALL DY1 ;调用延时程序,延时>1µs
LOOP JCB ;开始下一周期,如果波数无限长,则使用JMP JCB DY1:MOV BX,DYDA ;延时程序段,延时常数为DYDA
DY0:DEC BX ;延时常数减1
JNZ DY0 ;时间未到,继续减1
RET ;延时程序段结束
13.12 画出采用PC控制DAC0832产生三角波的电路原理示意图,编写用PC控制DAC0832产生三角波的汇编程序,要求三角波的最低电压为0V,最高电压为2.5V。

【参考答案】采用PC控制DAC0832产生锯齿波的电路原理示意图如图T13.10(同题13.10图)。

三角波电压为0~5V,对应输出数据00H~FFH。

三角波上升部分从00H起加1,直到FFH。

三角波下降部分从FFH起减1,直到00H。

三角波形与锯齿波的区别在于下降部分,三角波是斜坡下降,锯齿波是垂直下降。

产生三角波信号的程序段如下。

MOV CX,0FFFFH ;锯齿波周期个数
MOV DX,300H ;DAC0832的端口地址
MOV AL,00H ;初始电平0V
SJUP:OUT DX,AL ;输出数据,使DAC0832输出端得到模拟电压输出
CALL DY1 ;调用延时程序,延时>1µs
INC AL ;数字量加1
CMP AL,0FFH ;判断是否上升到最高电平
JNZ SJUP ;还没有到达最高峰,继续上升
SJDN:OUT DX,AL ;初始输出最高电平数据,然后输出下降数据
CALL DY1 ;调用延时程序,延时>1µs
DEC AL ;数字量减1
CMP AL,00H ;判断是否下降到最低电平
JNZ SJDN ;还没有到达最低点,继续下降
LOOP SJUP ;开始下一周期,如果波数无限长,则使用JMP SJUP DY1:MOV BX,DYDA ;延时程序段,延时常数为DYDA
DY0:DEC BX ;延时常数减1
JNZ DY0 ;时间未到,继续减1
RET ;延时程序段结束
13.13 A/D转换器的基本转换原理是什么?
【参考答案】实现A/D转换的方法很多,常用的有计数式、逐次逼近式、双积分式、并行比较式等。

计数式A/D转换基本原理如下:由计数器对固定频率信号CLK进行计数,计数输出值送入DAC,DAC的输出模拟量V out与输入模拟量V in在比较器中进行比较,随着计数的进行,V out不断增加,当V out>V in时,计数器停止计数,此时的计数值即是模拟量V in 对应的数字量。

双积分式A/D转换器基本原理如下:先将模拟电压V in转换成与其大小成正比的时间间隔T,再利用基准时钟脉冲通过计数器将T变换成数字量。

·5·
采用逐次逼近式的A/D转换器是由一个比较器、D/A转换器、缓冲寄存器及控制逻辑电路组成的。

逐次逼近式A/D转换器的基本原理是从高位到低位逐位试探比较,好像用天平称量物体,从重到轻逐级增减砝码进行试探。

并行比较式A/D转换器由电阻分压器、比较器、寄存器及编码器组成。

分压电阻分压构成2n个等差的基准电压,每个基准电压连接到一个对应的比较器的反相输入端每一个比较器输出连接一个D触发器,在采样时钟的同步触发下,比较器的输出同时被锁存到对应的D触发器中,该基准电压以下的比较器都输出为1,当输入电压Vi 大于某个基准电压时,比较器都输出0,n位二进制编码器根据2n-1个D触发器的输出进行二进制编码,输出n位二进制数据。

13.14 双积分式ADC的原理是什么?这种形式的ADC具有什么特点?适用于什么场合?
【参考答案】双积分式A/D转换器基本原理如下:先将模拟电压V in转换成与其大小成正比的时间间隔T,再利用基准时钟脉冲通过计数器将T变换成数字量。

其转换过程如下:首先对模拟量V in进行固定时间的积分,然后用标准电压V ref进行反向积分,直到返回起始值,反向积分时间T正比于V in。

同时,用反向积分时间T控制计数器的计数进程,计数器最后输出的数字量即为A/D结果。

双积分式A/D转换器的最大优点是它具有较强的抗干扰能力。

但由于输入信号积分的时间较长,转换速度相对较慢。

这种转换器被广泛应用于要求精度较高而转换速度要求不高的仪器中。

13.15 逐次逼近式ADC的原理是什么?这种形式的ADC具有什么特点?适用于什么场合?
【参考答案】采用逐次逼近式的A/D转换器是由一个比较器、D/A转换器、缓冲寄存器及控制逻辑电路组成的。

逐次逼近式A/D转换器的基本原理是从高位到低位逐位试探比较,好像用天平称量物体,从重到轻逐级增减砝码进行试探。

逐次逼近式A/D转换器速度快、分辨率高、成本低,在计算机系统中得到了广泛应用。

13.16 假定某8位ADC输入电压是0~+5V,求出输入电压V in等于0V、1V、1.5V、2V、3.75V、4V、5V时,输出的二进制编码等于多少?
【参考答案】某8位ADC输入电压是0~+5V,输入电压V in等于0V、1V、
1.5V、2V、3.75V、4V、5V时,输出的二进制编码分别等于00H、33H、4CH、66H、0BFH、0CCH、0FFH。

13.17 比较逐次逼近式、双积分式、并行比较式ADC的优缺点。

【参考答案】逐次逼近式、双积分式、并行比较式3种ADC方案中,并行比较方案速度最快,但成本也最高,只在要求转换速度很快情况下使用;双积分方案成本低,精度高,但转换时间很长,只能用于对直流或慢速变化信号的转换;在通常情况下,逐次逼近方案是一个较折中的选择。

·6·
13.18 ADC0809中的转换结束信号(EOC)有什么作用?如何使用该信号,以便读取转换结果?
【参考答案】当A/D转换结束,ADC输出一个转换结束信号,通知主机读取结果。

主机检查判断是否结束的方法有4种,不同处理方式对应的应用程序设计方法也不同。

查询方式:把结束信号作为状态信号经三态缓冲区送到主机系统数据总线的某一位置。

ADC开始转换后,主机不断查询这个状态位,发现结束信号有效,便读取数据。

中断方式:把结束信号作为中断请求信号接到主机的中断请求线上,ADC转换结束,主动向CPU申请中断,CPU响应中断后,在中断服务程序中读取数据。

延时方式:不使用转换信号,主机主动A/D转换后,延迟一段略大于A/D转换时间的时间,此时转换已结束即可读取数据。

DMA方式:把结束信号作为DMA请求信号。

A/D转换结束后,即启动DMA传送,通过DMA控制器直接将数据送入内存缓冲区。

13.19 ADC0809的接口设计需考虑哪些问题?
【参考答案】A/D转换器芯片与CPU接口要注意的问题主要包括启动信号连接与产生,转换结束信号的连接、检测与使用,以及转换结果的读取。

ADC 0809的接口设计需考虑的问题如下:
(1)DDA、ADDB、ADDC三端可直接连接到CPU地址总线A0、A1、A2三端。

但此种方法占用的I/O口地址多,每一个模拟输入端对应一个口地址,8个模拟输入端占用8个口地址,对于微机系统外设资源的占用太多,因而一般ADDA、ADDB、ADDC分别接在数据总线的D0、D1、D2端,通过数据线输出一个控制字作为模拟通道选择的控制信号。

(2) ALE信号为启动ADC0809选择开关的控制信号。

该控制信号可以和启动转换信号START同时有效。

(3) ADC0809芯片只占用一个I/O口地址,即启动转换用此口地址,输出数据也用此口地址,区别是启动转换还是输出数据用IOR#和IOW#信号来区分。

13.20 编制一段源程序。

要求通过ADC0809,采用中断法,采集50个数据。

【参考答案】设I/O端口地址为300H~307H,启动本A/D转换只需如下3条命令。

MOV DX,ADPORT ;ADPORT为ADC0809通道端口地址
MOV AL,00H ;此句不是必需的
OUT DX,AL ;产生启动信号
读取A/D转换结果可使用下面两条指令。

MOV DX,ADPORT ;ADPORT为ADC0809通道端口地址
IN AL,DX ;读取转换结果数据
下面是基于教材图13.3.8电路的中断方式ADC转换的程序段。

程序中假设只采集通道0的A/D转换结果。

·7·
DATA SEGMENT
BUF DB 100 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
IN AL,21H
AND AL,11011111B ;设连接到IQ5,开放IRQ5
OUT 21H,AL
CLI
CLD
MOV AX,0
MOV ES,AX
MOV DI,4*35H
MOV AX,OFFSET ADIN
STOSW
MOV AX,SEG ADIN
STOSW
MOV AX,DATA ;恢复数据段
MOV DS,AX
MOV DX,300H ;启动转换
MOV AL,00H
OUT DX,AL
BEGIN:STI
HLT ;等待中断
JNZ BEGIN
IN AL,21H ;关闭IR5
AND AL,20H
OUT 21H,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
ADIN PROC NEAR ;中断服务程序,读取并保存A/D转换结果PUSH AX ;保存寄存器
PUSH DX
PUSH DI
CLI
·8·
MOV DX,300H ;读取转换结果
IN AL,DX
NOP
MOV DI,BUF
MOV [DI],AL ;保存转换结果
INC D I
MOV BUF,DI
MOV AL,20H ;中断结束命令
OUT 20H,AL
MOV DX,300H ;开启转换
MOV AL,00H
OUT DX,AL
POP DI ;恢复寄存器内容
POP DX
POP AX
STI
IRET ;中断返回
ADIN ENDP
13.21 编制一段源程序。

要求通过查询法,从ADC0809 A/D转换器的0~7通道轮流采集8路模拟信号的电压量,并把转换后的数据存入以0100H开始的单元。

【参考答案】以教材图13.3.8为基础,将EOC信号经锁存器连接到系统总线D0,设A/D转换通道0~7的I/O端口地址为300H~307H,EOC锁存器的I/O地址为308H,采用查询EOC信号,依次采集8路外部模拟输入信号的A/D转换结果。

数据采集的汇编程序段如下。

MOV DI,0100H
MOV DX,300H ;A/D通道I/O端口地址
AD8:OUT DX,AL ;启动模拟输入通道,与al内容无关
PUSH DX ;保存A/D通道I/O端口地址
MOV DX,308H ;EOC状态口地址
IN AL,DX ;读取EOC信号
TEST AL,01H ;判断转换是否结束
JNZ INSTU ;转换未结束,重新读取状态
POP DX
IN AL,DX ;口地址与启动地址相同
MOV [DI],AL ;保存数据到内存中
INC DX ;指向下一通道
INC [DI] ;指向下一存储单元
MOV AX,DX
AND AX,0008H ;通道号=308H?若是则结束操作
JZ AD8 ;通道号<308H,再采集
·9·。

相关文档
最新文档