Quartus II使用——3 LED流水灯

这篇具有很好参考价值的文章主要介绍了Quartus II使用——3 LED流水灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.学习要求

目标:实现8个LED灯(LED 0~LED 7)间隔100ms依次点亮,然后全部熄灭,再依次点亮。

2.仿真分析

clk是50Mhz时钟,那么一个周期为(1X10^9)/(50X10^6)=20ns,1秒对应50000000个时钟周期,100ms=5000000个时钟周期。

Quartus II使用——3 LED流水灯

复位时,LED灯全部熄灭    :led=8'hff

点亮第1个LED灯                :led=8'hfe         点亮第1,2两个LED灯            :led=8'hfc

点亮第1,2,3三个LED灯 :led=8'hf8         点亮第1,2,3,4四个LED灯 :led=8'hf0

点亮第1,2,3,4,5 五个LED灯                    :led=8'he0         

点亮第1,2,3,4,5 ,6 六个LED灯              :led=8'hc0

点亮第1,2,3,4,5,6,7 七个LED灯         :led=8'h80

点亮第1,2,3,4,5,6,7,8 八个LED灯    :led=8'h00

这种用状态机来实现

3.代码编写 

时钟计数器为led0_cnt,led1_cnt,led2_cnt,led3_cnt,led4_cnt,led5_cnt,led6_cnt,led7_cnt。

该ledn_cnt计数器用于计算100ms的时钟个数,ledn_cnt=ledn_cnt+1表示一直在计数,数到5000000下,则表示数到100ms的时间了。

计数器代码:

always@(posedge clk or negedge rst_n)begin
	if(rst_n==0)
		ledn_cnt<=0;
	else if(curr_st==Sn)
		ledn_cnt<=ledn_cnt+1;
	else 
		ledn_cnt<=0;
end

 状态机代码

复位时,处于空闲状态,led所有灯都是熄灭的

然后当ledn_cnt计数到到5000000-1时,就可以跳转到下一个状态。文章来源地址https://www.toymoban.com/news/detail-421002.html

always@(posedge clk or negedge rst_n)begin
	if(rst_n==0)
		curr_st<=IDLE;
	else case(curr_st)
		IDLE:curr_st<=S0;
		S0:begin
			if(led0_cnt==time_100ms-1)//当led0_cnt等于time_500ms-1时,跳转到S1状态
				curr_st<=S1;
			else;
		end
		S1:begin
			if(led1_cnt==time_100ms-1)
				curr_st<=S2;
			else;
		end
		S2:begin
			if(led2_cnt==time_100ms-1)
				curr_st<=S3;
			else;
		end
		S3:begin
			if(led3_cnt==time_100ms-1)
				curr_st<=S4;
			else;
		end
		S4:begin
			if(led4_cnt==time_100ms-1)
				curr_st<=S5;
			else;
		end
		S5:begin
			if(led5_cnt==time_100ms-1)
				curr_st<=S6;
			else;
		end
		S6:begin
			if(led6_cnt==time_100ms-1)
				curr_st<=S7;
			else;
		end
		S7:begin
			if(led7_cnt==time_100ms-1)
				curr_st<=S8;
			else;
		end
		S8:begin
			if(all_off_cnt==time_100ms-1)
				curr_st<=S0;
			else;
		end
		default:;
	endcase
end

到了这里,关于Quartus II使用——3 LED流水灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】STM32学习笔记-LED闪烁 LED流水灯 蜂鸣器(06-2)

    电路图示例1 电路图示例2 main.c 接线图如下图所示: 点击下载,现象为LED闪烁。 main.c main.c stm32F103工程模板 01-LED闪烁.rar 02-LED流水灯.rar 03-蜂鸣器示例程序.rar 参考: 【STM32】江科大STM32学习笔记汇总

    2024年03月19日
    浏览(43)
  • FPGA学习——按键控制LED流水灯(附源码 无按键消抖版本)

    在博主的cyclone4开发板上一共有4个按键,本次实验的目的是为了实现每按下一次按键,都会使开发板上的4个LED灯切换一次状态,博主一共设计了四种状态,分别是: 按键 状态 按键1按下 自右向左的流水灯 按键2按下 自左向右的流水灯 按键3按下 四灯常亮 按键4按下 四灯闪烁

    2024年02月06日
    浏览(33)
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯

      前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。       目录 一.  延时函数的生成  1.通过延时计算器得到延时函数  2.可赋值改变的延时函数  二.  LED模块编写原理 

    2024年02月19日
    浏览(34)
  • Stm32f103c8t6(proteus仿真)学习——1.点亮LED流水灯

    软件准备:keil uVsion 5 和 proteus 8.15 打开proteus8.15 - 新建项目 - 改名 - 一直next 鼠标右键 - 放置 - 元件 - From Libraries 搜索Stm32 - 选择stm32f103c8 画出点亮一个LED灯的原理图 提示,各元器件搜索: 主控芯片:stm32 电阻:res LED灯:led 鼠标右键 - 放置 - 元件 - From Libraries 地和VCC 在左侧

    2024年02月08日
    浏览(50)
  • led流水灯

      本章将讲解流水灯的制作,在Cyclone IV开发板上依次点亮四个led灯,并以一定间隔亮灭,达到流水灯的效果。 图1. DIP发光二极管(直插型) 图2. SMD发光二极管(贴片型)   LED灯就是发光二极管,二极管功能很多,在本实验中我们暂且将其看作是一个开关。二极管在正向

    2024年02月13日
    浏览(35)
  • 利用Quartus Prime实现DE2-115流水灯

    什么是fpga? FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点

    2024年02月07日
    浏览(26)
  • 【C51基础实验 LED流水灯】

    前言: 前几篇学会了LED驱动原理,并且成功点亮了一颗LED和实现了LED的闪烁,那么这篇紧接着就来解锁LED的新功能,LED流水灯。当然这里前提是基于肉眼余晖可见光达成的效果。 开发板上 LED 模块电路原理图如下图所示: 看上图中 LED 采用共阳接法 ,D1-D8 连接到单片机的

    2024年02月10日
    浏览(28)
  • Verilog HDL——LED流水灯工程&LED点阵显示

    LED流水灯 根据8位LED灯与EPM240引脚I/O对应关系 配置CPLD引脚: Hardware SetupUSB-Blaster[USB-0]JTAG Mode 下载工程: LED点阵显示 LED点阵电路: 00IC-EPM240 开发板采用的点阵型号是 10788。8×8LED 点阵共有 16 个引脚,分别控制 8 行和 8 列,行列共同决定其中一个 LED 的亮灭。图中 ROW 为行,

    2024年02月03日
    浏览(34)
  • FPGA入门————LED流水灯(超详细教程)

    本文使用软件为vivado,其实用哪个软件都是一样的,主要是掌握核心编程思想。 如有需要下载vivado软件下载可以参考: vivado及ISE各版本软件下载方法、链接及详细步骤,官方网页下载_ise软件下载_千寻xun的博客-CSDN博客 目录 一、新建工程及设计文件 二、编写LED流水灯程序

    2024年02月08日
    浏览(34)
  • ARM入门(实现LED流水灯)超简单

            实现效果将LDE2到LED5依次点亮再依次熄灭。点亮LED灯就像我们接触编程语言的第一天输出一个\\\"hello world\\\"一样,这是一个最基础的入门操作。这里我们以点亮LED2的过程进行详细讲解,因其他LED灯的点亮过程都是一样的,所以就不做一一介绍了。 1、首先第一步我们需

    2023年04月10日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包