您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 西电EDA大作业多功能彩灯
EDA设计报告彩灯控制器(老师:宗汝)班级:学号:姓名:一.设计要求设计能让一排灯(8只)自动改变显示花样的控制系统。可将实验板上的一排发光二极管作为彩灯用。控制器应有两种控制方式:◆规则变化。变化节拍有0.5秒和0.25秒两种,交替出现,每种节拍可有8种花样,各执行一或二个周期后轮换。彩灯变化方向有单向移动,双向移动,跳跃移动等。◆随机变化。变化花样相同,但节拍及花样的转换都随机出现。二.设计方案(1).分频模块。要产生快慢两种节拍,则首先需要有分频器模块,0.5秒和0.25秒两种则可选择四分频和八分频。通过按键进行选择切换。则clk为输入时钟信号,需经分频器分频并输入到LED显示电路;clr为复位清零信号,高电平有效,有效时,电路无条件的回到初始状态;OPT为频率快慢选择信号,低电平节奏快,高电平节奏慢;(2)LED显示模块。经过分频的时钟信号输入LED显示电路中,使电路有规律的输出按照设定的各种花样变化。xuan为选择彩灯变化花样信号,便于改变彩灯花样。而最后就是输出彩灯变化花样led。三.系统程序设计分频器模块:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityFENPINQIisport(clk:instd_logic;clr:instd_logic;opt:instd_logic;clkout:outstd_logic);endFENPINQI;architecturearcofFENPINQIissignalclk_tmp:std_logic;signalcounter:std_logic_vector(1downto0);beginprocess(clk,clr,opt)beginifclr='1'then--清零clk_tmp='0';counter=00;elsifclk'eventandclk='1'thenifopt='0'then--四分频ifcounter=01thencounter=00;clk_tmp=notclk_tmp;elsecounter=counter+'1';endif;else--八分频ifcounter=11thencounter=00;clk_tmp=notclk_tmp;elsecounter=counter+'1';endif;endif;endif;endprocess;clkout=clk_tmp;--输出分频后的信号endarc;花样一:--用分频器分频后的时钟来显示花样实现libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityHY1isport(clk1:instd_logic;clr:instd_logic;xuan:instd_logic_vector(1downto0);led1:outstd_logic_vector(7downto0));endHY1;architecturearcofHY1istypestateis(s0,s1,s2,s3,s4,s5,s6);signalcurrent_state:state;signallight:std_logic_vector(7downto0);beginprocess(clr,clk1,xuan)isconstantl1:std_logic_vector(7downto0):=10000001;constantl2:std_logic_vector(7downto0):=01000010;constantl3:std_logic_vector(7downto0):=00100100;constantl4:std_logic_vector(7downto0):=00011000;constantl5:std_logic_vector(7downto0):=00100100;constantl6:std_logic_vector(7downto0):=01000010;beginifxuan=01thenifclr='1'thencurrent_state=s0;elsif(clk1'eventandclk1='1')thencasecurrent_stateiswhens0=light=ZZZZZZZZ;current_state=s1;whens1=light=l1;current_state=s2;whens2=light=l2;current_state=s3;whens3=light=l3;current_state=s4;whens4=light=l4;current_state=s5;whens5=light=l5;current_state=s6;whens6=light=l6;current_state=s1;endcase;endif;endif;endprocess;led1=light;endarc;花样二:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityHY2isport(clk1:instd_logic;clr:instd_logic;xuan:instd_logic_vector(1downto0);led2:outstd_logic_vector(7downto0));endHY2;architecturearcofHY2istypestateis(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20,s21,s22,s23,s24,s25,s26,s27,s28,s29,s30);signalcurrent_state:state;signallight:std_logic_vector(7downto0);beginprocess(clr,clk1,xuan)isconstantl1:std_logic_vector(7downto0):=00000000;constantl2:std_logic_vector(7downto0):=10000000;constantl3:std_logic_vector(7downto0):=11000000;constantl4:std_logic_vector(7downto0):=11100000;constantl5:std_logic_vector(7downto0):=11110000;constantl6:std_logic_vector(7downto0):=11111000;constantl7:std_logic_vector(7downto0):=11111100;constantl8:std_logic_vector(7downto0):=11111110;constantl9:std_logic_vector(7downto0):=11111111;constantl10:std_logic_vector(7downto0):=01111111;constantl11:std_logic_vector(7downto0):=00111111;constantl12:std_logic_vector(7downto0):=00011111;constantl13:std_logic_vector(7downto0):=00001111;constantl14:std_logic_vector(7downto0):=00000111;constantl15:std_logic_vector(7downto0):=00000011;constantl16:std_logic_vector(7downto0):=00000001;constantl17:std_logic_vector(7downto0):=00000011;constantl18:std_logic_vector(7downto0):=10000111;constantl19:std_logic_vector(7downto0):=00001111;constantl20:std_logic_vector(7downto0):=00011111;constantl21:std_logic_vector(7downto0):=00111111;constantl22:std_logic_vector(7downto0):=01111111;constantl23:std_logic_vector(7downto0):=11111111;constantl24:std_logic_vector(7downto0):=11111110;constantl25:std_logic_vector(7downto0):=11111100;constantl26:std_logic_vector(7downto0):=11111000;constantl27:std_logic_vector(7downto0):=11110000;constantl28:std_logic_vector(7downto0):=11100000;constantl29:std_logic_vector(7downto0):=11000000;constantl30:std_logic_vector(7downto0):=10000000;beginifxuan=10thenifclr='1'thencurrent_state=s0;elsif(clk1'eventandclk1='1')thencasecurrent_stateiswhens0=light=ZZZZZZZZ;current_state=s1;whens1=light=l1;current_state=s2;whens2=light=l2;current_state=s3;whens3=light=l3;current_state=s4;whens4=light=l4;current_state=s5;whens5=light=l5;current_state=s6;whens6=light=l6;current_state=s7;whens7=light=l7;current_state=s8;whens8=light=l8;current_state=s9;whens9=light=l9;current_state=s10;whens10=light=l10;current_state=s11;whens11=light=l11;current_state=s12;whens12=light=l12;current_state=s13;whens13=light=l13;current_state=s14;whens14=light=l14;current_state=s15;whens15=light=l15;current_state=s16;whens16=light=l16;current_state=s17;whens17=light=l17;current_state=s18;whens18=light=l18;current_state=s19;whens19=light=l19;current_state=s20;whens20=light=l20;current_state=s21;whens21=light=l21;current_state=s22;whens22=light=l22;curr
本文标题:西电EDA大作业多功能彩灯
链接地址:https://www.777doc.com/doc-4473885 .html