您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 放光二极管走马灯电路设计与实现
12020年4月19日放光二极管走马灯电路设计与实现文档仅供参考22020年4月19日放光二极管走马灯电路设计与实现班级:姓名:学号:一.实验目的1.进一步了解时序电路描述方法2.熟悉状态机的设计方法文档仅供参考32020年4月19日二.实验所用仪器及元器件1.计算机;2.直流稳压电源;3.数字系统与逻辑设计实验开发板。三.实验内容设计并实现一个控制8个发光二极管亮灭的电路,仿真验证其功能,并下载到实验板测试。1.单点移动模式:一个点在8个发光二极管上来回的亮2.幕布式:从中间两个点,同时向两边依次点亮直到全亮,然后再向中间点灭,依次往复。四.设计思路第一题设了两个状态typeall_stateis(s0,s1,s2,s3,s4,s5,s6,s7)和typefis(f1,f0),其中all_state表示灯亮的状态,f表示灯向左亮与向右亮的不同状态。第二题按照题目要求对输出q进行控制即可。即用case-when语句。当a为0时为单点移动式,a为1时为幕布式移动,。最后文档仅供参考42020年4月19日下载的时候把输出q和8个灯对应,a和一个能够在0和1之前切换的按钮对应,clk引脚为18.。仿真时要注意1.设置仿真时间轴,100us左右。2.保存波形文件时,文件名要与工程名一致。3.设置复位的时间要合理。既要看到复位的效果,又不能影响到正常的波形分析,而且复位信号不能为周期。仿真波形为其中仿真总时间为100us,前50usa=0,即进行的是单点移动的仿真,由图知,文档仅供参考52020年4月19日q[1]~q[7]交替出现高电平,然后q[7]~q[1]又交替出现高电平,因此可见程序实现了一个点在8个发光二极管上来回的亮的功能。后50usa=1,即进行幕布式的仿真:由图知,先是中间的两个灯q[3],q[4]亮,下一下阶段是q[2],q[3],q[4],q[5]亮,接下来是q[1],q[2],q[3],q[4],q[5],q[6]亮,最后全亮,接着q[0],q[7]灭,继而循环下去。高电平从中间依次向两边扩展,全亮后又从边缘依次两个两个变为低电平,依次往复。因此满足题目从中间两个点,同时向两边依次点亮直到全亮,然后再向中间点灭,依次往复的要求。五.实验中所遇到的问题及解决方法这次实验学习的是状态机的设计,遇到的问题主要有两个。第一,刚开始编第一个题目时,对于一个点在8个发光二极管上来回的亮理解有误,一开始把题目的意思当成了,第一个灯到第八个灯依次亮后,再从第一个灯到第八个灯依次亮,但后来觉得应该是第一个灯到第八个灯依次亮后,再从第八个灯到第一个灯依次亮,因此便在程序设置一个变量flag,用于标志灯向左依次亮还是向右依次亮。第二.我原来是将两个小题写成了两个程序,但后来发现应该是放在一个里,因此又设置了一个输入变量a,a为0时为单点移动式,a为1时为幕布式移动。文档仅供参考62020年4月19日六.心得体会经过对书本例题的学习与研究,顺利地完成了实验的要求,了解状态机的使用方法,虽然在编写程序时对题目的理解产生了一些错误,但后来都被自己一一改正。在对程序一遍一遍的进行修正时,感觉自己对状态机以及VHDL语言的理解更进了一步。因为这是本学期最后一次数电实验,因此我觉得很惋惜,我很喜欢这种软硬件结合的方式,这让我在软件编程时对下载的结果产生了很大的期待,也因此激发了我编程的兴趣。因此很期待下学期的数电实验。附VHDL源代码libraryieee;useieee.std_logic_1164.all;entityzoumadeng1isport(clk:instd_logic;set,a:instd_logic;q:outstd_logic_vector(7downto0));endzoumadeng1;architecturelightofzoumadeng1is文档仅供参考72020年4月19日typeall_stateis(s0,s1,s2,s3,s4,s5,s6,s7);typefis(f1,f0);signalstate1,state2:all_state;signaltemp:integerrange0to24999999;signalclk_out:std_logic;signalflag:f;beginp1:process(clk_out,a,set)beginifset='1'thenstate1=s0;state2=s0;elseifclk_out'eventandclk_out='1'thenifa='0'thenifflag=f1thencasestate1iswhens0=state1=s1;q=10000000;whens1=state1=s2;q=01000000;whens2=state1=s3;q=文档仅供参考82020年4月19日00100000;whens3=state1=s4;q=00010000;whens4=state1=s5;q=00001000;whens5=state1=s6;q=00000100;whens6=state1=s7;q=00000010;whens7=q=00000001;flag=f0;whenothers=state1=s0;q=10000000;endcase;elsecasestate1iswhens7=state1=s6;q=00000001;whens6=state1=s5;q=00000010;whens5=state1=s4;q=00000100;文档仅供参考92020年4月19日whens4=state1=s3;q=00001000;whens3=state1=s2;q=00010000;whens2=state1=s1;q=00100000;whens1=state1=s0;q=01000000;whens0=q=10000000;flag=f1;whenothers=state1=s7;q=00000001;endcase;endif;elsecasestate2iswhens0=state2=s1;q=00011000;whens1=state2=s2;q=00111100;whens2=state2=s3;q=01111110;whens3=state2=s4;q=11111111;whens4=state2=s5;q=01111110;whens5=state2=s6;q=00111100;文档仅供参考102020年4月19日whens6=state2=s7;q=00011000;whens7=state2=s0;q=00000000;whenothers=state2=s0;q=00000000;endcase;endif;endif;endif;endprocessp1;p2:process(clk)beginifclk'eventandclk='1'theniftemp=24999999thentemp=0;clk_out=notclk_out;elsetemp=temp+1;endif;endif;endprocessp2;endlight;
本文标题:放光二极管走马灯电路设计与实现
链接地址:https://www.777doc.com/doc-5307444 .html