第九章定时与计数技术8253
合集下载
第九章可编程计数器定时器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
8253定时-计数器

1.3 8253的控制字和工作方式
1.3 8253的控制字和工作方式
方式3
1) 当计数初值N为偶数时,输出端的高低电平持续时间相等,各为N/2个 CLK脉冲周期,当计数初值N为奇数时,输出端的高电平持续时间比 低电平持续时间多一个脉冲周期,即高电平持续(N+1)/2个脉冲周 期,低电平持续(N-1)/2个脉冲周期。例如N=5,则输出高电平持 续3个脉冲周期,低电平持续2
1.3 8253的控制字和工作方式
2.8253
可编程定时/计数器8253有两个基本功能,即定时和计 数。除此之外,还可以作为频率发生器、分频器、实时时钟、 单脉冲发生器等。这些功能是通过对8253编程,写入方式 控制字来完成的,8253为每个计数通道提供6种工作方式。
(1)方式0——
0控制
字CW后,计数器输出端OUT立即变成低电平。当写入计数
3) 在计数过程中,可由门控信号GATE控制暂停。当GATE为0时,计 数器暂停计数;当GATE变为1
4) 方式0的OUT信号在计数到0时由低变高,可作为中断请求信号。
1.3 8253的控制字和工作方式
(2)方式1—— 在设定工作方式1和写入计数初值后,OUT输出高电平,
此时并不开始计数。当门控信号GATE变为高电平时,启动计 数,OUT输出变低电平。在整个计数过程中,OUT都维持为 低电平,直到计数到0时,输出变为高电平。因此,输出为一 单脉冲,其低电平的维持时间由装入的计数初值来决定。图所 示为8253工作方式1的时序图。
6)方式5—— 在这种方式下,当写入控制字后,输出端出现高电平 作为初始电平。在写入计数初值后,计数器并不立即开始 计数,而是要由门控脉冲的上升沿来启动计数,这称为硬 件触发。当计数到0时,输出变低电平,又经过一个CLK 脉冲,输出恢复为高电平,这样在输出端得到一个负脉冲 选通信号。计数器停止计数后要等到下次门控脉冲的触发, 才能再进行计数。8253工作方式5的时序如图所示。
《微机原理与接口技术》第九章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信号推动喇 叭发音。
第九章_计数(定时)器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
微机原理,第九章(2)8253定时器—计数器应用设计

…
=0
…
CS
§ 9.4 8253的总线接口方法
3. 与IBM PC机的连接
CPU接口 D7 外设接口 D7 RD WR A1 A0
=0
~ D0
IOR IOW A2 A1 AEN A15
~ D0
CLK0 GATE0 OUT0
IBM PC机 系统 总线
Intel 8253
CLK1 GATE1 OUT1
译码 电路
A3 A0
CS
CLK2 GATE2 OUT2
…
=0
xtwang@
…
8253应用举例
xtwang@
§ 9.4 8253的总线接口方法
EG1. 8088最大系统下,8253的地址范围为340H~343H。输 入时钟频率为2M赫兹,实现输出频率为1Hz的方波。画连接图,写 初始化程序和时常数赋值程序。
~ 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连接
计数器1: 工作方式2,时常数1012 计数器2: 工作方式1,时常数1000
时常数=1012,工作方式2 输出信号周期:1.102s
产生信号
CLK2 GATE2 CS OUT2
时常数=1000,工作方式1 减1计数,在1000第个周期电平变高,在第1012个周期, 由GATE上升沿触发,电平变低,开始下一轮计数
微机原理与接口技术9章8253

定时器/计数器
• 主要内容
– 定时与计数 – 可编程定时器/计数器接口芯片8253
定时与计数
• 定时技术在微机系统中必不可少
– 微机的工作在标准时钟控制下完成 – 为外设提供实时时钟 – 向外设定时发出控制信号
• 定时中断、定时检测、定时扫描、定时显示……
– 对外部事件进行计数
定时与计数
• 定时与计数
可编程定时/计数芯片8253
• 8253的工作方式
– 方式4——软件触发的选通信号发生器
• 波形图
可编程定时/计数芯片8253
• 8253的工作方式
– 方式4——软件触发的选通信号发生器
• 工作特点
– 计数由软件启动,每次写入计数初值只启动一次 计数 – 当计数值为N时,则间隔N+1个CLK脉冲输出一 个负脉冲(计数一次有效) – 在计数过程中,可由GATE信号控制暂停。当 GATE=0时,暂停计数;当GATE=1时,继续计 数 – 在计数过程中写入新的计数初值,则按新的初值 重新开始计数
可编程定时/计数芯片8253
• 8253的工作方式
– 方式5——硬件触发的选通信号发生器
• 波形图
可编程定时/计数芯片8253
• 8253的工作方式
– 方式5——硬件触发的选通信号发生器
• 工作特点
– 计数由GATE上升沿启动,只要GATE端给触 发脉冲,则会装入计数值,并开始计数 – 在这种方式下,若设置的计数值是N,则在 GATE脉冲后,经过(N+1)个CLK,OUT端 才输出一个负脉冲 – 在计数过程中修改计数初值,不会影响本次计 数,只有GATE端再次触发时,才按新的计数 值计数
微机原理与接口技术
第九章 8253
第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.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 信号再由低变高,可再产生一个单脉冲,相当一 个单稳态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OUT 02H,AL ;后写高8位,写入通道2
33
谢谢
0 0
0
00 0
0
0
端口地址:0?0H~03H
27
分析: 1)8253端口地址:00H~03H 2)工作方式:方式0 3)计数初值: N0=400 (二进制计数) 4)控制字:00 11 000 0B = 30H
MOV AL,30H OUT 03H,AL ;控制字写入控制口 MOV AX, 400 ;二进制形式的数据 OUT 00H,AL ;先写低8位,写入通道0 MOV AL,AH OUT 00H,AL ;后写高8位,写入通道0
24
例1:在以8088CPU为核心的系统中,扩展一片 8253芯片,要求通道0每隔2ms输出一个负脉冲, 其工作时钟频率为2MHz,设端口地址为20H~ 23H,完成通道初始化。(用做定时器)
分析: 工作方式: 方式2 计数值: N= fCLK / fOUT = fCLK * TOUT =2MHz*2ms=2×106×2×10-3=4000 控制字: 00 11 010 0B = 34H
28
例3:在以8088CPU为核心的系统中,扩展一片 8253芯片,要求使用通道2输出20Hz的方波,通 道的工作时钟为2MHz,计数方式采用二进制计 数。试完成软、硬件设计。
2MHz输入 +5V 方波 2MHz输入 +5V 20Hz方波
若仅采用通道2计数,则N2=2MHz/20Hz=100000 > 65536
7
8253的控制字(A1A0=11)
D7 D6 D5
D4
计数器选择 读/写格式
D3 D2
D1
工作方式
D0 数制
00=计数器0 01=计数器1 10=计数器2
11=非法
00=锁存 01=低8位 10=高8位 11= 先低8位,
后高8位
000=方式0 001=方式1 X10=方式2 X11=方式3 100=方式4 101=方式5
启动计数后,在CLK的第一个下降沿,将计 数初值送入减1计数器,开始计数。
之后在每一个CLK的下降沿,减1计数器减1。 计数值减至0,一次计数结束。
14
6种工作方式的区别:
启动计数器的触发方式 OUT引脚的输出波形 计数过程中GATE对操作的影响 写入新的计数值对计数过程的影响 是否自动循环计数
用延时程序实现。能精确定时,但影响CPU的效率。
硬件法
设计一套电路用以实现定时与计数。特点是需要花 费一定硬设备,且当电路制成之后,定时值及计数 范围不能改变。
软、硬件结合法
设计一种专门的具有可编程特性的定时/计数芯片。 这些芯片定时、计数到时能产生中断请求信号,因 而定时期间不影响CPU的正常工作。
MOV AL, 10111010B ;计数器2控制字
MOV
OUT
MMOOVV MMOOVV OOUUTT MMOOVV OOUUTT
DX, 0FFF3H
DX, AL AALX, ,31F2H345
;送控制端口A1A0=11 ;;1166位位计计数数初初值值
DDXX,0, F0FFFF2FH2H DDXX, ,AALL ;;送送计计数数值值低低位位入入计计数数器器22
15
方式0——计数结束时中断
16
方式0——计数结束时中断
6 6 5432 1 0
17
方式1——程序可控单稳
3
18
方式2——N分频方式
一次有效计数
19
方式3——方波频率发生器
一次有效计数
20
方式4——单次负脉冲(软件触发)
一次有效计数
21
方式5——单次负脉冲(硬件触发)
22
44 方式0 方式0 方式2 方式2 方式3 方式3 方式4 方式4
30
精品课件!
31
精品课件!
32
计 MOV AL,56H 数 OUT 03H,AL ;控制字写入控制口 器 MOV AL, 100 ;二进制形式的数据 1 OUT 01H,AL ;只写低8位,写入通道1
MOV AL,0B6H 计 OUT 03H,AL ;控制字写入控制口 数 MOV AX, 1000 ;二进制形式的数据 器 OUT 02H,AL ;先写低8位,写入通道2 2 MOV AL,AH
0 10
读计数器2 写计数器2
62H
0 11
无操作
写控制端口
63H
5
3. 8253编程
芯片初始化编程 读当前计数值 读装入的计数初值
6
初始化编程步骤:
① 向控制端口写入控制字 ② 向计数器端口写入计数初值
8位计数初值,只写低8位,则高8位自动置0 16位计数初值:
低8位为全0,只写高8位,则低8位自动置0; 低8位不为全0,先写低8位,后写高8位。
CLK0 GATE0 OUT0
计数脉冲输入引脚。在每一个CLK
RD
WA0RCLK
A1
CS AC1SAG0ATE
0 00 0 01
读的控/制下写计降数沿初,值寄减存1计器数(计16器数位)器-1
逻辑 减1计数器(16位1)
CLK1
OUOGTUATTE1 1
输出信号引脚。输出信号
控寄读门器读读制存操的工控字器计 计作波作信数 数(输形,号R器 器出D与其输)锁01工作入存作用引器方(与脚1写计6写 写式工。位操数2计 计)有作用作器关数 数方来(W。器 器式控RGCO有制01)LAUKT关计T地2E2 。数2址60H66~016HH3H
25
MOV AL,34H OUT 23H,AL ;控制字写入控制口 MOV AX, 4000 ;二进制形式的数据 OUT 20H,AL ;先写低8位,写入通道0 MOV AL,AH OUT 20H,AL ;后写高8位,写入通道0
26
例2:在以8088CPU为核心的系统中,扩展一片 8253芯片,要求通道0对外部脉冲进行计数,计满 400个脉冲后向CPU发出一个中断请求,硬件连接 图如下,试完成软件设计。 (用做计数器)
;写计数器0计数初值
MOV OUT MOV OUT
AL, 01100101B 43H, AL AL, 10H 41H, AL
;计数器1控制字 ;送控制端口A1A0=11
;写计数器1计数初值
9
例:计数器2,方式5,计数值为01F20334F5H,二进制计数。
端口地址0FFF0H~0FFF3H。写出初始化程序。
AALL, ,0AF0HH DDXX, A, ALL ;;送送计计数数值值高高位位入入计计数数器器22
10
读当前计数值——锁存后读
由于计数在不断进行,在前后两次执行输入指令
的过程中,计数值可能已经变化。所以可将当前 计数值先行锁存,然后读取。
读当前计数值的过程 1)发锁存命令(写入控制端口) 2)读当前计数值(读计数器端口)
8位当前计数值,只需要读一次; 16位当前计数值,先读低字节,后读高字节。
11
[例] 读出并检查计数器1的当前计数值是否全 1,端口地址210H~213H(假定计数值 只有低8位)
L : MOV AL, 01000000B ;计数器1锁存 MOV DX, 213H OUT DX, AL MOV DX, 211H IN AL, DX ;读计数器1的当前计数值 CMP AL, 0FFH JNE L
29
分析: 1)8253端口地址:00H~03H 2)工作方式:计数器1—方式3 3)计数值: 100000=100*1000
计数器1—N1=100 计数器2—N2=1000 4)控制字: 计数器1—01 01 011 0B = 56H 计数器2—10 11 011 0B = 0B6H
计数器2—方式3
0=二进制 1=BCD
8
例:计数器0,方式0,计数值为0FFH,二进制计数。 计数器1,方式2,计数值为1000,按BCD码计数。 8253端口地址为40H~43H。写出初始化程序。
MOV OUT MOV OUT
AL, 00010000B 43H, AL AL, 0FFH 40H, AL
;计数器0控制字 ;送控制端口A1A0=11
第九章-定时与计数技术8253
定时器与计数器的区别
定时器
以时钟信号作为计数脉冲的计数器称为定时器。 主要用以产生不同标准的时钟信号或不同频率
的连续信号。
计数器
以外部事件产生的脉冲作为计数脉冲的计数器 称为计数器。
主要用以产生对外部事件发生的次数进行计量。
2
定时与计数的实现方法
软件法
率输出负脉冲的是________。方式2
若采用通道1,输入时钟CLK1的频率为1MHz,计
数值为500,计数方式采用BCD码,OUT1输出为
方波,则初始化时该通道的控制字应为
__0_1_1_0_0_1_1_1_B_,输出的方波频率为__2_0_0_0_Hz。
01110111B
公式:fOUT= fCLK / N
12
4. 工作方式
8253有6种不同的工作方式,在控制字中 D3~D1三位来设置。
触发方式——计数器的启动方式
软件触发 :GATE保持高电平,写入计数值后启 动计数。(由WR信号的上升沿触发)
硬件触发 :写入计数值后由GATE的上升沿启动计数
13
6种工作方式遵循的原则:
控制字写入控制寄存器后,所有的控制逻 辑电路立即复位,OUT进入初始状态
3
9.2 可编程定时器/计数器8253
1. 8253的主要特点
3个独立的16位计数器通道 6种工作方式,可程序设置或改变 可以按二进制或二-十进制(BCD码)计数 计数速率可达2MHz 所有输入/输出与TTL兼容
4
2. 8253的内部结构及外部引脚
33
谢谢
0 0
0
00 0
0
0
端口地址:0?0H~03H
27
分析: 1)8253端口地址:00H~03H 2)工作方式:方式0 3)计数初值: N0=400 (二进制计数) 4)控制字:00 11 000 0B = 30H
MOV AL,30H OUT 03H,AL ;控制字写入控制口 MOV AX, 400 ;二进制形式的数据 OUT 00H,AL ;先写低8位,写入通道0 MOV AL,AH OUT 00H,AL ;后写高8位,写入通道0
24
例1:在以8088CPU为核心的系统中,扩展一片 8253芯片,要求通道0每隔2ms输出一个负脉冲, 其工作时钟频率为2MHz,设端口地址为20H~ 23H,完成通道初始化。(用做定时器)
分析: 工作方式: 方式2 计数值: N= fCLK / fOUT = fCLK * TOUT =2MHz*2ms=2×106×2×10-3=4000 控制字: 00 11 010 0B = 34H
28
例3:在以8088CPU为核心的系统中,扩展一片 8253芯片,要求使用通道2输出20Hz的方波,通 道的工作时钟为2MHz,计数方式采用二进制计 数。试完成软、硬件设计。
2MHz输入 +5V 方波 2MHz输入 +5V 20Hz方波
若仅采用通道2计数,则N2=2MHz/20Hz=100000 > 65536
7
8253的控制字(A1A0=11)
D7 D6 D5
D4
计数器选择 读/写格式
D3 D2
D1
工作方式
D0 数制
00=计数器0 01=计数器1 10=计数器2
11=非法
00=锁存 01=低8位 10=高8位 11= 先低8位,
后高8位
000=方式0 001=方式1 X10=方式2 X11=方式3 100=方式4 101=方式5
启动计数后,在CLK的第一个下降沿,将计 数初值送入减1计数器,开始计数。
之后在每一个CLK的下降沿,减1计数器减1。 计数值减至0,一次计数结束。
14
6种工作方式的区别:
启动计数器的触发方式 OUT引脚的输出波形 计数过程中GATE对操作的影响 写入新的计数值对计数过程的影响 是否自动循环计数
用延时程序实现。能精确定时,但影响CPU的效率。
硬件法
设计一套电路用以实现定时与计数。特点是需要花 费一定硬设备,且当电路制成之后,定时值及计数 范围不能改变。
软、硬件结合法
设计一种专门的具有可编程特性的定时/计数芯片。 这些芯片定时、计数到时能产生中断请求信号,因 而定时期间不影响CPU的正常工作。
MOV AL, 10111010B ;计数器2控制字
MOV
OUT
MMOOVV MMOOVV OOUUTT MMOOVV OOUUTT
DX, 0FFF3H
DX, AL AALX, ,31F2H345
;送控制端口A1A0=11 ;;1166位位计计数数初初值值
DDXX,0, F0FFFF2FH2H DDXX, ,AALL ;;送送计计数数值值低低位位入入计计数数器器22
15
方式0——计数结束时中断
16
方式0——计数结束时中断
6 6 5432 1 0
17
方式1——程序可控单稳
3
18
方式2——N分频方式
一次有效计数
19
方式3——方波频率发生器
一次有效计数
20
方式4——单次负脉冲(软件触发)
一次有效计数
21
方式5——单次负脉冲(硬件触发)
22
44 方式0 方式0 方式2 方式2 方式3 方式3 方式4 方式4
30
精品课件!
31
精品课件!
32
计 MOV AL,56H 数 OUT 03H,AL ;控制字写入控制口 器 MOV AL, 100 ;二进制形式的数据 1 OUT 01H,AL ;只写低8位,写入通道1
MOV AL,0B6H 计 OUT 03H,AL ;控制字写入控制口 数 MOV AX, 1000 ;二进制形式的数据 器 OUT 02H,AL ;先写低8位,写入通道2 2 MOV AL,AH
0 10
读计数器2 写计数器2
62H
0 11
无操作
写控制端口
63H
5
3. 8253编程
芯片初始化编程 读当前计数值 读装入的计数初值
6
初始化编程步骤:
① 向控制端口写入控制字 ② 向计数器端口写入计数初值
8位计数初值,只写低8位,则高8位自动置0 16位计数初值:
低8位为全0,只写高8位,则低8位自动置0; 低8位不为全0,先写低8位,后写高8位。
CLK0 GATE0 OUT0
计数脉冲输入引脚。在每一个CLK
RD
WA0RCLK
A1
CS AC1SAG0ATE
0 00 0 01
读的控/制下写计降数沿初,值寄减存1计器数(计16器数位)器-1
逻辑 减1计数器(16位1)
CLK1
OUOGTUATTE1 1
输出信号引脚。输出信号
控寄读门器读读制存操的工控字器计 计作波作信数 数(输形,号R器 器出D与其输)锁01工作入存作用引器方(与脚1写计6写 写式工。位操数2计 计)有作用作器关数 数方来(W。器 器式控RGCO有制01)LAUKT关计T地2E2 。数2址60H66~016HH3H
25
MOV AL,34H OUT 23H,AL ;控制字写入控制口 MOV AX, 4000 ;二进制形式的数据 OUT 20H,AL ;先写低8位,写入通道0 MOV AL,AH OUT 20H,AL ;后写高8位,写入通道0
26
例2:在以8088CPU为核心的系统中,扩展一片 8253芯片,要求通道0对外部脉冲进行计数,计满 400个脉冲后向CPU发出一个中断请求,硬件连接 图如下,试完成软件设计。 (用做计数器)
;写计数器0计数初值
MOV OUT MOV OUT
AL, 01100101B 43H, AL AL, 10H 41H, AL
;计数器1控制字 ;送控制端口A1A0=11
;写计数器1计数初值
9
例:计数器2,方式5,计数值为01F20334F5H,二进制计数。
端口地址0FFF0H~0FFF3H。写出初始化程序。
AALL, ,0AF0HH DDXX, A, ALL ;;送送计计数数值值高高位位入入计计数数器器22
10
读当前计数值——锁存后读
由于计数在不断进行,在前后两次执行输入指令
的过程中,计数值可能已经变化。所以可将当前 计数值先行锁存,然后读取。
读当前计数值的过程 1)发锁存命令(写入控制端口) 2)读当前计数值(读计数器端口)
8位当前计数值,只需要读一次; 16位当前计数值,先读低字节,后读高字节。
11
[例] 读出并检查计数器1的当前计数值是否全 1,端口地址210H~213H(假定计数值 只有低8位)
L : MOV AL, 01000000B ;计数器1锁存 MOV DX, 213H OUT DX, AL MOV DX, 211H IN AL, DX ;读计数器1的当前计数值 CMP AL, 0FFH JNE L
29
分析: 1)8253端口地址:00H~03H 2)工作方式:计数器1—方式3 3)计数值: 100000=100*1000
计数器1—N1=100 计数器2—N2=1000 4)控制字: 计数器1—01 01 011 0B = 56H 计数器2—10 11 011 0B = 0B6H
计数器2—方式3
0=二进制 1=BCD
8
例:计数器0,方式0,计数值为0FFH,二进制计数。 计数器1,方式2,计数值为1000,按BCD码计数。 8253端口地址为40H~43H。写出初始化程序。
MOV OUT MOV OUT
AL, 00010000B 43H, AL AL, 0FFH 40H, AL
;计数器0控制字 ;送控制端口A1A0=11
第九章-定时与计数技术8253
定时器与计数器的区别
定时器
以时钟信号作为计数脉冲的计数器称为定时器。 主要用以产生不同标准的时钟信号或不同频率
的连续信号。
计数器
以外部事件产生的脉冲作为计数脉冲的计数器 称为计数器。
主要用以产生对外部事件发生的次数进行计量。
2
定时与计数的实现方法
软件法
率输出负脉冲的是________。方式2
若采用通道1,输入时钟CLK1的频率为1MHz,计
数值为500,计数方式采用BCD码,OUT1输出为
方波,则初始化时该通道的控制字应为
__0_1_1_0_0_1_1_1_B_,输出的方波频率为__2_0_0_0_Hz。
01110111B
公式:fOUT= fCLK / N
12
4. 工作方式
8253有6种不同的工作方式,在控制字中 D3~D1三位来设置。
触发方式——计数器的启动方式
软件触发 :GATE保持高电平,写入计数值后启 动计数。(由WR信号的上升沿触发)
硬件触发 :写入计数值后由GATE的上升沿启动计数
13
6种工作方式遵循的原则:
控制字写入控制寄存器后,所有的控制逻 辑电路立即复位,OUT进入初始状态
3
9.2 可编程定时器/计数器8253
1. 8253的主要特点
3个独立的16位计数器通道 6种工作方式,可程序设置或改变 可以按二进制或二-十进制(BCD码)计数 计数速率可达2MHz 所有输入/输出与TTL兼容
4
2. 8253的内部结构及外部引脚