第八章 模/数和数/模转换
8.1 什么叫分辨率?什么叫相对转换精度?
答:1.在D/A转换时,将最低位增1所引起的增量和最大输入量的比称为分辨率。即:分辨率=1/(2n-1)。
2.用绝对转换精度相对于满量程输出的百分数表示的精度即为相对转换精度。有时也用最低位(LSB)的几分之几表示。
8.2 在T型电阻网络组成的D/A转换器中,设开关K0、K1、K2、
K3、K4分别对应一位二进制数,当二进制数据为10110时,流入运算放大器的电流为多少?画出这个T型网络。
答:1.流入运算放大器的电流I为:(n=5)
VREFVREFVREF11VREFI?N?N?5?(10110B)?5?22?。16R2R2R2R2.T型网络如下图:
Ro
- +
K1 K2 K3 K4 K0
2R R R R R VREF
8.3 用带两级数据缓冲器的D/A转换器时,为什么有时要用三条输出指令才完成16位或12位数据转换?
答:因为一般第一次将低8位数据送输出低位的第一级数据缓冲器,第二次输出高4位或高8位数据到高位的第一级数据缓冲器。第三次执行一次伪输出,将第一级数据缓冲器的内容打入第二级数据缓冲器从而实现高于8位的D/A转换。因此要用3条输出指令才能完成一次16位或12位数据转换。以避免出现错误的中间结果。
8.4 使用DAC0832进行数/模转换时,有哪两种方法可对数据进行
锁存?
答:第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在不锁存状态。第二种方法是使输入寄存器工作在不锁存状态,而DAC寄存器工作在锁存状态。
8.5 在数字量和模拟量并存的系统中,地线连接时要注意什么问
题?
答:首先各个模拟地连在一起,各个数字地连在一起;其次模拟地和数字地只能且必须用一个共地点连起来,以防干扰。
8.6 设计一个电路和相应程序完成一个锯齿波发生器的功能,使锯
齿波呈负向增长,并且锯齿波的频率可调。
答:① 电路如下图所示:
Vo
数据总线 D7~D0 REB 地址总线 WR1 IOUT1 DAC 0832 IOUT2 XFER CS WR2 - + M/IO Vo
② 程序如下:
MOV DX,PORTDA ;PORTDA为D/A转换器的端口号 MOV AL,0 ;初值 ROTATE: DEC AL ;呈负向增长 OUT DX,AL ;往D/A转换器输出数据 CALL DELAY ;延迟 JMP ROTATE DELAY: MOV CX,DATA ;往CX中送延迟常数,修改DATA即可改变周期
DELAY1: LOOP DELAY1 RET
8.7 什么叫模/数转换精度?什么叫转换速率?什么叫分辨率?
答:1.反映A/D转换器的实际输出接近理想输出的精确程度叫模/数转换精度。 2.完成一次A/D转换所需要的时间的倒数叫转换速率。 3.A/D转换器能够分辨最小的量化信号的能力叫分辨率。
8.8 参考《微型计算机技术及应用》一书中图8.12说明计数式A/D
转换的工作原理。
答:首先启动信号S由高电平变为低电平,使计数器清0,当启动信号恢复高电平时,计数器准备计数。开始,D/A转换器的输出电压VO为0,此时,运算放大器在同相端的输入电压作用下,输出高电平,从而使计数信号C为1。于是,计数器开始计数,D/A转换器输入端获得的数字量不断增加,使输出电压VO不断上升。在VO小于Vi时,运算放大器的输出总是保持高电平。当VO上升到某个值时,会出现VO大于Vi的情况,这时,运算放大器的输出变为低电平,即C为0。于是,计数器停止计数。这时候的数字输出量D7~D0就是与模拟输入电压对应的数字量。计数信号C的负向跳变也是A/D转换的结束信号。它用来通知其他电路,当前已经完成一次A/D转换。
8.9 双积分式A/D转换的原理是什么?
答:一开始,电路对输入的未知模拟量进行固定时间的积分,然后转换为对标准电压进行反向积分。反向积分到一定时候,便返回起始值。因此对标准电压的反向积分时间T正比于输入模拟电压Vi,Vi越大,T越长。只要用标准的高频时钟频率测定反向积分花费的时间,就可得到输入模拟电压所对应的数字量,即实现了A/D转换。
8.10 参考《微型计算机技术及应用》一书中图8.14说明逐次逼近式
A/D转换的工作原理。
答:当启动信号由高电平变为低电平时,逐次逼近寄存器清0,这时,D/A转换器输出电压VO也为0,当启动信号变为高电平时,转换开始,同时,逐次逼近寄存器进行计数。逐次逼近寄存器工作时与普通计数器不同,它不是从低位往高
位逐一进行计数和进位,而是从最高位开始,通过设置试探值来进行计数。具体讲,在第一个时钟脉冲时,控制电路把最高位送到逐次逼近寄存器,使它的输出为10000000B,这个输出数字一出现,D/A转换器的输出电压VO就成为满量程的128/255。这时,如果VO大于Vi,那么,作为比较器的运算放大器的输出就成为低电平,控制电路据此清除逐次逼近寄存器的最高位;如果VO小于或等于Vi,则比较器输出高电平,控制电路使最高位的1保留下来。如果最高位被保留下来,那么,逐次逼近寄存器的内容为10000000B,下一个时钟脉冲使次高位D6为1。于是,逐次逼近寄存器的值为11000000B,D/A转换器的输出电压VO到达满量程的192/255。此后,如果VO大于Vi,则比较器输出为低电平,从而使次高位D6复位;如果VO小于或等于Vi,则比较器输出高电平,从而保留次高位D6为1。再下一个时钟脉冲对D5位置1,然后据此对VO和Vi的比较,决定保留还是清除D5位上的1……重复上述过程,直到D0=1,再与输入电压比较。经过N次比较后,逐次逼近寄存器中得到的值就是转换后的数据。转换结束以后,控制电路送出一个低电平作为结束信号,这个信号的下降沿将逐次逼近寄存器中的数字量送入缓冲寄存器,从而得到数字量输出。
8.11 比较计数式、双积分式和逐次逼近式A/D转换的优缺点。
答:计数式的优点是电路比较简单,但速度较慢。双积分式的优点是精度高、干扰小,但速度慢。逐次逼近式的优点是速度快,但抗干扰较双积分式差。
8.12 设计一个电路并画出软件流程以实现A/D转换,软件流程中要
体现逐次逼近法思想。
答:1.电路见书344页图8.15所示。 2.软件流程图见上页右图所示:
8.13 什么叫采样保持电路的采样状态和保持状态?用示意图说明 。
答:① 采样状态:输出随输入而变化,增益为1。书351页图8.20的状态控制开关闭合。
② 保持状态:输出保持为某个值。图8.20的状态控制开关断开,电容保持充电时的最终电压值,使A2输出不变。
8.14 在实时控制和实时数据处理系统中,当需要同时测量和控制多
路信息时,常用什么方法解决?
答:① 首先使用公共的A/D、D/A转换器;
② 然后用独立的的多路转换模拟开关来轮流切换各回路和A/D、D/A之间的通路。
④ 或者选择内部本身带有多路转换模拟开关的A/D、D/A转换器。
第九章 键盘和LED显示器
9.1 利用行扫描法来识别闭合键的工作原理是什么?为什么在识别
一个键前,先快速检查键盘中是否有键按下?快速识别有无闭合键的方法是什么?
答:1.从第0行开始扫描,看是否是该行的键闭合,直至最后一行扫描结束。(每扫一行输入列值,检查此行是否有键闭合,若有键闭合则转去识别该键;若无键闭合,则扫描下一行……)
2.为了提高程序运行的速度,在无键按下时无需进行行扫描。
3.先使所有各行同时为低电位,再检查是否有列线也处于低电位。若有某列线处于低电位,则说明必有键按下,否则无键按下。
设计一个用行扫描法识别闭合键的扫描程序,设键盘上有4×5个键,并行口A接四根行线,并行口B接五根列线,两个端口的地址分别为PORTA、PORTB。
答:START: MOV AL,00H ;判断是否有键按下的程序 MOV DX,PORTA OUT DX,AL ;往4根行线输出低电平 MOV DX,PORTB IN AL,DX ;读取列值 AND AL,1FH ;列值只有低5位有效 CMP AL,1FH ;是否有列线处于0电位 JZ START ;无闭合键,循环等待 CALL DELAY ;有闭合键,则延时20ms消抖 SCAN: MOV BL,0 ;键号初值为0 MOV CL,0FEH ;送扫描初值 MOV BH,4 ;计数值为行数(4行) SCAN1: MOV AL,CL MOV DX,PORTA OUT DX,AL ;扫描一行 RCL AL,1 ;修改扫描值 MOV CL,AL
MOV DX,PORTB IN AL,DX ;读取列值 AND AL,1FH ;列值只有低5位有效 CMP AL,1FH ;是否有列线处于0电位 JNZ SCAN2 ;有列线接地,则转SCAN2 MOV AL,BL ;如无列线接地,则键号=键号+列数/每行 ADD AL,5 MOV BL,AL DEC BH ;扫描下一行 JNZ SCAN1 ;未扫描完,继续扫描 JMP DONE ;已扫完,无键按下,则转DONE SCAN2: RCR AL,1 ;如此列接地则转NEXT JNC NEXT INC BL JMP SCAN2 ;如未找到接地的列线,则转SCAN2继续寻找
9.2