第八章计数定时器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
第八章-计数器定时器8253
1、硬件串联
CLK0 GATE0 OUT0
+5V CLK1
GATE1 OUT1
2、软件计数,开辟内存单元
例4 利用8253提供可编程的采样信号 (P322) C/T0,时钟频率F, 初值L,模式2 C/T1,时钟频率? ,初值M,模式1 C/T2,时钟频率F ,初值N,模式3
第8章:8.2 8253在IBM PC系列机上的应用 8253
§8.2 可编程计数器/定时器8253
§8.2 可编程计数器/定时器8253 一、8253的结构和工作原理
8254是8253的改进型
§8.2 可编程计数器/定时器8253
D7~D0
数据总线 缓冲器
内
RD
部
WR
读写控制
A0
逻辑
数
A1
据
CS
总
控制字
寄存器
线
计数器0 计数器1 计数器2
CLK 0 GATE 0 OUT 0
01 计数器101 只读写低字节001 方式1
10 11
计数器2 10 非法 11
只读写高字节010 先后读读写写低高字字节节011100101
方式2 方式3 方式4 方式5
0 二进制 1 十进制
控制字写入控制字I/O地址(A1A0=11)
示例
第8章:2. 写入计数值
选择二进制时
计数值范围:0000H~FFFFH 0000H是最大值,代表65536
器(方式3),要求输出为10个时钟周期的方 波,写出所需的命令字。
设8253的地址:0060H~0066H
MOV AL, 01010111B OUT 66H, AL MOV AL, 10H OUT 62H, AL
第八章 可编程计数器定时器8253及其应用
WR
LSB=4 CR=4
CLK GATE
OUT CRCE 4 CRCE 2 4 CRCE 2 4 CRCE 2 4 CRCE 2 4
8253方式3 计数初值为奇数时的波形 CW=16H WR LSB=5
CR=5
CLK GATE OUT
CRCE
5 4
CRCE 2 5 2
CRCE 5 4
CRCE 4 3
8253方式0
两种特殊情况:
中途改变计数初值
CW=10H WR CR=3 CLK GATE OUT CR=3 LSB=3
LSB=3
CRCE 3 2
CRCE 1 3 2
1
0
8253方式1
2、方式1——可编程单稳态输出方式
时序图
CW=12H WR
LSB=3 CR=3
CLK GATE
OUT
CRCE
CRCE 3 2
1
0
8253方式1
工作过程
① 写入控制字,OUT立即变为高,并保持不变。 ② 写计数初值N,只有当GATE形成一个上升沿时,才在
下一个时钟脉冲的下降沿,将n装入实际计数器,同 时OUT由高变为低,开始减1计数(再来一个脉冲)。
③ 计数期间,OUT一直为低;当计数结束(计数值为0)
8253综述
Intel 8253是一种可编程的计数器/定时器芯片。 8253内部具有3个独立的16位计数器通道,通过对
它进行编程,每个计数器通道均有6种工作方式,并 且都可以按2进制或10进制2种格式进行计数,最高 计数频率能达到2MHz。 8253还可用作可编程方波频 率产生器、分频器、程控单脉冲发生器等。
教材第八章内容
第八章 可编程计数器/定时器8253及应用
LSB=4 CR=4
CLK GATE
OUT CRCE 4 CRCE 2 4 CRCE 2 4 CRCE 2 4 CRCE 2 4
8253方式3 计数初值为奇数时的波形 CW=16H WR LSB=5
CR=5
CLK GATE OUT
CRCE
5 4
CRCE 2 5 2
CRCE 5 4
CRCE 4 3
8253方式0
两种特殊情况:
中途改变计数初值
CW=10H WR CR=3 CLK GATE OUT CR=3 LSB=3
LSB=3
CRCE 3 2
CRCE 1 3 2
1
0
8253方式1
2、方式1——可编程单稳态输出方式
时序图
CW=12H WR
LSB=3 CR=3
CLK GATE
OUT
CRCE
CRCE 3 2
1
0
8253方式1
工作过程
① 写入控制字,OUT立即变为高,并保持不变。 ② 写计数初值N,只有当GATE形成一个上升沿时,才在
下一个时钟脉冲的下降沿,将n装入实际计数器,同 时OUT由高变为低,开始减1计数(再来一个脉冲)。
③ 计数期间,OUT一直为低;当计数结束(计数值为0)
8253综述
Intel 8253是一种可编程的计数器/定时器芯片。 8253内部具有3个独立的16位计数器通道,通过对
它进行编程,每个计数器通道均有6种工作方式,并 且都可以按2进制或10进制2种格式进行计数,最高 计数频率能达到2MHz。 8253还可用作可编程方波频 率产生器、分频器、程控单脉冲发生器等。
教材第八章内容
第八章 可编程计数器/定时器8253及应用
第八章__定时器计数器8253
3.
引脚及其功能
• 数据线D7~D0:双向、三态。用于将8253/8254芯片与 系统数据总线相连,在芯片与CPU之间传送数据、命令 、状态信息。 • A1A0:片内端口选择线,输入。这两根线一般接到系 统地址总线的A1、A0 上。当-CS=0时8253/8254芯片被 选中,这两位地址线用来选择片内四个端口地址(三个 计数器的端口和一个控制字寄存端口),以便进行读写。 (当A1A0=00、01、10时,分别选计0、计1、计2) • 当A1A0=11时选中片内的控制寄存器,将命令字写入其 中。该控制寄存器只写,不可读。 • CLK:计数器时钟(计数脉冲)输入端。三个独立的 计数器,各自有一个独立的输入时钟脉冲信号CLK0、 CLK1、CLK2,每输入一个时钟脉冲信号CLK,计数器 中同步递减计数器CE的当前计数值便减1,进行计数或 定时控制。
2.
方式1(可编程单脉冲发生器)
• 在该方式中,写入方式命令字和装入计数初 值到计数寄存器后,计数器输出端OUT为高 电平。在GATE输入端出现一个上升沿后,计 数器使输出端OUT降为低电平,开始计数; 当计数值减到0,输出端恢复为高电平,完成 一个单脉冲输出过程。 显然输出端负脉冲的宽度与计数值的大小有 关,设预置计数值为N,计数时钟周期为TCLK, 那么输出负脉冲宽度就是N×TCLK。所以这是 一个可编程控制的单稳态发生器,如下图所 示。
(1) 控制字写入计数器时,所有的控制逻辑电路立即复位, 输出端OUT进入初始状态。该初始状态与工作方式有关, 设置成方式0时,OUT的初始状态为低电平,设置成其他工 作方式,OUT的初始状态为高电平。 (2) 初始值写入初值计数器CR以后,要经过一个时钟脉冲的 上升沿和下降沿,将初值送入计数执行单元,计数执行单 元从下一个时钟开始进行计数。 (3) 通常,在时钟脉冲CLK的上升沿对门控信号GATE进行采 样,各计数器的门控信号的触发方式与工作方式有关。在 方式0、方式4中,门控信号为电平触发;方式1、方式5中, 门控信号为上升沿触发;方式2、方式3中,即可用电平触 发,也可用上升沿触发。 (4) 在时钟脉冲的下降沿计数器进行计数。0是计数器所能 容纳的最大初值,因为用二进制计数时,16位计数器,0 相当于216,用BCD码计数时,0相当于104。
实验八定时器计数器8253实验
8253是Intel公司生产的一款可 编程定时器计数器。
它具有3个独立的16位计数器, 每个计数器都可以独立编程和控
制。
8253的计数器可以用于产生时 间间隔、脉冲信号、PWM(脉
宽调制)等。
8253的工作原理
825ቤተ መጻሕፍቲ ባይዱ的每个计数器都有一个预置 值,当计数达到预置值时,计数 器会自动回置并触发一个中断或
实验八:定时器计数器8253实验
contents
目录
• 实验简介 • 8253定时器计数器概述 • 实验步骤与操作 • 实验结果与分析 • 实验总结与思考
01 实验简介
实验目的
掌握8253定时器计 数器的工作原理。
了解定时器在计算机 系统中的应用。
学习如何编程控制 8253定时器计数器。
实验设备
01
微机实验箱
02
8253定时器计数器芯片
03
示波器
04
信号发生器
02 8253定时器计数器概述
定时器计数器的基本概念
定时器计数器是一种用于产生 时间间隔或计数的电子设备。
它通常由石英晶体振荡器驱动, 以提供稳定的计时基准。
定时器计数器广泛应用于计算 机、通信、自动化等领域。
8253的特性和功能
配置8253定时器计数器
设置工作模式
根据实验要求,选择适当的定时/计数 模式,如计数模式、定时模式或门控 模式等。
设置定时/计数初值
启动定时/计数
通过微处理器发送控制信号,启动 8253定时器计数器的定时/计数操作。
根据实验要求,设置适当的定时/计数 初值,以满足实验条件。
启动和观察实验结果
启动实验
加强实践环节
为了更好地理解和掌握相关知识,建议增加更多的实践环节,例 如组织小组讨论、分享经验等。
第八章 计数定时器8253
可以从8253中读出当前计数值,但其读出过程是:先将当 前计数初值写入到输出锁存器,然后再从输出锁存器中读 出,同时,8253还在不停地进行减计数,虽然输出锁存器 中的值不变,但减计数单元却在不断地减计数,因此,从 输出锁存器中读出的值并不一定是真正的当前计数值。
2.引脚
3.功能
(1)具有三个独立的16位计数通道;
电子钟8253初始化程序段: MOV AL,00100111B MOV DX,113H OUT DX,AL MOV AL,40H MOV DX,110H OUT DX,AL MOV AL,01100101B MOV DX,113H OUT DX,AL MOV AL,10H MOV DX,111H OUT DX,AL
装入初值
因8253是减计数器,故计数初值越大,则计数减至0所用时 间(即定时时间)就越长,但由于8253是先减1,再判是否 到0,故最长的定时时间是设置计数初值为0,代表65536。
十进制计数时范围是0001~10000,其中当计数初值寄存器
为0000H代表十进制数10000。
计数取值范围在二进制计数时是0001H~10000H,其中 10000H代表65536,在计数初值寄存器中的值是0000H。
电子钟中断子程序: MOV AL,MAX ADD AL,1 DAA MOV MAX,AL CMP AL,60H JNZ NEXT MOV BYTE PTR MAX,0 MOV AL,MAX+1 ADD AL,1 DAA MOV MAX+1,AL CMP AL,60H JNZ NEXT
MOV BYTE PTR MAX+1,0 MOV AL,MAX+2 ADD AL,1 DAA MOV MAX+2,AL CMP AL,24H JNZ NEXT MOV BYTE PTR MAX+2,0 NEXT:MOV AL,20H OUT 20H,AL IRET
2.引脚
3.功能
(1)具有三个独立的16位计数通道;
电子钟8253初始化程序段: MOV AL,00100111B MOV DX,113H OUT DX,AL MOV AL,40H MOV DX,110H OUT DX,AL MOV AL,01100101B MOV DX,113H OUT DX,AL MOV AL,10H MOV DX,111H OUT DX,AL
装入初值
因8253是减计数器,故计数初值越大,则计数减至0所用时 间(即定时时间)就越长,但由于8253是先减1,再判是否 到0,故最长的定时时间是设置计数初值为0,代表65536。
十进制计数时范围是0001~10000,其中当计数初值寄存器
为0000H代表十进制数10000。
计数取值范围在二进制计数时是0001H~10000H,其中 10000H代表65536,在计数初值寄存器中的值是0000H。
电子钟中断子程序: MOV AL,MAX ADD AL,1 DAA MOV MAX,AL CMP AL,60H JNZ NEXT MOV BYTE PTR MAX,0 MOV AL,MAX+1 ADD AL,1 DAA MOV MAX+1,AL CMP AL,60H JNZ NEXT
MOV BYTE PTR MAX+1,0 MOV AL,MAX+2 ADD AL,1 DAA MOV MAX+2,AL CMP AL,24H JNZ NEXT MOV BYTE PTR MAX+2,0 NEXT:MOV AL,20H OUT 20H,AL IRET
第8章:定时计数器8253
一、内部结构
8253定时/计数器的工作原理 定时/计数器的核心部件为可预置初值计数器。 预置初值后开始计数,CLK信号每输入一个脉冲, 计数值减1,一直减到0,并且OUT脚同时产定时器 的容量即位数
GATE门控 信号 计数脉冲 CLK 输入
可预置初值计数器
允许 允许 ——
三、设置工作方式和计数值 对8253设置工作方式和设置计数值是连续 进行的。 步骤是:
1、对控制端口写:设置工作方式及计数值格式 2、对计数端口写:计数值低8位(可选) 3、对计数端口写:计数值高8位(可选)
控制字格式:
D7 SC1
D6 SC0
D5 RL1
D4 RL0
D3 M2
OUT 输出
计数初值
说明: 1、每个计数器各有三根I/O线 CLK:时钟信号输入 OUT:计数器输出 GATE:门控信号,用于启动或允许计数器工作
2、通过对控制寄存器写操作,来设置工作方式。 3、有A1A0两条地址线,在PC机中的端口地址是40H~43H。 A1 A0 端口 定义 0 0 40H 0#计数器 0 1 41H 1#计数器 1 0 42H 2#计数器 1 1 43H 控制寄存器
D2 M1
D1 M0
D0 BCD
SC1 SC0 :选择计数器(0#,1#,2#) M2M1M0:设置工作方式(0~5) RL1 RL0 00 01 10 11 设置计数值格式 当前计数值锁存到输出缓冲器 写 / 读计数值的低8位 写 / 读计数值的高8位 写 / 读计数值的16位(先低8位,后高8位)
每次设置
方式 5
启动点
只设一次
启动方式的比较: 工作方式 方式 0 方式 1 启动方式 软件触发 硬件触发
可编程定时计数器8253及其应用
CW=1A WR
LSB=3
CLK
GATE
OUT
3 2 3 2 1 0 FF
* 计数器只计数一次; * OUT是N+1个CLK后变低; * 在 计数过程中出现的GATE脉 冲, 将使 计数器重新开始计数,
对输出状态没有影响;
* 若在计数过程中改变计数值, 只要没有GATE信号触发,不影 响计数过程。有新的GATE信号 触发则按新的计数值开始计数。
在计数过程中,8253读计数器现行值的方法: (将计数值存入内部锁存器)
MOV OUT IN MOV IN MOV
AL,03H ;计数器0的锁存命令 0FBH,AL;写入控制寄存器 AL,0F8H ;读低8位 CL,AL ;存入CL中 AL,0F8H ;读高8位 CH,AL ;存入CH中
例2:用8253产生各种定时波形。
CW=16 WR
LSB=5
CLK GATE=1
OUT
5 42 5 2 5 4 2 52
*GATE信号控制计数过程;
*计数过程中写入新的计 数值将在半周期结束时装 入计数器。
例:要求计数器0工作于方式3,输出方波的频率为2KHz,计数 脉冲的频率为2.5MHz,采用BCD计数,试写出初始化程序段。
1. 8253的端口地址为:80H,81H,82H,83H。
* 写入控制字OUT=1, 写入常数不计数;
* GATE启动计数, OUT=0;
CW=12 LSB=3 WR
CL二K . 8253-PIT的工作方式
GATE
* 计数到,OUT=1。
OUT
32
1 0 FF 3
CW=12 LSB=3
WR
CL二K . 8253-PIT的工作方式
第八章 可编程计数器定时器8253及其应用
6
习题 CH8 8253
答(续上题): 计数器1工作在方式2,即分频器的方式.输出波形的频 率f=fclk/N=2MHZ/3000=666.7HZ,其周期为1.5ms,输出负 脉冲的宽度等于CLK的周期为0.5s. 方式3,即方波发生器的方式.输出频率 f=2MHZ/1000=2000Hz的对称方波. 三个OUT的输出波形如下:
3kHz +5V
产品计数脉冲
+5V
装箱脉冲
1
习题 CH8 8253
1.写出相关定时/计数器的工作方式,并简述理由. 答:T0的工作方式为1,因为方式1需要外触发才能计数,并且 在计数过程中OUT端输出低电平(2分) T1的工作方式为0, 因为方式0下计数器计数结束后,输出一个上升沿.(2分) 2.计算相关定时/计数器的计数初值. 答:计数器0的初值等于2秒钟计数的个数,即6000.(1分) 计数器1的初值等于19.(1分)
5
习题 CH8 8253
设8253的计数器0,工作在方式1,计数初值为2050H; 计数器1,工作在方式2,计数初值为3000;计数器2,工 作在方式3,计数初值为1000.如果三个计数器的GATE都 接高电平,三个计数器的CLK都接2MHz时钟信号,试画出 OUT0,OUT1,OUT2的输出波形. 答:计数器0工作在方式1,即可编程单稳态方式.这种方 式下, GATE必须有个上升沿,计数器才能启动.而GATE 接了高电平,当方式控制字写入后OUT0变高,计数器无 法启动,所以OUT0一直为高电平.
2
习题 CH8 8253
3.编写8253的初始化程序片断(8253占用地址90H~93H). 答:
MOV AL,00110011B ;通道0,方式1,BCD OUT 93H,AL MOV AL,00H OUT 90H,AL MOV AL,60H OUT 90H,AL OUT 93H,AL MOV AL,19 OUT 91H,AL (1分)
习题 CH8 8253
答(续上题): 计数器1工作在方式2,即分频器的方式.输出波形的频 率f=fclk/N=2MHZ/3000=666.7HZ,其周期为1.5ms,输出负 脉冲的宽度等于CLK的周期为0.5s. 方式3,即方波发生器的方式.输出频率 f=2MHZ/1000=2000Hz的对称方波. 三个OUT的输出波形如下:
3kHz +5V
产品计数脉冲
+5V
装箱脉冲
1
习题 CH8 8253
1.写出相关定时/计数器的工作方式,并简述理由. 答:T0的工作方式为1,因为方式1需要外触发才能计数,并且 在计数过程中OUT端输出低电平(2分) T1的工作方式为0, 因为方式0下计数器计数结束后,输出一个上升沿.(2分) 2.计算相关定时/计数器的计数初值. 答:计数器0的初值等于2秒钟计数的个数,即6000.(1分) 计数器1的初值等于19.(1分)
5
习题 CH8 8253
设8253的计数器0,工作在方式1,计数初值为2050H; 计数器1,工作在方式2,计数初值为3000;计数器2,工 作在方式3,计数初值为1000.如果三个计数器的GATE都 接高电平,三个计数器的CLK都接2MHz时钟信号,试画出 OUT0,OUT1,OUT2的输出波形. 答:计数器0工作在方式1,即可编程单稳态方式.这种方 式下, GATE必须有个上升沿,计数器才能启动.而GATE 接了高电平,当方式控制字写入后OUT0变高,计数器无 法启动,所以OUT0一直为高电平.
2
习题 CH8 8253
3.编写8253的初始化程序片断(8253占用地址90H~93H). 答:
MOV AL,00110011B ;通道0,方式1,BCD OUT 93H,AL MOV AL,00H OUT 90H,AL MOV AL,60H OUT 90H,AL OUT 93H,AL MOV AL,19 OUT 91H,AL (1分)
第8章 可编程定时计数器8253
8.2.3 8253的工作方式
8253的每个通道均可以通过编程选择6种工作方式
1.方式0:计数结束产生中断
(1)工作过程:工作波形如图。 控制字CW写入控制寄存器后, 在写信号的上升沿,输出信号 OUT变为低电平且在计数过程 中一直维持低电平。 开始计数要有两个条件:一 是门控信号GATE必须为高 电平,二是写入计数器初值。 如图,满足以上两个条件后(计数初值N=4),在每个CLK时钟下降沿, 计数器进行减1计数,直到计数值减到0时,输出OUT变为高电平,并且 一直保持到该通道重新装入计数初值或重新设置工作方式为止。
8.2.3 8253的工作方式
2.方式1:可重复触发的单稳态触发器
(2)方式1的主要特点:
①可重复触发的单次脉冲,即:当计数 到零后,不用再次送计数初值,只要再 次由GATE触发,8253可以再输出一个 同样宽度的单稳脉冲,如图8.6所示。 ②若设置的计数初值为N,则输出的单 稳脉冲的脉宽为N个CLK时钟周期间隔。 ③如果在计数器未减到零时,GATE又 一次触发,则计数器将从初值开始重新 计数,从而使输出负脉冲加宽。 ④在计数过程中,改变计数初值,计数 过程不受影响。只有再次出发启动后, 计数器才开始按新计数值输出单稳脉冲。
表8.1 A0、A1功能说明
A0A1 00 01 10 功能说明 可选择计数器0 可选择计数器1 可选择计数器2
11
可选择控制寄存器
8.2.2 8253的内部结构
RD / WR:读/写控制信号,低电平有效。 CS :片选信号,低电平有效。 A0、A1、 RD 、 WR 、 CS 各信号配合实现8253的读/写操作, 如表8.2所示。
8.2.3 8253的工作方式
1.方式0:计数结束产生中断
第8讲_可编程计数(定时)器8253
21/38
三、8253的工作方式
(2)方式1:可重复触发的单稳态触发器(稳定在高,暂稳在 CW N=2 低) WR
CLK GATE OUT GATE OUT 2 1 2 1 0 2 1 0 2 1 0
提前触发,则输出脉冲加宽
硬件启动(触发:即边沿引起计数),不自动重复计数; 过程:写入控制字后OUT=1;写入计数初值后不计数,GATE 由低变高(触发)后下一个CLK下沿开始计数,OUT=0;减1 为0,OUT=1;OUT端输出N倍CLK的负脉冲。
第八讲 可编程计数器/定时器Intel8253
主要内容
计数/定时器8253引脚功能和内部结
构; 8253控制字/锁存字; 8253的6种工作方式及其使用; 8253应用:系统连接、初始化编程。
2/38
一、8253引脚和内部结构
1.1 概述 定时/计数器的用途? 可以实现定时与计数两个功能,常用于:系统时钟、 DRAM刷新定时、定时采样、实时控制(如:交通信号灯)、 事件/脉冲计数等。 如何实现定时? 软件方法:CPU执行一段程序实现延时。利用程序循环延 迟指定的时间;缺点:CPU占用率?延时精度?兼容? 硬件方法:不可编程的定时/计数器电路,如定时器555, 单稳触发器等;缺点:不可编程、不够灵活。
8/38
主要内容
计数/定时器8253引脚功能和内部
结构; 8253控制字/锁存字; 8253的6种工作方式及其使用; 8253应用:系统连接、初始化编程。
9/38
二、8253控制字/锁存字
1、 计数启动方法 软件启动:CPU用输出指令向计数器写入初值后启动计数; 硬件启动:写入初值后不启动计数,外部电路信号(GATE) 启动计数。 (1)软件启动过程 • 门控信号GATE端保持为高电平; • 写入计数初值后第1个CLK,初值寄存器内容送计数器(CE); • 第2个CLK下降沿计数器(CE)开始减1计数,直到为0,OUT端 输出一个信号; • 实际CLK个数比写入的计数初值N多一个,即N+1。 (2)硬件启动过程 写入计数初值后不启动计数;门控信号GATE端低变高 CLK上升沿采样GATE;有,则该CLK的下降沿开始计数。
第八章 8253
是否自动 重装初值
低 高 高 高 高 高
否 是 是 是 否 是
15
方式3 方式 方波发生器
上升沿,从初值n 上升沿,从初值n开始计数 高电平, 高电平,允许计数 低电平,禁止计数, 低电平,禁止计数,使输出变高
方式4 方式 软件触发选通
高电平, 高电平,允许计数 低电平, 低电平,禁止计数 上升沿,从初值n 上升沿,从初值n开始计数
9
初始化程序: 初始化程序: MOV AL ,37H OUT 46H ,AL ;设置控制字 写入计数初值, MOV AL ,54H ;写入计数初值,先低后高 OUT 40H ,AL MOV AL ,23H OUT 40H ,AL 读通道0计数结果,并送入CX CX寄存器 ;读通道0计数结果,并送入CX寄存器 MOV AL ,07H ;00 00 011 1=07H OUT 46H ,AL ;设置控制字 IN AL ,40H MOV CL ,AL IN AL ,40H 将通道0计数结果→ MOV CH ,AL ;将通道0计数结果→CX
11
8253 CLK
WR 写入控制字 8253 OUT 写入计 数初值 计数结束 4 3 2 1 0
n×TCLK ×
12
方式1 方式 可编程单稳态输出 可重触发 GATE触发 触发
GATE
OUT n×TCLK ×
方式2 方式2 比率发生器
相当n分频 相当n分频
计数初值=定时时间 计数初值 定时时间/ TCLK=fCLK/ fOUT 定时时间
10
五,8253的工作方式(6种) 8253的工作方式( 的工作方式
写入控制字,同时影响OUT端电平,为起始OUT OUT端电平 OUT端电平 ① 1. 写入控制字,同时影响OUT端电平,为起始OUT端电平 ② 写入计数初值n,使WR变为低电平,在WR的上升沿时,将 写入计数初值n WR变为低电平, WR的上升沿时, 变为低电平 的上升沿时 n→计数初值 计数初值R n→计数初值R GATE有效 再在下一个CLK时钟脉冲的下降沿 有效, 下一个CLK时钟脉冲的下降沿, ③ 当GATE有效,再在下一个CLK时钟脉冲的下降沿,将n → 计数执行部件,开始减1计数( 计数执行部件,开始减1计数(计数器随着时钟脉冲的输 入而递减计数) 入而递减计数) 1.方式 方式0 1.方式0 计数结束中断方式 OUT输出端波形 OUT输出端波形 从写入计数初值到开始减1之间,有一个时钟脉冲的延迟. 从写入计数初值到开始减1之间,有一个时钟脉冲的延迟. 详见后
- 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