现代微型计算机与接口教程(杨文显)第五章课后答案.docVIP

  • 91
  • 0
  • 约7.59千字
  • 约 9页
  • 2017-03-19 发布于湖北
  • 举报

现代微型计算机与接口教程(杨文显)第五章课后答案.doc

习 题 五 8255A的方式选择控制字和C口按位控制字的端口地址是否一样,8255A怎样区分这两种控制字?写出A端口作为基本输入,B端口作为基本输出的初始化程序。 解: 8255A的方式选择控制字和C口按位控制字的端口地址一样,它们之间的区别在控制字的D7位(特征位)的值不同,8255A的方式选择控制字D7=1,而C口按位置位/复位控制字D7=0。 初始化程序:(设端口地址为,A口:200H,B口:201H,控制口:203H) MOV AL,90H MOV DX,203H OUT DX,AL 用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 ;清除最低位 SHR AH, 1 ;A端口一位转入CF ADC AL, 0 ;A端口一位从CF转入命令字 OUT DX, AL ;A端口一位从送往C端口对应位 ADD AL, 02H ;形成下一个命令字 LOOP LPA ;处理C端口下一位 将8255A用作两台计算机并行通信的接口电路,请画出采用查询式输入/输出方式工作的接口电路,并写出采用查询式输入/输出方式的程序。 解: 用两片8255作两台计算机8088_A与8088_B之间并行通信的接口电路,两片8255之间的连接如下图所示。两片8255均在方式1、查询方式下工作。 (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 ;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 AL, 80H ;判别是否有效 JZ NEXT ;数据尚未取走,等待 MOV DX,200H 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 ;8255_B的方式选择字,A口工

文档评论(0)

1亿VIP精品文档

相关文档