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定时-计数器

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的时序如图所示。
第05章定时计数-8253

计算机控制技术 第5章、定时/计数技术
4.3方式——周期性方波输出 3方式工作方式与2方式基本相同,也具有自动装入时间常数 (计数初值)的功能,不同之处在于: ①工作在3方式,引脚OUT输出的不是一个时钟周期的负脉 冲,而是占空比为l:l或近似1:1的方波;当计数初值为偶数 时,输出在前一半的计数过程中为高电平,在后一半的计数 过程中为低电平。 ②当计数初值为奇数时,在前一半减1的计数过程中,输出 为高电平,后一半减1的计数过程中为低电平。 ③由于3方式输出的波形是方波,并且具有自动重装计数初 值的功能,因此,8253一旦计数开始,就会在输出端OUT输 出连续不断的方波。
例中,8253的3个计数器及控制器的端口地址分别是304H、 305H、306H和307H。
计算机控制技术 第5章、定时/计数技术
例2:要求读出并检查1号计数器的当前计数值是否 是全“1"(假定计数值只有低8位), 其程序段为: MOV DX,307H;命令口 L: MOV AL,01000000B;1号计数器的锁存命令 OUT DX,AL;写入命令寄存器 MOV DX,305H ;l号计数器数据口 IN AL,DX ;读1号计数器的当前计数值 CMP AL, OFFH ;比较 JNE L ;非全“l”,再读 HLT ;是全“1”暂停
② 在计数器工作期 间,如果向此计 数器写入新的计 数初值,
则计数器 仍按原计 数值计数
直到计数器回零 并在输出一个时 钟周期的负脉冲 之后.才按新写 入的计数值计数
门控信号GATE为 高电平时允许计数。
如在计数期间, 门控信号变为低 电平则计数器停 止计数
待GATE恢复 高电平后,计 数器将按原装 入的计数值重 新开始计数
用于减1操作, 每来一个时钟, 减1。连续计 数时可重装
第七章、定时计数器8253(2)

9. 3
8253的工作方式
对外部事件计数
例
计数器0,工作于方式3,输出方波的频率为2KHz 计数脉冲的频率为2.5MHz,采用BCD计数,试编写 初始化程序段 端口地址为04H,05H,06H,07H
初值的计算 2.5MHz/2KHz= 控制字: 0 0 1 1
1250
0 11 1
37H 初始化程序: Mov al , 37h out 07h , al mov al , 50h out 04h , al mov al , 12h out 04h , al
0 11 0 56H
14H
控制字: 0 1 01
端口地址: 7C 7D 7E 7F 初始化程序: Mov al , 56h out 7Fh , al mov al , 14h out 7Dh , al
• • • • • • • • • • • • • •
1、如图所示,8086系统通过8255A实现开关K控制LED灯,根据图示连接写 出8255A的端口地址;并编写相关程序实现开关闭合则灯熄灭,开关断开则 灯点亮。(10分) :端口地址为0F0H~0F3H 相关程序: MOV AL,90H OUT 0F3H,AL L1: IN AL,0F0H TEST AL,80H JZ NEXT MOV AL,00H OUT 0F1H,AL JMP L1 NEXT:MOV AL,0FFH OUT 0F1H,AL JMP L1
第七章 计数器和定时器电路
Intel 8253/8254-PIT
徐承彬
Intel 8253/8254-PIT
7. 1
概述
(1)软件方法:
定时信号的获得
(2)硬件方法:
不可编程的硬件定时
可编程的硬件定时
定时计时器8253

2013-7-9
微型计算机原理与应用
4
计数器/定时器8253
可编程定时/计数器的主要用途有: ① 以均匀分布的时间间隔中断分时操作系统, 以便
切换程序。 ② 向I/O设备输出精确的定时信号, 该信号的周期 由程序控制。 ③ 用作可编程波特率或速率发生器。 ④ 检测外部事件发生的频率或周期。 ⑤ 统计外部事件处理过程中某一事件发生的次数。 ⑥ 在定时或计数达到编程规定的值之后, 产生输出 信号, 向CPU申请中断。
2013-7-9 微型计算机原理与应用 12
计数器/定时器8253
当对8253的计数器进行读操作时,可以读出 计数值,具体实现方法有如下两种: ①使计数器停止计数时,先写入控制字,规定好 RL1和RL0(控制字的D5D4位)的状态——也 就是规定读一个字节还是读两个字节。 ②在计数过程中读计数值。这时读出当前的 计数值并不影响计数器的工作。为做到这一 点 , 首 先 写 入 8253 一 个 特 定 的 控 制 字:XX00××××。这是控制字的一种形式。
2013-7-9 微型计算机原理与应用 18
计数器/定时器8253
8253初始化编程要求
1、8253三个端口有各自独立的地址,控制字分别对 各端口的工作方式进行控制
2、对某一个端口设置初值时,先设置控制字 3、设置初值时,要符合D5、D4的规定,分别输入计 数值,(16位计数值要用两条指令写入计数值) 4、锁存(D5D4=00)的目的是:在CPU读取计数值前 先用锁存命令锁存减1计数器的当前值,否则得不到 正确的结果,CPU取走数据后,锁存功能自动失锁 5、编程顺序:先写入控制字到控制寄存器,然后写 入计数初值到所确定的计数器端口
2013-7-9 微型计算机原理与应用 11
计算机8253定时器-计数器

OUT
5 4 3 2 1 5 4 3 2 1 5 暂停计数 4
启动计数
再次启动计数
方式4 WR启动,自动重复计数 写入初值,启动计数; 计数完成,经过1CLK又重新从初值
开始计数; GATE=0,停止计数。
GATE=1,从初值开始计数
MOV AL,00011000B OUT 43H,AL MOV AL,4 OUT 40H,AL
试分析8253的工作情况。
控制字分析: 00 11 011 0 B
设置计数器0 写入16位初值
初值为二进制数 方式3,方波发生
初值分析: 0000H ,写入后,减1得0FFFFH,再减65535次才输出一次方波。 方波周期:高、低电平期均为32768次CLK, CLK的周期=1/(1.19 ×106) 秒
∴方波周期=65536×CLK的周期=55.072毫秒≈55毫秒
例2 已知PC机中,8253的OUT0接到8259的IRQ0,即:每 55ms发出
一次中断。 试编程,截取此中断,得到一个秒计数器。
注: IRQ0的中断类型号为9.
启动计数
再次启动计数
方式3 WR启动,自动重复方波计数
写入初值,启动计数;
MOV AL,00010110B
计数完成,又重新从初值开始计数,
OUT MOV
43H,AL AL,5
计数期间,前半期OUT=1,后半
OUT 40H,AL
期OUT=0;
计数期间,GATE=0暂停计数
CLK
WR N=5 GATE
第2节 8253定时/计数器
一 定时/计数器的基本概念 什么是定时器计数器? 定时器: 事先设定一个时间长度,当“定时时间到”时,向 CPU输出触发信号。 计数器:统计某事件发生的次数。当累计的次数达到事先设 定的次数时,输出触发信号。 PC机中,用一片集成电路(Intel8253)来完成定时/计 数工作。如: 每隔一定的时间间隔对DRAM刷新、以一定的速率驱动 磁盘马达运转、产生周期性方波使蜂鸣器发出鸣叫提示, 等等。
总结8253知识点

总结8253知识点
一、 8253芯片的基本概念
1. 8253的概述
2. 8253的引脚功能
3. 8253的工作方式
4. 8253的应用领域
二、 8253的基本功能和工作原理
1. 8253的三个独立计数器/定时器
2. 8253的工作模式
3. 8253的计数器结构
4. 8253的控制字和状态字
三、 8253的工作模式与控制字
1. 8253的工作模式
(1)8253的方式0
(2)8253的方式1
(3)8253的方式2
2. 8253的控制字
(1)8253的工作模式控制
(2)8253的读/写控制
(3)8253的读/写方式
四、 8253的初始化和应用实例
1. 8253的初始化过程
2. 8253在嵌入式系统中的应用实例
3. 8253在计算机系统中的应用实例
五、 8253的时钟信号和中断
1. 8253的时钟信号
2. 8253的中断信号
3. 8253的中断处理流程
六、 8253的应用开发和调试
1. 8253的应用开发流程
2. 8253的应用调试方法
3. 8253的应用性能优化
综上所述,8253作为一种常见的计时器/计数器芯片,在计算机系统及嵌入式系统中有着广泛的应用。
了解8253的基本概念,掌握8253的基本功能和工作原理,理解8253的工作模式与控制字,熟悉8253的初始化和应用实例,掌握8253的时钟信号和中断,以及熟悉8253的应用开发和调试,都是在相关领域深入研究和应用8253芯片的基础。
希望本文的总结能够为读者对8253芯片有更深入的了解和应用提供一些帮助。
定时器8253

三、编程命令
1、方式命令的作用 8253进行初始化 进行初始化。 对 8253 进行初始化 。 一是向命令寄存器 写入方式命令;二是向计数器设置初值。 写入方式命令;二是向计数器设置初值。
2、方式命令பைடு நூலகம்格式
选择计数器。 ①D7D6(SC1 SC0):选择计数器。 00选择 选择0 SC1 SC0 =00选择0号计数器 01选择 选择1 SC1 SC0 =01选择1号计数器 10选择 选择2 SC1 SC0 =10选择2号计数器 11不用 SC1 SC0 =11不用
控制计数器读/写的字节数。 ②D5D4(RW1 RW0):控制计数器读/写的字节数。 为锁存命令。 RW1 RW0=00 为锁存命令。 仅读/ RW1 RW0=01 仅读/写一个低字节 仅读/ RW1 RW0=10 仅读/写一个高字节 个字节,先低、 RW1 RW0=11 读/写2个字节,先低、后高字节 用来选择计数器的工作方式。 ③D3~D 1(M2—M0);用来选择计数器的工作方式。 M M2M1M0=000 0方式 M2M1M0=001 1方式 M2M1M0=010 2方式 M2M1M0=011 3方式 M2M1M0=100 4方式 M2M1M0=101 5方式 BCD) 用来指定计数器的计数码制。 ④D0(BCD);用来指定计数器的计数码制。 BCD=0 BCD=1 BCD=0 二进制 BCD=1 二至十进制
2、内部逻辑结构
8253/8254内部有6个模块。 8253/8254内部有6个模块。 内部有
8253/8254内部有 个模块。 内部有6 2、内部逻辑结构 8253/8254内部有6个模块。 数据总线缓冲器。 CPU与8253交换信息的通道 交换信息的通道。 ①数据总线缓冲器。 CPU与8253交换信息的通道。 写逻辑。接收CPU的读/写控制信号, CPU的读 ②读/ 写逻辑。接收CPU的读/ 写控制信号,并完 成对芯片内部各功能部件的控制功能。 成对芯片内部各功能部件的控制功能。 控制命令寄存器。接受CPU送来的控制字。 CPU送来的控制字 ③控制命令寄存器。接受CPU送来的控制字。 计数器。 个独立的计数器, ④计数器。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 ② 数据总线缓冲器
功能: 往控制寄存器设置控制字 往计数器设置初值 从计数器读取计数值 ③控制寄存器 ④读/写逻辑电路
第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 启动方式 软件触发 硬件触发
第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:计数结束产生中断
第9 章 8253定时器

19
9.2
8253的控制字及工作方式
000—101选择六 种工作方式
1.工作方式控制字
00:计数器0 01:计数器1 10:计数器2
00:锁存当前计数值 01:只读写低8位 10:只读写高8位 11:先读写低8位, 再读写高8位
0:二进制计数 1:二-十进制计 数(BCD码)
25
(2)采用BCD码计数时,计数初值应写成十六进制数。 例如n=50则指令写成 MOV AL,XX01XXX1B OUT 控制口地址,AL MOV AL,50H; OUT 计数器地址,AL 若n=1250,则写成 MOV 控制口地址,XX11XXX1B MOV AL,50H OUT 计数器地址,AL MOV AL,12H OUT 计数器地址,AL
18
CLK、OUT、GATE三个引脚信号的关系: OUT CLK GATE 门控信号
做计数器:输入一个脉冲,计数器减1,可对事件计数。
当门控信号有效时,计数器/定时器对来自CLK引脚 做定时器:对输入等间隔的脉冲计数,可起到定时作用。 的脉冲信号进行计数,计数到0时,在OUT端产生一 定时与计数本质上是一致的。 个输出。
实时控制系统中,定时对控制对象采样与控制
软件定时的举例: MOV CX,80H LL: DEC CX JNZ LL ……
采用单循 环实现
注意:必须知道每条指令的执行时间。
4
软件定时的举例: MOV CX,80H LL1: MOV BX,90H LL2: DEC BX JNZ LL2 DEC CX JNZ LL1 ……
11
8253读写操作及端口选择
12
3. 控制字寄存器 在初始化编程时,CPU写入方式控制字到控制字 寄存器中,用以选择计数通道及其相应的工作方式。 4. 计数通道0、计数通道1、计数通道2 3个计数通道内部结构完全相同。每个计数通道都 由一个16位计数初值寄存器(CR)、一个16位减法计 数器(CE)和一个16位计数值锁存器组成。 3个计数通道操作完全独立。初始化编程时,3个 计数通道共用一个控制字寄存器端口地址,但CPU可 以分别写3个方式控制字到控制字寄存器,分别选择各 计数通道的工作方式。
8253定时计数器小节

8253定时/计数器小节8253的结构与功能(8253是为方便计算机系统的设计和应用而研制的,定时值和范围可以很容易地由软件来控制和改变,8253是24脚双列直插式芯片,使用的是+5V电源供电。
芯片内有三个相互独立的16位定时/计数器。
8253由数据总线缓冲器、读/写逻辑、控制字寄存器以及3个独立的16位计数器组成。
每个计数器包括一个8位的控制寄存器、一个16位的计数初值寄存器CR、一个16位的减1计数器CE和一个1、控制寄存器此寄存器保存来自CPU的控制字。
每个计数器都有一个控制命令寄存器,用来保存该计数器的控制信息。
2、数据缓冲器用于和系统数据总线的连接,CPU通过数据缓冲器将控制命令字和计数值写入8253计数器,或者从8253计3、读/写逻辑接受来自CPU的控制信号,完成对8253内部操作的控制。
控制信号包括读信号(/RD),写信号(/WD),片选下面通过一段代码程序来对8253进行了解(此处假设8253芯片的端口地址为388H~38BH,要求计数器0工作在方式3,计数初始值为2354,十进制计MOV DX,38BH ;这里将38BH作为8253的控制字端口地址,下面的两端代码也一样MOV AL,00110111BOUT DX,ALMOV DX,388H ;这里应该注意的一点是端口号的使用,计数器0为四个端口号中最低的号,MOV AL,54H ;送计数初值的低8位OUT DX,ALMOV AL,23H ;送计数初值的高8位OUT DX,AL;计数器1的初始化程序MOV DX,38bH ;给计数器1送控制字MOV AL,01010100BOUT DX,ALMOV DX,389H ;计数初值送低8位置MOV AL,18HOUT DX,AL;计数器0当前计数值读出程序MOV DX,38BH ;送计数器0当前计数值锁存命令MOV AL,00HOUT DX,ALMOV DX,388H ;读出当前计数值的低8位IN AL,DXMOV CL,ALIN AL,DX ;读出当前计数值的高8位MOV CH,AL首先,需要了解的是:对于8253占用4个I/O地址。
8253定时计数器

• 3个独立16位计数通道 • 每个通道可任选6种工作方式之一种 • 24脚双列直插芯片
• 6.1框图与引脚
• 6.1.1 框图
– 1. 数据总线缓冲器
• 8位,三态,双向缓冲器,是CPU和8253交换数据的唯一通 道。
– 2.读写控制逻辑
• CS 高电平时禁止三态和读写逻辑
• MOV AL,70H;(01110000B) • MOV DX,303H • OUT DX,AL • MOV AX,2000 • MOV DX ,301H • OUT DX,AL • MOV AL,AH • OUT DX,AL
• 向 通 道 1 写 入 数 据2000( 十 进 制), 工 作 方 式0, 十 进 制 计 数
一个地址如何写入三个通
道 寄 存 器?
有
关
控
制 字
2、8 位 总 线 如 何 写16 位 计 数 初
几
值数 据?
个
问 题
3、二进制计数、十进制计数
4、计数单元的工作方式
• 6.2.2 8253初始化设定
• 1.编程顺序
– 先写控制字,再写计数初值,8253工作。
• 2.8253控制字
– 设定计数制标志位
• MOV AL, 01100001B • MOV DX,303H • OUT DX,AL • MOV AX,2000H • MOV DX ,301H • MOV AL,AH • OUT DX,AL
• 例 如图电路
– 8253的地址范围 – 以方式3,二进制计数向通道2写入初值0432H
A9
A8
A7
• D0=0 , 按 二 进 制 计 数 , 16 位 最 大 FFFF , 216=65536。
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

第九章可编程定时计数器8253一概述⒈定时器和计数器定时控制在微机系统中极为重要①定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔;②计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器。
⒉定时功能的实现方法①软件延时——利用微处理器执行一个延时程序段实现;②不可编程的硬件定时——采用分频器、单稳电路或简易定时电路控制定时时间;③可编程的硬件定时——软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路。
二 8253定时计数器的内部结构和外部特性⒈概述① 3个独立的16位计数器通道;②每个计数器有6种工作方式;③按二进制或十进制(BCD码)计数。
⒉内部结构内部结构图①数据总线缓冲器是8253与CPU DB连接的8位双向三态缓冲器,CPU通过它向8253写方式控制字到控制字寄存器中,写计数初值到计数通道,读取计数通道的当前计数值。
②读/写控制逻辑无效,8253的DB处于高阻状态,当有效,控制8253内部操作。
当和A1、A0、作,见下表。
8253读写操作及端口选择表注意:CPU对控制字寄存器只能写,不能读;CPU对计数通道写的是计数初值,读的是当前计数值。
③控制字寄存器8253初始化编程时,CPU写控制字到控制字寄存器,以选择计数通道及相应的工作方式。
④数通道0~28253内部包括3个功能完全相同和操作完全独立的计数通道,每个计数通道由16位减法计数器、16位计数初值寄存器和16位计数值锁存器组成。
初始化时,向计数通道装入的计数初值,先送到计数初值寄存器中保存,然后送到减法计数器。
计数器启动后,减法计数器对CLK的下降沿进行减1计数,在未锁定时把结果送入16位计数值锁存器中。
当计数值减到0时,输出OUT信号,一次计数结束。
计数初值寄存器的内容,在计数过程中保持不变。
计数初值寄存器和计数值锁存器占用一个端口地址(即该计数通道口地址),CPU读取计数通道的当前计数值来自计数值锁存器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8253定时/计数器知识点总结
1、8253简介
8253是用来测量时间或者脉冲的个数,通过计量一个固定频率的脉冲个数,将时间信息转化为数字信息,供计算机系统使用。
8253有着较好的通用性和灵活性,几乎可以在所有由微处理器组成的系统中使用。
2、性能描述
(1)每个8253芯片有3个独立的16位计数器通道;
(2)每个计数器通道都可以按照二进制或二—十进制计数;
(3)每个计数器的计数速率可以高达2MHz;
(4)每个通道有6种工作方式,可以由程序设定和改变;
(5)所有的输入、输出电平都与TTL兼容。
3、结构组成
结构框图如下
(1)数据总线缓冲器
8253内部实现与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包括某一时刻的实时计数值。
(2)读写逻辑控制
控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的址地信号以实现片选、内部通道选择以及对读/写操作进行控制。
(3)控制寄存器
在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。
(4)计数通道0号、1号、2号
三个独立的、结构相同的计数器/定时器通道,每个通道包含一个16位计数寄存器存放计数初始值,一个16位的减法计数器,一个16位的锁存器。
锁存器在计数器工作的过程中,跟随计数值的变化。
接收到CPU的读计数值命令时,锁存计数值,供CPU读取。
读取完毕之后,输出锁存器又跟随减1计数器变化。
另外,计数器的值为0的状态,还反映在状态锁存器中,可供读取。
4、引脚说明
与CPU 的接口信号:
(1)D0—D7:双向三态数据线,与CPU 相连用以传送数据、控制字以及状态信息。
(2)CS :片选输入信号,低电平有效。
(3)W R RD ,:读/写控制信号,低电平有效。
(4)10,A A :8253的内部计数器和一个控制寄存器的编码选择信号,其功能如下:
10,A A 与其他控制信号,如CS ,W R RD ,共同实现对8253的寻址,如下图:
8253寻址读写操作逻辑表
与外部设备的接口信号
(1)CLK 0、1、2:时钟脉冲输入端,输入定时脉冲或计数脉冲信号,CLK最高频率可达2MHz。
8253规定CLK输入周期不得小于380ms。
(2)GATE 0、1、2:门控输入端,即计数器的控制输入信号,用来控制计数器的工作或停止。
(3)OUT 0、1、2:计数器输出端,用来产生不同方式工作时的输出波形。
在不同工作方式下,当计数器计数到0时,OUT引脚上必输出响应的信号。
5、工作方式
(1)模式0:计数结束中断方式。
计数器对CLK输入信号进行减法计数,每一个时钟周期计数器减1。
设定该方式后,计数器的输出OUT变低。
设置装入计数值时也使输出OUT变低。
计数减到0时,输出OUT变高,该输出信号可作为中断请求信号使用。
在计数过程中可以改变计数值,若是8位计数,则写入新值后的下一个脉冲按新值计数;若是16位计数,则在写入第一个字节后,停止计数,写入第二个字节后的下一个脉冲按新值计数。
在计数过程中,可由GATE信号控制暂停。
当GATE=0时,暂停计数;当GATE=1时,继续计数.
(2)模式1:可重复出发的单稳态触发器
计数值装入计数器后,要由门控信号GATE上升沿启动计数,计数器的OUT输出低电平。
计数结束时,计数器的OUT输出高电平。
由OUT端得到从GATE上升沿开始,直到计数结束时的负脉冲。
若要再次获得所需宽度的负脉冲,可用GATE上升沿重新触发一次计数器。
若在形成单个负脉冲的过程中改变计数值不会影响正在进行的计数。
新的计数值只有在前面的负脉冲形成后,又出现GATE上升沿才起作用。
若在形成单个负脉冲的过程中又出现GATE上升沿,则当前计数停止,后面的计数以新装入的计数值开始工作,所得到的负脉冲的宽度将包括前面未未计完的部分。
(3)模式2:分频器
计数器装入初值,开始工作后,计数器的输出OUT将连续输出一个时钟周期宽的负脉冲,两负脉冲之间的时钟周期数就是计数器装入的计数初值。
GATE用做控制信号,当其为低电平时,强迫OUT输出高电平。
当其为高时,分频继续进行。
计数周期应包括负脉冲所占的那一个时钟周期,即计数减到1时开始送出负脉冲。
计数过程中,若改变计数值,则不影响当前的计数过程,而在下一次分频时,采用新的计数值。
(4)模式3:方波发生器
这种方式可以从OUT得到对称的方波输出。
当计数值N为偶数时,则前N/2计数过程中,OUT为高,后N/2计数过程中,OUT为低;当计数值N为奇数时,则前(N+1)/2计数过程中,OUT为高,后(N-1)/2计数过程中,OUT为低。
GATE为低电平时,强迫OUT输出高电平;当GATE为高电平时, OUT输出对称方波。
产生方波过程中,若装入新的计数值,则方波的下一个电平将反映新计数值所规定的方波宽度。
(5)模式4:软件触发的选通信号发生器
设置此方式后,输出OUT立即变为高电平。
一旦装入计数值,计数立即开始。
计数结束时,OUT输出一个宽度为一个时钟周期的负脉冲,计数开始时刻不受GATE控制GATE为高电平时,计数才进行, GATE为低电平时,禁止计数
若在计数过程中装入新的计数值,计数器从下一个时钟周期开始以新的计数值进行计数
(6)模式5:硬件出发的选通信号发生器
设置此方式后,OUT输出为高电平。
GATE的上升沿使计数开始。
当计数结束时由输出端OUT送出一宽度为一个时钟周期的负脉冲
在此方式下,GATE电平的高低不影响计数,计数由GATE的上升沿启动
若在计数结束前,又出现GATE上升沿,则计数从头开始
6、控制字含义及功能分析
分析:
(1) BCD=1,为BCD 码格式,BCD=0,为二进制格式。
(2) 013M M M 控制工作模式如下
(3) 01RW RW 读写控制方式如下:
(4)1SC 0SC 选择计数器方式如下:
与系统总线连接 (1)8086最小方式系统总线与8253的连接
图中译码电路根据给定的8253端口地址确定,这里IO M /和A0
均为低电平有效,而且约定采用A2、A1作为8253的内部地址线。
图中给出使用偶地址的情况,当采用奇地
址时,只需要将图中的地址信号A0
换成B H E ,并且将8086总线的
D7~D0换成D15~D8。
(2)8086最大方式系统总线与8253的连接 在8086最大方式总线下,系统
总线与8253连接框图右图所示。
与上图类似,只是将读写信号变成为 址的情况,当采用奇地址时,只需
要将图中的地址信号A0换成BHE ,并且将8086总线的D7~D0换成D15~D8。
(3)IBM PC 机系统总线与8253的连接
在IBM PC 机系统中,采用8088的最大方式,而且由于系统中包含DMA 机构,因此,设计端口和存储器的译码电路时,必须是非DMA 操作模式,即AEN=0,这样,IBM PC 机系统总线与8253连接框图如右图所示。
应该注意,系统的数据总线只有8位,故没有BHE 信号。
(4)PC机中8253连线简图
8、初始化编程
初始化编程包括设置通道控制字和送通道计数初值两个方面,控制字写入8253的控制字寄存器,而初始值则写入相应通道的计数寄存器中。
初始化步骤:
(1)写入通道控制字,规定通道的工作方式
(2)写入计数值,若规定只写低8位,则高8位自动置0,若规定只写高8位,则低8位自动置0。
若为16位计数值则分两次写入,先写低8位,后写高8位。
(3)D0:用于确定计数数制,0,二进制;1,BCD码
两种初始化方式
(1)逐个对计数器进行初始化。
大致程序如下:
MOV AL,36H 计数器0,双字节,
方式3,十六进制计数
OUT 43H,AL 写入控制寄存器MOV AL,0
OUT 40H,AL 写低字节
OUT 40H,AL 写高字节
(2)先写所有计数器的方式字,再装入各计数器的计数值。