第九章 A╱D与D╱A转换器接口习题答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习:8255与系统总线、ADC的连接示意如下。当 START为高时,启动一次A/D转换;当EOC为高时, 一次转换完成,D0~D7数据有效。请编写相关的程序 段,实现以下功能:通过8255采集外部模拟输入的数 据(即ADC的转换结果),共采集100次,并将这些 数据依次存入数据段内以DATA为首址的单元中。
第九章 A/D与D/A转换器接口 习题答案
下图为DAC0832 8位D/A转换器与系统的连 接图。
(1)根据图(b)说明DAC0832的工作方式。
(2)编写一个程序,使输出为可控制斜率的 锯齿波。(提示:利用软件延时程序实现 斜率控制。DAC0832的端口地址自定)
已知电路如下图所示:
及有关程序如下:
OUT 73H, AL
MOV CX, 100
LEA DI, DATA
MOV AL, 0XXX0000B
; PC0 = 0
OUT 73H, AL
AGN: MOV AL, 0XXX0001B ; PC0 = 1,启动ADC
OUT 73H, AL
POLL: IN AL, 72H ; 查询PC7 ( EOC)
7)当程序执行结束时,输出端Vo输出的电压 为多少?
8)将以上程序改编,使在Vo端输出的电压波形 为方波。
3)没有输出,因为DAC0832未被选中工作。 4)改变ADD AL,10H语句中的10H值 5)改变CMP AL,0C0H语句中的0C0H值。 6)-2.5V 7)2.5V 8)Vo端输出方波的参考程序:
IN0
. . . . . . . .
IN7
IN8 . . . . . . . . IN13
以下是采用程序查询法对16路模拟信号进行 巡回检测(共8次)的汇编源程序。
DATA
SEGMENT
DAT1
DB
256
DUP(0)
DATA
ENDS
STACK
SEGMENT
STACK'STACK'
DW
100
DUP()
RET
MAIN ENDP
回答问题:
1)根据电路的接法及程序,Vo端输出什么 样的电压波形?
2)如果将程序中标有注释②的一行指令删除, 输出端Vo波形变为怎样? 3)如果将程序中标有注释①行改为MOV DX, 204H,Vo端输出波形如何?为什么? 4)如何修改程序,可改变输出端Vo的频率? 5)如何修改程序,可改变输出端Vo的幅值? 6)当输出给DAC0832的数字量为40H时,Vo 端输出的电压幅值为多少?
MAIN PROC FAR
PUSH DS XOR AX,AX
PUSH AX MOV CX,1000H NEXT1: MOV AL,0 NEXT2: MOV DX,200H OUT DX,AL ADD AL,10H CMP AL,0C0H
;①
JNE NEXT2 CALL DELAY
;②
LOOP NEXT1
JNZ
AG1
;未完,继续
DEC CL
;巡回检测次数一1
JNZ
AG2
;未完,继续
RET
MAIN:ENDP
IOR
IOW CPUA0
A1
~
A9
-Y2
地址 -Y1 译码 -Y0
R/C AD574A CE
STS
A0
CS DB0 IN
~
DB7 12/ 8
D0 D7 ~
D7
8D 琐存器
LLOOGGIINN+I-N AD582
74 LS 138
OUT A B C
AD 5701
EN
OUT A B C
AD 5701
EN
SHL
AL, 1
JNC
POLL
MOV AL, 0XXX0000B ; PC0 = 0
OUT 73H, AL
IN
AL, 71H
; 读B口
MOV [DI], AL
INC
DI
LOOP AGN
• 已知原理电路图如下图所示。
回答问题: 1)根据电路的接法,此电路允许输入的模拟电压范 围以及A/D转换后得到数字量范围分 别是多少? 2)设计一个产生地址范围为200H—203H的地址译码 信号。画出采用74LS138译码器 的地址译码电路图。 3)说明对本电路起动A/D转换的方法。 4)编写与产生起动A/D转换信号有关的程序。 5)电路中ADC0809的EOC端有什么作用? 6)不检测ADC0809的EOC端,采用什么方法可 以得到正确的A/D转换后数字量。 7)画出读出ADC0809数字量的时序图(只要求画出时钟CLK、 地址译码信号、IOR和 OE)。 8)如果采用中断输入方式,说明怎样利用ADC0809的EOC产生 中断请求信号。
STACK
ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
PUSH DS
SUB
AX,AX
PUSH AX
;标准程序
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV CL,8;巡回检测次数
LEA
SI,DAT1 ;存放数据内存首地址
JNZ
TA
;不为0,等待
MOV DX,312H
IN
AL,DX
;为0,输入高8位
MOV [SI],AL ;存入内存
INC
SI
;内存地址+1
MOV DX,313H
IN
AL,DX
;输入低4位
AND AL,0F0H ;屏蔽低4位
MOV [SI],AL ;存入内存
INC
SI
;内存地址十1
DEC百度文库CH
;路数一1
7)
8)将ADC0809的EOC引脚接至可屏蔽中断管 理器8259的中断请求引脚之一上。
9.6.3 A/D转换器应用举例
例 试设计一个微机多路数据采集系统。 要求: 16路模拟量输入; • 使用多路模拟开关AD5701和采样保持
器AD582; • A/D转换器采用AD574A;
采用程序查询法对16路模拟量进行巡回检测 共8次。
系统数据总线 D0~D7
译码电路 70~73H
系统控制总线
PB0~7 /CS
A1 A0 8255
PC0
/RD /WR RESET
PC7
D0~D7
ADC
模模拟拟
START
输输入
Ain
EOC
DATA
DB 100 DUP(?) ; 数据段内的字节变量
……
MOV AL, 1XXX1010B ; 8253方式控制字(8AH), B口方式0、输入,C口上半部分输入、下半部分输出,A口 未用
1)允许输入的模拟电压范围是0—+5V,A/D转换后得 到数字量范围是0—FFH。
3)在PC0先输出一个高电平,
2)
然后再从PC0输出一个低电平。
4) MOV DX,203H MOV AL,1 OUT DX,AL MOV AL,0 OUT DX,AL
5)当A/D转换结束时,ADC0809的EOC端输出一个高电平, 然后回到低电平。 6)起动A/D转换后,经过一个延时后,再读入数字量。
AG2:MOV CH,16 ;每次检测路数
MOV BL,一1
AG1:INC BL ;通道号
MOV DX,310H
MOV AL,BL
OUT DX,AL
;打开对应通道
MOV DX,312H
OUT DX,AL
;启动12位转换
TA:MOV DX,311H
IN
AL,DX
;输入状态
AND AL,80H ;检测STS=0?