第09章 计数器和定时器电路Intel 8253-8254-PIT
微机第9章8253
0 0----选计数器0
0 1----选计数器1 1 0----选计数器2 1 1----无意义
写入控制口,地址A1A0=11
2、计数初值的写入
若规定只写低8位,则写入的为计数值的低8位, 高8位自动置0; 若规定只写高8位,则写入的为计数值的高8位, 低8位自动置0; 若是16位计数值,则分两次写入,先写低8位, 再写入高8位。
计数值写入计数器各自的 计数通道(端口地址)
注: ① 写入控制字后,所有控制逻辑电路复位, 输出端OUT进入初始状态。 ② CPU向8253写入的计数初值,要在CLK端输入一个 正脉冲后才能被真正装入指定通道(若在此CLK下降 沿之前读计数器,则其值是不定的)。 之后再次输入时钟脉冲(CLK)才开始计数,且每次 在脉冲的下降沿减1计数。 即:写入计数初值后,经过一个CLK,8253才开始计 数。
④ 当GATE变为低电平时计数 停止,再变为高电平时计数继 续进行。 ⑤若计数过程中重新送入初值, 则按新值重新计数。
(2)方式1——可重复触发单稳触发器
WR CLK GATE OUT 3 2 1 0 FFFE 3 2 方式1时序图 CW N=3
③计数过程中,再次给通道写入时间 ①写入CW后OUT变为高电平, GATE 常数,不影响现行操作过程,GATE再 上升沿触发后,OUT变为低并开始计数, 次触发后才按新的时间常数操作。 归零时OUT变为高电平。 ④计数过程中,GATE触发沿提前到来, ②GATE再来一次上升沿使OUT为低, 在下一个CLK的下降沿,计数器开始重 新计数,这将使输出单稳脉冲比原先 计数器以初值重新计数。 设定的计数值加宽。 可重复触发——当计数归零后,不用再次送计数值,只要给它触发脉冲,即 可产生一个同样宽度的单稳脉冲输出。
第9章_3 可编程定时计数器8253
OUT
2
1)写入计数值开始计数。周期性计数。 2)N=偶数,正负半周=N/2,N=奇数,正半周=(N+1)/2,负半周=(N-1)/2。 3)计数过程中GATE=0,暂停计数,GATE=1重新计数。 4)计数过程中改变计数值,下一周期按新的计数值计数
9.4 可编程的定时/计数器8253/8254 方式4——软件触发选通
9.4 可编程的定时/计数器8253/8254 8253的引线及内部结构:
D0~D7
CLK0
数据 总线 缓冲
计数器 #0 (CNT0) 计数器 #1 (CNT0) 计数器 #2 (CNT0)Biblioteka GATE0OUT0 CLK1
D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0 GATE0 GND
9.4 可编程的定时/计数器8253/8254 方式5——硬件触发选通
WR GATE 启动计数 CLK CW=16 N=3
OUT
3 GATE OUT 3 2 3
3
2
1
0
0
GATE重复 启动计数
3
2
1
0
GATE
WR 计数中改 变计数值 OUT
CW=16
N=4
N=2 4 3 2 1 0 2 1
GATE
控制字 寄存器
•三个16位计数口: #0:CLK0、OUT0、GATE0 #1:CLK1、OUT1、GATE1 #2:CLK2、OUT2、GATE2
9.4 可编程的定时/计数器8253/8254 8253的口地址及操作:
•片内地址:A0,A1 •片选:CS •数据总线:D0~D7 •读/写信号: RD
D0 ;初始化通道0 D7 ;计数值100
第9章 计数器8253-PIT
注: 下面的约定适用于所有的工作方式波形图:
计数器编程采用二进制方式,只对低字节操作 计数器的片选信号 CS 一直处于低电平; CW表示控制字(Control Word);CW=10 表示10H写 入计数器; LSB表示计数器的低字节; 图下的数字表示计数值:上面的数是高字节,下面 的数是低字节;
方式2波形图
四、方式3 (方波速率发生器)
计数过程 方式3的计数过程按计数初值的不同分为两种 情况:
(1)计数初值为偶数 写入控制字后的第一个时 钟上升沿,输出端OUT变成高电平。若GATE= 1,写入计数初值后的第一个时钟下降沿开始减2 计数。减到N/2个CLK时,输出端OUT变为低电 平;再减到0时,输出端OUT又变成高电平,并 重新从初值开始新的计数过程。可见,输出端 OUT的波形是连续的方波,故称方波发生器
8253的内部结构
一、数据总线缓冲器
该缓冲器为8位双向三态的缓冲器,可直接 挂在数据总线上。通过它,一方面可以向控 制寄存器写入控制字,向计数器写入计数初 值;另一方面也可由CPU通过该缓冲器读取 计数器的当前计数值 二、读/写控制逻辑
读/写逻辑的功能是接收来自CPU的控制信 号,包括读信号RD 、写信号 WR 、片选信号 CS 和芯片内部寄存器的寻址信号A1、A0,并完成 对8253各计数器的读/写操作
方式4波形图
六、方式5 (硬件触发选通方式)
计数过程
写入控制字后,输出OUT即为高电平。写入计 数初值后,计数器并不立即开始计数,而是由门控 脉冲的上升沿触发。计数结束 (计数器减到0),输 出一个持续时间为一个CLK时钟周期的负脉冲,然 后输出恢复为高电平。直到GATE信号再次触发。 输出负脉冲可以用作选通脉冲,它是通过硬件 电路产生的门控信号上升沿触发得到的,所以叫硬 件触发选通方式
第9章 8253
与系统的连接示意
8253
DB
IOW
IOR
A1
A0 高
位 地
译码器
址
D0~D7
WR CLK RD GATE A1
OUT A0
CS
外部时钟 门控信号
外设
应用中的注意点
n 每一次启动计数,需有两次写操作:
• 写控制字 • 写计数器初值
n 如果初值为8位字长,则一次写入;若初值为16位字长,则 需两次写入
初始化程序流程
写入全部计数器控制字
写CNT0计数初值 写CNT1计数初值
原则:
u 先写入控制字 u 后写入计数初值
写CNT2计数初值
8253应用例一
n 采用8253作定时/计数器,其接口地址为 0120H~0123H。
n 输入8253的时钟频率为2MH。要求:
• CNT0每10ms输出一个CLK周期宽的负脉冲 工启作动的方计式数器
A0
OUT0
OUT1 CS
OUT2
+5V 2MHz
8253应用例——初始化程序
CNT0: MOV DX, 0123H MOV AL,34H OUT DX,AL MOV DX, 0120H MOV AX,20000 OUT DX,AL
MOV AL,AH OUT DX,AL
CNT1: ……
CNT2: ……
: A5 A11 A10
&
&
≥1 A4 A3 A2
G1
Y
0
G2A
G2B
C B A
例二解
n 8253计数初值: n 8253初始化程序:
• 2MHz/100Hz=200 00
n 8253工作方式:
第九章_计数器8253—PIT
表 9-5在计数过程中改变计数值
方式 0 1 2 3 4 5 功 能 改变计数值 立即有效 外部触发后有效 计数到1后有效 (1) 外部触发后有效 (2) 计数到0后有效 立即有效 外部触发后有效
计完最后一个数中断 硬件再触发单拍脉冲 速率发生器 方波速率发生器 软件触发选通 硬件触发选通
9.4 8253-PIT的编程 的编程
8253的初始化编程步骤: 的初始化编程步骤: 的初始化编程步骤
当初始化8253某个计数通道时, (1)首先把相应的方式控制字写入到控制字寄存器中, (2)再根据控制字中数据读/写格式(D5D4)位的规定,写 入计数初值到对应的计数通道。 8253工作过程中,任一通道的计数值,CPU可用输入指令 读取。CPU读到的是执行输入指令瞬间计数器的当前值, 但8253的计数器是16位的,所以要分2次读至CPU,因 此,若不锁存的话,在前后两次执行输入指令的过程中, 计数值可能已经发生变化了
9.3 8253-PIT的工作方式 的工作方式
8253的每一个计数器都可以按照控制字的规定有 6种不同的工作方式。下面结合时序波形图介绍各种 工作方式的计数过程 一、方式0(计数结束中断方式) 计数过程 当写入方式0控制字后,OUT立即变为低电平, 并且在计数过程中一直维持低电平。若GATE=1,写 入初值后,CLK第1个下降沿到,计数值装入计数器, 随后每一个CLK脉冲下降沿到,计数器减1。计数器 减到零时,OUT输出变为高电平,并且一直保持到 该通道重新装入计数值或重新设置工作方式为止
工作方式(D3D2D1) 8253的每个通道可以有6种不同的工作方式,由 D3D2D1 三位决定,具体情况在9.3节中详细介绍 数制选择(D0) 8253的每个通道都有两种计数制:二进制和二十进制(BCD码),由D0位决定。在二进制时,写 入初值的范围为0000H~FFFFH,其中0000H是 最大值,表示65536。在二—十进制时,写入初 值范围为0000~9999,其中0000表示最大值 l0000。因为计数器是先减1,再判断是否为0, 所以写入0实际代表最大计数值
wjyl-9
计数器的3个引脚说明:
(1)CLK时钟输入信号
在计数过程中,此引脚上每输入一个时钟信号(下降沿), 计数器的计数值减1
(2) GATE门控输入信号
控制计数器工作,可分成电平控制和上升沿控制两种类型
(3) OUT计数器输出信号
当一次计数过程结束(计数值减为0),OUT引脚上将产生 一个输出信号
微机原理及应用——第9章 计数器和定时器电路 Intel 8253/8254-PIT
15
微机原理及应用——第9章 计数器和定时器电路 Intel 8253/8254-PIT
16
2、8253的编程
写入命令 设置控制字命令 控制端口 设置初始值 计数器端口
读出命令 设置锁存命令 控制端口(用于配合读出命令) 读取计数器当前的值。
4
9.1 概述
1、主要功能:
1、一片8253上有3个独立的16位计数器通道,可作为 定时器或计数器使用; 2、每个计数器都可设定为按照二进制或二进制编码的 十进制(BCD)计数 ; 3、每个通道有6种工作方式,可由程序设置和改变 。
微机原理及应用——第9章 计数器和定时器电路 Intel 8253/8254-PIT
微机原理及应用——第9章 计数器和定时器电路 Intel 8253/8254-PIT
20
初始化程序: MOV
OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT
AL, 43H, AL, 40H, AL, 43H, AL, 41H, AL, 43H, AX, 42H, AL, 42H,
微机原理及应用——第9章 计数器和定时器电路 Intel 8253/8254-PIT
微机原理与接口技术_09定时计数器8253应用设计
第9章 定时/计数器8253应用设计 1. 8253的引脚功能及特点 2. 8253的原理结构及工作原理 3. 8253的控制字及工作方式 4. 8253与系统总线的接口方法 5. 8253的应用设计
9.1 8253的引脚功能及特点
图9.1 8253引脚图
Intel公司生产的可编程定时/计数器 8253 采用 24脚的DIP封装,用作分频器、定时信号产生器等。
lll 定时/计数器8253一共有三个独立的计数通道 (也称计数器):计数器0、计数器1、计数器2。
每个计数通道的内部结构如下图所示,在 每个计数通道中主要包含四个部件:计数寄存 器 CR(Count Register,16 位 ) 、 计 数 工 作 单 元 CE(Counting Element,16 位 ) 、 输 出 锁 存 器 OL(Output Latch, 16 位 ) 、 控 制 字 寄 存 器 (Control Word Register,8位)。 每个计数通道有 三个输入输出信 号:时钟(计数 脉冲)CLKx(输 入)、控制信号 GATEx(输入)、 输出信号OUTx (输出)。
方式1具有下列一些特点: 在臵控制字或时常数后, OUT 端仍输出高电平 ; 在 GATE 端输入有效的触发信号(上升沿),并 经过一个CLK脉冲,OUT变为低电平,作为单脉冲 的开始,同时将CR读入CE,并开始“减1”计数; 当 CE计数到 0时, OUT端变为高电平,表示本次 单脉冲形成结束; 当计数通道的时常数为 N 时,硬件触发所产生 的单脉冲(低电平)的宽度为 N 个计数时钟周期 ;
方式控制字的M1M2M3位(M2M1M0)用于设定计数 通道的工作方式: M2M1M0 0 0 0 0 0 1 ×1 0 ×1 1 1 0 0 1 0 1 含 义 方式0 方式1 方式2 方式3 方式4 方式5
第 9 章 计数器和定时器电路——微机原理课件PPT
计数器的3个引脚
CLK(时钟)——输入,在计数过程中,此引脚上每 输入1个时钟信号(下降沿),计数器的计数值将减1
GATE(门控)——输入,控制计数器工作:
开启/关闭计数——高电平时允许计数通道工作 触发/重触发——上升沿产生触发或重触发
OUT(计数器输出)——输出,根据设置工作方式的 不同, OUT引脚可输出单个或连续的波形信号。一般 是在计数过程结束时(计数值归0),OUT引脚信号 发生变化。
9.1.3 8253-PIT的引线
D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0 GATE0 GND
1
24
2
23
3
22
4
21
5
20
6
19
7 8253 18
8
17
9
16
10
15
11
14
12
13
VCC
WR RD CS A0 A1
CLK2 OUT2 GATE2 CLK1 GATE1 OUT1
00 计数器锁存命 令
01 只读写低字节 10 只读写高字节 11 先读写低字节
后读写高字节
000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5
0 二进制 1 十进制(BCD)
控制字写入控制字I/O地址(A1A0=11)
9.3 8253/8254的工作方式
对计数器 1 设置计数初值
对计数器 2 设置计数初值
控制字写入控制寄存器
从计数器 0 读计数值
从计数器 1 读计数值
从计数器 2 读计数值
无操作,三态
无操作,三态
未选中
82C54应用说明
第9章 计数器和定时器电路Intel 8253/8254-PIT在控制系统中,常常要求有一些实时时钟以实现定时或延时控制,如定时中断、定时检测、定时扫描等,也往往要求有计数器能对外部事件计数。
要实现定时或延时控制,有三种主要方法:软件定时、不可编程的硬件定时、可编程的硬件定时器。
软件定时——即让计算机执行一个程序段,这个程序段本身没有具体的执行目的,但由于执行每条指令都需要时间,则执行一个程序段就需要一个固定的时间。
通过正确地挑选指令和安排循环次数很容易实现软件定时,但软件定时占用了CPU的时间,降低了CPU的利用率。
不可编程的硬件定时可以采用小规模集成电路器件如555,外接定时部件——电阻和电容构成。
这样的定时电路简单,而且利用改变电阻和电容,可以使定时在一定的范围内改变。
但是,这种定时电路在硬件连接好以后,定时值及定时范围不能由程序(软件)来控制和改变,由此就生产了可编程的定时器电路。
可编程定时器电路的定时值及其范围,可以很容易地由软件来确定和改变。
所以,功能较强,使用灵活。
本章就介绍这种定时器电路。
§9.1 概述Intel系列的计数器/定时器电路为可编程序间隔定时器PIT(Programmable Interval Timer),型号为8253,改进型为8254。
Intel 8253具有3个独立的16位计数器通道,使用单一5V电源,它是24个引脚的双列直插式器件。
9.1.1 8253-PIT的主要功能Intel 8253-PIT具有以下主要功能:(1) 一个芯片上有三个独立的16位计数器通道;(2) 每个计数器都可以按照二进制或二—十进制计数;(3) 每个计数器的计数速率可高达2MHz。
(82C54-2计数频率可达到10MHz);(4) 每个通道有6种工作方式,可由程序设置和改变;(5) 所有的输入输出都与TTL兼容。
9.1.2 8253-PIT的内部结构8253的内部结构如图9-1所示。
8253、8254的基本知识
8253/8254的引脚
8位数据线:与CPU相连 WR、RD、CS、A0、A1的用途与8255一样 3个定时器分别有:
– CLK:输入脉冲信号 – OUT:输出信号 – GATE:输入门控信号
8253内部逻辑
8253基本原理图
D0 D7 ~
8253内部结构及引脚
数据 总线 缓冲器 计数器 0 CLK0 GATE0 OUT0
wrout1个clk自动连续循环计数不用触发计数值多次有效写入计数值开始计数奇数高电平n1低电平n1其它同方式2计数值n偶数输出对称的方波wrout软件触发写入计数值开始计数1个clk计数值一次有效再计数需在次写入计数值若计数中改变计数值则要结束后才会以新数计数
8253/8254的基本知识
8253/8254是一个有3个独立的16位的通用 定时计数器 8254与8253的引脚与功能完全相同,只 是8254的最高工作频率要比8253高。 8253占用4个端口,3个定时器各占1个, 控制端口占1 个。 (P290)
WR GATE = 1 软件触发 计数值一次有效, 再计数需在次写入计数值
N=3
OUT
写入计数值 开始计数 3 2 1 0
1个CLK
方式5: 方式 :硬件触发选通
写入计数值后由GATE上升沿启动计数 其余与方式4相同
6、方式5(硬件触发选通) 、方式 (硬件触发选通)
WR N=3 GATE触发 计数 3 2 1 0 GATE再次触发, 再次计数 3 2 1 0 计数值多次有效 1个CLK
4 3 2 1 0
4 2 4 2
3 2 1 0
计数值N = 偶数,输出对称的方波
N 2
5 4 3 2 1 0
5+1 2 5-1 2 其它同方式 2
微机原理与接口技术——第9章(8253)
8253工作方式 工作方式2—频率发生器 工作方式 频率发生器
8253工作方式 工作方式2—频率发生器 工作方式 频率发生器
8253工作方式 方波发生器 工作方式3-工作方式
• 方式3在计数过程中的输出(OUT)有一半时间为高电 平,另一半时间为低电平。所以,方式3的输出OUT为 一个方波 。 • CPU设置方式3后,输出保持为高电平,若GATE=1, 写入计数值后,输出仍为高电平,并自动开始计数。当 计数到一半计数值时,输出变为低,直到计数为0,输 出又变高,并重新装入初始值,开始计数 。 • 当计数值为偶数时,前一半输出为高电平,后一半输出 为低电平。如果计数值为奇数,前一半输出为高电平的 持续时间多一个时钟脉冲,随后输出为低电平的持续时 间(比高电平少一个时钟脉冲的持续时间)。
8253工作方式 工作方式4--软件触发 工作方式
• 方式4:软件触发选通信号发生 (一次性) • 与方式0不同是输出OUT的相位相反。门控信 号GATE变低不影响输出,但停止计数过程。 • 置方式4后,输出OUT变高,写入计数值后, 输出仍保持高。从下一时钟装入计数值,开始 计数,到计数值为0时,OUT变低,并持续一 个时钟周期,再变高,并停止计数。 • 若GATE=0,写入计数值后,不开始计数工作, 直到GATE=1,开始计数。 • 若计数未完成,重新写入计数值,将从新值重 新开始。
实现定时功能的主要方法
1. 2. 3. 4. CPU软件延时; 简单的硬件电路定时; 可编程芯片的硬件定时; 专用时钟芯片。
软件定时器
• 设计循环程序,通过精心计算循环次数,和循 环中每条指令的执行时间。执行一次这个程序 段,就产生一个延时时间。 • 优点是不需硬件,缺点是占用CPU时间,并且 不容易实现精确定时。 • 在不同的系统时钟频率下,同一个软件延时程 序的定时时间也会相去甚远,因此这种方法常 用在对延时时间小,并且不需精确定时的场合, 如等待模数变换等。
第9章计数器定时器8253
8254有一个状态寄存器,状态端口只读。 控制端口、状态端口地址——A1A0=11。
(1)8253/8254控制寄存器和控制字
控制字有两大类:
模式设置控制字:设置三个计数器的工作模式; 读出控制字:读取计数器的当前计数值和当前状
优点:节省硬件 缺点:占用CPU的时间,降低CPU的效率;
需要拼凑延时时间,较麻烦。
(2)硬件方法 使用计数器/定时器
优点:计数时不占用CPU的时间,提高CPU的利用 率;时间延迟准确。
第9章 计数器/定时器和多功能接口芯片
Intel8253/8254为可编程计数器/定时器。 8254为8253的改进型,外部特性和使用方法
MOV AL, 0BBH ;控制字10111011B,BCD、方式5、 计数器2、先写低8位、后写高8位
MOV DX, 20BH ;控制字寄存器端口地址 OUT DX, AL ;控制字写入控制字寄存器 MOV DX, 20AH ;计数器2端口地址 MOV AL, 12H ;计数初值低8位 OUT DX, AL ;计数初值低8位写入计数器2 MOV AL, 05H ;计数初值高8位 OUT DX, AL ;计数初值高8位写入计数器2
② 写入命令; 模式设置控制字命令 读出控制字(琐存命令) 设置计数初始值
写入计数初值
选择二进制时 计数值范围:0000H~FFFFH 0000H是最大值,代表65536
选择十进制(BCD码) 计数值范围:0000~9999 0000代表最大值10000
计数值写入计数器各自的I/O地址
思考题
• 3 设8253的端口地址为208H~20BH,请编写程序 读取计数器2的当前计数值。
计数器和定时器电路(8253a)
要使计算机成为可以弹奏的钢琴,需要使用系统调用的01H功能以接收键入字
符,可以通过建立一张键入字符与频率(pínlǜ)值相关的表,在程序中通过查表的 方法将键入字符转化成频率(pínlǜ)值
第四十七页,共五十五页。
接收键入字符
是CTRL+C键?
Y
N
键入字符(zìfú)值转化为查表偏移 量
常数(chángshù)120000H作为
置计数值为N,则经过N+1个CLK脉冲后OUT引脚输出一个(yī ɡè)负脉冲。(2)GATE信号重 新触发,可以令计数器重新计数。(2)通过8253计数器2对扬声器控制。二、自动计数 系统
Image
第五十五页,共五十五页。
硬件方法:定时/计数器电路
– 利用脉冲计数在设定的时间输出定时信号
● 8253是一种(yī zhǒnɡ)硬件定时/计数器芯片
第三页,共五十五页。
8253概貌
– 3个16位的定时/计数器(通道)
– 24引脚双列直插式
– 最高计数频率2MHz – TTL电平兼容
– 单电源(diànyuán)+5V供电
MOV AL,75H
OUT 07H,AL
MOV AL,05H
OUT 05H,AL
MOV AL,10H OUT 05H,AL
第十三页,共五十五页。
读取通道(tōngdào)0的16位计数值: MOV AL,00H
OUT 07H,AL IN AL,04H
MOV CL,AL
IN AL,04H MOV CH,AL
第三十九页,共五十五页。
第四十页,共五十五页。
第四十一页,共五十五页。
编程控制(kòngzhì)计算机扬声器发声:
第9章 8253芯片介绍
3.可编程的定时 在微机系统中,常采用软件、硬件相 结合的方法,用可编程定时计数器芯片构 成一个方便灵活的定时计数电路。这种电 路不仅定时值和定时范围可用程序确定和 改变,而且具有多种工作方式,可以输出 多种控制信号,它由微处理器的时钟信号 提供时间基准,故计时也精确稳定。如 Intel 8253。
2. 方式1 —— 可编程的单稳态触发器 (Programmable One Short)
硬件启动,不自动重复计数。装入初值后OUT端变高电平, 计数开始OUT端变为低电平,计数结束后又变高。
方式1的工作波形如图9.5(a)、 (b)、(c)所示。
CW = 12 WR
LSB = 3
CLK GATE
OUT
3 2 1 0 FF 3 2
图9.5(a) 方式1 正常计数
CW = 12 LSB = 3 WR CLK GATE OUT 3 2 1 3 2 1 0
图9.5(b) 方式1时GATE 信号的作用
CW = 12 WR CLK GATE
LSB = 2
LSB=4
OUT
2 1 0 FF FE 4 3
CW = 16 WR CLK GATE OUT
LSB = 5
LSB = 4
5
4
3
2
1
4
3
d. 方式3 计数过程中改变计数值
图9.7(d) 方式3 计数过程中改变计数值
5. 方式4 —— 软件触发选通方式 (Software Triggered Strobe)
软件启动,不自动重复计数。装入初值后输出端变 高电平,计数结束输出一个CLK宽度的负脉冲
(2)读/写控制逻辑
决定三个计数器和控制字寄存器中哪一个能进行工 作,并控制内部总线上数据传送的方向。
微型计算机原理.part09
控制寄存器 初始值寄存器
CLK
GATE
计数器
计数输出寄存器 OUT
状态寄存器
一、计数/定时的工作原理
工作原理:对CLK信号进行减1计数 首先,CPU把控制字写入控制寄存器,计数初始值写入 初值寄存器 计数从初值开始,每当CLK信号出现一次,计数值减1 当计数值减到0,从OUT端输出规定的信号 CLK信号出现时,计数器是否减1,由门控信号GATE控 制
方式3——方波发生器
8253计数/定时器——工作方式
方式3——方波发生器
写入工作方式字
OUT变高
GATE必须为高,GATE上升沿,重载初值 初值(n)
偶数—— n/2为高,n/2为低 奇数—— (n+1)/2为高,(n-1)/2为低
计数到零,重载初值
四、8253的工作模式
方式3: 例:计数器工作模式3,计数器初值15,时钟脉冲频率为 2MHz,确定OUT端输出方波的特性。 解:TCLK=1/2MHz=500ns 计数器初值15为奇数,输出分频波高电平宽度 TCLK(N+1)/2=4s 输出分频波低电平宽度 TCLK(N-1)/2=3.5s
8253计数/定时器——工作方式
方式4——软件触发单脉冲
8253计数/定时器——工作方式
方式4——软件触发单脉冲
写入工作方式字
OUT变高
GATE必须为高,GATE上升沿重载初值 计数满,OUT输出一个CLK周期的负脉冲 一次性,不重载
四、8253的工作模式
例:计数器0工作模式4,初始化计数器,使装入计数器10 s后 产生选通信号(设时钟频率2MHz,8253端口地址为50H~53H)。 解:n+1=T/ TCLK=10/0.5=20 n=19=13H MOV AL, 18H OUT 53H, AL MOV AL, 13H OUT 50H, AL
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例4:使计数器T1工作于方式4,进行8位二进 制计数,并且只装入高8位计数值。 (设8253 的端口地址为304H~307H) 其初始化程序段为: MOV DX,307H ;命令口 MOV AL,00110100B ;方式字 OUT DX,AL MOV DX,304H ;T2数据口 MOV AL,BYTEL ;低8位计数值 OUT DX,AL
01--只读/写低8位字节
10--只读/写高8位字节 11--只读/写低8位字节, 再读/写高8位字节.
01--选计数器1
10--选计数器2 11--无意义
1
0
1
模式5
9.2.4 8253计数器的初始化 1.8253的初始化编程 对8253初始化的两种方法: (1)逐个计数器分别初始化
对三个计数/定时没有先后顺序规定,但对每个
例2:使计数器T2 工作在方式1 ,进行8位二 进制计数,并设计数初值的低8位为BYTEL。 (设8253的端口地址为304H~307H) 其初始化程序段为 MOV DX,307H ;命令口 MOV AL,10010010B ;方式字 OUT DX,AL MOV DX,306H ;T2数据口 MOV AL,BYTEL ;低8位计数值 OUT DX,AL
来说,都必须先写方式控制字,后设置计数初值,
且写计数初值时,必先写计数值的低8 位,再写计
数值的高8 位。 (2)先统一设置控制字,后统一设置计数初值 先设置所有计数/定时器的控制字(对各个计数 /定时器没有先后顺序),再设置各个计数/定时器
的计数初值(对各个计数/定时器没有先后顺序)。
2.8253读命令 8253的读命令只能用于读取计数器的当前 值,而控制字是不能读出的。读计数值有两种 方法:直接读出和锁存读出。 3 .计数器/定时器的工作特点 1)门脉冲控制时钟输入; 2)用门脉冲来重新启动计数; 3)用门脉冲停止计数; 4)单一计数; 5)循环计数。 计数初始值=时钟频率*T
第9章 计数器和定时器电路Intel 8253-8254-PIT 一、课前思考 1、定时或延时常用的方法有哪? 2、8253有哪些基本功能? 3、8253的内部结构及引脚功能如何? 4、如何进行控制字设置及初始化编程? 5、8253有哪些工作方式?各种方式有何特点? 二、学习目标 1、了解定时基本概念; 2、熟悉可编程计数器/定时器8253的外部特性; 3、熟悉可编程计数器/定时器8253工作模式; 4、熟悉可编程计数器/定时器8253初始化。
9.2 可编程定时器/计数器8253 9.2.1 8253的基本功能 8253的基本功能如下: (1)片内含有3个独立的16位减法计数器 (或计数通道),分别称为计数器0通道、1 通道、2通道,每个计数器又分成两个8位计 数器。 (2)每个计算器有两种计数方式:二进制计 数或BCD码计数。 (3)计数频率为0-2.6MHz。 (4)每个计数器具有六种工作方式。 (5)可作计数器或定时器。
6种工作方式的比较 方式0 (门控单稳)和方式1 (门控单稳),这 两种方式的输出波形类似。 方式2 (分频器)和方式3 (方波发生器),这两 种方式共同的特点是具有自动重加载功能(装入初 值)。二者的区别在于:方式2在计数过程中输出 高电平,而在每当减1至0时输出宽度为1个TCLK的 负脉冲。方式3是在计数过程中,OUT的信号是占空 比为1:1的方波或近似方波。 方式4 (软件触发单脉冲)和方式5 (硬件触发单 脉冲)。这两种方式的OUT输出波形相同,两者的 区别是计数启动的触发信号不同,前者由写初值启 动计数,后者由GATE信号的上升沿启动计数)。
例1:使计数器T1工作在方式0 ,进行16位二 进制计数,计数初值的高低字节分别为 BYTEH和BYTEL。 (设8253的端口地址为304H~307H) 其初始化程序段为: MOV DX,307H ;命令口 MOV AL,01110000B ;方式字 OUT DX,AL MOV DX,305H ;T1数据口 MOV AL,BYTEL ;计数值低字节 OUT DX,AL MOV AL,BYTEH ;计数值高字节 OUT DX,AL
分频器
方式2说明:输出连续脉冲波 正常计数过程: 写入控制字后的时钟上沿输出OUT变高,写入 计数初值后,计数器开始减1计数,减到1时OUT 变成低电平,减到0时OUT又变成高电平,同时初 值自动重新装入,并重复前一过程; 门控信号的影响: 在计数器工作期间,当GATE变为低电平时终止计 数,而当GATE又恢复为高电平后,计数器重新装 入原计数初值并重新开始计数。 新的计数初值的影响: 如果工作期间对计数器写入新的计数初值: GATE一直为高电平:新的初值下次有效,则 写入新的初值后,遇到GATE上升沿,新的初值立 即有效
实现定时或延时的方法: (1)软件定时 例:MOV CX,1000 XXX:LOOP XXX (2)不可编程的硬件定时 例:用NE555集成块作定时控制的电路 (3)可编程的硬件定时 例:用8253芯片作定时控制的电路
软件定时、延时的优点:
节省硬件开销,使成本低。
软件定时、延时的缺点:
CPU的效率低,定时、延时时间不准。 硬件定时、延时的优点: CPU的效率高,定时、延时时间准确。 硬件定时、延时的缺点: 硬件开销大,使成本变高。
PC机中,计数器0通道用作时钟的基准时
间,计数器1通道用于动态存储器刷新的定时
ห้องสมุดไป่ตู้
中断,计数器2通道用于控制系统中扬声器发
声。
可编程:可通过程序指定或选择接口的工
作方式及工作参数。
通过对控制寄存器的设置,可以指定8253
的工作方式;通过对计数器寄存器的设置,可
以控制定时或延时的长短。
9.2.2 8253的内部结构及引脚功能
8253的内部结构由六部分组成,分别为
数据总线缓冲器、读/写控制逻辑、控制 字符存储器及三个独立的计数器。
1.数据总线缓冲器 往计数器设置计数初值; 从计数器读取计数值; 往控制寄存器设置控制字。 2.读/写逻辑电路 A1 A0:端口选择 0 0:通道0(0号计数器) 0 1:通道1(1号计数器) 1 0:通道2(2号计数器) 1 1:控制字寄存器
方式0——计数结束产生中断
方式0有如下3个特点: • 正常计数过程:写入控制字后的时钟上升沿OUT变低, 当向计数器写完计数初值后,开始减1计数,在计数 过程中输出端OUT一直保持低电平,当计数器减到0 时,OUT立即变成高电平。 • 门控信号的影响:门控信号GATE为高电平时,计数 器工作;当GATE为低电平时,计数器停止工作,其 计数值保持不变。如果门控信号GATE再次变高时, 计数器从中止处继续计数。 • 新的计数初值的影响:在计数器工作期间,如果重 新写入新的计数值,计数器将按新写入的计数初值 重新开始计数。
3.通道0、通道1、通道2 计数器0: CLK0——计数器0的时钟输入。 GATE0——计数器0的门脉冲控制输入。 OUT0——计数器0的输出。 计数器1: 计数器2: 定时系数(计数初值)n =定时时间t时钟频率fc =定时时间t/时钟脉冲周期Tc
编程结构
8253的引脚图
8253读写操作及端口的选择
例3:使计数器T0 工作在方式2 ,进行16位二 进制计数。 (设8253的端口地址为304H-307H) 其初始化程序段为 MOV DX,307H ;命令口 MOV AL,00110100B ;方式字 OUT DX,AL MOV DX,304H ;T0数据口 MOV AL,BYTEL ;低8位计数值 OUT DX,AL MOV AL,BYTEH ;高8位计数值 OUT DX,AL
9.2.3 8253的控制字格式
SC1 SC0 RW1 RW0 M2 M1 M0 BCD 1--计数值为BCD码格式 0--计数值为二进制格式
M2 M1 M0 模式选择 00--对计数器进行锁存 00--选计数器0
0
0 / / 1
0
0 1 1 0
0
1 0 1 0
模式0
模式1 模式2 模式3 模式4
硬件触发的选通信号发生器
• 方式5说明:输出单次单拍负脉冲(硬件触 发) 方式5与方式4的区别: 由GATE上升沿触发计数器数器。 • 方式5工作特点是开始工作。
– 1)在方式5工作方式下,当写入计数初值后,计 数器并不立即开始计数,而要由门控信号的上升 沿启动计数。 – 2)在计数过程中(或者计数结束后),如果门 控再次出现上升沿,计数器将从原装入的计数初 值重新计数。
软件触发的选通信号发生器
方式4说明:输出单次单拍负脉冲(软件触发) 正常计数过程: 写入控制字后的时钟上沿输出OUT变高,写入 计数初值后,计数器开始减1计数,减到0时OUT 变低1个时钟周期,然后又恢复成高电平。 门控信号的影响: 在计数器工作期间,GATE=1允许计数,GATE=0 禁止计数,输出OUT维持当时的电平,只有计数 减到0时OUT才变低1个时钟周期,然后又恢复成 高电平。 新的计数初值的影响: 任何时候对计数器写入新的计数初值,只要 GATE=1,就会立即终止现行的计数过程,而按新 写入的计数初值开始工作。
方波发生器
方式3 与方式2的不同之处: OUT输出的是方波。 • 说明:
– (1)工作在方式3 ,引脚OUT输出的不是一个时 钟周期的负脉冲,而是占空比为1:1或近似1:1 的方波;当计数初值为偶数时,输出在前一半的 计数过程中为高电平,在后一半的计数过程中为 低电平。(输出脉冲占空比为50%) – (2)由于方式3输出的波形是方波,并且具有自 动重装计数初值的功能,因此,8253一旦计数开 始,就会在输出端OUT输出连续不断的方波。
计数器和定时器的异同点
相同点: 计数器是设置好计数初值(定时常数)后,便 开始减1计数,减为“0”时,输出一个信号。 定时器是设置好定时初值(计数常数)后,便 开始减1计数,并按定时常数不断地输出为时钟周 期整数倍的定时间隔。 对内部来说,工作过程没有本质的差别,都是 基于计数器减“1”。 不同点: 计数时,在减到“0”后,输出一个信号便结束; 定时时,则不断产生信号,是一个反复过程。