《微机原理与接口》-耿恒山-电子教案 第8章.计数器和定时器

上传人:E**** 文档编号:89404117 上传时间:2019-05-24 格式:PPT 页数:69 大小:219KB
返回 下载 相关 举报
《微机原理与接口》-耿恒山-电子教案 第8章.计数器和定时器_第1页
第1页 / 共69页
《微机原理与接口》-耿恒山-电子教案 第8章.计数器和定时器_第2页
第2页 / 共69页
《微机原理与接口》-耿恒山-电子教案 第8章.计数器和定时器_第3页
第3页 / 共69页
《微机原理与接口》-耿恒山-电子教案 第8章.计数器和定时器_第4页
第4页 / 共69页
《微机原理与接口》-耿恒山-电子教案 第8章.计数器和定时器_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《《微机原理与接口》-耿恒山-电子教案 第8章.计数器和定时器》由会员分享,可在线阅读,更多相关《《微机原理与接口》-耿恒山-电子教案 第8章.计数器和定时器(69页珍藏版)》请在金锄头文库上搜索。

1、第8章 计数器和定时器Intel 8253/8254,8.1 概述 8.2 8253的控制字 8.3 8253的工作方式 8.4 8253的初始化 8.5 8253的读操作 8.6 Intel 8254 8.7 8253在PC机中的应用 8.8 定时计数器的应用实例,8.1 概述,8.1.1 8253的主要功能 Intel 8253具有以下主要功能: (1)一个芯片上有3个独立的16位计数器通道。 (2)每个计数器都可以按照二进制或二十进制计数。 (3)每个计数器的计数速率可高达2MHz。(82C54-2计数频率可达到10MHz)。 (4)每个通道有6种工作方式,可由程序设置和改变。 (5)所

2、有的输入输出都与TTL电平兼容。,8.1.2 8253的内部结构 8253的内部结构如图8-1所示。 1数据总线缓冲器 8位双向三态缓冲器。CPU用I/O指令对8253进行读写的所有信息,都是通过这8条总线传送的。 包括: (1)CPU在初始化编程时,写入8253的控制字。 (2)CPU向某一通道写入的计数值。 (3)CPU从某一个通道读取的计数值。,2读/写控制逻辑 接受来自系统总线的输入信号,然后产生整个器件的工作控制信号。,3控制字寄存器 它接受来自CPU的方式控制字,可以分别控制三个计数器的工作方式。它只能写入,不能读出。 4计数器0,计数器1,计数器2 这是3个独立的计数器/定时器通

3、道,每个通道的结构完全相同,如图8-2所示。 每一个通道由一个16位的可预置值的减法计数器,一个16位预置寄存器,一个16位的输出锁存器构成。 这3个通道的操作是完全独立的。在计数过程中,减法计数器的值不断递减,而预置寄存器的预置数不变。输出锁存器则用于写入锁存命令时锁定当前计数值。,每个通道的减法计数器从预置值开始减1计数。当减法计数器的值减到零时,从OUT输出端输出一个信号。,8.1.3 8253的引脚 Intel 8253的引脚如图8-3所示。 D7D0数据线、双向、三态,用于连接CPU的数据总线。 片选信号、输入、低电平有效。只有当为0,选中8253。通常,接地址译码信号。 A1、A0

4、片内寄存器选择信号(端口选择),输入。用于读写8253三个通道的计数器和1个控制寄存器 读信号、输入、低电平有效。当有效时,CPU可以从8253中读取数据。 _写信号、输入、低电平有效。当有效时,CPU可以向8253写入数据或命令字。,每一个通道有3个引脚。 CLK:输入脉冲引脚。计数器就是对这个引脚上的脉冲进行计数。8253规定,加在CLK引脚的输入时钟周期不能小于380ns。 GATE:门控信号输入引脚。这是控制计数器工作的一个外部信号。当GATE引脚为低电平(无效)时,通常都是禁止计数器工作;只有当GATE为高电平时,才允许计数器工作。 OUT:输出引脚。当计数到0时,OUT引脚上必然有

5、输出,输出信号的波形取决于工作方式。 8253内部端口的选择是由引线A1和A0决定的,它们通常接至地址总线的A1和A0。各个通道的读/写操作的选择,如表8-1所示。,8.2 8253的控制字,1计数器选择(D7D6) 控制字的最高两位决定这个控制字是哪一个通道的控制字。由于三个通道的工作是完全独立的,所以需要有3个控制字寄存器分别规定相应通道的工作方式。但它们的地址是同一个,即A1A0=11。因此,对三个通道的编程需要向这个地址写入3个控制字,它们的D7D6位分别指定不同的通道。,2数据读/写格式(D5D4) CPU向计数通道写入初值和读取它们的当前状态时,有几种不同的格式。 例如,写数据时,

6、是写入8位数据还是16位数据,若是8位计数,可以令D5D4=01,只写入低8位,则高8位自动置0;若是16位计数,而低8位为0,则可令D5D4=10,只写入高8位,而低8位就自动为0;若是16位计数,高8位与低8位都不是0,就先写入低8位,后写入高8位。则可令D5D4=11。 在读取计数值时,可令D5D4=00,则把写控制字时的计数值锁存,以后再读取。,3工作方式(D3D2D1) 8253的每个通道可以有6种不同的工作方式,由这3位决定。每一种方式的特点,随后介绍。 4数制选择(D0) 8253的每个通道有两种计数制:二进制和二十进制,由这位决定。在二进制计数时,写入的初值的范围为0000HF

7、FFFH,其中0000H是最大值,代表65536;在二十进制时,写入的初值的范围为00009999,其中0000是最大值,代表10000。,8.3 8253的工作方式,8.3.1 方式0计数完成时中断 在这种方式,当控制字CW写入控制字寄存器,则使OUT输出端变低,计数器还没有赋予初值,也不开始计数。 要开始计数,GATE信号必须为高电平。则在写入计数初值以后,通道开始计数,在计数过程中,OUT信号线一直维持为低电平,直到计数到0时,OUT输出信号线才变为高电平。方式0过程如图8-5所示。其中,LSB=4表示计数值为4,只写低8位,最底下一行是计数器中的数值。,方式0的主要特点是: (1)计数

8、器只计数一遍。当计数到0时,并不恢复计数初值,不开始重新计数,且输出保持为高。只有在写入另一个计数值时,OUT变低,开始新的计数。 (2)8253内部是在CPU写计数值的WR信号上升沿,将此值写入通道的预置寄存器,在WR信号上升沿后的下一个CLK脉冲,才将计数值由预置寄存器送至减1计数器作为初值,开始计数。所以,8253是在写计数值命令后经过一个输入脉冲,才将计数值装入减1计数器,下一个脉冲才开始计数。因此,如果设置计数初值为N,则输出信号OUT是在N+1个CLK脉冲之后才变高的。这个特点在方式1、方式2、方式4和方式5时也是同样的。,(3)在计数过程中,可由门控制信号GATE控制暂停。 当G

9、ATE=0时,计数暂停;当GATE变高后,就接着计数,其波形如图8-6所示。,(4)在计数过程中可以改变计数值。 若是8位计数,则在写入新的计数值后,计数器将按新的计数值重新开始计数,如图8-7所示。 如果是16位计数,在写入第一个字节后,计数器停止计数,在写入第二个字节后,计数器便按照新的数值开始计数,即改变计数值是立即有效的。,(5)8253内部没有中断控制电路,也没有专用的中断请求引线,所以若要用于中断,则可以用OUT信号作为中断请求信号,但是,需要有外接的中断优先权排队电路与中断向量产生电路。 若8253的地址为04H07H,要使计数器1工作在方式0,仅用8位二进制计数,计值为128,

10、初始化程序为: MOV A1,50H ;设控制字 OUT 07H,AL ;输出至控制字寄存器 MOV AL,80H ;设置计数值 OUT 05H,AL ;输出至计数通道1,8.3.2 方式1可编程序的单拍脉冲 在这种方式下,当CPU写控制字后(的上升沿),输出OUT信号将保持为高电平(若原为低,则由低变高)。当CPU写完计数值后,计数器并不开始计数,直到外部门控制脉冲GATE启动之后的下一个输入CLK脉冲的下降沿开始计数,输出OUT变为低电平。 在整个计数过程中,OUT都维持为低电平,直到计数到0,输出变为高电平,因此输出为一个单拍脉冲。若外部GATE再次触发启动,则可以再产生一个单拍脉冲,如

11、图8-8所示。,方式1的主要特点是: (1)若设置的计数值为N,则输出的单拍脉冲的宽度即为N个输入脉冲间隔。 (2)当计数到0后,可再次由外部GATE触发启动,于是可再输出一个同样宽度的单拍脉冲,而不用再次送入一个计数值。,(3)在计数过程中,外部可发出门控脉冲进行再触发。在再触发脉冲上升沿之后的一个CLK脉冲的下降沿,计数器将重新开始计数。如图8-9所示。,(4)在计数过程中,CPU可改变计数值,这时计数过程不受影响,计数到0后输出为高。若再次触发启动,则计数器将重按新输入的计数值计数,即计数值是下次有效。如图8-10所示。,若要使计数器0工作在方式1,按BCD计数,计数值为3000H。则初

12、始化程序为: MOV AL,23H ;设方式控制字 OUT 07H,AL ;输出至控制字寄存器 MOV AI ,30H ;设计数值 OUT 04H,AL ;输出至计数器0的高8位 注意:虽然计数值是16位的,但在控制字中规定为只写高8位,故低8位自动设置为0。,8.3.3 方式2频率发生器 在这种方式下,当CPU输出控制字后,输出OUT信号将变为高电平。在写入计数值后,计数器将立即自动对输入时钟CLK计数。在计数过程中输出始终保持为高电平,直至计数器减到l时,输出才变为低电平,经过一个CLK周期,输出又恢复为高电平,且计数器开始重新计数,如图8-11所示。,方式2的一个突出特点是能够连续工作。

13、如果计数值为N,则每输入N个CLK脉冲,输出一个脉冲。因此,这种方式可以作为一个脉冲速率发生器或用于产生实时时钟中断。方式2的主要特点是: (1)不用重新设置计数值,通道能够连续工作,输出固定频率的脉冲。 (2)计数过程可由GATE控制脉冲。当GATE变低时,就暂停计数;在GATE变高后的下一个CLK脉冲使计数器恢复初值,重新开始计数,如图8-12所示。,图8-13 方式2在计数过程中改变计数值,(3)在计数过程中可以改变计数值,这对正在进行的计数过程没有影响,但在计数到l时输出变低,过一个CLK周期输出又变高,计数器将按新的计数值计数,所以改变计数值是下次有效的,如图8-13所示。,若要使计

14、数器2工作在方式2,按二进制计数,计数值为02F0H。则初始化程序为: MOV AL,84H ;写入控制字 OUT 07H,AL MOV AI,0FOH OUT 06H,AL ;写计数值的低8位 MOV AL,02H OUT 06H,AL ;写计数值的高8位,8.3.4 方式3方波发生器 方式3和方式2的输出都是周期性的,它们的主要区别是:方式3在计数过程中输出有一半时间为高,另一半时间为低。 所以,若计数值为N,则方式3的输出为方波,周期是N个CLK脉冲。在这种方式,当CPU设置控制字后,输出将为高,在写完计数值后就自动开始计数,输出保持为高;当计数到一半计数值时,输出变为低,直至计数到0,

15、输出又变高,重新开始计数。如图8-14所示。,方式3的主要特点是: (1)若计数值为偶数,在装入计数值后,每一个CLK脉冲都使计数值减2,当计数值减到0时,一方面使输出改变状态,另一方面又重新装入计数值开始新的计数,该过程就这样周而复始地进行 若计数值为奇数,则在装入计数值后的第一个CLK脉冲使计数器减1,其后每一个CLK脉冲使计数器减2。当计数到0时,改变输出状态,同时重新装入计数值。这以后的第一个CLK脉冲使计数器减3,以后每一个CLK脉冲,计数器仍减2,直到计数器再次到0时,输出恢复为高,重复上述的过程,如图8-15所示。所以,如果计数值N是奇数,则输出有(N+1)/2个CLK脉冲周期为

16、高,而在(N-1)/2脉冲周期为低。即OUT为高将比其为低多一个CLK周期时间。,图8-15 方式3在计数值为奇数时的波形,(2)GATE信号能使计数过程重新开始。GATE=1允许计数,GATE=0禁止计数。如果在输出OUT为低期间,GATE=0,OUT将立即变高,停止计数。当GATE变高以后,计数器将重新装入初始值,重新开始计数。如图8-16所示。,(3)若在计数期间写入一个新的计数值,并不影响现行的计数过程。但是若在方波半周期结束之前和新计数值写入之后收到GATE脉冲,计数器将在下一个CLK脉冲时装人新的计数值并以这个计数值开始计数。否则,新计数值将在现行半周结束时装入计数器。,8.3.5 方式4软件触发选通 在这种方式,当写入控制字后,输出OUT信号为高电平(原为高则保持为高,原为低则变为高)。当写入计数值后立即开始计数(相当于软件启动),当计数到0后,输出变低,经过一个输入时钟周期,输出又变高。计数器停止计数。故这种方式计数也是一次性的,只有在输入新的计数值后,才能

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号