微机原理与应用第7章2-3节2010SGQ_第1页
微机原理与应用第7章2-3节2010SGQ_第2页
微机原理与应用第7章2-3节2010SGQ_第3页
微机原理与应用第7章2-3节2010SGQ_第4页
微机原理与应用第7章2-3节2010SGQ_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

例:若有一台打印机,它的数据端口地址为01H,状态端口地址为00H,状态信息从D4位送入(为1时表示输出缓冲器有空,CPU可以向它输出新的数据)。编写程序把内存中自BLOCK开始的100个字节的数据块通过打印机打印出来。

JNZWAITHLT设置循环次数、地址偏移量输出一个字节数据修改循环次数及指针结束送完?YN输入状态信息空闲?YNMOVSI,OFFSETBLOCKMOVCX,100WAIT:INAL,00H

TESTAL,10HJZWAITMOVAL,[SI]OUT01H,ALINCSIDECCX习题:若有一个CRT(阴极射线管显示器)终端,它的输入输出数据的端口地址为01H,状态端口的地址为00H,其中D7位为1时表示输出缓冲器有空,CPU可以向它输出新的数据;D6位为1时,表示输入数据有效,CPU可以把它输入。

实现:(1)从终端上输入100个字节的字符,送入到以BUFFER开始的内存单元。 (2)把内存中自BLOCK开始的100个字节的数据块通过终端显示出来。LEASI,BUFFERMOVCX,100INAL,00HTESTAL,40HJZWAITINAL,01HMOV[SI],ALINCSIDECCXJNZWAITHLTWAIT:LEASI,BLOCKMOVCX,100INAL,00HTESTAL,80HJZWAITMOVAL,[SI]OUT01H,ALINCSIDECCXJNZWAITHLTWAIT:(无条件、查询传送都需要CPU的等待或不断查询,使CPU的效率降低。)中断传送:外设需要传送数据时,申请中断;当CPU允许中断,在中断服务程序中执行IN/OUT指令;然后返回主程序。启动外设主程序外设准备好输入设备Ready=1输出设备Busy=0中断请求中断响应数据IN/OUT中断服务程序IRET中断响应外设又一次准备好中断请求三、中断传送流程1、DMA传送的基本概念输入设备输出设备CPU内存

DMA(DirectMemoryAccess):是一种不需要CPU干预也不需要软件介入的高速数据传送方式。控制的硬件称为DMA控制器(DMAC)。四、直接数据通信传送DMA

问题:(1)数据传送需AB、DB、CB的参与;

(2)通常情况下,AB、DB、CB由CPU控制。流程无条件传送:慢速外设需与CPU保持同步查询传送:简单实用,效率较低中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送五、传送方式的比较中断传送流程返回DMA传送流程返回INTR=1i+1条指令中断服务程序i条指令CPU响应中断外设中断源申请中断中断处理的过程:INTA=0第三节中断一、中断的一般概念

②实时处理。③故障处理。1、中断的应用特点①CPU与外设并行工作。①内部中断:执行INTn

指令时产生中断。②外部中断:外设(I/O)设备向CPU提出中断申请,使INTR=1。2、中断源:引起中断的原因,或能发出中断申请的来源。二、中断申请中断源的功能:在需要时,向CPU发出中断申请INTR=1,直至CPU响应中断INTA=0后撤销中断申请。

Intel8088/8086的二种中断申请:可屏蔽中断申请和非屏蔽中断申请1、可屏蔽中断申请INTR使用STI、CLI指令,使CPU处于“开中断”或“关中断”状态。CPU只有在”开中断”状态下才能响应外设通过INTR可屏蔽中断线提出的中断申请。2、非屏蔽中断申请NMI

用户无法使用编程手段控制。只要NMI=1,CPU在当前指令运行结束后,马上响应NMI非屏蔽中断申请。三、中断系统的功能(8086/8088系统)1、中断响应和返回中断响应:中断屏蔽、断点和标志保护(CS、IP、)、转向

中断服务程序。中断返回:断点和标志恢复(IP、CS)、转向主程序。2、优先权排队多个中断源同时申请中断时,根据预先安排的各中断源预先级别,首先响应级别高的中断源;待中断服务结束后,再响应级别稍低的中断源。3、中断服务嵌套在低级中断源服务过程中,若有高级中断源申请,CPU中断低级别中断服务程序;响应高级别中断申请,并服务;待高级别中断服务结束后,再继续执行低级别中断服务。第二节最简单的中断情况一、CPU响应中断的条件1、(中断源接口电路设置的)中断请求触发器提出中断申请中断源提出的中断申请,CPU不可能马上响应,必须执

行完当前的指令,况且还有中断优先权排队等问题,故CPU需保持中断申请的信号。中断请求触发器的功能:使外设的READY、BUSY等状态信号保持到CPU响应外设的中断请求后再撤销。输入设备数据Ready数据端口地址译码DBABM/IORDINTRnRQDCPU

工作过程:①输入设备数据准备好输入数据数据端口(三态缓冲器)Ready=1中断申请触发器②中断申请触发器Q=1

向CPU提出中断申请INTR=1③CPU中断响应,在中断服务程序中执行INAL,n指令端口数据AL

中断申请触发器复位2、(中断源接口电路设置的)中断屏蔽触发器允许中断申请在有多个中断源的系统中,为了使CPU能灵活的控制外设的中断请求,对每个外设接口设置一个中断屏蔽触发器。只有当此触发器为“1”时,外设的中断请求才能被送至CPU。输入设备数据Ready数据端口地址译码DBABM/IORDINTRnRQDCPU中断屏蔽触发器Q优先权排队信号

IF=1,CPU允许中断,即中断开放

IF=0,CPU不允许中断,即中断关闭使IF=1的条件:执行STI指令使IF=0的条件:①执行CLI指令;

②CPURESET;③CPU响应中断3、CPU的中断是开放的

CPU内部设置(可屏蔽)中断允许触发器,它的状态由IF标志指示。4、CPU执行完当前指令

CPU在执行当前指令最后一个时钟周期时采样INTR,然后响应中断。二、CPU对中断的响应关中断断点保护转中断服务CPU自动执行中断响应保护现场开中断中断服务恢复现场返回主程序CPU执行中断服务程序执行一条指令指令结束INTR=1取下一条指令执行主程序CPUNN

1、CPU发INTA同时,自动关中断

2、CPU自动将断点CS,IP,PSW入栈

3、CPU将中断源提供的中断类型码形成中断服务入口地址,送CS,IP执行PUSH指令用于中断嵌套。若无中断嵌套,可放在恢复现场后执行POP指令原PSW,IP出栈,返回主程序INTR=1IF=1第三节中断优先权问题:多中断源,一条INTR申请线方法:按优先权处理;CPU先响应优先权级别高的中断源申请电路结构:1、各中断源申请通过或门组合后与INTR连接。2、各中断源情况通过缓冲器从DB输入。ABGH(D7)(D6)(D1)(D0)INTRDB三态缓冲器译码RDM/IO或..各外设中断触发器输出AB一、用软件确定优先权(查询法)INAL,20H

TESTAL,80HJNZPWATESTAL,40HJNZPWB………DONE:……PWA:…………JMPDONEPWB:…………JMPDONE查询法中断服务程序查询法软件结构所有外设共有一个中断服务程序。首先输入它们的中断申请情况,再依次查询每一个中断源申请情况;若是,则转入相应子程序服务。查询法特点查询次序就是优先权次序。电路简单,但转入服务时间长。保护现场输入各中断源中断触发器状态A申请B申请A外设服务B外设服务恢复现场返回主程序DONEYNNY二、硬件优先权排队电路IR7IR6IR1IR0INTR8:3优先权编码器或..各外设中断触发器输出优先权寄存器CPUDBA2A1A0B2B1B0A>B比较器132优先权失效组成:8:3,比较器,逻辑电路,优先权寄存器工作原理低高中断优先权级别A2A1A0若有多个中断申请,只输出优先权最高的编码000IR0中断申请001IR1中断申请………………111IR7中断申请①CPU在不处于中断服务时有中断申请②申请中断源的级别高于CPU在执行中断服务的级别。1、中断申请8:3优先权编码器将8个中断申请输入进行8:3编码2、优先权寄存器由CPU通过DB输入正在中断服务的优先权级别编码B2、B1、B0。若CPU不处于中断服务状态,则优先权失效信号为1。3、比较器对A2、A1、A0与B2、B1、B0的编码比较。A>B,则输出为1,表示申请级别高于正在服务的级别。4、逻辑电路通过逻辑组合,在下列二种情况下,INTR=1

8088/8086有一个简单而灵活的中断系统,每个中断都有一个中断类型码以供CPU进行识别,8086/8088可以处理256种不同的中断。这些中断又可分为外部中断和内部中断两大类。非屏蔽中断请求中断逻辑INTn指令INTO指令4除法出错0单步1(TF=1)断点中断3CPUNMI8259AIRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7INTR8086/8088中断源内部中断的特点:中断类型码包含在指令中,或者是预先规定的;不执行INTA总线周期;

除单步中断外,任何内部中断都无法禁止;除单步中断外,任何内部中断的优先级都比任何外部中断的高。一、8086/8088的中断源第四节8088/8086的中断方式优先权级别:内部>NMI>INTR>单步执行二、8086/8088的中断响应过程完成当前指令内部中断NMIINTRTF=1执行下一条指令IF=1响应中断读类型码标志入栈调服务程序CS、IP入栈清除IF、TF令TEMP=TF又有NMITEMP=1执行服务程序CS、IP出栈标志出栈继续执行被中断的程序YNNNNYYYYNNYYNIF=1读类型码N形成中断类型码

8086/8088在内存区的00000H~003FFH(1KB)建立一个中断向量表。用于存放与256个中断类型码(00H~0FFH)相应的中断服务程序入口地址。每个中断服务程序入口地址使用4个字节,低16bit为段内偏移量送IP,高16bit为段码送CS。三、8086/8088中断服务程序服务程序入口地址表

各中断服务程序入口地址的段地址和段内偏移量按中断类型号顺序存放在表中。因此由中断类型号n×4可得到相应中断服务程序入口地址的地址,取4n和4n+1单元中的内容(中断入口段内偏移量)装入指令指针IP,取4n+2和4n+3单元中的内容(中断入口段地址)装入代码段寄存器CS,即可转入中断服务程序。1.中断向量表类型0类型1类型2类型3类型4IPCS除数为零单步(TF=1)非屏蔽中断断点中断溢出(OF=1)000H004H008H00CH010HCPU使用(5)类型5类型63类型28014H070H0FCHDOS使用(59)1/18.2S定时类型64类型65类型66类型67类型255100H104H108H10CH3FCH用户使用(192)中断服务程序入口地址表中断服务程序入口地址表地址=4×中断类型码例:某中断的中断类型号为68H,其中断过程为:(1)计算存放中断服务程序入口地址的地址=68H×4=1A0H;(2)

取中断入口地址的段内偏移量装入IP,IP=2050H

,段码装入CS,CS=A000H;(3)转向中断服务程序;(4)中断返回502000A0001A0H001A2H001A4H存放地址=68H×4=1A0H2050A000STIPUSHDSIRET中断服务程序A000:2050INT68HMOVAX,01、8086CPU中断号为8的中断矢量存放在()。A).0FFFFH:0008HB).0000H:0008HC).0000H:0020HD).0020H:0000H8=1000B,100000B=20HC2、PC机采用向量中断方式处理8级外中断,其中断号依次为08H~0FH,在RAM0:2CH单元开始地址由低到高依次存放23H,FFH,00H和F0H四个字节,该向量对应的中断号和中断程序入口地址是()。A.0CH,23FFH:00F0HB.0BH,F000H:FF23HC.0BH,00F0H:23FFHD.0CH,F000H:FF23HB2CH=101100B,101100B=1011B=0BH3、中断向量是()A.被选中设备的起始地址B.传送数据的起始地址C.中断服务程序的入口地址

D.主程序的断点地址C4、下列8086CPU中断优先权顺序由高到低正确的是()A.单步中断,NMI,溢出中断

B.NMI,单步中断,溢出中断C.溢出中断,单步中断,NMID.溢出中断,NMI,单步中断5、键盘中断的中断类型号为09H,对应的中断服务程序入口地址为0BA9H:0125H,那么A9H所在的存储单元的地址为()

A.0000H:0025HB.0000H:0038HC.0000H:0026HD.0000H:0037HDC问答:1、外设向CPU发中断申请,但CPU不响应,可以有哪些原因?A.CPU处于关中断状态。IF=0B.该中断请求已经被屏蔽。C.该中断请求的时间太短,未能保持到指令周期结束。D.CPU响应了DMA请求,未收回总线控制权。2、如果1CH的中断服务程序从6100H:2010H开始,则中断向量如何存放。1CH×4=70H0000H:0070H70H10H71H20H72H00H73H61H3、已知内存单元00060H~00067H存放10H,12H,20H,23H,30H,34H,40H,45H,试求19H中断的中断服务程序的入口地址是多少(分别写出物理地址和逻辑地址)?19H×4=64HIP:3430HCS:4540H逻辑地址:4540H:3430H物理地址:45400H

+3430H

48830H1、8级优先权控制,通过级连可扩展到64级优先级控制;2、每一级可由程序单独屏蔽或允许;3、在CPU响应周期,可提供相应的中断类型码。中断类型码由8259编程设定;4、通过编程可设定多种工作方式。一、功能第五节中断控制器8259A中断控制器8259A方框图IR0IR7::中断请求寄存器IRR优先权电路在服务寄存器ISR中断屏蔽寄存器

IM`R控制逻辑INTAINTR数据总线缓冲器DBCS读/写逻辑RDWRA0级连缓冲/比较器CAS0CAS1CAS2SP/EN内部总线二、结构1、数据总线缓冲器与CPU的DB连接,传送控制字、状态字和中断类型码等。2、读写逻辑通过IORD、IOWR、CS、A0控制接收CPU的命令、发出8259的状态。CSRDWRA0D4D3读写操作

01001写ICW10101

写ICW2、ICW3、ICW4、OCW1010010写OCW2010001写OCW30010

读IRR/ISR0011

读IMR8259的读写功能3、级联缓冲/比较器(1)缓冲方式:在多片8259A级联的系统中,8259A通过总线驱动器和数据总线相联。在缓冲方式下,SP/EN与总线驱动器的允许端相连,控制总线驱动器的启动,当EN=0,8259A控制数据送到CPU,当EN=1,控制数据从CPU送到8259A。(2)非缓冲方式:此时各8259A直接与数据总线相连。SP/EN为输入端,当SP=1,该片为主片,当SP=0,该片为从片。主片与从片通过CAS0~CAS2级连。主片的INTR与CPU的INTR连接;从片的INTR作为主片的IR0~IR7输入。5、在服务寄存器ISR(8位)

存放正在服务的中断源级别,可用OCW3读出,当某个中断被响应后,CPU发出第一个INTA信号,ISR中的相应位置“1”,一直被保存到该中断处理结束。当多重中断时,ISR的多位同时被置1。非自动中断结束方式下,复位要用OCW2的中断结束命令EOI来执行。4、中断请求寄存器

IRR(8位)

存放中断请求信号,当IR0——IR7中的某个IR端有中断请求时,IRR相应的某位置1,其内容可用OCW3读出。当该中断被响应后,IRR相应的位被复位。优先权IR0最高,IR7最低。7、优先权电路(PR)对IRR保持的各中断请求(已屏蔽的除外)进行优先权判别,并在CPU的中断响应周期将其送ISR。在出现多重中断时,由PR判定是否允许所出现的中断去打断正在处理的中断,让优先级更高的中断优先处理。8、控制逻辑向CPU输出INTR中断请求,接受CPU的中断响应信号INTA。6、中断屏蔽寄存器

IMR(8位)用于存放对中断请求的屏蔽信息。软件编程使得IMR的某位为“1”时,相应IRR中的中断请求被屏蔽;若IMR的某位为“0”时,允许相应IRR中的中断请求进入中断优先级判别器。上述

操作由屏蔽命令OCW1来执行。IMR的各中断屏蔽位是独立的,屏蔽了优先级高的中断,不影响其它较低优先级的中断允许。

8259A采用28脚双列直插封装形式,如图7.22所示。

CS:片选信号,输入,低电平有效,来自地址译码器的输出。只有该信号有效时,CPU才能对8259A进行读/写操作。

WR:写信号,输入,低电平有效,通知8259A接收CPU从数据总线上送来的命令字。

RD:读信号,输入,低电平有效,用于读取8259A中某些寄存器的内容(如IMR、ISR或IRR)。三、8259A的外部引脚图7.228259A引脚

D7D0:双向、三态数据线,接系统数据总线的D7D0,用来传送控制字、状态字和中断类型号等。

IR7IR0:中断请求信号,输入,从I/O接口或其他8259A(从控制器)上接收中断请求信号。在边沿触发方式中,IR输入应由低到高,此后保持为高,直到被响应。在电平触发方式中,IR输入应保持高电平。

INT:8259A向CPU发出的中断请求信号,高电平有效,该引脚接CPU的INTR引脚。

INTA:中断响应信号,输入,接收CPU发来的中断响应脉冲以通知8259A中断请求已被响应,使其将中断类型号送到数据总线上。

CAS0CAS2:级联总线,输入或输出,用于区分特定的从控制器件。8259A作为主控制器时,该总线为输出,作为从控制器时,为输入。

SP/EN:从片/允许缓冲信号,输入或输出,该引脚为双功能引脚。在缓冲方式中(即8259A通过一个数据总线收发器与系统总线相连),该引脚被用做输出线,控制收发器的接收或发送;在非缓冲方式中,该引脚作为输入线,确定该8259A是主控制器(SP/EN=1)还是从控制器(SP/EN=0)。8259A的级联方式如图7.23所示。8259的中断级联CSA0D7-D0INTAINTCAS0CAS1CAS2SP/ENIR7IR6---IR0从82591#CSA0D7-D0INTAINTCAS0CAS1CAS2SP/ENIR7IR6---IR0从82592#CSA0D7-D0INTAINTCAS0CAS1CAS2SP/ENIR7IR6---IR0主8259GNDGNDVcc地址总线(16)控制总线(8)数据总线(8)四、中断顺序(8259在8086/8088系统)1、在ISR中存放正在服务的中断源级别。2、当IR0~IR7中一条或多条中断申请线为高电平时,使IRR相应位置1。3、若该中断源未被屏蔽,而且其优先级高于ISR中的中断级别,则INTR为1,向CPU申请中断。4、若CPU的IF=1,则在当前指令执行结束后响应该中断申请;向8259发出INTA=0信号。5、在第一中断响应周期,8259收到INTA=0后,IRR中最高级别的位使ISR的相应位置1,IRR的相应位复位。6、在第二中断响应周期,8259收到INTA=0后,CPU从DB接收8259提供的8bit中断类型码。7、CPU继续进行后续的中断响应过程。五、8259A的工作方式1、引入中断请求(中断触发)的方式。(1)边沿触发方式。上跳沿。(2)电平触发方式。高电平。(3)中断查询方式。软件查询确定中断源。2、屏蔽中断源的方式。(1)通常屏蔽方式。(2)特殊屏蔽方式。3、优先级排队的方式。(1)全嵌套方式。最常用的方式,IR0~IR7,也是默认方式。(2)特殊全嵌套方式。可响应同级中断请求,多用于级联。(3)优先级自动轮换方式。中断服务后其优先级变为最低,用于系统中各中断源优先级相等场合。(4)优先级指定轮换方式。与(3)不同的是最初不是IR0最高,而是指定最高。4、结束中断的处理方式。(1)自动中断结束方式:中断服务结束前自动清除响应的ISR位,不发中断结束命令。用在多个中断不含嵌套的系统中。(2)非自动中断结束方式:中断服务结束前必须发出中断结束命令才能使ISR中的当前服务位清除。六、8259命令字

8259的编程命令字有两种:初始化命令字ICW:在没有配置完善的操作系统的单板微机上进行。操作命令字OCW:OCW3很少使用。1.初始化命令字初始化命令字有四个ICW1、ICW2、ICW3、ICW4,首先输入ICW1,然后输入ICW2、ICW3、ICW4,由ICW1决定是否输入ICW3、ICW4。ICW1IC4SNGLADI0×1LTIM××A0D7D6D5D4D3D2D1D001不写ICW4写ICW401级联,写ICW3单片,不写ICW3=0(不用)8088/8086不用标志位0=边沿触发方式1=电平触发方式例:若8259A采用电平触发,单片使用,需要ICW4,写出ICW1的初始化,端口地址为20H,21H。110001100A0D7D6D5D4D3D2D1D001不写ICW4写ICW401级联,写ICW3单片,不写ICW3=0(不用)标志位0=边沿触发方式1=电平触发方式MOVAL,1BHOUT20H,ALICW1的其他作用:1、对8259A进行复位。(无RESET引脚)2、清除中断屏蔽寄存器,设置完全嵌套方式的中断优先级排队,使IRQ0最低,IRQ7最高8086不用写ICW1要求A0=0,所以用20H。ICW2D7D6D5D4D3D2D1D0A11/T31A0A10A15/T7A14/T6A13/T5A12/T4A9A8

D7D6D5D4D3D2D1D0IR7T7T6T5T4T3111IR6T7T6T5T4T3110IR5T7T6T5T4T3101IR4T7T6T5T4T3100IR3T7T6T5T4T3011IR2T7T6T5T4T3010IR1T7T6T5T4T3001IR0T7T6T5T4T30008259A输送的中断向量16位机无效中断类型号的高5位例如,在PC/XT中ICW2为00001000B,则对于从IR0、IR1、IR2、IR3、IR4、IR5、IR6和IR7上引入的各中断请求,其相应的中断类型号为08H、09H、0AH、0BH、0CH、0DH、0EH和0FH。

反之,如果中断类型号为60H~67H,则ICW2为01100000B.中断类型号是个8位代码。初始化编程时,通过命令字ICW2只能写入高5位,低3位由中断请求线IRi的二进制编码决定。同一片8259A上的8个中断源的中断号的高5位都相同。例:硬盘中断类型号的高5位是08H,它的中断请求线连接到8259A的IR5上,端口地址是20H,21H,写出ICW2的初始化。D7D6D5D4D3D2D1D011A00000000无效中断类型号的高5位MOVAL,08HOUT21H,AL写ICW2要求A0=1,所以用21H。对于16位机来说ICW2与外部申请中断类型号的高5位相同,8259的中断级联CSA0D7-D0INTAINTCAS0CAS1CAS2SP/ENIR7IR6---IR0从82591#CSA0D7-D0INTAINTCAS0CAS1CAS2SP/ENIR7IR6---IR0从82592#CSA0D7-D0INTAINTCAS0CAS1CAS2SP/ENIR7IR6---IR0主8259GNDGNDVcc地址总线(16)控制总线(8)数据总线(8)ICW3S2/ID21S5S4S3S7S6A0D7D6D5D4D3D2D1D0S1/ID1S0/ID08259A在级联工作方式(SNGL=0)时,要写入ICW3,它规定本8259为主设备,还是从设备。(1)工作在主设备8259A作为主设备,SP/EN接高电平,或缓冲方式ICW4的M/S=1时,S0---S7表明从设备接在IR0——IR7的哪一根线上,接有从设备的IR端对应的S位为1,未接从设备的IR端对应的S位为0。(2)工作在从设备8259A作为从设备时,SP/EN接低电平,或缓冲方式ICW4的M/S=0时,ID0---ID2表明从设备接在主设备的哪一根IR线上,ID0---ID2用编码表示IR0——IR7的8根线。8259的中断级联CSA0D7-D0INTAINTCAS0CAS1CAS2SP/ENIR7IR6---IR0从8259BCSA0D7-D0INTAINTCAS0CAS1CAS2SP/ENIR7IR6---IR0从8259ACSA0D7-D0INTAINTCAS0CAS1CAS2SP/ENIR6-

-

IR3--IR0主8259GNDGNDVcc地址总线(16)控制总线(8)数据总线(8)例:主片的IR3和IR6上连接了从片A和B的INT,主片端口地址是20H、21H,从片的为0A0H、0A1H和0B0H、0B1H。MOVAL,48HOUT21H,AL01×××××A0D7D6D5D4D3D2D1D01111×××××A0D7D6D5D4D3D2D1D0100100101A0D7D6D5D4D3D2D1D000主片从片A从片BMOVAL,03HOUT0A1H,ALMOVAL,06HOUT0B1H,ALICW4PMAEOIM/S10SFNMBUF00A0D7D6D5D4D3D2D1D001选用8位机选用16位机01非自动EOI方式自动结束中断方式0=全嵌套方式1=特殊全嵌套方式=非缓冲方式,此时若用级联,由SP/EN确定主从设备。=缓冲方式,本机为从机=缓冲方式,本机为主机01011全嵌套方式:高级中断可打断正在处理的中断,优先处理更高级的中断。特殊全嵌套方式:对于级联方式,主8259A把从同一从8259A来的不同级别的中断请求认为是同级的,而不予以响应。在8259A级联时,若主片处于特殊全嵌套方式就允许对相同级别的中断请求开放。例:8259与系统总线之间采用缓冲器连接,非自动结束方式。只用一片8259,正常完全嵌套,16位机。ICW4101100100A0D7D6D5D4D3D2D1D001非自动EOI方式自动结束中断方式0=全嵌套方式1=特殊全嵌套方式=非缓冲方式,此时若用级联,由SP/EN确定主从设备。=缓冲方式,本机为从机=缓冲方式,本机为主机0101101选用8位机选用16位机MOVAL,0DHOUT21H,AL例:CPU为8086,采用非自动结束方式,使用两片8259,非缓冲方式,主片采用特殊完全嵌套方式。ICW4100/1101000A0D7D6D5D4D3D2D1D001非自动EOI方式自动结束中断方式0=全嵌套方式1=特殊全嵌套方式=非缓冲方式,此时若用级联,由SP/EN确定主从设备。=缓冲方式,本机为从机=缓冲方式,本机为主机0101101选用8位机选用16位机MOVDX,21HMOVAL,15HOUTDX,AL2.操作命令字8259A有3个操作命令字,由CPU写入8259A,写入顺序不限。OCW1M01A0D7D6D5D4D3D2D1D0M7M6M5M4M3M2M1中断屏蔽字:1=屏蔽中断;0=允许中断例:要使中断源IR3开放,其它均被屏蔽。11A0D7D6D5D4D3D2D1D01111011MOVAL,0F7HOUT21H,AL填空:1、单片8259可管理()级可屏蔽中断。4片级联最多可管理()级。最大可扩展()级。298642、8259的A0接地址总线A1时,若其中一个端口地址为82H,另一个端口地址为()H;若某外设的中断类型码为86H,则该中断源应和8259的中断请求寄存器IRR的()输入端相连。80IR63、16位微机系统中,有一片8259构成中断控制系统。设在片内A0=0时端口的地址为PA,在片内A0=1时的端口地址为PB。MOVDX,PAMOVAL,00011011B;ICW1OUTDX,ALMOVDX,PBMOVAL,10001000B;ICW2OUTDX,ALMOVAL,00001101B;ICW4OUTDX,ALMOVAL,11000010B;OCW1OUTDX,AL

(1)、中断结束的方式为()。(2)、中断级IR2的中断类型码为()。(3)、IR1和IR2上有效的中断请求信号在IF=1时能否引起CPU的中断?非自动结束(ICW4的D1位0)(ICW2)8AHIR1不能引起CPU中断,IR2能引起CPU中断。(OCW1的D1和D2,是0不屏蔽,开放;是1屏蔽,禁止。)4、若中断向量表中地址为0040H单元中存放的是1234H,0042H单元中存放的是5679H,试问:(1)这些单元对于的中断类型号是什么?(2)该中断服务程序的起始地址是什么?分析:中断向量表地址=中断类型号×4可以用二进制表示的中断类型号左移2位。反过来,中断类型号=用二进制表示的中断向量地址逻辑右移2位。(1)由0040H=01000000B右移后=00010000B=10H=16D(2)中断向量即中断服务程序的起始地址。逻辑地址CS:IP=5679H:1234H已知中断类型号N,取(4N,4N+1)IP取(4N+2,4N+3)CS5、对于8259可编程控制器,当其单片使用时可同时接收(①

)外设的中断请求;当级联使用时主片的(②)应与从片的(③)连接。①A.8个B.12个C.4个D.16个②

A.SP/ENB.CSC.INTAD.IRi(i=0~7)A③A.INTB.INTRC.CSD.CASi(i=0~2)DA6、3片8259级联,最多可以接()个可屏蔽中断源。(8-从片个数)+从片个数×8=(8-2)+2×8=22个228259主片IR7……IR0INT8259从片IR7……IR0INT8259从片IR7……IR0INT7、某一可编程中断控制器8259A的IR3接在一个输入设备的中断请求输出线上,其中断类型号为83H,问该片的中断类型号的范围是多少?分析:中断类型号高5位都相同,所以是80H开始,后3位由所接的IRi决定。所以范围是连续8位:80H~87H。8、某中断控制器8259A,初始化命令字ICW2内容为23H,问该片的中断类型号的范围是多少?分析:一部分取自初始化命令字ICW2的高5位,另一部分来自IRi编号。D7D6D5D4D3D2D1D0ICW2的高5位000……IR0111……IR7…20H~27HL00A0D7D6D5D4D3D2D1D0RSLEOI00L2L1OCW2OCW2----控制8259A的中断结束和优先级循环方式的命令RSLEOI操作001正常EOI中断结束命令011特殊EOI中断结束命令101正常EOI时循环命令100自动EOI时循环置位命令000自动EOI时循环复位命令111特殊EOI时循环命令110优先级设定命令010无操作R、SL、EOI编码表L2L1L0IR000IR0001IR1010IR2011IR3100IR4101IR5110IR6111IR7L2、L1、L0中断等级编码R:优先级轮换;SL:指定中断等级;EOI:中断结束特殊EOI结束方式:正常EOI是自动清除级别最高的ISR位,而特殊EOI则清除有L0—L2指定的ISR位。自动AEOI结束方式:某中断被响应后,ISR对应位被置1,但CPU在中断响应的第二个脉冲将ISR的对应位清0。此时,尽管CPU对某个外设正在进行中断服务,但在8259A中无指示,低级别的中断可打断高级中断,产生重复嵌套,嵌套深度无法控制。在级联方式下,一般用非自动结束方式,中断结束时,要发两次中断结束命令,一次是对主片,另一次是对从片发的位。(1)中断结束命令普通EOI结束方式:8259A收到EOI结束命令后,自动将ISR中级别最高的置“1”位清“0”。特殊循环(特定优先级):由编程设定最低优先级,从而规定了所有其它的优先级。例:若设定IR3对应的设备优先级最低,则IR4对应的设备优先级最高。(3)优先级循环自动循环(设备优先级相等):一个设备受到服务后,优先级变得最低,原优先级比它低一级的设备的优先级变得最高。(2)优先级设定命令IR77IR66IR55IR44IR33IR22IR11IR00默认优先级IR74IR63IR52IR41IR30IR27IR16IR05优先级循环RIS0A0D7D6D5D4D3D2D1D0*ESMMSMM01PRROCW3OCW3----特殊屏蔽方式和查询方式的命令0*:无效10:下次RD有效读IRR11:下次RD有效读ISR1:查询8259A状态0:不查询标志位0*:无效10:特殊屏蔽方式复位11:特殊屏蔽方式置位七、8259A在微机系统中的应用

系统复位后,由初始化程序对8259置入初始化命令字ICW。初始化后可通过发出操作命令字OWC来定义8259A的操作方式,实现对8259A的控制,但不需要按顺序发出,也不需要安排在程序的开头。初始化命令字只发一次,操作命令字可以重置,以动态改变8259A的操作与控制方式。写ICW1写ICW2级联方式写ICW3需要ICW4写ICW4NYYN例1:系统中有一片8259A,中断请求信号用电平触发方式,要用ICW4,中断类型码为60H~67H,用特殊完全嵌套方式,无缓冲,采用中断自动结束方式。设端口地址为20H,21H。1100×11××A0D7D6D5D4D3D2D1D001不写ICW4写ICW401级联,写ICW3单片,不写ICW3=0(不用)8088/8086不用标志位0=边沿触发方式1=电平触发方式ICW1:1BHD7D6D5D4D3D2D1D001A00011000无效中断类型号的高5位ICW2与中断类型号高5位一致,低3位16位机的时候无效。ICW2:60HICW4110/1101000A0D7D6D5D4D3D2D1D00=全嵌套方式1=特殊全嵌套方式=非缓冲方式,此时若用级联,由SP/EN确定主从设备。=缓冲方式,本机为从机=缓冲方式,本机为主机0101101选用8位机选用16位机MOVAL,1BHOUT20H,AL;写ICW101非自动EOI方式自动结束中断方式ICW4:13HMOVAL,60HOUT21H,AL;写ICW2MOVAL,13HOUT21H,AL;写ICW4例2:系统中有一片8259A,中断请求信号用电平触发方式,要用ICW4,中断类型码为60H~67H,用特殊完全嵌套方式,无缓冲,采用中断自动结束方式。设端口地址为93H,94H。ICW1:1BH需要注意的就是ICW1的A0要求是0,其它A0要求是1。ICW2:60HMOVAL,1BHOUT94H,AL;写ICW1ICW4:13HMOVAL,60HOUT93H,AL;写ICW2MOVAL,13HOUT93H,AL;写ICW4例3:单片8259A,完全嵌套方式。8259A的IR0~IR7中断类型号依此为08H~0FH,端口地址为20H~21H,中断采用边沿触发方式,缓冲器方式,发EOI中断结束,全嵌套优先级管理的工作方式。ICW1:00010011BICW2:00001000BMOVAL,13HOUT20H,AL;写ICW1ICW4:00001101BMOVAL,08HOUT21H,AL;写ICW2MOVAL,0DHOUT21H,AL;写ICW4例4:8086系统采用级联方式,主8259A的中断类型码从30H开始,端口地址为20H、21H,中采用边沿触发方式。从片8259A的INT接主片的IR7,从片中断类型码从40H开始,端口地址为22H、23H,采用边沿触发方式,主从片均不需要ICW4。MOVAL,00010000BMOVDX,20HOUTDX,AL;写ICW1MOVAL,30HINCDXOUTDX,AL;写ICW2MOVAL,80H;OUTDX,AL;写ICW3(1)主8259A初始化(2)从片初始化0100010A0D7D6D5D4D3D2D1D00011×××××A0D7D6D5D4D3D2D1D011主片从片MOVAL,00010000BMOVDX,22HOUTDX,AL;写ICW1MOVAL,40HINCDXOUTDX,AL;写ICW2MOVAL,07H;OUTDX,AL;写ICW3例5:8086系统采用级联方式,主8259A的中断类型码从30H开始,端口地址为20H、21H,中采用边沿触发方式。从片8259A的INT接主片的IR7,从片中断类型码从40H开始,端口地址为22H、23H,采用边沿触发方式,主从片均采用非缓冲,全嵌套,非自动结束方式。MOVAL,00010001BMOVDX,20HOUTDX,AL;写ICW1MOVAL,30HINCDXOUTDX,AL;写ICW2MOVAL,80H;OUTDX,AL;写ICW3(1)主8259A初始化(2)从片初始化MOVAL,00010001BMOVDX,22HOUTDX,AL;写ICW1MOVAL,40HINCDXOUTDX,AL;写ICW2MOVAL,07H;OUTDX,AL;写ICW3MOVAL,01H;OUTDX,AL;写ICW4MOVAL,01H;OUTDX,AL;写ICW4例6:某16位系统有两片8259级联,从片8259接主片的IR4。1:对主片的要求:(1)主8259有级联,从IR4引入。(2)中断请求信号以边沿触发。(3)中断类型号为60H~67H。(4)采用非自动结束方式EOI,非缓冲方式。(5)采用特殊完全嵌套方式。(6)屏蔽IR2,IR4和IR5以外的中断源。(7)端口地址为20H,21H。MOVAL,11HOUT20H,AL;写ICW1MOVAL,60HOUT21H,AL;写ICW2MOVAL,10HOUT21H,AL;写ICW3MOVAL,0CBHOUT21H,AL;写OCW1MOVAL,11HOUT21H,AL;写ICW411A0D7D6D5D4D3D2D1D011001012:对从片8259A的要求:(1)从片8259接在主片IR4上。(2)中断请求信号以边沿触发。(3)中断类型号为40H~47H。(4)采用非自动结束方式EOI,非缓冲方式。(5)采用特殊完全嵌套方式。(6)屏蔽IR0和IR3以外的中断源。(7)端口地址为0A0H,0A1H。MOVAL,11HOUT0A0H,AL;写ICW1MOVAL,40HOUT0A1H,AL;写ICW2MOVAL,04HOUT0A1H,AL;写ICW3MOVAL,0F6HOUT0A1H,AL;写OCW1MOVAL,11HOUT0A1H,AL;写ICW401A0D7D6D5D4D3D2D1D01111011例7:某16位系统有两片8259级联,从片8259接主片的IR4。主片的IR2和IR5有外部中断引入,从片的IR0和IR3也有。1:对主片的要求:(1)主8259有级联,从IR4引入。(2)中断请求信号以边沿触发。(3)中断类型号为60H~67H。(4)采用非自动结束方式采用一般EOI结束EOI,非缓冲方式。(5)采用特殊完全嵌套方式。(6)屏蔽IR2,IR4和IR5以外的中断源。(7)采用一般EOI结束。MOVAL,11HOUTMPORT0,AL;写ICW1MOVAL,60HOUTMPORT1,AL;写ICW2MOVAL,10HOUTMPORT1,AL;写ICW3MOVAL,0CBHOUTMPORT1,AL;写OCW1MOVAL,11HOUTMPORT1,AL;写ICW4MOVAL,20HOUTMPORT0,AL;写OCW22:对从片8259A的要求:(1)从片8259接在主片IR4上。(2)中断请求信号以边沿触发。(3)中断类型号为40H~47H。(4)采用非自动结束方式EOI,非缓冲方式。(5)采用特殊完全嵌套方式。(6)屏蔽IR0和IR3以外的中断源。(7)采用一般EOI结束。MOVAL,11HOUTSPORT0,AL;写ICW1MOVAL,40HOUTSPORT1,AL;写ICW2MOVAL,04HOUTSPORT1,AL;写ICW3MOVAL,0F6HOUTSPORT1,AL;写OCW1MOVAL,11HOUTSPORT1,AL;写ICW4MOVAL,20HOUTSPORT0,AL;写OCW2例8:IR4为正在运行的中断,希望在特殊的程序段上允许较低的中断得到响应。…CLI;关中断,便于设置命令MOVAL,10H;置OCW1的M4=1,屏蔽IR4MOVDX,PORT1;OCW1口地址OUTDX,ALSTI;开中断,CPU继续对IR4作中断处理。若有低级中断,

CPU响应并进行中断处理后返回,继续对IR4进行中断处理。MOVAL,68H;置OCW3的D6D5=11,设置特定屏蔽方式MOVDX,PORT2;OCW3口地址OUTDX,AL…CLI;关中断MOVAL,48H;置OCW3的D6D5=10,清除特定屏蔽方式MOVDX,PORT2;OCW3口地址OUTDX,ALMOVAL,00H;置OCW1的M4=0,解除对IR4屏蔽MOVDX,PORT1;OCW1口地址OUTDX,ALSTI;开中断…MOVAL,01100L2L1L0;OCW2中断结束命令(指定中断结束命令)MOVDX,PORT2;OCW2口地址OUTDX,ALIRET;返回主程序RDWRCSA0D7--D0INTACAS0CAS1CAS2IR7IR6IR5IR4IR3IR2IR1IR0INTSP/EN从8259RDWRCSA0D7--D0INTACAS0CAS1CAS2SP/ENIR7IR6IR5IR4IR3IR2IR1IR0主8259INT外部中断请求外部中断请求例:某中断级联系统,从片的INT端接主片的IR3,主片从IR1、IR3引入两个中断请求,中断类型号为31H、35H。中断服务程序的段基址为1000H,偏移量分别为2000H、3000H。从8259的IR4、IR5引入两个中断请求,中断类型号为44H、45H。中断服务程序的段基址为2000H,偏移量分别为3600H、4500H。002000100030001000450020003600200011600114001120011

温馨提示

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

评论

0/150

提交评论