第九章_计数器8253—PIT
第九章可编程计数器定时器8253及其应用(精)
一、计数/定时的工作原理
CLK是计数输入信号,计数器对CLK端出现的脉冲个数 进行计数 •CLK端可以输入外部事件 •CLK端可以接入固定频率的时钟信号,从而实现 计时 OUT信号在计数结束时发生变化 •可将OUT作为外部设备的控制信号 •可将OUT作为向CPU申请中断的信号
CPU可以从计数输出寄存器读出当前计数值。 读前,应向控制寄存器发送锁存命令
边界
写入初值
三、8253的编程命令
•初始化
1)写入控制字 2)按控制字要求写入计数初值
计数器初值计算:N=fCLK/fOUT
例:设三个计数器的CR/OL端口地址为70H、71H、72H,控制 寄存器端口地址73H。计数器0,工作模式2,CR/OL仅使用低8 位,初值为100,计数值使用二进制 MOV AL, 14H OUT 73H, AL MOV AL, 64H OUT 70H, AL
例如输入脉冲频率为2MHz,那么计数2106
计时1秒
因此,使用同一个芯片,既能计数,又能计时——计时器/计数器
一、计数/定时的工作原理
组成:
控制寄存器——决定工作模式 状态寄存器——反应工作状态 初值寄存器——计数的初值 计数输出寄存器——CPU从中 读当前计数值 计数器——执行计数操作, CPU不能访问
定时和计数器
对不同信号的计数 定时器
对时钟信号进行计数 周期性 对外部脉冲进行计数 周期性、非周期性
计数器
8253计数/定时器
可编程(工作方式/计数值) 三个独立的计数器通道 对初值进行减一计数 二进制/BCD计数初值 计数对象的最高频率为2MHz
第09章 计数器和定时器电路Intel 8253-8254-PIT
例4:使计数器T1工作于方式4,进行8位二进 制计数,并且只装入高8位计数值。 (设8253 的端口地址为304H~307H) 其初始化程序段为: MOV DX,307H ;命令口 MOV AL,00110100B ;方式字 OUT DX,AL MOV DX,304H ;T2数据口 MOV AL,BYTEL ;低8位计数值 OUT DX,AL
01--只读/写低8位字节
10--只读/写高8位字节 11--只读/写低8位字节, 再读/写高8位字节.
01--选计数器1
10--选计数器2 11--无意义
1
0
1
模式5
9.2.4 8253计数器的初始化 1.8253的初始化编程 对8253初始化的两种方法: (1)逐个计数器分别初始化
对三个计数/定时没有先后顺序规定,但对每个
例2:使计数器T2 工作在方式1 ,进行8位二 进制计数,并设计数初值的低8位为BYTEL。 (设8253的端口地址为304H~307H) 其初始化程序段为 MOV DX,307H ;命令口 MOV AL,10010010B ;方式字 OUT DX,AL MOV DX,306H ;T2数据口 MOV AL,BYTEL ;低8位计数值 OUT DX,AL
来说,都必须先写方式控制字,后设置计数初值,
且写计数初值时,必先写计数值的低8 位,再写计
数值的高8 位。 (2)先统一设置控制字,后统一设置计数初值 先设置所有计数/定时器的控制字(对各个计数 /定时器没有先后顺序),再设置各个计数/定时器
的计数初值(对各个计数/定时器没有先后顺序)。
2.8253读命令 8253的读命令只能用于读取计数器的当前 值,而控制字是不能读出的。读计数值有两种 方法:直接读出和锁存读出。 3 .计数器/定时器的工作特点 1)门脉冲控制时钟输入; 2)用门脉冲来重新启动计数; 3)用门脉冲停止计数; 4)单一计数; 5)循环计数。 计数初始值=时钟频率*T
微机第9章8253
0 0----选计数器0
0 1----选计数器1 1 0----选计数器2 1 1----无意义
写入控制口,地址A1A0=11
2、计数初值的写入
若规定只写低8位,则写入的为计数值的低8位, 高8位自动置0; 若规定只写高8位,则写入的为计数值的高8位, 低8位自动置0; 若是16位计数值,则分两次写入,先写低8位, 再写入高8位。
计数值写入计数器各自的 计数通道(端口地址)
注: ① 写入控制字后,所有控制逻辑电路复位, 输出端OUT进入初始状态。 ② CPU向8253写入的计数初值,要在CLK端输入一个 正脉冲后才能被真正装入指定通道(若在此CLK下降 沿之前读计数器,则其值是不定的)。 之后再次输入时钟脉冲(CLK)才开始计数,且每次 在脉冲的下降沿减1计数。 即:写入计数初值后,经过一个CLK,8253才开始计 数。
④ 当GATE变为低电平时计数 停止,再变为高电平时计数继 续进行。 ⑤若计数过程中重新送入初值, 则按新值重新计数。
(2)方式1——可重复触发单稳触发器
WR CLK GATE OUT 3 2 1 0 FFFE 3 2 方式1时序图 CW N=3
③计数过程中,再次给通道写入时间 ①写入CW后OUT变为高电平, GATE 常数,不影响现行操作过程,GATE再 上升沿触发后,OUT变为低并开始计数, 次触发后才按新的时间常数操作。 归零时OUT变为高电平。 ④计数过程中,GATE触发沿提前到来, ②GATE再来一次上升沿使OUT为低, 在下一个CLK的下降沿,计数器开始重 新计数,这将使输出单稳脉冲比原先 计数器以初值重新计数。 设定的计数值加宽。 可重复触发——当计数归零后,不用再次送计数值,只要给它触发脉冲,即 可产生一个同样宽度的单稳脉冲输出。
《微机原理与接口技术》第九章8253
二、8253的内部结构
数据总线 缓冲器 读/写控 制电路 计数通道
通道控制 寄存器
三、 8253的管脚分配
控制线
数据线 通道选择
通道管脚
四、 8253的编程
8253只有一个控制字,8253的一个方式 控制字只决定一个计数通道的工作模式。 8253 的控制字格式如图所示。共分为 4 部 分,通道选择、计数器读 / 写方式、工作 方式和计数码的选择。
第9章 可编程接口芯片
可编程接口概术 可编程定时/计数器接口芯片8253
可编程接口概术
一个简单的具有输入功能和输出功能的 可编程接口电路如下图,它包括一个输入接口, 其组成主要是八位的三态门;一个输出接口, 其组成主要是八位的锁存器;另外还有八位的 多路转换开关及控制这个开关的寄存器FF。
9. 1 可编程定时/计数器接口芯片8253 一、功能
定时和脉冲信号的处理与接口是完全有别于 并行信号的,其特点是信号形式简单但需要连 续检测,下面介绍的INTEL8253可编程定时/ 计数器就是可以实现所要求这方面功能。8253 内部有3个独立的16位定时/计数器通道。计 数器可按照二进制或十进制计数,计数和定时 范围可在1—65535之间改变,每个通道有6种 工作方式,计数频率可高达2MHz以上。
4、方式3——方波发生器 方式2虽然可以作分频电路,但其输出 是窄脉冲,如果是方波,就只有选方式3
5、方式4——软件触发方式 方式4在工作过程中有以下特点:
a、 门控信号GATE为高电平,计数器开始减 1计数,OUT维持高电平; b、 当计数器减到0,输出端OUT变低,再经 过一个 CLK 输入时钟周期, OUT 输出又变 高。
解:1、电路。 需要两个通道,一个作为计数,选用通道0。另一 个产生1KHz信号,选用通道1。工作原理如下,传感 器电路把物理事件转换为脉冲信号输入到通道0计数, 当记录10000个事件后,通道0计数器溢出,GATE端输 出高电平,这时通道1开始工作,产生1KHz信号推动喇 叭发音。
第9章 计数器/定时器8253
WR
CW
N=3
CLK
8253方式1 三种情况时序波形:
GATE OUT 3 WR CW N=3 2 1 0
CLK GATE OUT 3 WR CW N=2 2 3 2 1 0
N=3
CLK GATE OUT 2 1 0 0 3 2
3.方式2(周期脉冲发生器)
• 可产生周期性的负脉冲信号,负脉冲宽度为一个时钟周期。 • 写入控制字后,OUT端变为高电平,若GATE为高电平,当写 入计数初值后,在下一个CLK的下降沿将计数初值寄存器内 容装入减1计数寄存器,并开始减1计数。当减1计数寄存器 的值为1时,OUT端输出低电平;减1计数寄存器回0时OUT端 输出高电平,并开始一个新的计数过程。 • 在减1计数寄存器未减到1时,GATE信号由高变低,则停止计 数。但当GATE由低变高时,则重新将计数初值寄存器内容装 入减1计数寄存器,并重新开始计数。 • GATE信号保持高电平,但在计数过程中重新写入计数初值, 则当正在计数的一轮结束并输出一个CLK周期的负脉冲后, 将以新的初值进行计数。
9 可编程计数器/定时器8253
一.定时与计数问题的提出 在微机系统或智能化仪器仪表的工作过程中,经常需 要使系统处于定时工作状态,或者对外部过程进行计数。 定时或计数的工作实质均体现为对脉冲信号的计数,如果 计数的对象是标准的内部时钟信号,由于其周期恒定,故 计数值就恒定地对应于一定的时间,这一过程即为定时, 如果计数的对象是与外部过程相对应的脉冲信号(周期可 以不相等),则此时即为计数。 在控制系统与测量系统中,定时与计数老师不可缺少 的,如定时中断、定时检测、定时扫描、电子测量中的计 数、分频等。常用的定时或延时控制,有三种主要方法: 软件定时、不可编程的硬件定时,可编程的硬件定时计数 器。
第九章_计数(定时)器8253
左旭坤(zxk78@)
1.方式0 (计数结束产生中断)
(1)输出信号OUT的波形: 初始状态为高电平;写入控制字后变为低电平;计数初值减为0时变为高电平 (2)启动计数的条件: 写入计数初值后自动开始 (3)门控信号GATE的功能: GATE为低电平时暂停计数(OUT保持输出低电平);GATE变回高电平时继 续计数 (4)计数初值的设置(更改): 如果在计数过程中修改计数值,则写入新计数值的第一个字节时使原先的计 左旭坤(zxk78@) 数停止。写入第二个字节后,开始以新写入的计OV OUT
AL.3BH 43H.AL ;写计数器0控制字
MOV
OUT MOV OUT MOV
AL.50H
40H.AL AL.28H 40H.AL AL.56H
;写计数器0初值
;写计数器1控制字
OUT
MOV OUT
43H,AL
AL.64H 41H.AL
左旭坤(zxk78@)
;写计数器1初值
【例9-2】 按乐谱编写乐曲程序
功能:让计算机按乐谱演奏
左旭坤(zxk78@)
计算机发声原理
8255的PB口地址: 61H
8253的控制口地址: 43H
8253的定时器2地址: 42H
原理:
8255的PB口工作在方式0输出;8253的定时器2工作在方式3 由8255的PB0和PB1控制定时器2启动和扬声器启动 即:PB0=1:定时器2启动; PB1=1:扬声器启动
课后思考: 按照以上四点, 对各组的两种工作方式 进行比较。
左旭坤(zxk78@)
9.3 8253的控制字
8253在使用前要写入控制字,用来规定其工作方式。 3个通道中各有一个控制字寄存器,它们使用同一个口地 址,靠控制字中的D7,D6 2位的编码加以区别。 控制字格式如下 :
第9章_3 可编程定时计数器8253
OUT
2
1)写入计数值开始计数。周期性计数。 2)N=偶数,正负半周=N/2,N=奇数,正半周=(N+1)/2,负半周=(N-1)/2。 3)计数过程中GATE=0,暂停计数,GATE=1重新计数。 4)计数过程中改变计数值,下一周期按新的计数值计数
9.4 可编程的定时/计数器8253/8254 方式4——软件触发选通
9.4 可编程的定时/计数器8253/8254 8253的引线及内部结构:
D0~D7
CLK0
数据 总线 缓冲
计数器 #0 (CNT0) 计数器 #1 (CNT0) 计数器 #2 (CNT0)Biblioteka GATE0OUT0 CLK1
D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0 GATE0 GND
9.4 可编程的定时/计数器8253/8254 方式5——硬件触发选通
WR GATE 启动计数 CLK CW=16 N=3
OUT
3 GATE OUT 3 2 3
3
2
1
0
0
GATE重复 启动计数
3
2
1
0
GATE
WR 计数中改 变计数值 OUT
CW=16
N=4
N=2 4 3 2 1 0 2 1
GATE
控制字 寄存器
•三个16位计数口: #0:CLK0、OUT0、GATE0 #1:CLK1、OUT1、GATE1 #2:CLK2、OUT2、GATE2
9.4 可编程的定时/计数器8253/8254 8253的口地址及操作:
•片内地址:A0,A1 •片选:CS •数据总线:D0~D7 •读/写信号: RD
D0 ;初始化通道0 D7 ;计数值100
wjyl-9
计数器的3个引脚说明:
(1)CLK时钟输入信号
在计数过程中,此引脚上每输入一个时钟信号(下降沿), 计数器的计数值减1
(2) GATE门控输入信号
控制计数器工作,可分成电平控制和上升沿控制两种类型
(3) OUT计数器输出信号
当一次计数过程结束(计数值减为0),OUT引脚上将产生 一个输出信号
微机原理及应用——第9章 计数器和定时器电路 Intel 8253/8254-PIT
15
微机原理及应用——第9章 计数器和定时器电路 Intel 8253/8254-PIT
16
2、8253的编程
写入命令 设置控制字命令 控制端口 设置初始值 计数器端口
读出命令 设置锁存命令 控制端口(用于配合读出命令) 读取计数器当前的值。
4
9.1 概述
1、主要功能:
1、一片8253上有3个独立的16位计数器通道,可作为 定时器或计数器使用; 2、每个计数器都可设定为按照二进制或二进制编码的 十进制(BCD)计数 ; 3、每个通道有6种工作方式,可由程序设置和改变 。
微机原理及应用——第9章 计数器和定时器电路 Intel 8253/8254-PIT
微机原理及应用——第9章 计数器和定时器电路 Intel 8253/8254-PIT
20
初始化程序: MOV
OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT
AL, 43H, AL, 40H, AL, 43H, AL, 41H, AL, 43H, AX, 42H, AL, 42H,
微机原理及应用——第9章 计数器和定时器电路 Intel 8253/8254-PIT
第9章计数器定时器8253
编程原则: ① 设置初值前必须先写控制字; ② 初值设置要符合控制字中的格式规定; ③ 要读取计数器的当前值和状态字,必须用
控制字先锁定,才能读取。
9.4 8253/8254的编程命令
编程命令有两类:
① 读出命令; 读计数器计数值 读状态寄存器值(只对8254)
MOV BH, AL
;BX中为计数器0的当前计数值
思考题
• 1 设8253端口地址为200H~203H,使用计数器1, 工作于方式3(方波发生器),二进制计数,计数 初值为3000H,请编写初始化程序。
;方法1,16位计数,先写低8位,后写高8位。根据题目写出 控制字为01110110B(76H)。 MOV DX,203H ;8253控制寄存器 MOV AL,76H ;二进制计数、方式3、先写低8 位、后 写高8位、计数器1 OUT DX,AL ;控制字写入控制字寄存器 MOV DX,201H ;计数器1 MOV AL,00H ;计数初值低8位 OUT DX, AL ;计数初值低8位写入计数器1 MOV AL,30H ;计数初值高8位 OUT DX, AL ;计数初值高8位写入计数器1
9.5 8253/8254的工作模式
有6种工作模式,都遵守的基本规则:
① 控制字写入时,进入初始状态; ② 初值写入后,要经过上升沿和一个下降沿,计数执行部
件才开始计数; ③ 在CLK的上升沿,GATE被采样,对于一给定的工作模
式,GATE的触发方式有具体规定; ④ 在CLK下降沿,计数器作减1计数;
器将按新的初值重新计数。 • OUT端输出是一个约(N+1)TCLK宽度的负脉冲。
(2) 模式1—— 可编程的单稳态触发器
性质:
• 写入控制字,OUT端为高电平,计数初值装入该 计数器后,在GATE信号的上升沿后的下一个CLK 脉冲的下降沿开始计数,OUT变为低电平。在整 个计数过程中,OUT保持低电平,当计数器减为0 时,OUT变为高电平,输出一个单脉冲,若GATE 信号再由低变高,可再产生一个单脉冲,相当一 个单稳态。
第9章 8253芯片介绍
3.可编程的定时 在微机系统中,常采用软件、硬件相 结合的方法,用可编程定时计数器芯片构 成一个方便灵活的定时计数电路。这种电 路不仅定时值和定时范围可用程序确定和 改变,而且具有多种工作方式,可以输出 多种控制信号,它由微处理器的时钟信号 提供时间基准,故计时也精确稳定。如 Intel 8253。
2. 方式1 —— 可编程的单稳态触发器 (Programmable One Short)
硬件启动,不自动重复计数。装入初值后OUT端变高电平, 计数开始OUT端变为低电平,计数结束后又变高。
方式1的工作波形如图9.5(a)、 (b)、(c)所示。
CW = 12 WR
LSB = 3
CLK GATE
OUT
3 2 1 0 FF 3 2
图9.5(a) 方式1 正常计数
CW = 12 LSB = 3 WR CLK GATE OUT 3 2 1 3 2 1 0
图9.5(b) 方式1时GATE 信号的作用
CW = 12 WR CLK GATE
LSB = 2
LSB=4
OUT
2 1 0 FF FE 4 3
CW = 16 WR CLK GATE OUT
LSB = 5
LSB = 4
5
4
3
2
1
4
3
d. 方式3 计数过程中改变计数值
图9.7(d) 方式3 计数过程中改变计数值
5. 方式4 —— 软件触发选通方式 (Software Triggered Strobe)
软件启动,不自动重复计数。装入初值后输出端变 高电平,计数结束输出一个CLK宽度的负脉冲
(2)读/写控制逻辑
决定三个计数器和控制字寄存器中哪一个能进行工 作,并控制内部总线上数据传送的方向。
第 9 章 计数器和定时器电路——微机原理课件PPT
计数器的3个引脚
CLK(时钟)——输入,在计数过程中,此引脚上每 输入1个时钟信号(下降沿),计数器的计数值将减1
GATE(门控)——输入,控制计数器工作:
开启/关闭计数——高电平时允许计数通道工作 触发/重触发——上升沿产生触发或重触发
OUT(计数器输出)——输出,根据设置工作方式的 不同, OUT引脚可输出单个或连续的波形信号。一般 是在计数过程结束时(计数值归0),OUT引脚信号 发生变化。
9.1.3 8253-PIT的引线
D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0 GATE0 GND
1
24
2
23
3
22
4
21
5
20
6
19
7 8253 18
8
17
9
16
10
15
11
14
12
13
VCC
WR RD CS A0 A1
CLK2 OUT2 GATE2 CLK1 GATE1 OUT1
00 计数器锁存命 令
01 只读写低字节 10 只读写高字节 11 先读写低字节
后读写高字节
000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5
0 二进制 1 十进制(BCD)
控制字写入控制字I/O地址(A1A0=11)
9.3 8253/8254的工作方式
对计数器 1 设置计数初值
对计数器 2 设置计数初值
控制字写入控制寄存器
从计数器 0 读计数值
从计数器 1 读计数值
从计数器 2 读计数值
无操作,三态
无操作,三态
未选中
微机原理与接口技术第九章8253
功 能 向CNT 0写入计数初值 读取CNT 0的当前计数值 向CNT 1写入计数初值
0
0 0 0 0
1
0 1 0 1
0
1 0 1 0
0 1
1 0 1 0 1 1 1 1
读取CNT 1的当前计数值
向CNT 2写入计数初值 读取CNT 2的当前计数值 写入控制字
0
1
1
×
1
×
× ×
× ×
数据引脚D7 ~ D0呈高阻
N为奇数,CR内容先减1,再装入CE中, 其他同前(近似方波)
35
(6)工作方式3—方波发生器
CW=16h WR LSB=4
CLK GATE
OUT CE
N
N
N
4
2
4
2
4
2
4
2
4
2
36
(6)工作方式3—方波发生器
CW=16 WR LSB=5
CLK
GATE OUT CE
N
N
N
5
4
2
4
2
5
4
2
4
2
37
65536×55ms = 3600s
计数器1
18÷1.19MHz = 15.08μs
计数器2
1.19MHz÷1331 = 896Hz,驱动后送给扬声器
47
8253端口地址为40H ~ 43H
MOV OUT MOV OUT OUT MOV OUT MOV OUT AL,00110110B ;计数器0初始化 43H,AL ;双字节读写,方式3,二进制 AL,0 40H,AL ;写入低字节 40H,AL ;写入高字节 AL,01010100B ;计数器1初始化 43H,AL ;只读写低字节,方式2,二进制 AL,18 41H,AL ;写入低字节
微机原理,第九章(2)8253定时器—计数器应用设计
~ D0
8086 CPU 最小 方式 系统 总线
CLK0 GATE0 OUT0
M/IO A15
பைடு நூலகம்
=0
A3 A0
译码 电路
CS
CLK2 GATE2 OUT2
图 8086最小方式系统总线与8253的连接框图 xtwang@
…
=0
…
§ 9.4 8253的总线接口方法
2.8086最大工作方式下的8253连接
CLK0=4MHz OUT0=1KHz
4000 分频
OUT0=1KHz
计数器0:工作方式3,时常数 4000 10 计数器0:工作方式3,时常数4000 CLK1=1KHz 10 计数器1:工作方式2,时常数10 分频 分频 计数器1:工作方式2,时常数10 OUT1=100Hz 计数器2,:工作方式3,时常数 100 计数器2,:工作方式3,时常数1000 1000 CLK2=100Hz 100 分频 分频 OUT2=1Hz xtwang@
xtwang@
EG5. 有一个未知频率的对称周期信号 s ( t )(频率范围在 100Hz~2kHz之间),现在8086最小系统中一片8253,外部可 以使用的标准信号源为 1MHz ,试测量输入 s(t) 信号的频率 用待测信号 S(t) 做GATE,利用其 信号的上升沿触发计数的开始, 利用其低电平使计数暂停,以便 被CPU访问读出
LOGO
xtwang@
第九章 定时/计数器8253 (二)
Contents
1
2 3 4 5
8253引脚功能及特点
8253原理结构及工作原理
8253的控制字及工作方式
8253与系统总线的接口方法
8253的应用和设计
第九章 可编程计数器8253
第九章可编程定时计数器8253一概述⒈定时器和计数器定时控制在微机系统中极为重要①定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔;②计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器。
⒉定时功能的实现方法①软件延时——利用微处理器执行一个延时程序段实现;②不可编程的硬件定时——采用分频器、单稳电路或简易定时电路控制定时时间;③可编程的硬件定时——软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路。
二 8253定时计数器的内部结构和外部特性⒈概述① 3个独立的16位计数器通道;②每个计数器有6种工作方式;③按二进制或十进制(BCD码)计数。
⒉内部结构内部结构图①数据总线缓冲器是8253与CPU DB连接的8位双向三态缓冲器,CPU通过它向8253写方式控制字到控制字寄存器中,写计数初值到计数通道,读取计数通道的当前计数值。
②读/写控制逻辑无效,8253的DB处于高阻状态,当有效,控制8253内部操作。
当和A1、A0、作,见下表。
8253读写操作及端口选择表注意:CPU对控制字寄存器只能写,不能读;CPU对计数通道写的是计数初值,读的是当前计数值。
③控制字寄存器8253初始化编程时,CPU写控制字到控制字寄存器,以选择计数通道及相应的工作方式。
④数通道0~28253内部包括3个功能完全相同和操作完全独立的计数通道,每个计数通道由16位减法计数器、16位计数初值寄存器和16位计数值锁存器组成。
初始化时,向计数通道装入的计数初值,先送到计数初值寄存器中保存,然后送到减法计数器。
计数器启动后,减法计数器对CLK的下降沿进行减1计数,在未锁定时把结果送入16位计数值锁存器中。
当计数值减到0时,输出OUT信号,一次计数结束。
计数初值寄存器的内容,在计数过程中保持不变。
计数初值寄存器和计数值锁存器占用一个端口地址(即该计数通道口地址),CPU读取计数通道的当前计数值来自计数值锁存器。
第 9 章 计数器和定时器电路1
微机原理及应用
2018年10月8日星期一
第 9 章 计数器和定时器Intel 8253 例如: 若要用通道0,工作在方式1,按二—十进制计数,
计数值为5080H。则初始化编程的步骤为:
(1) 确定通道控制字:
(2) 计数值的低8位为80H。 (3) 计数值的高8位为50H。
微机原理及应用
2018年10月8日星期一
IN
MOV IN MOV
微机原理及应用
AL,0F9H;读低8位
CL,AL;存于CL中 AL,0F9H;读高8位 CH,AL;存于CH中
2018年10月8日星期一
第 9 章 计数器和定时器Intel 8253 9.1.1 8253-PIT的内部结构 8253的内部结构如图9-1所示:
微机原理及应用
2018年10月8日星期一
第 9 章 计数器和定时器Intel 8253 1. 数据总线缓冲器
8位双向三态缓冲器,CPU用输入输出指令对8253进行 读写的所有信息,都是通过这8条总线传送的。
在方式0,当控制字CW=10写入控制字寄存器,则使 OUT输出端变低。要开始计数,GATE信号必须为高电平。 在写入计数初值以后,通道开始计数,在计数过程中, OUT信号线一直维持为低电平,直到计数到“0”时, OUT才变为高电平。方式0过程如图9-4所示。
CW=10表示只写低8位计数值为4。
1
微机原理及应用
微机原理及应用
2018年10月8日星期一
第 9 章 计数器和定时器Intel 8253 (3) 在计数过程中,可由门控制信号GATE控制暂停。当 GATE=0时,计数暂停;当GATE变高后,就接着计数, 其波形如图9-5所示。
微机原理及应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表 9-5在计数过程中改变计数值
方式 0 1 2 3 4 5 功 能 改变计数值 立即有效 外部触发后有效 计数到1后有效 (1) 外部触发后有效 (2) 计数到0后有效 立即有效 外部触发后有效
计完最后一个数中断 硬件再触发单拍脉冲 速率发生器 方波速率发生器 软件触发选通 硬件触发选通
9.4 8253-PIT的编程 的编程
8253的初始化编程步骤: 的初始化编程步骤: 的初始化编程步骤
当初始化8253某个计数通道时, (1)首先把相应的方式控制字写入到控制字寄存器中, (2)再根据控制字中数据读/写格式(D5D4)位的规定,写 入计数初值到对应的计数通道。 8253工作过程中,任一通道的计数值,CPU可用输入指令 读取。CPU读到的是执行输入指令瞬间计数器的当前值, 但8253的计数器是16位的,所以要分2次读至CPU,因 此,若不锁存的话,在前后两次执行输入指令的过程中, 计数值可能已经发生变化了
9.3 8253-PIT的工作方式 的工作方式
8253的每一个计数器都可以按照控制字的规定有 6种不同的工作方式。下面结合时序波形图介绍各种 工作方式的计数过程 一、方式0(计数结束中断方式) 计数过程 当写入方式0控制字后,OUT立即变为低电平, 并且在计数过程中一直维持低电平。若GATE=1,写 入初值后,CLK第1个下降沿到,计数值装入计数器, 随后每一个CLK脉冲下降沿到,计数器减1。计数器 减到零时,OUT输出变为高电平,并且一直保持到 该通道重新装入计数值或重新设置工作方式为止
工作方式(D3D2D1) 8253的每个通道可以有6种不同的工作方式,由 D3D2D1 三位决定,具体情况在9.3节中详细介绍 数制选择(D0) 8253的每个通道都有两种计数制:二进制和二十进制(BCD码),由D0位决定。在二进制时,写 入初值的范围为0000H~FFFFH,其中0000H是 最大值,表示65536。在二—十进制时,写入初 值范围为0000~9999,其中0000表示最大值 l0000。因为计数器是先减1,再判断是否为0, 所以写入0实际代表最大计数值
一、8253-PIT的方式控制字 8253的方式控制字有4个主要功能: (1)从3个计数器中选择一个 (2) (2)确定计数器数据的读写格式 (3)确定计数器的工作方式 (4)选择计数器的计数方式 方式控制字的格式如下图所示,其中,X表示 没有使用位,通常设置为0
8253(8254)的控制字格式 的控制字格式
三、控制字寄存器 接收来自CPU的控制字,并由控制字D7、D6位的编 码决定该控制字写入哪一个计数器的控制寄存器中 四、计数器 8253有3个独立的计数器通道,每个通道的结构完 全相同,如下图所示。每一个通道有一个16位减法计 数器,还有对应的16位初值寄存器和输出锁存器。计 数开始前写入的计数初值存于初值寄存器;计数过程 中,减法计数器的值不断递减,而初值寄存器中的初 值不变。输出锁存器则用于写入锁存命令时锁定当前 计数值
方式1-正常计数的时序图 方式 正常计数的时序图
方式1小结 方式 小结
GATE信号的影响 GATE信号的影响
方式1中,GATE信号的作用可从两个方面进行说明: 第一,在计数结束后,若再来一个GATE信号上升沿, 则下一个时钟周期的下降沿又从初值开始计数,而 不需要重新写入初值,即门控信号可重新触发计数 第二,在计数过程中,若再来一个GATE信号的上升沿, 也在下一个时钟下降沿从初值起重新计数,即终止 原来的计数过程,开始新的一轮计数
Intel 8253是一种实现定时和计数功能的外围 电路,拥有3个独立的16位计数器,每个计数器 都可通过程序设计的方法设定为实现定时功能的 各种操作方式。 8253有以下主要功能: 3个独立的16位的计数器 每个计数器都可以按照二进制或二-十进制计数 每个计数器的计数速率可达2MHz 6种可编程的计数模式
方式1小结 方式 小结
新的初值对计数过程的影响 如果在计数过程中写入新的初值,不会立即影 响计数过程,只有下一个门控信号到来后的第一 个时钟下降沿,才终止原来的计数过程,按新值 开始计数。即新的初值下次有效
方式1波形图 方式 波形图
9.4 8253几种工作方式的比较 几种工作方式的比较
与输入CLK 和输出 和输出OUT的关系 一、计数值N与输入 计数值 与输入 的关系 8253在不同工作方式下,计数值N与输入CLK 时钟脉冲和输出OUT的关系是不同的,如表9-2 所示
9.1.2
8253-PIT的内部结构 的
8253的内部结构 如右图所示, 该芯片内部由数据 总线缓冲器、控 制寄存器、读/ 写控制逻辑以及 计数器等组成
8253的内部结构
一、数据总线缓冲器 该缓冲器为8位双向三态的缓冲器,可直接挂 在数据总线上。通过它,一方面可以向控制寄存 器写入控制字,向计数器写入计数初值;另一方 CPU 面也可由CPU通过该缓冲器读取计数器的当前计 数值 二、读/写控制逻辑 读/写逻辑的功能是接收来自CPU的控制信号, WR 包括读信号 、写信号 、片选信号 和芯 CS RD 片内部寄存器的寻址信号A1、A0,并完成对8253 各计数器的读/写操作
2
(1)禁止计数 (2)立即使输出 为高 (1)禁止计数 (2)立即使输出 为高 禁止计数 ---
(1)重新装入计 允许计 数值 数 (2)启动计数 启动计数 允许计 数 允许计 数 ---
3
方波速率发生器
4 5
软件触发选通 硬件触发选通-启动计数8253几种工作方式的比较 四、在计数过程中改变计数值 8253的六种工作方式都可以在计数器计数过 程中改变计数值。新的计数值什么时候起作用, 随工作方式不同而有差异,具体区别如表9-5 所示
第九章 计数器和定时器电 路
9.1概述
8253-PIT的主要功能 的主要功能 8253-PIT的内部结构 的内部结构 8253-PIT的引线 的引线
9.2 8253-PIT的控制字 9.3 8253-PIT的工作方式 9.4 8253-PIT的编程 9.5 Intel 8254-PIT
8253-PIT的主要功能 9.1.1 8253-PIT的主要功能
0 1 2 3
4 5
软件触发选通 硬件触发选通
8253几种工作方式的比较 几种工作方式的比较
二、启动计数和重复计数的条件 所有工作方式都必须设置计数值才能够开始工 作,但不是所有的方式一经设置计数值就马上开 始计数,需要有一定的条件才能工作。有些方式 一经启动,计数器就永无休止的工作下去,而有 些方式只能计数一次。如果要重复计数同样需要 某些条件,这些条件如表9-3所示
注: 下面的约定适用于所有的工作方式波形图: 计数器编程采用二进制方式,只对低字节操作 计数器的片选信号 CS 一直处于低电平; CW表示控制字(Control Word);CW=10 表示10H写 入计数器; LSB表示计数器的低字节; 图下的数字表示计数值:上面的数是高字节,下面 的数是低字节; N表示一个不确定的计数值
方式0波形图 方式 波形图
二、方式1 (可编程单拍脉冲) 方式 可编程单拍脉冲) 可编程单拍脉冲
这种方式由外部门控信号GATE上升沿触发,产 生一单拍负脉冲信号,脉冲宽度由计数初值决定。 计数过程 写入控制字后,OUT输出为高电平。写入计数初值 之后,计数器并不立即开始计数,而要等到GATE 上升沿后的下一个CLK输入脉冲的下降沿,OUT输 出变低,计数才开始。结束时,OUT输出变高,从 而产生一个宽度为N个CLK周期的负脉冲
二、与外部设备的接口信号 CLK,时钟脉冲输入端,用于输入定时脉冲或计
数脉冲信号。CLK可以是系统时钟脉冲,也可以 由其他脉冲源提供 GATE,门控输入端,用于外部控制计数器的启动 计数和停止计数的操作。 OUT,计数输出端。在不同方式的计数过程中, OUT引脚上输出相应的信号
9.2 8253-PIT的控制字 的控制字
8253几种工作方式的比较 几种工作方式的比较
三、门控信号的作用 8253在不同的工作方式下,门控信号GATE 的作用如 表 9-4所示
表 9-4 门控信号的作用
方 式 0 1 GATE 功 能 低或变为低 上升沿 --(1)启动计数 (2)下一CLK后 使输出变低 高 允许计 数 --计完最后一个数中 禁止计数 断 硬件再触发单拍脉 冲 速率发生器 ---
表 9-3 启动计数和重复计数的条件
方 式 0 1 2 3 4 5 功 能 启动条件 写计数值 外部触发 写计数值 写计数值 写计数值 外部触发 重复条件 写计数值 外部触发 自动 自动 写计数值 外部触发
计完最后一个数中断 硬件再触发单拍脉冲 速率发生器 方波速率发生器 软件触发选通 硬件触发选通
CS 片选信号,输入,低电平有效。有效时,表示
表9-1 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
操作功能 计数初值装入计数器0 计数初值装入计数器1 计数初值装入计数器2 写控制寄存器 读计数器0 读计数器1 读计数器2
方式0波形图 方式 波形图
方式0 方式0小结
GATE信号的影响 信号的影响 门控信号GATE可以用来控制计数过程,GATE 为低电平时暂停计数,当GATE重新为高电平时又 恢复计数 新的初值对计数过程的影响 方式0是写一次计数值,只计数一遍,计数 器不会自动重装初值重新开始计数。如果在计数 过程中写入新的计数初值,则在写入新值后的下 一个时钟下降沿计数器将按新的初值计数,即新 的初值是立即有效的
计数值N与输入 与输入CLK 和输出 和输出OUT的关系 表9-2 计数值 与输入 的关系
方式 功能 计完最后一个数中断 硬件再触发单拍脉冲 速率发生器 方波速率发生器 N与CLK 和OUT的关系 写入N后,过N+1个CLK输出变高 宽度为N个CLK的负脉冲 每N个CLK,输出N-1个CLK高, 1 个CLK低 N为偶数:输出为N/2个CLK高, N/2个CLK低的方波; N为奇数:输出为(N+1)/2个CLK高, (N-1)/2个CLK低的方波 写入N后过N+1个CLK,输出一个 CLK宽度的负脉冲 门控触发后过N+1个CLK, 输出一 个CLK宽度的负脉冲