《2022年微机原理与接口技术第十章习题解答 .pdf》由会员分享,可在线阅读,更多相关《2022年微机原理与接口技术第十章习题解答 .pdf(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 两组,74PCPC用作 A组的联络信号,30PCPC用作 B 组的联络信号。适用于高速CPU与低速 I/O 设备的数据传输;方式 2 是双向传输,只有A组端口可以设定成该方式,PC6PC7用作输出的联络信号,PC4PC5用作输入的联络信号,PC3用作中断请求信号。适用于双机之间
2、数据的并行传送。10.2 答: (1)PC6PC7用作输出的联络信号,PC4PC5用作输入的联络信号,PC3用作中断请求信号, PC0PC2用作基本I/O。(2)PC4PC5用作输入的联络信号,PC3用作中断请求信号,PC1PC2用作输入的联络信号,PC0用作中断请求信号。PC6PC7用作基本I/O。(3)PC6PC7用作输出的联络信号,PC4PC5用作输入的联络信号,PC3用作中断请求信号,PC1PC2用作输入的联络信号,PC0用作中断请求信号。(4)STB:由外设(输入设备)提供的选题脉冲,表示将外设送来的数据锁存到端口寄存器;IBF:是 8255A 向外设STB信号的响应,表示端口寄存器
3、已经收到数据,但尚未被CPU取走(CPU通过读命令从端口寄存器取走数据后,IBF 自动变为0) ;OBF:由 8255A 向外设(输出设备)发出的数据准备好信号,表示CPU已经将数据写入端口寄存器;ACK:外设向8255A 发回的响应,其有效表示外设已经将数据从端口寄存器取走,该信号使得 8255A的OBF变高, CPU可以再一次向8255A 发送数据;INTE:是 8255A内的中断允许触发器,可以通过对C口的 PC6,PC4,PC2通过按位置位/复位命令字设定;INTR:是 8255A 进行选通输入输出时的中断请求信号,A口的选通输入输出用PC3,B口的选通输入输出用PC0。10.3 答:
4、 8255A工作在方式1 输入或输出时,中断请求信号从C口的 PC3引出;输入中断由INTEA(PC4通过按位置位 / 复位命令字设定)和IBF 相与产生,输出中断由INTEA(PC6通过按位置位 /复位命令字设定)和OBF相与产生;中断屏蔽由PC6,PC4通过按位置位 / 复位命令字设定。10.4 答: 1, 1, 1 10.5 答: A 口+ PC3PC7;B 口+ PC0PC2。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 9 页10.6 答: 110.7 答: 0 10.8 答: PC3PC710.9 答: 13 10.10
5、答:中断允许触发器,PC6,PC410.11 答: (1)D (2)A,D ( 3)D (4)D (5)A (6)A (7) B10.12 答:MOV DX,303H MOV AL,10000011B OUT DX,AL MOV DX,302H IN AL,DX MOV CL,4 SHL AL,CL OUT DX,AL 10.13 答: (1)根据题目给出的端口地址,在 8086 最小方式系统下,8255A 与 K15K0以及4 个发光二极管的连接图如下所示。815DDRDWRBHE/MIO15A13A14A12A11A10A9A8A7A6A5A4A3A2A1A0A8086VCC825507D
6、DRDWR1A0ACS16位开关量150()KK.0PB1PB7PB3PC2PC1PC0PC0PA1PA7PA.(2) 编写程序段实现连续检测并显示开关量中“1”的个数。开关量中“1”的个数以二进制形式显示。MOV DX,8F07H MOV AL,10010010B ;端口 A、B方式 0 输入,端口C方式 0 输出OUT DX,AL NEXT: MOV DX,8F03H ;从端口 B读取高 8 位开关量IN AL,DX XCHG AL,AH MOV DX,8F01H ;从端口 A读取低 8 位开关量IN AL,DX MOV BX,AX XOR AL,AL 精选学习资料 - - - - - -
7、 - - - 名师归纳总结 - - - - - - -第 2 页,共 9 页MOV CX,16 CLC L2: SHL BX,1 JNC L1 INC AL L1: LOOP L2 MOV DX,8F05H ;从端口 C送出OUT DX,AL JMP NEXT ;进行下一次检测10.14 答: 8255A 与 IBM PC 机总线的连接框图如下:可将 8255A的端口 A作为要产生的信号的输出端口,设定为方式0 输出,端口B和端口 C不做使用,均设定为方式0 输出。程序段如下:MOV DX,263H ;设定 8255A 的工作方式MOV AL,10000000B OUT DX,AL MOV D
8、X,260H ;产生指定信号XOR AL,AL OUT DX,AL REP: MOV AL,80H MOV CX,7 REP1: OUT DX,AL SAR AL,1 LOOP REP1 MOV CX,8 REP2: SHL AL,1 OUT DX,AL LOOP REP2 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 9 页JMP REP 10.15 答:由于开关量是16 为数据, 故可以将 8255A 的 PA端口与 PB端口设定为方式0,分别读取开关量的低八位和高八位,以 PC端口的低三位控制八选一电路的输出依次从X0到 X7,
9、使用 PC端口的高四位输出最大开关量的序号(该序号为18), 控制发光二极管的亮灭以指示序号。连接图如下: (下面电路中,当八选一输出Y有效时,能选通1 组 16 位开关量数据)程序段如下:MOV DX,263H MOV AL,10010010B ;设定工作方式,PA,PB 均工作于方式0,PA、PB 为;输入, PC 为输出OUT DX,AL MOV CX,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
10、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 位)移至 AL 的高四位MOV DX,262H OUT DX,AL ;PC 的高四位输出最大值序号精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 9 页10.16 答:根据题图,8
11、255A 的端口地址为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,10111001B ;A 口方式 1,输入; B 口方式 0,输出; C 口输入OUT DX,AL ;设置 IN
12、TEA=1 MOV AL,00001001B ;PC4 置位OUT DX,AL 10.17 答:根据题图,8255A 的端口地址为180H187H 。PC0输出, PC5和 PC6输入。 A 口输出,所以A 口方式 0,输出; B 口方式 0,输出; C 口高半部输入,C 口低半部输出。方式命令字为10001000B 。程序段为:;设置 8255A 的工作方式MOV DX,186H ;控制字口地址送DX MOV AL,10001000B ;A 口方式 0,输出; B 口方式 0,输出;;C 口高半部输入, C 口低半部输出OUT DX,AL ;查询 C 口 PC5、PC6 MOV DX,184
13、H ;C 口地址送 DX CHECK:IN AL,DX TEST AL,01100000B 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,00000001B OUT DX,AL ;置位 PC0 MOV AL,00000000B OUT DX,AL ;复位 PC0 CALL DELAY ;延时MOV AL,000000
14、01B OUT DX,AL ;置位 PC0 HLT DELAY: MOV CX,0FFFH DELAY1: NOP LOOP DELAY1 RET 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 9 页10.18 答:根据题图,8255A 的端口地址为38H3EH 中的偶地址。A 口方式 0 输出, B 口方式 0 输入, C 口低半部输入,高半部输出。程序段为:;设置 8255A 的工作方式MOV DX,03EH ;控制字口地址送DX MOV AL,10000011B ;A 口方式 0,输出; B 口方式 0,输入;;C 口高半部输出
15、, C 口低半部输入OUT DX,AL MOV CX,100 ;启动输入机,通过置位/复位实现一个高电平脉冲SETSTART:MOV DX,03EH MOV AL,00001100B OUT DX,AL ;复位 PC6 MOV AL,00001101B OUT DX,AL ;置位 PC6 CALL DELAY ;延时MOV AL,00001100B OUT DX,AL ;复位 PC6 ;查询 C 口 PC1 MOV DX,03CH ;C 口地址送DX CHECK:IN AL,DX TEST AL,00000010B JZ CHECK ;输入数据MOV DX,03AH ;B 口地址送 DX IN
16、 AL,DX MOV CHARS,AL ;将输入字符存入CHARS 变量中;查询 C 口 PC0 MOV DX,03CH ;C 口地址送DX CHECK1:IN AL,DX TEST AL,00000001B JZ CHECK1 ;输出 CHAR 变量数据,数据送到8255A 的 A 端口寄存器MOV AL,CHARS ;输出数据送AL MOV DX,038H ;A 口地址送 DX OUT DX,AL ;向打印机发选通信号,一个低电平的脉冲,先置位PC0,再复位 PC0 ;然后延时,再置位PC0 MOV DX,03EH MOV AL,00001110B OUT DX,AL ;复位 PC7 MO
17、V AL,00001111B OUT DX,AL ;置位 PC7 CALL DELAY ;延时MOV AL,00001110B OUT DX,AL ;复位 PC7 LOOP SETSTART HLT DELAY: PUSH CX MOV CX,0FFFH DELAY1: NOP LOOP DELAY1 POP CX RET 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 9 页10.19 答:根据题图,8255A 的一组端口地址为8000H8006H ,8259A 的一组端口地址为8020H 和 8022H。8255A 的 B 口工作在
18、方式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,10000100B ;A 口方式 0,输出; B 口方式 1,输出; C 口输出OUT DX,AL ;设置 INTEA=1 MOV AL,00000101B ;PC
19、2 置位OUT DX,AL ;8259A 初始化程序段MOV DX,8020H ;8259A 的偶地址端口MOV AL,00011011B ;电平触发、单片、要ICW4 OUT DX,AL ;写 ICW1 MOV DX,8022H MOV AL,90H OUT DX,AL ;写 ICW2 MOV AL,00000011B ;一般全嵌套、非缓冲、自动中断结束OUT DX,AL ;向 8255A 的 B 口输出一个字符MOV BX,OFFSET DISPCHAR MOV DX,8002H MOV AL,BX OUT DX,AL JMP $ ;中断服务程序INT_SERVICE: STI ;开中断I
20、NC BX ;下面程序段检查200 个字符输出完否MOV SI,OFFSET DISPCHAR ADD SI,200 CMP BX,SI JB OUTPUT MOV DX,8022H ;送 9259A 的基地址给DX MOV AL,10000000B OUT DX,AL ;屏蔽 IR7 JMP OVER OUTPUT: MOV AL,BX ;获取打印数据MOV DX,802H ;B 口地址送 DX OUT DX,AL OVER: IRET 10.20 答: (1)电路图如下:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 9 页(2)8
21、255A的初始化程序; 设置 8255A 的工作方式 MOV DX,0FF03H MOV AL,10100000B ;A口方式 1,输出; B口方式 0,输出; C口输出 OUT DX,AL ; 设置 INTEA=1 MOV AL,00001101B ;PC6置位OUT DX,AL (3)8259A初始化程序;8259A 初始化程序段 MOV DX,0FF0CH ;8259A的偶地址端口 MOV AL,00010011B ;边沿触发、单片、要ICW4 OUT DX,AL ;写 ICW1 MOV DX,0FF0DH MOV AL,80H OUT DX,AL ;写 ICW2 MOV AL,0000
22、0011B ;一般全嵌套、非缓冲、自动中断结束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 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 9 页中断服务程序; 中断服务程序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,00001000B OUT DX,AL ;屏蔽 IR3 JMP OVER OUTPUT: MOV AL,BX ;获取打印数据 MOV DX,0FF00H ;8255A的 A口地址送 DX OUT DX,AL OVER: IRET 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 9 页