Click here to load reader
Upload
martha-ayala
View
102
Download
7
Embed Size (px)
DESCRIPTION
[email protected]. 第九章 定时 / 计数器 8253. 5. 1. 2. 3. 4. 8253 内部 结构及工作原理. 8253 的控制字及工作方式. 8253 与系统总线的接口连接方法. 8253 引脚功能及特点. 8253 的应用和设计. Contents. 8253 简介. 定时. 分频. 方波. §9.1 8253 引脚功能及特点. - PowerPoint PPT Presentation
Citation preview
Contents
8253 引脚功能及特点1
8253 内部结构及工作原理2
8253 的控制字及工作方式3
8253 与系统总线的接口连接方法4
8253 的应用和设计5
§9.1 8253 引脚功能及特点
Intel8253是 8086/8088微机系统常用的定时 /计数器芯片,它具有定时,计数与分频三大功 能,同类型的定时 /计数器芯片还有 Intel8254等, 8253是 24脚双列直插芯片,用 +5V电源供电。
1、 8253的一般性能概述( 1 )每个 8253 芯片有 3 个独立的 16 位计数器通道。( 2 )每个计数器通道都可以按照二进制或二 -- 十进制计数。( 3 )每个通道有 6 种工作方式,可以由程序设定和改变。
§9.1 8253 引脚功能及特点
0 7D ~D
CS
RD
WR
0 1A ,A
0 2CLK ~CLK
0 2GATE ~GATE
引脚名 功 能 连接去向
数据总线(双向) CPU
片选信号 译码电路
读信号 CPU
写信号 CPU
端口地址 CPU
3个计数通道的输入时钟(计数脉冲)
外部
3个计数通道的控制信号 外部
3个计数通道的输出信号 外部
Vcc 电源( +5V) /
GND 地 /
0 7~OUT OUT
Intel 公司 生 产 的可 编 程 定时 / 计数器 8253 采 用 24脚的 DIP封 装 , 用作 为 分 频器 、 定 时信 号 产 生器等。
表 1 8253 引脚定义
§9.2 8253 的原理结构及工作原理
0计数器
GATE0CLK0
OUT0
GATE1CLK1OUT1
GATE2CLK2OUT2
地址线
RDWR
CS
A1A0
1计数器
2计数器
I nt el 8253
地址译码
D7 D0~
l l l
可编程定时 / 计数器 8253 的原理结构图
定时 /计数器8253 一共有三个独立的计数通道(也称计数器):计数器 0 、计数器 1 、计数器 2 。
§9.2 8253 的原理结构及工作原理定时 / 计数器 8253 占用 4 个端口地址,:
寻 址COUNTA 0 0 计数通道 0COUNTB 0 1 计数通道 1COUNTC 1 0 计数通道 2COUNTD 1 1 控制字寄存器
67DD
01AA
其中控制字寄存器用一个端口地址,由控制字中的 位来指定寻址哪个计数通道,其它 3 个计数通道各占用一个端口地址。为本章说明方便,将这四个地址分别用 COUNTA 、 COUNTB 、 COUNTC 和 COUNTD 表示。 通过计数通道的端口地址可以访问通道中的 CR 、 OL ,当对通道进行写操作时,实际上表示将计数初值(即时常数)写入CR ;当对通道进行读操作时,表示将从 OL 中读取计数值。
§9.3 8253 的控制字及工作方式
8253 共有 6 种工作方式
工作于哪种方式,由控制寄存器的内容来设定
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
选择计数通道 读写规则 工作方式 数据类型
D7 D6 D5 D4 D3 D2 D0D1
图 8253 的方式控制寄存器
§9.3 8253 的控制字及工作方式
三个计数通道的控制寄存器共用一个端口地址,由控制字中的位 ( 即 ) 来确定计数通道:
含 义 0 0 计数通道 0 0 1 计数通道 1 1 0 计数通道 2 1 1 保留
1 0SC SC67DD
1 0SC SC
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
选择计数通道 读写规则 工作方式 数据类型
D7 D6 D5 D4 D3 D2 D0D1
§9.3 8253 的控制字及工作方式
EG : 8253 的控制寄存器端口地址为 COUNTD要对计数器 0,1,2 的三个控制寄存器进行设置,需
要对 COUNTD 这个地址进行三次访问,执行 3次 OUT 指令才行。
MOV DX COUNTD ( 指向控制寄存器 )
MOV AL 00XXXXXX (对计数器 0 设置)OUT DX AL
MOV AL 01XXXXXX (对计数器 1 设置)OUT DX AL
MOV AL 10XXXXXX (对计数器 2 设置)OUT DX AL
方式控制字的位 (即 )用于设定计数通道的读写规则:
含 义0 0 计数通道的锁存命令,即将当前 CE 的内容锁存到 OL0 1 只读写 CR 或 OL 的低 8 位1 0 只读写 CR 或 OL 的高 8 位1 1 先读写 CR 或 OL 的低 8 位,再读写高 8 位
5 4D D
1 0RL RL
1 0RL RL
§9.3 8253 的控制字及工作方式
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
选择计数通道 读写规则 工作方式 数据类型
D7 D6 D5 D4 D3 D2 D0D1
如果是 16位时常数必须分两
次写为什么不能 一次送一个字?
§9.3 8253 的控制字及工作方式
方式控制字的 位( )用于设定计数通道的工作方式:
含 义 0 0 0 方式 0 0 0 1 方式 1 ×1 0 方式 2 ×1 1 方式 3 1 0 0 方式 4 1 0 1 方式 5
123 DDD
2 1 0M M M
2 1 0M M M
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
选择计数通道 读写规则 工作方式 数据类型
D7 D6 D5 D4 D3 D2 D0D1
§9.3 8253 的控制字及工作方式
方式控制字的最低位 (即 BCD 位)用于指定读写数据的格式,当 BCD=0 时,表示读写数据为二进制数,当 BCD=1 时,表示读写数据为两位十进制数。
0D
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
选择计数通道 读写规则 工作方式 数据类型
D7 D6 D5 D4 D3 D2 D0D1
§9.3 8253 的控制字及工作方式
8253 的初始化编程 EG. 8088 系统
上, 8253 的地址为40H~43H ,计数器 0 计数初值为 23 ,工作在工作方式 2 ,十进制计数;计数器 1 的计数初值为100 ,工作在工作方式0 ;计数器 2 计数初值为 1000 ,工作在工作方式 5 。试写出该 8253的控制字初始化程序段。
MOV DX, 43H MOV AL, 00110101B OUT DX, AL MOV AL, 01010000B OUT DX, AL MOV AL, 10111010B OUT DX, AL
§9.3 8253 的工作方式
名词介绍:( 1 ) CLK 脉冲:是指 CLK 上从上升沿到下降
沿的时间( 2 )计数器: 与计数通道的含义一致( 3 ) 时常数: 是指通过指令写入到计数器的
值,可以理解成计数器的初值。
§9.3 8253 的控制字及工作方式1 .方式 0 —— 计数达到终值时中断 功能:给定时间 t0 ,当到达时间 t0 时,需要进行某种操
作。1. 当写入方式控制字后, OUT=02. 写入时常数后,开始计数,计数器达到 0 时变高电平3. 再次写入时常数,开始新一轮计数
控制信号 GATE 可以暂停计数操作,来加长定时的时间(在时常数不变的情况下)
当 GATE = 0 时,表示相应的计数器暂停计数;当 GATE = 1 时,表示相应的计数器正常计数。
…
…
写方式控制字
写时常数
写时常数(4)
CLK
OUT
WR
CE的内容(N表示不确定值) N 04 03 02 00 FF
FF00000000CE的高位字节CE的低位字节 01
00
§9.3 8253 的控制字及工作方式
GATE=1 情况下方式 0 计数过程
N+1 个时钟周期
计数到达终值后,输出高电
平,但 CE 继续减 1 计数
减 1 计数到 00之前变成高电平
§9.3 8253 的控制字及工作方式
利用 GATE 信号加长 OUT 端的低电平宽度
写时常数(4)
CLK
OUT
WR
CE N 04 03 03 03 FFFF00000000
0300 00
030002
0001
0000
GATE
§9.3 8253 的控制字及工作方式
利用写入新的时常数加长 OUT 端的低电平宽度
写时常数(4)
CLK
OUT
WR
CE N 04 03 02 01 FFFF00000000
0400 00
030002
0001
0000
写时常数(4)
§9.3 8253 的控制字及工作方式
方式 0 具有下列一些特点: 在向 8253 置方式字或置时常数时, OUT 输出变成低电平; 置入时常数后,下一个 CLK 脉冲,使 CR 内容 ( 初值 ) 置入计数单元; 在后续 CLK 脉冲 , 进行“减 1”计数; 当计数至 0 时 ,OUT 由低变高 ,并继续计数 , 从 0 到 0FFFFH ; 上述计数过程要受 GATE 控制 , 当 GATE = 1 时允许计数,当 GATE = 0
时则暂停计数; 正常情况下,即 GATE=1 ,对计数器置入时常数 N 时,要经过 N+ 1 个
时钟周期才能使 OUT 输出高电平; OUT 端由低变高信号可用作为中断请求信号,表示已达到了预定的时
间; 在计数过程中,如 GATE 变为低电平,这时只是暂停计数,等待 GATE 信
号变为高电平后,计数器继续“减 1”计数。 在计数过程中,如果重新写入计数初值,就重新开始重新计数,延长 OUT
端的低电平。
§9.3 8253 的控制字及工作方式
例题,对 8253 (地址: 40H~43H )写控制字,将计数器 0 设置成工作方式 0 ,假设时常数为 1500 ,写出初始化程序: MOV DX, 43H
MOV AL, 0011 0000BOUT DX, AL
MOV DX, 40HMOV AX, 1500OUT DX, ALXCHG AL, AHOUT DX, AL
分析:1. 设置工作方式,通过写控制字实现2. 控制字分析:时常数 =1500 要用 16 位寄存器
00 11 000 0 B
3. 控制字端口地址: 43H4. 计数器 0 的地址: 40H5. 向计数器零写时常数 1500 反过来,给出控制自己,要能分
析出 8253 的工作方式
计数器的初始化分为两部分写控制字 和 写时常数
§9.3 8253 的控制字及工作方式
2 .方式 1 —— 硬件触发的单脉冲形成功能:用硬件触发形成单脉冲。1. 当写入方式控制字后, OUT=12. 写入时常数, OUT 端无变化3.GATE 上升沿触发计数开始,下一个时钟, OUT=04. 减 1 计数,计数器达到 0 时 OUT=1 写方式控制字
写时常数(4)
WR
OUT
CE N 04 03 02 0100000000
0000 FF
FF0004
0003
GATE
CLK
NN
(a)
§9.3 8253 的控制字及工作方式
写方式控制字
写时常数(4)
WR
OUT
CE N 04 03 02 0100000000
0000 FF
FF0006
0005
GATE
CLK
NN
(c)
写时常数(6)
在某次单脉冲完成之前,又写入了新的时常数,下次单脉冲才采用新时常数
§9.3 8253 的控制字及工作方式
方式 1 具有下列一些特点:在置方式 1 的控制字或置入时常数后,不影响输出, OUT 端仍输出高电
平;在 GATE 端输入有效的触发信号(上升沿),并经过一个 CLK 脉冲, OUT
变为低电平,作为单脉冲的开始,同时将 CR 读入 CE ,并开始“减 1”计数;
当 CE 计数到 0 之前, OUT 端变为高电平,表示本次单脉冲形成结束;正常情况下,当计数通道的时常数为 N 时,硬件触发所产生的单脉冲(低
电平)的宽度为 N 个计数时钟周期;每个触发信号都可以形成一个单脉冲,但如果在单脉冲低电平期间再加入触发信号,则可以使单脉冲宽度加宽;
在单脉冲形成期间,向 CR 置入新的时常数,但未加触发信号,则本次单脉冲的形成不受影响,之后的触发信号才使用新的时常数。
触发形式不一样:方式 0 : 软件触发,通过写时常数进行新一次计数的开始方式 1 : 硬件触发,通过 GATE0 的一次上升沿触发新一次计数的开始
输入方式一样:都是给定初值,进行减 1 计数输出形式一样:都是输出低电平信号,在计数器减到 0 以后转为高电平功能一样: 都是定时器
相同点
不同点
§9.3 8253 的控制字及工作方式
方式 0 和方式 1 的异同
持续时间不同:方式 0 : N+1 个时钟周期的低电平方式 1 : N 个时钟周期的低电平
§9.3 8253 的控制字及工作方式
例题,控制 8253 ,将计数器 2 设置为工作方式 1 ,时常数为 15 ,采用低 8 位寄存器计数,写初始化程序:
MOV DX, COUNTD ;MOV AL, 1001 0010BOUT DX, AL
MOV DX, COUNTC ;MOV AL, 15OUT DX, AL
分析:1. 设置工作方式,通过写控制字实现2. 控制字分析:时常数 =15 ,要低 8 位寄存器 1001 0010 B
3. 控制字端口地址: COUNTD4. 计数器 2 端口地址: COUNTC4. 向计数器零写时常数 15
§9.3 8253 的控制字及工作方式
EG. 8088 最大系统下, 8253 的地址范围为 370H~373H ,输入时钟为 1MHz 方波,先将计数器 0 和计数器 1 分别设置在工作方式 0和工作方式 1 ,时常数均为 7 ,写初始化程序, GATE 有效,画输出波形。
MOV DX, 373HMOV AL, 00010000BOUT DX, ALMOV AL, 01010010BOUT DX, AL
MOV DX, 370HMOV AL, 7OUT DX, ALMOV DX, 371HOUT DX, AL
?
?
§9.3 8253 的控制字及工作方式
EG. 8253 的计数器 0 和计数器 1 分别输出波形如下,写初始化程序。
MOV DX, COUNTDMOV AL, 00010000BOUT DX, ALMOV AL, 01010010BOUT DX, AL
MOV DX, COUNTAMOV AL, 7OUT DX, ALMOV DX, COUNTBOUT DX, AL
§9.3 8253 的控制字及工作方式
3 .方式 2 —— 分频脉冲形成
功能:方式 2 类似于 N 分频器,利用这种方式可以产生周期信号。
在正常情况下( GATE = 1 ), 将计数器设置成方式 2 后 ( 写完控制字 ) , OUT 端输出高电
平; 向 CR 置入时常数 N 后,下一个 CLK 脉冲开始“减 1”计数; 当计数到 0001H 时, OUT 端变为低电平,经过一个 CLK 脉
冲, OUT 端再次变为高电平,产生一个时钟周期的负脉冲, 与此同时,重新将时常数从 CR 读入 CE ,并继续计数。
这样,就可以产生周期为 N 的分频信号。
§9.3 8253 的控制字及工作方式
正常情况下(即 GATE = 1 )的分频脉冲形成,当时常数为N 时,则 OUT 产生的信号为计数时钟的 N 分频,高电平为( N - 1 )个计数时钟周期,低电平为 1 个计数时钟周期。
重点
§9.3 8253 的控制字及工作方式
GATE 信号的作用效果,当 GATE 为低电平时,计数器暂停计数, GATE 端的上升沿使计数器重新读入时常数。
硬件触发
§9.3 8253 的控制字及工作方式
方式 2 具有下列一些特点:在置方式 2 的控制字后, OUT 端变为高电平;在置入时常数后,下一个 CLK 脉冲期间,将时常数从 CR
读入 CE ,并开始“减 1”计数;当 CE 计数到 01 时,在 OUT 端输出一个负脉冲,并重新读
入时常数进行计数;正常情况下,当计数通道的时常数为 N 时, OUT 产生的信
号为计数时钟的 N 分频;OUT 产生的分频信号,有两种同步方式:向 CR 写入新的时
常数(称为软件同步)和在 GATE 端产生上升沿(称为硬件同步);
当 GATE = 0 时,计数器暂停计数。
§9.3 8253 的控制字及工作方式
EG ,用 8253 的计数器 1 生成 5 分频信号,采用低 8 位时常数计数。写初始化程序 ,画输出信号波形。
MOV DX, COUNTDMOV AL, 1001
0100BOUT DX, AL
MOV DX, COUNTB
MOV AL, 5OUT DX, AL
分析:( 1 ) 5 分频 计数器时常数 N=5( 2 )控制字分析: 01010100B
§9.3 8253 的控制字及工作方式
时常数计算EG1. 输入信号 CLK 频率为 2MHz ,输出信号
频率为 1KHz , 时常数 = ?EG2. 输入信号 CLK 周期为 1us ,输出信号周
期为 1.3ms , 时常数 = ?EG3. 输入信号 CLK 频率为 1MHz ,输出为如
下的周期信号, 时常数 = ?1.5ms
4ms
2000
1300
4500
3
§9.3 8253 的控制字及工作方式
4 .方式 3 —— 方波信号形成(分频)功能:方式 3 类似于方式 2 ,只是在 OUT 上产生对称的或近似对称的
方波。 输出信号的周期取决于输入时常数 N 当 N 为偶数时,输出对称方波 当 N 为奇数时,输出近似对称方波
(高电平比低电平多一个时钟周期)
N=4
N=5
§9.3 8253 的控制字及工作方式在正常情况下( GATE = 1 ),将计数器设置成方式 3 后,
OUT 端输出高电平;向 CR 置入时常数 N (设 N 为偶数)后,下一个 CLK 脉冲将
时常数从 CR 读入 CE ,并开始“减 2”计数。当计数到 0 时, OUT 端变为低电平;重新将时常数从 CR 读
入 CE ,并进行“减 2”计数。当计数到 0 时, OUT 端再次变为高电平,产生一个时钟周期
的方波信号。重复这一过程,可以产生周期为 N 的对称方波信号。
§9.3 8253 的控制字及工作方式
当设定的时常数 N 为奇数时, 在将时常数从 CR 读入 CE 时会自动减 1 ,使 CE 中的初值变成 N- 1 (偶数)
OUT 端输出高电平,并开始“减 2”计数 当计数到 0 时,再经过 1 个 CLK 后使 OUT 端变成低电平 重新将时常数从 CR 读入 CE ,并进行“减 2”计数,当计数到 0
时, OUT 端再次变为高电平,重复这一过程,可以产生周期为 N的近似对称方波。
§9.3 8253 的控制字及工作方式
表示 GATE 信号的作用效果(时常数 N 为奇数),当 GATE 为低电平时,计数器暂停计数, GATE 端的上升沿使计数器重新读入时常数。
§9.3 8253 的控制字及工作方式
方式 3 具有下列一些特点:在置方式 3 的控制字后, OUT 端变为高电平;在置入偶数的时常数后, OUT 端变为高电平,下一个 CLK 脉冲期
间,将时常数从 CR 读入 CE ,并开始“减 2”计数;当 CE 计数到 0时, OUT 端输出变为低电平,并重新读入时常数进行计数;当再次计数到 0 时, OUT 端输出变为高电平,产生一个周期的对称方波信号;
在置入奇数的时常数后, OUT 端变为高电平,下一个 CLK 脉冲期间,将时常数从 CR 读入 CE 时自动减 1 ,并开始“减 2”计数;当CE 计数到 0 时,再经过 1 个 CLK 后使 OUT 端变成低电平;并重新读入时常数进行计数;当再次计数到 0 时, OUT 端输出变为高电平,产生一个周期的近似对称方波信号;
正常情况下,当计数通道的时常数为 N 时, OUT 产生的信号为计数时钟的 N 分频方波信号;
OUT 产生的方波信号,有两种同步方式:向 CR 写入新的时常数(称为软件同步)和在 GATE 端产生上升沿(称为硬件同步);
当 GATE = 0 时,计数器暂停计数。
§9.3 8253 的控制字及工作方式
EG , 8254 计数器 0 接在 8086CPU 的 CLK 时钟上,要求计数器 0 的输出为 0.5MHZ 的新时钟方波,写初始化程序。分析: 8086CPU 的 CLK 主频: 5MHZ 现要求 0.5MHZ 周期是 CLK 的 10 倍
时常数 N=10MOV DX, COUNTDMOV AL, 0001
0110BOUT DX, AL
MOV DX, COUNTA
MOV AL, 10OUT DX, AL
§9.3 8253 的控制字及工作方式
EG , 8254 计数器 0 接在 8086CPU 的 CLK 时钟上,要求计数器 0 的输出为 1MHZ 的新时钟方波,计数器 2 产生 1Hz的单脉冲周期信号。写初始化程序,画出 8253 引脚连接图和OUT0 的输出波形。
分析 : 8086 时钟: 5MHz计数器 0 输出: 1MHz
时常数 N0=5
分析 : 8086 时钟: 5MHz计数器 2 输出: 1Hz
5 分频5000000 分频 >65535
级联
级联的准则:两个时常数均在计数范围之内
两个计数范围之积等于总分频数
5000*1000
§9.3 8253 的控制字及工作方式
5MHz
1MHz
5MHz
1KHz
1Hz
N=5000
N=1000
MOV DX, COUNTDMOV AL, 00010110BOUT DX, ALMOV AL, 01110110BOUT DX, ALMOV AL, 10110100BOUT DX, ALMOV DX, COUNTAMOV AL, 5OUT DX, ALMOV DX, COUNTBMOV AX, 5000OUT DX, ALXCHG AL, AHOUT DX, ALMOV DX, COUNTCMOV AX, 1000OUT DX, ALXCHG AL, AHOUT DX, AL
N=5
§9.3 8253 的控制字及工作方式
5MHz
1MHzN=5
1KHzN=1000
1Hz
N=1000
MOV DX, COUNTDMOV AL, 00010110BOUT DX, ALMOV AL, 01110110BOUT DX, ALMOV AL, 10110100BOUT DX, ALMOV DX, COUNTAMOV AL, 5OUT DX, ALMOV DX, COUNTBMOV AX, 1000OUT DX, ALXCHG AL, AHOUT DX, ALMOV DX, COUNTCMOV AL, 1000OUT DX, ALXCHG AL, AHOUT DX, AL
级联的方式自选,但随着级联方式不同,时常数设定随之改变
§9.3 8253 的控制字及工作方式
5 .方式 4 —— 软件触发产生选通信号 将计数器设置成方式 4 后, OUT 端输出高电平; 向 CR 置入时常数 N 后,下一个 CLK 脉冲将时常数从 CR
读入 CE ,并开始“减 1”计数; 当计数到 0 时, OUT 端变为低电平,经过一个 CLK 脉
冲, OUT 端再次变为高电平,完成一次选通信号的产生。
当再次写入时常数 N 时, OUT 端将经过( N+ 1 )计数时钟周期后产生负的选通信号。
§9.3 8253 的控制字及工作方式
§9.3 8253 的控制字及工作方式
方式 4 具有下列一些特点:
在置方式 4 的控制字或置入时常数后, OUT 端输出高电平;在正常情况下( GATE = 1 ),从软件触发(写入时常数
后),经过( N+ 1 )计数时钟周期,产生一个宽度为一个计数时钟周期的低电平。
每次写入时常数都可以形成一个选通信号,但如果在未完成选通信号形成之前,又写入时常数,则本次选通信号不再产生;
当 GATE = 0 时,可以使计数器暂停计数,但 CE 中的内容不变,一旦 GATE 变为高电平, CE会继续计数,以完成本次选通信号的形成。
§9.3 8253 的控制字及工作方式
EG ,计数器 1 设置成方式 4 ,并且采用低 8 位时常数,假设时常数为 7 ,写初始化程序,画输出波形:
MOV DX, COUNTD ;写入 8253 的方式控制字MOV AL, 0101 1000BOUT DX, ALMOV DX, COUNTB ;计数器 1 置入时常数MOV AL, 7OUT DX, AL
§9.3 8253 的控制字及工作方式
6 .方式 5 —— 硬件触发产生选通信号功能:方式 5 与方式 4 类似,只是每次选通信号的产
生是由硬件触发的。在方式 5 下, OUT 端初始值为高电平。在正常情况下( GATE = 1 ),将计数器设置成方式
4 或写入时常数时,都使 OUT 端输出高电平;当 GATE 端输入上升沿时,其下一个 CLK 脉冲可以将
时常数从 CR 读入 CE ,并开始“减 1”计数;当计数到 0 时, OUT 端变为低电平,经过一个 CLK
脉冲, OUT 端再次变为高电平,完成一次选通信号的产生。
(a)
写方式控制字
写时常数(3)
WR
OUT
CE N 03 02 01 0000000000
FFFF FF
FE0003
0002
CLK
N0001NN
0000
写方式控制字
写时常数(4)
WR
CLK
GATE
(c)
OUT
CE N 04 03 02 0100000000
0000 FF
FF0003
0002N
0001NN
0000
(b)
写方式控制字
写时常数(5)
WR
OUT
CE N 05 04 03 0500000000
0400 00
030002
0001
CLK
N0000NN
FFFF
写时常数(3)
GATE
FFFF
FFFF
方式 5 的计数过程如右图所示。
图( a )表示正常情况;
图( b )表示在第一次硬件触发产生选通信号完成之前,又来了一个硬件触发信号,从而使选通信号的产生时间延迟;
图( c )表示在某次单脉冲完成之前,又写入了新的时常数,这时不影响本次选通信号的形成,下次选通信号才采用新的时常数。
§9.3 8253 的控制字及工作方式
方式 5 具有下列一些特点:
在置方式 5 的控制字或置入时常数后, OUT 端仍输出高电平;
在正常情况下, GATE 端的每个上升沿都将会在 OUT 端产生的选通信号,从硬件触发到产生有效的低电平之间的时间间隔为( N+ 1 )计数时钟周期,低电平宽度为一个计数时钟周期;
如果在未完成选通信号形成之前, GATE 端又输入了上升沿,则本次选通信号不再产生;
§9.3 8253 的控制字及工作方式
Intel 8253 有 6 种工作方式,它们之间具有一些共同特点,先总结如下:( 1 )置方式字时,起到逻辑复位的功能;( 2 ) GATE 信号的有效形式: 方式 0 、方式 4 : 电平控制 (软件触发) 方式 1 、方式 5 : 上升沿触发(硬件触发) 方式 2 、方式 3 : 硬件和软件都能触发( 3 ) CR 内容装入计数单元 CE 的时刻: 方式 0 、方式 4 : 写时常数 方式 1 、方式 5 : 硬件触发 方式 2 、方式 3 : 写时常数、硬件触发和自动重装 计数最大值为 0 (即 ),在方式 0 、 1 、 4 、 5 下, CE 计数到0 后,并未停止计数,而是从 0- >0FFFFH- >0FFFEH 继续“减1”计数;在方式 2 、 3 下, CE 计数到 0 后,自动装入初值计数。
162
总结 6 种工作方式
§9.3 8253 的控制字及工作方式
方式 0方式 1
计数 持续低电平到计数达终值恢复高电平
方式 2方式 3
分频 周期为 CLK 的 N倍的周期信号
方式 4方式 5
计数 持续高电平,到计数达到终值时输出一个时钟的负脉冲信号
§9.3 8253 的控制字及工作方式
分析执行下列语句,执行的功能,画输出结果(假设所有计数器的 GATE都有效)
MOV DX, COUNTD
MOV AL, 00010000BOUT DX, ALMOV AL, 4OUT COUNTA, AL
MOV AL, 01010010BOUT DX, ALMOV AL, 4OUT COUNTB, AL
MOV AL, 10010100BOUT DX, ALMOV AL, 4OUT COUNTC, AL
MOV DX, COUNTD
MOV AL, 00010110BOUT DX, ALMOV AL, 01011000BOUT DX, ALMOV AL, 10011010BOUT DX, AL
MOV AL, 4OUT COUNTA, ALOUT COUNTB, ALOUT COUNTC, AL
§9.4 8253 的计数与取值
在任何时刻都可以读取某个计数器的当前计数值,这应该分两步实现:输出计数器锁存命令,将方式控制字中 =00B ,这样可以将相应计数通
道中的当前计数值锁存到 OL 锁存器,而 CE会继续计数;用 IN 指令读取 OL 内容。
例如,要读取计数器 1 中的计数值,其程序如下: MOV DX, COUNTD ;输出计数器锁存命令 MOV AL, 0100 0000B OUT DX, AL MOV DX, COUNTB IN AL, DX ;从 OL 读取低位字节 XCHG AH, AL IN AL, DX ;从 OL 读取高位字节 XCHG AH, AL这时, AX 的内容就是计数器 1 的当前计数值
1 0RL RL
§9.4 8254 与 8253 的区别
Intel 8254 是 8253 的改进型,它与 8253 的主要区别有:允许的计数脉冲( CLK )的频率范围不同: 8253 : 最大时钟频率为 2MHz 8254 : 最大时钟频率为 8MHz 8254-2 : 最大时钟频率为 10MHz在 8254 中,每个通道中还有一个状态寄存器, CPU 通过它
可以读取其状态。 后者需要两个步骤:( 1 )可通过“读回”命令读取 8254 的计数值和状态信息,其格式如下图所示 , 端口地址为 =11B 。 CNT2~ CNT0 用于选择计数通道,“ 1”表示选中; =0 表示锁存选中计数器的计数值; =0 表示锁存选中计数器的状态值。
STATUS
COUNT
1 1 COUNT STATUS CNT2 CNT1 CNT0 0
D7 D6 D5 D4 D3 D2 D0D1
图 “读回”命令格式
1 0A A
§9.4 8254 与 8253 的区别
( 2 )读取计数值或状态。当 ( )=0 时,后续对相应计数器的读操作 (一次或二次),可以获得计数值,并对锁存器进行“解锁”,即下次“读回”命令可锁存新的计数值;如果“读回”命令后,并没有取走计数值,则下次“读回”命令不起作用。当 ( )=0 时,则后续对相应计数器的读操作,可读取计数器的状态字节,其格式如下图所示,其中 OUTPUT 给出了相应计数通道的OUT 端的信号电平; NULL COUNT = 0 表示可以读取计数值, NULL COUNT = 1 则表示时常数还没有从 CE 装入到 CE ,这时读取的计数值没有意义;其它 6 位的值与方式控制字相同。
COUNT
STATUS
图 计数器状态
OUTPUTNULLCOUNT
RL1 RL0 M2 M1 M0 BCD
D7 D6 D5 D4 D3 D2 D0D1
作业:9.2 9.3 9.6 9.10
LOGO [email protected]
Contents
8253 引脚功能及特点1
8253 原理结构及工作原理2
8253 的控制字及工作方式3
8253 与系统总线的接口方法4
8253 的应用和设计5
§9.4 8253 的总线接口方法
在采用 8253 进行定时 / 计数器设计时,首先应该将它与 CPU 正确连接,在已经设计好 8086 系统总线情况下,可以直接利用系统总线中的信号与 8253 连接。
这里给出三种系统总线情况下 8253 的连接方法:8086 的最小方式8086 的最大方式IBM PC 系统机。
§9.4 8253 的总线接口方法
1.8086 最小工作方式下的 8253 连接
8086
CPU
最小
方式
系统
总线译码电路
D7 D0~
A2A1
WRRD
M/IOA15
A3A0
……
=0
=0
CPU接口
Intel8253
D7 D0~
外设接口
A0
A1
RD
WR
CS
CLK0GATE0OUT0
CLK1GATE1OUT1
CLK2GATE2OUT2
D8 D15~
图 8086 最小方式系统总线与 8253 的连接框图
在 8086系统
中, 8253的地址范围要么全为奇数,要么全
为偶数
§9.4 8253 的总线接口方法
CPU接口
Intel8253
D7 D0~
外设接口
A0
A1
RD
WR
CS
CLK0GATE0OUT0
CLK1GATE1OUT1
CLK2GATE2OUT2
8086
CPU
最大
方式
系统
总线译码电路
D7 D0~
A2A1
IOWIOR
A15
A3A0
……
=0
2.8086 最大工作方式下的 8253 连接
§9.4 8253 的总线接口方法
3. 与 IBM PC 机的连接CPU接口
Intel8253
D7 D0~
外设接口
A0
A1
RD
WR
CS
CLK0GATE0OUT0
CLK1GATE1OUT1
CLK2GATE2OUT2
IBM
PC机
系统
总线
译码电路
D7 D0~
A2A1
IOWIOR
A15
A3A0
……
=0
AEN =0
§9.3 8253 的控制字及工作方式
8253 共有 6 种工作方式
工作于哪种方式,由控制寄存器的内容来设定
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
选择计数通道 读写规则 工作方式 数据类型
D7 D6 D5 D4 D3 D2 D0D1
图 8253 的方式控制寄存器
总结 6 种工作方式
§9.3 8253 的控制字及工作方式
方式 0方式 1
计数 持续低电平到计数达终值恢复高电平
方式 2方式 3
分频 周期为 CLK 的 N倍的周期信号
方式 4方式 5
计数 持续高电平,到计数达到终值时输出一个时钟的负脉冲信号
§9.3 8253 的控制字及工作方式
Intel 8253 有 6 种工作方式,它们之间具有一些共同特点,先总结如下:( 1 )置方式字时,起到逻辑复位的功能;( 2 ) GATE 信号的有效形式: 方式 0 、方式 4 : 电平控制 (软件触发) 方式 1 、方式 5 : 上升沿触发(硬件触发) 方式 2 、方式 3 : 硬件和软件都能触发( 3 ) CR 内容装入计数单元 CE 的时刻: 方式 0 、方式 4 : 写时常数 方式 1 、方式 5 : 硬件触发 方式 2 、方式 3 : 写时常数、硬件触发和自动重装 计数最大值为 0 (即 ),在方式 0 、 1 、 4 、 5 下, CE 计数到0 后,并未停止计数,而是从 0- >0FFFFH- >0FFFEH 继续“减1”计数;在方式 2 、 3 下, CE 计数到 0 后,自动装入初值计数。
162
根据题目要求分析写初始化程序根据题目要求画输出波形针对某种方式的波形分析初始化程序N 分频的级联根据题目要求实现一定的复杂波形根据复杂波形进行电路分析设计
8253应用举例
EG1. 8088 最大系统下, 8253 的地址范围为 340H~343H 。输入时钟频率为 2M赫兹,实现输出频率为 1Hz 的方波。画连接图,写初始化程序和时常数赋值程序。
§9.4 8253 的总线接口方法
分析:输入 2MHz输出 1Hz
2000000 分频
超过了最大计数范围65536
级联分频
+5V
+5V
2MHz
1KHz
1Hz
计数器 0 的时常数: 2000计数器 1 的时常数: 1000
时常数可以做合理的调整
MOV DX, 343H MOV AL, 00110110B OUT DX, AL MOV AL, 01110110B OUT DX, AL
MOV DX, 340H MOV AX, 2000 OUT DX, AL XCHG AL, AH OUT DX, AL
MOV DX, 341H MOV AX, 1000 OUT DX, AL XCHG AH, AL OUT DX, AL
§9.4 8253 的总线接口方法
EG2.8086 最小系统下,扩充设计 1 片 8254 ,端口地址为8000H~8007H 中的连续偶地址。输入时钟信号为 4MHz ,要求通过三个定时器级联,实现从 OUT0 输出频率为 1000Hz 的方波,从 OUT1输出频率为 100Hz 的单时钟脉冲波,从 OUT2 输出频率为 1Hz 的方波。
画级联图,并写出初始化程序和时常数赋值程序
CLK0=4MHz
OUT0=1KHz
4000分频
CLK1=1KHz
OUT1=100Hz
10分频
CLK2=100Hz
OUT2=1Hz
100分频
OUT0=1KHz
10分频
1000分频
计数器 0 :工作方式 3 ,时常数 4000计数器 1 :工作方式 2 ,时常数 10
计数器 2, :工作方式 3 ,时常数 100
计数器 0 :工作方式 3 ,时常数 4000计数器 1 :工作方式 2 ,时常数 10
计数器 2, :工作方式 3 ,时常数 1000
§9.5 8253 的总线接口方法
EG3. 在以 8086 构成的最大方式系统中,有一片 8254的端口地址分别为 301H 、 303H 、 305H 和 307H ,给定的外部时钟为 512kHz 。要求:
( 1 ) 利用计数器 0 产生周期为 1ms 的周期信号,请编写初始化程序;( 2 ) 利用这一计数器能产生的最低信号频率为 ,这时的时常数 CR0=
。 ( 3 )利用计数器 1 和 2 产生如下图所示的周期信号,并编写初始化程序。( 4 )画出 8253 的端口译码电路(地址线只使用 A0~ A9 )及其连接图。
1. 5ms
3s
图 8253所要产生的周期信号
EG.8086 最大方式系统中,有 8254 的端口地址分别为 301H 、 303H 、 305H 和 307H ,给定的外部时钟为 512kHz
( 1 ) 利用计数器 0 产生周期为 1ms 的周期信号,请编写初始化程序;
Step1 :分析工作方式:
周期信号 方式 2 或 方式3Step2 :工作方式控制字: 00110100B 或 00110110B
Step3 :分析时常数:输出信号周期: Tout = 1 ms
输入信号周期: Tin = 1/512 ms 时常数 = Tout / Tin=512
MOV DX, 307HMOV AL, 00110100B; 或 00110110BOUT DX, AL
Step4 :写初始化程序:
MOV DX, 301HMOV AX, 512OUT DX, ALXCHG AL, AHOUT DX, AL
( 2 ) 利用这一计数器能产生的最低信号频率为 ,这时的时常数 CR0= 。
频率最低 周期最长 整个计数范围内只形成一个输出周期
计数范围: 0000H ~ 0FFFFH 65536 个计数单
元
计数初值 = 0
0
最低频率 = 512KHz/65536 = 7.8125 Hz
7.8125 Hz
EG.8086 最大方式系统中,有 8254 的端口地址分别为 301H 、 303H 、 305H 和 307H ,给定的外部时钟为 512kHz
( 3 )利用计数器 1 和 2 产生如下图所示的周期信号,并编写初始化程序。
EG.8086 最大方式系统中,有 8254 的端口地址分别为 301H 、 303H 、 305H 和 307H ,给定的外部时钟为 512kHz
1. 5ms
3s
Step1 :分析工作方式:Step2 :工作方式控制字:Step3 :分析时常数:
512KHz
周期为 1.5ms的新时钟
1. 5ms
3s
+5V
+5V
计数器 1 :控制字:01110110B
时常数 = Tout / Tin
=1.5/(1/512)=768
计数器 2 :控制字:10110100B
时常数 = Tout / Tin
= (3s+1.5ms)/1.5ms = 2001
MOV DX, 307H MOV AL, 01110110B OUT DX, AL MOV AL, 10110100B OUT DX, AL
MOV DX, 303H MOV AX, 768 OUT DX, AL XCHG AH, AL OUT DX, AL
MOV DX, 305H MOV AX, 2001 OUT DX, AL XCHG AH, AL OUT DX, AL
EG.8086 最大方式系统中,有 8254 的端口地址分别为 301H 、 303H 、 305H 和 307H ,给定的外部时钟为 512kHz
( 4 )画出 8253 的端口译码电路(地址线只使用 A0~ A9 )及其连接图。
8086
CPU
最大
方式
系统
总线
A2A1
IOWIOR
D15 D8~
oA9oA8
A3
A6A5A4
A7
oBHE
Intel8253
D7 D0~
A0A1
RDWR
CS
CLK1GATE1OUT1
CLK2
GATE2
OUT2
+5V
+5V
512kHz
产生信号
§9.4 8253 的总线接口方法
EG4. 设 8253 的端口地址为 260H ~ 263H ,外部时钟信号为1MHz ,要求产生如下图所示的周期波形,画出 8253 的连接图,并编写初始化程序段。
12ms1s
图 8253所要产生的周期信号在不使用输出取反的情况下,有没有一种工作方式能生成这样的信号?周期信号: 工作方式 2 或 工作方式 3
能生成高低电平时间长短可人为设定的工作方式: 工作方式 0 或 工作方式 1
§9.4 8253 的总线接口方法
Intel8253
D7 D0~1MHz
A0
A1
RD
WR
CS
CLK0GATE0OUT0
CLK1GATE1OUT1
CLK2
GATE2
OUT2
+5V
+5V
产生信号
12ms1s
输入时钟: 1MHz : Tin=1us输出时钟: Tout=1.012s
1012000 分频1000*1012
超出计数范围
时常数 =1000 ,工作方式 3输出信号周期: 1ms
时常数 =1012 ,工作方式 2输出信号周期: 1.102s
时常数 =1000 ,工作方式 1减 1 计数,在 1000 第个周期电平变高,在第 1012 个周期,由 GATE 上升沿触发,电平变低,开始下一轮计数
计数器 0 : 工作方式 3 ,时常数 1000 计数器 1 : 工作方式 2 ,时常数 1012 计数器 2 : 工作方式 1 ,时常数 1000
§9.4 8253 的总线接口方法
EG5. 有一个未知频率的对称周期信号 s ( t )(频率范围在 100Hz~ 2kHz 之间),现在 8086 最小系统中已经设计了一片 8253 ,其端口地址为 380H 、 382H 、 384H和 386H ,外部可以使用的标准信号源为 1MHz ,设计测量输入 s(t) 信号的频率,并将结果保存在 SFR 字单元中。
频率测量问题
计数法:待测信号频率大于时钟频率
测周期法:待测信号频率小于时钟频率
EG5. 有一个未知频率的对称周期信号 s ( t )(频率范围在 100Hz ~ 2kHz 之 间 ) ,现在 8086 最小系 统 中 一 片8253 ,外部可以使用的标准信号源为 1MHz ,试测量输入s(t) 信 号 的 频 率
基准信号 CLK 频率: 1MHz待测信号: 100Hz~ 2kHz之间的对称周期信号 测试半个信号周期的长度 Thalf 即可 250μs≤Thalf≤5000μs
需要实现的功能:用计数器数出待测信号在前半个周期时间里经过了多少时钟周期
用待测信号 S(t) 做 GATE ,利用其信号的上升沿触发计数的开始,利用其低电平使计数暂停,以便被 CPU 访问读出
能被 GATE 这样控制的工作方式:?
GATE 只能用低电平暂停计数,其上升沿不能触发计数的开始
EG5. 有一个未知频率的对称周期信号 s ( t )(频率范围在 100Hz ~ 2kHz 之 间 ) ,现在 8086 最小系 统 中 一 片8253 ,外部可以使用的标准信号源为 1MHz ,试测量输入s(t) 信 号 的 频 率
GATE 的低电平暂停计数,上升沿触发新计数的开始
方式 0方式 4
用待测信号 S(t) 做 GATE ,利用其信号的上升沿触发计数的开始,利用其低电平使计数暂停,以便被 CPU 访问读出
方式 1方式 5
GATE 只能用上升沿触发计数的开始,不能用低电平暂停计数
方式 2方式 3
减 2 计数
EG5. 有一个未知频率的对称周期信号 s ( t )(频率范围在 100Hz ~ 2kHz 之 间 ) ,现在 8086 最小系 统 中 一 片8253 ,外部可以使用的标准信号源为 1MHz ,试测量输入s(t) 信 号 的 频 率
8259
I nt el8253
D7 D0~1MHz
A0
A1
RD
WR
CS
CLK0
GATE0
OUT0
S( t )
I R0
o
1MHzCLK0
CE …
… …CPU向 发出中断请求
Th
S( t )
0000N FF
FF FFFE XL
XHXLXH
XLXH
计数器采用方式 2 ,时常数取最大值,当 GATE0 端有上升沿查询时,可以启动计数器进行“减 1”计数,当 GATE0 出现低电平时,暂停计数,并同时在 8259 产生中断请
求CPU 产生中断,在中断服务子程序中可以读取计数值,与初值相减
后再加 1就可以得到 s(t)半周期内所包含的基准周期数 NUM 。 F(S(t))=1MHz/NUM
8253 的初始化程序段如下:MOV DX,386H ;写计数器 0 方式
控制字MOV AL,0011 0100BOUT DX,ALMOV DX,380H ;写计数器 0 时常数MOV AL,0OUT DX,ALOUT DX,ALSTI ;开中断
中断服务子程序的主要内容为:PUSH AXPUSH BXPUSH DXMOV DX,386H ;发计数器 0 的锁存命令MOV AL,0000 0000BOUT DX,ALMOV DX,380H ;读计数值IN AL,DXXCHG AL,AHIN AL,DXXCHG AL,AH
NEG AX ;初值减结果加1INC AX ;MOV BX,AX ;计算信号频率MOV DX, 0007HMOV AX, 0A120H ;被除数500000DIV BXMOV SFR,AX ;保存信号频率POP DXPOP BXPOP AXIRET
往年考研题目
EG. ( 1 )写出 8253 的端口地址, 8088未用的地址线均设为 0. ( 2 )设 8253 的计数器 0做二进制计数,输入时钟频率为
100KHz ,输出为 1KHz 方波,试写出设置 8253 工作方式及计数初值的有关指令。 地址范围: 210H~213H
控制字: 00110110B时常数: 100MOV DX, 213HMOV AL, 00110110BOUT DX, AL
MOV DX, 210HMOV AX, 100OUT DX, ALXCHG AL, AHOUT DX, AL
往年考研题 有如图所示的接口简化图,要使发光二极管亮 2秒,熄灭 2秒,但该过程共进行 20秒即终止,设 OUT0 输入频率为 1KHZ 。 8253 端口地址为 40H~ 47H 编写出程序。
8253CS
数据总线
A0
A1
GATE1
CLK1
D7~D0
CLK2
OUT1
OUT2
GATE2
+5V
500KHZ
GATE0
CLK0
OUT0
DB7~DB0
A1
A2
CLK0 输入 1KHzOUT0 输出新时钟给CLK1,CLK2 (工作方式 2,3 ,时常数1000 )OUT1 控制发光二极管所以输出为周期为 4s 的方波(工作方式 3 ,时常数 4 )因为要 20秒结束,所以 OUT2作为GATE1 的控制,输出一个长度持续 20 m 的低电平信号(工作方式 0 )时常数 19
1KHz
1s
能不能是工作方式 1 ?
往年考研题
计数器 0 工作在工作方式 2 ,时常数为 1000计数器 1 工作在工作方式 3 ,时常数为 4计数器 2 工作在工作方式 0 ,时常数为 19
MOV DX, 43HMOV AL, 00110100BOUT DX, ALMOV AL, 01010110BOUT DX, ALMOV AL, 10010000BOUT DX, AL
MOV DX, 40HMOV AX, 1000OUT DX, ALXCHG AL, AHOUT DX, ALMOV DX, 41HMOV AL, 4OUT DX, ALMOV DX, 42HMOV AL, 19OUT DX, AL
LOGO [email protected]