8253A定时计数器的每一个计数通道都有6种可编程选择的工作方式。
每一种工作方式不仅与计数初值有关,而且受时钟输入信号CLK和门控GA TE信号的控制,CLK信号确定计数器减1计数的速率,GA TE信号允许/禁止计数器工作或决定计数器的启动。
下面分别讨论这些工作方式,并结合波形图说明各种方式的操作过程1. 方式0—计数结束产生中断方式方式0被称为计数结束中断方式,工作波形图如图8.4所示。
(1) 计数过程8253A工作在方式0时,当控制字写入控制字寄存器之后,输出端OUT立即变成低电平。
当CPU写入计数初值后的第一个时钟脉冲CLK下降沿出现时,计数初值寄存器CR的值被送到计数执行单元CE中。
随后的每一个时钟脉冲CLK下降沿都使计数执行单元CE 的内容减1。
当计数执行单元的值减到0时,输出端OUT变成高电平,并一直保持高电平,直到写入新的计数值或重新设置新的工作方式为止。
当输出端OUT变成高电平时,可以利用其上升沿作为中断请求信号向CPU发出一次中断请求。
(2) 门控信号的影响对方式0来说,门控信号GA TE为高电平时,允许计数;门控信号GA TE为低电平时,禁止计数。
GA TE的变化不影响OUT的电平。
因此,在计数过程中,如果有一段时间GA TE 变成了低电平,后来又恢复为高电平,那么,输出端OUT的低电平持续时间会因此而延长相应的时间。
如果在门控信号GA TE处于低电平时,写入计数初值时,下一个CLK脉冲也将初值从初值寄存器移入计数执行单元CE,但不计数。
当GA TE变为高电平才开始计数,经过N 个脉冲OUT变成高电平。
(3) 新的计数初值对计数过程的影响方式0是写一次计数值,计一遍数,计数器不会自动恢复初值重新开始计数,而且在计数过程中改变计数值,则在输入新值后的下一个时钟下降沿按新的计数初值计数。
2. 方式1——可重触发的单稳态触发器方式1被称为可重触发的单稳态触发器,在这种方式下,计数器相当于一个可编程的单稳态电路。
该方式在门控信号GA TE上升沿触发后,可产生一单拍负脉冲信号的输出,脉冲宽度由计数初值N决定。
其工作波形图如图8.5所示。
(1) 计数过程当把方式1的控制字写入控制字寄存器时,输出端OUT立即变成高电平,再将计数初值写入初值寄存器CR,并经过一个时钟周期,计数初值被送入计数执行单元CE,此后,门控脉冲上升沿到来时,触发8253内部的边沿触发器,下一个时钟脉冲下降沿到来时,输出端OUT变成低电平,作为单脉冲的开始,直到计数执行单元CE的值减到0时,输出端OUT才变为高电平,于是单脉冲结束。
如果门控端GA TE再来一个上升沿信号,8253的边沿触发器再受触发,并经过一个时钟脉冲,输出端OUT又重新变成低电平,新的单脉冲开始,重复上述过程。
(2) 门控信号的影响方式1中,GA TE信号的作用可从两个方面进行说明。
第一,在计数结束后,若再来一个GA TE信号上升沿,则在下一个时钟周期的下降沿又从初值开始计数,而不需要重新写入初值。
即门控信号可重新触发计数。
第二,在计数过程中,若再来一个门控信号上升沿,也在下一个时钟周期的下降沿从初值起重新计数,即终止原来的计数过程,开始新的一轮计数,但输出端保持低电平不变,直到计数执行单元减为0 时,输出端OUT才变化成高电平。
这样,使输出的单脉冲的脉冲宽度加宽。
(3) 新的计数初值对计数过程的影响如果在计数过程中写入新的计数初值,不会立即影响计数过程。
只有在下一个门控信号上升沿到来后的第一个时钟脉冲下降沿作用下,才终止原来的计数过程,而按新值开始计数。
若计数结束前没有触发信号,则原计数过程正常结束。
即新的计数初值将在下次有效。
8253A工作在方式1时,其输出负脉冲宽度取决于计数初值,同时也取决于负脉冲期间是否又受到门控信号上升沿的触发,如果又受到触发,则会加宽负脉冲的宽度。
3. 方式2—分频器方式2被称为分频工作方式,其工作波形如图8.6所示。
(1) 计数过程当把方式2控制字写入寄存器后,输出端OUT立即跳到高电平作为初始状态,当计数初值写入初值寄存器后,在下一个时钟脉冲下降沿,计数初值被移入计数执行单元,然后计数执行单元作减1 计数。
当减到1时,输出端变成低电平,并维持一个时钟周期后又跳回到高电平,计数初值寄存器的内容再次装入计数执行单元。
计数执行单元继续从初值重新开始计数。
即每N个时钟周期的间隔,在输出端OUT上出现一个宽度等于时钟周期时间的负脉冲。
所以方式2的功能如同一个N分频的分频器。
(2) 门控信号的影响在方式2中,GA TE信号为低电平时终止计数,GA TE信号为高电平允许计数,GA TE 信号由低变高后的第一个时钟脉冲下降沿重新从初值开始计数。
由此可见,GA TE一直维持高电平时,计数器作为一个N分频器。
GA TE端输入的负脉冲可用来使计数器同步,这种同步是通过硬件给出门控信号来实现的,称为硬件同步。
(3) 新的计数初值对计数过程的影响如果在计数过程中写入新的计数初值,而GATE端一直维持高电平,则新的初值不会立即影响当前的计数过程,但在计数结束后的下一个计数周期将按新的初值计数,这相当于通过写入新的初值使计数器同步,称为软件同步。
若写入新的初值后,遇到门控信号上升沿,则结束现行计数过程,从下一个时钟脉冲下降沿开始按新的初值进行计数。
正常情况下,GATE一直保持高电平,若计数初值为N,则在每个周期OUT端输出N-1个时钟周期的高电平,1个时钟周期的低电平,并形成周期性的脉冲波。
4. 方式3—方波发生器方式3 被称为方波发生器方式,其工作波形如图8.7所示。
方式3与方式2的工作方式类似,也是在初始化完成后能重复循环计数,只是输出的波形不同。
(1) 计数过程当把方式3的控制字写入控制字寄存器后,输出端OUT变成高电平,作为初始电平。
再将计数初值写入计数初值寄存器CR中,再经过一个时钟周期,计数初值被移入计数执行单元CE中,从下一个时钟脉冲开始作减1 计数,方式3的计数过程分为两种情况:第一种情况:计数初值为偶数,当作减1计数减到N/2时,输出端OUT端变成低电平,减到0时,输出端OUT变成高电平,并重新从初值开始新的计数过程。
若GA TE为高电平,则一直重复同样的计数过程。
可见,输出端OUT输出连续的方波,故称方波发生器。
第二种情况:计数初值为奇数。
当作减1计数减到(N+1)/2以后,输出端OUT变成低电平,减到0时,输出端OUT又变成高电平。
并重新从初值开始新的计数过程。
这时输出端的波形为连续的近似方波。
(2)门控信号的影响工作在方式3时,门控信号GA TE的功能与工作方式2一样,即GA TE 为高电平时,允许计数;GA TE为低电平时停止计数。
GA TE引脚上的信号从低电平跳到高电平时,将会重新把计数初值寄存器CR中的内容移入计数执行单元CE中,并以新装入的值重新开始计数。
(3)新的计数初值对计数过程的影响如果在计数过程中写入新的初值,而GA TE信号一直维持高电平,则新的初值不会影响当前的计数过程,只有在计数结束后的下一个计数周期,才按新的初值计数。
若写入新的初值后,遇到门控信号的上升沿,则结束现行的计数过程,从下一个时钟脉冲下降沿开始按新的计数初值进行计数。
可见,工作在方式3时,当计数初值为偶数,OUT端输出连续的标准方波;当计数初值为奇数,在每个计数周期内,有(N+1)/2个周期输出高电平,(N-1)/2个时钟周期输出低电平,OUT端输出连续的近似的方波。
5. 方式4——软件触发选通方式4被称为软件触发选通方式,其工作波形如图8.8所示(1) 计数过程这种方式和方式0极为相似的。
当方式控制字置入后,输出端OUT 变成高电平作为初始电平。
置入初值后经过一个CLK脉冲开始减1计数,计数到达0值,OUT端输出变为低电平,持续一个CLK脉冲周期后再恢复到高电平,并一直维持高电平。
方式4不能自动循环计数。
每次启动计数都要靠重新写入计数值,所以称为软件触发,一般又将所产生的负脉冲作为选通信号。
所以方式4又叫做软件触发选通信号发生器。
(2) 门控信号的影响方式4和方式0类似,门控信号都是电平触发。
GATE为高电平时,允许计数;GATE为低电平时,禁止计数。
GATE的电平不会影响OUT引脚的电平状态,只有计数减为0时,才使输出端OUT产生电平的变化而出现负脉冲。
(3) 新的计数初值对计数过程的影响方式4和方式0类似,也是写一次计数值,计一遍数,计数器不会自动恢复初值重新开始计数,而且在计数过程中改变计数值,则在写入新值后的下一个时钟脉冲下降沿计数器将按新的初值计数。
即新值是立即有效的,所以称软件触发,即在任何时候由软件写入计数初值,只要当GATE=1,就会立即触发一个计数过程。
概括说来,在方式4时,计数器主要通过写入初值这一软件操作来触发计数器工作,产生一个负脉冲作为选通信号。
通过写入新的计数值使计数器从头工作叫软件再触发。
6. 方式5——硬件触发选通方式5又称硬件触发选通方式,其工作波形如图8.9所示。
(1)计数过程当把方式5的控制字写入控制字寄存器后,输出端OUT变成高电平作为初始电平,然后将计数初值写入计数初值寄存器CR中。
写入计数初值后,并不会立即将计数初值移入计数执行单元CE中,而必须等门控信号GATE上升沿出现之后,才会在下一个时钟脉冲的下降沿到来时将计数初值移入计数执行单元CE中,并开始对随后的时钟脉冲进行计数。
计数到达0时,输出端出现一个宽度为一个时钟周期的负脉冲,然后又自动恢复为高电平,并维持不变,直到下一次门控信号GATE由低电平变成高电平的上升沿才再次启动计数器。
(2)门控信号的影响若在计数过程中,又有一个门控信号的上升沿,则立即终止现行的计数过程,且在下一个时钟脉冲下降沿,又从初值开始计数。
如果计数过程结束后,来一个门控上升沿,计数器也会在下一个时钟脉冲下降沿,从上一个初值开始减1计数,而不用重新写入初值。
即门控信号上升沿任何时候到来都会立即触发一个计数过程。
(3)新的计数初值对计数过程的影响如果在计数过程中写入新的初值,而无门控信号上升沿触发,则新的计数初值不会立即影响当前的计数过程,直到下一个门控信号上升沿到来后,才从新的初值开始减1计数。
即新的计数初值在下一个门控信号上升沿触发后有效。
总之用方式5时,计数器主要靠硬件电路产生的门控信号上升沿触发计数器工作来产生一个负脉冲作为选通信号,所以叫硬件触发的选通信号,而8253A在此时就被称为硬件触发的选通信号发生器。
7. 8253A六种工作方式的比较由于8253A的工作方式较多,加上要考虑门控信号的作用和改变计数初值对计数过程的影响,使得情况比较复杂,初学者难于记忆。
为此我们总结出六种工作方式的共同特点,同时又从四个方面对这六种工作方式做一比较,以便读者更好地掌握它们之间的联系和区别(见表8.2~表8.5)表8.2 计数初值N与输出波形表8.3 门控信号GATE的作用表8.4 写入新的初值对计数过程的影响8253A每个计数器都有6种工作方式。