第七章 Intel 8253定时器计数器 一、概述 1、定时与计数器的概念 定时器:在时

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并行操作。
3、8253定时与计数结束时产生的脉冲信号可用 于对某一事件进行控制,也可作用为一外部终 端请求信号。
二、Intel 8253 定时器/计数器的基本性能参数
1、一片8253内部有3个16位的计数器(相互独立) 2、每个计数器的内部结构相同,可通过编程手段设置为6种不 同的工作方式来进行定时/计数 3、每个计数器再开始工作前必须预制时间常数(时间初始) 4、每个计数器在工作过程中的当前计数值可被CPU读出.
D0~7

DQ
线
CPQ 状态=000
2P.C3L8K63632MHZ
控 制 器
S2 S1 S0
S2 S1 S0
向量指针 00:00
00:20H 00:23H

M
FEA5H 向 F000H

40:6CH 40:6EH
TIMER-LO 加1
TIMER-HI
存储器
TIMER-INT 时间值+1并保存 (中断程序)
时序波形如下
例3:使计数器T0 工作在2方式,进行16位二进制计数。 其初始 化程序段为
MOV
DX,307H
;命令口
MOV
AL,00110100B ;方式字
OUT
DX,AL
MOV MOV
DX,304H AL,BYTEL
;T2数据口 ;低8位计数值
OUT
DX,AL
MOV
AL,BYTEL
;高8位计数值
锁存计数器当前计数值控制字
D7
D6
D5
D4
D3
D2
D1
D0
SC1
SC0 RW1 RW0
M2
M1
M0 BCD
未用
计数器选 择
00 选择计数 器0
01选择计数 器1
10 选择计数 器2
00 计数器锁存命 令
4.计数初值
计数初值与输入时钟(CLK)频率及输出波形 (OUT)频率之间的关系为:
Ci=CLK/OUT
1分钟包含1092个计时单位,
1秒钟包含18.2个计时单位。
使用中断程序对计时时间单元进行加1累加,中断请求通 过8259的IR0引入。
为存放每次中断以后加1所得到的计数值,使用4个存储字 节,其对应双字变量分别为:
TIMER-LO(40H:6CH)

TIMER-HI (40H:6EH)。
3.设计
;1号计数器数据口
❖ IN AL,DX
;读1号计数器的当前计数值
❖ CMP AL,0FFH
;比较
❖ JNE L
;非全“1”,再读
❖ HLT
; 是全“1”,暂停
六、8253 的工作方式
8253/8254芯片的每个计数器通道都有6种 工作方式可供选用。
1、方式0 “一次有效” 1)、计数器写完计数值时,开始计数,相应的输出信
OUT
DX,AL
4. 3方式----周期性方波输出
3方式工作方式与2方式基本相同,也具有自动装入时间常数 (计数初值)的功能,不同之处在于: (1)工作在3方式,引脚OUT输出的不是一个时钟周期的负脉 冲 , 而是占空比为1:1或近似1:1的方波;当计数初值为偶 数时,输出在前一半的计数过程中为高电平,在后一半的计数 过程中为低电平。 (2)由于3方式输出的波形是方波,并且具有自动重装计数初 值的功能,因此,8253一旦计数开始,就会在输出端OUT输出 连续不断的方波。
543
0 21
WR n=5
② GATE
OUT
0 5 4 4 43 2 1

WR OUT
n=9
9
n=4
8
4
3
2
1
0
图3.4 8253的0方式时序波形
例1:使计数器T1工作在0方式,进行16位二进制计数,计 数初值的高低字节分别为BYTEH和BYTEL。其初始化程 序段如下:
MOV MOV OUT MOV MOV OUT MOV OUT
(2)门控信号GATE有效,才开始工作,使输出OUT变成低电平;
(3)直到计数器值减到零后,输出才变高电平。见图3.5中①。
情况二:
21组16
在计数器工作期间,当GATE又出现一个上升沿时,计数器
重新装入原计数初值并重新开始计数,见图见图3.5中②。 21组17
如果工作期间对计数器写入新的计数初值,则要等到当前的
CLK
① WR
OUT
n=4 2
2
2
2
② WR n=5
OUT
3
2
3
2
图3.7 8253的3方式时序波形
5. 4方式-----单次负脉冲输出(软件触发)
4方式工作方式是一种由软件启动的计数方式,
即由写入计数初值来触发计数器开始工作。门控信GATE
为高电PIN平时,允许计数器工作。
例4:使计数器T1工作方式4方式,进行8位二进制计数, 并
8253
CLK GATE OUT
四. 8253的端口寻址及基本操作
CS RD WR A1 A0
0
10
0
10
0
10
0
1
0
0
01
0
01
0
0
1
0
0
0
1
1
0பைடு நூலகம்
1
1
0
0
0
1
1
0
传送方式
写入计数器0的初始值 写入计数器1的初始值 写入计数器2的初始值 写入控制寄存器控制字
读自计数器0的OL 读自计数器1的OL 读自计数器2的OL
❖ OUT DX,AL
;后送高字节到2号

计数器
❖例2:要求读出并检查1号计数器的当前计数值是否是全“1”(假 定计数值只有低8位),其程序段为
❖ MOV DX,307H
;命令口
❖L :MOV AL,01000000B
;1号计数器的锁存命令
❖ OUT DX,AL
;写入命令寄存器
❖ MOV DX,305H
GATE0 OUT0
CLK1 GATE1 OUT1
CS
CLK2
控制字寄存器 内部总线
计数器 2
GATE2 OUT2
定时器/计数器的内部结构:
①数据总线缓冲器。它是一个三态、双向8位寄存器,用于 将8253与系统数据总线D0~D7 相连。 ②读/写逻辑。 ③控制命令寄存器。它接受CPU送来的控制字。 ④计数器。8253有3个独立的计数器(计数通道),其内部 结构完全相同,
其初始化程序段为
MOV DX,307H
;命令口
MOV AL,10010010B ;方式字
OUT DX,AL
MOV MOV
DX,306H AL,BYTEL
;T2数据口 ;低8位计数值
OUT DX,AL
3. 方式2:频率发生器
2方式是一种具有自动装入时间常数(计数初 值N) 的 N分频器。
特点:一次设置计数初值,计数器可自动重复进行 减“1”计数操作,减“1”计数回“0”,可从输出端 输出一负脉冲信号。
计数器:
在时钟信号作用下,进行减“1”计数,计数次数到 (减“1”计数回零),从输出端输出一个脉冲信号。
计数举例: •①对零件和产品的计数; •②对大桥和高速公路上车流量的统计,等等。
Intel8253在微机系统中可用作定时器和计数器。 定时时间与计数次数是由用户事 先设定。
2、 8253 定时与计数器与CPU的关系 8253 定时与计数操作过程与CPU相互独立,
一、计数器------日时钟
1.要求
设计一个计一天时间的日计时器------日时钟。
2.分析
利用8253工作在3方式下,其输出为一系列方波,这种方波 的周期是准确的,可以作为定时单位。比如,选用8253的计 数器0,让其工作在3方式,计数初值设置为最大值-----65536。 当输入时钟CLK0=1.1931816MHz,则输出方波的频率为

图3.10 日时钟运行原理示意图
(2)软件设计 开中断 有关寄存器进栈
五、8253 的控制字格式:
D7
D6
D5
D4
D3
D2
D1
D0
SC1
SC0 RW1 RW0
M2
M1
M0 BCD
计数器选 择
工作方式
00 计数器锁存命
读/写指

示 10 只读/写高八位
00 选择计数 器0
01 只读/写低八位
01选择计数 11 先读/写低八位
器1
再读/写高八位
10 选择计数 器2

000 方式0数制选择
即开始计数,而要由门控信号的上升沿启动计数。30组1
② 在计数过程中(或者计数结束后),如果门控再次出现上 升沿,计数器将从原装入的计数初值重新计数。30组2
CLK
WR n=5
① GATE
OUT
543210
② GATE
OUT
5 4 5 4 3 2 10
图3.9 8253的5方式时序波形
七. 8253-/8254-2的应用举例
号OUT就开始变成低电平。当计数器减到零时,OUT立即 输出高电平。 18组1
2)、门控信号GATE位高电平时,计数器工作;为低电 平时,计数器停止工作,计数只保持不变。
18组11
3)、在计数器工作期间,如果重新写入新的计数值,计数器
将按新写入的计数值重新工作。18组2
CLK n=5
① WR OUT
且只装入高8位计数值。其初始化程序段为:
MOV DX,307H
;命令口
MOV AL,00110100B ;方式字
OUT DX,AL
MOV DX,304H MOV AL,BYTEL
;T2数据口 ;低8位计数值
OUT DX,AL
6. 5方式------单次负脉冲输出(硬件触发)
5方式工作特点是由GATE上升沿触发计数器开始工作。 ① 在5方式工作方式下,当写入计数初值后,计数器并不立
(1)硬件设计
日时钟的硬件主要由定时/计数器8254和中断控制器 8259A构成,共工作原理框图如图3.10所示。该图还 画出了在日时钟运行时对内存RAM的使用情况。
8254
8259A
CPU
+5V GATOE0UT0
IRQ0 IR0 INT
INTR
中断号8
CLK0
T=54.9ms D0~7 INTA
第七章 Intel 8253定时器/计数器
一、概述 1、定时与计数器的概念
定时器:在时钟信号作用下,进行定时的
减“1”计数,定时时间到(减“1”计数回零), 从输出端输出周期均匀、 频率恒定的脉冲信号。
由上述可知,定时器强调的是精确的时间。
定时举例:
①一天24小时的计时,称为日时钟。 ②在监测系统中,对被测点的定时取样。 ③在读键盘时,为去抖,一般延迟一段时间,再读。 ④在微机控制系统中,控制某工序定时启动。
计数值计满回零且门控信号再次出现上升沿后,才按新写入的
计数初值开始工作,见图3.5所示③。21组1
CLK
WR ① GATE
OUT
n=4
43
0 21

GATE OUT
0
4
4321
WR ③
n=3
GATE
OUT
n=2 32 1 0
2 10
例2:使计数器T2 工作在1方式,进行8位二进制计数, 并设计 数 初值的低8位为BYTEL。
❖ MOV DX,307H
;命令口
❖ MOV AL,10110110B ;2号计数器的初始化

命 令字
❖ OUT DX,AL
;写入命令寄存器
❖ MOV DX,306H
;2号计数器数据口
❖ MOV AX,533H
;计数初值
❖ OUT DX,AL
;选送低字节到2号计

数器
❖ MOV AL,AH
;取高字节送AL

Tc=CLK/OUT
5. 8253初始化的工作有两个内容:
(1)一是向命令寄存器写入方式命令,以选择器 (3个计数器之一),确定工作方式(6种方式之 一),指定计数器计数初值的长度和装入顺序以及 计数值的码制(BCD或二进制码)。
(2)二是向已选定的计数器按方式命令的要求写 入计数初值。
❖例1:选择2号计数器,工作在3方式,计数初值为 533H(2个字节),采用二进制计数。其初始化程序 段为
DX,307H AL,01110000B DX,AL DX,305H AL,BYTEL DX,AL AL,BYTEH DX,AL
;命令口 ;方式字
;T1数据口 ;计数值低字节
;计数值高字节
2. 1方式----低电平输出(GATE信号上升沿重新计数)
1方式为可编程的单稳态工作方式。
情况一:
(1)写入计数初值后,计数器并不立即开始工作;
101 方式5
关于的控制字说明:
1、8253只有一个工作方式控制字,但是对每个计数器而言, 它们的工作方式控制字内容一定各不相同(前两位不同), 所用各计数器的控制字需要分别设置,先后不计。
2、8253的工作方式控制字的特殊形式可用于对计数器的 当前计数值进行锁存。
控制字
3、在工作方式控制字被设置之后,随后必须紧接着给计 数器预设置计数初值,计数器方可开始工作。
(注:时间常数也可在计数过程中更改)
三、8253 定时器/计数器的内部结构、
1、内部结构(下页)
.内部逻辑结构 8253/8254内部有6个模块,其结构框图如图 3.2所示。
8253 定时器/计数器的内部结构框图
CLK0
CPU 8 数据总线缓冲器
A0 A R1D
WR
读/写逻辑
计数器 0 计数器 1
fouto=1.1931816MHz/65536=18.2Hz
输出方波的周期为:
Touto=1/18.2×1000ms=54.945ms
1天24×60×60×1000ms/54.945ms=1573040(计时单位)。
若以十六进制表示,则为 01800B0H个计时单位(占用4
个存储单元)。
同理可得:1小时包含65543个计时单位,
相关文档
最新文档