1 / 64

第七章:可编程定时 / 计时器

第七章:可编程定时 / 计时器. 主讲教师:范新民. 1. 7.1 可编程定时 / 计时器的典型结构和基本原理. 2. 7.2 可编程定时 / 计数器 8253. 主要内容:. 7.1 可编程定时 / 计数器的典型结构和基本工作原理. 微机系统中的定时 外部定时方法 软件定时 硬件定时 可编程计数器 / 定时器的工作原理. 一、微机系统中的定时. 微机系统常常需要为处理器和外设提供时间标记,或对外部事件进行计数。. 内部定时是计算机本身运行的时间基准或时序关系,计算机每个操作都是按照严格的时间节拍执行的。.

kenda
Download Presentation

第七章:可编程定时 / 计时器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章:可编程定时/计时器 主讲教师:范新民

  2. 1 7.1 可编程定时/计时器的典型结构和基本原理 2 7.2 可编程定时/计数器8253 主要内容:

  3. 7.1 可编程定时/计数器的典型结构和基本工作原理 • 微机系统中的定时 • 外部定时方法 • 软件定时 • 硬件定时 • 可编程计数器/定时器的工作原理

  4. 一、微机系统中的定时 • 微机系统常常需要为处理器和外设提供时间标记,或对外部事件进行计数。 • 内部定时是计算机本身运行的时间基准或时序关系,计算机每个操作都是按照严格的时间节拍执行的。 • 外部定时是外部设备实现某种功能时,本身所需要的一种时序关系

  5. 二、外部定时方法 • 软件定时 • 它是利用CPU内部定时机构,运用软件编程,循环执行一段程序而产生的等待延时。 • 硬件定时 • 采用可编程通用的定时/计数器或单稳延时电路产生定时或延时。

  6. 三、可编程计数器/定时器的工作原理 • 计数器,即在设置好计数初值后,便开始对外部触发脉冲作减1计数,减为0时,输出一个信号 • 定时器,即在设置好定时常数后,便对外部时钟信号作减1计数,并按定时常数不断地产生时钟周期整数倍的定时间隔。

  7. 控制寄存器 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时,输出一个信号,同时重新装入计数初值到计数执行单元。

  8. 7.2 可编程定时器/计数器8253-5 • 8253内部结构及引脚功能 • 8253的工作方式及特点 • 8253的编程 • 8253的应用举例

  9. 可编程定时器/计数器8253 7.2.18253-5内部结构和引脚 具有三个独立的16位计数器,它可用程序设置成多种工作方式,按十进制或二进制计数,最高计数速率可达2.6MHz。

  10. 可编程定时器/计数器8253 1、内部结构 (1)数据总线缓冲器:三态、双向 (2)读/写控制逻辑电路:产生控制芯片工作的控制信号 (3)控制寄存器:控制计数器的工作方式,只能接受写 入的控制字。 (4)计数器通道0-2:每个通道有一个可预置的16位减法 计数器。

  11. 可编程定时器/计数器8253 • 三个计数器是独立的。每个通道有三条信号线: • 计数输入CLK—用于输入定时基准脉冲或计数脉冲; • 输出信号OUT—以相应的电平指示计数的完成,或输出脉冲波形; • 选通输入(门控输入)GATE—用于启动或禁止计数器的操作,以使计数器和计测对象同步; 每个通道有6种工作方式,由控制寄存器选择。 计数器归0时由OUT引脚输出信号

  12. 2、基本工作原理 ① 控制寄存器—初始化时,将控制字寄存器中的内容写入该寄存器; ② 计数初值寄存器—16位计数初值寄存器CR用来存放计数初值,可通过程序来设定; ③ 减法计数寄存器—计数执行单元CE是一个16位减法计数器,它的初值便是计数初值寄存器的内容,它只对CLK脉冲计数,一旦计数器被启动后,每出现一个CLK脉冲,计数执行单元中的计数值减1,当减为零时,通过OUT输出指示信号,表明计数执行单元已为零。 可编程定时器/计数器8253

  13. 可编程定时器/计数器8253 • 当CLK是一个周期性时钟信号时,计数器为定时器功能;当CLK是一个非周期性事件计数信号时,此时呈计数器功能。 • 计数输出锁存器OL通常跟随计数执行单元的内容而变化,当接收到CPU发来的锁存命令时,就锁存当前的计数值而不跟随计数执行单元变化,直到CPU从中读取锁存值后,才恢复到跟随计数执行单元变化的状态。 • GATE是控制输入端,它有多种控制作用,如允许/禁止计数、启动/停止计数。

  14. 可编程定时器/计数器8253 3、8253的引脚及功能

  15. 可编程定时器/计数器8253 D0—D7: 数据线,双向三态 A1、A0:端口选择信号,8253有4个口地址: CS : 片选信号 WR : 读信号 RD:写信号 CLK0 ~ CLK2 OUT0 ~ OUT2 GATE0 ~ GATE2

  16. 可编程定时器/计数器8253 4、 8253 端口操作:

  17. 工作方式控制字格式 可编程定时器/计数器8253 5、8253的控制字和工作方式 8255有3个计数通道,但只有1个通道控制器。CPU通过对控制寄存器写控制字,可以分别对3个计数通道的工作方式进行设置。 8253控制字共分为4部分:通道选择、计数器读/写方式、工作方式和计数码的选择。

  18. 可编程定时器/计数器8253 工作方式控制字

  19. 可编程定时器/计数器8253 二进制计数时: 1个计数器最多可计216=65536个脉冲,计数初值为0000H;最少可计1个脉冲,计数初值为0001H。 BCD码计数时: 1个计数器最多可计104=10000个脉冲,计数初值为0000H;最少可计1个脉冲,计数初值为0001H 8253初始化: 对一个通道先写入控制字再写入时间常数(计数初值)

  20. 可编程定时器/计数器8253 7.2.2 8253-5的工作方式 8253有6种工作方式,在不同的工作方式下,计数器的启动方式、GATE端的输入信号的作用以及OUT端的输出波形都有所不同。 1、方式0—计数结束中断方式 方式0是典型的事件计数用法,CLK端作为事件计数输入信号,当计数执行单元CE为零时,OUT端变为高电平,它可作为中断请求信号。当计数初值再次写入通道后计数器方可工作。

  21. 8253-5的工作方式 方式 0的时序波形 • 控制字(CW)写入后OUT即变为低电平,当计数器为0时,输出OUT变为高电平。 • 计数初值写入后在下一个CLK下降沿才送入计数器,因此计数值为N+1。

  22. 8253-5的工作方式 当GATE变为低电平时计数停止,再变为高电平时计数继续进行。 • 若计数过程中重新送入初值,则按新值重新计数。 • 计数到零后,不能自动恢复计数初值,OUT端保持高电平。

  23. 8253-5的工作方式 • (2)方式1 —硬件可重触发单稳态方式 • 计数器相当于一个可编程的单稳态电路,触发输入为GATE信号,由GATE的上升沿触发计数器工作。 • 方式1的特点和应用: • 计数器的启动只能由门控脉冲的上升沿产生,即只能用硬件启动。 • OUT输出为一个单稳态负脉冲,其脉宽为计数初值个CLK 时钟脉冲的周期之和。 • 在形成单稳态脉冲过程中,可以重触发。 • 在微机实时控制系统中常用作监视时钟。

  24. 8253-5的工作方式 方式1的时序波形: • 写入CW后OUT变为高电平, GATE上升沿触发后,OUT变为低并开始计数,归零时OUT变为高电平。 • GATE再来一次上升沿使OUT为低,计数器以初值重新计数。

  25. 8253-5的工作方式 • 计数过程中,再次给通道写入时间常数,不影响现行操作过程,GATE再次触发后才按新的时间常数操作

  26. 8253-5的工作方式 • 计数过程中,GATE触发沿提前到来,在下一个CLK的下降沿,计数器开始重新计数,这将使输出单稳脉冲比原先设定的计数值加宽。

  27. 8253-5的工作方式 (3)方式2—速率发生器(Rate Genenator) 方式2能产生周期性的定时信号,称为速率发生器,又称为N分频方式和周期性定时器方式。 方式2的特点和应用: • CR内容能自动地、重复地装入到CE中,OUT端上就能连续地输出周期性分频信号。 • 即可软件启动,又可硬件启动。 • 改变计数初值,即可获得不同速率的OUT输出信号。 • 负脉冲宽度均为一个CLK脉冲的周期。 • 主要应用作为分频器和时基信号。

  28. 8253-5的工作方式 方式2的时序波形: ① 写入CW后OUT为高电平,写入时间常数后,下一CLK开始计数,减到1时OUT变低,经过一个CLK后OUT变高,计数重新开始。若初值为N,OUT端输出信号为CLK端的1/N

  29. 8253-5的工作方式 ②GATE=1计数进行,GATE=0计数停止,且下一个CLK计数器重新赋初值,GATE变为高电平,计数重新开始。

  30. 8253-5的工作方式 ③ 计数期间送入新值,本周期继续进行,下一个周期按新值计数操作。 不用重复置数。计数器能够连续工作,输出OUT是输入CLK的n(初值)分频。

  31. 8253-5的工作方式 (4)方式3—方波方式(Square Ware Mode) 方式3的操作方式除OUT输出方波之外,和方式2相似。方波的重复周期是计数初值个CLK脉冲周期之和。 方式3的特点和应用: • 方式3的计数过程是CE内容减2。 • 软件启动和硬件启动两种。 • 改变计数初值,OUT端将输出不同频率。 • 主要应用作为方波发生器和波特率发生器。

  32. 8253-5的工作方式 方式3的时序波形: ① 写入CW后OUT变为高电平,输入时间常数后,下一个时钟开始计数,计到一半时输出变为低电平,计到终值时重新变为高电平,并开始下一次计数过程。

  33. 8253-5的工作方式 ② 若N为偶数,高低电平持续时间相等;若为奇数,则高电平持续时间为(N+1)/2,低电平持续时间为(N-1)/2。

  34. 8253-5的工作方式 ③ GATE=1计数进行。在计数过程中若GATE=0,计数停止且OUT为高,计数器重新赋初值,GATE回到高电平时计数重新开始。 ④计数期间送入新值,本周期继续进行,下一个周期按新值计数。

  35. 8253-5的工作方式 (5)方式4—软件触发选通方式 计数过程由软件将计数初值装入通道来触发。当写入方式控制字CW后,OUT端输出高电平。在写入计数初值后的一个CLK 脉冲开始减1计数,直到CE为零时,使OUT输出变为低电平,当持续一个CLK脉冲周期后又恢复到高电平。在OUT端产生一个CLK脉冲周期宽度的选通负脉冲输出。 • 方式4的特点和应用: • 输出类似于方式2的波形 • OUT输出为一个负脉冲,负脉冲宽度均为一个CLK 脉冲的周期。 • 软件触发启动

  36. 8253-5的工作方式 ①写入CW后OUT为高电平,输入时间常数后,下一个CLK开始计数,计数器为0时,输出一个周期负脉冲,并停止操作。

  37. 8253-5的工作方式 ②GATE=1允许计数,GATE=0禁止计数。

  38. 8253-5的工作方式 ③计数期间送入新的时间常数,则下一个时钟按新值重新计数。

  39. 8253-5的工作方式 (6)方式5 —硬件触发选通方式 与方式5和方式1有些相似。CE到零时OUT端产生宽度为1个CLK脉冲周期的负脉冲选通输出信号。 ①写入CW后OUT为高电平,输入时间常数后由GATE上升沿启动计数。计数为0时输出一个时钟的负脉冲,并停止操作。

  40. 8253-5的工作方式 ②计数过程中,若GATE又来一个上升沿,则下一个时钟计数器重新赋值计数。

  41. 8253-5的工作方式 ③计数过程中写入时间常数,当前周期不受影响,在下一个 GATE上升沿启动新值计数。

  42. 8253-5的工作方式 三、8253-5的初始化 1、写入方式控制字 三个通道用的控制字端口地址是相同的,三个控制字写入后存入通道对应的寄存器中。 2、写入计数初始值 ① 初值计算 计算公式 T = TCLK * N = N / fCLK T为定时时间, TCLK 为计数脉冲的,FCLK为计数频率,N为计数初值。

  43. 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

  44. 例:8253计数器0工作于方式1,按二进制计数,计数初值为5080H,计数器1工作于方式2,按BCD码计数,计数初值为2500,若8253口地址为2A0H-2A3H,写出控制字。例:8253计数器0工作于方式1,按二进制计数,计数初值为5080H,计数器1工作于方式2,按BCD码计数,计数初值为2500,若8253口地址为2A0H-2A3H,写出控制字。 计数器0: 计数器1:

  45. 例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

  46. 3、读计数值 在动态读计数值时可以有两种方法: (1)以普通对计数器端口读的方法取得当前计数值。 按工作方式控制字中RL1RL0位的规定,可以读出指定字节的计数值,因计数在进行,可用GATE阻止计数。 (2)锁存计数器的当前计数值。 使用方式控制字,SL1SL0位指定要读的计数器通道号,RL1RL0=00,使方式字成为一个软件命令,当前计数值锁存到锁存寄存器,而计数器可继续工作。

  47. 7.2.4 8253-5的应用举例 例7-2: 监视生产流水线 当计满50个工件后,扬声器响5分钟。采用8253-5的通道0对工件计数,通道1产生方波驱动喇叭,持续5分钟。 (1)硬件接口电路

  48. 8253-5的应用举例 (1)8253 控制字 通道0工作于方式2计数方式,采用BCD计数,计数初值50,方式控制字为:00010101(15H) 通道1工作于方式3定时方式,采用BCD计数,外接2.5MHZ,产生2000HZ方波。 2.5 X 106/2000=1250 计数初值为: 方式控制字为: 01110111

  49. 8253-5的应用举例 设8253地址:40H~43H,8255地址:80H~83H 主程序为: MOV AL,15H OUT 43H,AL MOV AL,50H OUT 40H,AL STI LOP:JMP $

  50. 中断服务程序为: 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的应用举例

More Related