第04章 并行输入输出技术1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第04章 并行输入输出技术1

2)与处理器接口 1)外设数据端口 端口A:PA0~PA7 A组,支持工作方式0、1、2 端口B:PB0~PB7 B组,支持工作方式0、1 端口C:PC0~PC7 仅支持工作方式0 A组控制高4位PC4~PC7 B组控制低4位PC0~PC3 方式1输入引脚:A端口 方式1输入引脚:B端口 方式1输入联络信号 STB——选通信号,低电平有效 由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器 IBF——输入缓冲器满信号,高电平有效 8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器 INTR——中断请求信号,高电平有效 8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据 方式1输入时序 方式1中断控制 8255A的中断由中断允许触发器INTE控制 置位允许中断,复位禁止中断 对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器 选通输入方式下 端口A的INTEA对应PC4 端口B的INTEB对应PC2 方式1输出引脚:A端口 方式1输出引脚:B端口 方式1输出联络信号 OBF——输出缓冲器满信号,低有效 8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走 ACK——响应信号,低有效 外设的响应信号,指示8255A的端口数据已由外设接受 INTR——中断请求信号,高有效 当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据 方式1输出时序 方式2双向引脚 方式2双向时序 4.3.78255A应用举例 例1软盘 例2在IBM PC/XT上的应用 工作在基本输入/输出方式0 端口A为方式0输入,用来读取键盘扫描码 端口B工作于方式0输出,例如控制扬声器等 端口C为方式0输入,读取系统状态和配置 系统的初始化编程: mov al ;方式控制字99H out 63h,al 例3 方式0与打印机接口 打印机接口的信号与时序(Centronics) 主机把数据送给引脚DATA0~DATA7 同时送出数据选通信号STROBE* 打印机在BUSY信号线上发出忙信号 打印机处理好输入的数据时 撤消忙信号 同时又送出一个响应信号ACK* 例4 方式1与打印机接口 8255A方式1与打印机接口时序配合 例5 双机并行通信接口 问  题 课 间 休 息 下  课 【例4.6】用8255A为主从两台8086单板机设计一双向数据传送接口。 要求:主机以中断方式发送/接收数据(输入/输出) 从机为采用查询方式接收/发送数据(输出/输入) 主机为方式2,从机为方式0 1)硬件连线(见下图4.13) 2)软件设计 图4.13 主从单板机硬件连线图 图4.13 ;主机程序 MOV DX,313H ;控制口地址 MOV AL,0C0H ;控制方式字(A口方式2) OUT DX,AL ;送到控制口 MOV AL,09H ;置PC4=1 INTE2=1 OUT DX,AL ;允许输入中断 MOV AL,0DH ;置PC6=1 INTE1=1 OUT DX,AL ;允许输出中断 MOV SI,2000H ;发送数据块首地址 MOV CX,100 ;发送数据块长度 MOV DI,0H ;接收数据块首地址 MOV BX,80H ;接收数据块长度 STI ;开中断 中断服务程序 图4.13 MOV DX,312H ;C口地址 IN AL,DX ;读入C口值 MOV AH,AL ;保存C口值 AND AL,20H ;检查IBF的值 JZ OTH ;0=不是输入中断,等待 INP: MOV DX,310H ;A口地址 IN AL,DX ;从A口接收数据 MOV [DI],AL ;保存到内存单元 INC DI ;修改内存单元地址 DEC BX ;修改计数长度 JNZ NEXT ;块长度-1≠0继续接收 JMP DONE ;结束中断服务程序 OTH: MOV AL,AH ;恢复C口值 AND AL,80H ;检查OBF的值 JZ NEXT ;0=不是输出中断,等待 OUTP: MOV DX,300H ;A口地址 MOV AL,[SI] ;从内存取数据 OUT DX,AL ;从A口发送到从机 INC SI ;修改内存单元地址 DEC CX ;修改计数长度 JNZ NEXT ;块长度-1≠0继续接收 JMP DONE ;结束

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档