微机原理汇编语言与接口技术 第八章 习题答案 人民邮电出版社周杰英 张萍 郭雪梅 著概要.docx
- 文档编号:23494561
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:20
- 大小:69.23KB
微机原理汇编语言与接口技术 第八章 习题答案 人民邮电出版社周杰英 张萍 郭雪梅 著概要.docx
《微机原理汇编语言与接口技术 第八章 习题答案 人民邮电出版社周杰英 张萍 郭雪梅 著概要.docx》由会员分享,可在线阅读,更多相关《微机原理汇编语言与接口技术 第八章 习题答案 人民邮电出版社周杰英 张萍 郭雪梅 著概要.docx(20页珍藏版)》请在冰豆网上搜索。
微机原理汇编语言与接口技术第八章习题答案人民邮电出版社周杰英张萍郭雪梅著概要
第8章常用接口技术
习题与参考答案
本章的习题与参考答案按本章的小节分为四大部分,即:
8.1计数器/定时器
8.2并行输入输出接口
8.3模/数和数/模转换接口
8.4串行通信接口
8.1计数器/定时器
习题与参考答案
1、8253主要由哪几个部分组成?
解:
数据总线缓冲器、读写控制电路、控制字寄存器以及三个计数器
2、
(1)8253内部有哪几个通道?
简要说明CLK、OUT和GATE引脚的含义。
(2)设8253通道2工作于方式3,输入时钟频率为1MHz,OUT引脚输出周期为1ms的方波。
已知通道0的口地址为3F0H,试编写该8253芯片的初始化程序段。
解:
(1)8253内部有三个计数通道,计数器#0、#1、#2。
CLK为时钟信号输入引脚,GATE为门控信号输入引脚,OUT引脚根据各种工作方式的不同,输出各种工作波形。
(2)MOVAL,10110110B
MOVDX,3F3H
OUTDX,AL
MOVAX,555
MOVDX,3F2H
OUTDX,AL
MOVAL,AH
OUTDX,AL
(2)MOVAL,10110111B
MOVDX,3F3H
OUTDX,AL
MOVAL,55H
MOVDX,3F2H
MOVAL,05H
OUTDX,AL
OUTDX,AL
3、假设有一片8253芯片,其端口地址为0FCH~0FFH,其CLK引脚输入的时钟信号周期为0.84µs。
现用该8253芯片的计数器1,工作在方式2,产生周期为2ms的信号,试写出该8253芯片的初始化程序。
解:
计算2ms对应的时间常数
N=2mS/0.84µs=2×1000/0.84=2381=094DH
初始化编程:
MOVAL,75H
OUT0FFH,AL
MOVAL,81H
OUT0FDH,AL
MOVAL,23H
OUT0FDH,AL
MOVAL,74H
OUT0FFH,AL
MOVAL,4DH
OUT0FDH,AL
MOVAL,09H
OUT0FDH,AL
MOVAL,74H
OUT0FFH,AL
MOVAX,200000/84
OUT0FDH,AL
MOVAL,AH
OUT0FDH,AL
MOVAL,74H
OUT0FFH,AL
MOVAX,2381
OUT0FDH,AL
MOVAL,AH
OUT0FDH,AL
4、假设8253各端口的地址分别为40H~43H,若计数器0,OUT引脚输出频率为1KHZ的连续方波信号;计数器1,每秒产生18.2次连续的方波信号;计数器2,每15.12µs输出一次连续的单脉冲信号。
CLK时钟脉冲的频率为1.19MHz。
请对以上计数器通道进行初始化编程。
解:
TC(计数周期)=1/1.19MHZ=0.84µs
计数器0:
N=1.19*1000000/1000=1190=04A6H
计数器1:
N=54900/0.84=65357=FF4DH
计数器2:
N=15.12/0.84=18=12H
初始化编程:
MOVAL,36H;通道0
OUT43H,AL
MOVAL,0A6H
OUT40H,AL
MOVAL,04H
OUT40H,AL
MOVAL,76H;通道1
OUT43H,AL
MOVAL,4DH
OUT41H,AL
MOVAL,0FFH
OUT41H,AL
MOVAL,94H;通道2
OUT43H,AL
MOVAL,12H
OUT42H,AL
5、假设8253各端口的地址分别为40H~43H,CLK时钟信号频率为1MHz,若要计数器产生周期为1s的方波,请问使用一片8253如何达到目的?
写出初始化程序。
解:
在只用一个计数器的情况下。
由于计数值:
N=1000000/1=106≥65536
故可以采用计数器级联的方式实现题目的要求。
级联方法:
计数器0的CLK接1MHZ的时钟脉冲,计数值为1000,工作于方式3;再将计数器0的OUT接于计数器1的CLK端口。
令计数器1也工作于方式3,计数值为1000,就可以在计数器1的OUT输出得到所需要的方波。
初始化程序:
MOVDX,43H;初始化计数器0
MOVAL,37H
OUTDX,AL
MOVAL,00
MOVDX,40H
OUTDX,AL
MOVAL,10
OUTDX,AL
MOVDX,43H;初始化计数器1
MOVAL,77H
OUTDX,AL
MOVAL,00
MOVDX,41H
OUTDX,AL
MOVAL,10
OUTDX,AL
8.2并行输入输出接口
习题与参考答案
1、通常并行接口应具有哪些功能?
解:
(1)两个或两个以上具有锁存器或缓冲器的数据端口;
(2)每个数据端口都有与CPU进行联络的控制和状态信息,也有与外设交换信息所必须的控制和状态信息;
(3)通常每个数据端口,还可用中断方式与CPU交换信息;
(4)有片选和控制电路;
(5)可通过编程达到选择端口、传送方向与CPU交换信息的方法等目的。
2、8255A由哪几个主要部分组成?
解:
(1)数据端口A,B,C。
而且每个端口都是8位;
(2)A组和B组控制电路;
(3)数据总线缓冲器;
(4)读/写控制逻辑。
3、8255A有哪些控制信号?
各有何功能?
解:
(1)
——片选信号与A0,Al一起确定其端口地址;
(2)
——读信号,控制8255A送出数据或状态信息至CPU;
(3)
——写信号,控制CPU输出的数据或命令到8255A;
(4)RESET——复位信号,清除控制寄存器和将所有端口设置成输入方式。
4、若8255A端口A工作在方式2(双向)。
端口B能工作在哪种方式?
解:
若8255A端口A工作在方式2(双向)。
端口B能工作在方式0、方式1。
5、若B口工作在方式1的输出状态时,应执行哪个操作,可禁止它产生中断请求信号?
解:
将C口的PC2置0。
6、8255A工作在方式1和方式2时.C口哪些引脚负责中断允许或禁止?
解:
方式1:
输入——A口为PC4
B口为PC2
输出——A口为PC6
B口为PC2
方式2:
输入——PC4
输出——PC6
7、假设8255A芯片起始端口地址为60H,编写指令序列,分别完成:
(1)设置端口A组和B组都是方式0,其中端口B和C是输出口,A为输入口。
(2)设置端口A组为方式2、B组为方式0且端口B为输出。
(3)设置端口A组为方式1且端口A为输入、PC6和PC7为输出;设置端口B组为方式1且端口B为输入。
解:
(1)MOVDX,0063H
MOVAL,90H
OUTDX,AX
(2)MOVDX,0063H
MOVAL,0D0H
OUTDX,AX
(3)MOVDX,0063H
MOVAL,0B6H
OUTDX,AX
8、现要求用一个8255作为终端机的接口。
由PA通道输出字符到终端机的显示缓冲器,PB通道用于键盘输入字符,PC通道为终端状态信息输入通道。
当PC0=1表示键盘输入字符就绪,PC7=0表示显示缓冲器已空。
要求用查询方法把从键盘输入的每个字符都送到终端机的显示缓冲器上,当输入的是回车符(ASCII码为0DH)则操作结束。
已知控制字格式如下图所示,并假设该8255A芯片的端口地址为60H-63H。
请编写包括8255初始化的输入输出驱动程序。
解:
MOVAL,10001011B
OUT63H,AL
AGAIN1:
INAL,62H
TESTAL,01H
JZAGAIN1
AGAIN2:
INAL,62H
TESTAL,80H
JNZAGAIN2
INAL,61H
OUT60H,AL
CMPAL,0DH
JNZAGAIN1
8.3模/数和数/模转换接口
习题与参考答案
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=13VREF/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.设计一个电路和相应程序完成一个锯齿波发生器的功能,使锯齿波呈正向增长且锯齿波周期可调。
电路如下:
产生锯齿波只须将输出到DAC0832的数据由0循环递增,程序如下:
MOVAL,0;初始值
MOVAX,290H;D/A转换器的端口地址
CYCLE:
INCAL
OUTAX,CL
JMPCYCLE;若无则转CYCLE
上面程序在执行时得到的输出电压将为连续上升的锯齿波,我们可以利用延迟来调整锯齿波的周期。
程序如下:
MOVAL,0;初始值
MOVDX,290H;D/A转换器的端口地址
CYCLE:
INCAL
OUTDX,AL;往D/A转换器输出数据
CALLDELAY
JMPCYCLE;若无则转CYCLE
MOVCX,TIMES;TIMES为延迟常数
DELAY:
LOOPDELAY
RET
6.什么叫模/数转换精度?
什么叫转换率?
什么叫分辨率?
模/数转换绝对精度:
指对应于一个给定的数字量的实际模拟量输入与理论模拟量输入之差。
实际上对应于同一个数字量其模拟量输入不是固定值,而是一个范围。
模/数转换相对精度:
在整个转换范围内,任一数字量所对应的模拟输入量实际值与理论值之间的差。
转换率:
完成一次A/D转换所须的时间,在大多数情况下,转换率是转换时间的倒数。
分辨率:
这个参数是A/D转换器对微小输入量变化的敏感程度的描述。
7.说明并行比较、双积分式和逐次逼近式A/D转换的工作原理。
答:
并行比较ADC由电阻分压器、比较器、缓冲器及编码器四部分组成。
这种结构的ADC所有位的转换同时完成,其转换时间主要取决于比较器的开关速度、编码器的传输时间延迟等。
双积分式ADC的基本原理是通过两次积分将输入的模拟电压转换成与其平均值成正比的时间间隔。
与此同时,在此时间间隔内利用计数器对时钟脉冲进行计数,从而实现A/D转换。
逐次逼近型ADC是应用非常广泛的模/数转换方法,它由比较器、D/A转换器、比较寄存器SAR、时钟发生器以及控制逻辑电路组成,将采样输入信号与已知电压不断进行比较,然后转换成二进制数。
8.比较并行比较、双积分式和逐次逼近式A/D转换的优缺点。
答:
并行比较ADC特点增加输出代码对转换时间的影响较小,但随着分辨率的提高,需要高密度的模拟设计以实现转换所必需的数量很大的精密分压电阻和比较器电路。
积分型ADC两次积分的时间都是利用同一个时钟发生器和计数器来确定,其转换精度只取决于参考电压
。
此外,由于输入端采用了积分器,所以对交流噪声的干扰有很强的抑制能力。
若把积分器定时积分的时间取为工频信号的整数倍,可把由工频噪声引起的误差减小到最小,从而有效地抑制电网的工频干扰。
这类ADC主要应用于低速、精密测量等领域,如数字电压表。
其优点是:
分辨率高,可达22位;功耗低、成本低。
缺点是:
转换速率低,转换速率在12位时为100~300sps。
逐次逼近ADC的优点:
高速,采样速率可达1Msps;与其它ADC相比,功耗相当低;在分辨率低于12位时,价格较低。
缺点:
在高于14位分辨率情况下,价格较高;传感器产生的信号在进行模/数转换之前需要进行调理,包括增益级和滤波,这样会明显增加成本。
9.在实时控制和实时数据处理系统中,当需要同时测量和控制多路信息时,常用什么方法解决?
答:
以ADC0809为例,模拟输入部分提供一个8通道的多路开关和寻址逻辑,可以接入8个输入电压,由三位地址输入ADDA、ADDB、ADDC的不同组合来选择。
我们可查询状态端口确定转换是否完成。
当ADC0809工作在查询模式时,利用ADC0809芯片有8路模拟信号输入通道的多路开关,可以实现8个模拟信号的分时转换。
8.4串行通信及接口电路
习题与参考答案
1、串行通信有哪些特点?
解:
(1)需要的通信线少(通常为两条),特别适合于远距离传送;
(2)传送速度较并行通信慢。
2、串行通信方式有哪两种?
解:
异步通信与同步通信
3、串行通信传送编码.主要有哪两种形式?
解:
(1)扩展的BCD交换码
(2)ASCII码
4、同步传送中CPU与外设有哪些规定?
解:
(1)字符格式:
起始位、有效数据位(5-8位)—奇偶校验位—停止位(1-2位)(有一种还有空闲位);
(2)波特率:
常用为50—9600波特。
5、串行通信在传送过程中,有哪几种方式?
解:
单工;半双工;全双工。
6、同步传送与异步传送有何差别?
解:
(1)同步传送的字符格式,仅在开始时使用同步字符(常用为2个),因而传送速度可达十——几百干波特;
(2)同步传送需时钟来实现发送端与接收端之间的同步,故硬件较复杂;
(3)异步速度比同步慢,硬件较同步简单一些。
7、8250内部结构,主要由哪几部分组成?
解:
(1)发送器,接收器部分:
A、发送器;
B、接收器;
(2)通信控制和状态寄存器:
A、LCR——串行通信的数据格式;
B、LSR——通信线状态寄存器;
(3)波特率发生控制电路
(4)调制解调控制部分:
A、调制解调控制寄存器MCR;
B、调制解调状念寄存器MSR;
(5)中断控制:
A、中断识别寄存器IIR;
B、中断允许寄存器IER;
8、8250有哪些控制字?
解:
(1)通信线控制字(确定通信的数据格式);
(2)中断控制字;
(3)调制解调控制字(设置8250与通信设备之间联络应答的输出信号);
(4)设置波特率的除数锁存器;
(5)状态读出的控制字:
A、通信线状态字;
B、调制解调状态字。
9、8250的初始化编程,有哪几个主要步骤?
解:
(1)为确定波特率设置除数锁存器(D7应为1);
(2)对通信线控制寄存器编程确定通信的数据格式(D7应为);
(3)若要使用中断,则应设置中断允许寄存器的状态;
(4)设置调制解调控制寄存器。
10、假设8250以波持率为9600进行异步通信,每个字符7位,1个停止位,1个奇偶校验位,允许所有中断,试进行初始化编程?
假设:
8250异步通信的端口地址为4E8~4EFH。
解:
初始化编程:
MOVAL,80H
MOVDX,4EBH
OUTDX,AL
MOVAL,0CH
MOVDX,4E8H
OUTDX,AL
MOVAL,0
MOVDX,4E9H
OUTDX,AL
MOVAL,1AH
MOVDX,4EB
OUTDX,AL
MOVAL,0FH
MOVDX,4E9H
OUTDX,AL
MOVAL,0BH
MOVDX,4ECH
OUTDX,AL
11.8251A异步模式下,每字符8位,无奇偶校验,2个停止位,波特率因子为64,则每秒能传输的最大字符数是多少?
答:
时钟的频率fc和数据传输速率fd的关系为
fc = Kfd
已知fc的最大值为19.2KHz,波特率因子K为64。
则数据传输的波特率
fd = fc/K=19200/64=300bps
由于该异步模式下每字符8位、无奇偶校验、2个停止位,也就是说传输一个字符需要10位。
因此,每秒能传输的字符数为:
300/10=30。
即,本题答案为,每秒能传输的最大字符数是30。
12.编写8251A异步模式下的接收和发送程序,完成256个字符的发送和接收,设端口地址为208H和209H,波特率因子为16,1个起始位,1个停止位,无奇偶校验,每字符8位。
答:
发送端初始化程序与发送控制程序如下:
START:
MOVDX,209H;8251A控制端口
MOVAL,00011110B;1EH--将825lA定义为异步方式,8位数据,1位停止位
OUTDX,AL;无奇偶校验,取波特率系数为16
MOVAL,11H;写命令字,发送允许,错误标志复位
OUTDX,AL
MOVDI,发送数据块首地址;设置地址指针。
MOVCX,256;设置计数器初值--256
NEXT:
MOVDX,209H;8251A状态端口(与控制端口同用一个端口地址)
INAL,DX
ANDAL,01H;查询TXRDY有效否
JZNEXT;无效则等待
MOVDX,208H;8251A数据端口
MOVAL,[DI];向8251A输出一个字节数据
OUTDX,AL
INCDI;修改地址指针
LOOPNEXT;未传输完,则继续下一个
HLT
接收端初始化程序和接收控制程序如下。
RECEIVE:
MOVDX,209H;8251A控制端口
MOVAL,1EH;初始化8251A,异步方式,8位数据
OUTDX,AL;1位停止位,无奇偶校验,波特率系数16
MOVAL,14H;允许接收,清除错误标记
OUTDX,AL
MOVDI,接收数据块首地址;设置地址指针
MOVCX,256;设置计数器初值--接收数据块字节数
RRR:
MOVDX,209H;8251A状态端口
INAL,DX
RORAL,1;查询RXRDY有效否
RORAL,1
JNCRRR;无效则等待
MOVDX,208H;251A数据端口
INAL,DX;无错时,输入一个字节到接收数据块
MOV[DI],AL
INCDI;修改地址指针
LOOPRRR;未传输完,则继续下一个
HLT
13.对8251A进行编程时,必须遵守哪些约定?
答:
编程的内容包括两大方面:
⑴是由CPU发出的控制字,即向8251A写入方式选择控制字和操作命令控制字;
⑵是由8251A向CPU送出的状态字,由CPU从8251A读取。
8251A有一奇一偶两个端口地址,偶地址对应数据输入和输出寄存器,奇地址端口对应状态寄存器、模式寄存器、控制寄存器和同步字符寄存器。
8251A的初始化与其他芯片有个很重要的不同之处,在8251A的方式字和命令字写入之前需要先进行一次复位,一般采用先送3个00H,再送40H的方法,这是8251A的编程约定。
当复位完之后,由于8251A芯片只提供2个分别用于命令寄存器和数据寄存器的可访问地址,所以按照约定第一次写入奇地址的是方式选择字。
如果编程8251A的工作方式为同步方式,紧接着送入奇地址的是同步字。
方式选择字还规定了同步字的个数,必须根据方式字的设定,向奇地址写入1个或按顺序写入2个同步字。
如果是异步方式,则设置模式字后,便接着设置控制字。
之后,写入奇地址的数据一概被认为是命令字。
命令字中如果包含复位命令,8251A被复位。
其后送入奇地址的字节又被认为是方式字。
命令字中如果不包含复位命令,初始化完毕,便可以开始使用偶地址传送数据。
下图是8251的命令字与初始化编程流程图:
8251A命令字与初始化编程流程图
14.参考初始化流程,用程序段对8251A进行同步模式设置。
奇地址端口地址为66H,规定用内同步方式,同步字符为2个,用奇校验,7个数据位。
解:
具体程序段如下。
MOVAL,16H;设置模式字,同步模式,用2个同步字符
OUT66H,AL;7个数据位,奇校验
MOVAL,16H
OUT66H,AL;送同步字符16H
OUT66H,AL;两个同步字符均为16H
MOVAL,97H;设置控制字,使发送器和接收器启动
OUT66H,AL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理汇编语言与接口技术 第八章 习题答案 人民邮电出版社周杰英 张萍 郭雪梅 著概要 微机 原理 汇编语言 接口 技术 第八 习题 答案 人民邮电 出版社 周杰英 概要