第九章中断控制器计时定时控制器及DMA控制器_第1页
第九章中断控制器计时定时控制器及DMA控制器_第2页
第九章中断控制器计时定时控制器及DMA控制器_第3页
第九章中断控制器计时定时控制器及DMA控制器_第4页
第九章中断控制器计时定时控制器及DMA控制器_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

第9章中断控制器、计数/定时控制器及DMA控制器9.1可编程中断控制器8259A8259A的功能主要功能:

①一片8259A可以接受并管理8级可屏蔽中断请求。②对每一级中断都可以通过程序来屏蔽或允许。

③在中断响应周期,8259A可为CPU提供相应的中断类型码、屏蔽中断输入。

④具有多种工作方式,并可通过编程来加以选择。用于管理和控制80x86的外部中断请求。9.1.18259A的内部结构

中断请求寄存器IRR:8位,接受并锁存来自IR0~IR7的中断请求信号。

中断服务寄存器ISR:8位,保存当前正在处理的中断请求。

中断屏蔽寄存器IMR:8位,若IRR中记录的各级中断中有任何一级需要屏蔽,只要将IMR的相应位置1即可,未被屏蔽的中断请求进入优先权判别器。

优先权判别器PR:能够将各中断请求中优先级最高者选中,并将ISR中相应位置1。

数据总线缓冲器:8259A与系统之间传送信息的数据通道。

读/写控制逻辑:包含了初始化命令字寄存器和操作命令字寄存器。其功能是确定数据总线缓冲器中数据的传输方向,选择内部的各命令字寄存器。

级联缓冲/比较器:存放和比较在系统中用到的所有8259A的级联地址。CPU收到中断请求后,若IF=1,则CPU完成当前指令后响应中断,即执行两个中断响应周期,在引脚上发出两个负脉冲。8259A收到第一个负脉冲后,使IRR锁存功能失效,不接受IR0~IR7上的中断请求信号;直到第二个负脉冲结束后,才又使IRR锁存功能有效,并清除IRR的相应位,使ISR的对应位置1,以便为优先级判别器以后的判别提供依据。收到第二个负脉冲后,8259A把当前中断的中断类型号送到D7~D0,CPU根据此类型号进入相应的中断服务程序。在中断服务程序结束时向8259A发中断结束命令,该命令将ISR寄存器的相应位清0,中断处理结束。8259A的外部引脚CS:片选信号,输入,低电平有效,来自地址译码器的输出。只有该信号有效时,CPU才能对8259A进行读/写操作。WR:写信号,输入,低电平有效,通知8259A接收CPU从数据总线上送来的命令字。RD:读信号,输入,低电平有效,用于读取8259A中某些寄存器的内容。D7D0:双向、三态数据线,接系统数据总线的D7D0,用来传送控制字、状态字和中断类型号等。IR7IR0:中断请求信号,输入,从I/O接口或其他8259A(从控制器)上接收中断请求信号。INT:8259A向CPU发出的中断请求信号,高电平有效,该引脚接CPU的INTR引脚。INTA:中断响应信号,输入,接收CPU发来的中断响应脉冲以通知8259A中断请求已被响应,使其将中断类型号送到数据总线上。CAS0CAS2:级联总线,输入或输出,用于区分特定的从控制器件。8259A作为主控制器时,该总线为输出,作为从控制器时,为输入。SP/EN:从片/允许缓冲信号,输入或输出,该引脚为双功能引脚。在缓冲方式中(即8259A通过一个数据总线收发器与系统总线相连),该引脚被用做输出线,控制收发器的接收或发送;在非缓冲方式中,该引脚作为输入线,确定该8259A是主控制器(SP/EN=1)还是从控制器(SP/EN=0)。A0为地址输入信号,用于对8259A内部寄存器端口的寻址。单片8259A可管理8级中断,若采用级联方式,最多可以用9片8259A构成两级中断机构,管理64级中断。3.中断触发方式(1)电平触发方式该方式以IR端上出现的高电平作为中断请求信号。请求一旦被响应,该高电平信号应及时撤除。(2)边沿触发方式该方式以IR端上出现由低电平向高电平的跳变作为中断请求信号,跳变后高电平一直保持,直到被响应。

4.与系统总线的连接方式(1)缓冲方式缓冲方式主要用于多片8259A级联的大系统中。在缓冲方式下,8259A通过总线收发器(如8286)和数据总线相连。8259A的SP/EN作为输出(EN有效)。(2)非缓冲方式非缓冲方式主要用于单片8259A或片数不多的8259A级联的系统中。该方式下,8259A直接与数据总线相连,8259A的SP/EN作为输入(SP有效)。只有单片8259A时,SP/EN端必须接高电平;有多片8259A时,主片的SP/EN端接高电平,从片的该引脚接低电平。

9.1.28259A的工作方式中断优先级管理方式(1)全嵌套模式也称固定优先级方式。在这种方式下,由IR端引入的中断请求具有固定的优先级,IR0最高,IR7最低。8259A的默认方式。当一个中断请求被响应时,ISR中的对应位ISn被置1,8259A把中断类型号放到数据总线上,然后进入中断服务程序。一般情况下(除中断自动结束方式外),在CPU发出中断结束命令前,此对应位一直保持为1,以封锁同级或低级的中断请求,但并不禁止比本级优先级高的中断请求。注意:要在每一个中断服务程序末尾使用EOI命令,使相应的ISRn=0,以结束本次中断,开放本中断请求以及本中断以下的各级中断。(2)特殊全嵌套中断方式在主从结构的8259A系统中,将主片设置为特殊全嵌套方式,可以在处理某一级中断时,不但允许优先级更高的中断请求进入,也允许同级的中断请求进入。(3)优先级自动循环方式采用这种方式,各中断源优先级是循环变化的,主要用在系统中各中断源优先级相同的情况下。一个设备的中断服务完成后,其优先级自动降为最低,而将最高优先级赋给原来比它低一级的中断请求。开始时,优先级队列还是IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7(IR0最高,IR7最低);若此时出现了IR0请求,响应IR0并处理完成后,队列变为IR1,IR2,IR3,IR4,IR5,IR6,IR7,IR0;若又出现了IR4请求,处理完IR4后,队列变为IR5,IR6,IR7,IR0,IR1,IR2,IR3,IR4(IR5变为最高优先级)。(4)优先级特殊循环方式该方式与优先级自动循环方式相比,只有一点不同,即可以设置开始的最低优先级。例如,最初设定IR4为最低优先级,那么IR5就是最高优先级,而优先级自动循环方式中,最初的最高优先级一定是IR0。(5)查询方式这种方式下,CPU的IF位为0,禁止外部的中断请求。外设仍然向8259A发中断请求信号,要求CPU服务,此时,CPU需要用软件查询方法来确认中断源,从而实现对外设的服务。CPU首先向8259A发查询命令,紧接着执行一条输入指令(IN),从8259A的偶地址读出一个字节的查询字,由该指令产生的RD信号使ISR的相应位置1。CPU读入查询字后,判断其最高位,若最高位为1,说明8259A的IR端已有中断请求输入,此时该查询字的最低三位组成的代码表示了当前中断请求的最高优先级,CPU据此转入相应的中断服务程序。2.中断屏蔽方式

(1)普通屏蔽方式(由OCW1产生)

通过对中断屏蔽寄存器(IMR)的设定,实现对中断请求的屏蔽。中断屏蔽寄存器的每一位对应了一个级别的中断请求,当某一位为1时,与之相应的某一级别的中断请求被屏蔽。CPU在响应某一中断请求时,还可以在主程序或中断服务程序中对IMR的某些位置1,以禁止高级别中断的进入。

(2)特殊屏蔽方式(由OCW3产生)

当一个优先级较高的中断请求正在被处理时,若设置了特殊屏蔽方式,则允许优先级较低的中断进入正在处理的高级别中断。

3.中断结束方式①中断自动结束方式(即全嵌套方式下的自动EOI)该方式在第二个INTA负脉冲的后沿即完成对应的ISR位的复位。注意,该方式是在中断响应后,而不是在中断处理结束后将ISR位清0。这样,在中断处理过程中,8259A中就没有“正在处理”的标识。此时,若有中断请求出现,且IF=1,则无论其优先级如何,都将得到响应。尤其是当某一中断请求信号被CPU响应后,如不及时撤消,就会再次被响应(即二次中断)。所以,中断自动结束方式适合于中断请求信号的持续时间有一定限制以及不出现中断嵌套的场合。

②一般中断结束方式(即全嵌套方式下的正常EOI,也即非指定的EOI命令,OCW2中命令字为20H)该方式用于全嵌套方式下的中断结束。CPU在中断服务程序结束时,向8259A发常规中断结束命令,将8259A的中断服务寄存器中最高优先级的IS位清0。在全嵌套方式下,ISR中最高优先级的IS位,对应于当前正在处理的中断(即最后一次被响应和处理的中断),将其清0,就相当于结束了当前正在处理的中断。③特殊中断结束方式(SEOI)(结合OCW2)在非全嵌套方式下,根据ISR的内容无法确定最后所响应和处理的是哪一级中断。这种情况下,就必须用特殊的中断结束方式,即在程序中要发一条特殊中断结束命令,该命令指出了要清除ISR中的哪一位。

注意:在级联方式下,一般不用中断自动结束方式,而是用一般结束方式或特殊结束方式。在中断处理程序结束时,必须发两次中断结束命令,一次是发往主片,另一次发往从片。9.1.38259A芯片的控制字及其工作方式8259A有两类命令字:初始化命令字ICW和操作命令字OCW。在8259A的控制部分有7个CPU可访问的寄存器。分成两组:一组用做存ICW,另一组存OCW。当计算机刚启动时,用初始化程序设定ICW,即由CPU按次序发送24个不同格式的ICW,用来建立起8259A操作的初始状态,此后的整个工作过程中该状态保持不变。相反,OCW用于动态控制中断处理,是在需要改变或控制8259A操作时随时发送的。每片8259A有2个片内地址A0=0和A0=1,所有的命令字都是通过这两个端口来发送的。注意,当发出ICW或OCW时,CPU中断申请引脚INTR应关闭。1.初始化命令字

(1) ICW1ICW1主要用于设置工作方式。

(8086/8088系统中这3位不用,置为0。)

对A0=0的端口写入一个D4=1的数据,表示初始化编程开始。D4:特征位,必须为1;D3:LTIM位,设置中断请求信号的触发方式,0为边沿触发,1为高电平触发。D1:SGNL位,是否工作在单片方式,0为多片级联,1为单片。D0:IC4位,是否有ICW4,0表示后面不需设置命令字ICW4,1表示后面还需要设置ICW4。D2和D7D5:仅对8080/8085系统有意义,8086/8088系统中这3位不用,置为0。

(2) ICW2ICW2用于设置中断类型号,写入A0=1的端口。在8086/8088系统中,只设置D7D3,即只需设置中断类型号的高5位,编程时D2D0的值可任意设定(通常设为0),D2D0的实际内容由8259A根据中断请求来自IR0IR7的哪一个输入端,自动填充为000111中的某一组编码,与高5位一同构成8位的中断类型号。(3) ICW3:ICW3用于设置级联,写入A0=1的端口。

只有当系统中有级联(ICW1的SNGL位为0)时,才写入ICW3。对于主片,ICW3的S0S7指明了IR0IR7各引脚连接从片的情况,置1的位表示对应的引脚有从片级联。对于从片,ICW3的D7D3不用,置0即可;用D2D0表示与主片的对应引脚级联。

(4)ICW4ICW4用于设置8259A的工作方式,写入A0=1的端口。ICW1的IC4位为1时,才写入ICW4。即一般中断结束方式D4:SFNM位,设置中断的嵌套方式,0为一般嵌套方式,1为特殊的全嵌套方式。D3:BUF位,若该位为1,则8259A工作于缓冲方式,8259A通过数据总线收发器和总线相连,SP/EN引脚为输出;该位为0,8259A工作于非缓冲方式,SP/EN引脚为输入,用做主片、从片选择端。D2:M/S位,当D3即BUF位为1时,该位才有效,用于主片/从片选择,0表示本片8259A为从片,1表示本片8259A为主片;当BUF位为0时,该位无效,可设为任意值。D1:AEOI位,设置结束中断方式。0表示中断正常结束,靠中断结束指令清除ISR相应位;1表示自动结束中断,即CPU响应中断后,立即自动清除ISR相应位。D0:μPM位,设置微处理器类型。0表示系统采用8080/8085微处理器;1表示系统采用8086/8088微处理器。2.初始化编程

任何一种8259A的初始化都必须发送ICWl和ICW2,只有在ICWl中指明需要ICW3和ICW4以后,才发送ICW3和ICW4。一旦初始化以后,若要改变某一个ICW,则必须重新再进行初始化编程,不能只是写入单独的一个ICW。

例:PC/AT机中8259A的主片定义为:上升沿触发、在IR2级联从片、有ICW4、非缓冲方式、正常EOI方式、中断类型号08H0FH、一般的中断嵌套方式、端口地址是20H、21H;从片定义为:上升沿触发、级联到主片的IR2、有ICW4、非缓冲方式、正常EOI方式、中断类型号为70H78H、一般的中断嵌套方式、端口地址是A0H、A1H。 初始化主片 MOV AL,11H OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,04H OUT 21H,AL MOV AL,01H OUT 21H,AL初始化从片MOV AL,11HOUT 0A0H,ALMOV AL,70HOUT 0A1H,ALMOV AL,02HOUT 0A1H,ALMOV AL,01HOUT 0A1H,AL;ICW1;ICW2;ICW3;ICW4;ICW1;ICW1;ICW1;ICW1中断类型号,即中断向量初始化过程如下:3.操作命令字系统初始化完成以后,可以在应用程序中随时向8259A送操作命令字,以改变8259A的工作方式,读出8259A内部寄存器的值等。

1) OCW1OCW1的功能是设置和清除中断屏蔽寄存器的相应位,写入A0=1的端口,格式如图所示。MX=1表示屏蔽中断源IRX;MX=0表示来自IRX的中断请求得到允许。2) OCW2OCW2用于设置优先级循环方式和中断结束方式,写入A0=0的端口,格式如图所示。

D7:R位,表示优先级是否循环。D6:SL位,表示L2L0是否有效。D5:EOI位,中断结束命令位。为1时,OCW2用做结束中断命令;为0时,OCW2用做设定优先级循环方式的命令字。D4和D3位:特征位,=“00”表示写入的是OCW2。D2、D1、D0:L2L0位,只有SL位为1时,这三位才有意义。三个作用:1、当OCW2给出特殊中断结束命令时,指出要清除中断服务寄存器ISR中的哪一位;2、当OCW2给出结束中断且指定新的最低优先级命令时,将ISR中与L2、L1和L0编码值对应的位清0,并将当前系统最低优先级设为L2、L1和L0指定的值;3、当OCW2给出优先级特殊循环命令时,由L2、L1和L0的编码指定循环开始的最低优先级。3) OCW3设置和撤消特殊屏蔽方式;设置中断查询方式;设置对8259A内部寄存器的读出。D4和D3位:特征位,=“01”表示写入的是OCW3。D7:无关位,可设为任意值。D5:SMM位,即特殊屏蔽方式位。为1,表示设置特殊屏蔽方式;为0,表示清除特殊屏蔽方式。D6:ESMM位,即允许特殊屏蔽方式位。该位为1时SMM位才有意义。D2:P位,为1时表示该OCW3用做查询命令;为0表示非查询方式。D1和D0:RR位和RIS位。这两位的组合用于指定对中断请求寄存器(IRR)和中断服务寄存器(ISR)内容的读出。D1D0=10时,表明紧接着要读出IRR的值;D1D0=11时,表明紧接着要读出ISR的值。查询方式这种方式下,CPU的IF位为0。外设向8259A发中断请求信号要求CPU服务时,CPU需用软件查询方法来确认中断源。CPU首先向8259A发查询命令,紧接着执行一条输入指令,从8259A的偶地址读出一个字节的查询字,由该指令产生的RD信号使ISR的相应位置1。CPU读入查询字后,判断其最高位,若为1,说明8259A的IR端已有中断请求输入,此时该查询字的最低三位组成的代码表示了当前中断请求的最高优先级,CPU据此转入相应的中断服务程序。查询方式用于查询某8259A的IR0~IR7上是否有中断请求。4.8259A的读操作在PC机中8259A的端口地址为20H和21H。常用的读操作有如下几种。(1)读出IRR的值:先向20H端口写0AH(OCW3RR=1、RIS=0),再读20H端口。例:MOV AL,0AH ;OCW3=0AHOUT 20H,AL ;OCW3写入8259AIN AL,20H ;读出IRR内容(2)读出ISR的值:先向20H端口写0BH(OCW3RR=1、RIS=1),再读20H端口。例:MOV AL,0BH ;OCW3=0BHOUT 20H,AL ;OCW3写入8259AIN AL,20H ;读出ISR内容(3)读查询字(读出最高级别的中断请求IR):先向20H端口写0CH(OCW3P=1),再读20H端口。例:MOV AL,0CH ;OCW3=0CHOUT20H,AL ;OCW3写入8259AINAL,20H ;读出查询字内容(4)读IMR的值。随时可用奇地址读IMR的值,并对其作修改。例1:IN AL,21H ;读IMRAND AL,7FH ;开放IR7中断OUT 21H,AL ;修改IMR例2:IN AL,21H ;读IMROR AL,80H ;关闭IR7中断OUT 21H,AL ;修改IMR5.8259A应用举例例:现假设某外设的中断请求信号由IR2端引入,要求编程实现CPU每次响应该中断时屏幕显示字符串“WELCOME!”。已知主机启动时8259A中断类型号的高5位已初始化为00001,故IR2的类型号为0AH(00001010B);8259A的中断结束方式初始化为非自动结束,即要在服务程序中发EOI命令;8259A的端口地址为20H和21H。DATASEGMENT MESSDB'WELCOME!',0AH,0DH,'$'DATAENDSCODESEGMENT

ASSUMECS:CODE,DS:DATASTART: MOV AX,SEGINT10 MOV DS,AX MOV DX,OFFSETINT10 MOV AX,250AH

INT 21H ;置中断矢量表换行符的ASCII码回车符的ASCII码25H为DOS功能号,其作用是设置中断向量0AH为中断类型号0AH、0DH两者合起来表示光标回到第二行的开始

INAL,21H ;读中断屏蔽寄存器ANDAL,0FBH ;开放IR2中断(OCW1)

OUT21H,ALSTI;开中断LL:JMPLL;等待中断INT2:MOVAX,DATA ;中断服务程序MOVDS,AXMOVDX,OFFSETMESSMOVAH,09H;显示一个字符串的DOS功能号INT21H ;显示每次中断的提示信息MOVAL,20HOUT20H,AL ;发出EOI结束中断(OCW2)INAL,21HORAL,04H ;屏蔽IR2中断(OCW1) OUT21H,ALSTIMOVAH,4CHINT21HIRETCODEENDSENDSTART9.2可编程计数/定时控制器8253实现定时的方法: 软件定时:通过让机器执行一段没有具体操作目的的程序来实现。 不可编程的硬件定时:定时电路在硬件连接好以后,定时值和定时范围不能由程序来控制和改变。 可编程的硬件定时:定时值及其范围可以很容易地由软件来控制和改变,能够满足各种不同的定时和计数要求。1.8253的内部结构它由数据总线缓冲器、读/写逻辑、控制字寄存器以及3个独立的16位计数器组成。9.2.18253的结构与功能三态双向8位缓冲器读/写逻辑:读/写逻辑的任务是接收来自CPU的控制信号,完成对8253内部操作的控制。这些控制信号包括读信号RD、写信号WR、片选信号CS以及用于片内寄存器寻址的地址信号A0和A1。该控制逻辑根据读/写命令及送来的地址信息,决定三个计数器和控制寄存器中的哪一个工作,并控制内部总线上数据传送的方向。8253共占用4个I/O地址。当A1A0=00时,为计数器0中的CR(计数器0的计数初值写入该寄存器)和OL(计数器0的当前计数值从该寄存器读出)寄存器的共用地址,至于是将计数初值写入CR,还是从OL中读出当前计数值,则由控制信号WR和RD决定,这两个信号同时只能有一个有效。当A1A0=01和10时,分别为计数器1和计数器2的CR和OL的共用地址。当A1A0=11时,是3个计数器内的3个控制寄存器的共用地址,至于CPU是给哪个计数器送控制字,则由控制字中的最高两位的编码来决定。2)控制寄存器控制寄存器用来保存来自CPU的控制字。每个计数器都有一个控制命令寄存器,用来保存该计数器的控制信息。控制字将决定计数器的工作方式、计数形式及输出方式,亦决定如何装入计数初值。8253的3个控制寄存器只占用一个地址号,而靠控制字的最高两位来确定将控制信息送入哪个计数器的控制寄存器中保存。控制寄存器只能写入,不能读出。3) 3个独立的16位计数器

包括一个控制寄存器、一个计数初值寄存器CR、一个减1计数器CE和一个输出锁存寄存器OL。CR和OL共同占用一个I/O端口地址,CPU用输出指令向CR预置计数初值,用输入指令读回OL中的数值,这两个寄存器都没有计数功能,只起锁存作用。CE执行计数操作,其操作方式受控制寄存器控制,最基本的操作是:接受计数初值寄存器的初值,对CLK信号进行减1计数,把计数结果送输出锁存寄存器中锁存。

8253计数器在工作之前。用户必须对其进行初始化编程:首先CPU用输出指令向控制寄存器送控制字,然后再用输出指令向计数初值寄存器CR预置计数/定时的初值。启动工作后,CR中的初值就送入减1计数器CE对CLK输入的计数/定时脉冲信号进行减1计数。当CE中的内容减为0,表示计数/定时到,则OUT端输出信号。输出信号的波形形式由工作方式决定。2.8253的引脚8253是24脚双列直插式芯片,用+5V电源供电。(1)数据引脚D7D0:数据线,双向三态,与系统数据总线连接。(2)片选信号CS:输入信号,低电平时选中此片。由CPU输出的地址经地址译码器产生。(3)地址线A0,A1:这两根线接到系统地址总线的A0,A1上,当CS为低电平,且8253被选中时,用它们来选择8253内部的四个寄存器。(4)读信号RD:输入信号,低电平有效。由CPU发出,用于控制对选中的8253内寄存器的读操作。(5)写信号WR:输入信号,低电平有效。由CPU发出,用于控制对选中的8253内寄存器的写操作。

(6)时钟脉冲信号CLK0~CLK2:计数器的时钟输入端。时钟脉冲信号的作用是在8253进行定时或计数时,每输入一个时钟信号,便使计数值减1。若CLK是由精确的时钟脉冲提供,则作为定时器使用;若CLK是由外部事件输入的脉冲,则作为计数器使用。(7)门控脉冲信号GATE0~GATE2:计数器的门控制脉冲输入端,是由外部送入的门控脉冲,该信号的作用是控制启动定时器/计数器工作。(8)输出信号OUT0~OUT2:计数器的输出端。当计数器计数到0时,该端输出一标志信号,从而产生不同工作方式时的输出波形。8.1.28253的编程1.8253的控制字格式写计数初值时,可以赋16位的初值,也可以只赋8位(另8位被自动置0),8位初值可以是高字节,也可以是低字节。读当前计数值时,计数器并未停止计数,因此可先锁存当前的计数值,然后再分字节读,先读低8位,后读高8位2.8253的读/写操作

1)写操作8253在开始工作之前,CPU要对其进行初始化编程(写入控制字和计数初值),具体应注意以下两点:

①对每个计数器,必须先写控制字,后写计数初值。因为后者的格式是由前者决定的。②写入的计数初值必须符合控制字(D5D4两位)决定的格式。16位数据应先写低8位,再写高8位。当给8253中的多个计数器进行初始化编程时,其顺序可以任意,但对每个计数器进行初始化时必须遵循上述原则。2)读操作两种读取当前计数值的方法:①先使计数器停止计数,然后根据送入的控制字中的D5D4位的状态,用一条或两条输入指令读CE的内容。②在计数的过程中不影响CE的计数而读取计数值。先将当前的CE内容锁存入OL中,然后再用输入指令将OL的内容读到CPU中。当CPU读取了计数值后,或对计数器重新进行初始化编程后,8253会自动解除锁存状态,OL中的值又随减1计数器CE值变化。读出计数器的当前计数值到CPU中。

8.1.38253的工作方式在不同的工作方式下,计数过程的启动方式不同,OUT端的输出波形不同,自动重复功能、GATE的控制作用以及更新计数初值对计数过程的影响也不完全相同。同一芯片中的三个计数器,可以分别编程选择不同的工作方式。1.方式0—计数结束产生中断软件启动、不能自动重复的计数方式。图:方式0的波形

1图:方式0时GATE信号的作用在计数过程中,随时可以写入新的计数值初值,计数器使用新的初值重新开始计数(若新初值是16位,则在送完第一字节后中止现行计数,送完第二个字节后才重新开始计数)。由上述可知,方式0主要用于单次计数,计数到时,利用OUT信号作为查询信号或中断请求信号。由于8253内部没有中断控制管理电路,故用OUT作为中断请求信号时,需要通过中断优先级控制电路(如8259)向CPU申请中断。2.方式1—可编程单次脉冲

硬件启动、不能自动重复,但通过GATE的正跳变可使计数过程重新开始的计数方式。图:方式1的波形

在计数过程启动之后计数完成之前,若GATE又发生正跳变,则计数器又从初值开始重新计数,OUT端仍为低电平,两次的计数过程合在一起使OUT输出的负脉冲加宽了。

在方式1计数过程中,若写入新的计数初值,也只是写入到计数初值寄存器中,并不马上影响当前计数过程,同样要等到下一个GATE正跳变启动信号,计数器才接收新初值重新计数。

3.方式2—分频工作方式

既可以用软件启动,也可以用硬件启动。一旦启动,计数器就可以自动重复地工作。图:方式2的波形

OUT输出信号的频率为CLK信号频率的1/N1方式2需要GATE信号保持高电平。当GATE变为低电平时,停止计数。GATE由低变高后,CR中的计数初值又重新装入减1计数器CE中开始计数。

温馨提示

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

评论

0/150

提交评论