您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 微计算机原理(第2版)第八章课后习题答案潘名莲马争丁庆生编著
第八章可编程通用接口芯片8-1微计算机系统中为什么要使用接口?解:通过I/O接口可以实现外设与CPU之间的时序匹配、数据格式转换、电平转换等功能。8-2有几种类型的接口?它们具有哪些特点?解:从使用范围上说,I/O接口可分为专用接口和可编程通用接口两大类。前者针对某类外设的特性而专门设计的,后者则由用户通过程序设置其工作方式,可实现不同外设所要求的接口功能。8-3何谓并行接口,何谓串行接口?它们有什么作用?解:并行接口可以实现CPU与外设之间数据的并行传输,即可在多根数据线上同时传输多位数据;串行接口实现CPU与外设之间数据的串行传输,两个传输方向各只有1根数据线,每次只能传1位数据,多位数据需要分时顺序传送。8-4简述8255A的作用与特性。解:8255A是可编程通用并行接口芯片,可通过程序设置其工作在方式0、方式1和方式2。方式0为基本的输入/输出方式,可提供A口、B口两个8位并行通道和C口高4位、C口低4位两个4位并行通道,可分别设置4个通道工作在输入或输出状态。方式1为选通输入/输出方式,A、B两个8位口工作在输入或输出状态,而C口的特定位则提供A口、B口数据传输所需的控制和状态信息。方式2为双向数据传输方式,只适用于A口,通过A口可实现CPU与外设间的双向数据传输。C口提供双向数据传输所需的控制和状态信号。8-5试画出8255A与8086CPU的连接图,并说明8255A的A0,A1地址线与8086CPU的A1、A2地址线连接的原因。解:(1)两个芯片是数据线分别对应连接,8086的A3~A9经译码器后连到8255的CS脚,8086的A2、A1分别连到8255A的A1、A0脚,然后/WR、/DR分别对应连接即可。(2)原因:由于8086CPU可在一个传数周期内传8位或传16位,当传低8位数据D0~D7时,8086CPU的A0h必为低。而8255的地址线A0、A1表示4个有效地址时,A0有时应为高。为保证数据线的D0~D7传数,8086CPU在A0必为低的条件下,将8086CPU的A1、A2与8255的A0、A1相连,保证了数据的正确传送。8-68255A有哪些工作方式?简述各种方式的特点和基本功能。解:(1)8255A有三种工作方式,即基本输入/输出方式0,选通输入/输出方式1、双向数据传送方式2.(2)基本输入/输出方式0的特点和基本功能:特点:无联络信号要求。功能:两个8位并行通道,A通道,B通道。两个4位并行通道,C通道高4位,C通道低4位。各通道可为输入通道或输出通道。为输入通道时,无锁存功能。为输出通道时,有锁存功能。(3)选通输入/输出方式1的特点和基本功能。特点:要用联络信号,有中断输出。A、B、C通道分为两组使用,C通道作为联络信号及中断输出用。功能:A口、B口可作输入或输出。输入/输出时均有锁存功能,可工作于查询方式及中断方式。(4)双向数据传送方式2的特点和基本功能。特点:外设与CPU间数据可经8255A的A通道双向传送。功能:仅A通道可工作在方式2.用于需双向数据传送的外设,如磁盘驱动器,可工作于查询方式和中断方式。8-7简述8255A工作在方式1时,A组端口和B组端口工作在不同状态(输入或输出)时,C端口各位的作用。解:(1)A组端口工作方式1,输入。PC4(STBA)为选通输入,低电平有效。PC5(IBFA)为输入缓冲区满状态信号,高电平有效。PC3(INTRA)为中断请求输出信号,在PC4置1后,若PC5=H,则产生高电平中断请求输出。(2)B组端口工作于方式1,输入。PC2(STBB)作用同ATBAPC1(IBFB)作用同IBFAPC0(INTRB)作用同INTRA,不同点为PC2置1.若A口、B口均作为方式1输入,则PC6,PC7可单独用于输入或输出。(3)A组端口工作在方式1,输出。PC7(OBFA)为输出缓冲区满输出信号端,低电平有效。PC6(ACKA)为外设收到数据后的响应输入端,低电平有效。PC3(INTRA)为中断请求输出,条件是PC6置1,PC7=H,即当输出缓冲区空时,产生高电平中断请求。(4)B组端口工作于方式1,输出PC1(ACKB)作用同(ACKA)PC1(OBFB)作用同(OBFA)PC0(INTRB)作用同INTRA不同点为PC2置1.若A口、B口均工作在方式1输出,则PC4,PC5可单独用于输入或者输出。8-8用8255A控制12位A/D转换器。电路连接示意图如教材P349图8-53所示。设B口工作于方式1(输入),C口上半部输入,A口工作于方式0(输入)。试编写8255A的初始化程序段和中断服务程序(注:CPU采用中断方式从8255A中读取转换了的数据)。解:(1)方式控制字:定义为9FH:定义为05H1001111x0xxx0101(2)初始化程序段(8255A端口地址为60H~63H)MOVAL,9FHOUT63H,AL;写8255A方式控制字MOVAL,05HOUT63H,AL;写8255A置位/复位控制字PC2=1MOVAL,00000011BOUT63H,AL;置PC1=H,启动转换STI;开中断,IF=1HLT;当数据有效信号给PC2,将在PC0产生中断请求,送8255A,再送至8086CPU的INTR引脚,产生中断请求CLI;关中断,IF=0∶∶(3)中断服务程序ADINTPROCFARPUSHAXINAL,62H;A/D数据高4位经PC4~PC5读入MOVAH,AL;A/D高4位放AH寄存器INAL,61H;A/D数据低8为经B通道读入MOVBUFF,AX;12位A/D数据存入存储器单元BUFF∶∶POPAXIRETADINTENDP8-9使用8255A作为CPU与打印机接口。A口工作于方式0(输出),C口工作于方式0。8255A与打印机和CPU的连线如教材349页图8-54所示。试编写一程序,用查询方式将100个数据送打印机输出(8255A的端口地址及100个数据的存放地址自行设定)。解:(1)工作原理①CPU置8255A的PC6=L时,向打印机发要求打印命令。②若打印机空,则向PC0发高电平响应信号。③若CPU查询到8255A的PC0=H,则经A口向打印机发打印数据。(2)8255A控制字:定义为81H注:A口方式0输入、B口未用,PC4~PC7为输入。(3)8255A端口地址,定义为300H~303H。(4)编程DATASEGMENTBUFFDB100DUP(?)10000xx1DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARTPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVBX,OFFSETBUFFMOVCX,100MOVAL,81HMOVDX,303HOUTDX,ALGAG:MOVAL,OCHOUTDX,ALMOVDX,302HPOLL:INAL,DXTESTAL,[BX]JZPOLLMOVAL,[BX]MOVDX,300HOUTDX,ALINCBXDECCXJNZGAGRETSTARTENDPCODEENDSENDSTART8-108251和调制解调器的连接如图教材349页图8-55所示。已知控制字端口地址为68H。试编写下列程序段。①异步方式下的初始化程序段:设定字符7位、1个偶校验位、2个停止位、波特率因子16,启动接收和发送器。②同步方式下的初始化程序段,设定双同步字符(字符自行设定),内同步方式,字符7位、偶校验、启动接收集合发送器。解:(1)异步方式控制字=FAH异步方式控制字=27H(2)同步方式控制字1111101000100111=38H同步方式控制字=A7H(3)异步方式下的初始化程序MOVAL,0FAHOUT68H,ALMOVAL,27HOUT68H,AL(4)同步方式下的初始化程序MOVAL,38HOUT68H,ALMOVAL,0A7HOUT68H,AL8-11在上题①条件下采用状态查询方式,输入100个数给CPU,放在首地址符号为Buffer的内存缓冲区中(每输入一个字符需检测错误信息标志,出错时转入出错程序处理)。解:DATASEGMENTBufferDB100DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,68HMOVAL,0CALLCHAROUTCALLCHAROUTCALLCHAROUTMOVAL,40H;复位8251ACALLCHAROUTMOVLA,0FAH;写方式字CALLCHAROUTMOVAL,27H;写命令字CALLCHAROUTLEABX,Buffer;BX指向BufferMOVCX,100;收100个字符CHECKRX:INAL,68H;检查串口是否收到数据0011100000111000TESTAL,02HJZCHECKRXTESTAL,38H;检测数据接收是否出错JNZERRORINAL,60H;读取串口数据MOV[BX],ALINCBXLOOPCHECKRXJMPEXITERROR:MOVAL,7MOVBX,0MOVAH,14INT10H;扬声器响一下,表示数据接收出错JMPCHECKRXCHAROUT:OUTDX,ALMOVCX,10LOOP$RETEXIT:MOVAH,4CHINT21HCODEENDSENDSTART8-12采用中断方式完成上题要求。解:本解中CPU以中断方式读取8251A串行接收到的数据。可以将8251A的RxRDY管脚接到PC机8259A的IRQ2中断输入端,该输入端对应的中断类型号为0AH。DATASEGMENTBufferDB100DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXCLIMOVAX,0;将8251A中断向量写入中断向量表MOVES,AXMOVDI,0AH*4MOVAX,OFFSETRECEIVECLDSTOSWMOVAX,CSSTOSWMOVDX,68HMOVAL,0CALLCHAROUTCALLCHAROUTCALLCHAROUTMOVAL,40H;复位8251ACALLCHAROUTMOVAL,0FAH;写方式字CALLCHAROUTMOVAL,27H;写命令CALLCHAROUTLEABX,Buffer;BX指向BufferMOVCX,100;收100个字符MOVAL,00101000B;设8259的IMR为允许8251A中断(即开放IRQ2)OUT21H,ALSTI;开总中断JMP$RECEIVEPROCNEARPUSHAXPUSHBXPUSHDXTESTAL,38H;检查数据接收是否出错JNZERRORINAL,60H;读取串口数据MOV[BX],ALINCBXLOOPISREXITMOVAH,4CH;已收够100个字节,返回DOSINT21HERROR:MOVAL,7MOVBX,0MOVAH,14INT10H;扬声器响一下,表示数据接收出错ISREXIT:MOVAL,20H;向8259发中断结束命令OUT20H,ALPOPDXPOPBXPOPAXSTI;开总中断IRETRECEIVEENDPCHAROUT:OUTDX,ALMOVCX,10LOOP$RETCODEENDSENDSTART8-13已知条件如教材P326[例8.4]。试编写一程序,以中断方式完成例中的要求。本例中使PC机COM1工作在自循环工作方式,有键按下就通过串口发送键码(按Esc键退出),串口收到数据显示到屏幕上。串行数据的接收采用中断方式,而发送采用查询方式。CODESEGMENTASSUMECS:CODESTRAT:CLIMOVAX,0;将COM1中断向量写入中断向量表MOVES,AXMOVDIM,0CH*4MOVAX,OFFSETRECEIVECLDSTOSWMOVAX,CSSTOSWMOVDX,3FBH;8250初始化MOVAL,80H;使LCRDLAB位(D7)为1OU
本文标题:微计算机原理(第2版)第八章课后习题答案潘名莲马争丁庆生编著
链接地址:https://www.777doc.com/doc-2471484 .html