第11章 8253可编程定时计数器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
执行单元的内容减1。 当CE减1计数到0时,OUT输出变为高电平。用户可 以用OUT的输出发出中断请求信号。
11. 2 8253的编程控制字和工作方式
8253工作在方式0时的时序图
CLK G ATE (允许计数高电平) WR 写 CW 写计数值
O U T0 G ATE’
3
2
1 0
O U T ’0 ( 设 计 数 初 值 为 3)
实现定时和计数有两种方法:硬件定时和软件定时。
硬件定时,是利用专门的定时电路实现精确定时。这种定 时方式又可分为简单硬件定时和利用可编程接口芯片实现定 时。 8253是为微机配套设计开发的一个可编程定时计数器
11.1 概述
一、8253的结构框图
数据总线 D 7 -D 0
计数器 0 号 内 部
CLK0 G ATE 0 OUT0
OUT 43H,AL
MOV AL,40H
OUT 41H,AL ;送计数初值
11. 2 8253的编程控制字和工作方式
三、8253的读操作
有两种读计数值的方法:
(1)读之前先停止计数: 用GATE信号控制计数器先停止计数,再由软件将计数 值读出,读出顺序必须严格按控制字D5D4确定的格式进 行。
(2)读之前先送计数值锁存命令:
11. 2 8253的编程控制字和工作方式
二、工作方式 1、方式0 逐次减1,计数到0时发中断请求 当控制字写入控制寄存器后,OUT输出引脚立即变为 低电平。CPU向CR计数器写入计数初值后的第一个CLK 脉冲下降沿出现时,CR寄存器的内容被送入CE计数单元
内。随后的每个CLK脉冲的下跳沿出现时,都使CE计数
11. 2 8253的编程控制字和工作方式
一、8253的控制字
11. 2 8253的编程控制字和工作方式
(1)D0位:设定减1计数是按二进制还是二-十进制计数。 (2)D3~D1:设定工作方式,由这三位的编码决定本通道
工作于6种工作方式中的哪一种。
(3)D5~D4:设定计数值读/写格式。 (4)D7~D6:计数器通道选择。 8253进行初始化编程时, 要写入控制字和计数初值。在初始化时必须注意,对于每 个计数通道,必须先写控制字再写计数初值。
变为高电平。同时自动将计数初值送计数器继续进行下一 次的计数。
11. 2 8253的编程控制字和工作方式
8253工作在工作方式2的时序图
CLK WR G A TE 2 O UT2 高电平 1 3 2 1 3 2 1 CW LSB
自动重复计数 G A TE 2 ’ O U T 2’ 3 3 2 1 禁止计数
值为3,则初始化程序段为:
MOV OUT MOV
AL,058H 43H,AL AL,3
;设置控制字寄存器 ;送控制字 ;置计数初值
OUT
41H,AL
;送计数初值
11. 2 8253的编程控制字和工作方式
6、方式5:硬件触发脉冲 该方式下,对8253写入计数值后,计数器并不会立即
开始计数,而是必须等GATE上跳沿出现之后,才会在下
8 缓冲器
RD WR A0 A1
读 /写 逻辑 数 据 总 控制字寄 存器 线 计数器 2 号 计数器 1 号
CLK1 G ATE 1 OUT1 CLK2 G ATE 2 OUT2
CS
11.1 概述
(1)数据总线缓冲器
数据总线缓冲器是8253与CPU的接口,双向、三态、8位 的缓冲器。
(2)读/写控制逻辑
11. 2 8253的编程控制字和工作方式
2、方式1:可编程单脉冲输出 该方式下,写入命令字和计数初值后,计数器输出端 OUT为高电平,由门控信号的上升沿触发,使OUT变为 低电平,在下一个CLK时钟的下跳沿开始对随后到来的 CLK时钟进行计数,当减1计数至0时,OUT变为高电平。
即每个GATE信号的上升沿会触发OUT输出一个宽度
11.3 PC/XT机中8253的应用
2、计数器1:用于产生动态存储器刷新的地址更新信号
该计数器编程设定为工作方式2,计数初值18,CLK
引脚1.19318MHZ的脉冲,18/1.19318 MHZ=15.12μs, 因此每隔15.12μs在OUT引脚产生一个宽度为840ns的负 脉冲。 该信号经过触发器记忆后,作为8237A通道0的 DREQ0请求信号,用来控制对动态存储器的刷新。
3、方式2 :周期性时间间隔计时器(频率发生器) 当控制字写入控制字寄存器以后,OUT变为高电平初
始电平,当计数初值送入CR后的第一个CLK脉冲的下跳
沿,将CR内容送CE,并开始对以后的CLK脉冲进行减1 计数。计数值减1至1时,输出立即变为低电平。输出低电
平的宽度等于一个输入时钟周期时间。当减1到0时OUT
11.1 概述
二、8253的引脚
D0 D1 D2 数据线 D3 D4 D5 D6 D7 RD WR 控制线 A0 A1 CS Vcc 电源线
地
8 7 6 5 4 3 2 1 22 23 19 2 21 24 12
9 11 10
CLK0 G ATE 0 OUT0
计数器 0 号
G ATE 0 OUT0
3
2
2
2
1 0
11. 2 8253的编程控制字和工作方式
例:设8253计数器通道0工作于方式0,用8位二进制计数,其
计数值为50,二-十进制,则它的初始化程序段如下:
MOV AL,11H OUT 43H,AL MOV AL,50
;设置控制字 ;写入控制字寄存器 ;设置计数初值
OUT 40H,AL
;写入计数初值寄存器
为计数初值N个CLK周期间隔的负脉冲。 该方式可重复触发,只要有GATE信号的上升沿到来 就会重新触发计数器。
11. 2 8253的编程控制字和工作方式
8253工作在工作方式1的时序图
CLK WR G A TE OUT1 开始计数 G A TE ’ O U T 1’ 3 2 1 0 CW LSB
3
11.3 PC/XT机中8253的应用
3、计数器2:
产生扬声器的发音驱动信号,还可根据用户编程用于
一个CLK的下跳沿,将CR内容装入CE,并开始对随后的 CLK脉冲进行计数。
在计数期间,OUT引脚输出为高电平。当计数到0时,
OUT引脚输出一个CLK周期宽的负脉冲,然后又恢复为 高电平。
11. 2 8253的编程控制字和工作方式
8253工作在工作方式5的时序图
CLK WR CW LSB
G ATE5 O UT5
MOV AL,03H
OUT 40H,AL ;送计数值高字节
11. 2 8253的编程控制字和工作方式
4、方式3:方波发生器
该方式的工作过程与方式2很相似,门控的作用及自
动加载计数初值都一样,只是OUT引脚输出波形不同。该 方式在计数过程中输出一系列方波。
当计数初值N为偶数时,输出高、低电平持续时间相
;写入控制寄存器 ;读低8位
MOV BL,AL IN AL,42H ;读高8位
MOV BH,AL
11.3 PC/XT机中8253的应用
1、计数器0:用于产生0引脚输出方波,
计数初值为0,即最大值216=65536。由于输入时钟为 1.19318MHz的方波,因此在OUT0输出频率为
当信号为低电平有效时,选中该8253芯片 (3)控制字寄存器
控制字寄存器从数据总线上接收CPU送来的控制字,该控 制字可以进行通道的选择、工作方式的设定、计数初值格式 (BCD码或二进制)的设定以及计数初值的写入顺序等。 (4)计数器0、计数器1、计数器2
8253的三个计数通道.其结构完全相同,每个计数器由 CLK和GATE两个输入信号和OUT一个输出信号。
重新开始计数
11. 2 8253的编程控制字和工作方式
例:设8253计数器0工作于方式2,按二进制计数,计数初值 为0304H。
MOV AL,00110100B;设控制字,通道0,先读/写高8位
;再读写低8位,方式2,二进制。 OUT 43H,AL MOV AL,04H OUT 40H,AL ;送计数值低字节
2 不停计数
1
3
2
1
0
重新开始计数
11. 2 8253的编程控制字和工作方式
例:设计数器通道1工作于方式1,按二进制计数,计数初值
为40H,它的初始化程序段为:
MOV AL,62H OUT 43H,AL MOV AL,40H
;工作方式控制字
;送计数初值
OUT 41H,AL
11. 2 8253的编程控制字和工作方式
需要在读之前先发一个锁存命令,将当前计数器中的 内容锁存进一存储寄存器,得到一个不变的稳定量。然后
再发读命令,从该锁存器中将数据读出。
11. 2 8253的编程控制字和工作方式
【例】要读取通道3的计数值,则要执行的程序段为:
MOV AL,80H
OUT 43H,AL IN AL,42H
;通道3的锁存命令
11. 2 8253的编程控制字和工作方式
8253工作在工作方式4的时序图
C LK WR G A TE 4 O UT4 高电平 1 3 2 1 0 C LK 1 CW LSB
G A TE 4 ’ O U T 4’ 3
禁止计数
2
1
3
2
1
0
重新开始计数
11. 2 8253的编程控制字和工作方式
例:设8253计数器1工作于方式4,按二进制计数,计数初
等。当N为奇数时,输出高电平持续时间比低电平持续时 间多一个时钟周期。
11. 2 8253的编程控制字和工作方式
例:设8253计数器2工作在方式3,按二-十进制计数,计数 初值为4,则它的初始化程序段如下:
MOV AL,10010111B
;计数器2,只读/写低8位, ;工作方式3,二~十进制
OUT 43H,AL MOV AL,4
微型计算机原理与接口技术
主 编 何 超
中国水利水电出版社
第11章 8253可编程定时计数器
概述 8253的编程控制字和工作方式 PC/XT机中8253的应用
11.1 概述
微机系统,要管理和协调各部件的时序关系和相互配合,
使系统正常而有机地高速运转,必须有准确稳定的时间基准、
事件先后顺序的巧妙安排和精确控制以及精密可靠的定时计 数功能
15 14 13 CLK1 G ATE 1 OUT1 计数器 1 号
G ATE 1 OUT1 18 16 17
CLK2 G ATE 2 OUT2 计数器 2 号
G ATE 2 OUT2
11.1 概述
(1)数据总线D7~D0。三态、双向输入输出线。用于8253 与系统的数据总线间的数据传送。 (2)片选信号。输入,低电平有效。 (3)读信号、写信号。输入,低电平有效,必须先选中8253 (=0)时,才能对8253的内部寄存器进行读和写。 (4)时钟输入CLK。时钟信号的作用是在8253进行定时或计 数时每输入一个时钟信号,使计数器减1。 (5)门控信号GATE。输入引脚。该信号的作用是控制启动定 时或计数。 (6)输出引脚OUT。三个通道各有一个OUT引脚,是8253向 外部的输出信号。
1.19318M/65536=18.2HZ的方波。计数器的输出端OUT0
与8259A的IRQ0相连,所以每隔1/18.2秒,将在IRQ0产 生一个中断请求信号(即每隔55ms产生一次0级中断)。 这种周期性的中断,被BIOS用作工作日的计时时钟。由 于系统中0级中断的优先级最高,这就保证了系统时钟的 稳定性和可靠性。
11. 2 8253的编程控制字和工作方式
5、方式4:软件触发选通
该方式与方式0相似,当写入方式命令字后OUT引脚
变为高电平初始电平。当计数到0时,OUT引脚输出一个 CLK时钟周期宽的负脉冲,然后又恢复为高电平。 GATE=1时允许计数,GATE=0时停止计数。该方式 不能循环计数,每次启动计数都要靠重新写入计数初值。
开始计数 3 2 不停计数 1 0 1
G A T E 5’ O U T 5’ 3
2
1
3
2
1
0
重新开始计数
11. 2 8253的编程控制字和工作方式
例:设8253的通道1工作于方式5,按二进制计数,计数初
值为4000H,则它的初始化程序段为:
MOV AL,01101010B
;通道1,只读写高字节, ;方式5,二进制计数。
;控制字送控制字寄存器 ;送计数初值
OUT 42H,AL
11. 2 8253的编程控制字和工作方式
8253工作在工作方式3的时序图
C LK WR G A TE 3 O UT3 (N = 奇 数 ) O U T 3’ (N = 偶 数 ) 4 3 2 1 4 自动重复计数 3 2 1 高电平 1 5 4 3 2 1 5( 0) 4 3 CW LSB
11. 2 8253的编程控制字和工作方式
8253工作在方式0时的时序图
CLK G ATE (允许计数高电平) WR 写 CW 写计数值
O U T0 G ATE’
3
2
1 0
O U T ’0 ( 设 计 数 初 值 为 3)
实现定时和计数有两种方法:硬件定时和软件定时。
硬件定时,是利用专门的定时电路实现精确定时。这种定 时方式又可分为简单硬件定时和利用可编程接口芯片实现定 时。 8253是为微机配套设计开发的一个可编程定时计数器
11.1 概述
一、8253的结构框图
数据总线 D 7 -D 0
计数器 0 号 内 部
CLK0 G ATE 0 OUT0
OUT 43H,AL
MOV AL,40H
OUT 41H,AL ;送计数初值
11. 2 8253的编程控制字和工作方式
三、8253的读操作
有两种读计数值的方法:
(1)读之前先停止计数: 用GATE信号控制计数器先停止计数,再由软件将计数 值读出,读出顺序必须严格按控制字D5D4确定的格式进 行。
(2)读之前先送计数值锁存命令:
11. 2 8253的编程控制字和工作方式
二、工作方式 1、方式0 逐次减1,计数到0时发中断请求 当控制字写入控制寄存器后,OUT输出引脚立即变为 低电平。CPU向CR计数器写入计数初值后的第一个CLK 脉冲下降沿出现时,CR寄存器的内容被送入CE计数单元
内。随后的每个CLK脉冲的下跳沿出现时,都使CE计数
11. 2 8253的编程控制字和工作方式
一、8253的控制字
11. 2 8253的编程控制字和工作方式
(1)D0位:设定减1计数是按二进制还是二-十进制计数。 (2)D3~D1:设定工作方式,由这三位的编码决定本通道
工作于6种工作方式中的哪一种。
(3)D5~D4:设定计数值读/写格式。 (4)D7~D6:计数器通道选择。 8253进行初始化编程时, 要写入控制字和计数初值。在初始化时必须注意,对于每 个计数通道,必须先写控制字再写计数初值。
变为高电平。同时自动将计数初值送计数器继续进行下一 次的计数。
11. 2 8253的编程控制字和工作方式
8253工作在工作方式2的时序图
CLK WR G A TE 2 O UT2 高电平 1 3 2 1 3 2 1 CW LSB
自动重复计数 G A TE 2 ’ O U T 2’ 3 3 2 1 禁止计数
值为3,则初始化程序段为:
MOV OUT MOV
AL,058H 43H,AL AL,3
;设置控制字寄存器 ;送控制字 ;置计数初值
OUT
41H,AL
;送计数初值
11. 2 8253的编程控制字和工作方式
6、方式5:硬件触发脉冲 该方式下,对8253写入计数值后,计数器并不会立即
开始计数,而是必须等GATE上跳沿出现之后,才会在下
8 缓冲器
RD WR A0 A1
读 /写 逻辑 数 据 总 控制字寄 存器 线 计数器 2 号 计数器 1 号
CLK1 G ATE 1 OUT1 CLK2 G ATE 2 OUT2
CS
11.1 概述
(1)数据总线缓冲器
数据总线缓冲器是8253与CPU的接口,双向、三态、8位 的缓冲器。
(2)读/写控制逻辑
11. 2 8253的编程控制字和工作方式
2、方式1:可编程单脉冲输出 该方式下,写入命令字和计数初值后,计数器输出端 OUT为高电平,由门控信号的上升沿触发,使OUT变为 低电平,在下一个CLK时钟的下跳沿开始对随后到来的 CLK时钟进行计数,当减1计数至0时,OUT变为高电平。
即每个GATE信号的上升沿会触发OUT输出一个宽度
11.3 PC/XT机中8253的应用
2、计数器1:用于产生动态存储器刷新的地址更新信号
该计数器编程设定为工作方式2,计数初值18,CLK
引脚1.19318MHZ的脉冲,18/1.19318 MHZ=15.12μs, 因此每隔15.12μs在OUT引脚产生一个宽度为840ns的负 脉冲。 该信号经过触发器记忆后,作为8237A通道0的 DREQ0请求信号,用来控制对动态存储器的刷新。
3、方式2 :周期性时间间隔计时器(频率发生器) 当控制字写入控制字寄存器以后,OUT变为高电平初
始电平,当计数初值送入CR后的第一个CLK脉冲的下跳
沿,将CR内容送CE,并开始对以后的CLK脉冲进行减1 计数。计数值减1至1时,输出立即变为低电平。输出低电
平的宽度等于一个输入时钟周期时间。当减1到0时OUT
11.1 概述
二、8253的引脚
D0 D1 D2 数据线 D3 D4 D5 D6 D7 RD WR 控制线 A0 A1 CS Vcc 电源线
地
8 7 6 5 4 3 2 1 22 23 19 2 21 24 12
9 11 10
CLK0 G ATE 0 OUT0
计数器 0 号
G ATE 0 OUT0
3
2
2
2
1 0
11. 2 8253的编程控制字和工作方式
例:设8253计数器通道0工作于方式0,用8位二进制计数,其
计数值为50,二-十进制,则它的初始化程序段如下:
MOV AL,11H OUT 43H,AL MOV AL,50
;设置控制字 ;写入控制字寄存器 ;设置计数初值
OUT 40H,AL
;写入计数初值寄存器
为计数初值N个CLK周期间隔的负脉冲。 该方式可重复触发,只要有GATE信号的上升沿到来 就会重新触发计数器。
11. 2 8253的编程控制字和工作方式
8253工作在工作方式1的时序图
CLK WR G A TE OUT1 开始计数 G A TE ’ O U T 1’ 3 2 1 0 CW LSB
3
11.3 PC/XT机中8253的应用
3、计数器2:
产生扬声器的发音驱动信号,还可根据用户编程用于
一个CLK的下跳沿,将CR内容装入CE,并开始对随后的 CLK脉冲进行计数。
在计数期间,OUT引脚输出为高电平。当计数到0时,
OUT引脚输出一个CLK周期宽的负脉冲,然后又恢复为 高电平。
11. 2 8253的编程控制字和工作方式
8253工作在工作方式5的时序图
CLK WR CW LSB
G ATE5 O UT5
MOV AL,03H
OUT 40H,AL ;送计数值高字节
11. 2 8253的编程控制字和工作方式
4、方式3:方波发生器
该方式的工作过程与方式2很相似,门控的作用及自
动加载计数初值都一样,只是OUT引脚输出波形不同。该 方式在计数过程中输出一系列方波。
当计数初值N为偶数时,输出高、低电平持续时间相
;写入控制寄存器 ;读低8位
MOV BL,AL IN AL,42H ;读高8位
MOV BH,AL
11.3 PC/XT机中8253的应用
1、计数器0:用于产生0引脚输出方波,
计数初值为0,即最大值216=65536。由于输入时钟为 1.19318MHz的方波,因此在OUT0输出频率为
当信号为低电平有效时,选中该8253芯片 (3)控制字寄存器
控制字寄存器从数据总线上接收CPU送来的控制字,该控 制字可以进行通道的选择、工作方式的设定、计数初值格式 (BCD码或二进制)的设定以及计数初值的写入顺序等。 (4)计数器0、计数器1、计数器2
8253的三个计数通道.其结构完全相同,每个计数器由 CLK和GATE两个输入信号和OUT一个输出信号。
重新开始计数
11. 2 8253的编程控制字和工作方式
例:设8253计数器0工作于方式2,按二进制计数,计数初值 为0304H。
MOV AL,00110100B;设控制字,通道0,先读/写高8位
;再读写低8位,方式2,二进制。 OUT 43H,AL MOV AL,04H OUT 40H,AL ;送计数值低字节
2 不停计数
1
3
2
1
0
重新开始计数
11. 2 8253的编程控制字和工作方式
例:设计数器通道1工作于方式1,按二进制计数,计数初值
为40H,它的初始化程序段为:
MOV AL,62H OUT 43H,AL MOV AL,40H
;工作方式控制字
;送计数初值
OUT 41H,AL
11. 2 8253的编程控制字和工作方式
需要在读之前先发一个锁存命令,将当前计数器中的 内容锁存进一存储寄存器,得到一个不变的稳定量。然后
再发读命令,从该锁存器中将数据读出。
11. 2 8253的编程控制字和工作方式
【例】要读取通道3的计数值,则要执行的程序段为:
MOV AL,80H
OUT 43H,AL IN AL,42H
;通道3的锁存命令
11. 2 8253的编程控制字和工作方式
8253工作在工作方式4的时序图
C LK WR G A TE 4 O UT4 高电平 1 3 2 1 0 C LK 1 CW LSB
G A TE 4 ’ O U T 4’ 3
禁止计数
2
1
3
2
1
0
重新开始计数
11. 2 8253的编程控制字和工作方式
例:设8253计数器1工作于方式4,按二进制计数,计数初
等。当N为奇数时,输出高电平持续时间比低电平持续时 间多一个时钟周期。
11. 2 8253的编程控制字和工作方式
例:设8253计数器2工作在方式3,按二-十进制计数,计数 初值为4,则它的初始化程序段如下:
MOV AL,10010111B
;计数器2,只读/写低8位, ;工作方式3,二~十进制
OUT 43H,AL MOV AL,4
微型计算机原理与接口技术
主 编 何 超
中国水利水电出版社
第11章 8253可编程定时计数器
概述 8253的编程控制字和工作方式 PC/XT机中8253的应用
11.1 概述
微机系统,要管理和协调各部件的时序关系和相互配合,
使系统正常而有机地高速运转,必须有准确稳定的时间基准、
事件先后顺序的巧妙安排和精确控制以及精密可靠的定时计 数功能
15 14 13 CLK1 G ATE 1 OUT1 计数器 1 号
G ATE 1 OUT1 18 16 17
CLK2 G ATE 2 OUT2 计数器 2 号
G ATE 2 OUT2
11.1 概述
(1)数据总线D7~D0。三态、双向输入输出线。用于8253 与系统的数据总线间的数据传送。 (2)片选信号。输入,低电平有效。 (3)读信号、写信号。输入,低电平有效,必须先选中8253 (=0)时,才能对8253的内部寄存器进行读和写。 (4)时钟输入CLK。时钟信号的作用是在8253进行定时或计 数时每输入一个时钟信号,使计数器减1。 (5)门控信号GATE。输入引脚。该信号的作用是控制启动定 时或计数。 (6)输出引脚OUT。三个通道各有一个OUT引脚,是8253向 外部的输出信号。
1.19318M/65536=18.2HZ的方波。计数器的输出端OUT0
与8259A的IRQ0相连,所以每隔1/18.2秒,将在IRQ0产 生一个中断请求信号(即每隔55ms产生一次0级中断)。 这种周期性的中断,被BIOS用作工作日的计时时钟。由 于系统中0级中断的优先级最高,这就保证了系统时钟的 稳定性和可靠性。
11. 2 8253的编程控制字和工作方式
5、方式4:软件触发选通
该方式与方式0相似,当写入方式命令字后OUT引脚
变为高电平初始电平。当计数到0时,OUT引脚输出一个 CLK时钟周期宽的负脉冲,然后又恢复为高电平。 GATE=1时允许计数,GATE=0时停止计数。该方式 不能循环计数,每次启动计数都要靠重新写入计数初值。
开始计数 3 2 不停计数 1 0 1
G A T E 5’ O U T 5’ 3
2
1
3
2
1
0
重新开始计数
11. 2 8253的编程控制字和工作方式
例:设8253的通道1工作于方式5,按二进制计数,计数初
值为4000H,则它的初始化程序段为:
MOV AL,01101010B
;通道1,只读写高字节, ;方式5,二进制计数。
;控制字送控制字寄存器 ;送计数初值
OUT 42H,AL
11. 2 8253的编程控制字和工作方式
8253工作在工作方式3的时序图
C LK WR G A TE 3 O UT3 (N = 奇 数 ) O U T 3’ (N = 偶 数 ) 4 3 2 1 4 自动重复计数 3 2 1 高电平 1 5 4 3 2 1 5( 0) 4 3 CW LSB