本实验要实现的工程,旨在通过控制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. ubuntu16.04系统下安装fasttext文本分类库
  2. PostSharp AOP编程:3.PostSharp的LocationInterceptionAspect类基本组成
  3. 我们用Windows官方跑了跑Linux GUI应用程序,不愧是“胶水操作系统”
  4. fasttext简单理解及应用
  5. java 静态变量生命周期(类生命周期)
  6. 简明Linux命令行笔记:finger
  7. phpcms文件所需权限
  8. excel批量更改超链接_批量新建Excel指定名称工作表并设置超链接!你,学会了吗?...
  9. 【转】asp仿百度文库、豆丁doc转换(flashpaper)
  10. be2014备份oracle,veritas be 对oracle10g 备份异机恢复测试
  11. oraclize预言机资料
  12. jsjavaScriptDate的时间格式转换,直接粘贴就可以使用
  13. SpringCloud之Ribbon源码分析(二)
  14. 中文汉化AE插件-图层边界自动填充生长动画插件
  15. html5使用框架页面布局,HTML框架集与布局
  16. Mac IntelliJIDEA非正常关闭解决(reopen失败)
  17. CRISPR-Cas9实验常见问题及解决方案
  18. Rainbow Fart安装及设置其他语音包
  19. MATLAB函数合辑
  20. 计算机网络设备调试员报名,工信部网络设备调试员一级高级技师、二级技师

热门文章

  1. 无人驾驶感知篇之激光雷达
  2. focus伪类选择器
  3. MD5加密安全吗(解析MD5)
  4. 用JS刷剑指offer
  5. ECG信号读出,检测QRS,P,T 波(小波去噪,并根据检测),基于BP辨识的神经网络...
  6. 白话机器学习算法理论+实战之EM聚类
  7. 关于对讲机写频软件的选择
  8. 最美初秋,Glu坝上草原之旅,带你驰骋,带你飞!
  9. 法式风情摄影拍摄心得
  10. TX2(Linux)在Qt中调用python函数