当前位置:首页 > 微机原理课后习题解答
9、8250的初始化编程,有哪几个主要步骤?
解: (1) 为确定波特率设置除数锁存器(D7应为1);
(2)对通信线控制寄存器编程确定通信的数据格式(D7应为); (3)若要使用中断,则应设置中断允许寄存器的状态; (4)设置调制解调控制寄存器。 10、初始化编程应用:
要求以波持率为9600进行异步通信,每个字符7位,1个停止位,1个奇偶校验位,允许所有中断,试进行初始化编程?假设:异步通信的端口地址为4E8~4EFH。 解:初始化编程: MOV AL ,80H MOV DX, 4EBH OUT DX, AL MOV AL , 0C H MOV DX, 4E8H OUT DX , AL MOV AL , 0 MOV DX, 4E9H OUT DX , AL MOV AL , 1AH MOV DX, 4EB OUT DX , AL MOV AL , 0FH MOV DX , 4E9H OUT DX , AL MOV AL , 0BH MOV DX , 4ECH OUT DX , AL
第十二章?? D/A与A/D转换
习题与答案
1.???????? 什么叫分辨率?什么叫相对转换精度?
答:分辨率:这个参数是D/A转换器对微小输入量变化的敏感程度的描述。用数字量的位数来表示,如8位、10位等。对于一个分辨率为n位的转换器,它能对刻度的2-n输入作出反应。
相对转换精度:指满刻度已校准的情况下,在整个刻度范围内,对应于任一数码的模拟量输出与它的理论值之差。
2.???????? 在T型电阻网络组成的D/A转换器中,设开关S0、S1、S2、S3分别对应一位二进制数,当二进制数据为1011时,流入运算放大器的电流为多少?以图8-1为例。 答:I = [(20*D0+21*D1+22*D2+…+2n-1*Dn-1)/2n]* VREF/2R; I = 13 VREF/32R。
3.???????? 用带两级数据缓冲器的D/A转换器时,为什么有时要用三条输出指令才完成16位或12位数据转换?
答:当主机位数小于DAC芯片位数时,我们需要对连接方式作出调整。如果仍采用8位CPU,则被转换的数据必须分几次送出;同时,就需要多个锁存器来锁存分几次送来的完整的数字量。这种情况下,可采用双缓冲器结构。CPU输出时,先输出低8位给第一级锁存器(此时第二级锁存器不通),然后输出高4位给第一级锁存器。等这两者都输出后,再输出一个打开第二级锁存器的选通脉冲,把16位或12位数据输给D/A转换,这样可避免毛刺。 如图:
4.???????? 使用DAC0832进行数/模转换时,有哪两种方法可对数据进行锁存? 答:
单缓冲方式:LE1或LE2一直为高,只控制其中一级寄存器。
第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在不锁存状态。使 和 为低电平,这样,DAC寄存器的锁存端得不到有效电平;另一方面,使输入寄存器的有关控制信号中,ILE处于高电平, 处于低电平。这样,当 端来一个负脉冲时,就可以完成一次变换。 第二种方法是使输入寄存器工作在不锁存状态,而使DAC寄存器工作在锁存状态。使 为低电平, 为低电平而ILE为高电平,这样,输入寄存器的锁存信号处于无效状态;另外, 和 端输入一个负脉冲,从而使DAC寄存器工作在锁存状态。 双缓冲方式:不让LE1和LE2一直为高,控制两级寄存器。
控制LE1从高变低,将从DI0~DI7输入的数据存入输入寄存器。控制LE2由高变低,则将输入寄存器的数据存入DAC寄存器,开始D/A转换。双缓冲方式能做到对某个数据进行D/A转换的同时,输入下一个数据,适用于要求多个模拟量同时输出的场合。
5.???????? 设计一个电路和相应程序完成一个锯齿波发生器的功能,使锯齿波呈正向增长且锯齿波周期可调。 电路如下:
产生锯齿波只须将输出到DAC 0832的数据由0循环递增,程序如下: MOV???? AL, 0?????? ;初始值
MOV???? AX, 290H??? ;D/A转换器的端口地址 CYCLE:? INC???? AL OUT???? AX, CL
JMP???? CYCLE?????? ;若无则转CYCLE
上面程序在执行时得到的输出电压将为连续上升的锯齿波,我们可以利用延迟来调整锯齿波的周期。程序如下:
MOV???? AL, 0?????????? ;初始值
MOV???? DX, 290H??????? ;D/A转换器的端口地址
共分享92篇相关文档