- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多功能流水灯设计实验报告
多功能流水灯的设计
一.设计要求:
设计一8盏彩灯控制电路,使彩灯可以向左,向右流动、全亮、全灭四种功能。功能变换可以手控也可以自控。
自动功能变换时间10秒。
二.总体方案构思:
用Verilog语言来为单片机编程,通过编程来控制单片机各引脚在不同时间输出的不同的电平,进而控制个发光二级管的亮灭,以及控制流水灯的流速和流动方向。
1.使用按钮(auto)来控制手动或自动。
2.因为需要向左,向右,全亮,全灭四种功能,所以需要两个开关(btn1和btn2),分别用 开和关两种状态表示,即(00,01,10,11)。
3.使用clk时钟来记时和触发事件。
三.实验器材:
电脑和LED设备
程序如下:
module LED(clk,auto,btn1,btn2,led);
input clk;
input auto;
input btn1;
input btn2;
output reg [7:0] led;
reg [29:0] count;//1ns的计数器
reg [3:0] count_10;//10秒的计数器
reg [1:0] status;//记录当前LED灯流动的情况:00左到右,01右到左,10全亮,11全灭
reg [1:0] type;
reg second_1;//1秒的标志
reg second_10;//10秒的标志
initial
begin
status=2b00;
type=2b00;
count=30b0;
count_10=4b0;
second_1=1b0;
second_10=1b0;
end
always@(posedge clk)//给出1s的标志和10s的标志
begin
if(coun//等待1s的到来
begin
count=count+1;
second_1=0;
second_10=0;
end
else
begin
count=0;
second_1=1;
count_10=count_10+1;
if(count_10=4d10)
begin
second_10=1;
end
end
end
always@(posedge clk)//当自动的情况时,每10s变化一次流动状态
begin
if(auto==1 second_1==1)
begin
if(second_10==1)
begin
if(status==2b11)
begin
status=2b00;
end
else
begin
status=status+1;
end
end
end
end
always@(posedge clk)//设置总变化状态等于手动或自动的状态
begin
if(second_1==1)
begin
if(auto==1)//自动
begin
type=status;
end
else//手动
begin
type={btn1,btn2};
end
end
end
always@(posedge clk)//根据type设置LED灯情况
begin
if(second_1==1)
begin
if(type==00)//左到右
begin
if(led==8|| led==8
begin
led=8
end
else
begin
led=led1;
end
end
else if(type==01)//右到左
begin
if(led==8|| led==8
begin
led=8
end
else
begin
led=led1;
end
end
else if(type==10)//全亮
begin
led=8
end
else//全灭
begin
led=8
end
end
end
endmodule
测试图如下:
六.个人体会:
在这次实验中收货颇丰,我学会了使用简单的Verilog语言,更加深入的学习了数字逻辑,还有更多的,我学会和同学们合作,讨论,去解决问题。 在本次试验中,真的是像一次惊险的旅行,困难重重,各种低级失误,语法错误和硬件知识的缺乏,但最后还是在老师的耐心指导下完成了。
文档评论(0)