电子科大复试指定教材课后习题答案9

发布时间 : 星期三 文章电子科大复试指定教材课后习题答案9更新完毕开始阅读

微机系统原理与接口技术”第九章习题解答(部分)

1. 什么是并行接口和串行接口?它们各有什么作用?

答:并行接口是指接口与外设之间按字长传送数据的接口,即4位、8位或16位二进制位同时传送;而串行接口是指接口与外设之间依时间先后逐位传送数据的接口,即一个时刻只传送一个二进制位。

并行接口传送速度较快,但在远距离传送数据时成本高,损耗大,且平行数据线之间干扰大,所以并行接口一般适用于近距离的高速传送,而串行接口则适用于远距离传送。

2. 试画出8255A与8086CPU连接图,并说明8255A的A0、A1地址线与8086CPU的A1、A2地址线连接的原因。

答:8255A与8086CPU的连线图如下图所示:

7-0 DD7-0 数据缓冲 A1 A0 DEN A2 8 A1 DT/R 2 8 AB/DB A- 地址锁存 A19-3 地址译码 CS 1915 0 ALE 5 8 M/IO A 6 WR WR RD RD

题9-2图

8086系统有16根数据线,而8255只有8根数据线,为了软件读写方便,一般将8255的8条数据线与8086的低8位数据线相连。8086在进行数据传送时总是将总线低8位对应偶地址端口,因此8086CPU要求8255的4个端口地址必须为偶地址,即8086在寻址8255时A0脚必须为低。实际使用时,我们总是将8255的A0、A1脚分别接8086的A1、A2脚,而将8086的A0脚空出不接,并使8086访问8255时总是使用偶地址。

4. 简述8255A工作在方式1时,A组端口和B组端口工作在不同状态(输入或输出)时,C端口各位的作用。

答:8255A 的A、B口工作在方式1时, C端口各位的使用情况如下表所示: 端口A、B口均输A口输入,B口输A口输出,B口输A、B口均输出 C 入 出 入 I/O PC7 I/O OBFA OBFA PC6 I/O I/O ACKA /INTEA* ACKA /INTEA* PC5 IBFA IBFA I/O I/O PC4 I/O I/O STBA /INTEA* STBA /INTEA* PC3 INTRA INTRA INTRA INTRA PC2 STBB /INTEB* ACKB /INTEB* ACKB /INTEB* STBB /INTEB* OBFB

OBFB

PC1 PC0 IBFB INTRB INTRB IBFB INTRB INTRB 注:带*的各中断允许信号由C口内部置位/复位操作设置,非引脚电平。

5. 用8255A控制12位A/D转换器,电路连接如下图所示。设B口工作于方式1输入,C口上半部输入,A口工作于方式0输入。试编写8255A的初始化程序段和中断服务程序(注:CPU采用中断方式从8255A中读取转换后的数据)。

题9-5图

答:设8255的A、B、C及控制端口的地址分别为PORTA、POATB、PORTC和PCON,则一种可能的程序段实现如下:

主程序: ; 初始化8255A …… MOV AL, 10011110B ; 设置8255A的工作方式控制字 OUT PCON, AL MOV AL, 00000101B ; 设置C口置位/复位控制字,使INTEA(PC2)为 OUT PCON, AL ; 高电平,允许B口中断 MOV AL, 00000010B ; 设置C口置位/复位控制字,使PC1(IBFB)输出 OUT PCON, AL ; 低电平,启动第一次A/D转换 ……

中断服务程序: ; 取数,并自动启动下一次A/D转换 …… MOV AL, 00000011B ; PC1(IBFB)输出高电平,停止A/D转换 OUT PCON, AL IN AL, PORTC ; 先取高4位转换值 MOV AH, AL MOV CL, 4 SHR AH, CL ; 将高4位转换值放到AH的低端 IN AL, PORTB ; 取低8位转换值放到AL中 MOV AL, 00000010B ; PC1(IBFB)输出低电平,再次启动A/D转换 OUT PCON, AL ……

IRET

6. 用8255A作为CPU与打印机接口,8255的A口工作于方式0,输出;C口工作于方式0。8255A与打印机及CPU的连线如下图所示。试编写一程序,用查询方式将100个数据送打印机打印(8255A的端口地址及100个数据的存放地址自行设定)。

题9-6图

答:设8255的A、B、C及控制端口的地址分别为PORTA、POATB、PORTC和PCON,而需打印的数据放在数据段中以DATA1开头的区域,则一种可能的程序段实现如下:

…… MOV AL, 10000001B ; 设置8255A的工作方式控制字 OUT PCON, AL MOV CX, 100 ; 设置需打印数据的总个数以控制循环次数 LEA SI, DATA1 NEXT: MOV AL, [SI] ; 从数据段取数据并通过A口发到打印机 OUT PORTA, AL MOV AL, 00001100B ; 设置C口置位/复位控制字,使PC6为低电平, OUT PCON, AL ; 通知打印机锁存数据并打印 INC SI ; 为取下个数据作准备 DEC CX JZ ERROR ; 判断是否传完100个数据,如是,转后续处理

AGAIN: IN AL, PORTC ; 如未传完100个数据,读状态端口 TEST AL, 01H ; 查询PC0(BUSY)是否为高电平 JNZ AGAIN ; 如是,继续查询,直到BUSY变低 JMP NEXT ; BUSY为低电平,则转NEXT发送下一个数据

ERROR: ……

10.已知8250的主参考时钟频率为1.8432MHz,其RCLK与BAUDOUT相连,端口地址为0330H起,要求其工作在半双工通信,每帧7位数据、偶校验、1位停止位,波特率为9600波特,编写初始化程序。

答:由一种可能的程序段实现如下:

……

MOV DX, 333H ; 令传输线控制器寄存器Bit7=1

以设置波特率 MOV AL, 80H OUT DX, AL MOV DX, 330H ; 波特率=9600,设置除数寄存器=000CH MOV AL, 0CH OUT DX, AL MOV DX, 331H MOV AL, 0H OUT DX, AL MOV DX, 333H ; 设置工作方式:偶校验,7位数据位,一位停止位 MOV AL, 00011010B OUT DX, AL

DTR发 RTS和 MOV DX, 334H ; 设置Modem控制器:允许中断, MOV AL, 0BH OUT DX, AL MOV DX, 331H ; 开放接收数据就绪、接收字符错和发送缓冲器空中断 MOV AL, 07H OUT DX, AL STI ……

12. 试编写两台IBM PC机之间的通信程序。条件同6题,连接如下图。

题9-12图

答:从连接图中可以看出,两台PC机之间没有任何联络信号的连接,题目又只给出数据传送的格式,为了使两台PC机能正确通信,应事先约定其他一些通信规则(注意,这里的规则不一定遵循标准协议,只是具体应用时根据通信双方的特殊情况定义的简单规则,通信双方都遵守就行了)。

假设系统不停地发送已准备好的一批数据,并要求发送的每一个数据都必须被正确接收,即:发送方必须在得知上一个数据已正确达到后,才发送下一个数据;若接收出错,接收方将通知发送方重发;发送方在发完所有数据后通知接收方结束这次通信。因为没有现成的硬件挂钩信号,故采用软件挂钩:首先找到或构造两个不会被解释为数据的特殊字符做为挂钩用的联络字符,如‘,’表示已准备好接收下一个字符,‘;’表示接收出错,而‘。’表示发送结束。发送方在发出一个数据后根据接收方返回的信息确定下一步处理,接收方在接到数据后先判断是否结束此次通信。

联系合同范文客服:xxxxx#qq.com(#替换为@)