第八章(2)定时器8253
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§8.3可编程计数/定时器8253
一、概述 二、Intel 8253 定时器/计数器的基本性能参数 三、8253 定时器/计数器的内部结构 四、8253的端口寻址及基本操作 五、8253 的控制字格式 六、8253 的工作方式
1
一、概述 1、定时与计数器的概念
定时器:在时钟信号作用下,进行定时的
减“1”计数,定时时间到(减“1”计数回零),从 输出端输出周期均匀、 频率恒定的脉冲信号。 由上述可知,定时器强调的是精确的时间。 定时举例: ①一天24小时的计时,称为日时钟。 ②在监测系统中,对被测点的定时取样。 ③在读键盘时,为去抖,一般延迟一段时间,再读。 ④在微机控制系统中,控制某工序定时启动。
20
CLK WR ① GATE OUT 4 3 2 1
n=4
0
②
GATE OUT WR GATE OUT
4 n=3 3 n=2 2
4
3
2
1
0
③
1
0
Fra Baidu bibliotek
2
1
0
21
8253的1方式时序波形
3.方式2:频率发生器 方式2是一种具有自动装入时间常数(计数初 值N) 的 N分频器。 特点:一次设置计数初值,计数器可自动重复进行 减“1”计数操作,减“1”计数到“1”,可从输出端输出 一负脉冲信号。 时序波形如下
13
锁存计数器当前计数值控制字
D7 SC1 D6 SC0 D5 RW1 D4 RW0 D3 M2 D2 M1 D1 M0 D0 BCD
未用
00 计数器锁存命令 00 选择计数器0 01选择计数器1 计数器选择 10 选择计数器2
14
4. 8253初始化的工作有两个内容: (1)一是向命令寄存器写入方式命令,以选择器 (3个计数器之一),确定工作方式(6种方式之 一),指定计数器计数初值的长度和装入顺序以及 计数值的码制(BCD或二进制码)。 (2)二是向已选定的计数器按方式命令的要求写入 计数初值。
10 只读/写高八位 01 只读/写低八位 11 先读/写低八位 再读/写高八位
12
关于的控制字说明:
1、8253只有一个工作方式控制字,但是对每个计数 器而言,它们的工作方式控制字内容一定各不相同 (前两位不同),所用各计数器的控制字需要分别设 置,先后不计。 2、8253的工作方式控制字的特殊形式可用于对计 数器的当前计数值进行锁存。 3、在工作方式控制字被设置之后,随后必须紧接着 给计数器预设置计数初值,计数器方可开始工作。
18
CLK ① WR OUT WR ② GATE OUT ③ WR OUT
n=5
5
n=5
4
3
2
1
0
5
n=9
4
4
n=4
4
3
2
1
0
9
8
4
3
2
1
0
8253的0方式时序波形
19
2. 1方式----低电平输出(GATE信号上升沿重新计数) 1方式为可编程的单稳态工作方式。 情况一: (1)写入计数初值后,计数器并不立即开始工作; (2)门控信号GATE有效,才开始工作,使输出OUT变成低电平; (3)直到计数器值减到零后,输出才变高电平。 情况二: 在计数器工作期间,当GATE又出现一个上升沿时,计数器 重新装入原计数初值并重新开始计数。 情况三: 如果工作期间对计数器写入新的计数初值,则要等到当前的 计数值计满回零且门控信号再次出现上升沿后,才按新写入的 计数初值开始工作。
32
2.按图连接电路,将计数器0、计数器1分 别设置为方式3,计数初值设为1000,请问 OUT1输出什么信号?频率是多少?。
33
3.若要采用一片8253产生近似为1Hz的方波,已 知时钟频率为2MHz,8253地址为350一 353H.试编写8253初始化程序,并说明通道引 脚的连接方法。 解:时钟频率为2MHz,要分频至1Hz,分频系数 为2×106。一个8253的计数器分频系数最大为 65536,所以必须用两个计数据串联起来工作。0计 数器分频系数定为200,1 计数器分频系数定为10 4,0 计数器输出的10000Hz波形作为1 计数器的时 钟信号,经1 计数器10 4分频后得到1Hz的波形。
22
①
CLK WE
GATE
n=3
n=5
OUT ② OUT
3 3
2 2
1 1
3 5
2 4
1 3
3 2
2 1
GATE
③ OUT 3 2 2 2 1 3 2 1
23
4. 方式3 ----周期性方波输出 方式3工作方式与方式2基本相同,也具有自动装入时间 常数(计数初值)的功能,不同之处在于: (1)工作在方式3 ,引脚OUT输出的不是一个时钟周期 的负脉冲,而是占空比为1:1或近似1:1的方波;当计 数初值为偶数时,输出在前一半的计数过程中为高电 平,在后一半的计数过程中为低电平。 (2)由于方式3输出的波形是方波,并且具有自动重装 计数初 值的功能,因此,8253一旦计数开始,就会在 输出端OUT输出连续不断的方波。
15
�例1:选择2号计数器,工作在3方式,计数初值为
533H(2个字节),采用二进制计数(设8253端口地 址为304~307H)。
�
MOV DX,307H MOV AL,10110110B OUT DX,AL MOV DX,306H MOV AX,533H OUT DX,AL MOV AL,AH OUT DX,AL
锁存后读出当前值
LSB
MSB
计数输出寄存器
CLK GATE &
减一计数器 初始值寄存器
(减1至0 时)
MSB
OUT
装入/读出初值
LSB
9
8253的端口寻址及基本操作
CS
0 0 0 0 0 0 0
RD
1 1 1 1 0 0 0
WR
0 0 0 0 1 1 1
A1
0 0 1 1 0 0 1
A0
0 1 0 1 0 1 0
2
计数器: 在时钟信号作用下,进行减“1”计数,计数次数到 (减"1"计数回零),从输出端输出一个脉冲信号。 计数举例: •①对零件和产品的计数; •②对大桥和高速公路上车流量的统计等等。 Intel8253在微机系统中可用作定时器和计数器。 定时时间与计数次数是由用户事 先设定。
3
2、 8253 定时与计数器与CPU的关系 8253 定时与计数操作过程与CPU相互独 立,并行操作。
31
解:8253定时/计数器的端口地址分别为30H~33H N0=TC/TR=5ms/1us=5000 N1=FR/FC=1MHZ/1KHZ=1000 MOV AL,00100001B(40H) OUT 33H,AL MOV AL,50H OUT 30H,AL MOV AL,01100111B(67H) OUT 33H,AL MOV AL,10H OUT 31H,AL
28
CLK WR
n=5 5
① GATE
OUT
4
3
2
1
0
② GATE
OUT
5
4
5
4
3
2
1 0
8253的5方式时序波形
29
8.2.5 8253应用举例 例8-10
30
练习: 1.假设8253定时/计数器的端口地址分别为30H~33H。 已知8253的时钟输入频率为1MHZ,现希望利用8253 的计数器0启动计数5ms后OUT输出高电平,计数器1 产生1KHz的连续方波信号。试编写完成该功能的程序 段。
传送方式
写入计数器0的初始值 写入计数器1的初始值 写入计数器2的初始值 写入控制寄存器控制字 读自计数器0的OL 读自计数器1的OL 读自计数器2的OL
10
四、计数器的3个引脚
� CLK时钟输入信号——在计数过程中,此引脚上
每输入一个时钟信号,计数器的计数值减1; � GATE门控输入信号——控制计数器工作,为1时 允许计数器工作,为0时禁止计数器工作; � OUT计数器输出信号——当一次计数过程结束 (计数值减为0),OUT引脚上将产生一个输出 信号。
;命令口 ;2号计数器的初始化命 令字 ;写入命令寄存器 ;2号计数器数据口 ;计数初值 ;选送低字节到2号计数器 ;取高字节送AL ;后送高字节到2号计数器
16
�例 2 :
8253 端口地址为 304 ~ 307H ,要求读出并检
查1号计数器的当前计数值是否是全 “1”(假定计数值 只有低8位),全1时暂停。
CLOCK WRn n=4 OUTPUT LOADn GATE OUTPUT 4 4 3 2 1 0 n=4 4 3 2 1 0
方式4:软件触发选通时序图
27
6. 方式5 ------单次负脉冲输出(硬件触发) 方式5工作特点是由GATE上升沿触发计数器开始工作。 ① 在方式5工作方式下,当写入计数初值后,计 数器并不立即开始计数,而要由门控信号的上升沿启 动计数。 ② 在计数过程中(或者计数结束后),如果门控再 次出现上升沿,计数器将从原装入的计数初值重新计 数。
5
三、8253 定时器/计数器的内部结构 1、内部结构(下页)
.内部逻辑结构 8253/8254内部有6个模块,其结构框图如 图所示。
6
8253 定时器/计数器的内部结构框图
CLK0 CPU
A1
8
数据总线缓冲器
计数器
0
GATE0 OUT0
A0 读/写逻辑 计数器 1
CLK1 GATE1 OUT1 CLK2 控制字寄存器 计数器 2 GATE2 OUT2
MOV DX,307H L :MOV AL,01000000B OUT DX,AL MOV DX,305H IN AL,DX CMP AL,0FFH JNE L HLT ;命令口 ;1号计数器的锁存命令 ;写入命令寄存器 ;1号计数器数据口 ;读1号计数器的当前计数值 ;比较 ;非全“1”,再读 ; 是全“1”,暂停
3、8253定时与计数结束时产生的脉冲信号可 用于对某一事件进行控制,也可作用为一外部 终端请求信号。
4
二、8253 定时器/计数器的基本性能参数
1、一片8253内部有3个16位的计数器(相互独立) 2、每个计数器的内部结构相同,可通过编程手段 设置为6种不同的工作方式来进行定时/计数 3、每个计数器再开始工作前必须预制时间常数 (时间初始) 4、每个计数器在工作过程中的当前计数值可被 CPU读出. (注:时间常数也可在计数过程中更改)
34
17
六、8253 的工作方式 8253芯片的每个计数器通道都有6种工作方式可供选 用。 1、方式0 “一次有效” 1)、计数器写完计数值时,开始计数,相应的 输出信号OUT就开始变成低电平。当计数器减到 零时,OUT立即输出高电平。 2)、门控信号GATE位高电平时,计数器工作; 为低电平时,计数器停止工作,计数只保持不变。 3)、在计数器工作期间,如果重新写入新的计数 值,计数器将按新写入的计数值重新工作。
CLK 8253 GATE OUT
11
五、8253 的控制字格式
D7 SC1 D6 SC0 D5 RW1 D4 RW0 D3 M2 D2 M1 D1 M0 D0 BCD
000 方式0
数制选择
工作方式
00 计数器锁存命令 101 方式5
…
读/写指示 00 选择计数器0 计数器选 择 01选择计数器1 10 选择计数器2
RD WR CS
内部总线
7
定时器/计数器的内部结构: ①数据总线缓冲器。 它是一个三态、双向8位寄存器,用于将8253 与系统数据总线D0~D7 相连。 ②读/写逻辑。 ③控制命令寄存器。它接受CPU送来的控制字。 ④计数器。 8253有3个独立的计数器(计数通道),其内 部结构完全相同.
8
8253 的内部的各计数器的结构
24
CLK ① WR OUT
②
n=4 2 n=5 3 2 3 2 2 2 2
WR OUT
8253的3方式时序波形
25
5. 方式4 -----单次负脉冲输出(软件触发) 方式4工作方式是一种由软件启动的计数方式, 即由写入计数初值来触发计数器开始工作。门控 信GATE为高电平时,允许计数器工作。
26
一、概述 二、Intel 8253 定时器/计数器的基本性能参数 三、8253 定时器/计数器的内部结构 四、8253的端口寻址及基本操作 五、8253 的控制字格式 六、8253 的工作方式
1
一、概述 1、定时与计数器的概念
定时器:在时钟信号作用下,进行定时的
减“1”计数,定时时间到(减“1”计数回零),从 输出端输出周期均匀、 频率恒定的脉冲信号。 由上述可知,定时器强调的是精确的时间。 定时举例: ①一天24小时的计时,称为日时钟。 ②在监测系统中,对被测点的定时取样。 ③在读键盘时,为去抖,一般延迟一段时间,再读。 ④在微机控制系统中,控制某工序定时启动。
20
CLK WR ① GATE OUT 4 3 2 1
n=4
0
②
GATE OUT WR GATE OUT
4 n=3 3 n=2 2
4
3
2
1
0
③
1
0
Fra Baidu bibliotek
2
1
0
21
8253的1方式时序波形
3.方式2:频率发生器 方式2是一种具有自动装入时间常数(计数初 值N) 的 N分频器。 特点:一次设置计数初值,计数器可自动重复进行 减“1”计数操作,减“1”计数到“1”,可从输出端输出 一负脉冲信号。 时序波形如下
13
锁存计数器当前计数值控制字
D7 SC1 D6 SC0 D5 RW1 D4 RW0 D3 M2 D2 M1 D1 M0 D0 BCD
未用
00 计数器锁存命令 00 选择计数器0 01选择计数器1 计数器选择 10 选择计数器2
14
4. 8253初始化的工作有两个内容: (1)一是向命令寄存器写入方式命令,以选择器 (3个计数器之一),确定工作方式(6种方式之 一),指定计数器计数初值的长度和装入顺序以及 计数值的码制(BCD或二进制码)。 (2)二是向已选定的计数器按方式命令的要求写入 计数初值。
10 只读/写高八位 01 只读/写低八位 11 先读/写低八位 再读/写高八位
12
关于的控制字说明:
1、8253只有一个工作方式控制字,但是对每个计数 器而言,它们的工作方式控制字内容一定各不相同 (前两位不同),所用各计数器的控制字需要分别设 置,先后不计。 2、8253的工作方式控制字的特殊形式可用于对计 数器的当前计数值进行锁存。 3、在工作方式控制字被设置之后,随后必须紧接着 给计数器预设置计数初值,计数器方可开始工作。
18
CLK ① WR OUT WR ② GATE OUT ③ WR OUT
n=5
5
n=5
4
3
2
1
0
5
n=9
4
4
n=4
4
3
2
1
0
9
8
4
3
2
1
0
8253的0方式时序波形
19
2. 1方式----低电平输出(GATE信号上升沿重新计数) 1方式为可编程的单稳态工作方式。 情况一: (1)写入计数初值后,计数器并不立即开始工作; (2)门控信号GATE有效,才开始工作,使输出OUT变成低电平; (3)直到计数器值减到零后,输出才变高电平。 情况二: 在计数器工作期间,当GATE又出现一个上升沿时,计数器 重新装入原计数初值并重新开始计数。 情况三: 如果工作期间对计数器写入新的计数初值,则要等到当前的 计数值计满回零且门控信号再次出现上升沿后,才按新写入的 计数初值开始工作。
32
2.按图连接电路,将计数器0、计数器1分 别设置为方式3,计数初值设为1000,请问 OUT1输出什么信号?频率是多少?。
33
3.若要采用一片8253产生近似为1Hz的方波,已 知时钟频率为2MHz,8253地址为350一 353H.试编写8253初始化程序,并说明通道引 脚的连接方法。 解:时钟频率为2MHz,要分频至1Hz,分频系数 为2×106。一个8253的计数器分频系数最大为 65536,所以必须用两个计数据串联起来工作。0计 数器分频系数定为200,1 计数器分频系数定为10 4,0 计数器输出的10000Hz波形作为1 计数器的时 钟信号,经1 计数器10 4分频后得到1Hz的波形。
22
①
CLK WE
GATE
n=3
n=5
OUT ② OUT
3 3
2 2
1 1
3 5
2 4
1 3
3 2
2 1
GATE
③ OUT 3 2 2 2 1 3 2 1
23
4. 方式3 ----周期性方波输出 方式3工作方式与方式2基本相同,也具有自动装入时间 常数(计数初值)的功能,不同之处在于: (1)工作在方式3 ,引脚OUT输出的不是一个时钟周期 的负脉冲,而是占空比为1:1或近似1:1的方波;当计 数初值为偶数时,输出在前一半的计数过程中为高电 平,在后一半的计数过程中为低电平。 (2)由于方式3输出的波形是方波,并且具有自动重装 计数初 值的功能,因此,8253一旦计数开始,就会在 输出端OUT输出连续不断的方波。
15
�例1:选择2号计数器,工作在3方式,计数初值为
533H(2个字节),采用二进制计数(设8253端口地 址为304~307H)。
�
MOV DX,307H MOV AL,10110110B OUT DX,AL MOV DX,306H MOV AX,533H OUT DX,AL MOV AL,AH OUT DX,AL
锁存后读出当前值
LSB
MSB
计数输出寄存器
CLK GATE &
减一计数器 初始值寄存器
(减1至0 时)
MSB
OUT
装入/读出初值
LSB
9
8253的端口寻址及基本操作
CS
0 0 0 0 0 0 0
RD
1 1 1 1 0 0 0
WR
0 0 0 0 1 1 1
A1
0 0 1 1 0 0 1
A0
0 1 0 1 0 1 0
2
计数器: 在时钟信号作用下,进行减“1”计数,计数次数到 (减"1"计数回零),从输出端输出一个脉冲信号。 计数举例: •①对零件和产品的计数; •②对大桥和高速公路上车流量的统计等等。 Intel8253在微机系统中可用作定时器和计数器。 定时时间与计数次数是由用户事 先设定。
3
2、 8253 定时与计数器与CPU的关系 8253 定时与计数操作过程与CPU相互独 立,并行操作。
31
解:8253定时/计数器的端口地址分别为30H~33H N0=TC/TR=5ms/1us=5000 N1=FR/FC=1MHZ/1KHZ=1000 MOV AL,00100001B(40H) OUT 33H,AL MOV AL,50H OUT 30H,AL MOV AL,01100111B(67H) OUT 33H,AL MOV AL,10H OUT 31H,AL
28
CLK WR
n=5 5
① GATE
OUT
4
3
2
1
0
② GATE
OUT
5
4
5
4
3
2
1 0
8253的5方式时序波形
29
8.2.5 8253应用举例 例8-10
30
练习: 1.假设8253定时/计数器的端口地址分别为30H~33H。 已知8253的时钟输入频率为1MHZ,现希望利用8253 的计数器0启动计数5ms后OUT输出高电平,计数器1 产生1KHz的连续方波信号。试编写完成该功能的程序 段。
传送方式
写入计数器0的初始值 写入计数器1的初始值 写入计数器2的初始值 写入控制寄存器控制字 读自计数器0的OL 读自计数器1的OL 读自计数器2的OL
10
四、计数器的3个引脚
� CLK时钟输入信号——在计数过程中,此引脚上
每输入一个时钟信号,计数器的计数值减1; � GATE门控输入信号——控制计数器工作,为1时 允许计数器工作,为0时禁止计数器工作; � OUT计数器输出信号——当一次计数过程结束 (计数值减为0),OUT引脚上将产生一个输出 信号。
;命令口 ;2号计数器的初始化命 令字 ;写入命令寄存器 ;2号计数器数据口 ;计数初值 ;选送低字节到2号计数器 ;取高字节送AL ;后送高字节到2号计数器
16
�例 2 :
8253 端口地址为 304 ~ 307H ,要求读出并检
查1号计数器的当前计数值是否是全 “1”(假定计数值 只有低8位),全1时暂停。
CLOCK WRn n=4 OUTPUT LOADn GATE OUTPUT 4 4 3 2 1 0 n=4 4 3 2 1 0
方式4:软件触发选通时序图
27
6. 方式5 ------单次负脉冲输出(硬件触发) 方式5工作特点是由GATE上升沿触发计数器开始工作。 ① 在方式5工作方式下,当写入计数初值后,计 数器并不立即开始计数,而要由门控信号的上升沿启 动计数。 ② 在计数过程中(或者计数结束后),如果门控再 次出现上升沿,计数器将从原装入的计数初值重新计 数。
5
三、8253 定时器/计数器的内部结构 1、内部结构(下页)
.内部逻辑结构 8253/8254内部有6个模块,其结构框图如 图所示。
6
8253 定时器/计数器的内部结构框图
CLK0 CPU
A1
8
数据总线缓冲器
计数器
0
GATE0 OUT0
A0 读/写逻辑 计数器 1
CLK1 GATE1 OUT1 CLK2 控制字寄存器 计数器 2 GATE2 OUT2
MOV DX,307H L :MOV AL,01000000B OUT DX,AL MOV DX,305H IN AL,DX CMP AL,0FFH JNE L HLT ;命令口 ;1号计数器的锁存命令 ;写入命令寄存器 ;1号计数器数据口 ;读1号计数器的当前计数值 ;比较 ;非全“1”,再读 ; 是全“1”,暂停
3、8253定时与计数结束时产生的脉冲信号可 用于对某一事件进行控制,也可作用为一外部 终端请求信号。
4
二、8253 定时器/计数器的基本性能参数
1、一片8253内部有3个16位的计数器(相互独立) 2、每个计数器的内部结构相同,可通过编程手段 设置为6种不同的工作方式来进行定时/计数 3、每个计数器再开始工作前必须预制时间常数 (时间初始) 4、每个计数器在工作过程中的当前计数值可被 CPU读出. (注:时间常数也可在计数过程中更改)
34
17
六、8253 的工作方式 8253芯片的每个计数器通道都有6种工作方式可供选 用。 1、方式0 “一次有效” 1)、计数器写完计数值时,开始计数,相应的 输出信号OUT就开始变成低电平。当计数器减到 零时,OUT立即输出高电平。 2)、门控信号GATE位高电平时,计数器工作; 为低电平时,计数器停止工作,计数只保持不变。 3)、在计数器工作期间,如果重新写入新的计数 值,计数器将按新写入的计数值重新工作。
CLK 8253 GATE OUT
11
五、8253 的控制字格式
D7 SC1 D6 SC0 D5 RW1 D4 RW0 D3 M2 D2 M1 D1 M0 D0 BCD
000 方式0
数制选择
工作方式
00 计数器锁存命令 101 方式5
…
读/写指示 00 选择计数器0 计数器选 择 01选择计数器1 10 选择计数器2
RD WR CS
内部总线
7
定时器/计数器的内部结构: ①数据总线缓冲器。 它是一个三态、双向8位寄存器,用于将8253 与系统数据总线D0~D7 相连。 ②读/写逻辑。 ③控制命令寄存器。它接受CPU送来的控制字。 ④计数器。 8253有3个独立的计数器(计数通道),其内 部结构完全相同.
8
8253 的内部的各计数器的结构
24
CLK ① WR OUT
②
n=4 2 n=5 3 2 3 2 2 2 2
WR OUT
8253的3方式时序波形
25
5. 方式4 -----单次负脉冲输出(软件触发) 方式4工作方式是一种由软件启动的计数方式, 即由写入计数初值来触发计数器开始工作。门控 信GATE为高电平时,允许计数器工作。
26