8254芯片详解——6种工作方式、命令字、计数初值的计算

首先8254的芯片引脚如下图:

8254芯片详解——6种工作方式、命令字、计数初值的计算_第1张图片

6种工作方式

8254计数初值的确定

8254芯片详解——6种工作方式、命令字、计数初值的计算_第2张图片

工作方式

8254中只有2、3方式输出周期性的波形,0、1、4、5方式则只输出单次波形。

0方式:当写入计数初值后,启动计数器开始计数,OUT信号变为低电平,并维持低电平至减法计数器的内容减到0时,停止工作,OUT信号变为高电平,并维持高电平到再次写入新的计数值,因此0方式输出单次波形。如下图为0方式输出的波形,计数初值为4:

8254芯片详解——6种工作方式、命令字、计数初值的计算_第3张图片
需要注意的是,0方式是由软件启动,写入计数初值之后就开始计数,无需外加启动信号;计数结束,自动停止,无需外加停止信号。门控信号GATE用于允许或禁止计数,为1表示允许计数,为0表示禁止计数。

1方式:当写入计数初值后,再由GATE门信号启动计数,OUT变为低电平,每来一个CLK,计数器减1直到计数值减到0时,停止工作,OUT输出高电平,并维持高电平到GATE门信号再次启动。1方式输出单次波形。如下图为1方式输出的波形,计数初值为3:

8254芯片详解——6种工作方式、命令字、计数初值的计算_第4张图片
需要注意的是,1方式是由硬件启动,GATE门信号用于计数过程的启动,即在GATE出现0->1的上升沿后开始计数;计数结束,自动停止,无需外加停止信号。

2方式:当写入计数初值后,启动计数器开始减1计数,直到减到1时,OUT输出一个宽度为时钟CLK周期的低电平,接着又变为高电平,即高:低=N-1:1(N为计数初值),且计数初值自动重装,开始下一轮计数,如此往复,不停地工作。2方式输出连续波形。如下图为2方式输出的波形,计数初值为3:

8254芯片详解——6种工作方式、命令字、计数初值的计算_第5张图片
需要注意的是,2方式是由软件启动,写入计数初值之后就开始计数,无需外加启动信号;计数结束,不能自动停止,需外加停止信号。门控信号GATE用于允许或禁止计数,为1表示允许计数,为0表示禁止计数。

3方式:当写入计数初值后,启动计数器开始计数,OUT输出占空比为1:1或近似1:1的连续方波,且计数初值自动重装,开始下一轮计数,如此往复,不停地工作。3方式输出连续波形。当计数初值为偶数时,输出波形占空比为1:1,如下图(a),高:低=1:1;当计数初值为奇数时,输出波形占空比为近似1:1,如下图(b),高:低=3:2

8254芯片详解——6种工作方式、命令字、计数初值的计算_第6张图片
需要注意的是,3方式是由软件启动,写入计数初值之后就开始计数,无需外加启动信号;计数结束,不能自动停止,需外加停止信号。门控信号GATE用于允许或禁止计数,为1表示允许计数,为0表示禁止计数。

4方式:当写入计数初值后,启动计数器开始计数,OUT输出高电平,减1计数直到计数值减到0时,在OUT端输出一个宽度等于时钟CLK脉冲周期的负脉冲,并停止工作,然后OUT信号变为高电平,并维持高电平到再次写入新的计数值。4方式输出单次波形。如下图为4方式输出的波形,计数初值为5:

8254芯片详解——6种工作方式、命令字、计数初值的计算_第7张图片
需要注意的是,4方式是由软件启动,写入计数初值之后就开始计数,无需外加启动信号;计数结束,自动停止,无需外加停止信号。门控信号GATE用于允许或禁止计数,为1表示允许计数,为0表示禁止计数。

5方式:当写入计数初值后,由GATE门信号启动计数,OUT输出高电平,减1计数直到计数值减到0时,在OUT端输出一个宽度等于时钟CLK脉冲周期的负脉冲,并停止工作,然后OUT信号变为高电平,并维持高电平到再次写入新的计数值。5方式输出单次波形。如下图为5方式输出的波形,计数初值为3:

8254芯片详解——6种工作方式、命令字、计数初值的计算_第8张图片
需要注意的是,5方式是由硬件启动,GATE门信号用于计数过程的启动,即在GATE出现0->1的上升沿后开始计数;计数结束,自动停止,无需外加停止信号。

工作方式比较表:

8254芯片详解——6种工作方式、命令字、计数初值的计算_第9张图片

命令字

方式命令

用于初始化8254。下图为方式命令字格式以及代表的含义:

8254芯片详解——6种工作方式、命令字、计数初值的计算_第10张图片

锁存命令

锁存命令是将当前计数值先锁存起来再读。锁存命令只有当要求读取当前计数值时才使用,因此不是程序中必须使用的。

格式如下:

8254芯片详解——6种工作方式、命令字、计数初值的计算_第11张图片
可看到,锁存命令中有效的只有高4位,D7D6用来选择锁存的计数器,D5D4固定为00。

8254在系统中的应用设置

如下图,为微机系统配置在8254应用:

8254芯片详解——6种工作方式、命令字、计数初值的计算_第12张图片

在微机中,82C54A 是CPU外部定时系统的支持电路,作为微机的系统资源,它的3个计数器通道在PC台式微机系统中的用途分别是:OUT0用做系统时钟中断,OUT1用做动态存储器定时刷新,OUT2用做发声系统音调控制,如上图。

为了实现上述应用功能,对系统配置的82C54A进行了相应的初始化和计数初值的设置,如下表。这些设置数据放在ROM-BIOS中,可以被用户使用,并且向上兼容。

8254芯片详解——6种工作方式、命令字、计数初值的计算_第13张图片

你可能感兴趣的:(硬件知识)