第八章 定时计数控制接口
(1)软件延时,利用微处理器执行一个延时程序段实现,具有不用硬件的特点,但却占用了大量CPU时间,定时精度不高
(2)不可编程的硬件定时,系统时钟进行分频/单稳电路或简易定时电路
(3)可编程的硬件定时
8.1 8253/8254定时计数器
每个8253芯片有3个独立的16位计数器通道,每个计数器有6种工作方式,都可以按二进制或者十进制计数
8.1.1 8253/8254的内部结构和引脚
1.计数器 图8-1
8253有3个相互独立的计数器通道,每个通道的结构完全相同。每个8253的计数器通道都有3个信号与外界接口
(1)CLK时钟输入信号,每输入一个时钟信号,计数器的计数值减1
(2)GATE门控输入信号
(3)OUT计数器输出信号,当计数值减为0,OUT输出一个输出信号
2.与处理器接口
表8-1 8253的端口选择
8.1.2 8253/8254的工作方式
方式2、3会自动重复
处理器写入8253的计数初值只是写入了预置寄存器。之后到来的第一个CLK脉冲才将预置寄存器的初值送到减1计数器
1.方式0:计数结束中断
当某一个计数通道设置为方式0后,其输出OUT信号随机变为低电平,当计数值减为0之后OUT端变为高电平。GATE输入信号可控制计数过程
2.方式1:可编程单稳脉冲
当CPU写入方式1控制字之后,OUT变为高。GATE启动。在整个计数过程中,OUT都维持为低,直到计数0再变为高。GATE输入信号变为低再启动时会将寄存器中的值重新送入计数器
3.方式2:频率发生器(分频器)
写入控制字之后,OUT变为高,直到计数值为1时变低,之后再恢复为高,并重新开始计数。计数过程中装入新值从下一个周期开始新值。GATE为低时禁止计数,并使OUT为高,GATE变为高时,计数器重新装入预置计数值。
4.方式3:方波发生器
方式3在计数过程中有一半时间为高电平一半时间为低电平。如果为奇数,前一半多一个时钟脉冲为高
5.方式4:软件触发选通信号
写入控制字后OUT为高,当计数值为0时OUT为低,一个时钟周期后再恢复为高。GATE为低禁止计数,变为高则重新装入计数初值
6.方式5:硬件触发选通信号
写入计数初值后,由GATE的上升沿启动计数过程,其余与方式4相同
表8-2 和 表8-3
8.1.3 8253/8254的编程
1.写入方式控制字
要求A1A0=11(控制字地址)
(1)计数器选择(D7D6)
(2)读/写格式(D5D4)
(3)工作方式(D3D2D1)
(4)数字选择(D0) 十进制为BCD码
2.写入计数值
3.读取计数值
先向8253写入锁存命令,使方式控制字D5D4=00,将计数器的当前值锁存进输出锁存器。然后CPU读取锁存的计数值。
4.8254的读回命令
8254的读回命令可以使3个通道的计数值和状态锁存 图8-10