(完整版)8255练习题及答案

发布时间 : 星期四 文章(完整版)8255练习题及答案更新完毕开始阅读

8AD7-AD0RDWRRESETA7A68086A5M/IOA4A3A0A2A1

5、如图B-1所示电路

(1)分析各端口地址;

(2)A口、B口工作在什么方式; (3)写出8255A的初始化程序。

D7-D0RDWRRESET与74LS138PA0PA1PA6PA7......ab驱动电路...gDP+5VG1G2AG2BCBAA1A0Y2CS8255APB3PB2PB1PB0K3K2K1K0+5V

8255练习题及答案 第 5 页 共 10 页

6、设8255A的A口、B口、C口和控制字寄存器的端口地址分别为80H,82H,84H和86H。要求A口工作在方式0输出,B口工作在方式0输入,C口高四位输入,低四位输出,试编写8255A的初始化程序。

答: MOV DX,86H ;控制字端口地址 MOV AL,10001010B

OUT DX,AL ;写控制字

7、 8255A的方式选择控制字和C口按位控制字的端口地址是否一样,8255A怎样区分这两

种控制字?写出A端口作为基本输入,B端口作为基本输出的初始化程序。 解:

(1) 8255A的方式选择控制字和C口按位控制字的端口地址一样,它们之间的区别在控制字的D7位(特征位)的值不同,8255A的方式选择控制字D7=1,而C口按位置位/复位控制字D7=0。

(2) 初始化程序:(设端口地址为,A口:200H,B口:201H,控制口:203H) MOV AL,90H MOV DX,203H OUT DX,AL

8、 用8255A的A端口接8位二进制输入,B端口和C端口各接8只发光二极管显示二进制

数。编写一段程序,把A端口读入的数据送B端口显示,而C端口的各位则采用置0/置1的方式显示A端口的值。 解:

(设端口地址为,A口:200H,B口:201H,C口:202H,控制口:203H) MOV AL, 90H ;8255A初始化: MOV DX, 203H ;8255A各组方式0,A口输入 OUT DX, AL ; B、C口输出 MOV DX, 200H IN AL, DX ;读A口输入值 MOV DX, 201H OUT DX, AL ;送B口输出 MOV AH, AL ;A口输入值转存在AH中 MOV DX, 203H MOV CX, 08 ;CX置循环次数初值 MOV AL, 00H ;C端口置0/置1控制字初值 LPA: AND AL, 0FEH ;清除最低位

8255练习题及答案 第 6 页 共 10 页

SHR AH, 1 ;A端口一位转入CF ADC AL, 0 ;A端口一位从CF转入命令字 OUT DX, AL ;A端口一位从送往C端口对应位 ADD AL, 02H ;形成下一个命令字 LOOP LPA ;处理C端口下一位

9、 将8255A用作两台计算机并行通信的接口电路,请画出采用查询式输入/输出方式工作的接口电路,并写出采用查询式输入/输出方式的程序。 解:

用两片8255作两台计算机8088_A与8088_B之间并行通信的接口电路,两片8255之间的连接如下图所示。两片8255均在方式1、查询方式下工作。

D7~D08255AA口A口8088-A地址译码A0A1CSA0A18255APC0B口PC6(ACK)8255BA口PC4(STB)PC08088-BCSA0A1地址译码A0A1D7~D0 (1) 8088_A输出程序:

(8255_A的A口作为数据输出口,C口的PC0作为“数据输出选通”信号,负脉冲输出。C口的PC6作为“应答”信号输入。端口地址: A口:200H,C口:202H,控制口:203H)

DATA SEGMENT Buffer DB “This is a example. ”, 0DH, 0AH, -1 DATA ENDS CODE SEGMENT START: MOV AX, DATA MOV DS, AX LEA BX, Buffer ;输出缓冲区指针送BX MOV DX,203H MOV AL,0A0H ;10100000B

;8255_A的方式选择字,A口工作在方式1、输出,C口低四位输出 OUT DX,AL MOV AL, 1 OUT DX, AL ;将PC0置1 CALL DELAY ;延时等待对方完成初始化 ;A口查询方式输出 NEXT: MOV DX, 202H IN AL, DL

TEST JZ MOV

AL, 80H NEXT DX,200H

;判别OBF是否有效,PC7→OBFA ;数据尚未取走,等待

8255练习题及答案 第 7 页 共 10 页

MOV AL, [BX] OUT DX, AL ;输出一项数据 INC BX MOV DX, 203H MOV AL, 0 OUT DX, AL ; NOP NOP INC AL OUT DX, AL ;通过PC0 向对方发选通信号 CMP BYTE PTR[BX-1], -1 ;判断输出是否完成 JNE NEXT ;未完成,继续 MOV AX, 4C00H INT 21H CODE ENDS END START (2)8088_B输入程序:

(8255_B的A口作为输入,方式1,PC4作为“数据输入选通”信号,输入,负脉冲有效。PC0为“应答”信号输出。端口地址: A口:210H,C口:212H,控制口:213H) DATA SEGMENT Buffer DB 80 DUP(?) DATA ENDS ; CODE SEGMENT START: MOV AX, DATA MOV DS, AX LEA BX, Buffer ;输入缓冲区指针送BX MOV DX, 213H MOV AL, 0B0H ;10110000B

;8255_B的方式选择字,A口工作在方式1,输入,C口低四位输出。 OUT DX, AL MOV AL, 01H OUT DX, AL ;PC0置1,表示没有“应答”信号 CALL DELAY ;延时等待对方状态就绪 ;A口查询方式输入 AGA: MOV DX, 212H IN AL, DX TEST AL, 20H JZ AGA

;PC5 ( IBF )是否为1,不是,无数据输入,继续查询 MOV DX, 210H IN AL, DX MOV [BX], AL

8255练习题及答案 第 8 页 共 10 页

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