第九章定时与计数技术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_alarm_counter
OUT
CR CE
4 3 方式0的时序波形
2 1 0
方式0的工作特点
计数器只计一遍而不能自动重复工作(一次性计 数). 输出OUT在写完控制字后(WR的上升沿)变为低 电平,并在写完计数初值后的N+1个CLK脉冲 之后变为高电平。 在计数过程中,若GATE变低,则计数暂停;当 GATE变高后,又接着计数。(图9.5) 在计数过程中,可改变计数值(图9.6)
A1 A0
计数器1 计数器2
注:
1. “控制寄存器(8位)”,“计数初值寄存器 (CR)”可由CPU写入; 2. “输出锁存器(OL)”可由CPU读出.
三. 8253的引脚
引脚图---图 9.3 CLK OUT GATE
四.8253的工作方式
1.方式0--计数到零产生中断请求 WR CW N=4 N+1个 CLK
第九章 计数/定时技术
2003.11
第一节 概述
实现定时的三种方法: 1. 软件定时:由CPU执行指令序列所花费 的时间来构成一定的时间间隔,从而达 到定时的目的。 例如:MOV CX,××××H HERE:LOOP HERE 优点:不需要专门的硬件设备。 缺点:浪费了宝贵的CPU资源。
2.不可编程的硬件定时
2.方式1--单稳态触发器
WR CLK CW N=2
GATE
OUT 2 1 0 2 1
工作方式
方式2---分频器(图9.8) 方式3---方波发生器(图9.9) 方式4---软件触发选通(图9.10)
方式4可应用于这样一种情况:经端口发送并行 数据,经过一段时间延迟后单稳 态电 路 触发信号
稳态
td 暂稳态
3.可编程计数器/定时器
可编程定时器、计数器8253
通道 (计数器)
工作方式
方式选择控制字
计数初值
0
0(计数结束 中断方式)
ModCr0= 00 01, 000 0B
(=10H)
n0=100
1
3(方波发生 器)
ModCr1= 001 11, 011 0B
(=76H)
n1 =
TOUT1 TCLK1
=
fCLK1 fOUT1
=
2.5 *106 1000
= 2500
4、8253的工作方式
8253提供6种工作方式,遵循以下基本原则: (1)控制字写入计数器8253的控制字寄存器,所有的
控制逻辑电路复位,输出端进入初始状态; (2)初始计数值写入后,经过一个CLK脉冲后,才在
输入脉冲的CLK的下降沿,计数器作减1计数。
定时与计数 本质上是一回事:
不管是定时,还是计数,计数器都是对C3——方波发生器
例: 设8253的端口地址是80H~83H。欲使计数器1输出频率为1KHz 的方波, 从CLK1端输入2.5MHz的时钟脉冲. 试编写初始化程序.
8253使用前,需初始化: 先写入工作方式控制字,再写入计数初值: 方式控制字规定某个通道的工作方式。将控制字写入控制寄存器端口.
2
0(计数结束 中断方式)
ModCr2= 010 11, 000 1B
(=B1H)
n2
=
TOUT2 TCLK 2
=
1 TCLK 2
= fCLK2
= 1000
由图9-23(a), n1 * TCLK1 = TOUT1
其它内容自学
附图:8253的工作方式控制字
控制字——规定某个计数器/通道的工作方式。
微机原理与接口技术_09定时计数器8253应用设计
第9章 定时/计数器8253应用设计 1. 8253的引脚功能及特点 2. 8253的原理结构及工作原理 3. 8253的控制字及工作方式 4. 8253与系统总线的接口方法 5. 8253的应用设计
9.1 8253的引脚功能及特点
图9.1 8253引脚图
Intel公司生产的可编程定时/计数器 8253 采用 24脚的DIP封装,用作分频器、定时信号产生器等。
lll 定时/计数器8253一共有三个独立的计数通道 (也称计数器):计数器0、计数器1、计数器2。
每个计数通道的内部结构如下图所示,在 每个计数通道中主要包含四个部件:计数寄存 器 CR(Count Register,16 位 ) 、 计 数 工 作 单 元 CE(Counting Element,16 位 ) 、 输 出 锁 存 器 OL(Output Latch, 16 位 ) 、 控 制 字 寄 存 器 (Control Word Register,8位)。 每个计数通道有 三个输入输出信 号:时钟(计数 脉冲)CLKx(输 入)、控制信号 GATEx(输入)、 输出信号OUTx (输出)。
方式1具有下列一些特点: 在臵控制字或时常数后, OUT 端仍输出高电平 ; 在 GATE 端输入有效的触发信号(上升沿),并 经过一个CLK脉冲,OUT变为低电平,作为单脉冲 的开始,同时将CR读入CE,并开始“减1”计数; 当 CE计数到 0时, OUT端变为高电平,表示本次 单脉冲形成结束; 当计数通道的时常数为 N 时,硬件触发所产生 的单脉冲(低电平)的宽度为 N 个计数时钟周期 ;
方式控制字的M1M2M3位(M2M1M0)用于设定计数 通道的工作方式: M2M1M0 0 0 0 0 0 1 ×1 0 ×1 1 1 0 0 1 0 1 含 义 方式0 方式1 方式2 方式3 方式4 方式5
可编程定时-计数器8253
接口技术
•8086/8088中断响应周期时,CPU的INTA引脚的 正确功能是—————— A.输出一个负脉冲,CPU从D7~D0读入中断类型码 B.输出两个负脉冲,在第二个负脉冲期间,CPU 从A7~A0读入中断类型码 C.输出两个负脉冲,在第二个负脉冲期间,CPU 从D7~D0读入中断类型码
D.输出一个负脉冲,CPU从A7~A0读入中断类型 码
接口技术
7.1.4 中断嵌套 当CPU执行优先级较低的中断服务程序时,允许响 应比它优先级高的中断源请求中断,而挂起正在处 理的中断。 (1)屏蔽同级和较低级中断请求。 (2)在保护现场、屏蔽同级和较低级中断完成后, 用STI指令来开中断。 (3)中断服务程序结束后,恢复现场前,用CLI指 令来关中断,然后才能恢复现场。 (4)恢复现场后,CPU应该重新开放中断,以便允 许任何其它等待着的中断请求有可能被CPU响应。
CNT2:标准定时,定时时间为1S。
8253
D7~D0
系
A1
统 总
A0 IOR
IOW
线
A2~A15
地址 译码器
D7~D0
CLK OUT
2 2
A1 A0
CLK 1 OUT 1
RD WR
CLK 0
OUT 0 CS GATE 1
GATE 2 GATE 3
送8259的IR 2端 2.5MHz 1kHz方波 外部事件
接口技术
计数结束时,输出一个时钟周期的负脉冲;
计数中写入新初值,待GATE信号重新启动之后 才置入计数器使用。
WR
CLK
GATE OUT
CW N=4
4 32 1 0 图7.19 方式5 的波形
接口技术
例7.5 IBM PC/XT主机板上有一片8253用作计 数/定时电路,各计数器及控制寄存器所占地 址及工作情况如下:
8253(8254的使用说明讲义)
第9章 计数器和定时器电路Intel 8253/8254-PIT在控制系统中,常常要求有一些实时时钟以实现定时或延时控制,如定时中断、定时检测、定时扫描等,也往往要求有计数器能对外部事件计数。
要实现定时或延时控制,有三种主要方法:软件定时、不可编程的硬件定时、可编程的硬件定时器。
软件定时——即让计算机执行一个程序段,这个程序段本身没有具体的执行目的,但由于执行每条指令都需要时间,则执行一个程序段就需要一个固定的时间。
通过正确地挑选指令和安排循环次数很容易实现软件定时,但软件定时占用了CPU的时间,降低了CPU的利用率。
不可编程的硬件定时可以采用小规模集成电路器件如555,外接定时部件——电阻和电容构成。
这样的定时电路简单,而且利用改变电阻和电容,可以使定时在一定的范围内改变。
但是,这种定时电路在硬件连接好以后,定时值及定时范围不能由程序(软件)来控制和改变,由此就生产了可编程的定时器电路。
可编程定时器电路的定时值及其范围,可以很容易地由软件来确定和改变。
所以,功能较强,使用灵活。
本章就介绍这种定时器电路。
§9.1 概述Intel系列的计数器/定时器电路为可编程序间隔定时器PIT(Programmable Interval Timer),型号为8253,改进型为8254。
Intel 8253具有3个独立的16位计数器通道,使用单一5V电源,它是24个引脚的双列直插式器件。
9.1.1 8253-PIT的主要功能Intel 8253-PIT具有以下主要功能:(1) 一个芯片上有三个独立的16位计数器通道;(2) 每个计数器都可以按照二进制或二—十进制计数;(3) 每个计数器的计数速率可高达2MHz。
(82C54-2计数频率可达到10MHz);(4) 每个通道有6种工作方式,可由程序设置和改变;(5) 所有的输入输出都与TTL兼容。
9.1.2 8253-PIT的内部结构8253的内部结构如图9-1所示。
定时器-计数器8253
1.2 8253的结构及其外部引脚
8253具有3个功能相同的16位减法计数器CNT0、CNT1和CNT2,可 进行二进制或8421 BCD码计数或定时操作。工作方式和计数常数可 由软件编程来设定,可以方便地与PC总线连接,外部引脚如图1-26 (a)所示,其内部结构如图1-26(b)所示,每个计数器有3个引脚: CLK为时钟输入端,作为定时或计数方式时的减1计数脉冲输入端, 当CLK输入为恒定周期的时钟信号时,则主要作为定时器用(定时器 是一种特殊的计数器),若CLK用于工业控制或实验中脉冲信号输入, 则一般来说,CLK的无固定的时钟周期只能看成计数器;OUT为计数 器输出端,当计数器减到0时,根据所置的工作方式输出相应的信号; GATE为门控端,用于启动或禁止计数器操作。控制字寄存器用来寄 存工作方式控制字,只能写入不能读出。
定时器/计数器8253
1.1 定时器/计数器概述
通常有3种方法来实现定时或计数:软件法、硬件法以及可 编程的硬件定时/计数法。
(1)软件实现。 (2)简单硬件实现。 (3)利用可编程定时器/计数器。由于它的定时值及计数范 围可以由软件来设定改变,因此,可以脱离CPU独立定时/计数。 它不占用CPU大量时间,所以使用方便,且功能强大。
2021年1月30日星期六
2021年1月30日星期六
图1-26 8253外部引脚和内部结构
1.3 8253的控制字和编程命令
1.8253的控制字 8253每个计数器的工作方式和计数值都必须由CPU通过输出指 令来设定。对8253的初始化要求是: (1)通过8253的控制端口向控制寄存器写入相应通道的控制 字,一般情况下,应指定通道的工作方式(6种工作方式之一)、 通道计数器的读/写方式(是读/写高/低8位数据,还是16位数据) 和通道计数器/定时器所采用的计数制(BCD/二进制)。 (2)通过8253的通道端口向相应的通道计数器写入计数初始 值。如果在控制字中已经确立为16位的控制方式,则应分两次对 通道端口进行写操作,先写入初始值的低8位,再写入初始值的高 8位。
微机原理与接口技术第九章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 ;写入低字节
1 定时、计数器8253
当写入控制字后,计数器的输出OUT变成低电平, 若门控信号GATE为高电平,计数器开始减1计数并 且维持OUT为低电平,当计数器减到0时,输出端 OUT变成高电平,并且一直保持到重新装入初值或 复位时为止。 门控信号GATE可以暂停计数,当GATE =0时,计数停止,GATE恢复为高电平后,继续计 数。所以,如果在计数过程中,有一段时间GATE变 为低电平,那么,输出端OUT的低电平持续时间会 因此而延长相应的长度。 在计数过程中可以改变计数值,若是8位数,在写 入新的计数值后立即按新值重新开始计数,若是16 位数,写入第一个字节后计数停止,写入第二个字 节后立即按新值重新计数。
计数过程受门控信号GATE的控制,GATE为低电平时 暂停计数,由低电平恢复为高电平后的第一个时钟 下降沿从初值开始重新计数。在计数过程中改变初 值,对正在进行的计数过程没有影响,但计数到1, OUT变低一个CLK周期后,计数器将按新的计数值重 新开始计数。
4、方式3:方波发生器
采用方式3时,OUT端输出连续方波,若计数值N为偶 数,则输出对称方波,前N/2个脉冲期间为高电平, 后N/2个脉冲期间为低电平;若N为奇数,则前(N+ 1)/2个脉冲期间为高电平,后(N-1)/2个脉冲期 间为低电平。除输出波形不同外,方式3的其它情况 均同方式2。下图为方式3的工作波形图。
(2)与外设的接口引脚:
CLK0~2:计数器0、1、2的外部计数时钟输入端。 GATE0~2:计数器0、1、2的门控信号输入端。门 控信号用来禁止、允许或重新开始一个新计数过程。 OUT0~2:计数器0、1、2的计数输出端。当定时/ 计数时间到时,该端输出标志信号。
第九章 可编程计数器与定进控制器8253(9.2)
SC1 SC0 RW1 RW0 M2
M1
M0 BCD
1--计数值为BCD码格式 0--计数值为二进制格式 M2 M1 0 0 0 1 1 0 0 M0 0 1 0 1 0 1 模式选择 模式0 模式1 模式2 模式3 模式4 模式5
0 0----对计数器进行锁存
0 / / 1 1
0 0----选计数器0
STT: MOV DX,8253-C MOV AL,10H OUT DX,AL MOV DX,8253-0 MOV AL,64H OUT DX,AL MOV DX,8253-C MOV AL,76H OUT DX,AL MOV DX,8253-1 MOV AX,09C4H OUT DX,AL MOV AL,AH OUT DX,A MOV DX,8253-C MOV AL,0B1H OUT DX,AL
图 8-22
方式0——计数结束产生中断
高
图 8-22
单脉冲触发器
图 8-23
分频器
图 8-23 方波发生器
图 8-23 软件触发的选通信号发生器
图 8-23
硬件触发的选通信号发生器
8-2-3 8253应用举例
8253初始化方法: 控制字 计数初值:
已知:CLK 的频率fc与定时的时间t. 计数初值: n= fc t
习题1分析: 用通道 0 作定时器,初始编程使通道0按方式3工作,每秒产 生18.2次输出信号,该信号送到8259A中断控制器的IRQ0输入端。 每55ms产生一次中断请求,8086对其计数,用来计算时间。通道 1 用作动态RAM刷新定时,每隔5.12us产生一次输出信号,请求动态 刷新。OUT1输出产生DMA请求信号送8237,由8237对动态RAM刷新。 (8253地址为40H~43H) 通道0:地址为40H,控制字为36H,工作方式3,计数初值为0 通道1:地址为41H,控制字为 54H,工作方式2,计数初值为12H
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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的内部结构及外部引脚