文章目录
1 章节导读
在前面的几章节当中,我们实现了我们的机械按键和触摸按键控制我们的 LED 灯的一个小实验。那么在本章节当中,我们来一次 LED 灯小实验的一个进阶,我们利用开发板板载的 4 个 LED 灯完成一个流水灯的实验。
2 理论学习
那么如果大家之前玩过单片机的肯定知道,流水灯实验绝对是一个经典的例程,它的效果是让排列成一排的 LED 灯依次闪亮,那么像流水一样循环不止,看上去特别的舒服。
它的原理就是依次控制每个连接到 LED 灯的 I/O 口的高低电平的变化。
那么我们本次的实验是让我们的 LED 灯依次点亮,点亮间隔是 0.5s,换句话说就是:让排列成一排的 LED 灯每次只点亮一个,每次点亮的时间是 0.5s。那么这样就实现了流水灯的一个效果,而且我们的肉眼还能够分辨出来。
本讲视频的理论知识是比较简单的,我们直接开始实战演练。
3 实战演练
3.1 实验目标
在实战演练部分我们将使用实验工程,设计并实现一个流水灯电路。
3.2 硬件资源
使用板载的 4 个 LED 灯 D6、D7、D8、D9 验证实验工程

3.3 程序设计
那么首先先来搭建一下文件体系

然后打开 doc 文件夹建立一个 Visio 文件,绘制模块框图和波形图

3.3.1 模块框图
那么首先是我们模块框图的绘制。那么在前边我们已经提到了,我们的 LED 灯每次点亮的时间是 0.5s 那么肯定需要一个计数器来对 0.5s 进行计时,那么需要计数器就肯定需要时钟信号和复位信号

我们的输入信号除了时钟信号和复位信号之外,不需要其他的输入信号了。那么下面就是我们的输出信号

因为我们要控制 4 个 LED 灯,所以说输出信号把它的位宽设为 4 位宽;它的每一个比特位控制一个 LED 灯,刚好是控制 4 个 LED 灯。
那么这样,模块框图绘制完成,那么下面开始波形图的绘制。
3.3.2 波形绘制
首先我们还是先将时钟和复位信号的波形画出

那么时钟信号和复位信号波形绘制完成。
因为我们的 LED 灯依次闪亮的时间间隔是 0.5s 这儿需要一个计数器来计数 0.5s 的时间,我们要声明一个内部的变量。
已知我们的时钟频率是 50 MHz 50\text{MHz} 50MHz 计数时间是 0.5 s 0.5\text{s} 0.5s 那么计数的最大值应该是 M = ( 0.5 s ) / ( 1 / 50 MHz ) = ( 0.5 s ) / ( 2 × 1 0 − 8 s ) = 2.5 × 1 0 7 \text{M} = (0.5\text{s}) / (1/50\text{MHz}) = (0.5\text{s}) / (2\times10^{-8}\text{s}) = 2.5\times10^7 M=(0.5s)/(1/50MHz)=(0.5s)/(2×

本文详细介绍了如何利用单片机开发板实现LED流水灯实验,包括理论知识、程序设计(涉及Verilog代码编写)、模块框图绘制、波形分析以及实战演练,包括硬件资源、代码编译和仿真验证,最后进行上板验证。
最低0.47元/天 解锁文章
4075

被折叠的 条评论
为什么被折叠?



