含有“AI:”开头的题目的答案是问chat的,看个乐就行,不一定正确
第六章
答:CPU 和外设之间的信息交换存在以下一些问题:速度不匹配;信号电平不匹配;信号格式不匹配;时序不匹配。
I/O接口电路是专门为解决CPU与外设之间的不匹配、不能协调工作而设置的,处于总线和外设之间,一般应具有以下基本功能:
(1)设置数据缓冲以解决两者速度差异所带来的不协调问题:
(2)设置信号电平转换电路,来实现电平转换
(3)设置信息转换逻辑,如模拟量必须经A/D变换成数字量后,才能送到计算机去处理,而计算机送出的数字信号也必须经D/A变成模拟信号后,才能驱动某些外设工作。
(4)设置时序控制电路;
(5)提供地址译码电路。
2。什么叫I/O端口?一般的接口电路中可以设置哪些端口?计算机对I/O端口编址时 采用哪两种方法?在8086/8088CPU中一般采用哪种编址方法?
答:在CPU与外设通信时,传送的信息主要包括数据信息、状态信息和控制信息。在接口电路中,这些信息分别进入不同的寄存器,通常将这些寄存器和它们的控制逻辑统称为I/O端口。
一般的接口电路中可以设置数据端口、状态端口和命令端口。
计算机对I/O端口编址时采用两种方法:存储器映像寻址方式、I/O单独编址方式。
在8086/8088CPU中一般采用I/O单独编址方式。
3。CPU与外设间传送数据主要有哪几种方式?
答案一:
CPU与外设之间传输数据的控制方式通常有三种:程序控制方式、中断方式和DMA方式。
(1)程序控制方式:指用输入/输出指令来控制信息传输的方式,是一种软件控制方式,根据程序控制的方法不同,又可以分为无条件传送方式和条件传送方式。
无条件传送方式:CPU认为接口始终是处于“准备好”状态,能随时接收或发送数据,适用于那些能随时读写的设备。特点是接口简单,要求输入有缓冲,输出有锁存。应用的局限性较大,一般只适用于诸如开关控制、七段数码管的显示控制等场合。
条件传送方式:通过程序查询相应设备的状态,若状态不符合,则CPU不能进行输入/输出操作,需要等待;只有当状态信号符合要求时,CPU才能进行相应的输入/输出操作。特点是接口电路简单,CPU利用率低(程序循环等待),接口需向CPU提供查询状态。适用于CPU不太忙,传送速度要求不高的场合。要求各种外设不能同时工作,外设处于被动状态。
(2)中断传送方式:当外设准备好时,由外设通过接口电路向CPU发出中断请求信号,CPU在允许的情况下,暂停执行当前正在执行的程序,响应外设中断,转入执行相应的中断服务子程序,与外设进行一次数据传送,数据传送结束后,CPU返回继续执行原来被中断的程序。特点是CPU的利用率高,外设具有申请CPU中断的主动权,CPU和外设之间处于并行工作状态。但中断服务需要保护断点和恢复断点(占用存储空间,降低速度),CPU和外设之间需要中断控制器。适用于CPU的任务较忙、传送速度要求不高的场合,尤其适合实时控制中的紧急事件处理。
(3)DMA方式:外设利用专用的接口( DMA 控制器)直接与存储器、外设进行高速数据传送,并不经过CPU( CPU不参与数据传送工作),总线控制权不在CPU处,而由DMA 控制器控制。特点是接口电路复杂,硬件开销大。大批量数据传送速度极快。适用于存储器与存储器之间、存储器与外设之间的大批量、高速数据传送的场合。
DMA传送的基本过程:
① 外设准备就绪时,向DMA控制器(DMAC)发DMA请求,DMAC接到此信号后,向CPU发DMA请求,CPU的HOLD有效 。
② CPU接到HOLD请求后,如果条件允许(一个总线操作结束),则发出HLDA信号作为响应,同时,释放对总线的控制权
③ DMAC取得总线控制权后,DMAC成为主设备,DMAC控制存储器与外设端口之间的数据传送(往地址总线发送地址信号,每传送1个字节,就会自动修改地址寄存器的内容,以指向下一个要传送的字节;每传送一个字节,字节计数器的值减1,当减到0时,DMA过程结束)
④ 传送结束,DMAC向CPU发结束信号,将总线控制权交回CPU。
⑤ DMAC又回到从设备的状态。
答案二:
CPU与外设间的数据传送方式主要有:程序控制方式、中断方式、DMA方式。
程序控制传送方式:CPU与外设之间的数据传送是在程序控制下完成的。
⑴无条件传送方式:也称为同步传送方式,主要用于对简单外设进行操作,或者外设的定时是固定的或已知的场合。
⑵条件传送:也称为查询式传送方式,在开始传送前,必须先查询外设已处于准备传送数据的状态,才能进行传送。
采用中断方式:CPU平时可以执行主程序,只有当输入设备将数据准备好了,或者输出端口的数据缓冲器已空时,才向CPU发中断请求。CPU响应中断后,暂停执行当前的程序,转去执行管理外设的中断服务程序。在中断服务程序中,用输入或输出指令在CPU和外设之间进行一次数据交换。等输入或输出操作完成之后,CPU又回去执行原来的程序。
DMA方式:也要利用系统的数据总线、地址总线和控制总线来传送数据。原先,这些总线是由CPU管理的,但当外设需要利用DMA方式进行数据传送时,接口电路可以向CPU提出请求,要求CPU让出对总线的控制权,用DMA控制器来取代CPU,临时接管总线,控制外设和存储器之间直接进行高速的数据传送。这种控制器能给出访问内存所需要的地址信息,并能自动修改地址指针,也能设定和修改传送的字节数,还能向存储器和外设发出相应的读/写控制信号。在DMA传送结束后,它能释放总线,把对总线的控制权又交还给CPU
4。说明查询式输入和输出接口电路的工作原理。(参考图6.3和图6.5。)
5。某一个微机系统中,有8块I/0接口芯片,每个芯片占有8个端口地址,若起始地址 为300H,8块芯片的地址连续分布,用74LS138作译码器,试画出端口译码电路,并说明每 块芯片的端口地址范围。(参考图6.7。300H=1100000000B,A9~A6=1100,将它们接 到138译码器的控制端,A5~A3接C、B、A。每块接口芯片占8个口地址,A2~A0=000~ 111,它们只能用作接口芯片片内寻址,不能接到译码器上。)
解;
6。8255A的3个端口在功能上各有什么不同的特点?8255A内部的A组和B组控制 部件各管理哪些端口?
解;
端口A 包含一个8 位的数据输出锁存器/缓冲器,一个8 位的数据输入锁存器,因此A口作输入或输出时数据均能锁存。
端口B 包含一个8 位的数据输入/输出锁存器/缓冲器,一个8 位的数据输入缓冲器。
端口C 包含一个8 位的数据输出锁存器/缓冲器,一个8 位的数据输入缓冲器,无输入锁存功能,当它被分成两个4 位端口时,每个端口有一个4 位的输出锁存器。
端口A 和端口C 的上半部分(PC7~PC4)由A 组控制逻辑管理。
端口B 和端口C 的下半部分(PC3~PC0)由B 组控制逻辑管理。
7。8255A有哪几种工作方式?各用于什么场合?端口A、端口B和端口C各可以工作 于哪几种工作方式?
解;
方式0:基本输入输出方式,适用于与简单外设传送数据(如开关/发光二极管等)和查询方式的接口电路(一般PA或PB数据口, 而PC做成状态口)。
方式1:选通输入输出方式,其不宜适用于与单向传送数据的外设(如键盘/打印机等), 适用于查询和中断方式的接口电路。
方式2:双向选通传送方式,适用于与双向传送数据的外设(如硬盘/软盘/光盘等),适用于查询和中断方式的接口电路。
端口A可工作于方式0,方式1,方式2;
端口B可工作于方式0,方式1;
端口C只可工作于方式0。
端口A、B、C的特点:
A口:具有一个8位数据输人锁存器和一个8位数据输出锁存/缓冲器,可工作于方式0、方式1或方式2。它总是作为数据输人入/输出端口。
B口:具有一个8位数据输人缓冲器和一个8位数据输出锁存/缓冲器,可工作于方式0或方式1。它总是作为数据输人/输出端口。
C口:具有一个8位数据输人缓冲器(不锁存)和一个8位数据输出锁存/缓冲器,C口可作为基本的数据输入/输出端口,有时也作为控制信号和状态信号的输入输出端。
8。8255A的方式选择字和置位复位字都写入什么端口?用什么方式区分它们?
解;
8255A 的方式选择字和置位复位控制字都被写入控制字寄存器端口中,但通过控制字的D₇ 位进行区分,方式控制字的D₇=1,置位复位控制字的D₇=0。
9。若8255A的系统基地址为0F8H,且各端口都是偶地址,则8255A的3个输入输出端口地址和控制寄存器的地址各是多少?已知CPU的系统总线为A7~A0,D7~D0,M/IO,RD,WR,RESET,试画出8255A的地址译码电路及它与CPU的系统总线相连的连线图。(参考图6.18的译码电路。A7~A5=111,加门电路后与138译码器的控制端相连,A4、A3、A0分别与译码器的C、B、A相连。连接数据线时注意是偶地址端口。)
解:
端口A地址:0F8H
端口B地址:0FAH
端口C地址:0FCH
控制字地址:0FEH
解:
11。8255A的端口地址同第10题,要求PC4输出高电平,PC5输出低电平,PC6输出一个 正脉冲,试写出完成这些功能的指令序列。
解:
MOV AL, 10001010B
OUT 86H, AL ;设置8255的工作方式
MOV AL,00001001B ;PC4 输出高电平
OUT 86H,AL
MOV AL,00001010B ;PC5 输出低电平
OUT 86H,AL
MOV AL,00001100B ;PC6 先输出低电平
OUT 86H,AL
MOV AL,00001101B ;PC6 再输出高电平
OUT 86H,AL
MOV AL,00001100B ;PC6 再输出低电平,形成一个正脉冲
OUT 86H,AL
12。8255A的端口地址同第10题,若A口工作于方式0输入,B口工作于方式1输出,C口各位的作用是什么?控制字是什么?若B口工作于方式0输出,A口工作于方式1输入,C口各位作用是什么?控制字是什么?
解:
A 口工作在方式0,不需要C 口做应答信号,B 口工作在方式1 输入,需要C 口做联络信号,PC1 连接OBF ,输出缓冲器满信号,PC2 连接ACK,外设的应答信号信号,PC0连接INTR,向CPU 发出的中断请求信号。控制字为1001X10XB。
B 口工作在方式0 输出,A 口工作方式1 输入,需要C 口做联络信号,PC4 连接STB,由外设输入的选通信号,PC5 连接IBF,输入缓冲器满信号,PC3 连接INTR,向CPU 发出的中断请求信号。控制字为1011X00XB。
13。8255A的口地址为80H~83H,A口接8个开关K7~K0,B口接8个指示灯LED7~LED0,用来显示开关的状态,当开关合上时相应的指示灯点亮,断开时灯灭。试画出硬件 连线图(含具体的译码电路),并编写实现这种功能的程序段。要求每隔20秒钟读一次,延 时20秒的子程序名为DELAY_20S。(参考图6.18及相关程序,但不用考虑奇偶地址。)
解:
硬件电路如下图所示。
8255A 的4个端的地址分别为80H、81 H、82H和83 H,对应于8255A的PA口、PB口、PC口和控制字寄存器。
主频率为5MHz
时钟周期=主频率的倒数=1/(5×10⁻⁶)=0.2µs
延时20s需要的时钟周期数= 20s/0.2µs=100000000=N₁×N₂
假设N₁=10000=2710H
[((10000-1)×17+5)+4+3+3+16]×N₂+2×10+2 ×8+20=100000000
N₂=588=24CH
程序如下:
MOV AL, 10010000B ; 控制字
OUT 83H, AL ; 写入控制字
TEST_IT:
IN AL, 80H ; 从A口读取开关状态
NOT AL ; A口开关状态取反
OUT 81H, AL ; B口控制LED,指示开关状态
CALL DELAY_20S
JMP TEST_IT ; 循环检测
DELAY_20S:
PUSH BX
PUSH CX
MOV BX, 24CH ; 延时20s,改变BX和CX中的值即可改变延时时间。
DEL1:
MOV CX, 2710H
DEL2:
LOOP DEL2
NOP
DEC BX
JNZ DEL1
POP CX
POP BX
RET
延时子程序的时钟周期数:((10000-1)×17+5)+4+3+3+16] ×588+2 ×10+2 ×8+20 =
延时子程序的延时时间:99968288×(1/(5 ×106 ))=19.9936576s
不加NOP指令的计算:延时子程序的时钟周期数:((10000-1)×17+5)+4+3+16] ×588+2×10+2 ×8+20 =
延时子程序的延时时间:99968288×(1/(5 ×106))=19.9933048s
14。设8255A的口地址为60H~63H,A口接4个开关K3~K0,B口接一个七段LED显示器,用来显示4个开关所拨通的十六进制数字0~F,开关都合上时,显示0,都断开时显示F,每隔20秒钟检测一次,七段LED显示器采用共阳极接法。试画出硬件连线图(不用画具体的译码电路),并编写相关的程序。(提示:参考图6.19及相关程序。但七段LED显示器的阴极要接到74LS04的各输出端,阳极则连在一起,经一个电阻接+5V。七段代码的编码要重新设置。)
解:搜不到
其他私货:
1。
2。
关注微信公众号,回复“微机原理”获取答案的word文档下载