8254计数器

举报
炒香菇的书呆子 发表于 2022/10/30 22:45:48 2022/10/30
【摘要】 1 8253介绍 1.1 计数器和定时器的区别定时器:系统日时钟、内存刷新、控制扬声器。计数器:对外设提供的脉冲信号计数。相同点:对脉冲进行计数。不同点:脉冲的时间间隔是否有规律,定时器有,计数器没有。 1.2 8254 功能①三个独立的16位计数器②每个计数器可安二进制或者十进制编程③每个计数器可编程6种不同的工作模式④每个计数器计数频率最高为10MHz⑤==读回功能==(8253没有)...

1 8253介绍

1.1 计数器和定时器的区别

  1. 定时器:系统日时钟、内存刷新、控制扬声器。
  2. 计数器:对外设提供的脉冲信号计数。
    相同点:对脉冲进行计数。
    不同点:脉冲的时间间隔是否有规律,定时器有,计数器没有。

1.2 8254 功能

①三个独立的16位计数器
②每个计数器可安二进制或者十进制编程
③每个计数器可编程6种不同的工作模式
④每个计数器计数频率最高为10MHz
⑤==读回功能==(8253没有)

1.3 8253和8254的区别

8253和8254大部分功能一样,8254还具有读回功能
也就是8253有的我8254都有,8253没有的我8254也有

1.4 8254的内部结构和引脚图

在这里插入图片描述

数据总线缓冲器 读写控制逻辑 计数通道
8位,双向,三态,通过8条数据线D~7~-D~0~接收CPU向控制器写入的控制字,向计数器写入的计数初值 从系统总线接收地址和控制信号,并对8253控制 8253有0,1,2三个计数器,每个计数器包含一个8位的控制寄存器,存放计数器的工作模式控制字,一个16位的初值寄存器CR,8253工作之前对他设置初值。等等

1.5 8253外部引脚

1.5.1 8254与CPU相连的引脚

D~7~-D~0~:数据线,双向,三态。用于将8253与CPU接口数据总线相连,CPU向8253读写数据,命令和状态信息。
/RD:读信号,输入,低电平有效,由CPU产生,
/WR:写信号,输入,低电平有效,由CPU产生
/CS:片选信号,输入,低电平有效
A~0~,A~1~:地址线,输出。这两根线连接到地址总线的A~1~,A~0~上,以选中8253内部寄存器并对其控制
在这里插入图片描述

1.5.2 8254与外设相连的引脚

CLK:计数时钟,输入,用于输入定时脉冲或计数脉冲信号。在计数过程中,此引脚没输入一个信号,计数器的计数值减1,CLK受到GATE门控信号的控制
GATE:门控信号,输入。由外部信号通过GATE端控制计数器启动计数和停止计数的操作。
OUT:计数结束信号,输出。当计数器到0时,OUT引脚必有输出。

2 8254可编程寄存器

2.1 方式字

在这里插入图片描述

在这里插入图片描述
D~0~:BCD位。用来设置初值寄存器的格式。
D~3~D~2~D~1~:M~3~M~2~M~1~。用来选择计数器工作方式
D~5~D~4~:指明对计数初值寄存器CR的写入和对输出锁存器OL的读出
D~7~D~6~:SC~1~SC~0~:指明使用哪个计数器(==11代表读回,8253没有此功能==)

2.1.1 方式0:计数结束产生中断

官方解释
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我的理解
/WR为低电平有效,当/WR第一次为低电平时,设定工作方式为方式0,/WR第二次为低电平时,设定计数初值,设定初值后,在CLK第一个下降沿时,将初值送入计数器(假设初值为4),之后,CLK的每个下降沿计数器减1,计数器内容由4->3,3->2,2->1,当1->0时,也就是最后一个CLK下降沿,OUT输出信号由低电平为高电平,计数结束,不循环。

2.1.2 方式1:可编程单稳脉冲

官方解释
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我的理解
在把方式控制字写入控制寄存器后,输出端OUT由低电平变为高电平,
在将计数初值送入初值寄存器后,在下一个时钟下降沿,初值送入计数执行单元,此时计数执行单元并不计数,直到触发门控信号,也就是(GATE输入一个高电平),计数器在下一个CLK下降沿开始计数,并且此时OUT由高电平变为低电平,计数器内容:4->3,3->2,2->1当1->0时,OUT由低电平变为高电平,并一直维持低电平直到下一次GATE高电平输入

2.1.3 方式2:频率发生器(分频器)

官方解释
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我的理解
在送入工作方式字后,OUT由低电平变为高电平,在送入计数初值后,在CLK的第一个下降沿开始计数,(假如计数初值是4)之后再遇到CLK下降沿,4->3,3->2,2->1,当计数值为1时,OUT由高电平变为低电平,当再次遇到CLK下降沿时,计数值由1->0,OUT由低电平变为高电平,并恢复初值(假设是4),继续开始计数(实际上上面的0应该改成4)

2.1.4 方式3:方波发生器

官方解释
在这里插入图片描述
在这里插入图片描述
我的理解
在送入工作方式字后,OUT由低电平变为高电平,在送入计数初值后,在CLK的第一个下降沿开始计数,(假如计数初值是4)之后再遇到CLK下降沿,开始有4->3,3->2,2->1,1-0,当计数初值N是偶数时,OUT会在前N/2输出高电平,在后N/2输出低电平,当计数初值是奇数时,OUT在前(N+1)/2输出高电平,在后(N-1)/2输出低电平,然后初值恢复为4,继续循环计数(实际上上面的0可以改为4)

2.1.5 方式4:软件触发选通信号

官方解释
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.6 方式5:硬件触发选通信号

官方解释
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这些内容相当于对老师上课内容的总结,并非真正意义上的“原创”,希望对大家复习触发器内容有一定帮助,see you!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。