基于FPGA实践之呼吸灯(含程序)
呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。
在单片机中我们调节PWM波的占空比可以实现一个周期内高电平占百分比,这个百分比固定就可以调节亮度,这个百分比是动态的,那么灯的亮度也是动态的,有规律的变化就实现了呼吸灯效果。
在FPGA中实现呼吸灯,道理和单片机一样。首先是一个小的周期来实现每一段时间的宽度,再在这每一段时间上加一个判断值,就是固定的PWM波,这判断值变化就实现动态的PWM,我们在这每一段时间上的判断值依次加一,再依次减一,那么灯就会逐渐变亮,再逐渐熄灭,整个过程就是呼吸效果。
module PWM(input clk, //系统时钟input rstn, //低电平复位output pwm //输出pwm波,接led
);reg [6:0]contH; //计数周期大reg [6:0]contL; //计数周期小reg HL;always@(posedge clk or negedge rstn)beginif(!rstn)contL <= 1'b0;else if(contL>=7'd25)contL <= 1'b0;elsecontL <= contL + 1'b1;endalways@(posedge clk or negedge rstn)beginif(!rstn)begincontH <= 1'b0;HL <= 1'b0;end else if(contH>=7'd25)begincontH <= 1'b0;HL <= !HL;end else if(contL==1'b1)contH <= contH + 1'b1;endassign pwm = (HL==1'b1)?((contH>=contL)?1'b1:1'b0):((contH<=contL)?1'b1:1'b0);//HL==1时,代表吸,逐渐变亮;HL!=1时,代表呼,逐渐熄灭。
endmodule
QQ联系方式:2943115420
仿真波形:
基于FPGA实践之呼吸灯(含程序)相关推荐
- 【FPGA基础】基于PWM脉宽调制的呼吸灯设计(Vivado)
基于PWM脉宽调制的呼吸灯设计(Vivado) 1.开发环境 2.预备知识 3.思路介绍 4.verliog代码 5.仿真 1.开发环境 软件:Vivado2019.1 硬件:Zynq7010 仿真: ...
- 基于FPGA实现的流水灯实验
版权声明:如需转载,请注明出处 https://blog.csdn.net/chengfengwenalan/article/details/79606351 基于FPGA实现的流水灯实验 一.开发环 ...
- 基于FPGA实现的流水灯项目
基于FPGA实现的流水灯实验 一.开发环境 软件环境:Quartus Prime 17.1 ,notepad++,gvim,modelsim-SE,TimeGen3 硬件环境:DE2-115(Inte ...
- 基于FPGA的超声波信号发生器设计:程序和电路原理图
基于FPGA的超声波信号发生器设计:程序和电路原理图,产生方波,正弦波和三角波,双通道. ID:28800618610960372
- 【STC单片机】VSCode PlatformIO Led呼吸灯示例程序
[STC单片机]VSCode PlatformIO Led呼吸灯示例程序 自制开发板([开源分享]自制STC15W408AS开发板) 工程新建和项目名称 项目结构 主程序示例代码 #include&l ...
- step fpga上实现呼吸灯和交通灯
呼吸灯 呼吸灯:我们将通过脉宽调制技术来实现"呼吸灯",实现LED的亮度由最暗逐渐增加到最亮,再逐渐变暗的过程. 脉冲宽度调制.它是利用微控制器的数字输出调制实现,是对模拟电路进行 ...
- 软件模拟PWM——呼吸灯小程序的理解
呼吸灯就是类似人的呼吸一样,一呼一吸,灯的变化是从亮到灭再到亮的过程,是一个循序渐进的过程,而不是一个跳变. 通过软件模拟PWM,可以达到呼吸灯的效果. PWM即脉冲宽度调制,简单地说,就是一段时间为 ...
- FPGA—按键控制呼吸灯的时间
一.概括 呼吸灯,就是和人们的呼吸频率一样的一种led灯亮灭的表现.平时我们见到的基本都是一瞬间的开启和关闭,当然其也有一定开启和关闭时间,只是我们肉眼无法分辨,所以我们此次实验其主要难点在使我们的l ...
- 基于STM32F4实现LED呼吸灯效果(PWM)
文章目录 前言 一.定时器及PWM的概述 1.通用定时器 2.PWM 二.配置步骤及代码实现 总结 前言 今天我们来进行PWM的学习,今天使用到的是通用定时器TIM14 ,在此之前我们已经简单学习过定 ...
- 基于FPGA的花样流水灯
今天一个学弟来问我关于状态机的事,我就给他讲了下经典的三段式状态机,然后就让他试着用状态机去点亮几个LED灯. 状态一:让所有的灯全部熄灭:状态二:全部的灯按照奇偶位的来进行闪烁:状态三:全部的灯从左 ...
最新文章
- *p++,*(p++),(*p)++,printf过程调用
- 程序员做产品需要知道
- 微信支付curl出错及错误码解决方案
- 怎么在Linux中telnet服务器,怎么利用Telnet连接Linux服务器
- (JAVA学习笔记) 异常处理
- php引用是什么,php引用是什么
- 初识ES-es与mysql的概念对比
- mysql哨兵机制_Redis 哨兵机制以及底层原理深入解析,这次终于搞清楚了
- Vmware怎样使用nat和桥接方式解决虚拟机联网问题
- Mysql-savepoint
- 多次字符串相加一定要用StringBuilder而不用 + 吗?
- passwd命令限制用户密码到期时间
- 【Visio】Visio图片在Word中显示不全?如何确定Visio作图大小?
- C语言中的函数(详解)
- 常见的主机运维面板有哪些?主机面板全面汇总(国内外)
- Wunderlist 安装不了,提示要求更新window版本问题
- 51单片机入学第八课——8*8点阵屏
- 如何让机器向“时尚达人”学习?阿里做了个“实用”的图像数据集
- Android 11.0 下拉状态栏通知栏的通知设置默认展开
- 【博学谷学习记录】超强总结,用心分享 _ 前端开发 GitHub与数据可视化
热门文章
- Axure9桌面无法显示图标
- 一文详解光场在三维人脸建模中的应用
- 怎么制作真人qq秀_真人秀---搏击赛事新风向标的机与忧
- 基于Android-JavaEE-DB2实现的旧物交易平台
- 全新卡盟系统PHP版 集成易支付_PHP其他卡信卡盟系统平台 搭建卡盟平台多商户版源码程序系统集成易支付接口整站源码...
- PPC软件字体太小的调整
- QT出现“d:\Program Files (x86)\SogouInput\Components\”的错误分析
- 跟我一起写大虾网(第0天)
- php doss_ddos PHP版
- 别折腾安全软件了 你的手机也许还不配被黑客破解