98

Click here to load reader

第九章 定时 / 计数器 8253

Embed Size (px)

DESCRIPTION

[email protected]. 第九章 定时 / 计数器 8253. 5. 1. 2. 3. 4. 8253 内部 结构及工作原理. 8253 的控制字及工作方式. 8253 与系统总线的接口连接方法. 8253 引脚功能及特点. 8253 的应用和设计. Contents. 8253 简介. 定时. 分频. 方波. §9.1 8253 引脚功能及特点. - PowerPoint PPT Presentation

Citation preview

Page 1: 第九章 定时 / 计数器 8253

LOGO

第九章 定时 / 计数器 8253

[email protected]

Page 2: 第九章 定时 / 计数器 8253

[email protected]

Contents

8253 引脚功能及特点1

8253 内部结构及工作原理2

8253 的控制字及工作方式3

8253 与系统总线的接口连接方法4

8253 的应用和设计5

Page 3: 第九章 定时 / 计数器 8253

[email protected]

8253 简介

定时

分频

方波

Page 4: 第九章 定时 / 计数器 8253

[email protected]

§9.1 8253 引脚功能及特点

Intel8253是 8086/8088微机系统常用的定时 /计数器芯片,它具有定时,计数与分频三大功 能,同类型的定时 /计数器芯片还有 Intel8254等, 8253是 24脚双列直插芯片,用 +5V电源供电。

1、 8253的一般性能概述( 1 )每个 8253 芯片有 3 个独立的 16 位计数器通道。( 2 )每个计数器通道都可以按照二进制或二 -- 十进制计数。( 3 )每个通道有 6 种工作方式,可以由程序设定和改变。

Page 5: 第九章 定时 / 计数器 8253

[email protected]

§9.1 8253 引脚功能及特点

0 7D ~D

CS

RD

WR

0 1A ,A

0 2CLK ~CLK

0 2GATE ~GATE

引脚名 功 能 连接去向

数据总线(双向) CPU

片选信号 译码电路

读信号 CPU

写信号 CPU

端口地址 CPU

3个计数通道的输入时钟(计数脉冲)

外部

3个计数通道的控制信号 外部

3个计数通道的输出信号 外部

Vcc 电源( +5V) /

GND 地 /

0 7~OUT OUT

Intel 公司 生 产 的可 编 程 定时 / 计数器 8253 采 用 24脚的 DIP封 装 , 用作 为 分 频器 、 定 时信 号 产 生器等。

表 1 8253 引脚定义

Page 6: 第九章 定时 / 计数器 8253

[email protected]

§9.2 8253 的原理结构及工作原理

0计数器

GATE0CLK0

OUT0

GATE1CLK1OUT1

GATE2CLK2OUT2

地址线

RDWR

CS

A1A0

1计数器

2计数器

I nt el 8253

地址译码

D7 D0~

l l l

可编程定时 / 计数器 8253 的原理结构图

定时 /计数器8253 一共有三个独立的计数通道(也称计数器):计数器 0 、计数器 1 、计数器 2 。

Page 7: 第九章 定时 / 计数器 8253

[email protected]

§9.2 8253 的原理结构及工作原理

CPU可访问

Page 8: 第九章 定时 / 计数器 8253

[email protected]

§9.2 8253 的原理结构及工作原理定时 / 计数器 8253 占用 4 个端口地址,:

寻 址COUNTA 0 0 计数通道 0COUNTB 0 1 计数通道 1COUNTC 1 0 计数通道 2COUNTD 1 1 控制字寄存器

67DD

01AA

其中控制字寄存器用一个端口地址,由控制字中的 位来指定寻址哪个计数通道,其它 3 个计数通道各占用一个端口地址。为本章说明方便,将这四个地址分别用 COUNTA 、 COUNTB 、 COUNTC 和 COUNTD 表示。 通过计数通道的端口地址可以访问通道中的 CR 、 OL ,当对通道进行写操作时,实际上表示将计数初值(即时常数)写入CR ;当对通道进行读操作时,表示将从 OL 中读取计数值。

Page 9: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

8253 共有 6 种工作方式

工作于哪种方式,由控制寄存器的内容来设定

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

选择计数通道 读写规则 工作方式 数据类型

D7 D6 D5 D4 D3 D2 D0D1

图 8253 的方式控制寄存器

Page 10: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

三个计数通道的控制寄存器共用一个端口地址,由控制字中的位 ( 即 ) 来确定计数通道:

含 义 0 0 计数通道 0 0 1 计数通道 1 1 0 计数通道 2 1 1 保留

1 0SC SC67DD

1 0SC SC

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

选择计数通道 读写规则 工作方式 数据类型

D7 D6 D5 D4 D3 D2 D0D1

Page 11: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

EG : 8253 的控制寄存器端口地址为 COUNTD要对计数器 0,1,2 的三个控制寄存器进行设置,需

要对 COUNTD 这个地址进行三次访问,执行 3次 OUT 指令才行。

MOV DX COUNTD ( 指向控制寄存器 )

MOV AL 00XXXXXX (对计数器 0 设置)OUT DX AL

MOV AL 01XXXXXX (对计数器 1 设置)OUT DX AL

MOV AL 10XXXXXX (对计数器 2 设置)OUT DX AL

Page 12: 第九章 定时 / 计数器 8253

[email protected]

方式控制字的位 (即 )用于设定计数通道的读写规则:

含 义0 0 计数通道的锁存命令,即将当前 CE 的内容锁存到 OL0 1 只读写 CR 或 OL 的低 8 位1 0 只读写 CR 或 OL 的高 8 位1 1 先读写 CR 或 OL 的低 8 位,再读写高 8 位

5 4D D

1 0RL RL

1 0RL RL

§9.3 8253 的控制字及工作方式

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

选择计数通道 读写规则 工作方式 数据类型

D7 D6 D5 D4 D3 D2 D0D1

如果是 16位时常数必须分两

次写为什么不能 一次送一个字?

Page 13: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

方式控制字的 位( )用于设定计数通道的工作方式:

含 义 0 0 0 方式 0 0 0 1 方式 1 ×1 0 方式 2 ×1 1 方式 3 1 0 0 方式 4 1 0 1 方式 5

123 DDD

2 1 0M M M

2 1 0M M M

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

选择计数通道 读写规则 工作方式 数据类型

D7 D6 D5 D4 D3 D2 D0D1

Page 14: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

方式控制字的最低位 (即 BCD 位)用于指定读写数据的格式,当 BCD=0 时,表示读写数据为二进制数,当 BCD=1 时,表示读写数据为两位十进制数。

0D

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

选择计数通道 读写规则 工作方式 数据类型

D7 D6 D5 D4 D3 D2 D0D1

Page 15: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

8253 的初始化编程 EG. 8088 系统

上, 8253 的地址为40H~43H ,计数器 0 计数初值为 23 ,工作在工作方式 2 ,十进制计数;计数器 1 的计数初值为100 ,工作在工作方式0 ;计数器 2 计数初值为 1000 ,工作在工作方式 5 。试写出该 8253的控制字初始化程序段。

MOV DX, 43H MOV AL, 00110101B OUT DX, AL MOV AL, 01010000B OUT DX, AL MOV AL, 10111010B OUT DX, AL

Page 16: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的工作方式

名词介绍:( 1 ) CLK 脉冲:是指 CLK 上从上升沿到下降

沿的时间( 2 )计数器: 与计数通道的含义一致( 3 ) 时常数: 是指通过指令写入到计数器的

值,可以理解成计数器的初值。

Page 17: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式1 .方式 0 —— 计数达到终值时中断 功能:给定时间 t0 ,当到达时间 t0 时,需要进行某种操

作。1. 当写入方式控制字后, OUT=02. 写入时常数后,开始计数,计数器达到 0 时变高电平3. 再次写入时常数,开始新一轮计数

控制信号 GATE 可以暂停计数操作,来加长定时的时间(在时常数不变的情况下)

当 GATE = 0 时,表示相应的计数器暂停计数;当 GATE = 1 时,表示相应的计数器正常计数。

Page 18: 第九章 定时 / 计数器 8253

[email protected]

写方式控制字

写时常数

写时常数(4)

CLK

OUT

WR

CE的内容(N表示不确定值) N 04 03 02 00 FF

FF00000000CE的高位字节CE的低位字节 01

00

§9.3 8253 的控制字及工作方式

GATE=1 情况下方式 0 计数过程

N+1 个时钟周期

计数到达终值后,输出高电

平,但 CE 继续减 1 计数

减 1 计数到 00之前变成高电平

Page 19: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

利用 GATE 信号加长 OUT 端的低电平宽度

写时常数(4)

CLK

OUT

WR

CE N 04 03 03 03 FFFF00000000

0300 00

030002

0001

0000

GATE

Page 20: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

利用写入新的时常数加长 OUT 端的低电平宽度

写时常数(4)

CLK

OUT

WR

CE N 04 03 02 01 FFFF00000000

0400 00

030002

0001

0000

写时常数(4)

Page 21: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

方式 0 具有下列一些特点: 在向 8253 置方式字或置时常数时, OUT 输出变成低电平; 置入时常数后,下一个 CLK 脉冲,使 CR 内容 ( 初值 ) 置入计数单元; 在后续 CLK 脉冲 , 进行“减 1”计数; 当计数至 0 时 ,OUT 由低变高 ,并继续计数 , 从 0 到 0FFFFH ; 上述计数过程要受 GATE 控制 , 当 GATE = 1 时允许计数,当 GATE = 0

时则暂停计数; 正常情况下,即 GATE=1 ,对计数器置入时常数 N 时,要经过 N+ 1 个

时钟周期才能使 OUT 输出高电平; OUT 端由低变高信号可用作为中断请求信号,表示已达到了预定的时

间; 在计数过程中,如 GATE 变为低电平,这时只是暂停计数,等待 GATE 信

号变为高电平后,计数器继续“减 1”计数。 在计数过程中,如果重新写入计数初值,就重新开始重新计数,延长 OUT

端的低电平。

Page 22: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

例题,对 8253 (地址: 40H~43H )写控制字,将计数器 0 设置成工作方式 0 ,假设时常数为 1500 ,写出初始化程序: MOV DX, 43H

MOV AL, 0011 0000BOUT DX, AL

MOV DX, 40HMOV AX, 1500OUT DX, ALXCHG AL, AHOUT DX, AL

分析:1. 设置工作方式,通过写控制字实现2. 控制字分析:时常数 =1500 要用 16 位寄存器

00 11 000 0 B

3. 控制字端口地址: 43H4. 计数器 0 的地址: 40H5. 向计数器零写时常数 1500 反过来,给出控制自己,要能分

析出 8253 的工作方式

计数器的初始化分为两部分写控制字 和 写时常数

Page 23: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

2 .方式 1 —— 硬件触发的单脉冲形成功能:用硬件触发形成单脉冲。1. 当写入方式控制字后, OUT=12. 写入时常数, OUT 端无变化3.GATE 上升沿触发计数开始,下一个时钟, OUT=04. 减 1 计数,计数器达到 0 时 OUT=1 写方式控制字

写时常数(4)

WR

OUT

CE N 04 03 02 0100000000

0000 FF

FF0004

0003

GATE

CLK

NN

(a)

Page 24: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

在第一次硬件触发产生单脉冲完成之前,又来了一个触发信号,从而使单脉冲宽度变宽

Page 25: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

写方式控制字

写时常数(4)

WR

OUT

CE N 04 03 02 0100000000

0000 FF

FF0006

0005

GATE

CLK

NN

(c)

写时常数(6)

在某次单脉冲完成之前,又写入了新的时常数,下次单脉冲才采用新时常数

Page 26: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

方式 1 具有下列一些特点:在置方式 1 的控制字或置入时常数后,不影响输出, OUT 端仍输出高电

平;在 GATE 端输入有效的触发信号(上升沿),并经过一个 CLK 脉冲, OUT

变为低电平,作为单脉冲的开始,同时将 CR 读入 CE ,并开始“减 1”计数;

当 CE 计数到 0 之前, OUT 端变为高电平,表示本次单脉冲形成结束;正常情况下,当计数通道的时常数为 N 时,硬件触发所产生的单脉冲(低

电平)的宽度为 N 个计数时钟周期;每个触发信号都可以形成一个单脉冲,但如果在单脉冲低电平期间再加入触发信号,则可以使单脉冲宽度加宽;

在单脉冲形成期间,向 CR 置入新的时常数,但未加触发信号,则本次单脉冲的形成不受影响,之后的触发信号才使用新的时常数。

Page 27: 第九章 定时 / 计数器 8253

[email protected]

触发形式不一样:方式 0 : 软件触发,通过写时常数进行新一次计数的开始方式 1 : 硬件触发,通过 GATE0 的一次上升沿触发新一次计数的开始

输入方式一样:都是给定初值,进行减 1 计数输出形式一样:都是输出低电平信号,在计数器减到 0 以后转为高电平功能一样: 都是定时器

相同点

不同点

§9.3 8253 的控制字及工作方式

方式 0 和方式 1 的异同

持续时间不同:方式 0 : N+1 个时钟周期的低电平方式 1 : N 个时钟周期的低电平

Page 28: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

例题,控制 8253 ,将计数器 2 设置为工作方式 1 ,时常数为 15 ,采用低 8 位寄存器计数,写初始化程序:

MOV DX, COUNTD ;MOV AL, 1001 0010BOUT DX, AL

MOV DX, COUNTC ;MOV AL, 15OUT DX, AL

分析:1. 设置工作方式,通过写控制字实现2. 控制字分析:时常数 =15 ,要低 8 位寄存器 1001 0010 B

3. 控制字端口地址: COUNTD4. 计数器 2 端口地址: COUNTC4. 向计数器零写时常数 15

Page 29: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

EG. 8088 最大系统下, 8253 的地址范围为 370H~373H ,输入时钟为 1MHz 方波,先将计数器 0 和计数器 1 分别设置在工作方式 0和工作方式 1 ,时常数均为 7 ,写初始化程序, GATE 有效,画输出波形。

MOV DX, 373HMOV AL, 00010000BOUT DX, ALMOV AL, 01010010BOUT DX, AL

MOV DX, 370HMOV AL, 7OUT DX, ALMOV DX, 371HOUT DX, AL

Page 30: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

EG. 8253 的计数器 0 和计数器 1 分别输出波形如下,写初始化程序。

MOV DX, COUNTDMOV AL, 00010000BOUT DX, ALMOV AL, 01010010BOUT DX, AL

MOV DX, COUNTAMOV AL, 7OUT DX, ALMOV DX, COUNTBOUT DX, AL

Page 31: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

思考:计数器工作在工作方式 1 的时候,

能否产生具有一定频率的周期信号?

Page 32: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

3 .方式 2 —— 分频脉冲形成

功能:方式 2 类似于 N 分频器,利用这种方式可以产生周期信号。

在正常情况下( GATE = 1 ), 将计数器设置成方式 2 后 ( 写完控制字 ) , OUT 端输出高电

平; 向 CR 置入时常数 N 后,下一个 CLK 脉冲开始“减 1”计数; 当计数到 0001H 时, OUT 端变为低电平,经过一个 CLK 脉

冲, OUT 端再次变为高电平,产生一个时钟周期的负脉冲, 与此同时,重新将时常数从 CR 读入 CE ,并继续计数。

这样,就可以产生周期为 N 的分频信号。

Page 33: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

正常情况下(即 GATE = 1 )的分频脉冲形成,当时常数为N 时,则 OUT 产生的信号为计数时钟的 N 分频,高电平为( N - 1 )个计数时钟周期,低电平为 1 个计数时钟周期。

重点

Page 34: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

GATE 信号的作用效果,当 GATE 为低电平时,计数器暂停计数, GATE 端的上升沿使计数器重新读入时常数。

硬件触发

Page 35: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

写入新的时常数的情况,只能在下一次分频脉冲后起作用。

软件触发

Page 36: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

方式 2 具有下列一些特点:在置方式 2 的控制字后, OUT 端变为高电平;在置入时常数后,下一个 CLK 脉冲期间,将时常数从 CR

读入 CE ,并开始“减 1”计数;当 CE 计数到 01 时,在 OUT 端输出一个负脉冲,并重新读

入时常数进行计数;正常情况下,当计数通道的时常数为 N 时, OUT 产生的信

号为计数时钟的 N 分频;OUT 产生的分频信号,有两种同步方式:向 CR 写入新的时

常数(称为软件同步)和在 GATE 端产生上升沿(称为硬件同步);

当 GATE = 0 时,计数器暂停计数。

Page 37: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

EG ,用 8253 的计数器 1 生成 5 分频信号,采用低 8 位时常数计数。写初始化程序 ,画输出信号波形。

MOV DX, COUNTDMOV AL, 1001

0100BOUT DX, AL

MOV DX, COUNTB

MOV AL, 5OUT DX, AL

分析:( 1 ) 5 分频 计数器时常数 N=5( 2 )控制字分析: 01010100B

Page 38: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

时常数计算EG1. 输入信号 CLK 频率为 2MHz ,输出信号

频率为 1KHz , 时常数 = ?EG2. 输入信号 CLK 周期为 1us ,输出信号周

期为 1.3ms , 时常数 = ?EG3. 输入信号 CLK 频率为 1MHz ,输出为如

下的周期信号, 时常数 = ?1.5ms

4ms

2000

1300

4500

3

Page 39: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

4 .方式 3 —— 方波信号形成(分频)功能:方式 3 类似于方式 2 ,只是在 OUT 上产生对称的或近似对称的

方波。 输出信号的周期取决于输入时常数 N 当 N 为偶数时,输出对称方波 当 N 为奇数时,输出近似对称方波

(高电平比低电平多一个时钟周期)

N=4

N=5

Page 40: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式在正常情况下( GATE = 1 ),将计数器设置成方式 3 后,

OUT 端输出高电平;向 CR 置入时常数 N (设 N 为偶数)后,下一个 CLK 脉冲将

时常数从 CR 读入 CE ,并开始“减 2”计数。当计数到 0 时, OUT 端变为低电平;重新将时常数从 CR 读

入 CE ,并进行“减 2”计数。当计数到 0 时, OUT 端再次变为高电平,产生一个时钟周期

的方波信号。重复这一过程,可以产生周期为 N 的对称方波信号。

Page 41: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

当设定的时常数 N 为奇数时, 在将时常数从 CR 读入 CE 时会自动减 1 ,使 CE 中的初值变成 N- 1 (偶数)

OUT 端输出高电平,并开始“减 2”计数 当计数到 0 时,再经过 1 个 CLK 后使 OUT 端变成低电平 重新将时常数从 CR 读入 CE ,并进行“减 2”计数,当计数到 0

时, OUT 端再次变为高电平,重复这一过程,可以产生周期为 N的近似对称方波。

Page 42: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

正常情况下(即 GATE = 1 )的对称方波信号形成,时常数 N 为偶数

应用:生成低频的时钟信号

重点

Page 43: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

为正常情况下的近似对称方波信号形成,时常数 N 为奇数

Page 44: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

表示 GATE 信号的作用效果(时常数 N 为奇数),当 GATE 为低电平时,计数器暂停计数, GATE 端的上升沿使计数器重新读入时常数。

Page 45: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

方式 3 具有下列一些特点:在置方式 3 的控制字后, OUT 端变为高电平;在置入偶数的时常数后, OUT 端变为高电平,下一个 CLK 脉冲期

间,将时常数从 CR 读入 CE ,并开始“减 2”计数;当 CE 计数到 0时, OUT 端输出变为低电平,并重新读入时常数进行计数;当再次计数到 0 时, OUT 端输出变为高电平,产生一个周期的对称方波信号;

在置入奇数的时常数后, OUT 端变为高电平,下一个 CLK 脉冲期间,将时常数从 CR 读入 CE 时自动减 1 ,并开始“减 2”计数;当CE 计数到 0 时,再经过 1 个 CLK 后使 OUT 端变成低电平;并重新读入时常数进行计数;当再次计数到 0 时, OUT 端输出变为高电平,产生一个周期的近似对称方波信号;

正常情况下,当计数通道的时常数为 N 时, OUT 产生的信号为计数时钟的 N 分频方波信号;

OUT 产生的方波信号,有两种同步方式:向 CR 写入新的时常数(称为软件同步)和在 GATE 端产生上升沿(称为硬件同步);

当 GATE = 0 时,计数器暂停计数。

Page 46: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

EG , 8254 计数器 0 接在 8086CPU 的 CLK 时钟上,要求计数器 0 的输出为 0.5MHZ 的新时钟方波,写初始化程序。分析: 8086CPU 的 CLK 主频: 5MHZ 现要求 0.5MHZ 周期是 CLK 的 10 倍

时常数 N=10MOV DX, COUNTDMOV AL, 0001

0110BOUT DX, AL

MOV DX, COUNTA

MOV AL, 10OUT DX, AL

Page 47: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

EG , 8254 计数器 0 接在 8086CPU 的 CLK 时钟上,要求计数器 0 的输出为 1MHZ 的新时钟方波,计数器 2 产生 1Hz的单脉冲周期信号。写初始化程序,画出 8253 引脚连接图和OUT0 的输出波形。

分析 : 8086 时钟: 5MHz计数器 0 输出: 1MHz

时常数 N0=5

分析 : 8086 时钟: 5MHz计数器 2 输出: 1Hz

5 分频5000000 分频 >65535

级联

级联的准则:两个时常数均在计数范围之内

两个计数范围之积等于总分频数

5000*1000

Page 48: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

5MHz

1MHz

5MHz

1KHz

1Hz

N=5000

N=1000

MOV DX, COUNTDMOV AL, 00010110BOUT DX, ALMOV AL, 01110110BOUT DX, ALMOV AL, 10110100BOUT DX, ALMOV DX, COUNTAMOV AL, 5OUT DX, ALMOV DX, COUNTBMOV AX, 5000OUT DX, ALXCHG AL, AHOUT DX, ALMOV DX, COUNTCMOV AX, 1000OUT DX, ALXCHG AL, AHOUT DX, AL

N=5

Page 49: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

5MHz

1MHzN=5

1KHzN=1000

1Hz

N=1000

MOV DX, COUNTDMOV AL, 00010110BOUT DX, ALMOV AL, 01110110BOUT DX, ALMOV AL, 10110100BOUT DX, ALMOV DX, COUNTAMOV AL, 5OUT DX, ALMOV DX, COUNTBMOV AX, 1000OUT DX, ALXCHG AL, AHOUT DX, ALMOV DX, COUNTCMOV AL, 1000OUT DX, ALXCHG AL, AHOUT DX, AL

级联的方式自选,但随着级联方式不同,时常数设定随之改变

Page 50: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

5 .方式 4 —— 软件触发产生选通信号 将计数器设置成方式 4 后, OUT 端输出高电平; 向 CR 置入时常数 N 后,下一个 CLK 脉冲将时常数从 CR

读入 CE ,并开始“减 1”计数; 当计数到 0 时, OUT 端变为低电平,经过一个 CLK 脉

冲, OUT 端再次变为高电平,完成一次选通信号的产生。

当再次写入时常数 N 时, OUT 端将经过( N+ 1 )计数时钟周期后产生负的选通信号。

Page 51: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

Page 52: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

表示 GATE 低电平信号的作用效果,它使计数器暂停计数;

Page 53: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

在某次选通信号形成之前,又写入了新的时常数,这时本次选通信号不再形成。

Page 54: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

方式 4 具有下列一些特点:

在置方式 4 的控制字或置入时常数后, OUT 端输出高电平;在正常情况下( GATE = 1 ),从软件触发(写入时常数

后),经过( N+ 1 )计数时钟周期,产生一个宽度为一个计数时钟周期的低电平。

每次写入时常数都可以形成一个选通信号,但如果在未完成选通信号形成之前,又写入时常数,则本次选通信号不再产生;

当 GATE = 0 时,可以使计数器暂停计数,但 CE 中的内容不变,一旦 GATE 变为高电平, CE会继续计数,以完成本次选通信号的形成。

Page 55: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

EG ,计数器 1 设置成方式 4 ,并且采用低 8 位时常数,假设时常数为 7 ,写初始化程序,画输出波形:

MOV DX, COUNTD ;写入 8253 的方式控制字MOV AL, 0101 1000BOUT DX, ALMOV DX, COUNTB ;计数器 1 置入时常数MOV AL, 7OUT DX, AL

Page 56: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

6 .方式 5 —— 硬件触发产生选通信号功能:方式 5 与方式 4 类似,只是每次选通信号的产

生是由硬件触发的。在方式 5 下, OUT 端初始值为高电平。在正常情况下( GATE = 1 ),将计数器设置成方式

4 或写入时常数时,都使 OUT 端输出高电平;当 GATE 端输入上升沿时,其下一个 CLK 脉冲可以将

时常数从 CR 读入 CE ,并开始“减 1”计数;当计数到 0 时, OUT 端变为低电平,经过一个 CLK

脉冲, OUT 端再次变为高电平,完成一次选通信号的产生。

Page 57: 第九章 定时 / 计数器 8253

[email protected]

(a)

写方式控制字

写时常数(3)

WR

OUT

CE N 03 02 01 0000000000

FFFF FF

FE0003

0002

CLK

N0001NN

0000

写方式控制字

写时常数(4)

WR

CLK

GATE

(c)

OUT

CE N 04 03 02 0100000000

0000 FF

FF0003

0002N

0001NN

0000

(b)

写方式控制字

写时常数(5)

WR

OUT

CE N 05 04 03 0500000000

0400 00

030002

0001

CLK

N0000NN

FFFF

写时常数(3)

GATE

FFFF

FFFF

方式 5 的计数过程如右图所示。

图( a )表示正常情况;

图( b )表示在第一次硬件触发产生选通信号完成之前,又来了一个硬件触发信号,从而使选通信号的产生时间延迟;

图( c )表示在某次单脉冲完成之前,又写入了新的时常数,这时不影响本次选通信号的形成,下次选通信号才采用新的时常数。

Page 58: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

方式 5 具有下列一些特点:

在置方式 5 的控制字或置入时常数后, OUT 端仍输出高电平;

在正常情况下, GATE 端的每个上升沿都将会在 OUT 端产生的选通信号,从硬件触发到产生有效的低电平之间的时间间隔为( N+ 1 )计数时钟周期,低电平宽度为一个计数时钟周期;

如果在未完成选通信号形成之前, GATE 端又输入了上升沿,则本次选通信号不再产生;

Page 59: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

Intel 8253 有 6 种工作方式,它们之间具有一些共同特点,先总结如下:( 1 )置方式字时,起到逻辑复位的功能;( 2 ) GATE 信号的有效形式: 方式 0 、方式 4 : 电平控制 (软件触发) 方式 1 、方式 5 : 上升沿触发(硬件触发) 方式 2 、方式 3 : 硬件和软件都能触发( 3 ) CR 内容装入计数单元 CE 的时刻: 方式 0 、方式 4 : 写时常数 方式 1 、方式 5 : 硬件触发 方式 2 、方式 3 : 写时常数、硬件触发和自动重装 计数最大值为 0 (即 ),在方式 0 、 1 、 4 、 5 下, CE 计数到0 后,并未停止计数,而是从 0- >0FFFFH- >0FFFEH 继续“减1”计数;在方式 2 、 3 下, CE 计数到 0 后,自动装入初值计数。

162

Page 60: 第九章 定时 / 计数器 8253

[email protected]

总结 6 种工作方式

§9.3 8253 的控制字及工作方式

方式 0方式 1

计数 持续低电平到计数达终值恢复高电平

方式 2方式 3

分频 周期为 CLK 的 N倍的周期信号

方式 4方式 5

计数 持续高电平,到计数达到终值时输出一个时钟的负脉冲信号

Page 61: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

分析执行下列语句,执行的功能,画输出结果(假设所有计数器的 GATE都有效)

MOV DX, COUNTD

MOV AL, 00010000BOUT DX, ALMOV AL, 4OUT COUNTA, AL

MOV AL, 01010010BOUT DX, ALMOV AL, 4OUT COUNTB, AL

MOV AL, 10010100BOUT DX, ALMOV AL, 4OUT COUNTC, AL

MOV DX, COUNTD

MOV AL, 00010110BOUT DX, ALMOV AL, 01011000BOUT DX, ALMOV AL, 10011010BOUT DX, AL

MOV AL, 4OUT COUNTA, ALOUT COUNTB, ALOUT COUNTC, AL

Page 62: 第九章 定时 / 计数器 8253

[email protected]

反过来,给出时序图,能否分析出控制字?

写出初始化和设置初值的程序?

Page 63: 第九章 定时 / 计数器 8253

[email protected]

EG. 8253 的输出波形如下,写出初始化函数和赋值语句

OUT1GATE

Page 64: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8253 的计数与取值

在任何时刻都可以读取某个计数器的当前计数值,这应该分两步实现:输出计数器锁存命令,将方式控制字中 =00B ,这样可以将相应计数通

道中的当前计数值锁存到 OL 锁存器,而 CE会继续计数;用 IN 指令读取 OL 内容。

例如,要读取计数器 1 中的计数值,其程序如下: MOV DX, COUNTD ;输出计数器锁存命令 MOV AL, 0100 0000B OUT DX, AL MOV DX, COUNTB IN AL, DX ;从 OL 读取低位字节 XCHG AH, AL IN AL, DX ;从 OL 读取高位字节 XCHG AH, AL这时, AX 的内容就是计数器 1 的当前计数值

1 0RL RL

Page 65: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8254 与 8253 的区别

Intel 8254 是 8253 的改进型,它与 8253 的主要区别有:允许的计数脉冲( CLK )的频率范围不同: 8253 : 最大时钟频率为 2MHz 8254 : 最大时钟频率为 8MHz 8254-2 : 最大时钟频率为 10MHz在 8254 中,每个通道中还有一个状态寄存器, CPU 通过它

可以读取其状态。 后者需要两个步骤:( 1 )可通过“读回”命令读取 8254 的计数值和状态信息,其格式如下图所示 , 端口地址为 =11B 。 CNT2~ CNT0 用于选择计数通道,“ 1”表示选中; =0 表示锁存选中计数器的计数值; =0 表示锁存选中计数器的状态值。

STATUS

COUNT

1 1 COUNT STATUS CNT2 CNT1 CNT0 0

D7 D6 D5 D4 D3 D2 D0D1

图 “读回”命令格式

1 0A A

Page 66: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8254 与 8253 的区别

( 2 )读取计数值或状态。当 ( )=0 时,后续对相应计数器的读操作 (一次或二次),可以获得计数值,并对锁存器进行“解锁”,即下次“读回”命令可锁存新的计数值;如果“读回”命令后,并没有取走计数值,则下次“读回”命令不起作用。当 ( )=0 时,则后续对相应计数器的读操作,可读取计数器的状态字节,其格式如下图所示,其中 OUTPUT 给出了相应计数通道的OUT 端的信号电平; NULL COUNT = 0 表示可以读取计数值, NULL COUNT = 1 则表示时常数还没有从 CE 装入到 CE ,这时读取的计数值没有意义;其它 6 位的值与方式控制字相同。

COUNT

STATUS

图 计数器状态

OUTPUTNULLCOUNT

RL1 RL0 M2 M1 M0 BCD

D7 D6 D5 D4 D3 D2 D0D1

Page 67: 第九章 定时 / 计数器 8253

[email protected]

作业:9.2 9.3 9.6 9.10

Page 68: 第九章 定时 / 计数器 8253

LOGO [email protected]

Page 69: 第九章 定时 / 计数器 8253

LOGO

第九章 定时 / 计数器 8253(二)

[email protected]

Page 70: 第九章 定时 / 计数器 8253

[email protected]

Contents

8253 引脚功能及特点1

8253 原理结构及工作原理2

8253 的控制字及工作方式3

8253 与系统总线的接口方法4

8253 的应用和设计5

Page 71: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8253 的总线接口方法

在采用 8253 进行定时 / 计数器设计时,首先应该将它与 CPU 正确连接,在已经设计好 8086 系统总线情况下,可以直接利用系统总线中的信号与 8253 连接。

这里给出三种系统总线情况下 8253 的连接方法:8086 的最小方式8086 的最大方式IBM PC 系统机。

Page 72: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8253 的总线接口方法

1.8086 最小工作方式下的 8253 连接

8086

CPU

最小

方式

系统

总线译码电路

D7 D0~

A2A1

WRRD

M/IOA15

A3A0

……

=0

=0

CPU接口

Intel8253

D7 D0~

外设接口

A0

A1

RD

WR

CS

CLK0GATE0OUT0

CLK1GATE1OUT1

CLK2GATE2OUT2

D8 D15~

图 8086 最小方式系统总线与 8253 的连接框图

在 8086系统

中, 8253的地址范围要么全为奇数,要么全

为偶数

Page 73: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8253 的总线接口方法

CPU接口

Intel8253

D7 D0~

外设接口

A0

A1

RD

WR

CS

CLK0GATE0OUT0

CLK1GATE1OUT1

CLK2GATE2OUT2

8086

CPU

最大

方式

系统

总线译码电路

D7 D0~

A2A1

IOWIOR

A15

A3A0

……

=0

2.8086 最大工作方式下的 8253 连接

Page 74: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8253 的总线接口方法

3. 与 IBM PC 机的连接CPU接口

Intel8253

D7 D0~

外设接口

A0

A1

RD

WR

CS

CLK0GATE0OUT0

CLK1GATE1OUT1

CLK2GATE2OUT2

IBM

PC机

系统

总线

译码电路

D7 D0~

A2A1

IOWIOR

A15

A3A0

……

=0

AEN =0

Page 75: 第九章 定时 / 计数器 8253

[email protected]

§9.2 8253 的原理结构及工作原理

CPU可访问

Page 76: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

8253 共有 6 种工作方式

工作于哪种方式,由控制寄存器的内容来设定

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

选择计数通道 读写规则 工作方式 数据类型

D7 D6 D5 D4 D3 D2 D0D1

图 8253 的方式控制寄存器

Page 77: 第九章 定时 / 计数器 8253

[email protected]

总结 6 种工作方式

§9.3 8253 的控制字及工作方式

方式 0方式 1

计数 持续低电平到计数达终值恢复高电平

方式 2方式 3

分频 周期为 CLK 的 N倍的周期信号

方式 4方式 5

计数 持续高电平,到计数达到终值时输出一个时钟的负脉冲信号

Page 78: 第九章 定时 / 计数器 8253

[email protected]

§9.3 8253 的控制字及工作方式

Intel 8253 有 6 种工作方式,它们之间具有一些共同特点,先总结如下:( 1 )置方式字时,起到逻辑复位的功能;( 2 ) GATE 信号的有效形式: 方式 0 、方式 4 : 电平控制 (软件触发) 方式 1 、方式 5 : 上升沿触发(硬件触发) 方式 2 、方式 3 : 硬件和软件都能触发( 3 ) CR 内容装入计数单元 CE 的时刻: 方式 0 、方式 4 : 写时常数 方式 1 、方式 5 : 硬件触发 方式 2 、方式 3 : 写时常数、硬件触发和自动重装 计数最大值为 0 (即 ),在方式 0 、 1 、 4 、 5 下, CE 计数到0 后,并未停止计数,而是从 0- >0FFFFH- >0FFFEH 继续“减1”计数;在方式 2 、 3 下, CE 计数到 0 后,自动装入初值计数。

162

Page 79: 第九章 定时 / 计数器 8253

[email protected]

根据题目要求分析写初始化程序根据题目要求画输出波形针对某种方式的波形分析初始化程序N 分频的级联根据题目要求实现一定的复杂波形根据复杂波形进行电路分析设计

8253应用举例

Page 80: 第九章 定时 / 计数器 8253

[email protected]

EG1. 8088 最大系统下, 8253 的地址范围为 340H~343H 。输入时钟频率为 2M赫兹,实现输出频率为 1Hz 的方波。画连接图,写初始化程序和时常数赋值程序。

§9.4 8253 的总线接口方法

分析:输入 2MHz输出 1Hz

2000000 分频

超过了最大计数范围65536

级联分频

+5V

+5V

2MHz

1KHz

1Hz

计数器 0 的时常数: 2000计数器 1 的时常数: 1000

时常数可以做合理的调整

MOV DX, 343H MOV AL, 00110110B OUT DX, AL MOV AL, 01110110B OUT DX, AL

MOV DX, 340H MOV AX, 2000 OUT DX, AL XCHG AL, AH OUT DX, AL

MOV DX, 341H MOV AX, 1000 OUT DX, AL XCHG AH, AL OUT DX, AL

Page 81: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8253 的总线接口方法

EG2.8086 最小系统下,扩充设计 1 片 8254 ,端口地址为8000H~8007H 中的连续偶地址。输入时钟信号为 4MHz ,要求通过三个定时器级联,实现从 OUT0 输出频率为 1000Hz 的方波,从 OUT1输出频率为 100Hz 的单时钟脉冲波,从 OUT2 输出频率为 1Hz 的方波。

画级联图,并写出初始化程序和时常数赋值程序

CLK0=4MHz

OUT0=1KHz

4000分频

CLK1=1KHz

OUT1=100Hz

10分频

CLK2=100Hz

OUT2=1Hz

100分频

OUT0=1KHz

10分频

1000分频

计数器 0 :工作方式 3 ,时常数 4000计数器 1 :工作方式 2 ,时常数 10

计数器 2, :工作方式 3 ,时常数 100

计数器 0 :工作方式 3 ,时常数 4000计数器 1 :工作方式 2 ,时常数 10

计数器 2, :工作方式 3 ,时常数 1000

Page 82: 第九章 定时 / 计数器 8253

[email protected]

§9.5 8253 的总线接口方法

EG3. 在以 8086 构成的最大方式系统中,有一片 8254的端口地址分别为 301H 、 303H 、 305H 和 307H ,给定的外部时钟为 512kHz 。要求:

( 1 ) 利用计数器 0 产生周期为 1ms 的周期信号,请编写初始化程序;( 2 ) 利用这一计数器能产生的最低信号频率为 ,这时的时常数 CR0=

。 ( 3 )利用计数器 1 和 2 产生如下图所示的周期信号,并编写初始化程序。( 4 )画出 8253 的端口译码电路(地址线只使用 A0~ A9 )及其连接图。

1. 5ms

3s

图 8253所要产生的周期信号

Page 83: 第九章 定时 / 计数器 8253

[email protected]

EG.8086 最大方式系统中,有 8254 的端口地址分别为 301H 、 303H 、 305H 和 307H ,给定的外部时钟为 512kHz

( 1 ) 利用计数器 0 产生周期为 1ms 的周期信号,请编写初始化程序;

Step1 :分析工作方式:

周期信号 方式 2 或 方式3Step2 :工作方式控制字: 00110100B 或 00110110B

Step3 :分析时常数:输出信号周期: Tout = 1 ms

输入信号周期: Tin = 1/512 ms 时常数 = Tout / Tin=512

MOV DX, 307HMOV AL, 00110100B; 或 00110110BOUT DX, AL

Step4 :写初始化程序:

MOV DX, 301HMOV AX, 512OUT DX, ALXCHG AL, AHOUT DX, AL

Page 84: 第九章 定时 / 计数器 8253

[email protected]

( 2 ) 利用这一计数器能产生的最低信号频率为 ,这时的时常数 CR0= 。

频率最低 周期最长 整个计数范围内只形成一个输出周期

计数范围: 0000H ~ 0FFFFH 65536 个计数单

计数初值 = 0

0

最低频率 = 512KHz/65536 = 7.8125 Hz

7.8125 Hz

EG.8086 最大方式系统中,有 8254 的端口地址分别为 301H 、 303H 、 305H 和 307H ,给定的外部时钟为 512kHz

Page 85: 第九章 定时 / 计数器 8253

[email protected]

( 3 )利用计数器 1 和 2 产生如下图所示的周期信号,并编写初始化程序。

EG.8086 最大方式系统中,有 8254 的端口地址分别为 301H 、 303H 、 305H 和 307H ,给定的外部时钟为 512kHz

1. 5ms

3s

Step1 :分析工作方式:Step2 :工作方式控制字:Step3 :分析时常数:

512KHz

周期为 1.5ms的新时钟

1. 5ms

3s

+5V

+5V

计数器 1 :控制字:01110110B

时常数 = Tout / Tin

=1.5/(1/512)=768

计数器 2 :控制字:10110100B

时常数 = Tout / Tin

= (3s+1.5ms)/1.5ms = 2001

MOV DX, 307H MOV AL, 01110110B OUT DX, AL MOV AL, 10110100B OUT DX, AL

MOV DX, 303H MOV AX, 768 OUT DX, AL XCHG AH, AL OUT DX, AL

MOV DX, 305H MOV AX, 2001 OUT DX, AL XCHG AH, AL OUT DX, AL

Page 86: 第九章 定时 / 计数器 8253

[email protected]

EG.8086 最大方式系统中,有 8254 的端口地址分别为 301H 、 303H 、 305H 和 307H ,给定的外部时钟为 512kHz

( 4 )画出 8253 的端口译码电路(地址线只使用 A0~ A9 )及其连接图。

8086

CPU

最大

方式

系统

总线

A2A1

IOWIOR

D15 D8~

oA9oA8

A3

A6A5A4

A7

oBHE

Intel8253

D7 D0~

A0A1

RDWR

CS

CLK1GATE1OUT1

CLK2

GATE2

OUT2

+5V

+5V

512kHz

产生信号

Page 87: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8253 的总线接口方法

EG4. 设 8253 的端口地址为 260H ~ 263H ,外部时钟信号为1MHz ,要求产生如下图所示的周期波形,画出 8253 的连接图,并编写初始化程序段。

12ms1s

图 8253所要产生的周期信号在不使用输出取反的情况下,有没有一种工作方式能生成这样的信号?周期信号: 工作方式 2 或 工作方式 3

能生成高低电平时间长短可人为设定的工作方式: 工作方式 0 或 工作方式 1

Page 88: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8253 的总线接口方法

Intel8253

D7 D0~1MHz

A0

A1

RD

WR

CS

CLK0GATE0OUT0

CLK1GATE1OUT1

CLK2

GATE2

OUT2

+5V

+5V

产生信号

12ms1s

输入时钟: 1MHz : Tin=1us输出时钟: Tout=1.012s

1012000 分频1000*1012

超出计数范围

时常数 =1000 ,工作方式 3输出信号周期: 1ms

时常数 =1012 ,工作方式 2输出信号周期: 1.102s

时常数 =1000 ,工作方式 1减 1 计数,在 1000 第个周期电平变高,在第 1012 个周期,由 GATE 上升沿触发,电平变低,开始下一轮计数

计数器 0 : 工作方式 3 ,时常数 1000 计数器 1 : 工作方式 2 ,时常数 1012 计数器 2 : 工作方式 1 ,时常数 1000

Page 89: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8253 的总线接口方法

EG5. 有一个未知频率的对称周期信号 s ( t )(频率范围在 100Hz~ 2kHz 之间),现在 8086 最小系统中已经设计了一片 8253 ,其端口地址为 380H 、 382H 、 384H和 386H ,外部可以使用的标准信号源为 1MHz ,设计测量输入 s(t) 信号的频率,并将结果保存在 SFR 字单元中。

频率测量问题

计数法:待测信号频率大于时钟频率

测周期法:待测信号频率小于时钟频率

Page 90: 第九章 定时 / 计数器 8253

[email protected]

EG5. 有一个未知频率的对称周期信号 s ( t )(频率范围在 100Hz ~ 2kHz 之 间 ) ,现在 8086 最小系 统 中 一 片8253 ,外部可以使用的标准信号源为 1MHz ,试测量输入s(t) 信 号 的 频 率

基准信号 CLK 频率: 1MHz待测信号: 100Hz~ 2kHz之间的对称周期信号 测试半个信号周期的长度 Thalf 即可 250μs≤Thalf≤5000μs

需要实现的功能:用计数器数出待测信号在前半个周期时间里经过了多少时钟周期

用待测信号 S(t) 做 GATE ,利用其信号的上升沿触发计数的开始,利用其低电平使计数暂停,以便被 CPU 访问读出

能被 GATE 这样控制的工作方式:?

Page 91: 第九章 定时 / 计数器 8253

[email protected]

GATE 只能用低电平暂停计数,其上升沿不能触发计数的开始

EG5. 有一个未知频率的对称周期信号 s ( t )(频率范围在 100Hz ~ 2kHz 之 间 ) ,现在 8086 最小系 统 中 一 片8253 ,外部可以使用的标准信号源为 1MHz ,试测量输入s(t) 信 号 的 频 率

GATE 的低电平暂停计数,上升沿触发新计数的开始

方式 0方式 4

用待测信号 S(t) 做 GATE ,利用其信号的上升沿触发计数的开始,利用其低电平使计数暂停,以便被 CPU 访问读出

方式 1方式 5

GATE 只能用上升沿触发计数的开始,不能用低电平暂停计数

方式 2方式 3

减 2 计数

Page 92: 第九章 定时 / 计数器 8253

[email protected]

EG5. 有一个未知频率的对称周期信号 s ( t )(频率范围在 100Hz ~ 2kHz 之 间 ) ,现在 8086 最小系 统 中 一 片8253 ,外部可以使用的标准信号源为 1MHz ,试测量输入s(t) 信 号 的 频 率

8259

I nt el8253

D7 D0~1MHz

A0

A1

RD

WR

CS

CLK0

GATE0

OUT0

S( t )

I R0

o

1MHzCLK0

CE …

… …CPU向 发出中断请求

Th

S( t )

0000N FF

FF FFFE XL

XHXLXH

XLXH

计数器采用方式 2 ,时常数取最大值,当 GATE0 端有上升沿查询时,可以启动计数器进行“减 1”计数,当 GATE0 出现低电平时,暂停计数,并同时在 8259 产生中断请

求CPU 产生中断,在中断服务子程序中可以读取计数值,与初值相减

后再加 1就可以得到 s(t)半周期内所包含的基准周期数 NUM 。 F(S(t))=1MHz/NUM

Page 93: 第九章 定时 / 计数器 8253

[email protected]

8253 的初始化程序段如下:MOV DX,386H ;写计数器 0 方式

控制字MOV AL,0011 0100BOUT DX,ALMOV DX,380H ;写计数器 0 时常数MOV AL,0OUT DX,ALOUT DX,ALSTI ;开中断

中断服务子程序的主要内容为:PUSH AXPUSH BXPUSH DXMOV DX,386H ;发计数器 0 的锁存命令MOV AL,0000 0000BOUT DX,ALMOV DX,380H ;读计数值IN AL,DXXCHG AL,AHIN AL,DXXCHG AL,AH

NEG AX ;初值减结果加1INC AX ;MOV BX,AX ;计算信号频率MOV DX, 0007HMOV AX, 0A120H ;被除数500000DIV BXMOV SFR,AX ;保存信号频率POP DXPOP BXPOP AXIRET

Page 94: 第九章 定时 / 计数器 8253

[email protected]

往年考研题目

EG. ( 1 )写出 8253 的端口地址, 8088未用的地址线均设为 0. ( 2 )设 8253 的计数器 0做二进制计数,输入时钟频率为

100KHz ,输出为 1KHz 方波,试写出设置 8253 工作方式及计数初值的有关指令。 地址范围: 210H~213H

控制字: 00110110B时常数: 100MOV DX, 213HMOV AL, 00110110BOUT DX, AL

MOV DX, 210HMOV AX, 100OUT DX, ALXCHG AL, AHOUT DX, AL

Page 95: 第九章 定时 / 计数器 8253

[email protected]

往年考研题 有如图所示的接口简化图,要使发光二极管亮 2秒,熄灭 2秒,但该过程共进行 20秒即终止,设 OUT0 输入频率为 1KHZ 。 8253 端口地址为 40H~ 47H 编写出程序。

8253CS

数据总线

A0

A1

GATE1

CLK1

D7~D0

CLK2

OUT1

OUT2

GATE2

+5V

500KHZ

GATE0

CLK0

OUT0

DB7~DB0

A1

A2

CLK0 输入 1KHzOUT0 输出新时钟给CLK1,CLK2 (工作方式 2,3 ,时常数1000 )OUT1 控制发光二极管所以输出为周期为 4s 的方波(工作方式 3 ,时常数 4 )因为要 20秒结束,所以 OUT2作为GATE1 的控制,输出一个长度持续 20 m 的低电平信号(工作方式 0 )时常数 19

1KHz

1s

能不能是工作方式 1 ?

Page 96: 第九章 定时 / 计数器 8253

[email protected]

往年考研题

计数器 0 工作在工作方式 2 ,时常数为 1000计数器 1 工作在工作方式 3 ,时常数为 4计数器 2 工作在工作方式 0 ,时常数为 19

MOV DX, 43HMOV AL, 00110100BOUT DX, ALMOV AL, 01010110BOUT DX, ALMOV AL, 10010000BOUT DX, AL

MOV DX, 40HMOV AX, 1000OUT DX, ALXCHG AL, AHOUT DX, ALMOV DX, 41HMOV AL, 4OUT DX, ALMOV DX, 42HMOV AL, 19OUT DX, AL

Page 97: 第九章 定时 / 计数器 8253

[email protected]

§9.4 8253 的总线接口方法

作业

9.11 9.12

Page 98: 第九章 定时 / 计数器 8253

LOGO [email protected]