微型计算机技术及应用习题解答
答:8251A的C/D端应与地址总线的A1相连。 6.20 8251A与外设之间有哪些连接信号?
答:收发联络信号—DTR、DSR、RTS、CTS,数据信号—TxD、RxD。 6.21 为什么8251A要提供DTR、DSR、RTS、CTS四个信号作为和外设的联络信号?平
常使用时是否可以只用其中两个或者全部不用?要特别注意什么?说明CTS端的连接方法。
答:1.8251A的这四个信号是提供给CPU和外设进行联络用的,因为CPU不能和外
设直接相连。这样CPU对外设的控制信号DTR和RTS及外设给CPU的状态信号DSR和CTS必须由接口(此处为8251A)来传递。所以要提供此4个信号作为和外设的联络信号。
2.平常使用时可以只用其中两个或者全部不用。
3.要特别注意的是在某个时候CTS要输入一个低电平。否则CPU不能往8251A发送数据。
4. CTS一般接地,以确保不用它作联络信号时也维持低电平输入。
6.22 8086系统中采取什么措施来实现8位接口芯片和低8位数据线的连接且满足对奇/偶
端口的读/写?这样做的道理是什么?
答:1.将系统总线的A1与接口的A0相连接即可。软件上采用连续的偶地址代替端
口的奇/偶地址。
2.因为这样连接,从CPU这边来说,端口地址都是偶地址,传输信息时,信息总是出现在CPU的低8位数据总线上;而从端口这边来说,端口地址中既有奇地址也有偶地址,且是连续的,这又满足了许多8位接口芯片对端口地址的要求。 6.23 对8251A进行编程时,必须遵守哪些约定?
答:① 芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。
② 若模式字中规定了8251A工作在同步模式,则CPU接着往奇地址端口输出
的1个或2个字节就是同步字符被写入同步字符寄存器。若有两个同步字符,则会按先后分别写入第一个同步字符寄存器和第二个同步字符寄存器。 ③ 此后,只要不是复位命令,不管是在同步模式还是在异步模式下,由CPU用
奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。 6.24 8251A的模式字格式如何?参照教材上给定格式编写如下模式字:异步方式,1个停
止位,偶校验,7个数据位,波特率因子为16。
答:1.8251A的模式字格式为:(含义见书240页图6.11所示) SSEPELLBB SCESEPELL0 0 P N S D P N 2 1 2 1 2 1 2 1 异步模式字 同步模式字 2.因是异步方式,波特率因子为16:B2B1=10;1个停止位:S2S1=01;偶校验:EP=1,PEN=1;7个数据位:L2L1=10。所以模式字为01111010B=7AH。 6.25 8251A的控制字格式如何?参照教材上列出的格式给出如下控制字:发送允许,接收
允许, DTR端输出低电平,TxD端发送空白字符, RTS端输出低电平,内部不复
位,出错标志复位。
答:1.8251A的控制字格式为:(含义见书241页图6.12所示) EH IR RTS ER SBRK RxE DTR TxEN 17
微型计算机技术及应用习题解答
2.发送允许:TxEN=1,接收允许:RxE=1,DTR端输出低电平:DTR=1,TxD端发送空白字符SBRK=1; RTS端输出低电平:RTS=1,内部不复位:IR=0,出错标志复位ER=1。EH=0/1则控制字为00111111B或10111111B =3FH或0BFH。
6.26 8251A的状态字格式如何?哪几位和引腿信号有关?状态位TxRDY和引腿信号
TxRDY有什么区别?它们在系统设计中有什么用处?
答:1.8251A的状态字格式为:(含义见书242页图6.13所示) DSR SYNDET FE OE PE TxE RxRDY TxRDY 2.DSR、SYNDET、TxE、RxRDY四个状态位与其对应的引腿信号有关。 3.状态位TxRDY只要数据输出缓冲器为空就置1。而引腿TxRDY为1的条件是:
数据输出缓冲器为空、CTS为有效低电平、TxEN为1才可以,缺一不行。 4.能让CPU随时了解当前8251A的工作状态,而执行相应的操作。对查询方式的设计非常方便。
6.27 参考初始化流程,用程序对8251A进行同步模式设置。奇地址端口的地址为66H,
规定用内同步方式,同步字符为2个,用奇校验,7个数据位。
答:模式字为:00011000B=18H。两个同步字符取16H,控制字为97H,它使8251A
对同步字符进行检索;同时使状态寄存器中的3个出错标志复位;使8251A的发送器启动,接收器也启动;CPU当前已准备好进行数据传输。具体程序段如下:
MOV AL,18H ;设置模式字 OUT 66H,AL MOV AL,16H ;发送两个同步字符 OUT 66H,AL OUT 66H,AL MOV AL,97H ;设置控制字 OUT 66H,AL 6.28 设计一个采用异步通信方式输出字符的程序段,规定波特率因子为64,7个数据位,
1个停止位,用偶校验,端口地址为40H、42H,缓冲区首址为2000H:3000H。 答:模式字为:01111011B=7BH。控制字为:00110101B=35H。
MOV AL,0 ;为发复位命令作准备 OUT 42H,AL OUT 42H,AL OUT 42H,AL MOV AL,40H ; 发复位命令 OUT 42H,AL MOV AL,7BH ;设置模式字,异步方式,规定波特率因子为64
;7个数据位,1个停止位,偶校验
OUT 42H,AL MOV AL,35H ;设置控制字,使发送器和接收器启动,并清除
;出错标志
OUT 42H,AL PUSH DS
MOV BX,2000H ;DS:BX指向输出缓冲区首址 MOV DS,BX
MOV BX,3000H ;缓冲区指针初始化 MOV CX,100H ;发送100H个字节
18
微型计算机技术及应用习题解答
BEGIN:
IN TEST JZ MOV OUT INC LOOP POP ┆
AL,42H AL,01H BEGIN AL,[BX] 40H,AL BX BEGIN DS
;读取状态字,测试TxRDY是否为1 ;为0表示外设还未取走字符 ;从输出缓冲区取数 ;发送字符 ;修改缓冲区指针 ;则再发送下一个字符
6.29 并行通信和串行通信各有什么优缺点?
答:并行通信的优点是信息实际传输速度快,信息率高。缺点是需多条通信线。串行
通信的优点是只用1至2条通信线,但信息传输速度较慢。 6.30 在输入过程和输出过程中,并行接口分别起什么作用?
答:简单说,并行接口只起着桥梁和联络的作用。具体如下:
① 输入过程:外设将数据送给接口,并使状态线“输出准备好”成为高电平。
接口把数据接收到数据输入缓冲寄存器的同时,使“数据输入回答”线变为高电平,作为对外设的响应。外设接到此信号,便撤消数据和“数据输入准备好”信号。数据到达接口后,接口便在状态寄存器中设置“输入准备好”状态位,并发中断请求,CPU可用查询方式或中断方式来设法读取接口中的数据。CPU读取数据后,接口会自动清除状态寄存器中的“输入准备好”位,并使数据总线处于高组状态。此后又可以开始下一个输入过程。
② 输出过程:当外设从接口取走一个数据后,接口就会将状态寄存器中的“输
出准备好”状态位置1,并发中断请求,以表示CPU当前可以通过查询方式或中断方式往接口中输出数据。当CPU输出的数据到达接口的输出缓冲器中后,接口会自动清除“输出准备好”状态位,并将数据送往外设,同时,接口往外设发送一个“驱动信号”来启动外设接收数据。外设被启动后,开始接收数据,并往接口发一个“数据输出回答”信号。接口收到此信号,便将状态寄存器中的“输出准备好”状态位重新置1,以便CPU输出下一个数据。 6.31 8255A的三个端口在使用时有什么差别?
答:端口A和端口B常常作为独立的输入端口或者输出端口,端口C则配合端口A
和端口B工作。 6.32 当数据从8255A的端口C往数据总线上读出时,8255A的几个控制信号CS、A1、
A0、RD、WR分别是什么电平?
答:CS=0、A1=1、A0=0、RD=0、WR=1。“0”为低电平,“1”为高电平。 6.33 8255A的方式选择控制字和置1/置0控制字都是写入控制端口的,那么,它们是由什么来区分的?
答:由最高位D7位来区分。D7=1时为方式选择控制字,D7=0时为端口C置1/置0
控制字。 6.34 8255A有哪几种工作方式?对这些工作方式有什么规定?
答:1.8255A有三种工作方式:方式0、方式1、方式2。
2.端口A可以工作于方式0、方式1、方式2;端口B可以工作于方式0、方式1;端口C只能工作于方式0或者配合端口A和端口B工作。 6.35 对8255A设置工作方式,8255A的控制口地址为00C6H。要求端口A工作在方式1,
19
微型计算机技术及应用习题解答
输入;端口B工作在方式0,输出;端口C的高4位配合端口A工作;低4位为输入。 答: MOV DX,00C6H
MOV AL,0B1H ;取方式选择控制字为B1H(10110001B)或B9H OUT DX,AL 6.36 设8255A的4个端口地址为00C0H,00C2H,00C4H,00C6H,要求用置1/置0方
式对PC6置1,对PC4置0。 答: MOV DX,00C6H
MOV AL,0DH ;对PC6置1的控制字为0DH OUT DX,AL MOV AL,08H ;对PC4置0的控制字为08H OUT DX,AL 6.37 8255A在方式0时,如进行读操作,CPU和8255A分别要发什么信号?对这些信号
有什么要求?据此画出8255A方式0的输入时序。
答:1.CPU要发RD、CS、A2、A1四个信号,8255A要发数据信号D7~D0。
2.对信号的要求如下: ① CPU在发出读信号前,先发出地址信号。且在整个读出期间,地址信号保
持有效。 ② 输入数据必须保持到读信号结束后才消失。 ③ 要求读脉冲的宽度至少为300ns。
3.8255A方式0的输入时序见书256页图6.24所示。 6.38 8255A在方式0时,如进行写操作,CPU和8255A分别要发什么信号?画出这些信
号之间的时序关系。
答:1.CPU要发WR、CS、A2、A1控制和地址信号及D7~D0数据信号,8255A输
出数据到外设。
2.8255A方式0的输出时序见书257页图6.25所示。 6.39 8255A的方式0一般使用在什么场合?在方式0时,如要使用应答信号进行联络,应
该怎么办?
答:1.方式0一般使用在同步传送和查询式传送中。
2.将端口A和端口B作为数据端口,把端口C的4个数位规定为输出口,用来输出一些控制信号,而把端口C的另外4位规定为输入口,用来读入外设的状态。 6.40 8255A的方式1有什么特点?参考教材中的说明,用控制字设定8255A的A口工作
于方式1,并作为输入口;B口工作于方式1,并作为输出口,用文字说明各个控制信号和时序关系。假定8255A的端口地址为00C0H,00C2H,00C4H,00C6H 答:1.方式1有如下特点:
① 端口A和端口B可分别作为两个数据口工作于方式1,并且任何一个端口
可作为输入或输出口。 ② 若只有一个端口工作于方式1,则端口C有三位被规定配合其工作,其余
共13位可工作于方式0。 ③ 若两个端口都工作于方式1,则端口C有6位被规定配合其工作,端口C
所剩2位仍可作为输入或输出。 2.控制字为10110100B=B4H。
MOV DX,00C6H MOV AL,0B4H ;取方式选择控制字为B4H(10110100B) OUT DX,AL
20
微型计算机技术及应用习题解答
3.方式1输入口A口的各个控制信号和时序关系如下:
STBA接着就到,① 当外设来的输入数据出现之后,其宽度至少要求为500ns。
② 过tSTB时间后,IBFA有效,它可供CPU查询,为CPU工作于查询方式提
供了条件。
③ STBA结束后,过tSIT时间,便会发出INTRA,为CPU工作于中断方式输
入数据提供了条件。 ④ 当CPU发出的RD有效后,过tRIT时间,INTRA被清除。在RD结束之后,
数据已经读到CPU的寄存器中,经过tRIB时间,IBFA变低,从而可开始下一个数据输入过程。
4.方式1输出口B口的各个控制信号和时序关系如下: ① 方式1的输出端口一般用于中断方式与CPU相联系。CPU响应中断后,
便往8255A输出数据,并发出WR。WR的上升沿一方面清除中断请求信号INTRB,表示CPU响应了中断;另一方面,使OBFB有效,通知外设接
收数据。
② 在CPU发出WR后的tWB时间后,数据就出现在端口的输出缓冲器中。当
外设接收数据后,发一个ACKB信号。一方面使OBFB无效,表示数据已经
取走,当前输出缓冲区为空;另一方面,又使INTRB有效,申请中断,从而可以开始一个新的输出过程。
6.41 8255A的方式2用在什么场合?说明端口A工作于方式2时各信号之间的时序关系。
答:1.方式2应用于分时工作的双向外设(输入输出设备)的连接。
2.端口A工作于方式2时各信号之间的时序关系如下: ① 对于方式2的输出过程:CPU响应中断,并往8255A输出一个数据,并使
WR有效。WR一方面清除INTRA信号,另一方面使OBFA有效。外设收
到OBFA后,发出ACKA信号,使8255A的输出锁存器打开,从而数据便出现在8255A与外设之间的数据连线上。ACKA信号也使OBFA信号无效,
从而可开始下一个数据传输过程(输入或输出)。
② 对于方式2的输入过程:当外设往8255A送来数据时,STBA也一起来到,
使数据锁存到8255A的输入锁存器中,从而使IBFA有效。在STBA结束时,便发出INTRA请求。在CPU响应中断进行读操作时,会使RD有效将数据
从8255A读到CPU中,于是IBFA又变为无效,INTRA也被清除
21