第八章 8253
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CS RDWR A1 A2 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 寄存器选择和操作 写入0通道寄存器 写入1通道寄存器 写入2通道寄存器 写入控制寄存器 读0通道 读1通道 读2通道
8.3
D7 D6
对8253的计数器进行读操作时,应注意: 当对8253的计数器进行读操作时,可以读出计数 值,具体实现方法有如下两种: ①使计数器停止计数时,先写入控制字,规定好RL1和 RL0(控制字的D5D4位)的状态——也就是规定读一个 字节还是读两个字节。 ②在计数过程中读计数值。这时读出当前的计数值 并不影响计数器的工作。为做到这一点,首先写入 8253一个特定的控制字:XX00XXXX。这是控制字的一 种形式。
可编程定时/计数器的主要用途有:
① 以均匀分布的时间间隔中断分时操作系统, 以便 切换程序。 ② 向I/O设备输出精确的定时信号, 该信号的周期 由程序控制。 ③ 用作可编程波特率或速率发生器。 ④ 检测外部事件发生的频率或周期。 ⑤ 统计外部某一事件发生的次数。 ⑥ 在定时或计数达到编程规定的值之后, 产生输出 信号,向CPU申请中断。
CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2
D7-D0 RD WR A0 A1
数据总线 8 缓冲器 内 读/写 逻辑 部 数 据 控制字寄 存器 总 线
计数器 0号
计数器 1号 计数器 2号
CS
8253的结构框图
1、8253的内部结构功能分析 1)数据总线缓冲器 八位双向三态,用于暂时存放数据,存放 的数据有: (1)初时化编程时向8253写入的控制字 (2)向某一通道写入的计数值。 (3)从向某一通道读计数值。 注意:CPU用输入/输出指令对8253进行读/写 操作的所有信息都是通过这8条总线传送的。
读写操作 00= 锁定当前计数值 01= 读 /写计数器低 8 位 10= 读写计数器高 8 位 11= 先读 / 写计数器低 8 位 再读/写高8位
1)D7D6:计数器选择位。这两位表示这个控制字是对哪一个 计数器设置的。 00:计数器0;01:计数器1;10:计数器2;11:非法选择。
D7
D6
D5
D4
wenku.baidu.com
D3
D2
D1
D0
0= 二进制 1= 十进制 工作方式选择 000= 方式 0 001= 方式 1 x10= 方式 2 x11= 方式 3 100= 方式 4 101= 方式 5
通道控制字寻址 00=通道 0 控制寄存器 01=通道 1 控制寄存器 10=通道 2 控制寄存器 11=不用
读写操作 00= 锁定当前计数值 01= 读 /写计数器低 8 位 10= 读写计数器高 8 位 11= 先读 / 写计数器低 8 位 再读/写高8位
⑴写入方式0控制字后,OUT立即变成低电平。当写入计数初值N 后,若GATE为高电平,计数器开始计数。 ⑵在计数过程中, OUT端一直维持为低,直到计数为0(结束) 时,OUT端变为高,(可以设置为向CPU发出中断请求)。 ⑶在计数过程中,若GATE变为低电平,暂时停止计数,OUT不变, 直到GATE变为高电平后继续接着计数,到计数为0(结束)时, OUT端变为高。(可以设置为向CPU发出中断请求)。 8253用作计数时, 一般都工作在方式0。
2)读/写控制逻辑
(1)接受CPU的RD、WR、CS 、A0、A1 信号,经组合 产生对某一端口的操作。 (2)当片选信号有效, 即CS =0时,读/写逻辑才能 工作。该控制逻辑根据读/写命令及送来的地址信息, 决定三个计数器和控制字寄存器中哪一个工作,并控 制内部总线上数据传送的方向。
3)控制字寄存器
3)D3D2D1:计数器工作方式选择位
8253的每个计数通道有6种不同的工作,工作方式由 这3位决定。 000——方式0;001——方式1;x10——方式2 x11——方式3;100——方式4;101——方式5。
4)D0:数制选择
8253的每个计数器有两种数制二进制和十进制,由 这一位决定选择哪一种。D0=0表示采用二进制计数, 写入的初值范围为0000H~FFFFH,其中0000H是 最大值,代表65536; D=1表示采用十进制计数, 写入的初值范围为0000~9999,其中0000是最大 值,代表10000。
3)对门控信号GATE的采样是在计数脉冲的上升沿进行, 所以有电平触发和边沿触发两种方式 4)8253在上电后必须先对其初始化设置
2、8253的工作方式
本节以下各例均设8253各端口地址40H~43H。
A口=40H, B口=41H,C口=42H,
控制口=43H
1)方式0—计数结束后输出由低变高 工作过程:
2)与外部设备的接口信号
D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 CS Vcc
数据线
控制线
电源线
地
8 7 6 5 4 3 2 1 22 23 19 2 21 24 12
9 11 10
CLK0 GATE 0 OUT0
计数器 0号
(1)CLK0~CLK2:时 钟/脉冲输入端 (2)OUT0~OUT2 : 定时/计数到, 输出 相应的电平
2、定时与计数的三种方式
1) 软件定时: 利用CPU每执行一条指令都需要几个固定的 指令周期的原理,因此执行一个程序段就需要一 定的时间,运用软件编程的方式,通过改变指令 执行的循环次数就可以控制定时时间,由于它占 用了CPU,因而降低了CPU的利用率。 例: MOV CX,1000H DEALY: MOV BX,1000H LOOP DEALY
5) 三个独立端口的特性
1)三个计数器的GATE都是高电平有效 2)最高计数频率2MHZ 3)有6种工作方式 4)计数范围 0—65535或0000H---FFFFH
6) 8253的寻址及连接
8253占用4个接口地址,地址由CS、A0、A1来确定。 地址线A1A0编码与8253内部寄存器的对应关系:
8253的编程控制字格式
D5 D4 D3 D2 D1 D0
0= 二进制 1= 十进制 工作方式选择 000= 方式 0 001= 方式 1 x10= 方式 2 x11= 方式 3 100= 方式 4 101= 方式 5
通道控制字寻址 00=通道 0 控制寄存器 01=通道 1 控制寄存器 10=通道 2 控制寄存器 11=不用
接受CPU的控制字,只能写,不能读,根据控制字决 定每个通道的工作方式。
4)三个计数/定时器的特点
(1) 计数/定时器0、1、2是3 个16位减1计数器,它们互相
独立, 内部结构和功能相同。
(2)每个计数器有3根信号线,它们是时钟输入CLK、门控输入
GATE和输出OUT。
(3)计数/定时器从CLK端接收时钟脉冲或事件计数脉冲,在脉
15 14 13
CLK1 GATE 1 OUT1
计数器
1号
18 16 17
CLK2 GATE 2 OUT2
计数器 2号
(3)GATE0~GATE2 : 门控信号,用于启动 /停止定时或计数工 作的控制,也是两个 或两个以上串联的定 时/计数输入端。该 信号有效时定时/计 数器才开始工作。
8.3 8253定时计数器内部结构
8253初始化编程要求
1、8253三个端口有各自独立的地址,控制字分别对
各端口的工作方式进行设置。 2、对某一个端口设置初值时,先设置控制字 3、设置初值时,要符合D5、D4的规定,分别输入计 数值。(16位计数值要用两条指令写入计数值) 4、锁存(D5D4=00)的目的是:在CPU读取计数值前 先用锁存命令锁存减1计数器的当前值,否则得不到 正确的结果,CPU取走数据后,锁存功能自动失锁 5、编程顺序:先写入控制字到控制寄存器,然后写 入计数初值到所确定的计数器端口!!!
2) 硬件定时: 利用专门的定时电路实现精确定时。不受 控制,无法修改。如555电路。 3) 通用可编程接口芯片定时: 由硬件和软件相结合, 可以有多种定时和 计数工作方式供选用,可应用与各中不同型号 的计算机系统。
3、可编程定时/计数器8253 8253是Intel公司生产的可编程计数/定 时器芯片。8253的操作对所在系统没有特殊 要求,其通用性强,适用于各种微处理器组 成的系统。它有3个独立的16位减1计数器, 每个计数器有6种工作方式,能进行二进制或 二-十进制计数或定时操作,计数速率可达2 MHz,所有的输入/输出都与TTL电平兼容。
2)D5D4:数据读/写格式选择位。CPU在对计数器写入初值和 读取它们的当前值时,有几种不同的格式,由这两位来决定。 00:将计数器当前值锁存于输出锁存器中,以便读出; 01:只读/写计数器的低8位,写入时高8位自动设置为0; 10:只读/写计数器的高8位,写入时低8位自动设置为0; 11:对16位计数器进行两次读/写操作,低字节在前,高字节 在后, 两次操作的地址相同。
方式0的时序图
CLK
(设计数初值为3)
② GATE (允许计数高电平) 写CW 写计数值 WR
① OUT0
③ ④ 3 2 1 0
GATE
OUT0 3 2 2 2 1 0
特点①: 计数器只计一遍数。当计数到0时,并不恢 复计数初值, 不开始重新计数,输出端OUT由低变高 且一直保持为高。只有当写入一个新的计数初值后, OUT才变低,开始新的计数。
8.2 8253定时计数器的引脚功能
D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 CS Vcc
数据线
控制线
电源线
地
8 7 6 5 4 3 2 1 22 23 19 2 21 24 12
1、8253的引脚功能:
9 11 10 CLK0 GATE 0 OUT0 计数器
0号
15 14 13
冲下降沿按照二进制或十进制从预置的初值开始进行减1计数。 当计数值减到零时,从OUT端送出一个信号。
(4)计数器在开始计数和计数过程中,都要受到门控信号GATE
的控制, GATE =1可以计数, GATE =0,停止计数。
每个计数/定时器(通道)有:
1、有一个16位的预置计数初值寄存器 2、有一个16位的减1计数寄存器,初值为计数初值 寄存器的值。当输入端CLK输入一个计数脉冲后,减 1计数寄存器的内容减1,当减到0时,输出端OUT输 出相应的电平,表示计数结束。 3、当前计数输出寄存器:16位寄存器,供CPU读出 当前的计数值。当前计数输出寄存器相当于减1计数 寄存器的状态寄存器,它随减1寄存器的内容变化, 但由于减1计数寄存器是CPU不能直接读数据的,只 能读当前计数输出寄存器的值。
8.4
8253工作方式与时序
1、六种工作方式均遵循的以下几条原则: 1)写入控制字时所有的控制逻辑电路复位,输出端 OUT进入初始化状态。工作方式不同,输出电平不同。
2)初值写入后,需经过一个时钟周期减1计数器才开 始工作,时钟脉冲的下降沿使计数器减1计数(GATE必 须为高时)。如果初值为0,则为最大值(65536:二进 制或为10000:十进制)。
CLK1 GATE 1 OUT1
计数器 1号
18 16 17
CLK2 GATE 2 OUT2
计数器
2号
8253的引脚配置
1)与CPU的接口信号 (1)D0-D7:数据 线,CPU与8253之间传 送数据,控制和信息。 (2)CS: 片选信号. 接地址译码电路. (3)WR RD 读 写控制 (4)A0 A1 地址 选择线, 用于对 8253的四个端口的读 写.(三个计数/定时口, 一个控制口)
第八章 可编程定时/计数器8253 本章学习的知识点: 1)掌握8253的基本功能 2)掌握8253的6种工作方式的特点和用法 3)掌握8253的硬软件设计方法 本章学习的难点: 1)掌握8253的6种工作方式的特点和用法 2)掌握8253的硬软件设计方法
8.1 概述
1、应用场合
在微机系统中,要求对外部信号进行计数 或要求对时间进行精确定时----计数/定时器. 计数由外部脉冲信号提供,当达到设定的计数 值时,输出一个电平信号,告知外部设备已经计 满。定时时间基准由8086内部时钟源提供,经 定时钟分频后得到所需的时间信号,当定时时 间到后也输出一个电平信号,告知外部设备定 时时间到。
8.3
D7 D6
对8253的计数器进行读操作时,应注意: 当对8253的计数器进行读操作时,可以读出计数 值,具体实现方法有如下两种: ①使计数器停止计数时,先写入控制字,规定好RL1和 RL0(控制字的D5D4位)的状态——也就是规定读一个 字节还是读两个字节。 ②在计数过程中读计数值。这时读出当前的计数值 并不影响计数器的工作。为做到这一点,首先写入 8253一个特定的控制字:XX00XXXX。这是控制字的一 种形式。
可编程定时/计数器的主要用途有:
① 以均匀分布的时间间隔中断分时操作系统, 以便 切换程序。 ② 向I/O设备输出精确的定时信号, 该信号的周期 由程序控制。 ③ 用作可编程波特率或速率发生器。 ④ 检测外部事件发生的频率或周期。 ⑤ 统计外部某一事件发生的次数。 ⑥ 在定时或计数达到编程规定的值之后, 产生输出 信号,向CPU申请中断。
CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2
D7-D0 RD WR A0 A1
数据总线 8 缓冲器 内 读/写 逻辑 部 数 据 控制字寄 存器 总 线
计数器 0号
计数器 1号 计数器 2号
CS
8253的结构框图
1、8253的内部结构功能分析 1)数据总线缓冲器 八位双向三态,用于暂时存放数据,存放 的数据有: (1)初时化编程时向8253写入的控制字 (2)向某一通道写入的计数值。 (3)从向某一通道读计数值。 注意:CPU用输入/输出指令对8253进行读/写 操作的所有信息都是通过这8条总线传送的。
读写操作 00= 锁定当前计数值 01= 读 /写计数器低 8 位 10= 读写计数器高 8 位 11= 先读 / 写计数器低 8 位 再读/写高8位
1)D7D6:计数器选择位。这两位表示这个控制字是对哪一个 计数器设置的。 00:计数器0;01:计数器1;10:计数器2;11:非法选择。
D7
D6
D5
D4
wenku.baidu.com
D3
D2
D1
D0
0= 二进制 1= 十进制 工作方式选择 000= 方式 0 001= 方式 1 x10= 方式 2 x11= 方式 3 100= 方式 4 101= 方式 5
通道控制字寻址 00=通道 0 控制寄存器 01=通道 1 控制寄存器 10=通道 2 控制寄存器 11=不用
读写操作 00= 锁定当前计数值 01= 读 /写计数器低 8 位 10= 读写计数器高 8 位 11= 先读 / 写计数器低 8 位 再读/写高8位
⑴写入方式0控制字后,OUT立即变成低电平。当写入计数初值N 后,若GATE为高电平,计数器开始计数。 ⑵在计数过程中, OUT端一直维持为低,直到计数为0(结束) 时,OUT端变为高,(可以设置为向CPU发出中断请求)。 ⑶在计数过程中,若GATE变为低电平,暂时停止计数,OUT不变, 直到GATE变为高电平后继续接着计数,到计数为0(结束)时, OUT端变为高。(可以设置为向CPU发出中断请求)。 8253用作计数时, 一般都工作在方式0。
2)读/写控制逻辑
(1)接受CPU的RD、WR、CS 、A0、A1 信号,经组合 产生对某一端口的操作。 (2)当片选信号有效, 即CS =0时,读/写逻辑才能 工作。该控制逻辑根据读/写命令及送来的地址信息, 决定三个计数器和控制字寄存器中哪一个工作,并控 制内部总线上数据传送的方向。
3)控制字寄存器
3)D3D2D1:计数器工作方式选择位
8253的每个计数通道有6种不同的工作,工作方式由 这3位决定。 000——方式0;001——方式1;x10——方式2 x11——方式3;100——方式4;101——方式5。
4)D0:数制选择
8253的每个计数器有两种数制二进制和十进制,由 这一位决定选择哪一种。D0=0表示采用二进制计数, 写入的初值范围为0000H~FFFFH,其中0000H是 最大值,代表65536; D=1表示采用十进制计数, 写入的初值范围为0000~9999,其中0000是最大 值,代表10000。
3)对门控信号GATE的采样是在计数脉冲的上升沿进行, 所以有电平触发和边沿触发两种方式 4)8253在上电后必须先对其初始化设置
2、8253的工作方式
本节以下各例均设8253各端口地址40H~43H。
A口=40H, B口=41H,C口=42H,
控制口=43H
1)方式0—计数结束后输出由低变高 工作过程:
2)与外部设备的接口信号
D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 CS Vcc
数据线
控制线
电源线
地
8 7 6 5 4 3 2 1 22 23 19 2 21 24 12
9 11 10
CLK0 GATE 0 OUT0
计数器 0号
(1)CLK0~CLK2:时 钟/脉冲输入端 (2)OUT0~OUT2 : 定时/计数到, 输出 相应的电平
2、定时与计数的三种方式
1) 软件定时: 利用CPU每执行一条指令都需要几个固定的 指令周期的原理,因此执行一个程序段就需要一 定的时间,运用软件编程的方式,通过改变指令 执行的循环次数就可以控制定时时间,由于它占 用了CPU,因而降低了CPU的利用率。 例: MOV CX,1000H DEALY: MOV BX,1000H LOOP DEALY
5) 三个独立端口的特性
1)三个计数器的GATE都是高电平有效 2)最高计数频率2MHZ 3)有6种工作方式 4)计数范围 0—65535或0000H---FFFFH
6) 8253的寻址及连接
8253占用4个接口地址,地址由CS、A0、A1来确定。 地址线A1A0编码与8253内部寄存器的对应关系:
8253的编程控制字格式
D5 D4 D3 D2 D1 D0
0= 二进制 1= 十进制 工作方式选择 000= 方式 0 001= 方式 1 x10= 方式 2 x11= 方式 3 100= 方式 4 101= 方式 5
通道控制字寻址 00=通道 0 控制寄存器 01=通道 1 控制寄存器 10=通道 2 控制寄存器 11=不用
接受CPU的控制字,只能写,不能读,根据控制字决 定每个通道的工作方式。
4)三个计数/定时器的特点
(1) 计数/定时器0、1、2是3 个16位减1计数器,它们互相
独立, 内部结构和功能相同。
(2)每个计数器有3根信号线,它们是时钟输入CLK、门控输入
GATE和输出OUT。
(3)计数/定时器从CLK端接收时钟脉冲或事件计数脉冲,在脉
15 14 13
CLK1 GATE 1 OUT1
计数器
1号
18 16 17
CLK2 GATE 2 OUT2
计数器 2号
(3)GATE0~GATE2 : 门控信号,用于启动 /停止定时或计数工 作的控制,也是两个 或两个以上串联的定 时/计数输入端。该 信号有效时定时/计 数器才开始工作。
8.3 8253定时计数器内部结构
8253初始化编程要求
1、8253三个端口有各自独立的地址,控制字分别对
各端口的工作方式进行设置。 2、对某一个端口设置初值时,先设置控制字 3、设置初值时,要符合D5、D4的规定,分别输入计 数值。(16位计数值要用两条指令写入计数值) 4、锁存(D5D4=00)的目的是:在CPU读取计数值前 先用锁存命令锁存减1计数器的当前值,否则得不到 正确的结果,CPU取走数据后,锁存功能自动失锁 5、编程顺序:先写入控制字到控制寄存器,然后写 入计数初值到所确定的计数器端口!!!
2) 硬件定时: 利用专门的定时电路实现精确定时。不受 控制,无法修改。如555电路。 3) 通用可编程接口芯片定时: 由硬件和软件相结合, 可以有多种定时和 计数工作方式供选用,可应用与各中不同型号 的计算机系统。
3、可编程定时/计数器8253 8253是Intel公司生产的可编程计数/定 时器芯片。8253的操作对所在系统没有特殊 要求,其通用性强,适用于各种微处理器组 成的系统。它有3个独立的16位减1计数器, 每个计数器有6种工作方式,能进行二进制或 二-十进制计数或定时操作,计数速率可达2 MHz,所有的输入/输出都与TTL电平兼容。
2)D5D4:数据读/写格式选择位。CPU在对计数器写入初值和 读取它们的当前值时,有几种不同的格式,由这两位来决定。 00:将计数器当前值锁存于输出锁存器中,以便读出; 01:只读/写计数器的低8位,写入时高8位自动设置为0; 10:只读/写计数器的高8位,写入时低8位自动设置为0; 11:对16位计数器进行两次读/写操作,低字节在前,高字节 在后, 两次操作的地址相同。
方式0的时序图
CLK
(设计数初值为3)
② GATE (允许计数高电平) 写CW 写计数值 WR
① OUT0
③ ④ 3 2 1 0
GATE
OUT0 3 2 2 2 1 0
特点①: 计数器只计一遍数。当计数到0时,并不恢 复计数初值, 不开始重新计数,输出端OUT由低变高 且一直保持为高。只有当写入一个新的计数初值后, OUT才变低,开始新的计数。
8.2 8253定时计数器的引脚功能
D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 CS Vcc
数据线
控制线
电源线
地
8 7 6 5 4 3 2 1 22 23 19 2 21 24 12
1、8253的引脚功能:
9 11 10 CLK0 GATE 0 OUT0 计数器
0号
15 14 13
冲下降沿按照二进制或十进制从预置的初值开始进行减1计数。 当计数值减到零时,从OUT端送出一个信号。
(4)计数器在开始计数和计数过程中,都要受到门控信号GATE
的控制, GATE =1可以计数, GATE =0,停止计数。
每个计数/定时器(通道)有:
1、有一个16位的预置计数初值寄存器 2、有一个16位的减1计数寄存器,初值为计数初值 寄存器的值。当输入端CLK输入一个计数脉冲后,减 1计数寄存器的内容减1,当减到0时,输出端OUT输 出相应的电平,表示计数结束。 3、当前计数输出寄存器:16位寄存器,供CPU读出 当前的计数值。当前计数输出寄存器相当于减1计数 寄存器的状态寄存器,它随减1寄存器的内容变化, 但由于减1计数寄存器是CPU不能直接读数据的,只 能读当前计数输出寄存器的值。
8.4
8253工作方式与时序
1、六种工作方式均遵循的以下几条原则: 1)写入控制字时所有的控制逻辑电路复位,输出端 OUT进入初始化状态。工作方式不同,输出电平不同。
2)初值写入后,需经过一个时钟周期减1计数器才开 始工作,时钟脉冲的下降沿使计数器减1计数(GATE必 须为高时)。如果初值为0,则为最大值(65536:二进 制或为10000:十进制)。
CLK1 GATE 1 OUT1
计数器 1号
18 16 17
CLK2 GATE 2 OUT2
计数器
2号
8253的引脚配置
1)与CPU的接口信号 (1)D0-D7:数据 线,CPU与8253之间传 送数据,控制和信息。 (2)CS: 片选信号. 接地址译码电路. (3)WR RD 读 写控制 (4)A0 A1 地址 选择线, 用于对 8253的四个端口的读 写.(三个计数/定时口, 一个控制口)
第八章 可编程定时/计数器8253 本章学习的知识点: 1)掌握8253的基本功能 2)掌握8253的6种工作方式的特点和用法 3)掌握8253的硬软件设计方法 本章学习的难点: 1)掌握8253的6种工作方式的特点和用法 2)掌握8253的硬软件设计方法
8.1 概述
1、应用场合
在微机系统中,要求对外部信号进行计数 或要求对时间进行精确定时----计数/定时器. 计数由外部脉冲信号提供,当达到设定的计数 值时,输出一个电平信号,告知外部设备已经计 满。定时时间基准由8086内部时钟源提供,经 定时钟分频后得到所需的时间信号,当定时时 间到后也输出一个电平信号,告知外部设备定 时时间到。