电工之家_电工基础知识学习网站
当前位置:电工之家 > 电子技术 > 正文

8路LED指示灯如何实现交替亮灭

时间:2019-12-15 11:30 来源:电工之家

如何使用verilog编写一个程序,实现8路LED指示灯每次4路灯亮、4路灯灭,且实现交替亮灭。这个问题对于会verilog编程的人来说很简单,将8路LED灯平均分为两组,每组4路,通过程序控制其中一组亮时,另一组灭,然后延时亮灭交换,重复循环即可。
实例设计
输入信号2个:一个使能信号EN,低电平有效,当EN=1时,8路LED灯都不工作(不亮),当EN=0时,使能,8路LED灯交替变换;一个时钟信号CLK,用于计数延时。
输出信号2个:A、B,用于控制两组LED灯的亮灭。
确定了输入输出信号之后,设计模块框架符号,如下图所示:

8路LED指示灯如何实现交替亮灭
模块控制程序如下:
8路LED指示灯如何实现交替亮灭
附程序源代码,供大家参考:
module LED(
input EN, CLK,
output reg A,B
);
integer tmp = 0;
reg q=0;
initial
begin
A
B
end
always @(negedge CLK)
begin
tmp
if (tmp > 50000 )
begin
q
tmp
end
end
always @(EN, q)
begin
if (EN == 0)
begin
if (A == 0&&B == 0)
begin
A=1;
B=0;
end
else
begin
A=~A;
B=~B;
end
end
else
begin
A
B
end
end
endmodule
总结:以上是本人使用verilog设计的8路LED灯分两组交替亮灭的程序,交替亮灭的时间可通过改变时钟计数实现。例子中计数50000个时钟周期作为闪烁时间,可根据实际时钟频率进行更改。
该程序输出端为两个A、B信号,当使能无效时,A、B信号输出都为0;当使能有效时,A=1,B=0,经过50000个时钟周期后A=0,B=1,在经过50000个时钟周期后A=1,B=0,如此反复交替变化。外部使用两个NPN三极管分别驱动4个LED灯即可,原理如下图所示:
8路LED指示灯如何实现交替亮灭
说明:该原理只是理论设计,并没有经过实物验证,仅供大家参考
上一篇:如何将50MHZ时钟信号分频为1000HZ和1H
下一篇:没有了
看过《8路LED指示灯如何实现交替亮灭》的人还看了以下文章
用三极管是如何实现反相器功能的 用三极管是如何实现反相器功能的
在电子电路中我们也常常可以看到用三极管实现的反相器。当输入端给高电平的时候,那么输出端就输出低电平;当输入端给低电平的时候,那么输出端就输出高电平。一般使三极管能在饱和状态与截止状态工作时就能够实现反相器的功能,也就是说三极管要能够工作在...
电源如何实现调流?如何搭建电路 电源如何实现调流?如何搭建电路
电源一般分为交流电源,直流电源。 这两种电源一般都会要求稳定的电压输出,这样才能保证电源的用电器正常工作。 一、稳压电源的分类 常用的稳压电源有:①铁磁谐振式交流稳压器。由饱和扼流圈与相应的电容器组成,具有恒压伏安特性。②磁放大器式交流稳压器...
整流二极管并联使用如何实现均流 整流二极管并联使用如何实现均流
整流二极管的并联使用要实现均流是一个难题。 最主要的原因是二极管是正温度系数的器件。 当温度越高,二极管的导通电压越...
如何实现一个低成本的LDO 如何实现一个低成本的LDO
一般用的是LDO芯片,使用很简单,输入输出端配几个去耦和旁路电容就可以了 附图就是我目前一个设备在使用的从5V输到3.3V,采用LM1117实现的LDO电路. 体积小,价格便宜,功率不大的就几毛钱。只需要根据负载电流,输入电压,成本以及最小压差要求选择合适的LDO...
如何实现一个led灯的闪烁控制 如何实现一个led灯的闪烁控制
如何实现一个led灯的闪烁控制 一般我们认为led灯闪烁,都是出现问题的!哈哈~但是如果刻意让它闪烁,也是有不少方法 下面我先举几个例子吧! 使用普通电路实现 比如,使LED灯随音乐节奏闪动:LED灯可以通过开关电路如三极管开关电路、可关断可控硅电路对其电...