ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

03_基于FPGA的LED流水灯原理

2022-02-20 17:03:43  阅读:175  来源: 互联网

标签:reset 03 led FPGA clk led8 end LED


LED流水灯原理

实验原理

LED(Light Emitting Diode) 发光二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光;它是正向导通(正极到负极)反向截止(负极到正极)的器件。对于直插式LED,长脚为正极,短脚为负极.对于贴片式LED,有绿点的一端为负极。

在正常工作情况下,常规的绿,蓝,白,暖白LED灯的导通电压为3.0-3.5V,红,黄LED灯为2.5-2.8V。电流一般15毫安为宜。一般高亮LED采用的限流电阻是400-500欧姆,普通的采用1K左右的就行了,但不要超过2K。发光二极管的反向击穿电压约5伏。

LED的特点非常明显,寿命长、光效高、低辐射与低功耗。白光LED的光谱几乎全部集中于可见光频段,其发光效率可超过150lm/W。

LED流水灯,无非就是控制8个LED灯亮灭的顺序,通常采用的方法有移位、循环赋值等等。

移位方式:首先产生移位时钟,该时钟的频率不能够高,否则LED的显示速度过快,达不到预期效果,通过移位时钟控制led_temp循环右移。

循环幅值:首先产生显示时钟,该时钟的频率不能够高,否则LED的显示速度过快,达不到预期效果,通过显示时钟,在每个时钟的上升沿向LED幅值。

 

实验原理图

通过原理图可以看出,当LED的负极为低电平时LED导通,否则截至,通过这我们便知道LED 的驱动原理。

实验程序

移位方式:

/********************************版权声明**************************************

** 大西瓜团队

**

**----------------------------文件信息--------------------------

** 文件名称: led.v

** 创建日期:

** 功能描述:实现LED彩灯显示功能

** 硬件平台:大西瓜logic^3 FPGA开发板,http://daxiguafpga.taobao.com

** 版权声明:本代码属个人知识产权,本代码仅供交流学习.

**---------------------------修改文件的相关信息----------------

** 修改人:

** 修改日期:    

** 修改内容:

*******************************************************************************/

module led(

clk, //50M时钟输入

reset, //复位信号,高电平复位?

led //led输出

);

 

input clk;

input reset;

output[7:0] led;

 

wire clk,reset;

 

reg [7:0]led,led_temp;

reg [40:0] count; //分频计数器

 

always @ (posedge clk or negedge reset)

begin

if(!reset)//复位

begin

led_temp<=8'h80;

count<=41'h0;

end

else

begin

count<=count+1;

if(count==41'hff_ff_ff)

begin

             led_temp<=led_temp>>1;

             led<=~led_temp;

             count<=0;

             if(led_temp==8'h01)

             led_temp<=8'h80;

            end

end

end

endmodule

 

循环幅值:

/********************************版权声明**************************************

** 大西瓜团队

**

**----------------------------文件信息--------------------------

** 文件名称: led_water.v

** 创建日期:

** 功能描述:实现LED显示功能

** 硬件平台:大西瓜第三代开发板,http://daxiguafpga.taobao.com

** 版权声明:本代码属个人知识产权,本代码仅供交流学习.

**---------------------------修改文件的相关信息----------------

** 修改人:

** 修改日期:    

** 修改内容:

*******************************************************************************/

module led_water(clk,led,reset);

input clk;

input reset;

output [7:0] led;

 

reg [7:0] led;

reg [23:0] counter;

reg [4:0] led_state;

reg clk_div;

// assign led = 8'h55;

always @(posedge clk)

begin

if(counter==24'h500000)

begin

clk_div<=~clk_div;

counter<=24'h000000;

end

else

counter<=counter+1'b1;

end

 

 

always @(posedge clk_div or negedge reset)

begin

if(!reset)

begin

led<=8'hff;

led_state<=5'b0;

end

else

begin

case (led_state)

5'b00000: led<=8'b1111_1110;

5'b00001: led<=8'b1111_1101;

5'b00010: led<=8'b1111_1011;

5'b00011: led<=8'b1111_0111;

5'b00100: led<=8'b1110_1111;

5'b00101: led<=8'b1101_1111;

5'b00110: led<=8'b1011_1111;

5'b00111: led<=8'b0111_1111;

 

5'b01000: led<=8'b1011_1111;

5'b01001: led<=8'b1101_1111;

5'b01010: led<=8'b1110_1111;

5'b01011: led<=8'b1111_0111;

5'b01100: led<=8'b1111_1011;

5'b01101: led<=8'b1111_1101;

5'b01110: led<=8'b1111_1110;

 

5'b01111: led<=8'b1110_0111;

5'b10000: led<=8'b1101_1011;

5'b10001: led<=8'b1011_1101;

5'b10010: led<=8'b0111_1110;

 

5'b10011: led<=8'b1011_1101;

5'b10100: led<=8'b1101_1011;

5'b10101: led<=8'b1110_0111;

 

5'b10110: led<=8'b1010_1010;

5'b10111: led<=8'b0101_0101;

 

5'b11000: led<=8'b1000_0000;

5'b11001: led<=8'b0100_0000;

5'b11010: led<=8'b0010_0000;

5'b11011: led<=8'b0001_0000;

5'b11100: led<=8'b0000_1000;

5'b11101: led<=8'b0000_0100;

5'b11110: led<=8'b0000_0010;

5'b11111: led<=8'b0000_0001;

default:led<=8'b1111_1111;

endcase

led_state<=led_state+1'b1;

end

end

endmodule

实验效果

 

 

大西瓜FPGA-->https://daxiguafpga.taobao.com

配套开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-24211932856.3.489d7241aCjspB&id=633897209972

博客资料、代码、图片、文字等属大西瓜FPGA所有,切勿用于商业! 若引用资料、代码、图片、文字等等请注明出处,谢谢!

   

每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号"科乎"。

标签:reset,03,led,FPGA,clk,led8,end,LED
来源: https://www.cnblogs.com/logic3/p/15915801.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有