640 likes | 800 Views
第七章:可编程定时 / 计时器. 主讲教师:范新民. 1. 7.1 可编程定时 / 计时器的典型结构和基本原理. 2. 7.2 可编程定时 / 计数器 8253. 主要内容:. 7.1 可编程定时 / 计数器的典型结构和基本工作原理. 微机系统中的定时 外部定时方法 软件定时 硬件定时 可编程计数器 / 定时器的工作原理. 一、微机系统中的定时. 微机系统常常需要为处理器和外设提供时间标记,或对外部事件进行计数。. 内部定时是计算机本身运行的时间基准或时序关系,计算机每个操作都是按照严格的时间节拍执行的。.
E N D
第七章:可编程定时/计时器 主讲教师:范新民
1 7.1 可编程定时/计时器的典型结构和基本原理 2 7.2 可编程定时/计数器8253 主要内容:
7.1 可编程定时/计数器的典型结构和基本工作原理 • 微机系统中的定时 • 外部定时方法 • 软件定时 • 硬件定时 • 可编程计数器/定时器的工作原理
一、微机系统中的定时 • 微机系统常常需要为处理器和外设提供时间标记,或对外部事件进行计数。 • 内部定时是计算机本身运行的时间基准或时序关系,计算机每个操作都是按照严格的时间节拍执行的。 • 外部定时是外部设备实现某种功能时,本身所需要的一种时序关系
二、外部定时方法 • 软件定时 • 它是利用CPU内部定时机构,运用软件编程,循环执行一段程序而产生的等待延时。 • 硬件定时 • 采用可编程通用的定时/计数器或单稳延时电路产生定时或延时。
三、可编程计数器/定时器的工作原理 • 计数器,即在设置好计数初值后,便开始对外部触发脉冲作减1计数,减为0时,输出一个信号 • 定时器,即在设置好定时常数后,便对外部时钟信号作减1计数,并按定时常数不断地产生时钟周期整数倍的定时间隔。
控制寄存器 D7~D0 控 制 逻 辑 CLK GATE OUT 计数初值寄存器CR RD WR CS A0 CRH ┆ CRL 计数执行单元CE CRH ┆ CRL CRH ┆ CRL 计数输出锁存器OL 可编程计数器/定时器的工作原理 工作原理: CLK:输入脉冲信号,当CLK为周期性时钟信号时,计数器为定时器。当CLK为非周期性时钟信号时,为计数器。 GATE:门控输入端,当门脉冲到来时,时钟CLK有效,进行计数操作,当门脉冲结束时,时钟无效,计数停止。 OUT:当计数执行单元为0时,输出一个信号,同时重新装入计数初值到计数执行单元。
7.2 可编程定时器/计数器8253-5 • 8253内部结构及引脚功能 • 8253的工作方式及特点 • 8253的编程 • 8253的应用举例
可编程定时器/计数器8253 7.2.18253-5内部结构和引脚 具有三个独立的16位计数器,它可用程序设置成多种工作方式,按十进制或二进制计数,最高计数速率可达2.6MHz。
可编程定时器/计数器8253 1、内部结构 (1)数据总线缓冲器:三态、双向 (2)读/写控制逻辑电路:产生控制芯片工作的控制信号 (3)控制寄存器:控制计数器的工作方式,只能接受写 入的控制字。 (4)计数器通道0-2:每个通道有一个可预置的16位减法 计数器。
可编程定时器/计数器8253 • 三个计数器是独立的。每个通道有三条信号线: • 计数输入CLK—用于输入定时基准脉冲或计数脉冲; • 输出信号OUT—以相应的电平指示计数的完成,或输出脉冲波形; • 选通输入(门控输入)GATE—用于启动或禁止计数器的操作,以使计数器和计测对象同步; 每个通道有6种工作方式,由控制寄存器选择。 计数器归0时由OUT引脚输出信号
2、基本工作原理 ① 控制寄存器—初始化时,将控制字寄存器中的内容写入该寄存器; ② 计数初值寄存器—16位计数初值寄存器CR用来存放计数初值,可通过程序来设定; ③ 减法计数寄存器—计数执行单元CE是一个16位减法计数器,它的初值便是计数初值寄存器的内容,它只对CLK脉冲计数,一旦计数器被启动后,每出现一个CLK脉冲,计数执行单元中的计数值减1,当减为零时,通过OUT输出指示信号,表明计数执行单元已为零。 可编程定时器/计数器8253
可编程定时器/计数器8253 • 当CLK是一个周期性时钟信号时,计数器为定时器功能;当CLK是一个非周期性事件计数信号时,此时呈计数器功能。 • 计数输出锁存器OL通常跟随计数执行单元的内容而变化,当接收到CPU发来的锁存命令时,就锁存当前的计数值而不跟随计数执行单元变化,直到CPU从中读取锁存值后,才恢复到跟随计数执行单元变化的状态。 • GATE是控制输入端,它有多种控制作用,如允许/禁止计数、启动/停止计数。
可编程定时器/计数器8253 3、8253的引脚及功能
可编程定时器/计数器8253 D0—D7: 数据线,双向三态 A1、A0:端口选择信号,8253有4个口地址: CS : 片选信号 WR : 读信号 RD:写信号 CLK0 ~ CLK2 OUT0 ~ OUT2 GATE0 ~ GATE2
可编程定时器/计数器8253 4、 8253 端口操作:
工作方式控制字格式 可编程定时器/计数器8253 5、8253的控制字和工作方式 8255有3个计数通道,但只有1个通道控制器。CPU通过对控制寄存器写控制字,可以分别对3个计数通道的工作方式进行设置。 8253控制字共分为4部分:通道选择、计数器读/写方式、工作方式和计数码的选择。
可编程定时器/计数器8253 工作方式控制字
可编程定时器/计数器8253 二进制计数时: 1个计数器最多可计216=65536个脉冲,计数初值为0000H;最少可计1个脉冲,计数初值为0001H。 BCD码计数时: 1个计数器最多可计104=10000个脉冲,计数初值为0000H;最少可计1个脉冲,计数初值为0001H 8253初始化: 对一个通道先写入控制字再写入时间常数(计数初值)
可编程定时器/计数器8253 7.2.2 8253-5的工作方式 8253有6种工作方式,在不同的工作方式下,计数器的启动方式、GATE端的输入信号的作用以及OUT端的输出波形都有所不同。 1、方式0—计数结束中断方式 方式0是典型的事件计数用法,CLK端作为事件计数输入信号,当计数执行单元CE为零时,OUT端变为高电平,它可作为中断请求信号。当计数初值再次写入通道后计数器方可工作。
8253-5的工作方式 方式 0的时序波形 • 控制字(CW)写入后OUT即变为低电平,当计数器为0时,输出OUT变为高电平。 • 计数初值写入后在下一个CLK下降沿才送入计数器,因此计数值为N+1。
8253-5的工作方式 当GATE变为低电平时计数停止,再变为高电平时计数继续进行。 • 若计数过程中重新送入初值,则按新值重新计数。 • 计数到零后,不能自动恢复计数初值,OUT端保持高电平。
8253-5的工作方式 • (2)方式1 —硬件可重触发单稳态方式 • 计数器相当于一个可编程的单稳态电路,触发输入为GATE信号,由GATE的上升沿触发计数器工作。 • 方式1的特点和应用: • 计数器的启动只能由门控脉冲的上升沿产生,即只能用硬件启动。 • OUT输出为一个单稳态负脉冲,其脉宽为计数初值个CLK 时钟脉冲的周期之和。 • 在形成单稳态脉冲过程中,可以重触发。 • 在微机实时控制系统中常用作监视时钟。
8253-5的工作方式 方式1的时序波形: • 写入CW后OUT变为高电平, GATE上升沿触发后,OUT变为低并开始计数,归零时OUT变为高电平。 • GATE再来一次上升沿使OUT为低,计数器以初值重新计数。
8253-5的工作方式 • 计数过程中,再次给通道写入时间常数,不影响现行操作过程,GATE再次触发后才按新的时间常数操作
8253-5的工作方式 • 计数过程中,GATE触发沿提前到来,在下一个CLK的下降沿,计数器开始重新计数,这将使输出单稳脉冲比原先设定的计数值加宽。
8253-5的工作方式 (3)方式2—速率发生器(Rate Genenator) 方式2能产生周期性的定时信号,称为速率发生器,又称为N分频方式和周期性定时器方式。 方式2的特点和应用: • CR内容能自动地、重复地装入到CE中,OUT端上就能连续地输出周期性分频信号。 • 即可软件启动,又可硬件启动。 • 改变计数初值,即可获得不同速率的OUT输出信号。 • 负脉冲宽度均为一个CLK脉冲的周期。 • 主要应用作为分频器和时基信号。
8253-5的工作方式 方式2的时序波形: ① 写入CW后OUT为高电平,写入时间常数后,下一CLK开始计数,减到1时OUT变低,经过一个CLK后OUT变高,计数重新开始。若初值为N,OUT端输出信号为CLK端的1/N
8253-5的工作方式 ②GATE=1计数进行,GATE=0计数停止,且下一个CLK计数器重新赋初值,GATE变为高电平,计数重新开始。
8253-5的工作方式 ③ 计数期间送入新值,本周期继续进行,下一个周期按新值计数操作。 不用重复置数。计数器能够连续工作,输出OUT是输入CLK的n(初值)分频。
8253-5的工作方式 (4)方式3—方波方式(Square Ware Mode) 方式3的操作方式除OUT输出方波之外,和方式2相似。方波的重复周期是计数初值个CLK脉冲周期之和。 方式3的特点和应用: • 方式3的计数过程是CE内容减2。 • 软件启动和硬件启动两种。 • 改变计数初值,OUT端将输出不同频率。 • 主要应用作为方波发生器和波特率发生器。
8253-5的工作方式 方式3的时序波形: ① 写入CW后OUT变为高电平,输入时间常数后,下一个时钟开始计数,计到一半时输出变为低电平,计到终值时重新变为高电平,并开始下一次计数过程。
8253-5的工作方式 ② 若N为偶数,高低电平持续时间相等;若为奇数,则高电平持续时间为(N+1)/2,低电平持续时间为(N-1)/2。
8253-5的工作方式 ③ GATE=1计数进行。在计数过程中若GATE=0,计数停止且OUT为高,计数器重新赋初值,GATE回到高电平时计数重新开始。 ④计数期间送入新值,本周期继续进行,下一个周期按新值计数。
8253-5的工作方式 (5)方式4—软件触发选通方式 计数过程由软件将计数初值装入通道来触发。当写入方式控制字CW后,OUT端输出高电平。在写入计数初值后的一个CLK 脉冲开始减1计数,直到CE为零时,使OUT输出变为低电平,当持续一个CLK脉冲周期后又恢复到高电平。在OUT端产生一个CLK脉冲周期宽度的选通负脉冲输出。 • 方式4的特点和应用: • 输出类似于方式2的波形 • OUT输出为一个负脉冲,负脉冲宽度均为一个CLK 脉冲的周期。 • 软件触发启动
8253-5的工作方式 ①写入CW后OUT为高电平,输入时间常数后,下一个CLK开始计数,计数器为0时,输出一个周期负脉冲,并停止操作。
8253-5的工作方式 ②GATE=1允许计数,GATE=0禁止计数。
8253-5的工作方式 ③计数期间送入新的时间常数,则下一个时钟按新值重新计数。
8253-5的工作方式 (6)方式5 —硬件触发选通方式 与方式5和方式1有些相似。CE到零时OUT端产生宽度为1个CLK脉冲周期的负脉冲选通输出信号。 ①写入CW后OUT为高电平,输入时间常数后由GATE上升沿启动计数。计数为0时输出一个时钟的负脉冲,并停止操作。
8253-5的工作方式 ②计数过程中,若GATE又来一个上升沿,则下一个时钟计数器重新赋值计数。
8253-5的工作方式 ③计数过程中写入时间常数,当前周期不受影响,在下一个 GATE上升沿启动新值计数。
8253-5的工作方式 三、8253-5的初始化 1、写入方式控制字 三个通道用的控制字端口地址是相同的,三个控制字写入后存入通道对应的寄存器中。 2、写入计数初始值 ① 初值计算 计算公式 T = TCLK * N = N / fCLK T为定时时间, TCLK 为计数脉冲的,FCLK为计数频率,N为计数初值。
例 8253通道0的CLK0外接频率fCLK为1MHZ的时钟信号,若按二进制计数方式工作,可定时的时间范围为多少?写入计数器0的计数初值是多少?若要定时10ms则设置的计数初值为多少? 8253-5的工作方式 TCLK=1/1MHz=1/106=10-6秒=10-3毫秒 解: 1个计数器最多可计216=65536个脉冲 可定时的时间0.000001~0.065536秒。计数初值为0000H T = N / fCLK =TCLK * N N=T/TCLK=10/10-3=10000 计数初值为:10001
例:8253计数器0工作于方式1,按二进制计数,计数初值为5080H,计数器1工作于方式2,按BCD码计数,计数初值为2500,若8253口地址为2A0H-2A3H,写出控制字。例:8253计数器0工作于方式1,按二进制计数,计数初值为5080H,计数器1工作于方式2,按BCD码计数,计数初值为2500,若8253口地址为2A0H-2A3H,写出控制字。 计数器0: 计数器1:
例7-1:计数器0工作在方式3下,输出方波的重复频率为2KHz,计数脉冲的输入为2.5MHz,采用BCD计数,写出初始化程序段.例7-1:计数器0工作在方式3下,输出方波的重复频率为2KHz,计数脉冲的输入为2.5MHz,采用BCD计数,写出初始化程序段. 计算计数初值: T=2.5MHz/2KHz=1250 方式控制字: 00110111B=37H 初始化程序: OUT 80H,AL MOV AL,12H OUT 80H,AL MOV AL,37H OUT 83H,AL MOV AL,50H
3、读计数值 在动态读计数值时可以有两种方法: (1)以普通对计数器端口读的方法取得当前计数值。 按工作方式控制字中RL1RL0位的规定,可以读出指定字节的计数值,因计数在进行,可用GATE阻止计数。 (2)锁存计数器的当前计数值。 使用方式控制字,SL1SL0位指定要读的计数器通道号,RL1RL0=00,使方式字成为一个软件命令,当前计数值锁存到锁存寄存器,而计数器可继续工作。
7.2.4 8253-5的应用举例 例7-2: 监视生产流水线 当计满50个工件后,扬声器响5分钟。采用8253-5的通道0对工件计数,通道1产生方波驱动喇叭,持续5分钟。 (1)硬件接口电路
8253-5的应用举例 (1)8253 控制字 通道0工作于方式2计数方式,采用BCD计数,计数初值50,方式控制字为:00010101(15H) 通道1工作于方式3定时方式,采用BCD计数,外接2.5MHZ,产生2000HZ方波。 2.5 X 106/2000=1250 计数初值为: 方式控制字为: 01110111
8253-5的应用举例 设8253地址:40H~43H,8255地址:80H~83H 主程序为: MOV AL,15H OUT 43H,AL MOV AL,50H OUT 40H,AL STI LOP:JMP $
中断服务程序为: MOV AL,01H ;置8255A PA0(GATE1)为1 OUT 80H,AL MOV AL,77H ;设置通道1 OUT 43H,AL MOV AL,50 ;送1250计数初值 OUT 41H,AL MOV AL,12 OUT 41H,AL CALL DL5S ;延时5S MOV AL,00H ;置8255A PA0(GATE1)为0 OUT 80H,AL IRET 8253-5的应用举例