微机原理与接口技术上海交大课件第8-9章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第8章 可编程计数器/定时器 8253及其应用
8.0 计数/定时方法简介 8.1 8253的工作原理 8.2 8253的应用举例

8.0 计数/定时方法简介
软件定时(软件延时) CPU执行指令需要花费固定的时间,执行一段没有目的的指令 可以达到定时的效果。灵活方便,节省费用。CPU利用率低。 不可编程硬件定时 以逻辑门配合RC组成定时电路,如555等。通过改变RC值,调 整定时时间。定时精度不高。RC值容易随外部环境变化而变化 可编程硬件计数/定时 利用晶体振荡器产生高频时间基准,送至可编程硬件进行分频 后,通过指令设定定时初值,到达预定时间后,自动形成一个 输出信号到CPU的中断引脚,提出中断请求。CPU占用率低, 定时时间可设。 注:将晶体振荡器输出改为外部脉冲输出,则可实现计数功能。

8.1 8253的工作原理
8253基本原理图
D0 D7 ~
8253内部结构及引脚
数据 总线 缓冲器 计数器 0 CLK0 GATE0 OUT0
计数器 0
计数初值寄存器 高8 低8 执行部件 D0 D7 输出锁存寄存器 ~ RD WR A0 A1 CS
O O 读/写
控制逻辑 O 控制 寄存器
计数器 1
CLK1 GATE1 OUT1
计数器 2
CLK2 GATE2 OUT2

一、8253作用 定时
软件定时:让机器执行一段程序,安排循环来实现定 时,容易实现,定时时间调整方便,定时不精确,占用 了CPU资源,降低了CPU的利用率。 硬件定时:可编程定时/计数硬件芯片,定时值、定时范 围可以很容易的由软件改变,具有使用灵活、功能较强 等特点。
外部事件计数
外部事件计数就是对外部脉冲信号计数。产生脉冲信号 的外部原因就是外部事件。 如高速公路入口处一个专用计算机检测系统,它可以自 动对进入高速公路的车辆进行计数

8253/8254定时计数器 3个独立的16位计数器通道 每个计数器有6种工作方式 按二进制或十进制(BCD码)计数
8254是8253的改进型

8253定时/计数器的工作原理 定时/计数器的核心部件为可预置初值计数 器。预置初值后开始计数, CLK 信号每输入一个脉 冲,计数值减 1 ,一直减到 0 ,并且 OUT 脚同时产生 相应输出信号,该信号可用作中断请求。
要注意定时器 的容量即位数
GATE门控 信号 计数脉冲 CLK 输入 可预置初值计数器
OUT 输出
计数初值

四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器 以及三个独立的16位的计数器通道。这三个计数器分别是计数器 0通道、计数器1通道和计数器2通道。 (1)数据总线缓冲器:8位的双向三态缓冲器。用于暂存数据, 使用在以下几个方面: ①CPU在初始化编程时,向8253写入控制字。 ②CPU向某一通道写计数初值。 ③CPU从某一通道读计数初值。 (2)读/写控制逻辑电路:接受输入的RD、WR、CS、A1、A0等信 号组合产生出对8253要执行的操作,见操作表。 (3)控制字寄存器:只能写入,不能读出。8初始化编程时,写 入控制字决定通道的工作方式。 (4)3个计数器:分别为0、1和2,是3个独立的计数/定时通 道,都可按不同的方式工作。每个计数器内部都包含一个16位的 预置初始值寄存器。一个可预置数减法计数器和一个锁存器。

数据总线缓冲器
双向三态的8位数据缓冲器,实现8253和 CPU之间的数据接口
读/写控制电路
片选信号 CS A1A0的组合 :选择三个通道一个控制寄存 器,共4个端口 读信号 RD 和写信号 WR 由CPU提供,低电平 有效。

计数器 通道0、通道1和通道2 CLK:计数器的脉冲输入端,GATE: 计数器的门控 信号,OUT: 计数器的输出信号,一般与计数溢出 有关。 8253计数器工作在减1状态,每输入一个计数脉 冲,计数器值减l, OUT CLK 当计数器计数到零时, 16位计数器 OUT信号有效通知外 设计数器产生溢出 GATE

计数器的使用
计数器:将要计数的次数预置到该通道计数器中 定时器:从CLK输入一固定频率的时钟脉冲,再根 据要求定时的时间计算出定时所需的计数值或称 时间常数,并预置到计数器中 计数值=定时时间/时钟脉冲周期

写 8253的控制字,写入控制寄存器(A1,A0 = 11) 写入计数值,写到相应的计数器。 8253控制寄存器格式
D7 SC1 D6 SC0 D5 D4 RW1 RW0 D3 M3 D2 M2 D1 M1 D0 BCD
计数器选择 00:计数器0 01:计数器1 10:计数器2 11:*8254读回
计数值写入顺序 00:读计数值(锁存) 01:写低8位,高8位为0 10:写高8位,低8位为0 11:先写低8位,后写高8位
工作方式选择 000:方式0 001:方式1 010:方式2 101:方式5
计数值形式 0:二进制 1:BCD码
...
...

二、 初始化编程步骤和门控信号的功能 8253初始化
通过8253的控制端口向控制字寄存器写入相应通道的 控制字,控制字包括如下信息:指定通道的工作方式, 对通道计数器的读写方式,通道计数器计数时所采用的 数制; 通过8253的通道端口向相应的通道计数器写入初始计 数值。如果在控制字中已确定16位的读写方式,则要对 通道端口写操作两次,第一次写初始计数值的低8位, 第二次写高8位。

8253的编程 控制字
分为4部分,通道选择、计数器读/写方式、 工作方式和计数码的选择。
计数器选择(SC1、SC0)
计数器读/写方式(RLl、RL0)

相关文档
最新文档