本实验要实现的工程,旨在通过控制10位LED灯闪出不同的三种以上的花色。具体要求为:上电后,LED灯首先全灭,然后自动开始闪烁,完成设计的三种(或以上)花色后,又回到初始状态重新开始新一轮的闪烁。要求闪烁的频率为1s,可以增加频率可调的功能。

设计思路:由于10位LED灯要闪出3种及以上颜色,并且闪烁的频率为1s,并且频率可调。由此设计了3个计数器,计数器cnt0用于计数1s,cnt1用于控制频率可调,cnt3用于计数3种颜色。

设计代码:

module com_experiment(clk,rst_n,led,x  //改变频率
);input     clk;
input     rst_n;
input     x;
output    led;parameter COUNTER=50;//计数1秒需要计数50_000_000次,因为仿真时间过长改为计数50次
reg  [25:0]  cnt0     ;
wire         add_cnt0 ;
wire         end_cnt0 ;
reg  [1:0]   cnt1     ;
wire         add_cnt1 ;
wire         end_cnt1 ;
reg  [2:0]   cnt2     ;
wire         add_cnt2 ;
wire         end_cnt2 ;
reg  [9:0]   led      ;
wire [1:0]   x        ;//计数1秒
always@(posedge clk or negedge rst_n) begin
if(!rst_n) begincnt0<=0;end
else if(add_cnt0) beginif(end_cnt0)cnt0<=0;elsecnt0<=cnt0+1;end
endassign add_cnt0=1;
assign end_cnt0=add_cnt0&&cnt0==COUNTER-1;//控制闪烁的频率
always@(posedge clk or negedge rst_n) begin
if(!rst_n) begincnt1<=0;end
else if(add_cnt1) beginif(end_cnt1)cnt1<=0;elsecnt1<=cnt1+1;end
endassign add_cnt1=end_cnt0;
assign end_cnt1=add_cnt1&&cnt1==x-1;//计数3次,每次闪烁一种颜色
always@(posedge clk or negedge rst_n) begin
if(!rst_n) begincnt2<=0;end
else if(add_cnt2) beginif(end_cnt2)cnt2<=0;elsecnt2<=cnt2+1;end
endassign add_cnt2=end_cnt1;
assign end_cnt2=add_cnt2&&cnt2==3-1;//控制三种颜色的闪烁
always@(posedge clk or negedge rst_n) begin
if(rst_n==1'b0) beginled<=10'b0000000000;//当满足此条件时,全灭end
else if(add_cnt2 && cnt2==1-1) beginled<=10'b0000000111;//当满足此条件时,前3个灯闪烁,第一种颜色end
else if(add_cnt2 && cnt2==2-1) beginled<=10'b0001111000;//当满足此条件时,中4个灯闪烁,第二种颜色end
else if(add_cnt2 && cnt2==3-1) beginled<=10'b1110000000;//当满足此条件时,后3个灯闪烁,第三种颜色end
endendmodule

仿真代码:

`timescale 1 ns/ 1 ns
module com_experiment_vlg_tst();parameter CYCLE=20;
reg clk;
reg rst_n;
reg  [1:0]  x;
wire [9:0]  led;com_experiment i1 (  .clk(clk),.led(led),.rst_n(rst_n),.x(x)
);initial beginclk=0;forever#(CYCLE/2)beginclk=~clk;end
endinitial beginx=1;#200;forever beginx=1;#600;x=2;#1200;x=3;#1800;end
endinitial begin#1;rst_n=0;#(CYCLE*10);rst_n=1;
endendmodule

仿真波形

上板

LEDG5~LEDG7显示的为一种颜色,LEDR6~LEDR9为第二种颜色,LEDR14~LEDR16为第三种颜色

10位LED彩灯设计(verilog实现)相关推荐

  1. 采用外中断控制的条形LED彩灯设计

    一.目标 P0端口作为输出口,外接条形LED.编写程序,当按键K未按下时,LED进行循环左移显示. 如果第一次按下按键K后,LED进行循环右移显示. 如果第二次按下按键K后,LED进行拉幕式闭幕式花样 ...

  2. 采用外中断控制的LED彩灯设计

    一.目标 P0端口作为输出口,外接LED.编写程序,当按键K未按下时,LED进行循环左移显示. 如果第一次按下按键K后,LED进行循环右移显示. 如果第二次按下按键K后,LED进行拉幕式闭幕式花样显示 ...

  3. 彩灯控制单片c语言程序,基于51单片机的led彩灯设计。 9个灯(红绿蓝三色)。按键控制 c语言程序...

    满意答案 yivdi2o28 2014.05.15 采纳率:46%    等级:11 已帮助:4795人 #include<reg52.h> #define uint unsigned i ...

  4. 基于51单片机——八路彩灯设计

    1.protues中绘制如下电路图 2.使用Keil4软件编写程序,将编写好的程序编译生成一个hex文件,将hex文件加载到protues中的AT89C51芯片中,对电路图进行仿真运行,即可以查看Ke ...

  5. 数字系统设计实验六:用verilog实现4位led译码器电路

    1.问题重述: 用Verilog HDL设计一个4位LED显示器的动态扫描译码电路.要求:4个七段显示器共用一个译码驱动电路. 2.问题分析: a.首先是,我们需要明确的是什么是动态扫描译码电路.译码 ...

  6. 基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计

    基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计 必看!!视频讲解 基于51单片机的LED彩灯霓虹灯心形流水灯设计 这里写目录标题 1 开发环境 2 功能说明介绍 3 仿真图 4 ...

  7. 单片机彩灯c语言程序设计,(定稿)毕业论文基于AT89C51单片机的LED彩灯控制器设计(完整版)...

    <[毕业论文]基于AT89C51单片机的LED彩灯控制器设计.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)毕业论文基于AT89C51单片机的LED彩灯控制器设计(完整版) ...

  8. LED彩灯控制器设计 51单片机 流水灯 PROTEUS 仿真

    课程设计题四:LED彩灯控制器设计 要求: 1.至少10个发光管4种花样自动变换,循环往复. 2.彩灯花样变换的快慢节拍可以手动和自动方式控制,手动控制按钮按一次转换一次:自动控制方式每15秒变换一次 ...

  9. c语言中定义密码为英文字母,请设计 一个密码生成器,要求随机生成4组10位密码(C语言)...

    请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码. #include #include #include ...

最新文章

  1. 《关系营销2.0——社交网络时代的营销之道》一T表示Technology(技术)
  2. 多媒体指令(灰度像素最大值)
  3. mysql5.0 Using a password on the command line interface can be insecure.最简单的解决办法
  4. 使用CoreLocation进行定位(Swift版)
  5. GitHub率先消灭了cookies:与烦人的用户条款说再见
  6. linux要不要home分区,有必要建/home/boot分区吗
  7. angular移除事件绑定事件绑定_Vue.js子组件利用事件向父组件传输数据,以及sync修饰符和双向绑定...
  8. vue中的ES6语法整理1
  9. 地磅称重软件源码_电脑设备器件+塔吊主吊臂+撇渣管、丝杆+地磅称重传感器+极柱触头盒弯板+批式循环谷物干燥机+升降机标准节...
  10. hdu 1800 Flying to the Mars
  11. android 更新apk 应用为安装,应用未安装!从Android Studio构建安装APK时出错 - java
  12. Downie 4搭配Permute 3,一个完整的视频下载处理流
  13. 【记录】C++中的位域
  14. 计算机室和电子备课室管理制度,电子备课室
  15. Android 计时器Chronometer 使用及源码分析,常见移动app开发框架
  16. 如何免费下载B站视频!!!实测可用!!!
  17. 吴晓波:预见2021(跨年演讲 —— 02 “云上中国”初露峥嵘)
  18. linux系统如何改电脑地址,如何修改电脑的操作系统MAC地址
  19. 使用snmpwalk采集设备的OID信息
  20. 图形的一点透视和平移

热门文章

  1. SpringBoot+Vue
  2. 说说O2O(2):O2O和二维码
  3. Win系统 - 如何安装WIN10系统?(附激活教程)
  4. C语言练习——回文素数
  5. split()方法的用法,超详细讲解
  6. 使用Clang作为库 —— Clang Plugins
  7. 中国锂电池正极材料行业产量需求及投资状况分析报告2021年版
  8. 光刀选用尽可能大的刀
  9. android运行python脚本,在android应用程序中运行python脚本
  10. KubeSphere通过Ceph CSI对接持久化存储Ceph集群