第八章 计数器定时器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上述接口芯片功能可由程序改变,称为可编程接口芯片。
第8章 计数器/定时器
8.1 计数器/定时器概述
微机应用系统的重要应用之一是如何用好定时/计数器。 即常常需要实时钟或延时或对外部事件计数。 实现定时或延时控制的常用方法: (1)软件延时:用一个不完成任何功能的程序段实现; (2)常用数字电路定时:555 (3)可编程硬件定时:8253,其定时值和定时范围可以通过 软件来确定和改变。 8253主要功能: ①以均匀分布的时间间隔中断操作系统,以便切换程序; ②向I/O设备输出精确的定时信号,信号的周期可由程序控制; ③用来作为可编程波特率发生器; ④检测外部事件发生的频率或周期; ⑤统计外部事件发生的次数,计数结果送至计算机; ⑥在定时或计数达到编程规定的值以后,向CPU申请中断。
2# 10#
最大216(0000H) 最小1 (0001H) 最大104(0000H) 最小1 (0001H)
③每个通道有6种工作方式,由控制 寄存器选择。
⑤控制字寄存器只能写不能读, 写入的控制字将控制通道的工作 方式。
⑥数据总线缓冲器用于与CPU间的 ④计数器归0时由OUT引脚输出信号。 信息通道。
可重复触发—— 当计数归零后,不用再次送计数值,只要给它触发脉冲,即可产生一个同 样宽度的单稳脉冲输出。
第8章 计数器/定时器 (3)方式2——分频器(频率发生器) ① 写入CW后OUT为高电平,写入 时间常数后,下一CLK开始计数,减 到1时OUT变低,经过一个CLK后 OUT变高,计数重新开始。 ② GATE=1计数进行,GATE=0计 数停止,且下一个CLK计数器重新赋 初值,GATE变为高电平,计数重新开 始。 ③ 计数期间送入新值,本周期继续 进行,下一个周期按新值计数操作。
第8章 计数器/定时器
8.2 8253内部结构
Intel 8253____ 三个通道 16位 可设置定时计数器, 可由软件设定6种工作方式。
第8章 计数器/定时器
①8253内部由三个独立通道组成,结 构与工作原理完全相同。 ②每个通道是16位计数器 可对外输入CLK进行二进制或十进 制( BCD)减1计数 是否计数由外引脚GATE控制。 CLK 已知频率的时钟信号 外部事件发生源 16位减法计数器
那么,在下一个脉冲开始计数器计数。 通过写入计数初值使计数器同步,称为~。
第8章 计数器/定时器 (4)方式3——方波发生器(连续)
WR CW N=4
① 写入CW后OUT变为高电平,输 CLK 入时间常数后,下一个时钟开始计数, 计到一半时输出变为低电平,计到终 GATE 值时重新变为高电平,并开始下一次 OUT 计数过程。
4 3 2 1 4 3 2 1 方式3时序图
计数过程由软件将计数初值装入通道来触发
第8章 计数器/定时器
(5)方式4——软件触发选通 ①写入CW后OUT为高电平,输入 时间常数后,下一个CLK开始计数, 计数器为0时,输出一个周期负脉冲, 并停止操作。 ②GATE=1允许计数,GATE=0禁 止计数。 ③计数期间送入新的时间常数,则 下一个时钟按新值重新计数。
WR CLK GATE OUT 3 2 1 0 FFFEFDFC 方式4时序图 CW N=3
(6)方式5——硬件触发选通 ① 写入CW后OUT为高电平,输入时 间常数后由GATE上升沿启动计数。计 数为0时输出一个时钟的负脉冲,并停 止操作。 ② 计数过程中,若GATE又来一个上 升沿,则下一个时钟计数器重新赋值 计数。 ③ 计数过程中写入时间常数,当前 周期不受影响,在下一个 GATE上升沿 启动新值计数。
第8章 计数器/定时器
8.4 8253的控制字
D7
SC1 SC0 RW1 RW0 M2 M1 M0 D0 BCD
控制字写入控制端口,各位含义如下:
SC1
0 0 1 1
RW1
SC0:计数器通道选择 0 通道0 1 通道1 0 通道2 1 非法
M2M1M0:计数器工作方式选择
0 0 1 1
RW0:计数器读写选择 0 计数器锁存 1 只读写低8位 0 只读写高8位 1 先读写低8位,再读写高8位
WR CLK OUT 4 3 2 1 0 FF 方式0时序图 CW N=4
⑤ 计数到零后,不能自动恢复计数 初值,OUT端保持高电平。
再次写入计数初值,才又开始计数。
第8章 计数器/定时器
例:若8253的地址为04H~07H,
要使计数器工作在方式0,仅用8 位二进制数,计数初值为128,初 始化程序为: MOV AL ,50H OUT 07H,AL MOV AL ,80H OUT 05H,AL
第8章 计数器/定时器
8.3 8253的引脚功能
1. D7~D0:数据总线,双向,三态, 直接与计算机数据总线相连。 2. CLK0~CLK2:计数时钟输入端, 下降沿使通道减1。 3. GATE0~GATE2:门控制,输入, 高电平有效或上升沿有效, 有效时允许计数器对输入时钟计数。 4. OUT0~OUT2:通道输出信号, 计数器到“0”时由此输出一信号, CS RD WR 输出波形形式取决于工作方式。 0 1 0 5. A1、A0:寻址3个通道的计数器 0 1 0 和控制寄存器(3个通道的控制寄 0 1 0 0 1 0 存器共用一个端口地址). 0 0 1 6. RD、WR和CS:8253的读、写 0 0 1 和片选信号,均为低电平有效。 0 0 1
输出端OUT进入初始状态。
② CPU向8253写入的计数初值,要在CLK端输入一个正脉冲 ( )后才能被真正装入指定通道(若在此CLK下降沿之前 读计数器,则其值是不定的)。 之后再次输入时钟脉冲(CLK)才开始计数,且每次在脉 冲的下降沿减1计数。 即:写入计数初值后,经过一个CLK,8253才开始计数。
D7 SC1 SC0 RW1 RW0 M2 M1 M0
D0 BCD
D7 1 0 0 1 0 0 0
D0 0
第8章 计数器/定时器 (2)方式1——可重复触发单稳触发器
WR CW N=3
①写入CW后OUT变为高电平, GATE CLK 上升沿触发后,OUT变为低并开始计数, GATE 归零时OUT变为高电平。
0 0 x x 1 1
0 0 1 1 0 0
0 1 0 1 0 1
方式0 方式1 方式2 方式3 方式4 方式5
BCD:计数器进制选择
0 1
16位二进制计数器 BCD码计数器
第8章 计数器/定时器
8253初始化: 对一个通道
先写入控制字 再写入时间常数(计数初值)
注: ① 写入控制字后,所有控制逻辑电路复位,
第八章 可编程计数器/定时器8253
8.1
8.2 8.3 8.4
概述
8253的内部结构 8253的引脚功能 8253的控制字
8.5
8.6
8253的工作方式
8253的应用举例
第8章 计数器/定时器
80X86系统常用接口芯片
(一)并行接口芯片 Intel 8255,有三个8位端口A,B,C Intel 8155,有三个端口,内带256字节RAM,两个定时器。 (二)串行接口芯片 Intel 8251,同步异步串行接口。 Intel 8250,异步串行接口芯片。 (三)计数定时器 Intel 8253/8254,三个通道16位定时计数器。 (四)直接存取控制器(DMAC) Intel 8237
WR CLK GATE OUT 3 2 1 0 FFFE 3 2 1 0 方式5时序图 CW N=3
第8章 计数器/定时器
8253有6种不同的工作方式。小结如下:
方式0 —— 写入CW后,输出即变低,计数结束输出为高,常用该输出信号 作为中断源。其余5种方式写入CW后,输出均变高。 方式0可用来实现定时或对外部事件进行计数。 方式1用来产生单脉冲。 方式2用来产生序列负脉冲,每个负脉冲的宽度与CLK的周期相同。 方式3用于产生连续的方波。方式2和方式3都实现对CLK的n分频。 方式4和方式5的波形相同,都是计数器归0后的1个负脉冲,宽度为1个CLK。
方式2、4、5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲。但方式 2是连续的,方式4是由软件(设置初值)触发启动,而方式5由硬件(门控脉冲) 触发启动。 方式1、5 触发计数方式相同,但输出波形不同。方式1为输出n个CLK脉冲周期 的负脉冲(计数过程中输出为低),而方式5输出的是宽度为1个CLK脉冲周期的 负脉冲(计数过程输出为高)。 任一种方式,只有在写入计数值后才能开始计数,方式0、2、3和4都是在写入 计数值后,计数过程就开始了,而方式1和5需要外部触发启动,才开始计数。
A1 A0
功
能
0 0 1 1 0 0 1
0 1 0 1 0 1 0
对计数器0设置计数初值 对计数器1设置计数初值 对计数器2设置计数初值 设置控制字 从计数器0读出计数值 从计数器1读出计数值 从计数器2读出计数值
第8章 计数器/定时器
8253与8086系统计算机连接
说明: 1.
8253
D7 ~ D0 IOR IOW A2 A1 +5V A15 A14 A13 A12 A11 A10 A9 +5V A8 A7 A6 A5 D7 ~ D0 RD WR A1 A0 CS
端口 A15~A8 A7A6A5 A4A3 A2A1 A0 地址 0 010 XX 0 1 1 0 040H 1 0 042H 0 044H 1 046H
通道0 通道1 0~ 0 通道2 控制口
4.
74LS30
百度文库
74LS04
74LS138 G1 G2A Y2 G2B C B A
8253的三个通道输入时钟由系统PCLK分频得到,频率为: 2.38636/2=1.1931816MHz. 5. 在IBM-PC/XT微机系统中,通道0定时OUT0接8259的IR0,通道1刷新动态 存储器,通道2控制扬声器发声.
② 若N为偶数,高低电平持续时间 相等;若为奇数,则高电平持续时间 为(N+1)/2,低电平持续时间为 (N-1)/2。 ③ GATE=1计数进行。在计数过程中 若GATE=0,计数停止且OUT为高, 计数器重新赋初值,GATE回到高时 计数重新开始。 ④ 计数期间送入新值,本周期继续进 行,下一个周期按新值计数。
WR CLK GATE OUT 3 2 1 32 1 3 2 1 方式2时序图 CW N=3
不用重复置数。计数器能够 连续工作,输出OUT是输入CLK 的n(初值)分频。
第8章 计数器/定时器
硬件同步:由前述②知,门控信号可实现计数器的同步,称为硬件同步 软件同步:计数器写入控制字和计数初值后,如GATE一直处于高电平,
②GATE再来一次上升沿使OUT为低, 计数器以初值重新计数。 ③计数过程中,再次给通道写入时间常 数,不影响现行操作过程,GATE再次 触发后才按新的时间常数操作。
OUT 3 2 1 0 FFFE 3 2 方式1时序图
④计数过程中,GATE触发沿提前到来, 在下一个CLK的下降沿,计数器开始重 新计数,这将使输出单稳脉冲比原先设 定的计数值加宽。
第8章 计数器/定时器
8.5 8253的工作方式
(1)方式0——计数结束产生中断 (2)方式1——可重复触发单稳触发器 (3)方式2——分频器(频率发生器) (4)方式3——方波发生器(连续)
(5)方式4——软件触发选通
(6)方式5——硬件触发选通
第8章 计数器/定时器
(1) 方式0——计数结束产生中断 ① 控制字(CW)写入后OUT即变 为低电平,当计数器为0时,输出 OUT变为高电平。 ② 计数初值写入后在下一个CLK下 降沿才送入计数器,因此计数值为 N+1。 ③ 当GATE变为低电平时计数停止, 再变为高电平时计数继续进行。 ④ 若计数过程中重新送入初值,则 按新值重新计数。
GATE0 GATE1 GATE2 OUT0 OUT1 OUT2 CLK0 CLK1 CLK2 PCLK
+5V PB0(8255) IRQ0(8259) 刷新电路 驱动器 PB1(8255) 74LS175 C Q D Q
8253的数据线D7~D0接8086的 数据总线的低8位。 2. 8253的A1和A0分别接系统的A2 和A1,使用偶地址传递信息。 3.由74LS138,74LS30和74LS04 译码选中8253。
第8章 计数器/定时器
8.1 计数器/定时器概述
微机应用系统的重要应用之一是如何用好定时/计数器。 即常常需要实时钟或延时或对外部事件计数。 实现定时或延时控制的常用方法: (1)软件延时:用一个不完成任何功能的程序段实现; (2)常用数字电路定时:555 (3)可编程硬件定时:8253,其定时值和定时范围可以通过 软件来确定和改变。 8253主要功能: ①以均匀分布的时间间隔中断操作系统,以便切换程序; ②向I/O设备输出精确的定时信号,信号的周期可由程序控制; ③用来作为可编程波特率发生器; ④检测外部事件发生的频率或周期; ⑤统计外部事件发生的次数,计数结果送至计算机; ⑥在定时或计数达到编程规定的值以后,向CPU申请中断。
2# 10#
最大216(0000H) 最小1 (0001H) 最大104(0000H) 最小1 (0001H)
③每个通道有6种工作方式,由控制 寄存器选择。
⑤控制字寄存器只能写不能读, 写入的控制字将控制通道的工作 方式。
⑥数据总线缓冲器用于与CPU间的 ④计数器归0时由OUT引脚输出信号。 信息通道。
可重复触发—— 当计数归零后,不用再次送计数值,只要给它触发脉冲,即可产生一个同 样宽度的单稳脉冲输出。
第8章 计数器/定时器 (3)方式2——分频器(频率发生器) ① 写入CW后OUT为高电平,写入 时间常数后,下一CLK开始计数,减 到1时OUT变低,经过一个CLK后 OUT变高,计数重新开始。 ② GATE=1计数进行,GATE=0计 数停止,且下一个CLK计数器重新赋 初值,GATE变为高电平,计数重新开 始。 ③ 计数期间送入新值,本周期继续 进行,下一个周期按新值计数操作。
第8章 计数器/定时器
8.2 8253内部结构
Intel 8253____ 三个通道 16位 可设置定时计数器, 可由软件设定6种工作方式。
第8章 计数器/定时器
①8253内部由三个独立通道组成,结 构与工作原理完全相同。 ②每个通道是16位计数器 可对外输入CLK进行二进制或十进 制( BCD)减1计数 是否计数由外引脚GATE控制。 CLK 已知频率的时钟信号 外部事件发生源 16位减法计数器
那么,在下一个脉冲开始计数器计数。 通过写入计数初值使计数器同步,称为~。
第8章 计数器/定时器 (4)方式3——方波发生器(连续)
WR CW N=4
① 写入CW后OUT变为高电平,输 CLK 入时间常数后,下一个时钟开始计数, 计到一半时输出变为低电平,计到终 GATE 值时重新变为高电平,并开始下一次 OUT 计数过程。
4 3 2 1 4 3 2 1 方式3时序图
计数过程由软件将计数初值装入通道来触发
第8章 计数器/定时器
(5)方式4——软件触发选通 ①写入CW后OUT为高电平,输入 时间常数后,下一个CLK开始计数, 计数器为0时,输出一个周期负脉冲, 并停止操作。 ②GATE=1允许计数,GATE=0禁 止计数。 ③计数期间送入新的时间常数,则 下一个时钟按新值重新计数。
WR CLK GATE OUT 3 2 1 0 FFFEFDFC 方式4时序图 CW N=3
(6)方式5——硬件触发选通 ① 写入CW后OUT为高电平,输入时 间常数后由GATE上升沿启动计数。计 数为0时输出一个时钟的负脉冲,并停 止操作。 ② 计数过程中,若GATE又来一个上 升沿,则下一个时钟计数器重新赋值 计数。 ③ 计数过程中写入时间常数,当前 周期不受影响,在下一个 GATE上升沿 启动新值计数。
第8章 计数器/定时器
8.4 8253的控制字
D7
SC1 SC0 RW1 RW0 M2 M1 M0 D0 BCD
控制字写入控制端口,各位含义如下:
SC1
0 0 1 1
RW1
SC0:计数器通道选择 0 通道0 1 通道1 0 通道2 1 非法
M2M1M0:计数器工作方式选择
0 0 1 1
RW0:计数器读写选择 0 计数器锁存 1 只读写低8位 0 只读写高8位 1 先读写低8位,再读写高8位
WR CLK OUT 4 3 2 1 0 FF 方式0时序图 CW N=4
⑤ 计数到零后,不能自动恢复计数 初值,OUT端保持高电平。
再次写入计数初值,才又开始计数。
第8章 计数器/定时器
例:若8253的地址为04H~07H,
要使计数器工作在方式0,仅用8 位二进制数,计数初值为128,初 始化程序为: MOV AL ,50H OUT 07H,AL MOV AL ,80H OUT 05H,AL
第8章 计数器/定时器
8.3 8253的引脚功能
1. D7~D0:数据总线,双向,三态, 直接与计算机数据总线相连。 2. CLK0~CLK2:计数时钟输入端, 下降沿使通道减1。 3. GATE0~GATE2:门控制,输入, 高电平有效或上升沿有效, 有效时允许计数器对输入时钟计数。 4. OUT0~OUT2:通道输出信号, 计数器到“0”时由此输出一信号, CS RD WR 输出波形形式取决于工作方式。 0 1 0 5. A1、A0:寻址3个通道的计数器 0 1 0 和控制寄存器(3个通道的控制寄 0 1 0 0 1 0 存器共用一个端口地址). 0 0 1 6. RD、WR和CS:8253的读、写 0 0 1 和片选信号,均为低电平有效。 0 0 1
输出端OUT进入初始状态。
② CPU向8253写入的计数初值,要在CLK端输入一个正脉冲 ( )后才能被真正装入指定通道(若在此CLK下降沿之前 读计数器,则其值是不定的)。 之后再次输入时钟脉冲(CLK)才开始计数,且每次在脉 冲的下降沿减1计数。 即:写入计数初值后,经过一个CLK,8253才开始计数。
D7 SC1 SC0 RW1 RW0 M2 M1 M0
D0 BCD
D7 1 0 0 1 0 0 0
D0 0
第8章 计数器/定时器 (2)方式1——可重复触发单稳触发器
WR CW N=3
①写入CW后OUT变为高电平, GATE CLK 上升沿触发后,OUT变为低并开始计数, GATE 归零时OUT变为高电平。
0 0 x x 1 1
0 0 1 1 0 0
0 1 0 1 0 1
方式0 方式1 方式2 方式3 方式4 方式5
BCD:计数器进制选择
0 1
16位二进制计数器 BCD码计数器
第8章 计数器/定时器
8253初始化: 对一个通道
先写入控制字 再写入时间常数(计数初值)
注: ① 写入控制字后,所有控制逻辑电路复位,
第八章 可编程计数器/定时器8253
8.1
8.2 8.3 8.4
概述
8253的内部结构 8253的引脚功能 8253的控制字
8.5
8.6
8253的工作方式
8253的应用举例
第8章 计数器/定时器
80X86系统常用接口芯片
(一)并行接口芯片 Intel 8255,有三个8位端口A,B,C Intel 8155,有三个端口,内带256字节RAM,两个定时器。 (二)串行接口芯片 Intel 8251,同步异步串行接口。 Intel 8250,异步串行接口芯片。 (三)计数定时器 Intel 8253/8254,三个通道16位定时计数器。 (四)直接存取控制器(DMAC) Intel 8237
WR CLK GATE OUT 3 2 1 0 FFFE 3 2 1 0 方式5时序图 CW N=3
第8章 计数器/定时器
8253有6种不同的工作方式。小结如下:
方式0 —— 写入CW后,输出即变低,计数结束输出为高,常用该输出信号 作为中断源。其余5种方式写入CW后,输出均变高。 方式0可用来实现定时或对外部事件进行计数。 方式1用来产生单脉冲。 方式2用来产生序列负脉冲,每个负脉冲的宽度与CLK的周期相同。 方式3用于产生连续的方波。方式2和方式3都实现对CLK的n分频。 方式4和方式5的波形相同,都是计数器归0后的1个负脉冲,宽度为1个CLK。
方式2、4、5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲。但方式 2是连续的,方式4是由软件(设置初值)触发启动,而方式5由硬件(门控脉冲) 触发启动。 方式1、5 触发计数方式相同,但输出波形不同。方式1为输出n个CLK脉冲周期 的负脉冲(计数过程中输出为低),而方式5输出的是宽度为1个CLK脉冲周期的 负脉冲(计数过程输出为高)。 任一种方式,只有在写入计数值后才能开始计数,方式0、2、3和4都是在写入 计数值后,计数过程就开始了,而方式1和5需要外部触发启动,才开始计数。
A1 A0
功
能
0 0 1 1 0 0 1
0 1 0 1 0 1 0
对计数器0设置计数初值 对计数器1设置计数初值 对计数器2设置计数初值 设置控制字 从计数器0读出计数值 从计数器1读出计数值 从计数器2读出计数值
第8章 计数器/定时器
8253与8086系统计算机连接
说明: 1.
8253
D7 ~ D0 IOR IOW A2 A1 +5V A15 A14 A13 A12 A11 A10 A9 +5V A8 A7 A6 A5 D7 ~ D0 RD WR A1 A0 CS
端口 A15~A8 A7A6A5 A4A3 A2A1 A0 地址 0 010 XX 0 1 1 0 040H 1 0 042H 0 044H 1 046H
通道0 通道1 0~ 0 通道2 控制口
4.
74LS30
百度文库
74LS04
74LS138 G1 G2A Y2 G2B C B A
8253的三个通道输入时钟由系统PCLK分频得到,频率为: 2.38636/2=1.1931816MHz. 5. 在IBM-PC/XT微机系统中,通道0定时OUT0接8259的IR0,通道1刷新动态 存储器,通道2控制扬声器发声.
② 若N为偶数,高低电平持续时间 相等;若为奇数,则高电平持续时间 为(N+1)/2,低电平持续时间为 (N-1)/2。 ③ GATE=1计数进行。在计数过程中 若GATE=0,计数停止且OUT为高, 计数器重新赋初值,GATE回到高时 计数重新开始。 ④ 计数期间送入新值,本周期继续进 行,下一个周期按新值计数。
WR CLK GATE OUT 3 2 1 32 1 3 2 1 方式2时序图 CW N=3
不用重复置数。计数器能够 连续工作,输出OUT是输入CLK 的n(初值)分频。
第8章 计数器/定时器
硬件同步:由前述②知,门控信号可实现计数器的同步,称为硬件同步 软件同步:计数器写入控制字和计数初值后,如GATE一直处于高电平,
②GATE再来一次上升沿使OUT为低, 计数器以初值重新计数。 ③计数过程中,再次给通道写入时间常 数,不影响现行操作过程,GATE再次 触发后才按新的时间常数操作。
OUT 3 2 1 0 FFFE 3 2 方式1时序图
④计数过程中,GATE触发沿提前到来, 在下一个CLK的下降沿,计数器开始重 新计数,这将使输出单稳脉冲比原先设 定的计数值加宽。
第8章 计数器/定时器
8.5 8253的工作方式
(1)方式0——计数结束产生中断 (2)方式1——可重复触发单稳触发器 (3)方式2——分频器(频率发生器) (4)方式3——方波发生器(连续)
(5)方式4——软件触发选通
(6)方式5——硬件触发选通
第8章 计数器/定时器
(1) 方式0——计数结束产生中断 ① 控制字(CW)写入后OUT即变 为低电平,当计数器为0时,输出 OUT变为高电平。 ② 计数初值写入后在下一个CLK下 降沿才送入计数器,因此计数值为 N+1。 ③ 当GATE变为低电平时计数停止, 再变为高电平时计数继续进行。 ④ 若计数过程中重新送入初值,则 按新值重新计数。
GATE0 GATE1 GATE2 OUT0 OUT1 OUT2 CLK0 CLK1 CLK2 PCLK
+5V PB0(8255) IRQ0(8259) 刷新电路 驱动器 PB1(8255) 74LS175 C Q D Q
8253的数据线D7~D0接8086的 数据总线的低8位。 2. 8253的A1和A0分别接系统的A2 和A1,使用偶地址传递信息。 3.由74LS138,74LS30和74LS04 译码选中8253。