(电气专业必看)8253定时器详细介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12-2 可编程定时器/计数器8253
12-2-1 8253的特点 3个独立的16位计数器通道 每个计数器有6种工作方式 按二进制或十进制(BCD码)计数 每个计数器都可由程序设置6种工作
方式
每个计数器计数速度可达2.6MHz 所有I/O都可与TTL兼容
8254是8253的改进型
;控制寄存器地址送DX ;计数器0,写低字节,
;写控制字寄存器 ;计数器0的地址送DX ;计数初始值为100 ;写入计数初始值 ;控制寄存器地址送DX ;计数器1,写高字节,
;写控制字寄存器 ;计数器1的地址送DX
MOV AL,40H 高8位即可
OUT DX,AL MOV DX,203H MOV AL,10110100B
MOV AX,2000 ;计数初始值送AX
MOV DX,202H ;计数器2地址202H送DX
OUT DX,AL ;写低8位
MOV AL,AH
OUT DX,AL ;写高8位
若计数器2工作在十进制计数方式,则应把2000H 送AX中。计数器2的初始化程序段可改为下列指 令序列:
MOV DX,203H MOV AL,10100101B OUT DX,AL MOV DX,202H MOV AL,20H OUT DX,AL
定时中断
M/IO A7~A0
I/O 译码
A2 A1
D7~D0
RD WR
+5V
CS
GATE0
8253 GATE1
A1
CLK0
A0
OUT0
D7~D0 CLK1
RD
OUT1
WR
2MHZ LED
初始化程序如下:
MOV AL,00110101B;计数器0控制字内容送AL,先 低后高,方式2,BCD计数
OUT计数器输出信号——当一次计数过 程结束(计数值减为0),OUT引脚上 将产生一个输出信号
2. 与处理器接口
D0 ~ D7数据线 RD*读信号 CS*片选信号
A0 ~ A1地址线 WR*写信号
CS* A1 A0 000 001 010 011
I/O地址 40H 41H 42H 43H
3 读取计数值
对8位数据线,读取16位计数值需分两次 计数在不断进行,应该将当前计数值先
行锁存,然后读取:
向控制字I/O地址:给8253写入锁存命令 从计数器I/O地址:读取锁存的计数值
读取计数值,要注意读写格式和计数数制
12-2-4 8253的工作方式
8253有6种工作方式,由方式控制字确定 熟悉每种工作方式的特点才能根据实际应用问
OUT DX,AL
;写控制字
MOV DX,201H
;计数器1地址201H送DX
MOV AL,20
;计数初始值送AX
续:
OUT DX,AL
;写低8位
MOV DX,203H
;控制字地址送DX
MOV AL,10110100B
;控制字内容送AL
OUT DX,AL ;写控制字
对8253芯片的初始化编程包括写入控制字和写 入计数值两方面,任一通道的控制字要从8253 的控制口地址写入,控制哪个通道由控制字的 D7D6位来决定。计数初始值经由各通道的端口 地址写入,可以采用二进制或十进制来计数。
1 方式控制字格式
D7 D6
计数器
D5 D4
读写格式
D3 D2 D1
工作方式
第 12 章 可编程定时器/计数器 接口芯片8253
第12章可编程定时器/计数器接口芯片8253
教学重点
8253的引脚和6种工作方式 8253的编程 8253在IBM PC系列机上的应用
12-1 定时器/计数器的工作原理
定时控制在微机系统中极为重要
定时器由数字电路中的计数电路构成, 通过记录高精度晶振脉冲信号的个数, 输出准确的时间间隔
初始化程序如下:
MOV DX,203H MOV AL,00011010B
方式5,二进制计数 OUT DX,AL MOV DX,200H MOV AL,100 OUT DX,AL MOV DX,203H MOV AL,01100011B
方式1,十进制计数 OUT DX,AL MOV DX,201H
选择二进制时
计数值范围:0000H~FFFFH 0000H是最大值,代表65536
选择十进制(BCD码)
计数值范围:0000~9999 0000代表最大值10000
计数值写入计数器各自的I/O地址
【例12.1】
在某系统中8253的CLK0~CLK2的时钟频率为 2MHz,端口地址为200H~203H。要求计数器 0工作在方式0下,十进制计数,定时100µs后 产生中断请求;计数器1工作在方式3下,二进 制计数,用于产生周期为10µs的对称方波;计 数器2工作在方式2下,二进制计数,每隔1ms 产生一个负脉冲。
CL减K法计数器的值不断递减,
OUT
而预置寄存器中的减预1计置数不器变。
GA输TE出锁存器用于写入锁存命令时, 锁定当前计数值
输出锁存器
计数器的3个引脚
CLK时钟输入信号——在计数过程中, 此引脚上每输入一个时钟信号(下降 沿),计数器的计数值减1
GATE门控输入信号——控制计数器工 作,可分成电平控制和上升沿控制两种 类型
读操作RD* 读计数器0 读计数器1 读计数器2
无操作
写操作WR* 写计数器0 写计数器1 写计数器2 写控制字
12-2-3 8253的初始化
1. 写控制字
8253在工作之前,必须对它进行编程,以确定 每个计数器的工作方式和对计数器赋计数初值。 CPU通过写控制字指令,将每个计数通道分别 初始化,使之工作在某种工作方式之下。
计数电路如果记录外设提供的具有一定 随机性的脉冲信号时,它主要反映脉冲 的个数(进而获知外设的某种状态), 常又称为计数器
定时功能的实现方法
软件延时——利用微处理器执行一个延 时程序段实现
不可编程的硬件定时——采用分频器、 单稳电路或简易定时电路控制定时时间
可编程的硬件定时——软件硬件相结合、 用可编程定时器芯片构成一个方便灵活 的定时电路
0
N0
N
1 0/N
N0 10
N N/2 0/N N/2 0
N N 01
01 N 01
计数开始的时刻
需要注意: 处理器写入8253的计数初值只是写入了预置
寄存器,之后到来的第一个CLK输入脉冲 (需先由低电平变高,再由高变低)才将预 置寄存器的初值送到减1计数器。 从第二个CLK信号的下降沿,计数器才真正 开始减1计数。
OUT DX,AL
;写控制字
MOV AX,0200H
;计数初始值送AX
MOV DX,200H
;计数器0地址200H送DX
OUT DX,AL
;写低8位
MOV AH,AL
OUT DX,AL
;写高8位
MOV DX,203H
;控制字地址送DX
MOV AL,01010110B ;控制字内容送AL
T/CCS — CS
OUT0 8253
D0~D7 1.19318MHz
+5V PB0 PB1
D0~D7
CLK0 CLK1 CLK2 GATE0 GATE1 GATE2
OUT1 OUT2
IRQ0 +5V
DQ
DRQ0
CLK 接至DMA控制器
DACK0 BRD 接至扬声器驱动器
3 8253应用实例
【例12.4】在8086系统中,8253的各端口地址为81H、 83H、85H和87H。现提供时钟频率为2MHZ,要求用 8253来控制—个LED发光二极管的点亮和熄灭,点亮 10秒钟后再让它熄灭10秒钟,并重复上述过程。
;再写高8位
2 8253与系统的连接
IBM PC/XT机使用一片Intel8253作为定 时/计数芯片。3个计数通道分别用于日 时钟计时、DRAM刷新定时和控制扬声 器发声。8253和系统的连接如下图所示。
2 8253与系统的连接
IOR — RD
IOW — WR A0 — A0 A1 — A1
示例
D0
数制
00 计数器000 计数器锁存命00令0 方式0 0 二进制 01 计数器101 只读写低字节001 方式1 1 十进制
11控10 制非计字法数写器2入1110控先只后制读读读字写写写I低高高/O字字字地节节节00111100址1001 方方方方(式式式式A32451A0=11)
2 写入计数值
题,选择正确的工作方式 每种工作方式的过程类似:
⑴ 设定工作方式 ⑵ 设定计数初值 〔 ⑶ 硬件启动 〕 ⑷ 计数初值进入减1计数器 ⑸ 每输入一个时钟计数器减1的计数过程 ⑹ 计数过程结束
方式0 计数结束中断
①
②④ ⑤ ⑥
方式0 4 WR
CLK GATE
OUT
4321 0
④
⑥⑤计②① 计数结束计数过程数值送入计数器设定计数初值设定工作方式
式1,二进制计数 OUT DX,AL MOV DX,202H MOV AX,600 OUT DX,AL MOV AL,AH
OUT DX,AL
;计数初始值为4000H,只写
;写入计数初始值 ;控制寄存器地址送DX ;计数器2,16位初始值,方
;写控制字寄存器 ;计数器2的地址送DX ;计数初始值为600 ;先写低8位
方式1 可编程单稳脉冲
①
②④ ⑤ ⑥
方式1 4 WR
CLK
GATE ③
OUT
4321 0
④ ⑥⑤计③②① 计数结束计数过程数值送入计数器硬件启动设定计数初值设定工作方式
方式2 频率发生器(分频器)
方式2 4 WR
CLK
GATE OUT
43210
43210
43210
43210
方式3 方波发生器
方式3 4 WR
分析:因为计数频率为2MHZ,计数器的最大计数值 为65536,所以最大的定时时间为0.5μs×65536= 32.768ms,达不到20秒的要求,因此需用两个计数器 级联来解决问题。
将2MHZ的时钟信号直接加在CLK0输入端,并让计数 器0工作在方式2,选择计数初始值为5000,则从 OUT0端可得到频率为2MHZ/5000=400HZ的脉冲,周 期为0.25ms。再将该信号连到CLK1输入端,并使计 数器1工作在方式3下,为了使OUT1输出周期为20秒 (频率为1/20=0.05HZ)的方波,应取时间常数N1= 400HZ/0.05=8000。硬件连接图如下图所示。
12-2-2 8253内部结构和引脚功能
D7~D0
数据总线 缓冲器
内
RD
部
WR
读写控制
A0
逻辑
数
A1
据
CS
总
控制字
寄存器
线
计数器0 计数器1 计数器2
CLK 0 GATE 0 OUT 0
CLK 1 GATE 1 OUT 1
CLK 2 GATE 2 OUT 2
计数器结构示意图
计数初值存于预置寄存器; 在计数过程中,预置寄存器
CLK
GATE OUT
43210
43210
43210
43210
方式4 软件触发选通信号
方式4 4
3
WR
CLK
GATE
OUT
4321 0
32
3 2 10
方式5 硬件触发选通信号
方式5 4
3
WR
CLK
GATE
OUT
43210
3 2 13 2 10
各种工作方式的输出波形
讨论: 计数开始的时刻
方式 0 方式 1 方式 2 方式 3 方式 4 方式 5
根据上述要求和已知条件,可知CLK的时钟周 期为0.5µs。则可计算出计数器0的初始值为 100µs/0源自文库5µs=200,计数器1的计数初始值为 10µs/0.5µs=20,计数器2的计数初始值为 1ms/0.5µs=2000。
初始化程序如下:
MOV DX,203H
;控制字地址送DX
MOV AL,00110001B ;控制字内容送AL
12-2-5 8253的应用
1. 8253的初始化
对8253的初始化也称为对8253的编程。 完成初始化后8253即开始自动按设置好 的工作方式工作。初始化程序包括两部 分,一是写各计数器的控制字,二是设 置计数初始值。
【例12.3】
假设8253的计数器0工作在方式5,按二进制计数,计 数初始值为100;计数器1工作在方式1下,BCD码计 数,计数初始值为4000;计数器2工作在方式2下,按 二进制计数,计数初始值为600。8253占用的端口地 址为200H到203H。
OUT 87H,AL ;写计数器0控制字
MOV AL,00H
;计数器初始值低8位
OUT 81H,AL
MOV AL,50H
;计数器初始值高8位
OUT 81H,AL