1、微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五(1)一个芯片上有三个独立的16位计数器通道;(2)每个计数器都可以按照二进制或二十进制BCD计数;(3)每个计数器的计数速率可高达2MHz;(4)每个通道有6种工作方式;8253-PIT的主要功能:9.1 概述微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五8253的内部结构如图9-1所示:9.1.1 8253-PIT的内部结构微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五1.数据总线缓冲器 8位双向三态缓冲器,CPU用输入
2、输出指令对8253进行读写的所有信息,都是通过这8条总线传送的。2.读/写逻辑 读数据由8253传向CPU;写数据由CPU传向8253。3.控制字寄存器在8253的初始化编程时,由CPU写入控制字以决定通道的工作方式,此寄存器只能写入而不能读出。4.计数器0,计数器1,计数器2这是三个计数器/定时器通道,每一个都是由一个16位的可预置值的减法计数器构成。从预置值开始减1计数。当预置值减到零时,从OUT输出端输出一信号。微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五Intel 8253-PIT的引线如图9-2所示:9.1.2 8253-PIT的引线微机原
3、理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五CLK:输入脉冲线。计数器就是对这个脉冲计数。8253规定,加在CLK引脚的输入时钟周期不能小于380ns。GATE:门控信号输入引脚。当GATE引脚为低电平时,通常都是禁止计数器工作;只有当GATE为高电平时,才允许计数器工作。OUT:输出引脚。当计数到“0”时,OUT引线上必然有输出。8253内部端口的选择线A1和A0通常接至地址总线的A1和A0。各个通道的读/写操作的选择,如表9-1所示。微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五在8253的初始化编程中,由CP
4、U向8253的控制字寄存器写入一个控制字其格式如图9-3所示。9.2 8253-PIT的控制字图9-3微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五1.数据读/写格式(D5D4)在读取计数值时,可令D5D4=00,则把写控制字时的计数值锁存,以后再读取。2.工作方式(D3D2D1)这三位决定8253的每个通道的6种不同的工作方式。3.数制选择(D0)这位决定8253的每个通道计数制:二进制和二十进制。在二进制计数时,写入的初值的范围为0000HFFFFH,其中0000H是最大值,代表65536;在二十进制时,写入的初值的范围为00009999,其中00
5、00是最大值,代表10000。微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五在方式0,当控制字CW=10写入控制字寄存器,则使OUT输出端变低。要开始计数,GATE信号必须为高电平。在写入计数初值以后,通道开始计数,在计数过程中,OUT信号线一直维持为低电平,直到计数到“0”时,OUT才变为高电平。方式0过程如图9-4所示。9.3 8253-PIT的工作方式9.3.1 方式0计完最后一个数时中断图9-4CW=10表示只写低8位计数值为4。1微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五方式0的主要特点是:(1)
6、计数器只计数一遍。当计数到0时,不开始重新计数。只有在写入另一个计数值时,OUT变低,开始新的计数。(2)8253内部是在CPU写计数值的WR信号上升沿,将此值写入计数器的初始寄存器,在WR信号上升沿后的下一个CLK脉冲,才将计数值由时常数寄存器送至计数器作为初值,开始计数。因此,如果设置计数初值为N,则输出信号OUT是在N+1个CLK脉冲之后才变高的。微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五(3)在计数过程中,可由门控制信号GATE控制暂停。当GATE=0时,计数暂停;当GATE变高后,就接着计数,其波形如图9-5所示。图9-5微机原理及应用第
7、 9 章 计数器和定时器Intel 82532022年12月16日星期五(4)在计数过程中可以改变计数值。若是8位计数,则在写入新的计数值后,计数器将按新的计数值重新开始计数,如图9-6所示。即改变计数值是立即有效的。图9-6(5)8253内部没有中断控制电路,也没有专用的中断请求引线,所以若要用于中断,则可以用OUT信号作为中断请求信号。微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五8253有六种不同的工作方式,它们的特点不同,因而应用的场合也就不同。9.3.2 8253-PIT工作方式小结工作方式小结1输出OUT的初始状态在6种方式中,只有方式0,
8、在写入控制字后输出为低。其它5种方式,都是在写入控制字后输出为高。2计数值的设置任一种方式,只有在写入计数值后才能开始计数,方式0、2、3和4都是在写入计数值后,计数过程就开始了,而方式1和5需要外部触发启动,才开始计数。在不同工作方式下,计数值N对输出波形的影响是不同的,如表9-2所示。微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五8253在不同方式下门控输入信号的作用,如表9-3所示。GATE输入总是在CLK输入时钟的上升沿被采样。在方式0、2、3、4中,GATE输入是电平起作用,逻辑电平在CLK的上升沿采样。在方式1、2、3、5中,GATE输入是
9、上升沿起作用的。3门控信号的作用微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五4在计数过程中改变计数值 如表9-4所示。表中的立即有效都是指写入计数值后的下一个CLK脉冲以后,新的计数值开始起作用。5计数到0后计数器的状态在方式0、1、4、5,计数器计到0后,都从这个最大计数值继续倒计数。方式2与3是连续计数,计数器自动装入计数值继续计数。微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五初始化编程的步骤为:(1)写入通道控制字,规定通道的工作方式。(2)写入计数值。若规定只写低8位,则写入的为计数值的低8位,高8
10、位自动置0;若规定只写高8位,则写入的为计数值的高8位,低8位自动置0;若是16位计数值,则分两次写入,先写入低8位,再写入高8位。9.4 8253-PIT的编程微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五例如:若要用通道0,工作在方式1,按二十进制计数,计数值为5080H。则初始化编程的步骤为:(1)确定通道控制字:(2)计数值的低8位为80H。(3)计数值的高8位为50H。微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五若端口地址位为F8HFBH,则初始化程序为:MOVAL,33HOUT0FBH,ALMOV
11、AL,80HOUT0F8H,ALMOVAL,50HOUT0F8H,AL微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五任一通道的计数值,CPU可用输入指令读取。CPU读到的是执行输入指令瞬间计数器的现行值。但8253的计数器是16位的,所以要分两次读至CPU,因此,若不设法锁存,则在输入过程中,计数值可能已经变化了。要锁存有两种办法:(1)利用GATE信号使计数过程暂停。(2)向8253输送一个通道控制字,令8253通道中的锁存器锁存。当向通道写入锁存的控制字时,它把计数器的现行值锁存(计数器中继续计数)。于是CPU读取的就是锁存器中的值。微机原理及应用第 9 章 计数器和定时器Intel 82532022年12月16日星期五CPU读取了计数值后,自动解除锁存状态,它的值又随计数器变化。若要读取通道若要读取通道1的的16位计数值位计数值,其程序为:MOVAL,40H;计数器1的锁存命令OUT0FBH,AL;写入至控制字寄存器INAL,0F9H;读低8位MOVCL,AL;存于CL中INAL,0F9H;读高8位MOVCH,AL;存于CH中