复始地计数。如果装入计数器的初值为n,那么在OUT引脚上,每隔n个周期就产生一个负脉冲,其宽度与时钟脉冲的周期相同,频率为输入时钟脉冲频率的n分之一。所以,这实际上是一种分频工作方式。
在操作过程中,任何时候都可由CPU重新写入新的计数值,它不会影响当前计数过程的进行。比如说,原来的计数值N=4,在计数过程中计数值回零前,又写入新的计数值N=3,8253仍按N=4进行计数。当计数值减为0时,一个计数周期结束,8253将按新写入的计数值N=3进行计数。
当需要产生连续的负脉冲序列信号时,可使8253工作于方式2。在本实验当中,就是让0通道工作在方式2下。
方式3——方波发生器
对于方式3来说,它的工作方式与方式2有着很多相似的地方,然而,又不能等同。因为它们各自有着不同的特点。使用的时候就要加以区别。
我们可以从输出的波形上看出它们的一些不同之处。因为方式3输出的不是序列负脉冲,而是对称的方波或基本对称的矩形波。当然,无论是方式2,还是方式3,都要将GATE端置为高电平才可实现它的功能。
8253有一些它的特点。如果写入计数器的初值为偶数,则当8253进行计数时,每输入一个时钟脉冲,均使计数值减2。计数值减为0时,OUT输出引脚由高电平变成低电平,同时自动重新装入计数初值,继续进行计数。当计数值减为0时,OUT引脚又回到高电平,同时再一次将计数初值装入计数器,开始下一轮循环计数;如果写入的计数初值为奇数,则当输出端OUT为高电平时,第一个时钟脉冲使计数器减1,以后每来一个时钟脉冲,都使计数器减2,当计数值减为0时,输出端OUT由高电平变成低电平,同时重新装入计数初值,继续进行计数。这时第一个时钟脉冲使计数器减3,以后每个时钟脉冲都使计数器减2,计数值减为0时,OUT引脚又回到高电平,并重新装入计数初值后,开始下一轮循环计数。这两种情况下,从OUT端输出的方波频率都等于时钟脉冲的频率除以计数初值。但要注意,当写入的计数初值为偶数时,输出完全对称的方波,写入计数初值为奇数时,其输出波形的高电平宽度比低电平多一个时钟周期。
如果希望改变输出方波的速率,CPU可在任何时候重新装入新的计数初值,在下一个计数周期就可按新的计数初值计数,从而改变方波的速率。
8253的级联和地址分配
8353采用级联方式。此实验中使用8253的0通道和1通道以实现级联。 通道0的工作在实验中起到的作用是在OUT0端输出一个比较合适的时钟频率,然后用通道1进行时间的控制。通道1在控制灯闪烁的时候采用的工作方式是方式3,这样可以让8255的A端口检测到输出端的方波信号。
8253的地址是如何安排的呢?它的三个通道是怎样分配地址的端口的呢?我们在这个实验当中采用的端口的起始的地址是208H,所以就有这样的分配:通道0的地址端口为208H,通道1的地址端口为209H,通道2的地址端口为20AH,8253的控制端口的地址为20BH。这就是它们的地址端口的分配。
3.2 8255芯片原理简介
8255的内部结构