第6章.输入与输出中断-2.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例:一个采用同步传送的数据采集系统 START: MOV DX,0100H ;DH=01H置吸合第一个继电器 ;DL=00断开所有继电器代码 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 AL,10H ;输入低8位 IN AH,11H ;输入高8位 MOV [BX],AX ;存入内存 INC BX ;地址指针加2 INC BX RCL DH,1 ;DH带进位循环左移一位 JNC AGAIN ;8个通道完了吗?没有,循环 DONE: … ;已完,则执行其他程序 ①程序查询输入 若CPU需要外设输入数据时,首先应从状态端口读入状态信息,判断数据是否准备好? ②程序查询输出 CPU输出数据前,先查询外设的状态端口的状态信息,若为“空”(如BUSY=0,表示空闲),则执行输出指令把数据送入I/O接口的数据端口。 例:一个采用查询方式的数据采集系统 一个有8个模拟量输入的数据采集系统,用查询方式与CPU传送信息。 采集过程要求: (1) 初始化。 (2) 先停止A/D转换。 (3) 启动A/D转换,查输入状态信息READY。 (4) 当输入数据已转换完(REA=1,即准备就绪),则经由端口3输入至CPU的累加器AL中,并转送内存。 (5) 设置下一个内存单元与下一个输入通道,循环8次。 STARE: MOV DL,0F8H ;设置启动A/D转换的信号,且低3位选通多路开关通道 MOV AX,SEG DSTOR ;设置输入数据的内存单元地址指针 MOV ES,AX LEA DI,DSTOR AGAIN:MOV AL,DL AND AL,0EFH ;使D4=0 OUT 04,AL ;停止A/D转换 CALL DELAY ;等待停止A/D转换操作的完成 MOV AL,DL OUT 04,AL ;选输入通道并启动A/D转换 POLL: IN AL,02 ;输入状态信息 SHR AL,1 ;查AL的D0 JNC POLL ;判READY=1?若D0=0,未准备好,则循环再查 IN AL,03 ;若已准备就绪,则经端口3将采样数据输入至A STOSB ;输入数据转送内存单元 INC DL ;输入模拟量通道增1 JNE AGAIN ;8个模拟量未输入完则循环,输入已完,执行别的程 * * I/O接口控制方式 1)程序传送方式 2)中断传送方式 3)DMA传送方式 无条件传送 程序查询传送(条件传送) 6.2 CPU与外设之间数据传送的方式 6.2.1.1 无条件传送 CPU与外设间的数据交换在程序控制下进行 不查询外设状态,认为外设已经准备就绪,直接与外设传送数据 由于不查询外设状态,接口电路不需要状态寄存器 6.2.1 程序传送 八路模拟输入量 采集的16位数字量 CPU控制采集通路 继电器P控制对应开关K 6.2.1.1 程序查询传送 在执行输入输出前,要先查询接口中状态寄存器的状态。 输入时: 状态寄存器的状态指示要输入的数据是否已经准备就绪; 输出时: 状态寄存器的状态指示输出设备是否空闲 使用查询方式,CPU必须检测接口电路的状态寄存器,如果设备未准备好,CPU就要不断地查询,降低了CPU的运行效率 D_PORT S_PORT 接口 READY (1位) 数据端口(8位) 状态端口(1位) 数据端口地址 状态端口地址 N Y 输入状态信息 READY? 输入数据 查询输入程序段: LT: IN AL, S_PORT ;从状态口S_PORT读入状态 AND AL,80H ;检查READY=1? JZ LT ;READY=0,返回继

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档