0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何设计一个对按键信号进行计数的计数器?

冬至子 来源:大哈学习纪录铺 作者:张大哈 2023-10-10 14:27 次阅读

实验任务: 本实验中要设计一个对按键信号(key_in)进行计数的计数器。

实验原理 整个实验电路包含四个模块:

① erzp模块完成按键消抖功能,默认抖动时间为10MS;

② detect_module模块用于检测按键信号的下降沿,当检测到下降沿后,输出一个时钟周期的高电平。

③ get_state模块:将按键信号转换成状态信号,当按键按下后,状态转换0→1→0→1→……..。

④ cnt10模块:完成对按键信号进行计数。clk:系统时钟,cnt_en:计数使能(1:计数,0:暂停),cnt_single:计数信号,rst_n:复位信号,updown_state:加1计数或减1计数控制(1:加1计数,0:减1计数)。data:计数结果输出。

源代码撰写:

erzp****模块:

默认抖动时间最多为10ms,框1与框2的功能就是,计数当前电平若处于一直处于低电平就key_low一直自加1 ,一旦不是低电平了key_low就清0.高电平key_hign同理。当key_low或key_hign当前计数到了10ms,说明当前已经过了抖动状态。并且输出当前消抖后的对应电平。

图片

detect_module****模块:

这里主要是利用了一个寄存器,让上一个时钟状态的按键状态和当前的对比,不一样说明有了边缘变化。

图片

get_state****模块:

图片

cnt10****模块:

图片

原理图绘制顶层文件流程:

1.将以上四个.v文件依次转换为电路器件,生成BSF文件如右图所示

图片

图片

2.建立一个顶层原理图bdf(后建立的要设为顶层,与项目工程名称一致。)

图片

图片

在原理图中可以放置器件,可以看到刚刚生产的器件。并按逻辑进行连接。并修改对应端口名。完成之后,为了之后仿真,可以转成.v文件。

图片

图片

图片

生成如图所示:以后也可将此项目作为整个调用的器件,生成BSF文件

图片

图片

图片

RTL视图:

图片

测试代码撰写: 测试时,需将原理图移除,将转化的.V文件加进来。

图片

测试结果

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117745
  • 计数器
    +关注

    关注

    32

    文章

    2123

    浏览量

    92987
  • CLK
    CLK
    +关注

    关注

    0

    文章

    122

    浏览量

    16912
  • 按键消抖
    +关注

    关注

    2

    文章

    23

    浏览量

    10333
收藏 人收藏

    评论

    相关推荐

    51单片机设计计数器求助?

    设计题:请设计计数器,实现0-9999内的计数,每按按键
    发表于 12-17 23:17

    labview怎样用计数器触发脉冲信号,然后用计数器读取频...

    labview怎样用计数器触发脉冲信号,然后用计数器读取频率宽度
    发表于 11-19 21:04

    按键控制计数器

    计数器暂停时,按键按下时数码管全部灭了,松开按键数码管才亮,并显示按下按键时的数字。计数器如何才能在按键
    发表于 07-05 17:26

    计数器的级连使用

    计数器的级连使用 一个十进制计数器只能显示0~9十个数,为了扩大计数器范围,常用多个十进制计数器级连使用。
    发表于 11-22 12:53 3419次阅读
    <b class='flag-5'>计数器</b>的级连使用

    计数器

    计数器 计数器的作用与分类   计数器(Counter)用于计算输入脉冲个数,还常用于分频、定时等。
    发表于 09-30 18:30 1441次阅读
    <b class='flag-5'>计数器</b>

    环形计数器和扭环形计数器

    环形计数器和扭环形计数器 移位寄存器也可以构成计数器,称为移位型计数器。它有两种结构:环形计数器和扭环形
    发表于 01-12 14:07 9231次阅读

    计数器,计数器的工作原理是什么?

    计数器,计数器的工作原理是什么? 在数字系统中使用最多的时序电路是计数器计数器不仅能用于对时钟脉冲进行
    发表于 03-08 13:50 6w次阅读

    按键次数计数器

    慧净HL-1 配套C实验例程100例【实验21】按键次数计数器),很好的C51学习资料程序。
    发表于 03-21 16:44 21次下载

    集成计数器实现N进制计数

    集成计数器实现N进制计数集成计数器实现N进制计数集成计数器实现N进制计数
    发表于 06-08 14:28 0次下载

    基于8051的Proteus仿真-计数器中断实现100以内的按键

    基于8051的Proteus仿真-计数器中断实现100以内的按键计数
    发表于 09-01 23:35 33次下载

    计数器原理

    计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、
    的头像 发表于 01-24 14:35 6.4w次阅读

    "stm32f0按键计数器程序_数字系统设计, 8个经典计数器电路方案合辑"

    计数器(Counter)由基本的计数单元和控制门所组成,是在数字系统中对脉冲的个数进行计数,以实现测量、计数和控制功能,且兼有分频功能的仪器
    发表于 11-25 18:06 32次下载
    "stm32f0<b class='flag-5'>按键</b><b class='flag-5'>计数器</b>程序_数字系统设计, 8个经典<b class='flag-5'>计数器</b>电路方案合辑"

    同步计数器和异步计数器是什么 同步计数器和异步计数器的主要区别?

    在数字电子产品中,计数器是由一系列触发器组成的时序逻辑电路。顾名思义,计数器用于计算输入在负或正边沿转换中出现的次数。根据触发触发器的方式,计数器可以分为两类:同步计数器和异步
    的头像 发表于 03-25 17:31 2w次阅读
    同步<b class='flag-5'>计数器</b>和异步<b class='flag-5'>计数器</b>是什么 同步<b class='flag-5'>计数器</b>和异步<b class='flag-5'>计数器</b>的主要区别?

    基于AT89C51单片机用计数器中断实现100以内的按键计数

    基于AT89C51单片机用计数器中断实现100以内的按键计数仿真及代码
    发表于 05-04 15:32 1次下载

    计数器怎么用 计数器的作用有哪些

    计数器是一种被广泛应用于各个领域的实用工具,在我们的日常生活中随处可见。无论是进行时间统计,协助工作任务的完成,还是用于科学研究和编程技术,在各个领域都起到了重要的作用。本文将详细介绍计数器
    的头像 发表于 02-03 10:04 1243次阅读