可编程定时/计数器 8254

1 8254 基本功能

8254 是 8253 的改进型,基本功能相同,硬件组成、外部引脚、编程特性完全兼容

  1. 3 个独立的 16 位计数器
  2. 6 种工作方式
  3. 读回命令,除了读取当前技术单元内容,还可以读出状态寄存器的内容

2 8254 内部结构和外部引脚

可编程定时/计数器 8254_第1张图片

数据总线缓冲器:用于将 8254 与系统数据总线相连。写入 8254 工作模式,向计数器写入计数初值,某计数器读取当前的计数值

读/写逻辑电路:选定制定寄存器,并指定读写操作

A0 A1 说明
0 0 计数器0
0 1 计数器1
1 0 计数器2
1 1 控制寄存器

控制寄存器:决定计数器的工作方式

计数器:拥有 3 个相互独立,结构完全一样的计数器。每个计数器有 3 个引脚:GATEi 门控信号输入端,CLKi 计数脉冲输入端,OUTi 信号输出端

部件 说明
计数器初值寄存器 CR 存放计数初值
计数器工作单元 CE 用于进行 -1 操作

向计数器初值寄存器写值,会自动传入计数器工作单元,直到减到某值,OUTi 产生信号

3 8254 工作方式

软件启动:GATEi 为高电平

硬件启动:GATEi 有一个上升沿

重复计数:计数完毕后,初值寄存器的值又回存入工作单元

工作方式 启动方式 是否重复计数 输出信号
0 结束输出低电平
1 计数输出低,结束输出高
2 软、硬 结束前一个输出低
3 软、硬 输出对称方波
4 结束输出 CLK 宽度的低电平
5 结束输出 CLK 宽度的低电平

输出不对称方波时,(N+1)/2 个时钟周期输出为高电平,(N-1)/2 个时钟周期输出为低电平,也就是高电平比低电平多一

4 8254 控制字及其状态字

8254 控制字有两个:一个是用来设置工作方式的方式控制字;另一个是用来设置读回命令的读出控制字

方式控制字

D7 D6 D5 D4 D3 D2 D1 D0
计数器选择 读写格式选择 工作方式选择 是否使用 BCD

D5D4 = 0,锁存
D5D4 = 1,只读写低 8 位
D5D4 = 2,只读写高 8 位
D5D4 = 3,先读写低 8 位,再读写高 8 位

十进制(BCD 码)计数值范围为 1 ~ 10000,取最大值时写入 0000H
二进制计数值范围为 0 ~ 65536,取最大值时写入 0000H

读出控制字

D7 D6 D5 D4 D3 D2 D1 D0
1 1 0 则锁存计数值 0 则锁存计数器状态 工作方式选择 0

D4 = 0 则会将计数器状态存入状态寄存器

状态字

D7 D6 D5 D4 D3 D2 D1 D0
OUT 引脚现行状态 计数初值是否装入 工作方式选择

5 8254 应用

注意

  1. 每次启动计数,需要两个写操作,第一个写脉冲写入控制字,第二个写脉冲写入计数初值寄存器
  2. 每个计数器的控制字均送入控制寄存器
  3. 计数初值 = fCLK / fOUT

举例

8254 的计数器 0 做频率 4 kHz 的方波发生器,8254 的端口地址位 40H ~ 43H, fCLK0 = 12 MHz

;方波发生器所以工作在方式3
;计数初始值=12Mhz/4kHz=3000
;方式控制字00110111B
MOV AL,00110111B
OUT 43H,AL				;写控制字
MOV AX,3000H			;选择的是BCD计数
OUT 40H,AL				;写计数初值低8位
MOV AL,AH				;OUT不允许是H所以要先给L
OUT 40H,AL				;写计数初值高8位

8254 的计数器 2 做 1s 标准时钟,端口地址为 0360H、0362H、0364H、0366H,fCLK0 = 10 MHz

;计数初值=10MHz/1HZ=10 000 000 > 65535 
;所以一个计数器不行,要用俩,且能重复计数,做1s标准时钟
;所以计数器2工作在方式2,计数器0工作在方式3
;计数器2计数初值=2000,计数器0计数初值=5000
;计数器2方式控制字10110101B,计数器0方式控制字00110101B
MOV AL,00110111B
OUT 0366H,AL
MOV AX,2000H
MOV 0360H,AL
MOV AL,AH
MOV 0360H,AL
MOV AL,10110101B
OUT 0366,AL
MOV AX,5000H
MOV 0364H,AL
MOV AL,AH
MOV 0364,AL

8254 端口地址为 40H ~ 43H,读出计数器 2 的计数值

MOV  AL,1100100B	
OUT  43H,AL			;写控制字
IN   AL,42H
MOV  DL,AL			;读状态
IN   AL,42H			;读低8位
MOV  AH,AL
IN   AL,42H			;读高8位
XCHG AH,AL

你可能感兴趣的:(微机接口技术,微型计算机及接口技术)