资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第9章 定时/计数接口电路,第9章 定时/计数接口电路,9.1 定时/计数的基本概念,9.2 可编程定时/计数器,Intel 8253/8254,9.3,Intel 8254,简介,习题9,9.1 定时/计数的基本概念,所谓定时(计数)就是通过硬件或软件的方法产生一个时间基准,以此来实现对系统的定时或延时控制。要实现定时或延时控制,有三种主要方法:软件定时、纯硬件定时及可编程的硬件定时器/计数器。,1.软件定时,软件定时的方法是:由于执行每条指令都需要时间,则执行一个程序段就需要一个固定的时间,通过适当地挑选指令和安排循环次数来实现软件的定时。这种方法由于要完全占用,CPU,的时间,因而降低了,CPU,的利用率。,2.纯硬件定时,它采用固定的电路,如可以采用小规模集成电路555,外接电阻和电容构成单稳延时电路。这样的定时电路简单,而且通过改变电阻和电容,可以使定时在一定的范围内调整。但它由纯硬件来完成,给使用带来不便。,3.可编程硬件定时器/计数器,这是目前在控制系统中广泛使用的方法,它通过编程来控制电路的定时值及定时范围,功能强,使用灵活。在计算机系统中,象定时中断、定时检测、定时扫描等等都是用可编程定时器来完成定时控制的。,Intel,系列的8253、8254就是常用的可编程定时/计数器。,9.2 可编程定时/计数器,Intel 8253/8254-PIT,9.2.1,Intel 8253,的主要性能和内部结构,1.,Intel 8253,的主要性能,Intel 8253-PIT,有3个独立的16位计数器,每个计数器都可以按照二进制或,BCD,码进行计数,计数速率可达2,MHz(8254,为10,MHZ),,每个计数器有6种工作方式,可编程设置和改变。它可用在多种场合,如方波发生器、分频器、实时时钟、事件计数等方面。,2.,Intel 8253,的内部结构,数据总线缓冲器,它与,CPU,的数据总线相连,是8位双向三态缓冲器。,CPU,通过这个缓冲器对8253进行读/写操作。,控制字寄存器,此寄存器只能写入而不能读出。在8253初始化时,由,CPU,写入控制字来设置计数器的工作方式。,计数器,计数器0、计数器1、计数器2是三个完全独立、结构相同的计数器,每一个都是由一个16位的可预置的减法计数器构成。,图9.1,Intel 8253,的内部结构,9.2.2,Intel 8253,的外部性能,图9.2,Intel 8253,的外部引脚图,GATE:,门控信号,当,GATE,为低电平时,禁止计数器工作;,GATE,为高电平时,才允许计数器工作。,CLK:,计数脉冲输入。,OUT:,脉冲输出。当计数到“0”时,从,OUT,端输出信号,输出信号的波形取决于工作方式。,CS、RD、WR、A,0,、A,1,共同结合,用于对8253进行端口操作,如表9-1所示。,表9-1 8253的端口选择,A,1,A,0,寄存器选择和操作,0,1,0,0,0,写计数器0,0,1,0,0,1,写计数器1,0,1,0,1,0,写计数器2,0,1,0,1,1,写控制字寄存器,0,0,1,0,0,读计数器0,0,0,1,0,1,读计数器1,0,0,1,1,0,读计数器2,0,0,1,1,1,无操作(三态),1,禁止(三态),0,1,1,无操作(三态),9.2.3,Intel8253,的控制字和编程,图9.3 8253的控制字,SC,1,、SC,0,:,这两位决定这个控制字是哪一个计数器的控制字。,RL,1,、RL,0,:,设置数据读/写格式。在读取计数值时,可令,RL,1,、RL,0,=00,,先将写控制字时的计数值锁存,然后再读取。,M,2,、M,1,、M,0,:,设置每个计数器的工作方式。,BCD:,用于选择每个计数器的计数制。在二进制计数时,计数初值的范围是0000,HFFFFH,,其中0000,H,是最大值,代表65536。在,BCD,码计数时,计数初值的范围中00009999,其中,0000是最大值,代表10000。,9.2.4,Intel8253,的工作方式,Intel 8253,的每个计数器都有6种工作方式,这6种方式的主要区别是:输出的波形不同,计数过程中,GATE,信号对计数操作的影响不同,启动计数器的触发方式不同等。,1.方式0计数结束后输出由低变高,该方式的波形如图9.4所示,这种方式的特点是:,图9.4 方式0波形,图9.5 方式0计数过程中改变计数初值,写入控制字后,,OUT,输出端变为低电平。当写入计数初值后,计数器开始减1计数。在计数过程中,OUT,一直保持为低电平,直到计数到0时,,OUT,输出变为高电平。此信号可用于向,CPU,发出中断请求。,计数器只计数一遍。当计数到0时,不恢复计数初值,不开始重新计数,且输出一直保持为高电平。只有在写入新的计数值时,,OUT,才变低,并开始新的计数。,GATE,是门控信号,,GATE=1,时允许计数,,GATE=0,时,禁止计数。在计数过程中,如果,GATE=0,则计数暂停,当,GATE=1,后接着计数。,在计数过程中可改变计数值。若是8位计数,在写入新的计数值后,计数器将按新的计数值重新开始计数。如果是16位计数,在写入第一个字节后,计数器停止计数,在写入第二个字节后,计数器按照新的计数值开始计数。如图9.5所示。,2.方式1可编程序的单拍脉冲,方式1的波形如图7.6所示,其特点是:,写入控制字后,输出,OUT,将保持为高电平,计数由,GATE,启动。,GATE,启动之后,,OUT,变为低电平,当计数到0时,,OUT,输出高电平,从而在,OUT,端输出一个负脉冲,负脉冲的宽度为,N,个(计数初值),CLK,的脉冲宽度。,当计数到0后,不用送计数值,可再次由,GATE,脉冲启动,输出同样宽度的单拍脉冲。,在计数过程中,可改变计数初值,此时计数过程不受影响。如果再次触发启动,则计数器将按新输入的计数值计数。,在计数未到0时,如果,GATE,再次启动,则计数初值将重新装入计数器,并重新开始计数。,图9.6 方式1波形,3.方式2频率发生器(分频器),方式2的波形如图9.7所示,它的特点是:,写入控制字后,输出将变为高电平。写入计数值后,计数立即开始。在计数过程中输出始终为高电平,直至计数器减到1时,输出将变为低电平。经过一个,CLK,周期,输出恢复为高,且计数器开始重新计数。因此,它能够连续工作,输出固定频率的脉冲。,图9.7 方式2波形,如果计数值为,N,,则每输入,N,个,CLK,脉冲,输出一个脉冲。因此,相当于对输入脉冲的,N,分频。通过对,N,赋不同的初值,即可在输出端得到所需的频率,起到频率发生器的作用。,计数过程可由门控脉冲控制。当,GATE=0,时,暂停计数;当,GATE,变高自动恢复计数初值,重新开始计数。,在计数过程中可以改变计数值,这对正在进行的计数过程没有影响。但在计数到1时输出变低,经过一个,CLK,周期后输出又变高,计数器将按新的计数值计数。,4.方式3 方波发生器,方式3的波形如图9.8所示。它的特点是:,输出为周期性的方波。若计数值为,N,,则输出方波的周期是,N,个,CLK,脉冲的宽度。,图9.8 方式3波形,写入控制字后,输出将变为高电平.当写入计数初值后,就开始计数,输出仍为高电平;当计数到初值一半时,输出变为低电平,直至计数到0,输出又变为高电平,重新开始计数。,若计数值为偶数,则输出对称方波。如果计数值为奇数,则前(,N+1)/2,个,CLK,脉冲期间输出为高电平,后(,N1)/2,个,CLK,脉冲期间输出为低电平。,GATE,信号能使计数过程重新开始。,GATE=1,允许计数,,GATE=0,禁止计数。停止后,OUT,将立即变高开,当,GATE,再次变高以后,计数器将重新装入计数初值,重新开始计数。,5.方式4软件触发选通,方式4的波形如图9.9所示,它种方式的特点是:,写入控制字后,输出为高电平。写入计数值后立即开始计数(相当于软件触发启动),当计数到0后,输出一个时钟周期的负脉冲,计数器停止计数。只有在输入新的计数值后,才能开始新的计数。,当,GATE=1,时,允许计数,而,GATE=0,,禁止计数。,GATE,信号不影响输出。,在计数过程中,如果改变计数值,则按新计数值重新开始计数。如果计数值是16位,则在设置第一字节时停止计数,在设置第二字节后,按新计数值中开始计数。,图9.9 方式4波形,6.方式5硬件触发选通,方式5的波形如图7.10所示,这这种方式的特点是:,写入控制字后,输出为高电平。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。当计数到0时,输出一个,CLK,周期的负脉冲,并停止计数。当门控脉冲再次触发时才能再计数。,在计数过程中如果再次用门控脉冲触发,则使计数器重新开始计数,此时输出还保持为高电平,直到计数为0,才输出负脉冲。,如果在计数过程中改变计数值,只要没有门控信号的触发,不影响计数过程。当有新的门控脉冲的触发时,不管是否计数到0,都按新的计数值计数。,图9.10 方式5波形,9.2.5,Intel 8 253,的应用举例,1.初始化8253,要使用8253,必须首先对其进行初始化,初始化有两种方法:,对每个计数器分别进行初始化,先写控制字,后写计数值。如果计数值是16位的,则先写低8位再写高8位。,先写所有计数器的方式字,再写各个计数器的计数值。如果计数值是16位的,则先写低8位再写高8位。,例如:假设一个8253在某系统中的端口地址40,H43H,,如果要将计数器0设置为设置为工作方式3,计数初值为3060,H,采用二进制计数法,则初始化方法如下:,MOVAL,36H;,设置控制字00110110(计数器0,方式3,写两个字节,二进制计数),OUT43H,AL;,写入控制寄存器,MOVAX,3060H;,设置计数值,OUT40H,AL;,写低8位至计数器0,MOVAL,AH,OUT40H,AL;,写高8位至计数器0,2.8253在,IBM PC/XT,机的应用,在,IBM PC/XT,机中,8253主要提供系统时钟中断、动态,RAM,的刷新定时及喇叭发声控制等功能。8253的初始化是在计算机启动时由,BIOS,完成的。图9.11是8253在,IBM PC/XT,机的应用的示意图,从8284时钟发生器来的频率2.386364,MHZ,经二分频后作为8253三个计数器的时钟输入,8253在,IBM-PC/XT,中的端口地址为40,H43H,,这三个计数器在系统中的初始化程序如下:,图9.11 8253在,IBM-PC/XT,机的应用的示意图,计数器0用于定时中断(约55,ms),MOVAL,36H ;,计数器0,方式3,写两个字节,二进制计数,OUT43H,AL ;,控制字送控制字寄存器,MOVAL,0,;,计数值为最大值,OUT40H,AL ;,写低8位,OUT40H,AL ;,写高8位,计数器1用于定时(15,s)DMA,请求,MOVAL,54H ;,计数器1,方式2,只写低8位,二进制计数,OUT43,AL,MOVAL,12H ;,初值为18,OUT41H,AL,计数器3用于产生约900,HZ,的方波送至扬声器,MOVAL,B6H ;,计数器3,方式3,写两字节,二进制计数,OUT43,AL,MOVAX,0533H ;,计数初值为533,H,OUT42H,AL,;,写低8位,MOVAL,AH,OUT42H,AL,;,写高8位,9.3,Intel 8254-PIT,简介,Intel8254,是,Intel 8253,的改进型,它们在操作方式及引脚排列上完全相同。,相比8253,8254主要改进的内容是:,1.计数频率高,8254的计数频率可由直流至6,MHz,8254-2,可高达10,MHz。,而8253最高只能达到2.6,MHz。,2.有读回命令(写入至控制字寄存器),如果控制字寄存器,D
展开阅读全文