微机原理与接口技术——8254定时器/计时器

文章目录

一、 掌握8254定时器/计数器的基本结构

1、控制寄存器

初始化编程时,由CPU写入控制字,以决定计数器的工作方式 ,设置读出命令。此寄存器只能写入不能读出

2、计数器(16位)

8254有3个独立的计数器,每个计数器结构完全相同。

每个计数器对外有3个引脚:

  • GATE为门控信号输入端
  • CLK为计数脉冲输入端
  • OUT为输出信号信号端

3、8254端口地址

A1A0=00,选中0#计数器;

A1A0=01,选中1#计数器;

A1A0=10,选中2#计数器;

A1A0=11,选中控制寄存器;

二、8254的工作方式

掌握具有初值自动给重装功能的方式2、方式3,包括计数过程、波形、周期和启动方式

方式2------分频器

  1. 计数过程:若GATE为高电平,程序员写入新的计数初值,不会影响正在进行的减一技术过程,只有计数器减到1之后,计数器才装入新的计数初值,并且按照新的计数初值开始计数。
  2. 波形:比例 1:N-1
  3. 启动方式:软件启动

方式3------方波发生器

  1. 计数过程:当计数初值为偶数时,每来一个CLK脉冲,计数值减2,当计数值减到0时输出端改变极性,内部完成初值自动填装,继续计数。

  2. 波形比例为:N/2:N/2 即为(1:1)

  3. 启动方式:软件启动

工作方式比较

三、例题

答案:8ms,8ms

四、8254在PC机上应用

五、8254初始化编程

例子

这里没有指明是按照BCD,还是二进制,一般化会指明。

BCD码计数

bash 复制代码
MOV AL,1010 0111H
OUT 43H,AL
MOV AL,40H
OUT 42H,AL

因为这是BCD码计数,所有初值为2000H(直接加在后面H即可),在D5D4位时,我采用10,即为只写高八位,低八位置零。

二进制计数

bash 复制代码
MOV AL,1011 0110H
OUT 43H,AL
MOV AX,2000
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
相关推荐
cjy_Somnr15 小时前
keil5报错显示stm32的SWDIO未连接不能烧录
stm32·单片机·嵌入式硬件
Lay_鑫辰15 小时前
西门子诊断-状态和错误位(“轴”工艺对象 V1...3)
服务器·网络·单片机·嵌入式硬件·自动化
无垠的广袤17 小时前
【工业树莓派 CM0 NANO 单板计算机】本地部署 EMQX
linux·python·嵌入式硬件·物联网·树莓派·emqx·工业物联网
雲烟19 小时前
嵌入式设备EMC安规检测参考
网络·单片机·嵌入式硬件
泽虞19 小时前
《STM32单片机开发》p7
笔记·stm32·单片机·嵌入式硬件
田甲20 小时前
【STM32】 数码管驱动
stm32·单片机·嵌入式硬件
up向上up20 小时前
基于51单片机垃圾箱自动分类加料机快递物流分拣器系统设计
单片机·嵌入式硬件·51单片机
纳祥科技1 天前
Switch快充方案,内置GaN,集成了多个独立芯片
单片机
单片机日志1 天前
【单片机毕业设计】【mcugc-mcu826】基于单片机的智能风扇系统设计
stm32·单片机·嵌入式硬件·毕业设计·智能家居·课程设计·电子信息
松涛和鸣1 天前
从零开始理解 C 语言函数指针与回调机制
linux·c语言·开发语言·嵌入式硬件·排序算法