第八章计数定时器8253
合集下载
第八章 8253定时计数器(例程)

➢ 正常情况下,即GATE=1,对计数器置入时常数N后, 要经过N+1个时钟周期才能使OUT输出高电平;
➢ 在计数过程中,如GATE变为低电平,这时只是暂停计数 ,等待GATE信号变为高电平后,计数器继续“减1”计数
例题,向8253的A1A=0 11B的地址写入0011 0000B,则表示 计数器0设置成方式0,并且采用16位时常数,假设时常数为 1500,则计数器0的初始化程序段如下:
通过计数通道的端口地址可以访问通道中的CR、OL,当对通 道进行写操作时,实际上表示将计数初值(即时常数)写入CR; 当对通道进行读操作时,表示将从OL中读取计数值。
8253的控制字
定时/计数器8253一共有6种工作方式,由控制字 寄存器的内容来设定。方式控制字如下所示:
D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD
电源(+5V) 地
连接去向 CPU
译码电路 CPU CPU CPU 外部
外部 外部
/ /
8253的原理结构及工作原理
每个计数通道主要包含四个部件: 计数寄存器CR(Conut Register, 16位)、 计数工作单元CE(Counting Element, 16位)、 输出锁存器OL(Output Latch, 16位)、 控制字寄存器(Control Word Register, 8位)。
计数过程中写入新的时常数,它只能在下一次分频脉冲后起作用
方式2的特点:
➢在置方式2的控制字后,OUT端变为高电平;
➢在置入时常数后,下一个CLK脉冲期间,将时常数从CR读 入CE,并开始“减1”计数;
➢当CE计数到01时,在OUT端输出一个负脉冲,并重新读入 时常数进行计数;
➢ 在计数过程中,如GATE变为低电平,这时只是暂停计数 ,等待GATE信号变为高电平后,计数器继续“减1”计数
例题,向8253的A1A=0 11B的地址写入0011 0000B,则表示 计数器0设置成方式0,并且采用16位时常数,假设时常数为 1500,则计数器0的初始化程序段如下:
通过计数通道的端口地址可以访问通道中的CR、OL,当对通 道进行写操作时,实际上表示将计数初值(即时常数)写入CR; 当对通道进行读操作时,表示将从OL中读取计数值。
8253的控制字
定时/计数器8253一共有6种工作方式,由控制字 寄存器的内容来设定。方式控制字如下所示:
D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RL1 RL0 M2 M1 M0 BCD
电源(+5V) 地
连接去向 CPU
译码电路 CPU CPU CPU 外部
外部 外部
/ /
8253的原理结构及工作原理
每个计数通道主要包含四个部件: 计数寄存器CR(Conut Register, 16位)、 计数工作单元CE(Counting Element, 16位)、 输出锁存器OL(Output Latch, 16位)、 控制字寄存器(Control Word Register, 8位)。
计数过程中写入新的时常数,它只能在下一次分频脉冲后起作用
方式2的特点:
➢在置方式2的控制字后,OUT端变为高电平;
➢在置入时常数后,下一个CLK脉冲期间,将时常数从CR读 入CE,并开始“减1”计数;
➢当CE计数到01时,在OUT端输出一个负脉冲,并重新读入 时常数进行计数;
微型计算机原理及接口技术第8章8253

计数器/定时器的内部结构
8253内部包含三个完全一样的计数器/定时器通道, 每个通道的工作是完全独立的
每个通道包含:
① 一个8位控制字寄存器:由编程设定该通道的工作方式、读 写格式和数制
② 一个16位计数初值寄存器:由程序设定初始计数值,可分 成高8位和低8位两个部分,可作8位寄存器使用
③ 一个计数器执行部件(实际的计数器):实际上是一个16 位减法计数器,它的起始值是初始寄存器的值,由程序设 定。可分成高8位和低8位两个部分
优点:电路结构简单,价格便宜,通过 改变电阻或电容值,可以在一定的定时 范围内改变定时时间
缺点:电路在硬件已连接好的情况下, 定时时间和范围就不能由程序来控制和 改变,而且定时精度也不高
555定时器外部引脚和内部结构
可编程硬件定时
定时原理:利用可编程定时器/计数器芯 片附加硬件电路实现定时
输出信号的波形由工作方式决定,同时还要受 到GATE引脚上的门控信号控制,它决定是否 允许计数
计数器/定时器的定时功能
当加到CLK引脚上的脉冲为精确的时钟脉 冲,可实现定时的功能。
定时时间决定于计数脉冲的频率和计数 器的初值。
定时时间=时钟脉冲周期×预置的计数初值
计数器/定时器的计数功能
方式1:可编程单稳态输出方式
写入控制字后OUT初始状态:高电平 门控信号GATE的作用:①高电平或低电平均不起作用;
②只有在GATE发生由低到高的正跳变,输出OUT由高
到低跳变,并开始计数;③在计数过程中,若GATE产 生负跳变,不影响计数;④在计数器回0之前,GATE 又产生由低到高的正跳变,8253又将初始值装入,重 新开始计数,使生成脉冲加宽。 计数过程中OUT状态:保持低电平 计数结束OUT状态:发生由低到高的正跳变。 计数器回0后,是否重新计数:否 应用:用于定时
第8章计数器8253

OUT DX, AL;写入工作方式控制字
MOV AL, 46H;计数值的低字节
MOV DX, 04C0H;设置8253计数器0地址
OUT DX, AL;写入计数值的低字节
MOV AL, 10110100B;二进制,方式2,写入16位数,计数器2
MOV DX, 04C6H;控制口地址
OUT DX, AL
(1) 输出锁存器锁存或停止计数以保存当前计数值 读出当前的计数值有两种方法: ① 把当前计数值输出的锁存器锁存 ② 通过GATE门控信号发一低电平信号,使计数 执行单元不作减1操作,计数过程停止。
9
(2) 从输出锁存器读数
注意:读8位和读16位的问题
若是读16位的数据,需分两次读出。
先读低字节,再读高字节,即执行两次输入指令。
moval30h控制字送almovdx126h控制口地址送dxoutdxal向控制口写入控制字moval88h低8位计数值是88hmovdx120h通道0端口地址送dxoutdxal向通道0写入计数初值的低8位moval66h高8位计数值为66houtdxal向通道0写入计数初值的高8位21例假设8253的计数器0工作在方式5按二进制计数计数初值为46h
方式2、方式3中,可用电平触发,也可上升沿触发。
13
1. 方式0——计数结束产生中断
该方式下,门控信号决定计数的停止或继续,装入 初值决定计数过程重新开始。计数过程波形图为:
14
2. 方式1——可重复触发的单稳态触发器 该方式是在门控信号的作用下才开始计数
15
3. 方式2——分频器 该方式下用门控信号达到同步计数的目的
16
4. 方式3——方波发生器 工作过程同方式2,只是输出的脉宽不同。
第八章_可编程计数器定时器8253及其应用(车辆)

1、软件定时:利用微处理器执行一个延时程序段实现。
通用性、灵活性好,不需硬件;但在定时过程中,占用CPU的
时间资源。
2、不可编程硬件定时:采用分频器、单稳电路或简
易定时电路等硬件控制定时时间。通用性、灵活性差,其电
路参数决定后,无法改变定时时间。但不占用CPU的时间。
ห้องสมุดไป่ตู้
3、可编程硬件定时:软件硬件相结合、用可编程定时
25
2017/3/12
第8章 可编程计数器定时器8253及其应用
2)连接
接口地址: FF04H~FF07H
图
26 8253 与8088系统总线的连接
2017/3/12
第8章 可编程计数器定时器8253及其应用
5 8253初始化及其应用
8253无复位引脚,上电后各寄存器的值不定,其工作方
式也是随机的。使用前必须对其进行初始化。
(假定计数值只有低8位),其程序段为
MOV DX,307H AL,01000000B
;命令口 ;1号计数器的锁存命令 ;写入命令寄存器 ;1号计数器数据口
L :MOV
OUT DX,AL MOV DX,305H
IN AL,DX
CMP AL,0FFH JNE L HLT
12
;读1号计数器的当前计数值
28
另一种初始化编程顺序 2017/3/12
第8章 可编程计数器定时器8253及其应用
程序段1如下:(假设端口地址40H、41H、42H、43H)
MOV AL,36H ;计数器0,双字节,方式3,二进制计数
OUT
MOV OUT OUT
43H,AL
AL,0 40H,AL 40H,AL
第08章 可变程计数器8253及其应用精品PPT课件

输出信号的波形主要由工作模式决定,同 时还受到从外部加到GATE引脚上的门控信 号控制,它决定是否允许计数。
当用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. 用输出指令向控制字寄存器写入一个控制字,以选
当用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. 用输出指令向控制字寄存器写入一个控制字,以选
硬件技术基础第八章可编程定时计数器8253

读/写控制逻辑
读/写逻辑接收系统控制总线的输入信号,然后依次 产生整个器件操作的控制信号,通过片选信号来控制读/ 写逻辑的工作,没有被选中,读/写逻辑操作功能不会发 生变化。这时,8253不再与CPU交换信息,数据总线缓冲 器呈三态,芯片从系统数据总线上脱开。
概述
控制字寄存器
当A1A0的值为11时,选中控制字寄存器。
初始化编程的内容为:必须先写入每一个通道的控 制字,然后写入通道的计数值。如前所述,在有些方式 下,写入计数值后此计数值通道就开始工作了,而有的 方式需要外界门控信号的触发启动。
在初始化编程时,某一通道的控制字和计数值,是 通过两个不同的端口地址写入的。任一通道的控制字都 是写入到控制字寄存器(地址总线低两位A1A0=11),由 控制字中的D7D6 来确定是哪一个通道的控制字;而计数 值是由各个通道的端口地址写入的。
概述
概述
若8253的地址为04H~07H,要使计数器1工作在方式0, 仅用8位二进制计数,计数值为128。 初始化程序为: MOV OUT MOV AL,50H 07H,AL AL,80H ;设控制字 ;输至控制字寄存器 ;计数值
OUT
05H,AL
;输至计数通道1
概述
方式1——可编程序的单拍脉冲 在这种方式,当CPU写控制字之后(的上升沿),输 出将保持为高(若原为低,则由低变高)。当CPU写完计 数值后,计数器并不开始计数,直到外部门控脉冲GATE启 动之后的下一个输入CLK脉冲的下降沿开始计数,输出OUT 变低。 整个计数过程中,OUT都维持为低,直到计数到0, 输出变为高,因此,输出为一个单拍脉冲。若外部再次触 发启动,则可以再产生一个单拍脉冲。
;写入控制字 ;写计数值的低8位 ;写计数值的高8位
第八章可编程计数器定时器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é):各种
微机原理-8253

8253工作方式特点: 8253工作方式特点: 工作方式特点
方式0 在写入控制字后,输出端即变低,计数结束后, 方式0,在写入控制字后,输出端即变低,计数结束后,输 出端由低变高,常用该输出信号作为中断源。 出端由低变高,常用该输出信号作为中断源。 方式1 用来产生单脉冲。 方式1,用来产生单脉冲。 方式2 用来产生序列负脉冲,每个负脉冲的宽度与CLK脉冲 方式2,用来产生序列负脉冲,每个负脉冲的宽度与CLK脉冲 CLK 的周期相同。 的周期相同。 方式3 用来产生连续的方波。方式2和方式3 方式3,用来产生连续的方波。方式2和方式3都实现对时钟 脉冲进行n分频。 脉冲进行n分频。 方式4和方式5 波形相同,都在计数器回0 方式4和方式5的波形相同,都在计数器回0后,从OUT端输出 OUT端输出 一个负脉冲,其宽度等于一个时钟周期。 一个负脉冲,其宽度等于一个时钟周期。 方式0 方式0、1和4,计数初值装进计数器后,仅一次有效。方式2,3 计数初值装进计数器后,仅一次有效。方式2 在减1计数到0值后,8253会自动将计数值重装进计数器 会自动将计数值重装进计数器。 和5,在减1计数到0值后,8253会自动将计数值重装进计数器。
可编程定时器/计数器8253
8253可编程定时器 计数器的主要性能: 可编程定时器/计数器的主要性能 可编程定时器 计数器的主要性能: 个独立的16位计数器 有3个独立的 位计数器 个独立的 工作方式可编程控制 计数脉冲频率0~2MHz 计数脉冲频率 可以按二进制或BCD码计数 可以按二进制或BCD码计数 使用单一+5V电源 电源 使用单一
方式2:频率发生器(n分频器)
CLK
WR
GATE OUT
n=4
4
3 2
1 0 4 3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、初始化
在使用8253时都要由CPU对8253写入控制字,以确定8253的 工作方式,这个设置过程称为初始化。
初始化有两个控制命令字:方式选择控制字和计数常数字。
方式选择字写入控制口,计数常数字写入相应通道内。
例1:将计数器通道2初始化为工作方式3,计数初值为533H, 为二进制计数方式,设计数器地址为40H-43H。
2.引脚
3.功能 (1)具有三个独立的16位计数通道;
(2)每个计数通道可按二进制或二-十进制计数;
(3)具有计数和定时功能,基于减1计数工作;
(4)定时器减为0后,可自动装入定时常数初值,并产生输出信 号;
(5)每个计数通道有六种工作方式;
(6)8253实质上是计数器,但计数器的脉冲输入端如果送定时 脉冲就可以做定时器用。作为计数器时减到0之后输出一个信 号,此时计数过程结束;作为定时器时,减到0后输出一个信 号接着自动装入计数初值并开始下一个周期的计时。
一、8253结8 数据总线缓冲器
A0 A1
RD 读/写逻辑
WR
CS
控制字寄存器
计数器0 计数器1 计数器2
内部总线
CLK0 GATE0 OUT0
CLK1 GATE1 OUT1
CLK2 GATE2 OUT2
(1) 数据总线缓冲器
这是8253与CPU的数据总线(D7~D0)连接的8位双向三态缓冲器。
CPU用输入输出指令对8253进行读写操作时的所有信息都通过这个缓冲 器传送。
(2) 读/写逻辑
这是8253内部操作的控制电路,它从系统控制总线上接收输入信号,然 后转换成8253内部操作的各种控制信号。
(3)控制字寄存器
当地址信号A1和A0都为1时,访问控制字寄存器。
控制字寄存器从数据总线上接收CPU送来的控制字,并由控制字的D7、 D6两位的编码决定控制字写入哪个通道的控制寄存器中去。
计数器变化。
CLK GATE
锁存后读 出当前值
&
装入初值
LSB
MSB
16位当前计数值锁存器
16位减一计数器
16位计数初值寄存器
LSB
MSB
OUT (减1至
0时)
因8253是减计数器,故计数初值越大,则计数减至0所用 时间(即定时时间)就越长,但由于8253是先减1,再判 是否到0,故最长的定时时间是设置计数初值为0,代表 65536。
OUT 71H,AL
;计数初值低8位
MOV AL,AH
OUT 71H,AL
;计数初值高8位
例5:读取8253通道中的计数值
• 8253可用控制命令来读取相应通道的计数值,由于计数值是 16位的,而读取的瞬时值,要分两次读取,所以在读取计数 值之前,要用锁存命令,将相应通道的计数值锁存在锁存器 中,然后分两次读入,先读低字节,后读高字节。
• 如何定时
– 软件定时,由CPU执行指令序列所花费的时间来构成 一定的时间间隔,从而达到定时的目的。优点是节省 硬件;缺点是执行程序期间CPU一直被占 用,降低 了CPU效率。 例如:MOV CX , ××××H HERE: LOOP HERE
– 硬件定时,要用额外的硬件—计数/定时器,但可提 高CPU的利用率。
控制字:01110111 77H
MOV AL,77H OUT 43H,AL ;写计数器 1 的控制字 MOV AL,20H OUT 41H,AL ;写计数器 1 的低 8 位初值 MOV AL,40H OUT 41H,AL ;写计数器 1 的高 8 位初值
例3:计数器0,工作在模式2,计数初值和输出锁存器仅使用 低8位,初值为100,计数值为二进制格式,设寄存器地址为 70H-73H。
十进制计数时范围是0001~10000,其中当计数初值寄存 器为0000H代表十进制数10000。
计数取值范围在二进制计数时是0001H~10000H,其中 10000H代表65536,在计数初值寄存器中的值是0000H。
可以从8253中读出当前计数值,但其读出过程是:先将当 前计数初值写入到输出锁存器,然后再从输出锁存器中读出, 同时,8253还在不停地进行减计数,虽然输出锁存器中的 值不变,但减计数单元却在不断地减计数,因此,从输出锁 存器中读出的值并不一定是真正的当前计数值。
MOV AL,00010100B ;控制字
OUT 73H,AL
MOV AL,100
;计数初值
OUT 70H,AL
例4:计数器1,工作在模式1,初值为1234,先写入低8位, 再写高8位,计数值为二进制,设寄存器地址为70H-73H。
MOV AL,01110010B ;控制字
OUT 73H,AL
MOV AX,1234 ;1234装入AX转换二进制
由寄存在每个通道内的控制寄存器的内容决定该通道的工作方式,选择计 数器是按二进制还是BCD数计数,并确定每个计数器初值的写入顺序。
(4) 计数器0、计数器1、计数器2
这是三个计数器/定时器通道,每一个都由16位的可设置计数初值的减法 计数器构成。
三个通道的操作是完全独立的。每个通道都有两个输入引脚CLK和GATE 以及一个输出引脚OUT。
控制字:10110110 B6H
MOV AL,0B6H OUT 43H,AL MOV AX,533H OUT 42H,AL MOV AL,AH OUT 42H,AL
;计数器2,先低后高字节 ;写命令字
;计数初值 ;写计数值低位
;写计数值高位
例2:8253工作为计数器1,方式3,初值为4020D,设计数器 地址为40H-43H。
第八章 计数/定时器8253
• 8-1 8253简介 • 8-2 8253应用举例
8-1 8253简介
一、8253结构及引脚功能 二、8253工作方式 三、8253初始化
• 定时/计数器的作用
– 生产线上统计产品的数目----计数器 – 系统的动态存储器刷新----定时器 – 系统时钟计时----定时器 – 扬声器的频率源----定时器
每个通道(计数器)是16位二进制计数器,每个计数器中有3 个寄存器。
(1)初值寄存器:初始化时写入该计数器的初始值。
(2)减一计数器:初值寄存器写入减一计数器,减1到0为止。
(3)计数值锁存器:在计数器工作的过程中,跟随计数值的 变化,在接收到CPU发来的读计数值命令时,用以锁存计 数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1