基于FPGA的按键控制LED的循环左移一位
来源:互联网 发布:复杂网络 newman 编辑:程序博客网 时间:2024/05/21 18:37
一:背景介绍
今天早上开工,将按键控制LED的循环左移一位,这一功能实现了一把,这是一个基础功能,我想要的最终实现方式是:状态机FSM;
进阶版本是:状态机通过按键控制其条件的转变,实现多个功能的轮流展示
说到按键电路,大家脑海里首先反应出的就是:按键消抖;
二:知识问答
我想问几个问题:
1)按键消抖有几种方法呢?
两种
2)哪两种呢?
硬件方法 + 软件方法;
3)软件方法如何实现呢?
避过按键的抖动时间
4)按键的抖动期是多长?
5ms~~10ms(网络给出的,其实也差不多了,10ms的抖动期,一般课题,都可以正确实现)
三:思路解析
说到消抖,单片机里已经给出了方法,也就是:如果监测到按键按下(按键出现低电平),跳过10ms的抖动期,然后再检测,是否仍然为低电平,如果是,那就是真的按下了;
那么FPGA呢,是不是也是这种方法?
也可以这样做的,没有问题的,但是使用FPGA延时,需要注意的是:当按键按下后,会不会多次操作某一功能;这是关键,切记;
我推荐的是另一种方法;计数停止法。
核心思想:
如果监测到按键按下(按键出现低电平),那么就开始计数,如果计数到10ms时,仍然为0,则确定为:按键按下,计数停止
如果监测到按键未按下,或者,按键松开,计数值清零,然后一直计数,知道计满10ms为止。
四:框图
在此简略,稍后附上
五:小结
循环左移是一个简单地 实验,添加了按键消抖,在简单里加点料。
我现在还没有尝试使用状态机,写出描述语句,我的打算是:等所有课题或者项目的语句,描述了清楚后再用状态机;
简单铸就雄伟
我先将目前学习过的知识进行一个汇总,然后再逐个提升,简单心思,如此而已;
什么都想做,什么都想一步到位,那是牛人干的事情,作为一个普通人士,我选择逐层提升;
不要瞧不上,LED灯循环左移之类的,举3个例子:串口DB9,使用串行数据传输;SPI,使用串行数据传输;IIC,使用串行数据传输,数据需要移动,左移和右移是不是就用上 了。
大项目也是是由诸多的小项目汇总而成,小项目都还没用搞定,大项目也只能望海兴叹.。
就写这么多的,没法口吐莲花,简单的东西都能讲出花,就此搁笔,与诸君分享。
六:程序
- 基于FPGA的按键控制LED的循环左移一位
- 基于FPGA的按键控制4盏LED灯循环左移点亮
- 基于mini2440的按键中断控制LED(裸机代码)
- 简单的按键控制LED
- FPGA学习之按键控制led
- LED循环左移
- 按键控制Led的裸奔代码
- ARM开发(4)基于STM32的矩阵键盘按键控制TM1629A LED显示
- 基于FPGA的大屏幕全彩LED扫描控制器设计
- ARM开发板mini2440的按键控制LED小程序
- mini2440按键中断控制led灯遇到的问题
- LPC2124--GPIO按键控制LED灯的闪烁
- PWM --用按键控制 LED 的亮度
- 基于web的远程led控制
- 基于FPGA的flash读写控制
- 基于fpga+dsp的机器人控制-总纲
- 基于实验开发板的按键处理与LED显示
- 基于FPGA的多按键状态识别系统设计
- hdu-5901-Count primes(求1~n内素数个数)
- 小谈 " j = j++ ; "
- Flume集群搭建
- [HDU 5880] Family View (AC自动机)
- 函数INIT_DELAYED_WORK() / queue_delayed_work()
- 基于FPGA的按键控制LED的循环左移一位
- web前端-HTML列表-012
- NTU深度学习笔记3
- VS编译时,输出文件不能改写
- Android Service演义
- etcd 使用入门
- RXJava 简介
- Java面试题大全(流行的框架部分)
- 二分法查找