呼吸是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。

在单片机中我们调节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实践之呼吸灯(含程序)相关推荐

  1. 【FPGA基础】基于PWM脉宽调制的呼吸灯设计(Vivado)

    基于PWM脉宽调制的呼吸灯设计(Vivado) 1.开发环境 2.预备知识 3.思路介绍 4.verliog代码 5.仿真 1.开发环境 软件:Vivado2019.1 硬件:Zynq7010 仿真: ...

  2. 基于FPGA实现的流水灯实验

    版权声明:如需转载,请注明出处 https://blog.csdn.net/chengfengwenalan/article/details/79606351 基于FPGA实现的流水灯实验 一.开发环 ...

  3. 基于FPGA实现的流水灯项目

    基于FPGA实现的流水灯实验 一.开发环境 软件环境:Quartus Prime 17.1 ,notepad++,gvim,modelsim-SE,TimeGen3 硬件环境:DE2-115(Inte ...

  4. 基于FPGA的超声波信号发生器设计:程序和电路原理图

    基于FPGA的超声波信号发生器设计:程序和电路原理图,产生方波,正弦波和三角波,双通道. ID:28800618610960372

  5. 【STC单片机】VSCode PlatformIO Led呼吸灯示例程序

    [STC单片机]VSCode PlatformIO Led呼吸灯示例程序 自制开发板([开源分享]自制STC15W408AS开发板) 工程新建和项目名称 项目结构 主程序示例代码 #include&l ...

  6. step fpga上实现呼吸灯和交通灯

    呼吸灯 呼吸灯:我们将通过脉宽调制技术来实现"呼吸灯",实现LED的亮度由最暗逐渐增加到最亮,再逐渐变暗的过程. 脉冲宽度调制.它是利用微控制器的数字输出调制实现,是对模拟电路进行 ...

  7. 软件模拟PWM——呼吸灯小程序的理解

    呼吸灯就是类似人的呼吸一样,一呼一吸,灯的变化是从亮到灭再到亮的过程,是一个循序渐进的过程,而不是一个跳变. 通过软件模拟PWM,可以达到呼吸灯的效果. PWM即脉冲宽度调制,简单地说,就是一段时间为 ...

  8. FPGA—按键控制呼吸灯的时间

    一.概括 呼吸灯,就是和人们的呼吸频率一样的一种led灯亮灭的表现.平时我们见到的基本都是一瞬间的开启和关闭,当然其也有一定开启和关闭时间,只是我们肉眼无法分辨,所以我们此次实验其主要难点在使我们的l ...

  9. 基于STM32F4实现LED呼吸灯效果(PWM)

    文章目录 前言 一.定时器及PWM的概述 1.通用定时器 2.PWM 二.配置步骤及代码实现 总结 前言 今天我们来进行PWM的学习,今天使用到的是通用定时器TIM14 ,在此之前我们已经简单学习过定 ...

  10. 基于FPGA的花样流水灯

    今天一个学弟来问我关于状态机的事,我就给他讲了下经典的三段式状态机,然后就让他试着用状态机去点亮几个LED灯. 状态一:让所有的灯全部熄灭:状态二:全部的灯按照奇偶位的来进行闪烁:状态三:全部的灯从左 ...

最新文章

  1. *p++,*(p++),(*p)++,printf过程调用
  2. 程序员做产品需要知道
  3. 微信支付curl出错及错误码解决方案
  4. 怎么在Linux中telnet服务器,怎么利用Telnet连接Linux服务器
  5. (JAVA学习笔记) 异常处理
  6. php引用是什么,php引用是什么
  7. 初识ES-es与mysql的概念对比
  8. mysql哨兵机制_Redis 哨兵机制以及底层原理深入解析,这次终于搞清楚了
  9. Vmware怎样使用nat和桥接方式解决虚拟机联网问题
  10. Mysql-savepoint
  11. 多次字符串相加一定要用StringBuilder而不用 + 吗?
  12. passwd命令限制用户密码到期时间
  13. 【Visio】Visio图片在Word中显示不全?如何确定Visio作图大小?
  14. C语言中的函数(详解)
  15. 常见的主机运维面板有哪些?主机面板全面汇总(国内外)
  16. Wunderlist 安装不了,提示要求更新window版本问题
  17. 51单片机入学第八课——8*8点阵屏
  18. 如何让机器向“时尚达人”学习?阿里做了个“实用”的图像数据集
  19. Android 11.0 下拉状态栏通知栏的通知设置默认展开
  20. 【博学谷学习记录】超强总结,用心分享 _ 前端开发 GitHub与数据可视化

热门文章

  1. Axure9桌面无法显示图标
  2. 一文详解光场在三维人脸建模中的应用
  3. 怎么制作真人qq秀_真人秀---搏击赛事新风向标的机与忧
  4. 基于Android-JavaEE-DB2实现的旧物交易平台
  5. 全新卡盟系统PHP版 集成易支付_PHP其他卡信卡盟系统平台 搭建卡盟平台多商户版源码程序系统集成易支付接口整站源码...
  6. PPC软件字体太小的调整
  7. QT出现“d:\Program Files (x86)\SogouInput\Components\”的错误分析
  8. 跟我一起写大虾网(第0天)
  9. php doss_ddos PHP版
  10. 别折腾安全软件了 你的手机也许还不配被黑客破解