欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    用VHDL实现多路彩灯控制器的设计EDA课程设计报告书.doc

    • 资源ID:4149977       资源大小:597KB        全文页数:8页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用VHDL实现多路彩灯控制器的设计EDA课程设计报告书.doc

    EDA课程设计报告用VHDL实现多路彩灯控制器的设计 班级:01121002成员: 成绩: 重庆邮电大学移通学院电子工程系2013年5月一、设计要求设计一个彩灯控制程序器。可以实现四种花型循环变化,有复位开关。整个系统共有三个输入信号CLK,RST,Sel,八个输出信号控制八个彩灯。时钟信号CLK脉冲由系统的晶振产生。各种不同花样彩灯的变换由Sel控制.此彩灯控制系统设定有四种花样变化,这四种花样可以进行切换,四种花样分别为:(1) 彩灯从左到右逐次闪亮。 (2)彩灯从左向右逐次点亮,且亮后不熄灭。(3) 彩灯两边同时亮两个,然后逐次向中间点亮。(4)彩灯全亮,向中间熄灭,再向两边点亮。(5)彩灯中间两熄灭,依次向外扩两灯熄灭,呈菱形灭灯。(6)彩灯呈菱形点亮。(7)彩灯中间两个灭灯,中间两个灭灯,依次外扩。 (8) 全部彩灯亮与熄灭交替。二、设计思路彩灯的一种点亮方式经过足够长的延时后,转变为了其他的点亮方式。这就需要一个CLK信号完成,CLK信号可以由晶体振荡器或者是振荡电路产生。至于各种不同花样彩灯的变换,我们可以通过增加输入信号Sel来控制。Sel为三位二进制数,分别为000,001,010,100,101,110,111,八种状态对应八种花样。同时系统还需一个复位信号实现对电路的清零控制。输出八位彩灯,我们这里用LED发光二极管代替。当电路输出为“1”时,LED点亮。当电路输出为“0”时,LED熄灭三、成员分工四、源程序LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY deng IS PORT(cLK,rst:IN std_LOGIC; sel:in std_LOGIC_VECTOR(2 DOWNTO 0); abc:OUT std_LOGIC_VECTOR(7 DOWNTO 0) ); END deng;ARCHITECTURE color OF deng ISTYPE state_1 IS (s0,s1,s2,s3,s4,s5,s6,s7);SIGNAL state_2:state_1;BEGIN pr_1:PROCESS (cLK,rst) BEGIN IF rst='1' THEN state_2<=s0; ELSIF cLK'event AND cLK='1' THEN CASE state_2 IS WHEN s0=> state_2<=s1; WHEN s1=> state_2<=s2; WHEN s2=> state_2<=s3; WHEN s3=> state_2<=s4; WHEN s4=> state_2<=s5;WHEN s5=> state_2<=s6; WHEN s6=> state_2<=s7; WHEN s7=> state_2<=s0; END CASE; END IF; END PROCESS pr_1; pr_2:PROCESS(sel,state_2) BEGIN if sel="000" then 彩灯从左到右逐次闪亮 CASE state_2 IS WHEN s0=> abc<="10000000" WHEN s1=> abc<="01000000" WHEN s2=> abc<="00100000" WHEN s3=> abc<="00010000" WHEN s4=> abc<="00001000" WHEN s5=> abc<="00000100" WHEN s6=> abc<="00000010" WHEN s7=> abc<="00000001" END CASE; elsif sel="001" then 彩灯从左向右逐次点亮,且亮后不熄灭 CASE state_2 IS WHEN s0=> abc<="10000000" WHEN s1=> abc<="11000000" WHEN s2=> abc<="11100000" WHEN s3=> abc<="11110000" WHEN s4=> abc<="11111000" WHEN s5=> abc<="11111100" WHEN s6=> abc<="11111110" WHEN s7=> abc<="11111111" END CASE; elsif sel="010" then 彩灯两边同时亮两个,然后逐次向中间点亮 CASE state_2 IS WHEN s0=> abc<="10000001" WHEN s1=> abc<="01000010" WHEN s2=> abc<="00100100" WHEN s3=> abc<="00011000" WHEN s4=> abc<="00100100" WHEN s5=> abc<="01000010" WHEN s6=> abc<="10000001" WHEN s7=> abc<="11111111" END CASE; elsif sel="011" then 彩灯全亮,向中间熄灭,再向两边点亮 CASE state_2 IS WHEN s0=> abc<="11111111" WHEN s1=> abc<="01111110" WHEN s2=> abc<="00111100" WHEN s3=> abc<="00011000" WHEN s4=> abc<="00011000" WHEN s5=> abc<="00111100" WHEN s6=> abc<="01111110" WHEN s7=> abc<="11111111" END CASE; elsif sel="100" then 彩灯中间两熄灭,依次向外扩两灯熄灭,呈菱形灭灯 CASE state_2 IS WHEN s0=> abc<="11100111" WHEN s1=> abc<="11000011" WHEN s2=> abc<="10000001" WHEN s3=> abc<="00000000" WHEN s4=> abc<="10000001" WHEN s5=> abc<="11000011" WHEN s6=> abc<="11100111" WHEN s7=> abc<="00000000" END CASE; elsif sel="101" then 彩灯呈菱形点亮CASE state_2 IS WHEN s0=> abc<="00011000" WHEN s1=> abc<="00111100" WHEN s2=> abc<="01111110" WHEN s3=> abc<="11111111" WHEN s4=> abc<="01111110" WHEN s5=> abc<="00111100" WHEN s6=> abc<="00011000" WHEN s7=> abc<="00000000" END CASE; elsif sel="110" then 彩灯中间两个灭灯,中间两个灭灯,依次外扩 CASE state_2 IS WHEN s0=> abc<="11100111" WHEN s1=> abc<="00011000" WHEN s2=> abc<="11000011" WHEN s3=> abc<="00111100" WHEN s4=> abc<="10000001" WHEN s5=> abc<="01111110" WHEN s6=> abc<="11000011" WHEN s7=> abc<="00111100" END CASE; elsif sel="111" then 全部彩灯亮与熄灭交替 CASE state_2 IS WHEN s0=> abc<="11111111" WHEN s1=> abc<="00000000" WHEN s2=> abc<="11111111" WHEN s3=> abc<="00000000" WHEN s4=> abc<="11111111" WHEN s5=> abc<="00000000" WHEN s6=> abc<="11111111" WHEN s7=> abc<="00000000" END CASE;end if;END PROCESS pr_2;END color;五、仿真结果(1)当sel为000时的图形,彩灯从左到右逐次闪亮。(2)当sel为001时的图形,彩灯从左向右逐次点亮,且亮后不熄灭(3)当sel为010时的图形,彩灯两边同时亮两个,然后逐次向中间点亮(4)当sel为011时的图形,彩灯全亮,向中间熄灭,再向两边点亮(5)当sel为100时的图形,彩灯中间两熄灭,依次向外扩两灯熄灭,呈菱形灭灯(6)当sel为101时的图形,彩灯呈菱形点亮(7)当sel为110时的图形,彩灯中间两个灭灯,中间两个灭灯,依次外扩(8)当sel为111时的图形,全部彩灯亮与熄灭交替引脚锁定完成(9)引脚锁定完成(10)六、收获体会1,从仿真波形可以看出,此程序可以实现八种不同花样彩灯的相互变换,每种花样彩灯可以循环变化。然后就可以实现程序下载和硬件测试。主频时钟clk接CLOCK0(第83脚),但是如果系统的固有频率很大,彩灯的闪烁速度非常快,看到的现象是每个花样的八个彩灯同时被点亮,为了实现绚丽多彩的景象,选择不同的频率(在1Hz-46Hz之间选择)能使彩灯点亮速度适宜。复位RST和Sel的高位与地位分别接四个键控。输出八位彩灯分别对应接八个LED发光二极管。实验表明,此设计方法能够满足八种不同花样彩灯的变化要求,并且该方法便于扩展不同变化模式的彩灯花样,各个不同花样的相互转变是手动切换实现的。 实验结果与理论结果相一致,能够实现八位彩灯循环控制,达到实验预期目的。 2,通过本次试验,加深我们对VHDL语言的认识,也学习了如何选择目标芯片和引脚的锁定。在程序中我们运用的CASE语句,巩固对其掌握。实现八种花样的转化的仿真时遇到一些问题,即clr的设定,通过与同学的交流以及上网查询,最终克服困难实现功能。

    注意事项

    本文(用VHDL实现多路彩灯控制器的设计EDA课程设计报告书.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开