第六章 输入和输出_第1页
第六章 输入和输出_第2页
第六章 输入和输出_第3页
第六章 输入和输出_第4页
第六章 输入和输出_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第6章输入和输出,6.3CPU与外设之间的数据传送方式复习:P218P224P236P237预习:中断作业:6-7,6-8,2,6.3CPU与外设之间数据的传送方式,6.3.1无条件传送方式当外部设备的各种动作时间是固定的,且已知就可采用这种方式,把软件延时时间设计大于这个固定动作时间,不用状态判断。这种方式一般只需一个数据端口,3,无条件传送的输入方式,见图6-2,三态缓冲器,数据总线DB,地址总线,数据,来自外设,RD,IO/M,地址译码器,&,图6-2无条件传送的输入方式,8,4,无条件传送的输入方式,三态缓冲器,数据总线DB,地址总线,数据,来自外设,RD,IO/M,地址译码器,&,图6-2无条件传送的输入方式,8,当执行:INAL,n,5,设数据端口号为nINAL,n;(AL)(n)这条指令执行时,与非门三个输入端同时有效,打开三态缓冲器,把来自外设的数据读入CPU。,6,无条件传送的输入方式,三态缓冲器,数据总线DB,地址总线,数据,来自外设,RD,IO/M,地址译码器,&,图6-2无条件传送的输入方式,8,当执行:INAL,n,7,无条件传送的输出方式,见图6-3,锁存器,数据总线DB,地址总线,到外设,WR,IO/M,地址译码器,&,CE,74LS237,图6-3无条件传送的输出方式,8,8,无条件传送的输出方式,锁存器,数据总线DB,地址总线,到外设,WR,IO/M,地址译码器,&,CE,74LS237,图6-3无条件传送的输出方式,8,当执行:OUTn,AL,9,设外设端口号为nOUTn,AL;(AL)n执行该指令,与非门输出有效,将输出数据锁存至输出端。,10,无条件传送的输出方式,锁存器,数据总线DB,地址总线,到外设,WR,IO/M,地址译码器,&,CE,74LS237,图6-3无条件传送的输出方式,8,当执行:OUTn,AL,11,由于外设速度比较慢,要求输出数据在接口电路输出端维持一段时间,故必须加锁存器,锁存器,数据总线DB,地址总线,到外设,WR,IO/M,地址译码器,&,CE,74LS237,8,12,举例:设对10路模拟量巡回进行采样,为此需要一个控制端口,分别选择10路中的一路。对于每一路的模拟量输入采用无条件输入方式,通过数字电压表转换成数字量送入计算机。如下图6-4所示:,13,CPU,8,数据总线,8,IO/M*RD*10,数字电压表,K9,K1,K0,10路模拟量输入,8,273锁存器,74LS145,P9,+12V,继电器绕组,P0,常开触点,缓冲器,IO/M*WR*20,图6-4无条件传送举例,P1,D,C,B,A,9,1,0,控制端口,数据端口,14,图中,10个继电器绕组P0P9控制触点K0K9逐个接通10路中的一路。P0P9的控制是由锁存器273输出低4位接通74LS145,74LS145为BCD十进制译码器/驱动器功能如下:输入输出DCBA只一路为低电平000000001110019,15,当273低4位输出为0000时,继电器P0导通,K0接通把第一路模拟电压接到数字电压表上,转换成数字量通过端口10读到累加器CPU,程序段如下:START:MOVDX,0FF00HLEABX,DSIOK;偏址送BXAGAIN:MOVAL,DHOUT20H,AL;断开所有继电器CALLNEAR,DELAY1;继电器释放时间MOVAL,DLCALLNEAR,DELAY2;继电器吸合及数字表转换时间,OUT20H,AL;第一次P0吸合,16,CPU,8,数据总线,8,IO/M*RD*10,数字电压表,K9,K1,K0,10路模拟量输入,8,273锁存器,74LS145,P9,+12V,继电器绕组,P0,常开触点,缓冲器,IO/M*WR*20,图6-4无条件传送举例,P1,0,0,0,0,9,1,0,17,MOVBX,AL;存入INCBXINCDL;准备好下一路CMPDL,0A;10路采完否?JCAGAIN;未,转从程序可知,采用的是无条件输入方式,INAL,10H;读入,18,CPU,8,数据总线,8,IO/M*RD*10,数字电压表,K9,K1,K0,10路模拟量输入,8,273锁存器,74LS145,P9,+12V,继电器绕组,P0,常开触点,缓冲器,IO/M*WR*20,图6-4无条件传送举例,P1,D,C,B,A,9,1,0,19,632有条件传送方式(又叫查询传送方式),无条件传送必须确认外设已经准备好才能用,有条件传送采用查询外设状态,这样接口部分除数据端口外,还须有状态信号端口。查询式输入其接口电路如下:,20,图6-5查询式输入接口电路,o,o,o,o,o,o,o,o,o,+5V,IO/M,RD,A7A0,Ready(D4),RD,IO/M,CS,CS,输入装置,数据,选通信号,D,Q,锁存器,缓冲器,缓冲器,地址译码,地址译码,状态口,数据口,数据,去DB,状态信息,&,&,R,数据端口,状态端口,21,当输入装置数据准备好发出一个选通信号,一面把数据锁存起来,一面送D触发器的CLK端,将D=1打入Q端,使Q=1;CPU读入状态信息READY;当READY=1,输入数据;读入数据同时,将状态信号清零。程序段如下:G0:INAL,STATUS-PORT;读入状态信息TESTAL,10H;READY=1?JZG0;未准备好,再查INAL,DATA-PORT;准备好,读入,22,图6-5查询式输入接口电路,o,o,o,o,o,o,o,o,o,+5V,IO/M,RD,A7A0,Ready(D4),RD,IO/M,CS,CS,输入装置,数据,选通信号,D,Q,锁存器,缓冲器,缓冲器,地址译码,地址译码,状态口,数据口,数据,去DB,状态信息,&,&,R,1,数据端口译码,状态端口译码,23,当输入装置数据准备好发出一个选通信号,一面把数据锁存起来,一面送D触发器的CLK端,将D=1打入Q端,使Q=1;CPU读入状态信息READY;当READY=1,输入数据;读入数据同时,将状态信号清零。程序段如下:G0:TESTAL,10H;READY=1?JZG0;未准备好,再查INAL,DATA-PORT;准备好,读入,INAL,STATUS-PORT;读入状态信息,24,图6-5查询式输入接口电路,o,o,o,o,o,o,o,o,o,+5V,IO/M,RD,A7A0,Ready=1,RD,IO/M,CS,CS,输入装置,数据,选通信号,D,Q,锁存器,缓冲器,缓冲器,地址译码,地址译码,状态口,数据口,数据,去DB,状态信息(D4),&,&,R,1,25,当输入装置数据准备好发出一个选通信号,一面把数据锁存起来,一面送D触发器的CLK端,将D=1打入Q端,使Q=1;CPU读入状态信息READY;当READY=1,输入数据;读入数据同时,将状态信号清零。程序段如下:G0:INAL,STATUS-PORT;读入状态信息TESTAL,10H;READY=1?JZG0;未准备好,再查,INAL,DATA-PORT;准备好,读入,26,图6-5查询式输入接口电路,o,o,o,o,o,o,o,o,o,+5V,IO/M,RD,A7A0,Ready=1,RD,IO/M,CS,CS,输入装置,数据,选通信号,D,Q,锁存器,缓冲器,缓冲器,地址译码,地址译码,状态口,数据口,数据,去DB,状态信息,&,&,R,1,27,当输入装置数据准备好发出一个选通信号,一面把数据锁存起来,一面送D触发器的CLK端,将D=1打入Q端,使Q=1;CPU读入状态信息READY;当READY=1,输入数据;读入数据同时,将状态信号清零。程序段如下:G0:INAL,STATUS-PORT;读入状态信息TESTAL,10H;READY=1?JZG0;未准备好,再查INAL,DATA-PORT;准备好,读入,28,图6-5查询式输入接口电路,o,o,o,o,o,o,o,o,o,+5V,IO/M,RD,A7A0,Ready,RD,IO/M,CS,CS,输入装置,数据,选通信号,D,Q,锁存器,缓冲器,缓冲器,地址译码,地址译码,状态口,数据口,数据,去DB,状态信息,&,&,R,0,29,查询式输出如下图示,图6-6查询式输出接口电路,地址译码,o,o,o,o,o,o,o,o,A7A0,IO/M,WR,IO/M,RD,+5V,Q,D,R,ACK,“BUSY”,DB,去DB状态信息BUSY(D0),输出数据端口,状态端口,数据,输出装置,锁存器,缓冲器,地址译码,&,&,CS,CS,地址译码,30,在输出时CPU需了解外设的状态,如无空则等待,有空执行输出指令,过程如下:当输出装置输出数据后,发ACK信号,将D触发器置0,即BUSY=0CPU查询BYSY,若为0,转入,否,继续查执行输出指令,把数据送至锁存器同时令D触发器置1,它一方面告知外设,数据已准备好,另一方面让BUSY=1,阻止CPU输出新的数据,31,查询式输出如下图示,图6-5查询式输出接口电路,地址译码,o,o,o,o,o,o,o,o,A7A0,IO/M,WR,IO/M,RD,+5V,Q,D,R,ACK,“BUSY”=0,DB,去DB状态信息BUSY(D0),输出数据端口,状态端口,数据,输出装置,锁存器,缓冲器,地址译码,&,&,CS,CS,地址译码,0,32,在输出时CPU需了解外设的状态,如无空则等待,有空执行输出指令,过程如下:当输出装置输出数据后,发ACK信号,将D触发器置0,即BUSY=0CPU查询BYSY,若为0,转入,否,继续查执行输出指令,把数据送至锁存器同时令D触发器置1,它一方面告知外设,数据已准备好,另一方面让BUSY=1,阻止CPU输出新的数据,33,查询式输出如下图示,图6-5查询式输出接口电路,地址译码,o,o,o,o,o,o,o,o,A7A0,IO/M,WR,IO/M,RD,+5V,Q,D,R,ACK,“BUSY”=0,DB,去DB状态信息BUSY(D0),输出数据端口,状态端口,数据,输出装置,锁存器,缓冲器,地址译码,&,&,CS,CS,地址译码,0,34,在输出时CPU需了解外设的状态,如无空则等待,有空执行输出指令,过程如下:当输出装置输出数据后,发ACK信号,将D触发器置0,即BUSY=0CPU查询BYSY,若为0,转入,否,继续查执行输出指令,把数据送至锁存器同时令D触发器置1,它一方面告知外设,数据已准备好,另一方面让BUSY=1,阻止CPU输出新的数据,35,查询式输出如下图示,图6-5查询式输出接口电路,地址译码,o,o,o,o,o,o,o,o,A7A0,IO/M,WR,IO/M,RD,+5V,Q,D,R,ACK,“BUSY”=0,DB,去DB状态信息BUSY(D0),输出数据端口,状态端口,数据,输出装置,锁存器,缓冲器,地址译码,&,&,CS,CS,地址译码,0,36,在输出时CPU需了解外设的状态,如无空则等待,有空执行输出指令,过程如下:当输出装置输出数据后,发ACK信号,将D触发器置0,即BUSY=0CPU查询BYSY,若为0,转入,否,继续查执行输出指令,把数据送至锁存器同时令D触发器置1,它一方面告知外设,数据已准备好,另一方面让BUSY=1,阻止CPU输出新的数据,37,查询式输出如下图示,图6-5查询式输出接口电路,地址译码,o,o,o,o,o,o,o,o,输入装置,数据,锁存器,缓冲器,缓冲器,中断矢量,去DB,INTA(中断响应信号),INTR,去数据总线DB,地址总线,选通,IOR,+5V,D,Q,&,&,R,CS,地址译码,50,以输入为例:输入装置输入一数据,发出选通信号,一方面把数据存入锁存器,一方面又使D触发器置1,在中断允许下,发出INTR,CPU在现行指令执行完后,发出INTA,把外设送来的中断向量放到DB上,于是CPU转入中断服务程序,读入数据,同时清除中断请求INTR,中断处理完,CPU返回被中断处理的程序继续执行。,51,图6-6中断传送接口电路,装置中断允许,o,o,o,o,o,o,输入装置,数据,锁存器,缓冲器,缓冲器,中断矢量,去DB,INTA(中断响应信号),INTR,去数据总线DB,地址总线,选通,IOR,+5V,D,Q,&,&,R,CS,地址译码,1,1,52,以输入为例:输入装置输入一数据,发出选通信号,一方面把数据存入锁存器,一方面又使D触发器置1,在中断允许下,发出INTR,CPU在现行指令执行完后,发出INTA,把外设送来的中断向量放到DB上,于是CPU转入中断服务程序,读入数据,同时清除中断请求INTR,中断处理完,CPU返回被中断处理的程序继续执行。,53,中断传送接口电路,装置中断允许,o,o,o,o,o,o,输入装置,数据,锁存器,缓冲器,缓冲器,中断矢量,去DB,INTA(中断响应信号),INTR,去数据总线DB,地址总线,选通,IOR,+5V,D,Q,&,&,R,CS,地址译码,1,1,54,以输入为例:输入装置输入一数据,发出选通信号,一方面把数据存入锁存器,一方面又使D触发器置1,在中断允许下,发出INTR,CPU在现行指令执行完后,发出INTA,把外设送来的中断向量放到D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论