当前位置: 首页 > >

6微机接口计数定时器

发布时间:

微机接口

第八章可编程定时/计数器8253/8254 第八章可编程定时/计数器8253/8254及其 8253/8254及其 应用

?北京工业大学计算机学院?

1

微机接口

主要内容
? 8253/8254工作原理 –8253/8254的内部结构和引脚信号 –初始化编程步骤和门控信号的功能 –8253/8254的工作方式 ? 8253/8254的应用举例 –8253/8254定时功能的应用例子 –8253/8254计数功能的应用例子 –8253在PC/XT机中的应用

?北京工业大学计算机学院?

2

微机接口

? 定时是最常见和最普遍的问题,一天24小时的定 时,称为日时钟 日时钟。长时间的定时(日、月、年)称 为实时时钟。 实时时钟。 ? 计算机实时控制和处理系统中,要按一定的采样周 期对处理对象进行采样,或定时检测某些参数等, 都需要定时信号。 ? 计数使用得更多,在生产线上对零件和产品的计数; 对大桥和高速公路上车流量的统计,等等对外部事 件进行计数。 ? 定时与计数的关系 定时的本质就是计数,只不过这里的“数”的 单位是时间单位。如果把计时单位累加起来,就可 获得一段时间。因此, 定时的本质就是计数。
?北京工业大学计算机学院? 3

微机接口

实现定时的方法

软件定时

硬件定时

(1)软件定时 软件定时 利用CPU内部定时机构 运用软件编程, 利用 (2)硬件定时内部定时机构,运用软件编程,循环执行一段程 硬件定时内部定时机构, 序而产生的等待延时。 可编程和不可编程的硬件电路来实 序而产生的等待延时。 可编程和不可编程的硬件电路来实 硬件定时常采用可编程 硬件定时常采用 优点: 优点 现定时。 现定时。 不需增加硬设备,简单只需编制相应的延时程序以备调用。 不需增加硬设备,简单只需编制相应的延时程序以备调用。 缺点: 可编程通用的定时 计数器电路产生定时。 缺点 可编程通用的定时 计数器电路产生定时。这种方法不 采用可编程通用的定时/计数器电路产生定时 采用 芯片和阻容器件构成定时电路 采用555芯片和阻容器件构成定时电路。 芯片和阻容器件构成定时电路。 采用 增加了CPU的时间开销 ,定时时间由软件设置定时时间 执行延时时间越长, 执行延时时间越长 占用CPU的时间 的时间开销, CPU执行延时时间越长,这种等 的时间CPU利用率高 利用率高, 占用 增加了 的时间 的时间开销, 利用率高 优点:电路简单 电路简单,改 值可改变定时时间。 优点 电路简单 改R,C值可改变定时时间 的资源。并且, 待开销越大,降低了CPU的效率,浪费 的效率, 待开销越大,降低了 值可改变定时时间。 的资源。并且, , 的效率 浪费CPU的资源 使用灵活。尤其是定时准确,定时时间不受主机频率影响, 长,使用灵活。尤其是定时准确,定时时间不受主机频率影响软 件延时的时间随主机频率不同而发生变化, 件延时的时间随主机频率不同而发生变化,即定时程序的通用 定时程序具有通用性,故得到广泛应用。目前,通用的定时/计 定时程序具有通用性,故得到广泛应用。目前,通用的定时 计 缺点:不灵活 定时时间不可由程序控制和改变。 不灵活, 缺点 不灵活,定时时间不可由程序控制和改变。且定时精 性差。 性差。 。 数器集成芯片种类很多, 数器集成芯片种类很多,如Intel8253/8254,Zilog的CTC等。本章 的 等 度不高。 度不高 定时/计数器进行详细讨论 对Intel8253定时 计数器进行详细讨论。 定时 计数器进行详细讨论。
?北京工业大学计算机学院? 4

微机接口

8253/8254的工作原理 8-1 8253/8254的工作原理
定时和计数的本质是相同的, 定时和计数的本质是相同的,它们都是对一个 输入脉冲进行计数, 输入脉冲进行计数,定时器由数字电路中的计数电 路构成,通过记录高精度晶振脉冲信号的个数, 路构成,通过记录高精度晶振脉冲信号的个数,输出 准确的时间间隔。例如, 入脉冲的频率为2MHz 2MHz, 准确的时间间隔。例如, 输 入脉冲的频率为2MHz, 定时1 则:计数 2× 1 0 6 ---- 定时1秒。 计数电路如果记录外设提供的具有一定随机性 的脉冲信号时,主要反映脉冲的个数, 的脉冲信号时,主要反映脉冲的个数,又称为计数 因此,使用同一个接口芯片,既能进行计数, 器。因此,使用同一个接口芯片,既能进行计数, 又能进行计时,统称为定时/计数器。 又能进行计时,统称为定时/计数器。 Timer/Counter简称T/C)。 简称T/C (Timer/Counter简称T/C)。
?北京工业大学计算机学院? 5

微机接口

8253/8254的工作原理 8-1 8253/8254的工作原理
8253/8254是一种可编程定时 计数器,8254 是一种可编程定时/ ,8254是 Intel 8253/8254是一种可编程定时/计数器,8254是 8253的改进型 它们的操作方式和引脚完全相同. 的改进型, 8253的改进型,它们的操作方式和引脚完全相同.具有如下 功能: 功能: 具有3个独立的16位减法( 16位减法 计数器; 1. 具有3个独立的16位减法(-1)计数器; 每一个计数器均可编程工作在6种方式下; 2. 每一个计数器均可编程工作在6种方式下; 能进行二进制/十进制(BCD)计数; 3. 能进行二进制/十进制(BCD)计数; 4. 8253最高计数频率为2MHz(8253-5最高计数频 8253最高计数频率为2MHz(8253最高计数频率为2MHz 率为5MHz);8254的频率为6MHz 82545MHz);8254的频率为 率为5MHz);8254的频率为6MHz , 8254-2 可高 MHz。 达10MHz。 可作方波频率产生器、分频器和单脉冲发生器等。 5. 可作方波频率产生器、分频器和单脉冲发生器等。
?北京工业大学计算机学院? 6

微机接口

8-1 8253/8254的工作原理 8253/8254的工作原理
一、8253/8254的内部结构和引脚信号见P274图9-2
D7~D0 CLK0 GATE0 OUT0

数据总线 缓冲器
内 部 总 线 内 部 总 线

计数器 0

RD WR A0 A1 CS

CLK1

读/写 逻辑电路

计数器 1

GATE1 OUT1

CLK2

控制字 寄存器
?北京工业大学计算机学院?

计数器 2

GATE2 OUT2
7

8253的内部结构图 内部结构图

微机接口

8-1 8253/8254的工作原理 8253/8254的工作原理
24引脚双列直插式封装 24引脚双列直插式封装
D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT 0 GATE0
GND

1 2 3 4 5 6 7 8 9 10 11 12

24 23 22 21 20

V CC W R
RD

CS A1 A0 CLK2 OUT 2 GATE2 CLK1 GATE1 OUT 1
8

8253 19 (8254) 18 17
16 15 14 13

?北京工业大学计算机学院?

微机接口

8-1 8253/8254的工作原理 8253/8254的工作原理
1、数据总线缓冲器 8位 双向 三态
发送或接收数据 往计数器设置计数器初值 从计数器读取数值 写控制寄存器

2、读/写控制逻辑
产生控制整个器件工作的控制信号 CS:片选 RD:CPU正在读计数器的值 WR:CPU正在写计数器初值或写入控制字 A1、A0:用来对3个计数器和控制器进行寻址,若8253 的端口基地址为40H,计数器0,1,2和控制寄存器端口 地址分别为,40H,41H,42H,43H。
?北京工业大学计算机学院? 9

微机接口

读/写控制逻辑
CS RD W R A1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 × 0 0 0 0 1 1 1 1 1 × 0 0 1 1 0 0 1 1 × × A0 0 1 0 1 0 1 0 1 × × 功 能 0 写入计数器 的计数初值 1 写入计数器的计数初值 2 写入计数器 的计数初值 写入控制字 读计数器 的计数值 0 1 读计数器的计数值 2 读计数器 的计数值 无效 无操作 不工作(高阻) 不工作(高阻)
10

?北京工业大学计算机学院?

微机接口

8-1 8253/8254的工作原理 8253/8254的工作原理
3、计数器0~2
? 8253/8254内部包含3个完全相同的计数/定时器 通道,这三个计数器相互独立,可各自按不同的 方式工作。 ? 每个通道包括一个8位控制字寄存器,一个16位 的计数初值寄存器,一个16位计数器执行部件和 一个16位计数值的输出锁存器(用于CPU从中读 出当前计数值)。 ? 16位寄存器均可分为高8位和低8位寄存器来使用 ? 每个通道对输入CLK信号的计数是“减1计数”。 减 计数 可按2进制和10进*校捎玫辜剖ㄏ仍ぶ 初值,开始递减计算。 11 ?北京工业大学计算机学院
?

微机接口

8-1 8253的工作原理 8253的工作原理
3、计数器0~2
? 减1计数的具体操作过程: – CPU把“控制字”,写入“控制寄存器”,把 “计数初始值”写入“初值寄存器”, 定时 /计数器按控制字要求计数。 – 计数从“计数初始值 开始,每当CLK信号出 现一次,计数值减1。 – 当计数值减为0时,从OUT端输出规定的信 号(具体形式与工作方式有关)。当CLK信 号出现时,是否计数,受“门控信 号”GATE的影响,一般,仅当GATE有效时, 才减1计数。 12 ?北京工业大学计算机学院
?

微机接口

8-1 8253的工作原理 8253的工作原理
3、计数器0~2
? 用作定时器时,CLK引脚上应输入精确的时钟脉 冲,即 定时时间=时钟脉冲周期*预置的计数初 值 ? 8253 CLK引脚的时钟频率不得大于2MHz 8253- 最高计数频率为5MHz);8254 5MHz);8254的频 (8253-5最高计数频率为5MHz);8254的频 率为6MHz 8254- 可高达10MHz 10MHz。 率为6MHz , 8254-2 可高达10MHz。 ? CLKi: 计数器的时钟输入 GATEi:计数器的门控制信号输入 OUTi: 计数器的输出
?北京工业大学计算机学院? 13

微机接口

8-1 8253/8254的工作原理 8253/8254的工作原理
4、控制字寄存器
? 是只写寄存器,用作选定计数器通道、规定各 计数器通道的工作方式,读写格式控制。控制字 如P275所示。

?北京工业大学计算机学院?

14

微机接口

8253/8254控制字格式 8253/8254控制字格式
D7 D6 D5 D4 D3 D2 D1 D0 0 二进制格式 1 BCD码格式 000 方式0 001 方式1 X10 方式2 工作方式选择位 X11 方式3 100 方式4 101 方式5 00 计数器锁存,供CPU读 01 只读/写低8位字节 10 只读/写高8位字节 11 先读/写低8位字节,后读/写高8位字节
15

SC1 |SC0| RW1 | RW0 | M2 | M1 | M0 |BCD 计数方式选择位

读写控制位

通道选择位

00 计数器0 01 计数器1 10 计数器2 ?北京工业大学计算机学院? 11 读出控制字的标识码

微机接口

8254 的读出控制字
8254多了一个读回命令,读出控制字就是起锁存作用的, 所以也叫锁存命令。
D7 D6 D5 D4 D3 D2 D1 D0

1 | 1 | COUNT | STATUS | CNT2 | CNT1 | CNT0 |0
计数器2 计数器1 计数器0

D5=0 时锁存所选计数器的当前计数值。 D4=0 锁存所选计数器的状态。 D3D2D1 分别对应计数器2、1、0。一个锁存命令可同时锁存 多个计数器的计数值,也可用一个锁存命令锁存某个计数器的 计数值和状态,但不能一次锁存多个计数器的状态,因为状态 寄存器只有一个,在一个时刻只能对应一个计数器。
?北京工业大学计算机学院? 16

微机接口

8253锁存命令

D7

D6

D5

D4

D3

D2 D1

D0

SC1 SC0
计数器选择

0

0

×

×

× × ×

在8088系统中,8253的基址为0070H。编程读 8088系统中,8253的基址为0070H。 系统中 的基址为0070H 出计数器0的当前计数值,并存放在BX BX中 出计数器0的当前计数值,并存放在BX中。 MOV OUT IN MOV IN MOV AL,00000000B AL,00000000B ;锁存, 锁存, 000000 73H, 73H,AL AL, 当前计数值低8 AL,70H ;当前计数值低8位 BL, BL,AL AL, 当前计数值高8 AL,70H ;当前计数值高8位 BH,AL BH, ;
?北京工业大学计算机学院? 17

微机接口

读取命令分两步完成: 读取命令分两步完成: (1)发出锁存命令,使当前计数值锁存在输出锁存器中 发出锁存命令, (2)读输出锁存器,获得当前计数值。 读输出锁存器,获得当前计数值。

必须注意:计数值是16位的, 8253/8254均为8 必须注意:计数值是16位的,但8253/8254均为8 16位的 均为 位端口,必须分两次读取,才能获得16位的值, 16位的值 位端口,必须分两次读取,才能获得16位的值,为 了避免第1次读取后,计数值发生变化,必须使用锁 了避免第1次读取后,计数值发生变化, 存命令使计数值锁存在输出锁存器中, 存命令使计数值锁存在输出锁存器中,然后分两次 从输出锁存器中读取16位值。 16位值 从输出锁存器中读取16位值。
?北京工业大学计算机学院? 18

微机接口

8254 的状态寄存器和状态字
8254 有一个状态寄存器,状态端口是只读的,控制端口和状 态端口的地址对应于A1A0=11
D7 D6 D5 D4 D3 D2 D1 D0

OUT |NULLCOUNT| RW1 | RW0 | M2 | M1 | M0 |BCD D7位表示OUT端的状态,D7=1,表示高电*,D7=0,表示当前OUT 端为低电*. D6位 表示初值是否已装入计数器,D6=0,表示已装入. D5~D0 这几位与控制字的对应位含义相同. Rw1Rw0 =00 无意义.

?北京工业大学计算机学院?

19

微机接口

在CPU为8088的PC/XT机中: CPU为8088的PC/XT机中: 机中 若8253的端口基地址为40H,则计数通道0、1、2 和控制寄存器端口的地址分别为:40H、41H、42H 和43H。
8253 I/O译码 I/O译码 CS A1 A0
?北京工业大学计算机学院? 20

8088
高位地址线

A1 A0

微机接口

在CPU为8086的系统中: CPU为8086的系统中: 的系统中 8253的D7-D0可以接到数据总线D15-D8,也可以接到低8
位数据总线D7-D0。在实际中,经常接到低8位数据总线。这 样CPU就要求芯片的内部的各个端口都使用偶地址。 使用CPU的A2A1来选择端口。

8086
高位地址线

8253 I/O译码 I/O译码 CS A1 A0
?北京工业大学计算机学院? 21

A2 A1

微机接口

二、初始化编程步骤和门控信号功能
1、8253/8254初始化步骤:
上电后8253/8254可编程芯片,处于无定义状态,必须 初始化后才可使用,具体初始化过程为: ? 写入控制字:用输出指令向控制字寄存器写入一个控制字, 以选定计数器通道,规定该计数器工作方式和计数格式; 起到复位作用,计数器清零 ? 写入计数初值:用输出指令向选中的计数器端口地址中写 入一个计数初值,初值可以是8位或16位数据。16位数据分 两次写入。 ? 计数初值写入8253/8254,还要经过一个时钟脉冲的上升沿 和下降沿,才能将计数数值装入实际的计数器,然后在门 控信号GATE控制下对CLK引脚输入的脉冲进行递减计数。
?北京工业大学计算机学院? 22

微机接口

控制寄存器
数据总线
D7~D0

计数器0 高8位 低8位 计数初值寄存器
(CR)

Vcc GND

+5V

CLK0
GATE0

OUT0 RD WR RD WR

高8位 低8位 计数执行部件 (CE) H8 L8 输出锁存器 (OL)
CLK1
GATE1

M/IO

地址 译码

计数器1
CS A1 A0

OUT1 CLK2

计数器2
?北京工业大学计算机学院?

GATE2

OUT2
23

微机接口

1、8253/8254初始化步骤:
例1:在8086系统中,8253的基址为70H。编程使 计数器0工作在方式2,计数初值的写入和计数 值的读出仅使用低8位,初值为100,采用二进 制计数方式。
AL,00010100 01010 MOV AL,00010100 B 76H, OUT 76H,AL MOV AL,100 AL, 70H, OUT 70H,AL ;控制字 ;计数初值

?北京工业大学计算机学院?

24

微机接口

1、8253/8254初始化步骤
例2:在8088系统中,8253的基址为70H。编程使 8088系统中,8253的基址为70H。 系统中 的基址为70H 计数器1工作在方式1,计数初值的写入和计数 计数器1工作在 1 值的读出使用16 16位 先低后高,初值为1234 1234, 值的读出使用16位,先低后高,初值为1234, 采用BCD计数方式。 BCD计数方式 采用BCD计数方式。
AL,01110011 11001 MOV AL,01110011B 73H, OUT 73H,AL AX, MOV AX,1234H 71H, OUT 71H,AL AL, XCHG AL,AH OUT 71H,AL 71H, ;控 ;BCD 1234 ;计数 值 8 ;计数 值高8
25

?北京工业大学计算机学院?

微机接口

1、8253/8254初始化步骤
例3:在8086系统中,8253的基址为800H。欲使计 8086系统中,8253的基址为800H。 系统中 的基址为800H 数器2工作在方式5,初值为4000,采用BCD计 4000, BCD计 数器2工作在 5 初值为4000 采用BCD 数方式。试写出初始化程序。 数方式。试写出初始化程序。
MOV MOV OUT MOV MOV OUT MOV OUT DX, 0806H AL, 10111011B DX, AL DX, 0804H AX,4000H , DX,AL , AL,AH , DX,AL ,
26

?北京工业大学计算机学院?

微机接口

三、8253/8254的工作方式 8253/8254的工作方式
8253/8254的3个计数器都有6种工作方式。 其主要区别在于: 1. 2. 3. 4. 输出波形不同。 启动计数器的触发方式不同。 计数过程中门控信号GATE对计数操作的影响不同。 有的工作方式具备“初值自动重装”的功能。

?北京工业大学计算机学院?

27

微机接口

1、方式0——计数结束中断方式
写入控制字为方式0时,out输出端为低电* n值被写入计数器初值寄存器,写信号在上升沿后的时钟脉冲的下降沿, 才把n装入通道内的实际计数器中开始减1计数。 方式0,要使计数器计数,门控信号GATE必须为高电* 如果GATE变为低电*,则暂停减1计数,直到GATE为高电*继续计数 方式0进行计数时,计数器只计数一次,重新计数需重新写入计数值
CW N=4

W R
CLK
“1” ”

GATE OUT
4 3 2 1 0

GATE
?北京工业大学计算机学院? 28

OUT

4

3

2

1

0

2、方式1—可编程单稳态输出方式

微机接口

写入控制字为方式1时,out输出端为高电* n值写入计数器,GATE形成一个上升沿后,在下一个时钟脉冲的下降 沿,才把n装入计数器,同时out输出一个低电*,计数器中开始减1操 作。计数器减到0,out输出高电*。 OUT引脚上得到一个负脉冲,并可由编程控制负脉冲的宽度,等于时 钟脉冲的宽度乘以计数n值。 计数过程,GATE产生低跳变,不会影响计数过程,但若GATE又产生 正跳变,重新开始计数,OUT负脉冲的宽度加大。
CW N=2

W R
CLK

GATE OUT GATE
?北京工业大学计算机学院? 29

2

1

0

2

1

0

OUT

2

1

2

1

0

3、方式2--比率发生器

微机接口

写入控制字为方式2时,out输出端为高电* 如果GATE为高电*,写入计数值后的下一个时钟脉冲,进行递减计数。 当计数减为1时,out输出为低电*,计数减为0,out又输出为高电*,同 时,重新装入计数值,开始新的过程,周而复始。 若计数值为n,out引脚上,每隔n个时钟脉冲就产生一个负脉冲。 计数过程中写入新的计数值,计数周期结束后,才按新的计数值工作。 计数过程,GATE变为低电*,将迫使OUT为高电*,并禁止计数,当 GATE由低变为高电*,下一个时钟脉冲,预置初值,重新开始。
CW N=3

W R
CLK
1” “”

GATE OUT GATE
?北京工业大学计算机学院? 30

3

2

1

3

2

1

OUT

3

2

1

3

3

2

1

4、方式3--方波发生器

微机接口

方式3 out端输出为基本对称的方波。写入控制字为方式3时,out输出端为高电 *,如果GATE为高电*,写入计数值后的下一个时钟脉冲,进行递减计数。 当计数到一半时, out输出端变为低电*,计数值减为0,out又变为高电*, 从而 完成一个周期.同时,自动重新装入计数初值进行计数,开始新的循环。当计数 初值为奇数时,输出矩形波,如N=5,则高电*为3个时钟周期,低电*为2个时钟周 期,整个输出周期为5个时钟周期。 从out输出方波的频率都等于时钟脉冲的频率除以计数值。 计数过程中,GATE变为低电*,则会停止计数,当GATE又变为高电*,计数 器会重新按初值计数。这种通过外部门控信号使计数器实现同步称为硬件同步。
CW N=4

WR CLK
“ 1”

GATE OUT OUT
N=4 4 3 2 1 4 3 2 1 4
31

?北京工业大学计算机学院?

N=5

5

4

3

2

1

5

4

3

2

5、方式4--软件触发选通

微机接口

写入控制字为方式2时,out输出端为高电* 如果GATE为高电*,写入计数值后的下一个时钟脉冲,进行递减计数。 当计数减为0,out又输出为低,经过一个时钟周期又回到高电*。 此方式装入的计数初值仅一次有效。 计数过程中写入新的计数值,将按新的计数初值进行计数,同样一次。 计数过程,GATE变为低电*,则停止计数,当GATE变为高电*后,又 重新预置初值,直至减为0,out输出一个负脉冲。
CW N=4

WR
CLK
“1” ”

GATE OUT
4 3 2 1 0 4
32

?北京工业大学计算机学院?

6、方式5--硬件触发选通

微机接口

写入控制字为方式5时,out输出端为高电* 当装入计数值n,不管GATE如何减1计数器不工作,等到GATE引脚上 输入正跳变时,在下一个时钟脉冲的下降沿后开始减1计数。 当计数器减为0,out输出一个时钟周期的负脉冲。计数器自动将计数 初值装入计数器,再等待GATE引脚的正跳变才进行减1计数。 计数过程中,如果GATE有上升沿可触发计数器,从计数初值开始计数
CW N=4

WR
CLK

GATE OUT
4 3 2 1 0 4

?北京工业大学计算机学院?

33

三、8253/8254的工作方式 8253/8254的工作方式

微机接口

1.各种方式的主要特点概括: ? 方式0:写入控制字后,输出端变低,计数结束后,输出端变高, 常用该输出端作为中断源,其余5种方式写入控制字后,输出端 均变高,方式0可实现定时或对外部事件进行计数。 ? 方式1:用来产生单脉冲,脉冲宽度可与程序控制 ? 方式2:用来产生连续序列的负脉冲,脉冲宽度与时钟脉冲宽度 相同 ? 方式3:用来产生连续的方波,方式2和方式3都实现对时钟脉冲 进行n分频 ? 方式4和方式5的波形相同,都是在计数器回0后,从out端输出 一个负脉冲,其宽度等于一个时钟周期。但方式4由软件(设置 计数值)触发计数,方式5由硬件(门控信号)触发计数。 ? 方式0,1,4:计数初值仅一次有效,对于方式2,3,5减到0后, 计数器自动将计数值重装进计数器
?北京工业大学计算机学院? 34

2、门控信号控制功能

微机接口

门控信号GATE在各种工作方式下功能如下:
方式0 方式 1
GATE=0 停止计数

方式2 方式3

方式4 方式5

停止计数 停止计数 停止计数

GATE 启动计数 启动计数 启动计数 启动计数 信号的 上升沿 作用 允许计数 允许计数 允许计数 GATE=1 允许计数

?北京工业大学计算机学院?

35

微机接口

8-2、8253/8254的应用举例 8253/8254的应用举例
一、计数器定时功能的应用例子 1、用8253产生各种定时波形 在某个以8086为CPU的系统中使用了一块8253芯片, 通道的基地址为310H,所用时钟脉冲频率为1MHz, 要求3个计数器分别完成以下功能: a.通道0工作于方式3,输出频率为2kHz的方波 b.通道1产生宽度为480us的单脉冲 c.通道2用硬件方式触发,输出单脉冲,时间常数为26. 据此设计画出硬件电路图;编写8253初始化程序;
?北京工业大学计算机学院? 36

微机接口

8-2、计数器的应用举例
时间常数N0=1MHz/2kHz=500 ;通道0初始化程序 MOV DX , 316H MOV AL , 00110111B OUT DX, AL MOV DX , 310H MOV AL, 00H OUT DX, AL MOV AL, 05H OUT DX, AL
?北京工业大学计算机学院? 37

微机接口

8-2、计数器的应用举例
时间常数N1=480μs /1 μs=480 ;通道1初始化程序 MOV DX , 316H MOV AL , 01110011B OUT DX, AL MOV DX , 312H MOV AL, 80H OUT DX, AL MOV AL, 04H OUT DX, AL
?北京工业大学计算机学院? 38

微机接口

8-2、计数器的应用举例
;通道2初始化程序 MOV DX , 316H MOV AL , 10011011B OUT DX, AL MOV DX , 314H MOV AL, 26H OUT DX, AL
?北京工业大学计算机学院? 39

微机接口

一、8253定时功能的应用例子
2、控制LED的点亮或熄灭 要求点亮10秒后再让它熄灭10秒,重复此过程 设计过程:采用8086系统,8253的各端口地址为 81H ,83H ,85H ,87H。8253的数据线D 7—D 0 和CPU的高8位数据总线D 15—D 8相连(这样才能 选中奇地址)。使8253的某个通道的out端输出方波 (占空比1:1,周期为20秒),就能解决此问题。因 为CLK端的频率为2MHz,所以一个通道的OUT端输 出的脉冲周期最大为1/2M*65536=32.768ms,需用 两个通道级连来实现

?北京工业大学计算机学院?

40

微机接口

一、8253定时功能的应用例子
2、控制LED的点亮或熄灭 设*峁缦: 2MHz加在CLK0,通道0工作在方式2,若选择 N0=5000,则OUT0得到负脉冲频率为 2MHz/5000=400Hz,周期为2.5ms 。 再将该信号接CLK1,通道1工作在方式3,为使 OUT1 输出20s周期的方波,应取时间常数 N1=20s/2.5ms=8000

?北京工业大学计算机学院?

41

微机接口

8-2、8253的应用举例 8253的应用举例
;通道0初始化程序 MOV AL , 00110101B OUT 87H, AL MOV AL, 00H OUT 81H, AL MOV AL, 50H OUT 81H, AL ;通道1初始化程序 MOV AL , 01110111B OUT 87H, AL MOV AL, 00H OUT 83H, AL MOV AL, 80H OUT 83H, AL

?北京工业大学计算机学院?

42

微机接口

二、8253计数功能的应用例子
假设一个自动化工厂需要统计在流水线上所生产的 某种产品的数量(每500个工件发一次中断), 可采用8086CPU和8253来实现 1、硬件电路设计:见黑板 2、初始化编程:选择计数器1工作于方式0,按 BCD码计数。先读/写低字节,后读/写高字节, 选初值为499,经过N+1个脉冲,向CPU发出一次 中断请求。 3、计数值的读取:如果在计数中途需了解计数个 数,由于计数值在不断变化,需要CPU在读取计 数值时,对现行的计数值进行锁存,然后再读出。
?北京工业大学计算机学院? 43

微机接口

;初始化程序 MOV AL , 01110001B OUT 0F6H, AL MOV AL, 99H OUT 0F2H, AL MOV AL, 04H OUT 0F2 H, AL

?北京工业大学计算机学院?

44

微机接口

三、8253在PC/XT机中的应用 PC机中8253的连线见P322图8-15
分频器 1.1931816MHZ
CLK0 GATE0 CLK1 GATE1 CLK2 GATE2 OUT0 OUT1 OUT2

+5v

8259A的IR0 产生系统日时钟 8237的DREQ0 存储器刷新

8255B口 位0

8253
位1
?北京工业大学计算机学院?

驱动 喇叭

45

例1:PC机中8253的使用

微机接口

计数器0:以方式3工作,产生系统日时钟所需的定时中断。 (40H) 计数初值设为0,二进制计数,OUT0以18.2HZ 产生方波(约55ms)。 计数器1:以方式2工作,向DMA控制器定时发出存储器 (41H) 刷新请求。计数初值设为18,OUT1以66.29M 的频率输出负脉冲。 计数器2:以方式3工作,产生PC机扬声器的音调频率。 (42H) 计数初值设为533H,OUT2产生1000HZ的方波。 GATE2受到8255的B口(61H)的位0控制。

?北京工业大学计算机学院?

46

微机接口

? 对8253的初始化(BIOS)
计数器2: MOV AL,36H 计数 OUT 43H,AL 器0: MOV AL,0 OUT 40H,AL OUT 40H,AL MOV AL,55H 计数 OUT 43H,AL 器1: MOV AL,18 OUT 41H,AL MOV AL,0B6HH OUT 43H,AL MOV AX,533H OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H MOV AH,AL OR AL,03H OUT 61H,AL

?北京工业大学计算机学院?

47




友情链接: