- 1、本文档共158页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机第8章.ppt
第8章 输入/输出系统 8.3.2 输入/输出端口 定义: 在接口电路中,能与CPU交换信息的寄存器称为I/O端口寄存器,简称“端口” 8.4 微机系统与输入/输出设备信息交换 无条件传送方式 查询方式 中断控制方式 存储器直接存取(DMA)方式 8.4.1 无条件传送方式 特点: 假设输入接口数据已准备好,或者假设输出设备是空闲的,此时,CPU无需查询状态,直接用IN、OUT指令完成与接口之间的数据传送。 8.4.3 中断控制方式 在有多个外设的系统中,多个外设要求CPU为它服务是随机的 若采用查询方式工作,就不能保证系统实时地对外设的请求作出响应 为了提高CPU的效率,使系统有实时性能,导致了中断处理技术的产生 8.4.4 直接存储器存取(DMA)方式 为什么要有DMA? 什么是DMA? 直接存储器存取(Direct Memory Access 缩写为DMA) 怎么实现? 用DMAC控制器 8.5 可编程定时器/计数器8254 8.5.1 8254的内部结构 8.5.2 8254引脚功能 8.5.3 8254的工作方式 8.5.4 8254控制字与编程方法 1.8254控制字/状态字 控制字有两个 一个用来设置计数器的工作方式,称为方式控制字; 一个用来设置读出命令,称为读出控制字。 两个控制字共用一个地址,由标识位来区分 3.读取当前计数值 计数器为16位,因而要分两次读 在计数过程中,先向8254控制寄存器写入一个D7 D6=计数器编号,D5 D4=00的控制字,锁存相应计数器的计数值,然后再对相应的计数器端口进行两次读操作,依次读出计数值的低8位和高8位 8.5.5 8254在微机系统中的应用 高8位 低8位 2#计数器是一个16位的计数器,分高低8位 计数器如何工作? 计数初值如何写入? CPU对8254进行初始化编程 端口地址的确定 解1: 设初值为二进制, 初值写入顺序为先低8位后高8位。 MOV AL, OUT 43H, AL MOV AX, 4000 OUT 42H, AL MOV AL, AH OUT 42H, AL 解2: 设初值为二进制, 写入顺序为仅写高8位。 MOV AL, OUT 43H, AL MOV AL, 40 OUT 42H, AL 注意: 解2是错误的, 因为:4000=0FA0H, 其低8位不等于0。 解3: 设初值为BCD码, 写入顺序为先低后高。 MOV AL, OUT 43H, AL MOV AL, 0 OUT 42H, AL MOV AL, 40H OUT 42H, AL 解4: 设初值为BCD码, 仅写高8位。 MOV AL, OUT 43H, AL MOV AL, 40H OUT 42H, AL 注意: 4000的BCD码数应写成4000H, 解3、解4是正确的。 当计数初值 ≤ 9999时, “初值”选为二进制或BCD码都 可以 当计数初值 9999时, “初值”只能选为二进制。 程序中如何表示BCD码数? 设初值=(1234)10 则 MOV AX, 1234H 是正确的 写成 MOV AX, 1234 是错误的 方式选择命令, 锁存命令, 读出命令必须写入控制口。 关于锁存命令 当程序员要了解计数
文档评论(0)