《微机原理与接口技术(楼顺天第二版)第十章习题解答(共9页).doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术(楼顺天第二版)第十章习题解答(共9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上微机原理与接口技术(楼顺天第二版)习题解答第10章 并行接口芯片8255A应用设计10.1答:方式0是基本的输入/输出,端口A、B、C都可以作为输入输出端口。适用于CPU与非智能I/O设备的数据传输;方式1是有联络信号的输入/输出,端口A、B都可以设定成该方式,此时三个端口的信号线分成了A、B两组,用作A组的联络信号,用作B组的联络信号。适用于高速CPU与低速I/O设备的数据传输;方式2是双向传输,只有A组端口可以设定成该方式,PC6PC7用作输出的联络信号,PC4PC5用作输入的联络信号,PC3用作中断请求信号。适用于双机之间数据的并行传送。10.2 答:(1)PC
2、6PC7用作输出的联络信号,PC4PC5用作输入的联络信号,PC3用作中断请求信号,PC0PC2用作基本I/O。(2)PC4PC5用作输入的联络信号,PC3用作中断请求信号,PC1PC2用作输入的联络信号,PC0用作中断请求信号。PC6PC7用作基本I/O。(3)PC6PC7用作输出的联络信号,PC4PC5用作输入的联络信号,PC3用作中断请求信号,PC1PC2用作输入的联络信号,PC0用作中断请求信号。(4):由外设(输入设备)提供的选题脉冲,表示将外设送来的数据锁存到端口寄存器;IBF:是8255A向外设信号的响应,表示端口寄存器已经收到数据,但尚未被CPU取走(CPU通过读命令从端口寄存
3、器取走数据后,IBF自动变为0);:由8255A向外设(输出设备)发出的数据准备好信号,表示CPU已经将数据写入端口寄存器;:外设向8255A发回的响应,其有效表示外设已经将数据从端口寄存器取走,该信号使得8255A的变高,CPU可以再一次向8255A发送数据;INTE:是8255A内的中断允许触发器,可以通过对C口的PC6,PC4,PC2通过按位置位/复位命令字设定;INTR:是8255A进行选通输入输出时的中断请求信号,A口的选通输入输出用PC3,B口的选通输入输出用PC0。10.3 答:8255A工作在方式1输入或输出时,中断请求信号从C口的PC3引出;输入中断由INTEA(PC4通过按
4、位置位/复位命令字设定)和IBF相与产生,输出中断由INTEA(PC6通过按位置位/复位命令字设定)和相与产生;中断屏蔽由PC6,PC4通过按位置位/复位命令字设定。10.4 答:1,1,110.5 答:A口+ PC3PC7;B口+ PC0PC2。10.6 答:110.7 答:010.8 答:PC3PC710.9 答:1310.10 答:中断允许触发器, PC6,PC410.11 答:(1)D(2)A,D(3)D(4)D(5)A(6)A(7)B10.12 答:MOV DX,303HMOV AL,BOUT DX,ALMOV DX,302HIN AL,DXMOV CL,4SHL AL,CLOUT
5、DX,AL10.13 答:(1)根据题目给出的端口地址,在8086最小方式系统下,8255A与K15K0以及4个发光二极管的连接图如下所示。(2)编写程序段实现连续检测并显示开关量中“1”的个数。开关量中“1”的个数以二进制形式显示。MOV DX,8F07HMOV AL,B ;端口A、B方式0输入,端口C方式0输出OUT DX,ALNEXT:MOV DX,8F03H ;从端口B读取高8位开关量IN AL,DXXCHG AL,AHMOV DX,8F01H ;从端口A读取低8位开关量IN AL,DXMOV BX,AXXOR AL,ALMOV CX,16CLCL2:SHL BX,1JNC L1INC
6、 ALL1:LOOP L2MOV DX,8F05H ;从端口C送出OUT DX,ALJMP NEXT ;进行下一次检测10.14 答:8255A与IBM PC机总线的连接框图如下:可将8255A的端口A作为要产生的信号的输出端口,设定为方式0输出,端口B和端口C不做使用,均设定为方式0输出。程序段如下: MOV DX,263H ;设定8255A的工作方式 MOV AL,B OUT DX,AL MOV DX,260H ;产生指定信号 XOR AL,AL OUT DX,ALREP: MOV AL,80H MOV CX,7REP1: OUT DX,AL SAR AL,1 LOOP REP1 MOV
7、CX,8REP2: SHL AL,1 OUT DX,AL LOOP REP2 JMP REP10.15 答:由于开关量是16为数据,故可以将8255A的PA端口与PB端口设定为方式0,分别读取开关量的低八位和高八位,以PC端口的低三位控制八选一电路的输出依次从X0到X7,使用PC端口的高四位输出最大开关量的序号(该序号为18),控制发光二极管的亮灭以指示序号。连接图如下:(下面电路中,当八选一输出Y有效时,能选通1组16位开关量数据)程序段如下: MOV DX,263H MOV AL,B ;设定工作方式,PA,PB均工作于方式0,PA、PB为;输入,PC为输出 OUT DX,AL MOV CX
8、,8 XOR BX,BX MOV SI,0 ;SI表示输入开关量的序号ST1: MOV DX,262H MOV AL,SI OUT DX,AL MOV DX,260H ;将开关量数据的低八位读入AL IN AL,DX MOV AH,AL MOV DX,261H ;将开关量数据的高八位读入AL IN AL,DX XCHG AH,AL CMP BX,AX JA NEXT MOV BX,AX ;将当前最大值保存在BX中 MOV DI, SI ;将当前最大值的序号保存到DI中NEXT: INC SI LOOP ST1 MOV AX, DI MOV CL,4 ROL AL,CL ;将最大值的序号(4位)
9、移至AL的高四位 MOV DX,262H OUT DX,AL ;PC的高四位输出最大值序号10.16 答:根据题图,8255A的端口地址为3F0H3F6H中的4个偶地址端口。中断向量表设置和8255A初始化程序段如下:;设置A口的中断向量 PUSH DS MOV AX,0 MOV DS,AX MOV SI,4AH SHL SI,1 SHL SI,1 MOV SI,OFFSET SERV ;中断服务程序偏移地址存入向量表 ADD SI,2 MOV AX,CS MOV SI,AX ;中断服务程序的段地址存入向量表 POP DS ;设置8255A的工作方式 MOV DX,3F6H MOV AL,B
10、;A口方式1,输入;B口方式0,输出;C口输入 OUT DX,AL;设置INTEA=1 MOV AL,B ;PC4置位 OUT DX,AL 10.17 答:根据题图,8255A的端口地址为180H187H。PC0输出,PC5和PC6输入。A口输出,所以A口方式0,输出;B口方式0,输出;C口高半部输入,C口低半部输出。方式命令字为B。程序段为:;设置8255A的工作方式 MOV DX,186H ;控制字口地址送DX MOV AL,B ;A口方式0,输出;B口方式0,输出; ;C口高半部输入,C口低半部输出 OUT DX,AL;查询C口PC5、PC6 MOV DX,184H ;C口地址送DXCH
11、ECK:IN AL,DX TEST AL,B JNZ CHECK;输出CHAR变量数据,数据送到8255A的A端口寄存器 MOV AL,CHAR ;输出数据送AL MOV DX,180H ;A口地址送DX OUT DX,AL ;向打印机发选通信号,一个低电平的脉冲,先置位PC0,再复位PC0;然后延时,再置位PC0 MOV DX,186H MOV AL,B OUT DX,AL ;置位PC0 MOV AL,B OUT DX,AL ;复位PC0 CALL DELAY ;延时 MOV AL,B OUT DX,AL ;置位PC0 HLT DELAY: MOV CX,0FFFHDELAY1: NOP L
12、OOP DELAY1 RET10.18 答:根据题图,8255A的端口地址为38H3EH中的偶地址。A口方式0输出,B口方式0输入,C口低半部输入,高半部输出。程序段为:;设置8255A的工作方式 MOV DX,03EH ;控制字口地址送DX MOV AL,B ;A口方式0,输出;B口方式0,输入; ;C口高半部输出,C口低半部输入 OUT DX,AL MOV CX,100 ;启动输入机,通过置位/复位实现一个高电平脉冲 SETSTART: MOV DX,03EH MOV AL,B OUT DX,AL ;复位PC6 MOV AL,B OUT DX,AL ;置位PC6 CALL DELAY ;延
13、时 MOV AL,B OUT DX,AL ;复位PC6 ;查询C口PC1 MOV DX,03CH ;C口地址送DXCHECK:IN AL,DX TEST AL,B JZ CHECK ;输入数据 MOV DX,03AH ;B口地址送DX IN AL,DX MOV CHARS,AL ;将输入字符存入CHARS变量中;查询C口PC0 MOV DX,03CH ;C口地址送DXCHECK1:IN AL,DX TEST AL,B JZ CHECK1 ;输出CHAR变量数据,数据送到8255A的A端口寄存器 MOV AL,CHARS ;输出数据送AL MOV DX,038H ;A口地址送DX OUT DX,
14、AL ;向打印机发选通信号,一个低电平的脉冲,先置位PC0,再复位PC0;然后延时,再置位PC0 MOV DX,03EH MOV AL,B OUT DX,AL ;复位PC7 MOV AL,B OUT DX,AL ;置位PC7 CALL DELAY ;延时 MOV AL,B OUT DX,AL ;复位PC7 LOOP SETSTART HLT DELAY: PUSH CX MOV CX,0FFFHDELAY1: NOP LOOP DELAY1 POP CX RET10.19 答:根据题图,8255A的一组端口地址为8000H8006H,8259A的一组端口地址为8020H和8022H。8255A
15、的B口工作在方式1,输出。中断向量为97H。 程序段为:;设置B口的中断向量 PUSH DS MOV AX,0 MOV DS,AX MOV SI,97H SHL SI,1 SHL SI,1 MOV SI,OFFSET INT_SERVICE ;中断服务程序偏移地址存入向量表 ADD SI,2 MOV AX,CS MOV SI,AX ;中断服务程序的段地址存入向量表 POP DS ;设置8255A的工作方式 MOV DX,8006H MOV AL,B ;A口方式0,输出;B口方式1,输出;C口输出 OUT DX,AL;设置INTEA=1 MOV AL,B ;PC2置位 OUT DX,AL ;82
16、59A初始化程序段 MOV DX,8020H ;8259A的偶地址端口 MOV AL,B ;电平触发、单片、要ICW4 OUT DX,AL ;写ICW1 MOV DX,8022H MOV AL,90H OUT DX,AL ;写ICW2 MOV AL,B ;一般全嵌套、非缓冲、自动中断结束 OUT DX,AL ;向8255A的B口输出一个字符 MOV BX,OFFSET DISPCHAR MOV DX,8002H MOV AL,BX OUT DX,AL JMP $ ;中断服务程序INT_SERVICE: STI ;开中断 INC BX ;下面程序段检查200个字符输出完否 MOV SI,OFFS
17、ET DISPCHAR ADD SI,200 CMP BX,SI JB OUTPUT MOV DX,8022H ;送9259A的基地址给DX MOV AL,B OUT DX,AL ;屏蔽IR7 JMP OVEROUTPUT: MOV AL,BX ;获取打印数据 MOV DX,802H ;B口地址送DX OUT DX,ALOVER: IRET 10.20 答:(1)电路图如下:(2)8255A的初始化程序;设置8255A的工作方式 MOV DX,0FF03H MOV AL,B ;A口方式1,输出;B口方式0,输出;C口输出 OUT DX,AL;设置INTEA=1 MOV AL,B ;PC6置位O
18、UT DX,AL (3)8259A初始化程序;8259A初始化程序段 MOV DX,0FF0CH ;8259A的偶地址端口 MOV AL,B ;边沿触发、单片、要ICW4 OUT DX,AL ;写ICW1 MOV DX,0FF0DH MOV AL,80H OUT DX,AL ;写ICW2 MOV AL,B ;一般全嵌套、非缓冲、自动中断结束OUT DX,AL(4);设置B口的中断向量 PUSH DS MOV AX,0 MOV DS,AX MOV SI,83H SHL SI,1 SHL SI,1 MOV SI,OFFSET PRINT ;中断服务程序偏移地址存入向量表 ADD SI,2 MOV AX,CS MOV SI,AX ;中断服务程序的段地址存入向量表POP DS中断服务程序;中断服务程序INT_SERVICE: STI ;开中断 INC BX ;下面程序段检查200个字符输出完否 MOV SI,OFFSET BUF ADD SI,100 CMP BX,SI JB OUTPUT MOV DX,0FF0DH ;送8259A的奇地址给DX MOV AL,B OUT DX,AL ;屏蔽IR3 JMP OVEROUTPUT: MOV AL,BX ;获取打印数据 MOV DX,0FF00H ;8255A的A口地址送DX OUT DX,ALOVER: IRET 专心-专注-专业