
数字量输入输出课件.ppt
98页•5.1 5.1 概述概述 •5.2 5.2 系统总线及接口系统总线及接口 •5.3 5.3 中断控制系统中断控制系统 •5.4 5.4 计数定时接口计数定时接口 •5.5 5.5 并行输入输出接口并行输入输出接口 第第第第5 5章章章章 数字量输入输出数字量输入输出数字量输入输出数字量输入输出 1数字量输入输出5.1 概述 5.1.1 I/O5.1.1 I/O信号的形式信号的形式1、开关量:只有两种稳定的信号,可以用两个最基本的逻辑符号表示、开关量:只有两种稳定的信号,可以用两个最基本的逻辑符号表示2、数字量:多位、数字量:多位0和和1按一定规则组合所表示的信号按一定规则组合所表示的信号3、脉冲量:两种稳态之间的变化、脉冲量:两种稳态之间的变化l正跳变正跳变:由:由0变到变到1l负跳变负跳变:由:由1变到变到0 4、模、模拟量:数量:数值和和时间上都能上都能连续变化的信号化的信号 2数字量输入输出5.1.2 I/O5.1.2 I/O接口接口 接口的含义:接口的含义:l狭义上:连接计算机和狭义上:连接计算机和I/O设备的部件;设备的部件;l广义上:还包括接口电路的管理驱动程序;广义上:还包括接口电路的管理驱动程序;1、、 I/O接口的功能接口的功能((1)信号的形式变换:非数字信号变换成二进制数字信号;)信号的形式变换:非数字信号变换成二进制数字信号;((2)电平转换和放大)电平转换和放大((3)锁存及缓冲)锁存及缓冲((4)) I/O定向定向((5)并行及串行)并行及串行I/O的转换的转换l并行方式:接口和并行方式:接口和I/O设备之间以并行方式传送;设备之间以并行方式传送;l串行方式:一位一位地进行传送;串行方式:一位一位地进行传送;3数字量输入输出2、、 I/O的内容分类的内容分类((1))数据信息:数据信息可分为数字量、模拟量和开关量。
数据信息:数据信息可分为数字量、模拟量和开关量 ((2))状态信息:状态信息是状态信息:状态信息是CPU与外设之间交换数据时的联络信息与外设之间交换数据时的联络信息3))控制信息:控制信息用来设置控制信息:控制信息用来设置I/O外设外设(包括包括I/O接口接口)的工作模式、的工作模式、 命令字等有关信息如命令字等有关信息如““启动启动””,,““停止停止””信息3、、 I/O接口的构成接口的构成((1)端口:构成)端口:构成I/O接口的基本单元接口的基本单元较低地址端口存放较低字节内容,较高端口存放较高字节的内容较低地址端口存放较低字节内容,较高端口存放较高字节的内容((2)端口的分类:)端口的分类:•数据端口:数据端口:单向向输入、入、单向向输出、双向出、双向•状状态端口端口•控制端口:控制端口:输入、入、输出指令出指令4数字量输入输出5.1.3 I/O编址两种两种I/O编址方式:址方式:存储器映象和存储器映象和I/O端口寻址端口寻址 1、、存储器映象编址:从存储器地址中分出存储器映象编址:从存储器地址中分出一部分一部分给给I/O端口使用,每个端口使用,每个 I/O端口被看成一个存端口被看成一个存储器器单元,用元,用访问存存储器的方法器的方法访问I/O端口端口优点:点:无无须专门的的I/O指令和专门的指令和专门的I/O控制信号也能完成控制信号也能完成I/O;;2、、 I/O端口单独编址:使用专门的端口单独编址:使用专门的I/O指令和控制信号进行指令和控制信号进行I/O;;优点:点:I/O指令和存储器分别编址,各自都有完整的地址空间;指令和存储器分别编址,各自都有完整的地址空间;两种方式优缺点互补;两种方式优缺点互补;5数字量输入输出5.1.4 I/O的控制方式1. 无条件传送方式无条件传送方式 无条件传送方式是假设输入接口数据已经准备好,或者输出设备是无条件传送方式是假设输入接口数据已经准备好,或者输出设备是空闲的,此时空闲的,此时CPU无需查询状态,直接用无需查询状态,直接用IN和和OUT指令完成与接口之指令完成与接口之间的数据传送。
间的数据传送 2. 查询传送方式查询传送方式 利用查询方式输入数据之前,利用查询方式输入数据之前,CPU要查询输入数据是否准备好;利要查询输入数据是否准备好;利用查询方式输出数据之前,用查询方式输出数据之前,CPU要查询输出设备是否空闲只有确认外要查询输出设备是否空闲只有确认外设已经具备了传送条件后,才能用设已经具备了传送条件后,才能用IN和和OUT指令完成数据传送指令完成数据传送 6数字量输入输出3、中断控制传送方式、中断控制传送方式 中断控制的输入和输出方式,也成中断传送方式当外设的输入中断控制的输入和输出方式,也成中断传送方式当外设的输入数据准备好或接受数据的锁存器空时,主动向数据准备好或接受数据的锁存器空时,主动向CPU发出中断请求,使发出中断请求,使CPU中断原来执行的程序(主程序),转去执行为外设服务的输入或输中断原来执行的程序(主程序),转去执行为外设服务的输入或输出操作,服务完毕出操作,服务完毕CPU再继续执行原来的程序再继续执行原来的程序4、直接存储器访问方式、直接存储器访问方式DMA5、其他方式:、其他方式:如如I/O处理机方式处理机方式7数字量输入输出5.2 系统总线及接口 5.2.1 5.2.1 总线概述总线概述1 1、、总线的特性总线的特性((1 1)多信号源)多信号源 ((2 2)被分时使用)被分时使用 ((3 3)由主设备控制)由主设备控制2 2、总线的分级、总线的分级((1 1)片内总线)片内总线 ((2 2)系统级总线:计算机机箱内部,插卡与插卡之间的连接总线;)系统级总线:计算机机箱内部,插卡与插卡之间的连接总线;((3 3)设备级总线:计算机机箱外部,)设备级总线:计算机机箱外部,I/OI/O设备和计算机之间的连接总线;设备和计算机之间的连接总线; 8数字量输入输出5.2.2 5.2.2 系统总线标准系统总线标准1 1、、PC/XTPC/XT及及ISAISA总线总线((1 1)总线信号)总线信号((2 2)总线周期:)总线周期:CPUCPU执行一条指令的时间称为指令周期。
执行一条指令的时间称为指令周期系统的总线周去分为系统的总线周去分为CPUCPU驱动和驱动和DMACDMAC驱动驱动①①CPUCPU驱动的总线周期驱动的总线周期l存储器读总线周期存储器读总线周期 l存储器写总线周期存储器写总线周期lI/OI/O读总线周期读总线周期lI/OI/O写总线周期写总线周期② DMAC驱动的总线周期驱动的总线周期l DMA存储器读周期存储器读周期l DMA存储器写周期存储器写周期9数字量输入输出5.3 中断控制系统1、中断及返回、中断及返回 所谓所谓“中断中断”是指是指CPU在正常执行程在正常执行程序序的过程中,由于的过程中,由于内部内部/外部事件外部事件或由程序或由程序的预先安排的预先安排,引起,引起CPU暂时中断当前程序暂时中断当前程序的运行而转去的运行而转去执行为内部执行为内部/外部事件或预外部事件或预先安排的事件服务的子程序先安排的事件服务的子程序,,待中断服务待中断服务子程序执行完毕后,子程序执行完毕后,CPU再返回到暂停处再返回到暂停处(断点)继续执行原来的程序(断点)继续执行原来的程序,这一过程,这一过程称为中断,其示意图如图称为中断,其示意图如图5-1所示。
所示5.3.1 中断的基本概念中断的基本概念10数字量输入输出2 2、中断系统的功能、中断系统的功能((1 1)发出中断请求信号:原始信号、经过管理后输往)发出中断请求信号:原始信号、经过管理后输往CPUCPU的信号的信号((2 2)定向中断服务程序)定向中断服务程序((3 3)主程序的暂停及返回)主程序的暂停及返回①①断点的保护和返回断点的保护和返回②②现场的保护和返回现场的保护和返回3、中断技术的优点、中断技术的优点((1)并行操作)并行操作(CPU与外设与外设)((2)实时处理)实时处理(测控信号测控信号)((3)故障处理)故障处理(掉电保护等掉电保护等)((4)分时操作)分时操作(多任务或多用户系统多任务或多用户系统)11数字量输入输出4、中断源:、中断源:能引起中断的设备或事件称为中断源能引起中断的设备或事件称为中断源1)) 中断源种类中断源种类l设备中断(设备中断(硬中断硬中断))l指令中断(指令中断(软中断软中断)) l故障中断(故障中断(状态中断状态中断))l实时时钟中断(实时时钟中断(定时中断定时中断)) lCPU内部运算产生的内部运算产生的某些错误所引起的中断某些错误所引起的中断 12数字量输入输出((2)) 中断源识别中断源识别通常有两种方法:通常有两种方法:查询中断和矢量中断查询中断和矢量中断。
①查询中断查询中断 查询中断时采用软件或硬件查询技术来确定发出中断请求的中断源查询中断时采用软件或硬件查询技术来确定发出中断请求的中断源 多个中断源共用一个中断服务入口程序,进入中断服务程序后查询多个中断源共用一个中断服务入口程序,进入中断服务程序后查询方式有:方式有:l软件查询:软件查询:首先读取中断源状态并查询检测,然后根据状态检测情况作首先读取中断源状态并查询检测,然后根据状态检测情况作相应的中断处理相应的中断处理l硬件查询硬件查询1:通过串行顺序链电路端口读取引起中断的最高优先级中断:通过串行顺序链电路端口读取引起中断的最高优先级中断源的编码,然后根据该编码(计算出入口地址)转入相应的处理程序源的编码,然后根据该编码(计算出入口地址)转入相应的处理程序l硬件查询硬件查询2:中断相应信号:中断相应信号-INTA触发从串行顺序链电路中获取终端类触发从串行顺序链电路中获取终端类信号根据类型号转入相应的处理程序硬件查询信号根据类型号转入相应的处理程序硬件查询2类似矢量中断)类似矢量中断) 13数字量输入输出②矢量中断矢量中断 矢量中断又称矢量中断又称向量中断向量中断,通常是,通常是由中断向量来指示中断服务程序由中断向量来指示中断服务程序的入口地址的入口地址。
每个中断源都预先指定一个矢量标志,要求每个中断源都预先指定一个矢量标志,要求外设在提出中外设在提出中断请求时提供该中断矢量标志断请求时提供该中断矢量标志当CPU响应某个中断源的中断请求时响应某个中断源的中断请求时,,控制逻辑就将该控制逻辑就将该中断源的矢量标志送入中断源的矢量标志送入CPU,,CPU根据矢量标志自动指根据矢量标志自动指向相应的中断服务程序的入口地址向相应的中断服务程序的入口地址,转入中断服务程序转入中断服务程序 每个每个中断源中断源对应一个对应一个中断服务入口程序,中断服务入口程序,CPUCPU响应中断时,响应中断时,通过中通过中断电路获取中断矢量断电路获取中断矢量(或中断类型号),(或中断类型号),根据中断矢量根据中断矢量转入该中断源的转入该中断源的中断服务程序中断服务程序14数字量输入输出5、中断的分类、中断的分类 内部中断也称内部中断也称软件中断软件中断,是由处理器,是由处理器检测到异常情况检测到异常情况或或执行软件执行软件中断指令中断指令所引起的一种中断所引起的一种中断1)内部中断)内部中断①除法出错中断除法出错中断(除法指令除法指令操作结果溢出操作结果溢出(除数位除数位0),引起,引起0号中断号中断);;②②INTO溢出中断溢出中断(当当OF=1,并且执行,并且执行INTO指令,引起指令,引起4号中断号中断);;③③INT INT n n中中断断(执执行行INT n中中断断指指令令(相相当当于于子子程程序序调调用用指指令令),,引引起起的的中中断断);;④断断点点中中断断(在在程程序序某某断断点点插插入入单单个个字字节节的的INT3指指令令代代码码,,当当执执行行到到INT3,引发的,引发的3号中断号中断类型类型);;⑤单步中断单步中断(当当TF=1时,每执行一条指令,自动转入时,每执行一条指令,自动转入1号中断号中断类型的服务类型的服务 程序程序)。
15数字量输入输出((2)) 外部中断外部中断————硬件中断硬件中断 外部中断也称外部中断也称硬件中断硬件中断,是由,是由CPU的的外部中断请求信号触发的一种中外部中断请求信号触发的一种中断断,分为不可屏蔽中断,分为不可屏蔽中断NMI和可屏蔽中断和可屏蔽中断INTR1))非屏蔽中断请求非屏蔽中断请求NMI ( (上升沿触发上升沿触发) ) 非屏蔽中断请求由不受中断允许标志位非屏蔽中断请求由不受中断允许标志位IF的影响,的影响,中断类型码为中断类型码为2 2 2 2))可屏蔽中断可屏蔽中断INTR (INTR (高电平触发高电平触发) ) 若若CPUCPU发现有可屏蔽中断请求,发现有可屏蔽中断请求,CPUCPU将将根据中断允许标志位根据中断允许标志位IFIF的状态决定的状态决定是否响应是否响应如果IF=0IF=0,表示,表示CPUCPU处于关中断状态,屏蔽处于关中断状态,屏蔽INTRINTR线上的中断,线上的中断,CPUCPU不理会该中断请求而继续执行下一条指令;不理会该中断请求而继续执行下一条指令;如果如果IF=1IF=1,表示,表示CPUCPU处于开中断状处于开中断状态,允许态,允许INTRINTR线上的中断,线上的中断,CPUCPU执行完现行指令后转入中断响应周期执行完现行指令后转入中断响应周期。
16数字量输入输出((3 3)中断处理顺序)中断处理顺序 中断处理顺序即中断处理顺序即按中断优先权按中断优先权从高到低从高到低的排队顺序对中断源的排队顺序对中断源进行响应进行响应,,80868086系统的中断处理次序如下:系统的中断处理次序如下:((1 1)除法错误中断、溢出中断、)除法错误中断、溢出中断、INT nINT n指令中断、断点中断指令中断、断点中断2 2)非屏蔽中断)非屏蔽中断NMINMI3 3)可屏蔽中断)可屏蔽中断INTRINTR4 4)单步中断单步中断 17数字量输入输出6 6 中断向量表中断向量表 中断向量中断向量就是中断服务程序的就是中断服务程序的入口地址表入口地址表把系统中的所有中断向把系统中的所有中断向量集中起来放到存储器的某一区域量集中起来放到存储器的某一区域(0~3ffH)内,这个存放中断向量的内,这个存放中断向量的存存储区就叫中断向量表储区就叫中断向量表(或中断矢量表),即(或中断矢量表),即每一个中断服务程序与表内每一个中断服务程序与表内的中断向量具有一一对应关系的中断向量具有一一对应关系 中断向量表分为三部分:中断向量表分为三部分:专用中断专用中断、、备用中断备用中断和和用户中断用户中断。
1 1))专用中断专用中断::类型类型0 0~类型~类型4 4,共有,共有5 5种类型专用中断的中断服务程种类型专用中断的中断服务程序的入口地址由系统负责装入,用户不能随意修改序的入口地址由系统负责装入,用户不能随意修改2 2))备用中断备用中断::类型类型5 5~类型~类型3FH3FH,这是,这是IntelIntel公司为软、硬件开发保留公司为软、硬件开发保留的中断类型,一般不允许用户改作其他用途的中断类型,一般不允许用户改作其他用途3 3))用户中断用户中断::类型类型40H40H~类型~类型FFHFFH,为用户可用中断,其中断服务程序,为用户可用中断,其中断服务程序的入口地址由用户程序负责装入的入口地址由用户程序负责装入18数字量输入输出19数字量输入输出5.3.2 可编程中断控制电路可编程中断控制电路Intel 8259A可编程外部中断控制器的功能可编程外部中断控制器的功能•可对可对8个中断源实现个中断源实现优先级优先级控制控制 •可扩展至对可扩展至对64个中断源实现优先级控制个中断源实现优先级控制 •可编程设置不同工作方式可编程设置不同工作方式•根据中断源向根据中断源向x86提供不同中断类型码提供不同中断类型码 20数字量输入输出8259A引脚及功能引脚及功能 见见P297的图的图5.19①数据线数据线D7~D0------8位;位;②片选信号片选信号----------低电平有效;低电平有效;③A0--------------地址引脚;地址引脚;④读写信号读写信号----------低电平有效;低电平有效;⑤INT-------------中断请求信号;中断请求信号;⑥IR7~IR0----------外部中断请求外部中断请求8个;个;⑦CAS2~CAS0-------多片多片8259A的级联的级联21数字量输入输出1..8259A的内部结构的内部结构 -中断请求寄存器中断请求寄存器IRR•保存从保存从IR0~~IR7来的中断请求信号,来的中断请求信号,某位某位=1表示对应的表示对应的IRi有中有中断请求断请求 –中断服务寄存器中断服务寄存器ISR •保存所有正在服务的中断源,保存所有正在服务的中断源,某位某位=1表示对应的表示对应的IRi中断正在被中断正在被服务服务 –中断屏蔽寄存器中断屏蔽寄存器IMR•存放中断屏蔽字,存放中断屏蔽字,某位某位=1表示对应的表示对应的IRi输入被屏蔽输入被屏蔽 –中断优先权判别电路中断优先权判别电路 •确定是否向确定是否向CPU发出中断请求,中断响应时确定发出中断请求,中断响应时确定ISR的哪位应置的哪位应置位及把相应中断的类型码放到数据总线上位及把相应中断的类型码放到数据总线上 22数字量输入输出2、、 8259A的工作过程的工作过程•8259A对中断请求的处理过程如下:对中断请求的处理过程如下:–当某当某IRi有效时,有效时,IRR相应位置相应位置1–若有效的若有效的IRi未被屏蔽,则未被屏蔽,则向向CPU发出中断请求发出中断请求–检测到检测到第第1个个INTA#信号信号后,后,置置ISRi=1,,IRRi=0 –检测到检测到第第2个个INTA#信号信号后,后,把把ISRi=1中最高优先级的中断中最高优先级的中断类型码放到类型码放到DB上上–若工作在若工作在AEOI方式,在第方式,在第2个个INTA#结束时,使结束时,使ISRi复位;复位;否则由否则由CPU发出发出EOI命令使命令使ISRi复位复位23数字量输入输出3、、 8259A的工作方式的工作方式•8259A的工作方式有如下几类:的工作方式有如下几类:–中断优先方式与中断嵌套中断优先方式与中断嵌套–中断结束处理方式中断结束处理方式 –屏蔽中断源的方式屏蔽中断源的方式–中断触发方式中断触发方式–级联工作方式级联工作方式24数字量输入输出((1)中断优先方式与中断嵌套)中断优先方式与中断嵌套•中断优先方式中断优先方式 两类优先级控制方式:两类优先级控制方式:固定优先级和循环优先级固定优先级和循环优先级–固定优先级方式固定优先级方式•所有中断请求所有中断请求IRi的中断优先级固定不变的中断优先级固定不变•优先级排列顺序可编程改变优先级排列顺序可编程改变•加电后加电后8259A的默认方式,默认优先级顺序从高到低为的默认方式,默认优先级顺序从高到低为IR0~~IR7最低级IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最高级最高级最低级优先级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级默认优先级优先级可编程改变优先级可编程改变25数字量输入输出((1)中断优先方式与中断嵌套(续))中断优先方式与中断嵌套(续)–循环优先级方式循环优先级方式 •中断源轮流处于最高优先级,即自动中断优先级循环中断源轮流处于最高优先级,即自动中断优先级循环•初始优先级顺序可用编程改变初始优先级顺序可用编程改变•某中断请求某中断请求IRi被处理后,被处理后,其优先级别自动降为最低,原来比它低其优先级别自动降为最低,原来比它低一级的中断上升为最高级一级的中断上升为最高级 IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最低级最高级最高级最高级最高级最低级最低级ISR内容内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前的服务结束以前0101000001000000IR4的服务结束以后的服务结束以后ISRi26数字量输入输出((1)中断优先方式与中断嵌套(续))中断优先方式与中断嵌套(续)•中断嵌套方式中断嵌套方式–在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。
在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套8259A有两种中断嵌套方式:有两种中断嵌套方式:•普通全嵌套方式(默认方式)普通全嵌套方式(默认方式) 中断正被处理时,只有更高优先级的事件可以打断当前的中断中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务处理过程而被服务•特殊全嵌套方式特殊全嵌套方式 中断正被处理时,允许同级或更高优先级的事件可以打断当前中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务的中断处理过程而被服务注注: 特殊全嵌套仅用于多个特殊全嵌套仅用于多个8259A级连时的主级连时的主8259A,而,而不不能用能用于从属于从属8259A或单或单8259A系统27数字量输入输出D.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:从从片片的的INT被被主主片片封封锁锁,,故故更更高高级级别别的的IR0-IR2中中断断也也无无法法得到响应得到响应特殊嵌套方式:特殊嵌套方式:因因主主片片不不封封锁锁从从片片的的INT,,故故级级别别高高的的IR0-IR2中中断断可可以以得得到到响响应应。
(但但IR3-IR7仍仍被被本本从从片片封锁封锁) )C.假定假定IR3发生中发生中断断,并获得服务并获得服务一一般般嵌嵌套套方方式式::IR4的的中中断断被被服服务务时时,,这这些些中中断断将将被封锁B.特特殊殊嵌嵌套套方方式式::IR4的的中中断断被被服服务务 时时 ,, 只只 封封 锁锁IR5-IR7A.INTE.从从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7n一般全嵌套方式与特殊全嵌套方式的区别一般全嵌套方式与特殊全嵌套方式的区别 去去CPU28数字量输入输出((2)中断结束处理方式)中断结束处理方式•当某一当某一IRi中断被服务时,中断被服务时,ISR中的相应位中的相应位ISRi=1当服务结束后,当服务结束后,则必须清零该则必须清零该ISRi位使ISRi=0是通过向是通过向8259A发出中断结束命令发出中断结束命令((EOI命令)实现的命令)实现的•三种三种EOI命令命令–自动自动EOI((AEOI))——(自动(自动EOI方式)方式)–非指定非指定EOI((NSEOI))——(正常(正常EOI方式)方式)–指定指定EOI((SEOI))——(特殊(特殊EOI方式)方式)–AEOI:在第:在第2个个INTA#结束时,由结束时,由8259A使使ISRi自动复位;自动复位;•因不保留当前正在服务的中断的状态,故因不保留当前正在服务的中断的状态,故AEOI不能用于中断不能用于中断嵌套方式嵌套方式29数字量输入输出((2)中断结束处理方式)中断结束处理方式–SEOI:由:由CPU发出一条发出一条SEOI命令,该命令,该EOI命令中指出了所命令中指出了所要复位的要复位的ISR的位号。
的位号 •用于特殊屏蔽方式用于特殊屏蔽方式–NSEOI:由:由CPU发出正常发出正常EOI命令,该命令,该EOI命令使命令使ISRi=1的的位中优先级最高的那一位复位位中优先级最高的那一位复位•用于普通全嵌套方式用于普通全嵌套方式特殊全嵌套方式下的特殊全嵌套方式下的EOI处理处理只有当从只有当从PIC的中断全部的中断全部处理完后,才能向主处理完后,才能向主PIC发发EOI命令命令IRET中断服务程序┇┇向从PIC发EOI命令读从PIC的ISR全0?向主PIC发EOI命令Y恢复现场N30数字量输入输出((3)屏蔽中断源的方式)屏蔽中断源的方式•IMR屏蔽字决定了屏蔽字决定了允许或禁止某位允许或禁止某位IRi所对应的中断:所对应的中断:IMi=1 禁禁止,止, IMi=0 允许•特殊屏蔽方式:特殊屏蔽方式:–提供了允许较低优先级的中断能够得到响应的特殊手段提供了允许较低优先级的中断能够得到响应的特殊手段–原理原理:假定当前正在处理:假定当前正在处理IR6,先,先进入特殊屏蔽方式,然后设进入特殊屏蔽方式,然后设置置IM6=1这时,除这时,除IR6外的所有中断请求均能得到响应外的所有中断请求均能得到响应。
–特殊屏蔽方式中只能用特殊屏蔽方式中只能用SEOI命令结束中断命令结束中断31数字量输入输出•特殊屏蔽例:特殊屏蔽例: CLI ;;IR4中断处理程序中断处理程序CLIMOV AL,,68H ;;OCW3::0 1 1 0 1 0 0 0OUT 0C0H,,AL ;设置特殊屏蔽方式;设置特殊屏蔽方式IN AL,,0C2H OR AL,,10H ;屏蔽;屏蔽IR4;;10H==0001 0000OUT 0C2H,,AL STI ;;IR7请求,响应,返回请求,响应,返回 32数字量输入输出 CLIIN AL,,0C2H ;读出屏蔽字;读出屏蔽字AND AL,,0EFH ;;EFH=1110 1111清除清除IMR4OUT 0C2H,,ALMOV AL,,48H ;;OCW3::0 1 0 0 1 0 0 0OUT 0C0H,,AL ;取消特殊屏蔽;取消特殊屏蔽STI ;继续;继续IR4中断服务中断服务MOV AL,,20H ;;OCW2::0 0 1 0 0 0 0 0 (EOI)OUT 0C0,,ALIRET 33数字量输入输出((4)中断触发方式)中断触发方式•边沿触发:边沿触发:IRi出现上升沿表示有中断请求出现上升沿表示有中断请求 •电平触发:电平触发:IRi出现高电平表示有中断请求出现高电平表示有中断请求•在第在第1个个INTA#结束前,结束前,IRi必须保持高电平必须保持高电平 ((5)级联工作方式)级联工作方式•单片单片8259A可支持可支持8个中断源;个中断源;•采用多片采用多片8259A级连,可最多支持级连,可最多支持64个中断源。
个中断源n片片8259A可支持可支持7n+1个中断源;个中断源;•级连时只能有一片级连时只能有一片8259A为主片,其余的均为从属片;为主片,其余的均为从属片;•涉及到的涉及到的8259A引脚包括:引脚包括:–CAS0-CAS2–SP#/EN#–IRi–INT34数字量输入输出级连电路连接方法35数字量输入输出4、、 8259A的编程使用的编程使用•8259A的控制命令分为:的控制命令分为:–初始化命令字初始化命令字ICW•ICW1~~ICW4•向向8259A写入写入ICW的过程称为的过程称为初始化编程初始化编程–操作命令字操作命令字OCW •OCW1~~OCW3•向向8259A写入写入OCW的过程称为的过程称为操作方式编程操作方式编程36数字量输入输出((1))8259A内部寄存器的寻址方法内部寄存器的寻址方法CS# RD# WR#A0D4D3读写操作010000写写OCW2写写OCW3写写ICW1写写ICW2,ICW3,ICW4,OCW1(顺序写入序写入)00101x1xx00101xx读出出IRR、、ISR读出出IMRn需要需要CS#、、A0、、RD#、、WR#和和D4、、D3的配合的配合n内部寄存器的访问方法如下表:内部寄存器的访问方法如下表: 37数字量输入输出((2))8259A的初始化顺序的初始化顺序 •8259的初始化流程如图的初始化流程如图–注意次序不可颠倒注意次序不可颠倒 写写ICW1写写ICW2级连?级连?写写ICW3需需ICW4?写写ICW4NNYY((3))8259A的控制命令字的控制命令字•初始化初始化8259A必须从必须从ICW1开始开始–写写ICW1意味着重新初始化意味着重新初始化8259A–写入写入ICW1后,后,8259A的状态如下:的状态如下:•清除清除ISR和和IMR(全全0);;•将中断优先级设成初始状态:将中断优先级设成初始状态:IR0最高,最高,IR7最低;最低;•设定为一般屏蔽方式;设定为一般屏蔽方式;•采用非自动中断结束方式;采用非自动中断结束方式;•状态读出逻辑预置为读状态读出逻辑预置为读IRR。
38数字量输入输出①ICW1——初始化字初始化字•LTIM: 触发方式触发方式–=1 高电平触发高电平触发–=0 上升沿触发上升沿触发•SNGL: 级连控制级连控制–=1 单片单片–=0 级连级连•IC4: ICW4控制控制–=1 要写要写ICW4–=0 不写不写ICW4(默认(默认ICW4为全为全0))A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC439数字量输入输出②ICW2——中断向量码中断向量码•T7~~T3: 中断向量码的高中断向量码的高5位位•T2~~T0: 最低最低3位为中断源的序号位为中断源的序号IRn–000~~111分别对应分别对应IR0~~IR7–由由8259A根据中断源的序号自动填入根据中断源的序号自动填入 例如:例如:若若ICW2命令字为命令字为48H,则,则IR0的中断向量码为的中断向量码为48H,,IR7的的中断向量码为中断向量码为4FH,等等 A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 x x x40数字量输入输出③ICW3——级连控制字级连控制字 •主片的级联控制字主片的级联控制字 –Si=1 对应对应IRi线上连接了从片线上连接了从片 A0 D7D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1 S0•从片的级联控制字从片的级联控制字 –ID2~~ID0 标识码,说明本从片连接到主片的哪个标识码,说明本从片连接到主片的哪个IR引脚上。
引脚上 000~~111分别对应分别对应IR0~~IR7 A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID041数字量输入输出③ICW3——级连控制字(续)级连控制字(续)•ICW3必须与主从片的连接关系一致:必须与主从片的连接关系一致:例如,主片的例如,主片的IR4与从片的与从片的INT线连接,则主片的线连接,则主片的ICW3=10H,,从片的从片的ICW3=04H•中断响应时,主片通过级连线中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从送出被允许中断的从片标识码,各从片用自己的片标识码,各从片用自己的ICW3与与CAS2-CAS0比较,二者一致比较,二者一致的从片才可发送中断向量码的从片才可发送中断向量码42数字量输入输出④ICW4——中断结束方式字中断结束方式字 •SFNM: 特殊全嵌套特殊全嵌套1 特殊全嵌套方式特殊全嵌套方式0 一般全嵌套方式一般全嵌套方式•AEOI: 自动自动EOI1 自动自动EOI方式方式0 非自动非自动EOI方式方式A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNMBUF M/S AEOI 1•BUF: 缓冲方式缓冲方式 M/S: 主主/从缓冲选择从缓冲选择BUF M/S 1 1 缓冲方式缓冲方式/主主PIC 1 0 缓冲方式缓冲方式/从从PIC 0 x 非缓冲方式非缓冲方式/正常正常43数字量输入输出((4))8259A的操作命令字的操作命令字OCW •OCW用于设置用于设置8259的工作状态的工作状态•在初始化后写入在初始化后写入•OCW的写入顺序可任意的写入顺序可任意•写入地址要求:写入地址要求:–OCW1必须写入奇地址端口必须写入奇地址端口(A0=1)–OCW2,,OCW3必须写入偶地址端口必须写入偶地址端口(A0=0) 44数字量输入输出①OCW1——中断屏蔽字中断屏蔽字 •Mi=1 中断请求线中断请求线IRi被屏蔽被屏蔽(不允许中断不允许中断) =0 允许该允许该IRi中断中断 •OCW1将写入将写入IMR寄存器。
寄存器•A0=1时读时读OCW1可读出设置的可读出设置的IMR内容 A0 D7D6 D5 D4 D3 D2 D1 D0 1 M7 M6 M5 M4 M3 M2 M1 M045数字量输入输出②OCW2——中断结束和优先级循环中断结束和优先级循环 •L2~~L0: 优先级编码优先级编码•R: 优先级自动循环优先级自动循环•SL: 指定优先级指定优先级•EOI: 结束中断命令结束中断命令 A0 D7D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0R SL EOI0 0 1 非指定非指定EOI 命令命令(NSEOI),, 全嵌套方式全嵌套方式0 1 1 指定指定EOI 命令命令(SEOI),全嵌,全嵌 套方式,按套方式,按L2-L0编码复位编码复位ISR 1 0 1 NSEOI 命令,优先级自动循环命令,优先级自动循环1 0 0 自动自动EOI,设置优先级自动循环,设置优先级自动循环0 0 0 自动自动EOI,取消优先级自动循环,取消优先级自动循环 (固定优先级固定优先级)1 1 1 SEOI 命令,按命令,按L2-L0编码循环编码循环 优先级优先级(L2-L0设为最低优先级设为最低优先级)1 1 0 按按L2-L0编码循环优先级编码循环优先级(L2-L0 设为最低优先级设为最低优先级) 46数字量输入输出③OCW3——屏蔽方式和读出控制字屏蔽方式和读出控制字 •ESMM: 允许使能特殊屏蔽方式允许使能特殊屏蔽方式•SMM: 特殊屏蔽方式特殊屏蔽方式ESMM SMM1 1 特殊屏蔽方式置位特殊屏蔽方式置位1 0 特殊屏蔽方式复位特殊屏蔽方式复位0 x 非特殊屏蔽方式非特殊屏蔽方式P(Polling): =1 查询方式查询方式 =0 非查询方式非查询方式A0 D7D6 D5 D4 D3 D2 D1 D0 0 0 ESMM SMM 0 1 P RR RIS•RR: 读寄存器读寄存器•RIS: ISR/IRR选择选择RR RIS1 1 读读ISR1 0 读读IRR0 x 无效无效47数字量输入输出③OCW3(续)(续)•查询方式允许查询方式允许8259A不工作于中断方式,而是以查询方式工作。
不工作于中断方式,而是以查询方式工作–CPU先写一个先写一个D2=1的的OCW3,再对同一地址读入,即可得到,再对同一地址读入,即可得到如下状态字节:如下状态字节: I x x x x R2 R1 R0 I=1表示有中断请求,中断请求号为表示有中断请求,中断请求号为R2-R0 此查询步骤可反复执行,以响应多个同时发生此查询步骤可反复执行,以响应多个同时发生 的中断 •读读IRR/ISR:写入此命令后,随后再对同一地址读,即可得到:写入此命令后,随后再对同一地址读,即可得到IRR或或ISR的内容48数字量输入输出5、、8259A编程举例编程举例•按以下要求初始化按以下要求初始化8259A::–接口地址为接口地址为20H和和21H;;–中断为上升沿触发;单片中断为上升沿触发;单片8259A;不写;不写ICW4;;–与与IR0-IR3对应的中断向量码为对应的中断向量码为08H-0BH;;–IR4-IR7不使用•根据要求,各初始化参数及工作参数如下:根据要求,各初始化参数及工作参数如下:–ICW1 = 00010010 = 12H–ICW2 = 08H 中断向量码中断向量码 –OCW1 = 11110000 = 0F0H 中断屏蔽字中断屏蔽字 49数字量输入输出 5、、8259A编程举例(续)编程举例(续)初始化程序如下:初始化程序如下:INIT8259A::MOVDX,,20H;;A0=0,写,写ICW1MOVAL,,12H;上升沿触发,单片,不写;上升沿触发,单片,不写ICW4OUTDX,,ALMOVDX,,21H;;A0=1,写,写ICW2,,OCW1MOVAL,,08H;;ICW2OUTDX,,ALMOVAL,,0F0H;;OCW1:屏蔽:屏蔽IR4-IR7OUTDX,,AL50数字量输入输出6、、 PC机中断程序设计机中断程序设计1)主程序)主程序保存原中断向量保存原中断向量设置自己的中断向量设置自己的中断向量初始化堆栈指针初始化堆栈指针设置设置8259A的中断屏蔽字(其他的已由操作系统设置)的中断屏蔽字(其他的已由操作系统设置)STI2)中断服务程序)中断服务程序保存所用到的寄存器内容保存所用到的寄存器内容中断服务程序主体中断服务程序主体恢复进入时保存的寄存器内容恢复进入时保存的寄存器内容发发EOI命令(必要时可提前)命令(必要时可提前)STI(必要时可提前)(必要时可提前)IRET51数字量输入输出中断程序举例中断程序举例•PC机中主机中主8259A的的I/O地址为地址为20H和和21H,中断向量码为,中断向量码为08H;;•中断请求从中断请求从IR6引入,故引入,故中断类型号为中断类型号为0EH;;•主程序如下:主程序如下:;保存原来的中断向量;保存原来的中断向量movah,,35hmoval,,0eh;中断类型码;中断类型码int21h;取原中断向量(在;取原中断向量(在es:bx中)中)movsave_ip,,bx;保存原来的中断向量;保存原来的中断向量movsave_cs,,es52数字量输入输出;设置自己的中断向量设置自己的中断向量pushdsmovdx,,offset my_intmovax,,seg my_intmovds,,ax;;DS:DX的内容为的内容为my_int的首地址的首地址movah,,25hmoval,,0ehint21h ;设置自己的中断向量;设置自己的中断向量popds;初始化堆栈指针初始化堆栈指针movsp,,my_stack_top ;设置设置8259A的中断屏蔽字的中断屏蔽字inal,,21handal,,10111111b;开放;开放IR6中断中断out21h,,alsti…… <其他代码放在这里其他代码放在这里> ……53数字量输入输出•子程序如下:子程序如下:my_int proc farpusha… <中断服务程序主体中断服务程序主体>…popamoval,,20h;;EOI命令,命令,00100000B out20h,,al;写;写OCW2stiiretmy_int endp54数字量输入输出5.4 计数/定时接口5.4.1 基本概念基本概念计数定时接口电路需要讨论的问题:计数定时接口电路需要讨论的问题:1、计数容量、计数容量 2、计数频率、计数频率3、计数过程、计数过程4、输出信号、输出信号55数字量输入输出2、定时功能的实现方法、定时功能的实现方法:((1)软件延时)软件延时–利用微处理器执行一个延时程序段实现利用微处理器执行一个延时程序段实现–不用硬件,但占用不用硬件,但占用CPU时间、定时精度不高,随系统时钟频率改变时间、定时精度不高,随系统时钟频率改变((2)不可编程的硬件定时)不可编程的硬件定时–采用分频器、单稳电路或简易定时电路控制定时时间采用分频器、单稳电路或简易定时电路控制定时时间–定时电路简单、定时时间可以在一定范围改变定时电路简单、定时时间可以在一定范围改变((3)可编程的硬件定时)可编程的硬件定时–软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路–具有多种工作方式、能够输出多种控制信号具有多种工作方式、能够输出多种控制信号56数字量输入输出5.4.2 计数/定时器 82531、 8253的结构和工作原理 57数字量输入输出1))D0-D7:计算机总线;:计算机总线; :计算机写命令:计算机写命令OUT有效;有效; :计算机读命令:计算机读命令IN有效;有效; :由地址总线高位(比如:由地址总线高位(比如A2-A9)通过)通过138译码器和与非门等组合而成译码器和与非门等组合而成CS* A1 A0I/O地址地址读操作读操作RD*写操作写操作WR*0 0 00 0 10 1 00 1 140H41H42H43H读计数器读计数器0读计数器读计数器1读计数器读计数器2无操作无操作写计数器写计数器0写计数器写计数器1写计数器写计数器2写控制字写控制字58数字量输入输出2))A0,,A1:分别对应:分别对应3个计数器和控制字寄存器;个计数器和控制字寄存器;3)三个独立的十六位计数器:)三个独立的十六位计数器:CPU可对其进行工作方式设定、计数次可对其进行工作方式设定、计数次数的预置。
每当对数的预置每当对CLK口的计数结束时,口的计数结束时,OUT口会有一个结束标志口会有一个结束标志GATE门控信号,用于控制计数的进行门控信号,用于控制计数的进行4)计数启动:)计数启动:8253计数器的计数过程,可以直接用程序来启动,也可以设计数器的计数过程,可以直接用程序来启动,也可以设置成接在置成接在GATE口外部电路的信号启动,分别称为软件启动和硬件启动口外部电路的信号启动,分别称为软件启动和硬件启动预置寄存器预置寄存器OUT减减1计数器计数器输出锁存器输出锁存器GATECLK59数字量输入输出计数器的计数器的3个引脚说明:个引脚说明:q CLK时钟输入信号时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(在计数过程中,此引脚上每输入一个时钟信号(下降沿下降沿),计数器的计),计数器的计数值减数值减1q GATE门控输入信号门控输入信号控制计数器工作,可分成控制计数器工作,可分成电平控制电平控制和和上升沿控制上升沿控制两种类型两种类型q OUT计数器输出信号计数器输出信号当一次计数过程结束(计数值减为当一次计数过程结束(计数值减为0),),OUT引脚上将产生一个输出信号引脚上将产生一个输出信号q计数初值存于预置寄存器;计数初值存于预置寄存器;q在计数过程中,减法计数器的值不断递减,在计数过程中,减法计数器的值不断递减,q而预置寄存器中的预置不变。
而预置寄存器中的预置不变q输出锁存器用于写入锁存命令时,锁定当前计数值输出锁存器用于写入锁存命令时,锁定当前计数值60数字量输入输出2、 8253的的编程(1)写方式控制字写方式控制字 计数器计数器读写格式读写格式工作方式工作方式数制数制D7D6D5D4D3D2D1D00 二进制二进制1 十进制十进制00 计数器计数器001 计数器计数器110 计数器计数器211 非法非法00 计数器锁存命令计数器锁存命令 01 只读写低字节只读写低字节10 只读写高字节只读写高字节11 先读写低字节先读写低字节 后读写高字节后读写高字节000 方式方式0001 方式方式1010 方式方式2011 方式方式3100 方式方式4101 方式方式5控制字写入控制字控制字写入控制字I/O地址(地址(A1A0==11))61数字量输入输出3、、 8253的工作方式的工作方式 ((1)方式)方式0:计数结束中断:计数结束中断①①②②⑤⑤④④⑥⑥GATEOUTCLK 031244方式方式0WR①①设设定定工工作作方方式式②②设设定定计计数数初初值值④④计计数数值值送送入入计计数数器器⑤⑤计计数数过过程程⑥⑥计计数数结结束束GATE=1 允许计数;允许计数;GATE=0/下降沿下降沿 禁止计数禁止计数CPU 写计数器操作写计数器操作—— 写低字节后终止上次计数,写低字节后终止上次计数, 写高字节后开始新的计数写高字节后开始新的计数62数字量输入输出((2)方式)方式1:可编程单稳脉冲:可编程单稳脉冲①①②②⑤⑤④④⑥⑥①①设设定定工工作作方方式式②②设设定定计计数数初初值值③③③③硬硬件件启启动动④④计计数数值值送送入入计计数数器器⑤⑤计计数数过过程程⑥⑥计计数数结结束束GATEOUTCLK 031244方式方式1WR GATE=正跳变正跳变 1.启动计数启动计数 2. 下个脉冲后下个脉冲后OUT=063数字量输入输出((3)方式)方式2:频率发生器(分频器):频率发生器(分频器)03124GATEOUTCLK 4方式方式2031240312403124WRGATE=1 允许计数允许计数; GATE= 0/下降沿下降沿 禁止计数禁止计数, OUT=1; GATE=正跳变,正跳变, 启动计数启动计数64数字量输入输出((4)方式)方式3:方波发生器:方波发生器03124GATEOUTCLK 4方式方式3031240312403124WRGATE=1 允许计数允许计数; GATE= 0/下降沿下降沿 禁止计数禁止计数, OUT=1; GATE=正跳变,正跳变, 启动计数启动计数65数字量输入输出((5)方式)方式4:软件触发选通信号:软件触发选通信号GATEOUTCLK031244方式方式4223331 0WRGATE=1 允许计数;允许计数;GATE=0 禁止计数禁止计数66数字量输入输出((6)方式)方式5:硬件触发选通信号:硬件触发选通信号GATEOUTCLK031244方式方式52233311 0WR GATE=正跳变正跳变 启动计数启动计数67数字量输入输出各种工作方式的输出波形各种工作方式的输出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 168数字量输入输出写计数初值写计数初值 8253计计数数初初值值的的1到到FFFFH+1或或者者1到到9999+1。
当当初初值值为为零零时时,,要要重重新减到零才算结束,因此零用来表示最大的计数初值新减到零才算结束,因此零用来表示最大的计数初值读计数初值读计数初值((1)以普通对计数器端口读的方法取得当前计数值)以普通对计数器端口读的方法取得当前计数值 可可以以用用GATE无无效效或或者者阻阻断断时时钟钟输输入入等等方方法法,,使使计计数数器器暂暂停停计计数数,,保保证证CPU读到稳定的数值读到稳定的数值2)锁存计数器的当前计数值)锁存计数器的当前计数值 用用一一个个方方式式控控制制字字,,其其D5D4=00,,这这个个命命令令一一写写入入后后,,把把当当前前计计数数值值锁定寄存器,计数器可以继续工作,锁定寄存器,计数器可以继续工作,CPU可以读出计数值可以读出计数值69数字量输入输出通常,对于控制专业应用来说,用于计数时,常用方式通常,对于控制专业应用来说,用于计数时,常用方式0;;用于定时则常用方式用于定时则常用方式2或或370数字量输入输出例:8253的应用实例原理:原理:8253的的CLK2接到接到1.19MHz的信号源,的信号源,CNT2工工作于自动重复方式,产生连续作于自动重复方式,产生连续600Hz的连续方波;当的连续方波;当8255的的PB0=1时时CNT2开始工作;开始工作; PB1=1,, PB0=1时时场门打开,经过滤波发声;场门打开,经过滤波发声;8253的地址为:的地址为:40H~43H71数字量输入输出START: MOV AL, 0B7H; CNT2的控制字的控制字 OUT 43H, AL ; 043H对应控制字寄存器地址对应控制字寄存器地址 MOV AX, 1983; 计数初值(十进制)计数初值(十进制) OUT 42H, AL ; 042H对应计数器对应计数器2的地址的地址 IN AL, 61H ; 取取8255的的PB口口 MOV AH, AL ; 保护保护 OR AL, 03 ; 设设PB1=PB0=1 OUT 61H, AL ; 使扬声器发声使扬声器发声 SUB CX, CX ; 使循环计数值最大使循环计数值最大 L: LOOP L ; 延时循环延时循环 MOV AL, AH ; 恢复恢复8255的的PB口口 OUT 61H, AL ; 72数字量输入输出实验安排•周二下午周二下午14:30~18:00 自动化自动化C061+C062(半半)•周三下午周三下午14:30~18:00 自动化自动化C063+C062(半半)•周日上午周日上午08:30~12:00 自动化自动化C061+C062(半半)•周日下午周日下午14:30~16:00 自动化自动化C063+C062(半半)73数字量输入输出5.5可编程并行I/O接口芯片82555.5.1 8255A的组成及功能1、、8255A的引脚及结构的引脚及结构A1 A0端口选择线,共占用端口选择线,共占用4个端口地个端口地址,分别是址,分别是A、、B、、C三个数据端口三个数据端口以及一个控制寄存器端口,这四个以及一个控制寄存器端口,这四个口用口用A1A0的状态组合来进行选择。
的状态组合来进行选择 74数字量输入输出 :片选信号,低电平有效;:片选信号,低电平有效; :从:从CPU 写到写到8255A ;;OUT有效有效 :从:从8255A读到读到CPU;;IN有效有效RESET :复位信号,高电平有效复位后,控制寄存器被清除;:复位信号,高电平有效复位后,控制寄存器被清除;A、、B、、 C口置成输入方式且锁存器全清零口置成输入方式且锁存器全清零75数字量输入输出例如:例如:8255A的的CS片选为片选为200~203H,,PA口地址为口地址为200H;; PB口口地址为地址为201H;; PC口地址为口地址为202H;控制寄存器端口地址为;控制寄存器端口地址为203H :计算机写命令计算机写命令OUT有效;有效; 例如:例如:MOV DX,203H; OUT 203H,,AL;写控制字;写控制字 :计算机读命令:计算机读命令IN有效;有效; 例如:例如:IN AL,,201H;读;读PB口口并行并行I/O接口三端口接口三端口: PA7~PA0,,PB7~PB0 及及PC7~PC0 A口口----I/O锁存器和缓冲器;锁存器和缓冲器; B口口----I/O锁存器和缓冲器;锁存器和缓冲器;输入输入时可以不锁存;时可以不锁存; C口口----输入输入时只有缓冲无锁存;时只有缓冲无锁存;输出输出时锁存和缓冲;时锁存和缓冲;76数字量输入输出A、、B、、C口输出口输出----输出锁存器内容由输出锁存器内容由CPU用输入指令读出;用输入指令读出;用法用法::1)) A、、B、、C口口---------三个独立的三个独立的8位数据端口;位数据端口;2)) A、、B口口----------- 8位数据端口;位数据端口; C口口-------------- A、、B口与外设联络用的状态、控制信号;口与外设联络用的状态、控制信号;3)) A口、口、C口高四位口高四位---共同组成共同组成12位位A组数据端口;组数据端口; B口、口、C口低四位口低四位---共同组成共同组成12位位B组数据端口;组数据端口;77数字量输入输出2、、8255A的工作方式和控制字的工作方式和控制字 方式方式0--基本输入或输出方式基本输入或输出方式,既无须联络就可以直接进行的,既无须联络就可以直接进行的I/O。
在此方式下,在此方式下,A口、口、B口、口、C口的高、低口的高、低4位都可分别设置为输入或输出位都可分别设置为输入或输出 方式方式1--选通选通I/O此时接口和外设之间须联络信号进行协调此时接口和外设之间须联络信号进行协调只有只有A、、B口可工作在方式口可工作在方式1;;C口某些线规定为口某些线规定为A或或B口与外设间的信号联络线,余下线只能工作方式口与外设间的信号联络线,余下线只能工作方式0 方式方式2--双向双向I/O方式方式同一端口既可输入也可输出同一端口既可输入也可输出只有只有A可工作在方式可工作在方式2;;C口的口的5条条I/O线线-------A口与外设间的双向传送联络线,口与外设间的双向传送联络线, 3条条I/O线线-------作为作为B口方式口方式1的联络线;的联络线; 也可和也可和B口一起成为口一起成为B口方式口方式0的的I/O线 在一般的控制应用中,常用方式在一般的控制应用中,常用方式0 78数字量输入输出最高位最高位D7----控制字的特征位,必须为控制字的特征位,必须为“1”;;D6~D3-------控制控制A口及口及C口高四位(口高四位(A组);组);D2~D0-------控制控制B口及口及C口低四位(口低四位(B组);组);79数字量输入输出PC0000PC1001PC2010PC3011PC4100PC5101PC6110PC7111C口位控字口位控字80数字量输入输出((1)方式)方式0----A、、B、、C三口作数据通道;三口作数据通道; 输入时:无锁存只有缓冲;输入时:无锁存只有缓冲; 输出时:都有锁存;输出时:都有锁存;控制字:控制字:8AH==1 0 0 0 1 0 1 0D7--------1,特征位;,特征位; D6 D5----00,方式,方式0;; D4--------0,,A口输出;口输出;D3--------1,,C口高四位输入;口高四位输入; D2--------0,,B口工作方式口工作方式0;;D1--------1,,B口输入;口输入; D0--------0,,C口低四位输出;口低四位输出;3、、8255A的各种工作方式的功能的各种工作方式的功能 81数字量输入输出图图5.46 附加联络信号的方式附加联络信号的方式0 I/O ①给输出设备送数前给输出设备送数前--通过通过PC7查询设查询设备状态;若备状态;若ready从从A口送出数据;口送出数据; 再从再从PC1发选通信号使输出设备接受发选通信号使输出设备接受数据。
数据②给输入设备送数前给输入设备送数前----通过通过PC6查询查询设备状态;若设备状态;若ready从从B口送入数据;口送入数据;再从再从PC0发清除信号,以便输入后续发清除信号,以便输入后续字节P323)82数字量输入输出((2)方式)方式1----A、、B工作于方式工作于方式1,,C口的某些线作状态口的某些线作状态/控制用控制用①方式方式1输入输入A口工作于方式口工作于方式1输入,输入,PC5~PC3控制线;控制线;B口工作于方式口工作于方式1输入,输入,PC2~PC0控制线;控制线;图5.47 方式1输入的控制字及信号83数字量输入输出 ----选通信号,输入,低电平有效;选通信号,输入,低电平有效; PC4,, PC2IBF ----输入缓冲器满信号,输出,高电平有效输入缓冲器满信号,输出,高电平有效 IBFA PC5;;IBFB PC1INTR----中断请求信号,输出,高电平有效;中断请求信号,输出,高电平有效; 在在INTE==1且且IBF==1条件下,由选通信号后沿产生;条件下,由选通信号后沿产生; PC3 INTRA;; PC0 INTRBINTE----中断允许位;中断允许位; INTE=1 允许中断;允许中断;INTE==0 禁止中断;禁止中断;84数字量输入输出方式方式1输入输入1))A组方式控制字组方式控制字2))B组方式控制字组方式控制字3)读入)读入C口状态,各位表现的状态口状态,各位表现的状态D7D6D5D4D3D2D1D0I/OI/OIBFAINTEA INTRAINTEBIBFBINTRB85数字量输入输出tpstSTtSTBtSITtRITtRIBtPHSTBRDIBFINTR来自外设的输入数据 1方式输入时工作时序图方式输入时工作时序图86数字量输入输出②方式方式1输出输出A口工作于方式口工作于方式1输出,输出,PC7、、PC6、、PC3控制线;控制线;B口工作于方式口工作于方式1输出,输出,PC2~PC0控制线;控制线; 图5.48 方式1输出的控制字及信号87数字量输入输出 ----输出缓冲器满,输入,低电平有效;输出缓冲器满,输入,低电平有效; PC7,, PC1 ----应答信号,输出,低电平有效。
应答信号,输出,低电平有效 PC6;; PC2INTR----中断请求信号,输出,高电平有效;中断请求信号,输出,高电平有效; 在在INTE==1且且 ==1条件下,由应答信号后沿产生;条件下,由应答信号后沿产生; PC3 INTRA;; PC0 INTRBINTE----中断允许位;中断允许位; INTE=1 允许中断;允许中断;INTE==0 禁止中断;禁止中断;88数字量输入输出方式方式1输出输出1))A组方式控制字组方式控制字2))B组方式控制字组方式控制字3)读入)读入C口状态,各位表现的状态口状态,各位表现的状态D7D6D5D4D3D2D1D0OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB89数字量输入输出tWOBtWITtAOBtAKtAITtWBWRINTROBFACK输出1方式输出时工作时序方式输出时工作时序90数字量输入输出((3)方式)方式2----只有只有A口工作于双向的口工作于双向的I/O方式;方式;①A口以方式口以方式2输出数据时输出数据时仅在应答信号有效时出现在仅在应答信号有效时出现在PA7~PA0,否则为高阻状态;,否则为高阻状态;应答信号的应答信号的前沿前沿使使8255A输出数据,输出数据,后沿后沿使数据锁存在外设中。
使数据锁存在外设中②A口方式口方式2的的I/O共用一个中断请求共用一个中断请求INTR信号;信号;③A口方式口方式2时,时,B组选择方式组选择方式0,, PC2~PC0可独立选择可独立选择I/O;; B组选择方式组选择方式1,, PC2~PC0成为成为B口的联络线;口的联络线;91数字量输入输出方式方式21)控制字)控制字2)读入)读入C口状态,各位表现的状态口状态,各位表现的状态D7D6D5D4D3D2D1D0OBFAINTE1IBFAINTE2INTRA92数字量输入输出PC3PC7PA7~0PC6PC4PC5PC2~0≥1&INTE1INTE2&WRRDINTRA8OBFAACKASTBAIBFAI/O32 2方式的联络信号线定义方式的联络信号线定义93数字量输入输出外设数据线tWOBtAOBtSTtSIBtPStADtKDtPHtRIBINTRIBFWROBFACKSTBRD2方式时序关系方式时序关系数据从外设到8255A数据从8255A到外设数据从8255A到CPU数据从CPU到8255A94数字量输入输出例:例:8255A的应用--的应用--打印机接口电路打印机接口电路CPU PA0~7PC6PC2地 地BUSYSTBDATA0~78255A打印机插座结 束8255A 初始化BUSY=0?送 数送 STB内存+1字节数-1送完?开始YNYN95数字量输入输出工作过程:工作过程: 当主机要打印机打印字符时,先查询打印机信号当主机要打印机打印字符时,先查询打印机信号BUSY信号,若信号,若打印机正在处理一个字符或正在打印一个字符时,则打印机正在处理一个字符或正在打印一个字符时,则BUSY=1;否则;否则BUSY=0。
当查询当查询BUSY=0时;主机可以通过时;主机可以通过8255A向打印机输出一个字向打印机输出一个字符,需给打印机的符,需给打印机的STB端一个负脉冲,以便将字符选通到打印机的端一个负脉冲,以便将字符选通到打印机的输入缓冲器,打印机就可以打印该字符输入缓冲器,打印机就可以打印该字符主机要打印的字符通过主机要打印的字符通过8255A的的PA口送给打印机;口送给打印机;打印机的信号打印机的信号BUSY通过通过8255A的的PC2传送给主机;传送给主机;8255A的的PC6用以输出选通脉冲用以输出选通脉冲8255A的端口地址:的端口地址:200H~203H96数字量输入输出START: MOV AL, 81H ; 输入控制字输入控制字81H=1000 0001 MOV DX, 203H OUT DX, AL ; MOV AL, 0DH ; 写入写入C口的位控字口的位控字0DH=0000 1101 OUT DX, AL ; MOV DX, 202H L: IN AL, DX ; 读取读取C口的状态值口的状态值 TEST AL, 04H ; 若若BUSY==1则回去继续读取则回去继续读取C口状态口状态 JNZ L ; 若若BUSY==0则将则将CL中的字符送中的字符送AL MOV DX, 200H ; OUT DX, AL ; 将字符送到将字符送到A口口 97数字量输入输出 MOV AL, 0CH ; 使使STB为低电平为低电平0CH=0000 1100选通选通 OUT DX, 203H ; OUT DX, AL; MOV AL, 0DH ; 使使STB为高电平为高电平0DH=0000 1101恢复原始状态恢复原始状态 OUT DX, AL; RET 98数字量输入输出。












