文档介绍:第6章定时与计数技术
概述
可编程控制定时/计数器8254
8254在微机中的应用
1
西南交通大学计算机与通信工程学院
概述
定时与计数
定时和计数功能是计算机系统中必不可少的。
在多任务分时系统中作为中断信号,实现程序切换;
向I/O设备输出精确的定时信号;
作为可编程的波特率发生器;
实现时间延迟。
2
西南交通大学计算机与通信工程学院
计数:设定好初值,对输入脉冲信号进行减1计数,减到0,输出一个有效信号。
定时:按照设定好的初值,对输入脉冲信号进行减1计数减到0后,自动重新开始计数,从而周期性地输出脉冲信号。
定时与计数在本质一样,不过定时计的数是时间单位。定时时间= 计数初值 x 时钟周期
常用的可编程定时/计数器芯片有:Z80系列的CTC、Intel系列的8253、8254等。
3
西南交通大学计算机与通信工程学院
定时方法及原理
1. 实现定时的三种方法:
软件定时:利用CPU每执行一条指令都需要几个指令周期的原理,运用软件延迟的方式进行定时。特点:无需硬件,简单、灵活,但定时精度不高,降低CPU效率。
不可编程硬件定时:利用专门的定时电路(如RC单稳电路、计数电路)实现定时。特点:精度高,但不灵活、定时时间和范围不能改变。
可编程硬件定时:利用软件硬件结合方法,对通用的计数器件进行编程设置后,由可编程器件实现精确定时。特点:定时时间精确,方便灵活,使用广泛。例如8253/8254芯片。
4
西南交通大学计算机与通信工程学院
2. 可编程计数器/定时器工作原理
CLK
GATE
OUT
时钟
由设备来
往设备去
数据
RESET
READY
RD
WR
译码
CS
A0
A1
地址
可编程计数器/定时器的典型结构框图
控制寄存器
计数初值寄存器
状态寄存器
计数器
输出锁存器
中断请求
锁存器
5
西南交通大学计算机与通信工程学院
工作过程:
将计数初值预置到计数初始值寄存器。(由CPU通过读写逻辑和数据线预置)
将计数初值传送至计数器。
计数脉冲经CLK输入端输入后,在GATE控制下对计数器进行减法计数。计数器当前内容随时传送到输出锁存器,以供CPU读取,不影响计数过程。
计数值为0时(即1次计数结束),OUT引脚和状态寄存器的某1位状态发生变化,该变化可通过查询方式读取(或作为1个8259A的中断请求,定时触发1个中断)。
6
西南交通大学计算机与通信工程学院
可编程定时器/计数器8254
8254的基本功能
8254的内部结构和外部引脚
8254的工作方式
8254的控制字
8254的编程
7
西南交通大学计算机与通信工程学院
8254的基本功能
有3个独立的16位计数器(0#、1#、2#);
每个计数器可以按二进制方式或十进制(BCD码)方式计数;
每个计数器可编程工作于6种不同工作方式;
8254-2每个计数器允许的最高计数频率为10MHz;
8254有读回命令(8253没有),可以读出当前计数单元的内容和状态寄存器的内容。
8
西南交通大学计算机与通信工程学院
8254的内部结构和外部引脚
1. 内部结构
8254的内部结构框图
控制字寄
存器
D
7
-D
0
数据总线
缓冲器
计数器
0
号
CLK
0
GATE
0
OUT
0
计数器
1
号
CLK
1
GATE
1
OUT
1
计数器
2
号
CLK
2
GATE
2
OUT
2
CS
读
/
写
逻辑
RD
WR
A
0
A
1
内
部
数
据
总
线
9
西南交通大学计算机与通信工程学院
数据总线缓冲器
三态、双向8位寄存器,用于将8254与系统总线相联。
向8254写入控制命令以确定8254的工作方式;
向8254计数寄存器装入计数值;
读出计数值。
控制寄存器
8位寄存器,8254初始化编程时,用于存放CPU写入的控制字,以决定各个计数器的工作方式。
该寄存器只能写入,不能读出。
三个基本功能
10
西南交通大学计算机与通信工程学院