文档介绍:第七章定时器/计数器板卡及其应用
定时和计数是测控系统中经常性的工作:
监视流水线上工件的数量,
自动统计用电单位的电度数,
测定脉冲间隔时间,测量频率、速度、
线位移、角位移,
产生实时时钟,用作倍频器、频率发生器、
数字单稳、产生PWM信号……
定时器/计数器板卡在实验系统中的作用:
产生PWM信号并对直流机的转速脉冲计数,
以控制直流机;
产生步进脉冲并对步进脉冲计数,以控制步进机运行;
产生定时脉冲发出IRQ2中断请求信号,使系统获得多任务实时操作所必须的“tick”信号。
这类模板大多采用8254(8253)芯片
8254芯片简介
简略回顾:
一、8254的编程结构:
三个可独立工作的16位计数器完成计数和定时
OUT0
T0. GATE0
CLK0
8
2
5
4
OUT1
T1. GATE1
CLK1
OUT2
T2. GATE2
CLK2
一个控制寄存器设定工作方式
控制寄存器
二、8254使用说明:
:
A1 A0 RD WR CS 操作
0 0 1 0 0 对计数器0写入计数初值
0 1 1 0 0 对计数器1写入计数初值
1 0 1 0 0 对计数器2写入计数初值
1 1 1 0 0 给控制寄存器写入控制字/命令
0 0 0 1 0 从计数器0读取计数值
0 1 0 1 0 从计数器1读取计数值
1 0 0 1 0 从计数器2读取计数值
在CS=0的条件下,确定片内某一计数器,以完成入计数初值的写入和余值的读取;或选中控制寄存器,以写入控制字/命令
除了以上的组合外,其它组合均使8254的数据总线呈高阻。在对控制寄存器写入时,第一次写入的必为控制字,随后写入的是命令。
6种工作方式:
8254有6 种工作方式,一旦设定某一工作方式和装入计数初值后,即可进行独立工作而不占用CPU的时间(这是一个突出的优点,便于我们建立多任务环境)。
完成计数或定时工作后,产生可供查询的信号或中断请求信号。
本课程将要用到这四种方式
方式0:计数完毕产生中断
方式1:可重复触发的单稳态触发器
方式2:分频器
方式3:方波发生器
方式4:软件触发的选通信号发生器
方式5:硬件触发的选通信号发生器
8254的控制字格式:
对8254的使用是从设定其控制字开始的
控制字的格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
SC: Select Counter
确定某一计数器的读取/写入方式、工作方式、锁存控制
SC1 SC0
0 0 选中计数器0
0 1 选中计数器1
1 0 选中计数器2
RW:Read / Write 读/ 写控制位
RW1 RW0
0 0 锁存计数器,以供CPU读取当前计数值
0 1 只读取/ 写入低8位字节
1 0 只读取/ 写入高8位字节
先低后高
1 1 先读取/ 写入低8位字节
再读取/ 写入高8位字节
M2、M1、M0:方式选择,确定8254的工作方式。
M2 M1 M0
0 0 0 方式0
0 0 1 方式1
0 1 0 方式2
0 1 1 方式3
1 0 0 方式4
1 0 1 方式5
BCD:确定计数器的计数方式是二进制/ BCD
0 二进制; 1 BCD
三、8254的工作方式(复习要点,细节见“硬件基础”)
——计数完毕产生中断。
写入控制字后,OUT的初始电平为低,计数到0时,OUT送出高电平并一直保持到写入了新的计数值。
通常用OUT的低—高变化来产生中断请求,也可作其它控制信号。
CLK
WR (N=4)
GATE
OUT 4 3 2 1 0
计数初值装入
——可重复触发的单稳态触发器
可用此方式来产生由程序控制脉冲宽度的单脉冲,该脉冲的宽度(低电平持续时间)由计数初值N确定
以GATE的
上升边为起点
CLK
WR (N = 2)
GATE
OUT 2 1 0 2 1 0
每当GATE出现上升边时,OUT都产生一个负脉冲(可重复触发)
计数完成后OUT又回到高电平产生一个负脉冲
一个CLK 脉冲后,OUT为低
写入控制字后,OUT为高电平
——分频器
此时计数器实际上是一个N分频的计数器,用来控制输出信号的高低电平的比例。