第7章输入输出接口与中断技术研讨.ppt

  1. 1、本文档共192页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在微型计算机系统中,主要的输入输出方法有以下3种: ① 程序传送 ② 中断方式 ③ 直接存贮器存取(DMA)方式 这些方式不仅要实现主机与外设之间数据的传输,还要实现状态信息、命令信息的传输。 一般,这些外设随时做好了数据传送的准备,而无须检测其状态。 这里先要弄清有关输入缓冲与输出锁存的基本概念。 输入数据时,因简单外设输入数据的保持时间相对于CPU的接收速度来说较长,故输入数据通常不用加锁存器来锁存,而直接使用三态缓冲器与CPU数据总线相连即可。 输出数据时,一般都需要锁存器将要输出的数据保持一段时间,其长短和外设的动作相适应。锁存时,在锁存允许端CE=1(为无效电平)时,数据总线上的新数据不能进入锁存器。只有当确知外设已取走CPU上次送入锁存器的数据,方能在CE=0(为有效电平)时将新数据再送入锁存器保留。 输入输出(无条件程序传送)原理图如图所示。 在输入时,假定来自外设的数据已输入至三态缓冲器, 于是当CPU执行IN指令时,所指定的端口地址经地址总线的 低16位或低8位送至地址译码器,CPU进入了输入周期,选中 的地址信号和M/IO(以及RD)相“与”后,去选通输入三态缓 冲器,把外设的数据与数据总线连通并读入CPU。显然,这 样做必须是当CPU执行IN指令时,外设的数据是已准备好的, 否则就会读错。 在输出时,假定CPU的输出信息经数据总线已送到输 出锁存器的输入端;当CPU执行OUT指令时,端口的地址由 地址总线的低8位地址送至地址译码器,CPU进入了输出 周期,所选中的地址信号和M/IO(以及WR 信号)相“与” 后,去选通锁存器,把输出信息送至锁存器保留,由它再 把信息通过外设输出。显然,在CPU执行OUT指令时,必须 确信所选外设的锁存器是空的。 例:一个采用同步传送的数据采集系统如图所示。 这是一个16位精度的数据采集系统。被采集的数据是8 个模拟量,由继电器绕组P0、P1、…P7分别控制触点K0、 K1…K7逐个接通。每次采样用一个4位(每位为一个十进制 数)数字电压表测量,把被采样的模拟量转换成16位BCD代 码(即对应4位十进制数的4个BCD码),高8位和低8位通过两 个不同的端口(其地址分别为10H和11H)输入。CPU通过端 口20H 输出控制信号,以控制某个继电器的吸合,实现采集 不同通道的模拟量。 采集过程要求: (1)先断开所有的继电器线圈及触头,不采集数据。 (2)延迟一段时间后,使K0闭合,采集第1个通道的模拟 量,并保持一段时间,以使数字电压表能将模拟电压转换为 16位BCD码。 (3)分别将高8位与低8位BCD码存入内存,完成第1个模 拟量的输入与存。 (4)利用移位与循环实现8个模拟量的依次采集、输入 与转存。 数据采集程序如下: START:   MOV DX,0100H ;01H→DH,置吸合第1个继电器代码 ;00H→DL,置断开所有继电器代码 LEA BX,DSTOR ;置输入数据缓冲器的地址指针 XOR AL,AL ;清AL及进位位CF AGAIN: MOV AL,DL OUT 20H,AL ;断开所有继电器线圈 CALL NEAR DELAY1 ;模拟继电器触点的释放时间 MOV AL,DH OUT 20H,AL ;先使P0吸合 CALL NEAR DELAY2 ;模拟触点闭合及数字电压表的转换时间 IN AX,10H ;输入 MOV [BX],AX ;存入内存 INC BX INC BX RCL DH,1 ;DH左移(大循环)1位,为下一个触点吸合 作准备

文档评论(0)

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

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

1亿VIP精品文档

相关文档