资源描述:
《彩灯控制电路设计与实现(VHDL编程)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验名称:彩灯控制电路设计与实现实验任务要求:用VHDL语言设计并实现一个彩灯控制电路,仿真并下载验证其功能。彩灯有两种工作模式,可通过拨码开关或按键进行切换。(1)单点移动模式:一个点在8个发光二极管上来回的亮(2)幕布式:从中间两个点,同时向两边依次点亮直至全亮,然后再向中间点灭,依次往复设计思路和过程:可以将两种模式分开设计,再用一个控制钮进行切换。两种模式本质一样,都是循环点亮灯。可以用状态机设计。首先明确设计对象的外部特征,输入信号只有时钟信号cp和切换按钮此处取a;输出为检测的八个彩灯亮暗。根据设计对象
2、的操作控制步来确定有限状态机的状态。取初始状态为s0,第一种模式共有14种状态循环,因而可取状态s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;第二种模式有八种状态,可共用第一种模式中的前八种状态,即为s0,s1,s2,s3,s4,s5,s6,s7。根据题目要求的循环可以写出各个状态的下一状态,写完整个循环为止。切换按钮可以用一个If来总领。单点移动模式:S0S5S13S7S8S9S10S11S1S2S3S4S12S6幕布式:S0S7S6S1S5S4S2S3流程图:彩灯电
3、路设计语言:libraryieee;useieee.std_logic_1164.all;entitypmdisport(a,cp:instd_logic;%输入信号deng:outstd_logic_vector(7downto0)%输出灯信号);endpmd;architecturearchofpmdistypeall_stateis(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13);%枚举状态机状态signalstate:all_state;%状态转换符号begin
4、%开始程序process(cp)beginif(cp'eventandcp='1')then%时钟信号开始计数if(a='1')then%单点循环模式casestateiswhens0=>state<=s1;deng<="00000001";%状态循环whens1=>state<=s2;deng<="00000010";whens2=>state<=s3;deng<="00000100";whens3=>state<=s4;deng<="00001000";whens4=>state<=s5;deng<="0001
5、0000";whens5=>state<=s6;deng<="00100000";whens6=>state<=s7;deng<="01000000";whens7=>state<=s8;deng<="10000000";whens8=>state<=s9;deng<="01000000";whens9=>state<=s10;deng<="00100000";whens10=>state<=s11;deng<="00010000";whens11=>state<=s12;deng<="00001000";when
6、s12=>state<=s13;deng<="00000100";whens13=>state<=s0;deng<="00000010";whenothers=>state<=s0;deng<="00000000";endcase;Else%切换为幕布式casestateiswhens0=>state<=s1;deng<="00011000";whens1=>state<=s2;deng<="00111100";whens2=>state<=s3;deng<="01111110";whens3=>state<=s4
7、;deng<="11111111";whens4=>state<=s5;deng<="01111110";whens5=>state<=s6;deng<="00111100";whens6=>state<=s7;deng<="00011000";whens7=>state<=s0;deng<="00000000";whenothers=>state<=s0;deng<="00000000";endcase;endif;endif;endprocess;endarch;输入波形:添加五十分频后的仿真程序:librar
8、yieee;useieee.std_logic_1164.all;entitycdisport(a,clk:instd_logic;q:outstd_logic_vector(7downto0));endcd;architectureaofcdistypeall_stateis(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s1