当前位置: 首页 > 编程笔记 >

8254控制字和操作模式

长孙阳焱
2023-03-14
本文向大家介绍8254控制字和操作模式,包括了8254控制字和操作模式的使用技巧和注意事项,需要的朋友参考一下

在这里,我们将看到8254可编程间隔定时器芯片的控制字和操作模式。

在讨论其工作模式和控制字属性之前,我们应该了解该芯片的一些重要事实。

    list-paddingleft-2">
  • 芯片加电时,状态不确定。当时未定义模式,计数值和输出。

  • 每个计数器在使用前都必须编程。我们不需要对一些未使用的计数器进行编程。

  • 计数器是通过编写控制字和一个初始计数来编程的。

计数器的结构是这样的-

7
6
5
4
3
2
1
0
SC1
0SC0 RW1
RW2
M2
M1
M0
BCD /二进制

 我们可以通过SC1和SC0选择计数器。

SC1
SC0 Selection
0
0
Counter 0
0
1
Counter 1
1
0
Counter 2
1
1

读取返回状态

 

RW1和RW2的值用于表示读取和写入操作。

RW1
RW0
Selection
0
0
计数器锁存命令
0
1
读或写低字节
1
0
读取或写入高位字节
1
1
读或写低字节,后跟高字节

 

M2,M1和M0的三位用于确定编程模式。这些如下所示:

M2
M1
M0
操作模式
0
0
0
Mode 0
0
0
1
Mode 1
X
1
0
Mode 2
X
1
1
Mode 3
1
0
0
Mode 4
1
0
1
Mode 5

 控制字的最后一位(LSb)用于选择计数是二进制还是BCD。如果该值为0,它将充当二进制计数器,否则将充当BCD计数器。

现在让我们看看8254芯片的这六个工作模式:

模式
类型
描述
Mode 0
中断和终端计数

这用于事件计数。写入控制字后,OUT首先为低电平。它会一直保持低电平,直到计数器达到0,然后在每个时钟周期后递减1。

然后,OUT变为高电平,并保持高电平,直到有一个新计数或将新的模式0控制字写入计数器为止。GATE = 1表示启用计数,0表示禁用计数。

Mode 1

硬件可再触发一次

OUT首先将为高电平,在触发一个脉冲开始后,时钟脉冲将为低电平。它将保持为0,直到计数器达到0。
Mode 2
速率发生器
最初,OUT为低电平。启用计数后,它会变高。此过程会定期重复。此模式用作分频器。
Mode 3
方波发生器

如果GATE为1,则启用计数,否则禁用。此模式用于生成方波。时间段等于计数。如果计数为偶数,则波形的接通时间为count / 2。

否则,开启时间为(count + 1)/ 2,关闭时间为(count-1)/ 2。

Mode 4
软件触发的频闪
如果GATE为1,则启用计数,否则禁用。当计数处于最后阶段时,初始OUT值较高,而较低。再次为后续时钟脉冲重新加载计数。
Mode 5
硬件触发频闪

最初,OUT为高。计数由门的上升沿触发。当初始计数到期时,OUT会在一个时钟脉冲内变为低电平,然后再次变为高电平。

写入控制字和初始计数后,直到一次触发后的时钟脉冲才加载计数器。

 

 类似资料:
  • 空操作 空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。 下面的例子用空操作功能实现了一个城市切换的功能。 我们只需要给City控制器类定义一个_empty (空操作)方法: <?php namespace app\index\controller; class City { public fu

  • 绑定微信支付 通过知晓云使用微信支付功能,需要先在支付模块中绑定微信支付 1.注册小程序开发者账号 2.完成微信认证(个人号不支持微信认证):【登录小程序】—>【设置】—>【微信认证详情】 3.申请微信支付:微信认证后,可以在小程序后台,点击微信支付菜单项,选择申请微信支付。申请完成后,会发送微信支付商户号,商户平台用户名密码等信息到注册者邮箱 4.在知晓云中绑定微信支付:绑定微信支付需要你的商户

  • 对于我们的web应用程序,我需要保存获取和显示的项的顺序,这取决于视图--或者准确地说--生成视图的控制器和操作(当然还有用户id,但这不是这里的重点)。 我认为,与其在每个控制器操作中自己给出一个标识符(以便使用它对DB输出进行视图依赖的排序),不如从控制器和操作方法中自动创建这个标识符更安全、更容易。 如何从控制器的操作方法中获取控制器和操作的名称?还是我需要反思?

  • 在TYPO3 v9之前,可以将相应控制器操作的控制器和流体模板放入如下子文件夹: 类/控制器/产品/CarController.php ext_localconf.php 由于控制器名称“Product\Cars”,相对流体模板路径将解析为: 在TYPO3 v10中,这不再有效。我想这是因为现在你应该给出一个完全限定的控制器名称,如下所示: ext_localconf.php 现在,TYPO3仅尝

  • 简介 ACL, 又称访问控制列表,是使用以访问控制矩阵为基础的访问控制方法,每一个对象对应一个串列主体。访问控制表描述每一个对象各自的访问控制,并记录可对此对象进行访问的所有主体对对象的权限。 很多类型的系统都实现了 ACL, 例如: 文件系统 ACLs 参考 Unix 文件系统权限 网络 ACLs 路由器、交换机访问 SQL 实现 就 Unix 文件系统而言, ACL 指的是文件的操作权限列表。