[FPGA 学习记录] 呼吸灯

呼吸灯

1 章节导读

那么在上一章节当中,我们使用板载的 LED 灯设计并实现了一个流水灯的实验效果。那么在本章节当中,我们将带领各位朋友设计并实现一个呼吸灯的实验效果。

2 理论学习

那么呼吸灯在我们的日常生活中很常见,比如说我们手机上。在手机上一般作为消息提醒指示灯被广泛地使用,那么它的效果是小灯在一段时间内从完全熄灭慢慢到完全点亮,同样的时间内再由完全点亮到完全熄灭这样一个过程;这个过程循环往复,感觉就像呼吸一样一张一弛,那么人们看了特别舒服。

说到这里,有的朋友肯定会说:那么呼吸灯应该怎么实现呢?

3 实战演练

那么下面我们就通过实验工程来讲解一下呼吸灯的实现方法。

3.1 实验目标

使用板载 LED 灯 D6 实现呼吸灯效果,第一个 1s 内 LED 由熄灭慢慢点亮直到最亮,第二个 1s 内 LED 由最亮的状态慢慢变暗直到熄灭,如此循环往复。

3.2 硬件资源

我们让开发板板载的 D6 LED 实现呼吸灯

image-20231031160450103

3.3 程序设计

那么首先,先来搭建一个文件体系

20231102165945_f1j84eeGeX

然后打开我们的 doc 文件夹,建立一个 Visio 文件用来绘制我们的框图和波形图

20231102170153_NekQWRgGoZ

3.3.1 框图绘制

那么首先是框图的绘制

20231102170926_s0HtT2X9RI

然后是端口信号。首先是输入信号,那么输入信号一定有时钟信号和复位信号,因为后面我们要用到我们的计数器

20231102171045_2XxFHmOTCM

那么输入信号除了我们的时钟信号和复位信号之外,再没有其他的输入信号了。

下面就是输出信号。那么输出信号,要有一路输出信号连接到我们的板载的 LED 灯,只有这样才能进行实验效果的检验

20231102171202_fXPsolX7bq

那么到了这里,我们的模块框图绘制完成。

3.3.2 波形绘制

下面可以开始波形图的绘制。

在波形图的绘制之前,我们要进行一下分析,分析一下呼吸灯这个效果应该怎么实现。

首先,我们可以将呼吸灯的呼吸效果分为两个过程:第一个过程是由完全熄灭到完全点亮,然后第二个过程是完全点亮到完全熄灭。其实这两个过程可以看作一个过程,因为如果是完全点亮到完全熄灭,它就是完全熄灭到完全点亮的一个逆过程。

那么下面就要考虑:怎样实现完全熄灭到完全点亮?

各位学员如果有电路常识就应该知道:如果说在一个安全范围内给我们的 LED 灯供的电压越大,灯越亮。难道这表示我们要控制电压的高低吗?

显然这是很不现实的。所以说我们要采用另外一种方法,通过控制 PWM 的占空比来控制我们灯的亮灭程度。

那么接下来就引入了一个新问题:如何使用 PWM 来实现呼吸灯的一个效果?下面我们结合图形来讲解一下实现的方法。

那么经过前面学习我们已经知道:我们开发板板载的 LED 灯它是低电平点亮,高电平是熄灭状态。那么初始状态既然是完全熄灭,那么我们就给它一段时间的高电平,那么这段时间我们定义为一个周期,用 T 来表示它

20231102171820_XU8eqyAKhH

在第一个 T 周期内给我们的输出信号是一个高电平,那么这样就对应完全熄灭。那么接下来在第二个周期内,让我们的信号保持十分之一个周期的低电平;这就表示在第一个周期内,我们的灯是完全熄灭,第二个周期内,前面点亮了一点点,后面又处于熄灭状态

20231102172108_7sp7ppiIUS

那么在第三个周期内让它保持十分之二个周期的低电平,就比上一次增加了一倍;然后剩下的十分之八个周期都是高电平

20231102172359_2jqo9tbjeZ

那么第三个周期内也点亮了一点点,后面又是熄灭;但点亮的这个时间是前一个 T 周期的两倍。

那么接下来在第四个周期内再延长十分之一个低电平保持时间

20231102172557_T8xDAlzfmO

那么这样每个周期增加十分之一 T 个低电平的保持时间,那么到了后面也就是第十个周期,它就变成什么样子呢?我们来看一下

20231102172924_mE1ovKBHjK

第十个周期应该是保持了十分之九个周期的低电平,然后高电平只保持了十分之一个周期。

到了第十一个周期,它就应该是完全的一个周期的低电平

20231102173235_sS4IotLMYv

那么这样就实现了我们的 LED 灯从一个完全熄灭的状态到一个完全点亮的状态,我们通过 PWM 这个方法来实现的。那么完全点亮到完全熄灭是它的一个逆过程。第一个周期内也是让它保持全为低电平,然后在下一个周期,首先让它保持十分之一个周期的高电平,然后是十分之九个周期的低电平。然后中间我们就省略了

20231102174116_zNCdIP2lyZ

那么最后保持一个周期的高电平

20231102174824_n2OVen6TxD

那么这样,这个波形就展示出了我们的呼吸灯的一个效果:由完全熄灭到完全点亮,再由完全点亮一步步到完全熄灭。

那么这样我们就通过 PWM 展示了一个完整的一个呼吸灯的一个效果,那么这个波形其实就是我们最后要输出的一个波形。那么后面我们就需要考虑:如何通过输入的时钟信号和复位信号来产生这个波形。

下面开始波形图的绘制。那么首先是我们的输入信号,输入的信号有时钟和复位,那么输入信号要填充为绿色;然后是复位信号,复位信号上电后保持一段时间的低电平,起到复位作用,然后让它保持一段时间的高电平,这个高电平是一直保持,这样系统才能够正常工作

20231102175721_FzkvggYPTm

那么下面就要考虑:如何使用输入信号这两个波形产生我们的输出信号这个波形。

第一点我们要考虑到从完全熄灭状态到完全点亮状态,就是 ❶ 到 ❷ 它的时间是多少;知道了这个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值