微机原理课件 8253计数器工作方式总结
微机第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及应用 8-1 8253工作原理
一、8253的内部结构与引脚信号 二、8253的初始化编程
三、8253的工作方式
四、8253与系统的连接
8-2 8253的应用举例
一、8253定时功能举例 二、8253计数功能举例
1
第八章
定时/计数技术概述
计算机中常用到定时功能,如:动态RAM刷新、
第八章
二、8253的初始化编程
8253的初始化编程按顺序分两步完成:
1、写入控制字
2、写入计数初值
初始化编程的几点说明: 对3个计数通道的初始化编程没有先后顺序
若是16位数,必须用两条OUT指令来完成,且先送低8
位数据,后送高8位数据。 若计数初值为0时,要分成两次写入。0在二进制计数
18
第八章
8253方式3
4、方式3——方波发生器
时序图
计数初值为偶数时的波形
CW=16H WR CR=4 CLK GATE LSB=4
OUT
CRCE 4
CRCE 2
19
CRCE
2 4
CRCE 2 4
CRCE 2 4
4
第八章
8253方式3 计数初值为奇数时的波形
CW=16H WR
LSB=5 CR=5
CLK GATE
OUT CRCE 5 4 CRCE 2 5 CRCE CRCE 4 2 5
2
5
20
第八章
8253方式4
5、方式4——软件触发选通
时序图
CW=18H WR
LSB=2 CR=2
LSB=2 CR=2
CLK GATE OUT CRCE 2 1 CRCE 0 2 1 0 0
第08章 可变程计数器8253及其应用精品PPT课件
当用8253作外部事件计数器时,在CLK脚 上所加的计数脉冲是由外部事件产生的,这 些脉冲的间隔可以是不相等的。 如果要用它作定时器,则CLK引脚上应输入 精确的时钟脉冲。这时,8253所能实现的 定时时间,决定于计数脉冲的频率和计数器 的初值,即:
1--计数值为BCD码格式 0--计数值为二进制格式
0 0----选计数器0 0 1----选计数器1 1 0----选计数器2 1 1----无意义
0 0----对计数器进行锁存 0 1----只读/写低8位字节 1 0----只读/写高8位字节 1 1----先读/写低8位字节,
再读/写高8位字节.
4. 由于计数器是先减1,再判断计数值是否为零,所以写入 计数初值为0,实际就等于10000H,在二进制计数时,它 表示65536,BCD计数时,它表示10000。
例:在某微机系统中,8253的3个计数器的端口地址 分别为3F0H、3F2H和3F4H,控制字寄存器的端口地 址为3F6H,要求8253的通道0工作于模式3,并已知 对它写入的计数初值n=1234H,则初始化程序为:
MOV AL, 00110111B
;控制字;选择通道0, 先读/写低字节,后高字
节
MOV DX, 3F6H ;指向控制口
OUT DX, AL ;送控制字
ቤተ መጻሕፍቲ ባይዱ
MOV AL, 34H ;计数值低字节
1、8253的初始化编程步骤
对3个计数器通道的编程没有先后顺序的规定。 对每个计数器的编程先写入控制字,后写入计数初值。
(1)写入控制字 1. 用输出指令向控制字寄存器写入一个控制字,以选
7-4 8253的工作方式
8253的工作方式8253的工作方式8253有六种工作方式,在不同的方式下,计数器的启动方式、GATE端输入信号的作用以及OUT端的输出波形都有所不同。
方式0—计数结束产生中断n=443210INTR CLKWRGATEOUT CW方式0—计数结束产生中断a)当写入控制字后,输出端OUT即为低电平(初始状态),如果GATE=1,则计数器获得初值后开始计数,计数器只计数一遍,直到再次写入初始值b)因为在写入计数初值后经过一个时钟周期才能开始计数,所以当计数条件满足时,如果计数初值为n,则需要经过n+1个时钟,OUT端输出高电平,该OUT信号作为中断请求c)如果在GATE=0时写入计数初值,仍会在下一个时钟脉冲时,写入初值,但此时不会开始计数,直到GATE=1时,计数开始;计数过程中,如果GATE=0,计数暂停,直到GATE=1,计数继续d)如果有新的计数初值被写入,则原计数值作废,待下一个时钟脉冲时,新的初值送到计数执行部件方式1—可重复触发的单稳态触发器WR CW GATEOUT CLK323201n=31方式1—可重复触发的单稳态触发器a)写入控制字后,输出端OUT变为高电平(初始状态),计数初值经一个时钟周期后,送计数执行部件;GATE信号上升沿到来时,边沿触发器受到触发,下一个时钟脉冲时,OUT变为低电平,直到计数为0b)如果计数初值为n,则OUT输出n个时钟周期的负脉冲;计数器为0后,输出端OUT变为高电平,只要GATE上升沿到来,计数器可再次重新计数c)如果计数过程有新的计数初值写入计数器,不会影响当前输出,即仍然输出宽度为原计数值的负脉冲,直到GATE上升沿再次到来,按新的计数值开始计数方式2—分频器WR GATE OUT CLK21210330重复周期n=3CW方式2—分频器a)当写入控制字后,输出端OUT变为高电平(初始状态),计数初值经一个时钟周期后,送计数执行部件开始计数b)如果计数初值为n,输出端OUT将经历可重复输出周期,每个输出周期包含n个时钟,其中n-1个时钟为高电平,1个时钟周期为低电平;可以作为一个脉冲速率发生器或用于产生实时时钟中断c)GATE=1时计数进行,GATE=0时计数结束;在计数期间送入新的计数值,如果GATE=1,则OUT不变,当前计数完毕后,按新值进行计数方式3—方波发生器WR GATEOUT CLK4312543251n=5CW 重复周期方式3—方波发生器a)当写入控制字后,输出端OUT为高电平(初始状态),写入初值后下一个时钟开始计数,计数到一半时,OUT变为低电平,计数为0时再变为高电平,完成一个输出周期,进而开始下一个重复周期b)当初值为偶数,输出的正负脉冲个数相等,否则,高电平比低电平多一个时钟c)GATE=1时,在写入控制字及初值后的下一个时钟开始计数,GATE=0时计数停止。
定时计数器8253课件
20010.12
定时计数器8253
3
计数通道
• 通道0、通道1和通道2
• CLK:计数器的脉冲输入端,GATE: 计数器的门控信 号,OUT: 计数器的输出信号,一般与计数溢出有关。
• 工作原理:
• 8253计数器工作在减1状态,每输入一个计数脉冲,计数 器值减1,当计数器
• 分为4部分,通道选择、计数器读/写方式、工作方式和计
数码的选择。
计数器选择(SC1、SC0)
计数器读/写方式(RLl、RL0)
20010.12
定时计数器8253
9
• 计数器的锁存操作
• 8253一旦初始化后,就不需要CPU参与而自动计数。为了 读出计数值时不干扰实际计数过程,同时读出的值又是稳 定的,就要求对通道计数器中的计数值进行锁存。
读/写控制电路
❖ 片选信号 CS ❖ A1A0的组合 :选择三个通道、一个控制寄
存器,共4个端口 ❖ 读信号 R D 和写信号W R 由CPU提供,低电平
有效。
20010.12
定时计数器8253
7
8253的管脚分配
• 通道管脚
• CLKn:通道n的脉冲输入管脚.外部事件
或定时脉冲由这三个管脚输入;
OUT 8253控制口,AL
MOV AL,40H
;置8253通道0时间常数,
OUT 通道0端口,AL ; 第一次写初始计数值的低8位,
MOV AL,38H
; 第二次写高8位。3840H=14400秒=4小时
OUT 通道0端口,AL
……
中断程序中有关程序段如下:
……
MOV AL,00000001B ;8255置位/复位控制字,使PC0=1
8253的工作方式
8253的工作方式1.方式0 计数结束产生中断8253用作计数器时一般工作在方式0。
所谓计数结束产生中断,是指在计数值减到0时,输出端(OUT)产生的输出信号可作为中断申请信号,要求CPU进行相应的处理。
方式0有如下特点:① 当控制字写进控制字寄存器确定了方式0时,计数器的输出(OUT端口)保持低电平,一直保持到计数值减到0。
② 计数初值装入计数器之后,在门控GATE信号为高电平时计数器开始减1计数。
当计数器减到0时输出端OUT才由低变高,此高电平输出一直保持到该计数器装入新的计数值或再次写入方式0控制字为止。
若要使用中断,可以计数到0的输出信号向CPU发出中断请求,申请中断。
③ GATE为计数控制门,方式0的计数过程可由GATE控制暂停,即GATE=1时,允许计数;GATE=0时,停止计数。
GATE信号的变化不影响输出OUT端口的状态。
④ 计数过程中,可重新装入计数初值。
如果在计数过程中,重新写入某一计数初值,则在写完新计数值后,计数器将从该值重新开始作减1计数。
2.方式1 可编程的单拍负脉冲可编程的单拍负脉冲又称为单稳态输出方式,简称单稳定时。
方式1的特点是:① CPU写入控制字后,计数器输出OUT端为高电平作为起始电平,在写入计数值后计数器并不开始计数(不管此时GATE是高电平还是低电平),而要由外部门控GATE脉冲上升沿启动,并在上升沿之后的下一个CLK输入脉冲的下降沿开始计数。
② GATE上升沿启动计数的同时,使输出OUT变低,每来一个计数脉冲,计数器作减一计数,直到计数减为0时,OUT输出端再变为高电平。
OUT端输出的单拍负脉冲的宽度为计数初值乘以CLK端脉冲周期。
设计数初值为N,则单拍脉冲宽度为N个CLK时钟脉冲周期。
③ 如果在计数器未减到0时,GATE又来一触发脉冲,则由下一个时钟脉冲开始,计数器将从初始值重新作减1计数。
当减至0时,输出端又变为高电平。
这样,使输出脉冲宽度延长。
第八章可编程计数器定时器8253 微机原理与接口技术 教学课件(共45张PPT)
1、8位的控制(kò ngzhì) 存放器
2、16位的CR
备注: 一、编程结 构: 1、8位的控 制存放器
2、16位的计 数初值存放器 CR 3、16位的计 数执行部件 CE
4、16位的 输出锁存器
OL
3、16位的CE:减 法(jiǎnfǎ)计数器
4、16位的OL: 锁存CE的内容
注:CR、CE、OL都为16位存放器,也可作8位存放器用
OUT 46H, AL
;1011×110B
;设控制字
/ TCLK
MOV AX, 2000
= FCLK / FOUT OUT 44H, AL
=2MHZ/1KHZ MOV AL, AH
=2000
OUT 44H, AL ;设初值
=7D0H
第二十八页,共45页。
5、方式4-软件触发(chùfā)的选通信号
使其工作于方式(fāngshì)3,计数初值为1234H,计数
按二
进制格式。编写程序将计数值读到BX存放器。
MOV AL,36H ; 0011×110B
MOV AL,00H ;0000 ××××H
OUT 46H,AL ;设控制(kòngzhì)字 MOV AL,34H
OUT 46H,AL ;锁存命令(mìng lìng) IN AL,40H
数过程(guòchéng),从下一个时钟开始按新初值计数, 初值减为1前OUT一直维持高电平。
③ 软件同步:通过写入初值使计数器同步。
第二十五页,共45页。
4、方式(fāngshì)3-方波发生器
特点(tèdiǎn):1〕计数 过程 该方式工作过程 (guòchéng)同方式2 ,只是输出脉宽不同 。
( y ì 2、适用场合(chǎng hé):各种
第2节38253的工作方式-15页PPT精选文档
更多精品资源请访问
docin/sanshengshiyuan doc88/sanshenglu
(2) 方式1的特点
第一,若设置的计数初值为N,则输出的单稳脉冲的脉宽为N个时钟周期。
第二,可重复触发。其含义是,当计数到零后,不用再次送计数值,只 要再次由外部触发脉冲启动,8253可以再输出一个同样宽度的单稳脉冲。
第三,在计数过程中,CPU改变初始计数值,这时计数过程不受影响。 只有再次触发启动后,计数器才开始按新的计数初值对应的脉冲宽度输 出单稳脉冲。 第四,在计数过程中,若外部GATE触发脉冲提前到来(即计数器未减至0 时),则在触发脉冲上升沿之后的下一个时钟脉冲的下降沿,计数器将重新 开始计数。这将使输出的单稳脉冲比原先设计值加宽了。
第四,在8253计数过程中可以改变计数值。 第五,若用于中断方式,可把OUT输出信号接到8259的中断请求 输入端,以满足中断要求。
方式1 可编程单稳脉冲
(1)工作过程
①
②④ ⑤
⑥
方式1 4 WR
CLK
GATE ③
OUT
4321 0
④
⑥⑤计③②① 计数结束计数过程数值送入计数器硬件启动设定计数初值设定工作方式
第二,当GATE=1时允许计数,GATE=0时禁止计数。所以要 做到软件启动,则GATE应该保持为1。
第三,若在计数过程中改变了计数值,则按新计数值重新开始 计数。若计数值为双字节,则在设置第一个字节时停止计数, 在设置第二个字节后,按新的计数值开始计数。
方式5 硬件触发选通信号
(1)工作过程
方式5 4
43210
43210
43210
43210
(2) 方式3的特点
微机原理第七章 计数器定时器8253
三、Intel 8253
1. 芯片引腿 2. 编程结构 3. 结构组成 4. 控制寄存器格式 5. 编程命令 6. 工作模式
D7 D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0
GATE0 GND
1
24
2
23
3
22
4
21
8253 5
20
6
19
7
18
8
17
9
16
10
15
11
14
12
13
D0---BCD位,用来设置装入CR计数值的格式。 0——计数值为二进制格式 1——计数值为BCD码格式
一作为计数器,在设置好计数初值后,便开 始减1计数,减到“0”时,输出一个信号;
二作为定时器,在设置好定时常数后,便进 行减1计数,并按定时常数不断地输出 为时 钟周期整数倍的定时间隔。
计数器与定时器的差别在于:计数器计 数到零时便输出一个信号并结束;而定时器 会不断地产生信号。
计数器与定时器的共同点在于: 它们的工作过程没有根本区别,都是基于
3. 结构组成
D7~D0
数据总线 缓冲器
计数器 0
CKL0 GATE0 OUT0
RD
CKL1
WR A0
读/写控制逻 辑电路
A1
内 部 总
计数器 1
GATE1 OUT1
CS
线
控制 寄存器
计数器 2
CKL2 GATE2 OUT2
8253的芯片引脚及结构组成
① 计数器0,计数器1,计数器2 ② 数据总线缓冲器
功能: 往控制寄存器设置控制字 往计数器设置初值 从计数器读取计数值 ③控制寄存器 ④读/写逻辑电路
第7章8253微机原理及应用
(MODE 3) CLOCK
4 3 2 1 0(4) 3 2 1 0(4) 3 2 1 0
OUTPUT
n=4
n=4
n=3
OUTPUT 0(5) 4 3 2 1 0(5) 4 3 2 1 0(5) n=5
OUTPUT n=4
4 3 2 1 0(4) 3 2 1 0
GATE (RESET)
– 选通输入(门控输入)GATE——用于启动或禁止计数器的 操作,以使计数器 和计测对象同步。
• 每个计数器中有四个寄存器;
– ①控制寄存器——初始化时,将控制字寄存器 中的内容写 入该寄存器;
– ②计数初值寄存器——初始化时写入该计数器的初始 值;
– ③减法计数寄存器——计数初值由计数初值寄存器送人减 法计数寄存器,当 计数输入端输入一个计数脉冲时,减法 计数寄存器内容减1,当减到零时,输出 端输出相应信号表 示计数结束。
方式4—软件触发选通(启动计数原理类似于方式0)
• 在这种方式下,当写入控制字后,输出为高(原为高则保持为高,原为 低则变为高)。当写入计数值后立即开始计数(相当于软件启动),当 计数到0后,输出变低,经过一个输入时钟周期,输出又变高,计数器停 止计数。这种方式计数也是一次性的,只有在输入新的计数值后,才能 开始新的计数。
– (4)每个计数器有6种工作方式,可由程序 设置和改变。
– (5)所有的输入输出引脚电平都与TTL电平 兼容。
8253的结构和引脚
• 三个计数器中每一个都有三条信号线;
– 计数输入CLK——用于输入定时基准脉冲或计数脉冲;
– 输出信号OUT——以相应的电平指示计数的完成,或输 出脉冲波形; ·
二、8253在IBM-PC/XT机中的应用
8253微机原理
00010000
特点: 1. 计数器只计一遍。当计数到 0 时,并不恢复计数初值,不开始重新 计数,且输出一直保持为高。只有在写入下一个计数值时,OUT 变低,开始新的计数。
特点: 2. 在计数过程中,可由门控信号GATE控制暂停。GATE=0, 计数暂停, GATE变高后,接着计数。
特点: 3. 在计数过程中,可改变计数值。在写入新的计数之后,计数器按新 的值重新开始计数。
开始计数),OUT输出端变低。在整个计数过程中,OUT 都维持为低,直到计数 为 0 时,输出变为高,输出一个单脉冲。
特点: 1. 若设置的计数值为N,则输出的单脉冲宽度即为N个输入脉冲间隔。 2. 当计数到 0 后,可再次由外部触发启动,输出一个同样宽度的 单拍脉冲,而不用再次送计数值。
特点: 3. 在计数过程中,外部可发门控信号进行再触发,在触发脉冲上升沿 后的下一个CLK脉冲的下降沿,计数器将重新开始工作。
0
0 1
1
1 ×
0
0 ×
1
1 ×
0
1 ×
8253的控制字
◆ 8253控制字可以选择计数器、工作方式、计数数制( 2#或 10#——BCD码),以及计数器的读/写方法等。 ◆ 8253控制字格式(8位) :
D7 SC1 D6 SC0 D5 RW1 D4 RW0 D3 M2 D2 M1 D1 M0 D0 BCD
8253操作的控制逻辑
CS 0 0 0 0 0 0 RD 0 0 0 0 1 1 WR 1 1 1 1 0 0 A1 0 0 1 1 0 0 A0 0 1 0 1 0 1 操作说明
计数器0→数据总线 计数器1→数据总线 计数器2→数据总线 非法状态 数据总线→计数器0 数据总线→计数器1 数据总线→计数器2 数据总线→控制寄存器 D7~D0呈高阻状态
微机原理_定时计数器8253
工作方式举例:方式2 二、工作方式举例:方式2
GATE门控 门控 信号
写入计 数初值 写入控 制字 WR GATE CLK OUT
方式2 方式2的工作特点是 计数,输出为持续不 断的周期信号
CLK 输入
计数脉冲 软件写入计数器启动 OUT 可预置初值计数器 计数,输出为持续不 计数, 输出
设计数初值为3 设计数初值为3
—— 启动 启动 启动 —— 启动
允许 —— 允许 允许 允许 ——
三、设置工作方式和计数值 对8253设置工作方式和设置计数值是连续 进行的。 步骤是:
1、对控制端口写:设置工作方式及计数值格式 2、对计数端口写:计数值低8位(可选) 3、对计数端口写:计数值高8位(可选)
控制字格式:
D7 SC1
1.19MHz / 533H = 900Hz
如果需要自定义频率值为263,则可以: MOV DX, 12H MOV AX, 3480H MOV SI, 263 DIV SI ;在AX中就得到了 计数值
音阶和频率的对应关系: 音符 1 2 3 4 5 6 7 1 频率 262 294 330 347 392 440 523 524 音符 1 2 3 4 5 6 7 1 频率 524 588 660 698 784 880 988 1048
8088
译码
A1 A0 AD7 | AD0 /WR /RD
8253
/CS A1 A0 D7 | D0 /WR /RD CLK0 OUT0 GATE0
10HZ频率 发生器
+5V
+5V +5V
0 1 2 3 4 5
定时计数器0
程序段如下
MOV OUT MOV OUT MOV OUT HLT AL , 0011 0000B 43H , AL ;写控制字 AL , 50 40H, AL ; 写计数初值低8位 AL , 0 40H, AL ; 写计数初值低8位
8253的6种工作方式
三、方式2——频率发生器(能自动装入计数初值)
CLK
WR
GATE
OUT
CW
N=3 高
3 2 1 0 (3) 2 1 0
特点: (1)计数器计数期间,输出OUT为高电平,当减1计数器为 控制字写入后,输出端 OUT以 1时(注意不是减到 0),输出端OUT变为低电平,当减到 0 时,OUT端又变为高电平并自动重新装入原计数初值,从而 高电平作为初始状态。 开始一个新的计数过程。
(2)门控信号GATE为高电平时,计数器工作; 当GATE为低电平时,计数器停止工作,其计数值 保持不变,等GATE为高时继续计数。
3
(3)在计数器工作期间,如果重新写入新的计数 值,计数器按新写入的计数值重新工作。 CLK
WR
GATE OUT N=6
N=2
高 6 5 2 1 0
方式0计数期间,又写入新的计数初值
18
结论: 一般,方式0、1和方式4、5 (输出一个电平 或一个脉冲)选作计数器用;而方式2、3 (输出周期脉冲或周期发波)选作定时器 用。
19
CLK CW WR
方式0
方式4
N=4
4 4 4 4 3 3 3 3 4 2 2 2 2 3 1 1 1 1 2 0 0 0 0 3 2 1 0 1 0
方式1
11
五、方式4——软件触发的选通信号发生器
CLK WR
N=4
GATE
OUT 4 3 2
高
1 0
特点: (1)设定好此方式后,输出OUT变成高电平;写入计数初值 后,计数器开始计数,计数到0结束时,输出变为低电平,低 电平维持一个时钟周期后,输出又恢复高电平,但计数器不再 计数,输出一直保持高电平。