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

64
1 主主主主 主主主 主主主 主主主主主 / 主主主

Upload: kenda

Post on 25-Jan-2016

193 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

1

主讲教师:范新民

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

2

7.1 可编程定时 / 计时器的典型结构和基本原理

1

7.2 可编程定时 / 计数器 82532

主要内容:

3

微机系统中的定时外部定时方法

软件定时 硬件定时

可编程计数器 / 定时器的工作原理

7.1 可编程定时 / 计数器的典型结构和基本工作原理

4

一、微机系统中的定时

微机系统常常需要为处理器和外设提供时间标记,或对外部事件进行计数。

内部定时是计算机本身运行的时间基准或时序关系,计算机每个操作都是按照严格的时间节拍执行的。

外部定时是外部设备实现某种功能时,本身所需要的一种时序关系

5

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

6

三、可编程计数器 / 定时器的工作原理

计数器,即在设置好计数初值后,便开始对外部触发脉冲作减 1 计数,减为 0 时,输出一个信号

定时器,即在设置好定时常数后,便对外部时钟信号作减 1 计数,并按定时常数不断地产生时钟周期整数倍的定时间隔。

7

控制寄存器

CRH CRL┆

CRH CRL┆

CRH CRL┆

控制逻辑

计数初值寄存器 CR

计数执行单元CE

CLK

GATE

OUTRD

WR

CS

A0

D7 ~ D0

计数输出锁存器OL

CLK: 输入脉冲信号 , 当 CLK 为周期性时钟信号时,计数器为定时器。当CLK 为非周期性时钟信号时,为计数器。GATE: 门控输入端,当门脉冲到来时,时钟 CLK 有效,进行计数操作,当门脉冲结束时,时钟无效,计数停止。

OUT: 当计数执行单元为 0时,输出一个信号,同时重新装入计数初值到计数执行单元。

工作原理:

可编程计数器 / 定时器的工作原理

8

7.2 可编程定时器 / 计数器 8253-5

8253 内部结构及引脚功能 8253 的工作方式及特点 8253 的编程 8253 的应用举例

9

具有三个独立的16 位计数器,它可用程序设置成多种工作方式,按十进制或二进制计数,最高计数速率可达 2.6MHz 。

7.2.1 8253-5 内部结构和引脚

可编程定时器 / 计数器 8253

10

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

可编程定时器 / 计数器 8253

11

三个计数器是独立的。每个通道有三条信号线: 计数输入 CLK— 用于输入定时基准脉冲或计数脉冲; 输出信号 OUT— 以相应的电平指示计数的完成,或

输出脉冲波形; 选通输入(门控输入) GATE— 用于启动或禁止计

数器的操作,以使计数器和计测对象同步;

每个通道有 6 种工作方式,由控制寄存器选择。计数器归 0 时由 OUT 引脚输出信号

可编程定时器 / 计数器 8253

12

2 、基本工作原理

① 控制寄存器—初始化时,将控制字寄存器中的内容写入该寄存器;

② 计数初值寄存器— 16 位计数初值寄存器 CR 用来存放计数初值,可通过程序来设定;

③ 减法计数寄存器—计数执行单元 CE 是一个 16 位减法计数器,它的初值便是计数初值寄存器的内容,它只对CLK 脉冲计数,一旦计数器被启动后,每出现一个CLK 脉冲,计数执行单元中的计数值减 1 ,当减为零时,通过 OUT 输出指示信号,表明计数执行单元已为零。

可编程定时器 / 计数器 8253

13

当 CLK 是一个周期性时钟信号时,计数器为定时器功能;当 CLK 是一个非周期性事件计数信号时,此时呈计数器功能。

计数输出锁存器 OL 通常跟随计数执行单元的内容而变化,当接收到 CPU 发来的锁存命令时,就锁存当前的计数值而不跟随计数执行单元变化,直到 CPU从中读取锁存值后,才恢复到跟随计数执行单元变化的状态。GATE 是控制输入端,它有多种控制作用,如允许 / 禁止计数、启动 / 停止计数。

可编程定时器 / 计数器 8253

14

3 、 8253 的引脚及功能

可编程定时器 / 计数器 8253

15

D0—D7: 数据线,双向三态 A1 、 A0 :端口选择信号, 8253 有 4 个口地址:

CS : 片选信号WR : 读信号RD :写信号CLK0 ~ CLK2 OUT0 ~ OUT2GATE0 ~ GATE2

A1 A0 口地址 A1 A0 口地址0 0 计数器 0 1 0 计数器 2

0 1 计数器 1 1 1 控制寄存器

可编程定时器 / 计数器 8253

16

CS RD WR A1 A0 端口 操作1 * * * * 未选中 禁止0 1 1 * * 选中 无操作0 1 0 0 0 计数器 0 置计数初值0 1 0 0 1 计数器 1 置计数初值0 1 0 1 0 计数器 2 置计数初值0 1 0 1 1 控制寄存器 设置命令控制字0 0 1 0 0 计数器 0 读出计数值0 0 1 0 1 计数器 1 读出计数值0 0 1 1 0 计数器 2 读出计数值0 0 1 1 1 无操作

4 、 8253 端口操作:

可编程定时器 / 计数器 8253

17

工作方式控制字格式

D7 D6 D5 D4 D3 D2 D1 D0

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

5 、 8253 的控制字和工作方式 8255 有 3 个计数通道,但只有 1 个通道控制器。 CPU 通过对控制寄存器写控制字,可以分别对 3 个计数通道的工作方式进行设置。

8253 控制字共分为 4 部分:通道选择、计数器读 / 写方式、工作方式和计数码的选择。

可编程定时器 / 计数器 8253

18

工作方式控制字

可编程定时器 / 计数器 8253

19

二进制计数时: 1 个计数器最多可计 216=65536 个脉冲,计数初值为 0000H ;最少可计 1 个脉冲,计数初值为 0001H 。BCD码计数时: 1 个计数器最多可计 104=10000 个脉冲,计数初值为 0000H ;最少可计 1 个脉冲,计数初值为 0001H

8253 初始化: 对一个通道先写入控制字再写入时间常数(计数初值)

可编程定时器 / 计数器 8253

20

7.2.2 8253-5 的工作方式

1 、方式 0— 计数结束中断方式 方式 0 是典型的事件计数用法, CLK 端作为事件计数输入信号,当计数执行单元 CE 为零时, OUT 端变为高电平,它可作为中断请求信号。当计数初值再次写入通道后计数器方可工作。

8253 有 6 种工作方式,在不同的工作方式下,计数器的启动方式、 GATE 端的输入信号的作用以及OUT 端的输出波形都有所不同。

可编程定时器 / 计数器 8253

21

① 控制字( CW )写入后 OUT 即变为低电平,当计数器为 0 时,输出 OUT变为高电平。

② 计数初值写入后在下一个 CLK下降沿才送入计数器,因此计数值为 N+1 。

方式 0的时序波形

8253-5 的工作方式

22

③ 当 GATE 变为低电 平时计数停止,再变为高电平时计数继续进行。

④若计数过程中重新送入初值,则按新值重新计数。

⑤ 计数到零后,不能自动恢复计数初值, OUT 端保持高电平。

8253-5 的工作方式

23

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

8253-5 的工作方式

24

方式 1 的时序波形 :

① 写 入 CW 后 OUT 变为 高 电 平 , GATE 上升沿触 发后, OUT变为低并开始计数,归零时 OUT变为高电平。

② GATE再来一次上升沿使 OUT 为低,计数器以初值重新计数。

8253-5 的工作方式

25

③ 计数过程中,再次给通道写入时间常数,不影响现行操作过程, GATE再次触发后才按新的时间常数操作

8253-5 的工作方式

26

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

8253-5 的工作方式

27

( 3 )方式 2— 速率发生器( Rate Genenator ) 方式 2 能产生周期性的定时信号,称为速率发生器,又称为 N 分频方式和周期性定时器方式。

方式 2 的特点和应用: CR 内容能自动地、重复地装入到 CE 中, OUT 端上就能连续地输出周期性分频信号。

即可软件启动,又可硬件启动。 改变计数初值,即可获得不同速率的 OUT 输出信号。 负脉冲宽度均为一个 CLK 脉冲的周期。 主要应用作为分频器和时基信号。

8253-5 的工作方式

28

方式 2 的时序波形 :

① 写入 CW 后 OUT 为高电平,写入时间常数后,下一CLK 开始计数,减到 1 时 OUT变低,经过一个 CLK 后OUT变高,计数重新开始。若初值为 N , OUT 端输出信号为 CLK 端的 1/N

8253-5 的工作方式

29

②GATE=1 计数进行, GATE=0 计数停止,且下一个CLK 计数器重新赋初值, GATE变为高电平,计数重新开始。

8253-5 的工作方式

30

③ 计数期间送入新值,本周期继续进行,下一个周期按新值计数操作。

不用重复置数。计数器能够连续工作,输出 OUT 是输入 CLK 的 n( 初值)分频。

8253-5 的工作方式

31

( 4 )方式 3— 方波方式( Square Ware Mode )

方式 3 的操作方式除OUT 输出方波之外,和方式 2相似。方波的重复周期是计数初值个 CLK 脉冲周期之和。

方式 3 的特点和应用:

方式 3 的计数过程是 CE 内容减 2 。软件启动和硬件启动两种。改变计数初值, OUT 端将输出不同频率。主要应用作为方波发生器和波特率发生器。

8253-5 的工作方式

32

方式 3 的时序波形 :

① 写入 CW 后 OUT变为高电平,输入时间常数后,下一个时钟开始计数,计到一半时输出变为低电平,计到终值时重新变为高电平,并开始下一次计数过程。

8253-5 的工作方式

33

② 若 N 为偶数,高低电平持续时间相等;若为奇数,则高电平持续时间为( N+1 ) /2 ,低电平持续时间为( N-1 ) /2 。

8253-5 的工作方式

34

③ GATE=1 计数进行。在计数过程中若 GATE=0 ,计数停止且 OUT 为高,计数器重新赋初值, GATE回到高电平时计数重新开始。

④计数期间送入新值,本周期继续进行,下一个周期按新值计数。

8253-5 的工作方式

35

方式 4 的特点和应用:输出类似于方式 2 的波形OUT 输出为一个负脉冲,负脉冲宽度均为一个 CLK 脉冲的周期。软件触发启动

计数过程由软件将计数初值装入通道来触发。当写入方式控制字 CW 后, OUT 端输出高电平。在写入计数初值后的一个CLK 脉冲开始减 1 计数,直到 CE 为零时,使 OUT 输出变为低电平,当持续一个 CLK 脉冲周期后又恢复到高电平。在 OUT 端产生一个 CLK 脉冲周期宽度的选通负脉冲输出。

(5) 方式 4— 软件触发选通方式

8253-5 的工作方式

36

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

8253-5 的工作方式

37

②GATE=1允许计数, GATE=0 禁止计数。

8253-5 的工作方式

38

③ 计数期间送入新的时间常数,则下一个时钟按新值重新计数。

8253-5 的工作方式

39

8253-5 的工作方式

( 6 )方式 5 — 硬件触发选通方式 与方式 5 和方式 1 有些相似。 CE 到零时 OUT 端产生宽度为 1 个 CLK 脉冲周期的负脉冲选通输出信号。

① 写入 CW 后 OUT 为高电平,输入时间常数后由 GATE上升沿启动计数。计数为 0 时输出一个时钟的负脉冲,并停止操作。

40

② 计数过程中,若GATE又来一个上升沿,则下一个时钟计数器重新赋值计数。

8253-5 的工作方式

41

③ 计数过程中写入时间常数,当前周期不受影响,在下一个 GATE上升沿启动新值计数。

8253-5 的工作方式

42

三、 8253-5 的初始化1 、写入方式控制字 三个通道用的控制字端口地址是相同的,三个控制字写入后存入通道对应的寄存器中。

2 、写入计数初始值 ① 初值计算 计算公式 T = TCLK * N = N / fCLK

T为定时时间, TCLK 为计数脉冲的, FCLK 为计数频率, N 为计数初值。

8253-5 的工作方式

43

例 8253 通道 0 的 CLK0 外接频率 fCLK为 1MHZ 的时

钟信号,若按二进制计数方式工作,可定时的时间范围为多少?写入计数器 0 的计数初值是多少?若要定时 10ms则设置的计数初值为多少?解: TCLK=1/1MHz=1/106=10-6 秒

=10-3毫秒

计数初值为 :10001

T = N / fCLK =TCLK * NN=T/TCLK=10/10-

3=10000

1 个计数器最多可计 216=65536 个脉冲可定时的时间 0.000001 ~ 0.065536秒。计数初值为0000H

8253-5 的工作方式

44

D7 D6 D5 D4 D3 D2 D1 D0

0 0 1 1 0 0 1 0

D7 D6 D5 D4 D3 D2 D1 D0

0 1 1 1 0 1 0 1

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

计数器 0 :

计数器 1 :

45

例 7-1 :计数器 0 工作在方式 3 下,输出方波的重复频率为 2KHz ,计数脉冲的输入为 2.5MHz ,采用 BCD 计数,写出初始化程序段 .计算计数初值:

T=2.5MHz/2KHz=1250

方式控制字:00110111B=37H

初始化程序:MOVAL , 37HOUT 83H , ALMOVAL , 50H

OUT 80H , ALMOV AL , 12HOUT 80H , AL

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

( 1 ) 8253 控制字 通道 0 工作于方式 2 计数方式,采用 BCD 计数,计数初值50 ,方式控制字为 :00010101(15H)

D7 D6 D5 D4 D3 D2 D1 D0

SC1

0

SC00

RL10

RL01

M20

M11

M00

BCD1

通道 1 工作于方式 3 定时方式,采用 BCD 计数 ,外接 2.5MHZ, 产生 2000HZ 方波。

01110111方式控制字为 :

计数初值为 :2.5 X 106/2000=1250

8253-5 的应用举例

49

设 8253 地址 :40H ~ 43H,8255 地址 :80H ~ 83H主程序为:

MOV AL , 15H OUT 43H , AL

MOV AL , 50H OUT 40H , AL STI

LOP : JMP $

8253-5 的应用举例

50

中断服务程序为: MOV AL , 01H ; 置 8255A

PA0 ( GATE1 )为 1 OUT 80H , AL MOV AL , 77H ;设置通道 1

OUT 43H , ALMOV AL , 50 ;送 1250 计数初值

OUT 41H , ALMOV AL , 12OUT 41H , ALCALL DL5S ;延时 5SMOV AL , 00H ;置 8255A

PA0 ( GATE1 )为 0 OUT 80H , ALIRET

8253-5 的应用举例

51

例 7-38253 在 IBM-PC 机中的应用

8253-5 的应用举例

52

工作原理分析:⑴计数器 0 用来产生实时日时钟信号,工作于方式 3 ,计数初值

为 0 ,采用二进制计数方式,输出端 OUT0 作为中断请求信号IRQ0 ,输出 1193181.6/65536=18.2Hz 的方波脉冲。

⑵计数器 1 用来产生动态存储器刷新操作的定时控制信号。它工作于方式 2 ,计数初值为 18 , OUT1 端输出一个负脉冲序列,其脉冲周期约为 18÷1.1931816MHz = 15.08 ( μs )。

⑶计数器 2 用于为系统中的扬声器发声时提供一个约为 900Hz的方波信号。它也工作于方式 3 ,计数初值为0533H ( 1331 ), GATE2 接入一个来自系统板上 8255A

的 PB0 ,作为扬声器发声时间的控制信号 。

8253-5 的应用举例

53

2. 8253 的初始化程序段 ⑴对计数器 0 的初始化程序:

MOV AL , 00110110BOUT 43H , ALMOV AL , 0OUT 40H , ALOUT 40H , AL

⑵对计数器 1 的初始化程序:MOV AL, 01010100BOUT 43H , ALMOV AL , 18OUT 41H , AL

8253-5 的应用举例

54

MOV AL , 10110110BOUT 43H , ALMOV AX , 0533HOUT 42H , ALMOV AL , AHOUT 42H , ALIN AL , 61HMOV AH , ALOR AL , 03HOUT 61H , AL

⑶对计数器 2 的初始化程序:

8253-5 的应用举例

55

例 7-5 8253 在实时控制系统中的应用 将 8253 的两个计数器串联起来,使其中的一个计数器作为定时器,当分频器使用,将其OUT 输出信号作为另一个计数器的 CLK 脉冲信号;而另一计数器只起计数作用,其OUT 输出端作为中断请求信号。

设 8253 端口地址为: 230H ~ 233H , 8259 中的IR2 将作为采样周期中断源的输入端,中断类型码为0AH 存放在 0028H ~ 002BH 单元中,中断服务程序为 RTIME 。

8253-5 的应用举例

56

8253-5 的应用举例

57

计数器 0 工作在方式 2 下,初值为 0 ,仅写低八位字节,采用二进制计数,计数器 1 工作在方式 2 下,计数初值来自采样周期变量 TIME ,按先低后高的次序将 16 位计数值写入 CR 并采用二进制计数方式。

8253 初始化和设置中断处理首地址到中断向量表的程序段:

MOV DX , 233H ;写入计数器 0 的控制字

MOV AL , 00010100B

OUT DX , AL

8253-5 的应用举例

58

MOV DX , 230H ;计数器 0 的计数初值写入 CRL

MOV AL , 00H

OUT DX , AL

MOV DX , 233H ;写入计数器 1 的控制字MOV AL , 01110100B

OUT DX , AL

MOV DX , 231H ;计数器 1 的计数初值写入 CR

MOV AL , BYTE PTR TIME

OUT DX , AL

MOV AL , BYTE PTR TIME+1

OUT DX , AL

8253-5 的应用举例

59

MOV DI , 28H

MOV AX , OFFSET RTIME ;中断服务程序入口地址存入向 量表CLD

STOSW

MOV AX , SEG RTIME

STOSW

8253-5 的应用举例

60

例 7-4 三个计数通道组合应用

8253-5 的应用举例

61

8253-5 的应用举例

62

初始化程序: MOV AL , 00110101B

OUT 83H , AL

MOV AL , 00H

OUT 80H , AL

MOV AL , 10H

OUT 80H , AL

MOV AL , 01110011B

OUT 83H , AL

MOV AL , 00H

OUT 81H , AL

8253-5 的应用举例

63

MOV AL , 05H

OUT 81H , AL

MOV AL , 10110111B

OUT 83H , AL

MOV AL , 00H

OUT 82H, AL

MOV AL , 20H

OUT 82H , AL

8253-5 的应用举例

64

www.1ppt.com