当前位置:文档之家› 北邮数电综合实验报告

北邮数电综合实验报告

北京邮电大学数字电路与逻辑设计实验学院:信息与通信工程学院班级: 2013211127 作者:薄士宁学号: 2013212543 ____一.实验名称和任务要求LED 点阵风扇的设计与实现基本要求:1、用8×8 点阵模拟风扇转动,并采用双色点阵显示。

2、风扇转动方式如图1 所示,包括四个点阵显示状态并按顺序循环显示。

风扇转动速度根据环境温度分为4 档,其中1 档的四个显示状态之间的切换时间为2 秒,2 档为1 秒,3 档为0.5 秒,4 档为静止不动。

图1 点阵模拟风扇转动示意图3、环境温度通过2 个BTN 按键设置,一个用来增加,一个用来减少,温度可设置范围为10℃~40℃,温度精度为1℃,并用两个数码管进行温度显示。

风扇根据不同的温度自动采用不同的转动速度,其中20℃~24℃对应1档,25℃~29℃对应2 档,30℃~40℃对应3 档,10℃~19℃对应4 档,用一个数码管显示档位。

4、定时模式:在风扇不同转动速度下,可以通过按键切换进入定时模式。

定时时间可设置范围为20~59 秒,采用两个数码管进行倒计时显示,当倒计时结束后,风扇状态保持静止不动。

5、设置开关键。

风扇开机初始状态为20℃、1 档,并有不小于5 秒的开机音乐。

关机状态为点阵全灭。

提高要求:1、设计LED 风扇的其他工作模式。

2、利用实验板上的温度传感器代替按键直接获取温度数据,实现对LED 风扇四档转速的自动控制。

3、用数码管实时显示温度传感器的温度数据,精度为0.1℃。

4、自拟其他功能。

二.基本思路根据实验要求,画出总的原理图。

实验的基本要求,即8×8双色点阵模拟风扇转动、风扇转动分四个档位(每个档位对应“四种”状态)、通过环境温度控制档位的自动选择、设计定时模式、开关机状态。

为了实现这些既定要求,设计出了温度控制模块、倒计时控制模块、音乐控制模块、点阵风扇模块、数码管显示模块等,通过对时钟的分频、加减法计数器、数据选择器等的运用,来实现上述功能。

(具体思路由单独模块中介绍)原理图由多个模块组装而成,总原理图如下:图2 总原理图通过对源程序的编译可得到该程序框图的资源利用率,为61%。

资源利用图如下:图3 总资源利用率图三.模块功能介绍(一)音乐控制模块图4 音乐控制模块图图5 音乐控制模块原理图1)开机需要音乐,给定的一段开机音乐它是由音符组成的,而每个音符是有固定的频率,通过分频器,得到每个音符所对应的频率,经过板子上beep就能够发出相应的音符。

我所设定的开机音乐为《两只老虎》,它的简谱如下:图6 《两只老虎》简谱图观察简谱可以发现,它所用的音符有1、2、3、4、5、6、5(低音5),所以查阅网络找到每个音符的频率,通过分频器计算得到它们的分频系数。

图7 音符的分频系数图通过分频系数可以得到每个音符所对应的分频器,举例do:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div_do isport(clk: in std_logic;clear: in std_logic;clk_out: out std_logic);end div_do;architecture a of div_do issignal tmp: integer range 0 to 476;--分频系数476signal clktmp: std_logic;beginprocess(clear,clk)beginif clear = '1' thentmp<= 0;clktmp<='0';elsif clk'event and clk ='1' thenif tmp = 476 thentmp<=0; clktmp<= not clktmp;elsetmp<= tmp + 1;end if;end if;end process;clk_out <= clktmp;end a;2)在每个音符确定之后,接下来就是《两只老虎》乐曲的确定。

采用数据选择器,在每一个时钟上升沿的时候,确定它相对应的输出,从而保证每次输出一个音符,且保证输出的连贯性。

图8 音符控制器图整个乐曲的音符输入控制VHDL代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity music isport(clk:in std_logic;b1,c1,d1,e1,f1,g1,h1,i1:out std_logic);--对应每个音符,0对应的音符作用 end music;architecture arc of music issignal a:integer range 0 to 61;signal b,c,d,e,f,g,h,i: std_logic;beginp1:process(a)begincase a iswhen 0=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 1=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 2=>b<='1';c<='0';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 3=>b<='1';c<='0';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 4=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 5=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 6=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 7=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 8=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 9=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 10=>b<='1';c<='0';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 11=>b<='1';c<='0';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 12=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 13=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 14=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 15=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 16=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 17=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 18=>b<='1';c<='1';d<='1';e<='0';f<='1';g<='1';h<='1';i<='1'; when 19=>b<='1';c<='1';d<='1';e<='0';f<='1';g<='1';h<='1';i<='1';when 20=>b<='1';c<='1';d<='1';e<='1';f<='0';g<='1';h<='1';i<='1'; when 21=>b<='1';c<='1';d<='1';e<='1';f<='0';g<='1';h<='1';i<='1';when 22=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1'; when 23=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 24=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1'; when 25=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 26=>b<='1';c<='1';d<='1';e<='0';f<='1';g<='1';h<='1';i<='1'; when 27=>b<='1';c<='1';d<='1';e<='0';f<='1';g<='1';h<='1';i<='1';when 28=>b<='1';c<='1';d<='1';e<='1';f<='0';g<='1';h<='1';i<='1'; when 29=>b<='1';c<='1';d<='1';e<='1';f<='0';g<='1';h<='1';i<='1';when 30=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1'; when 31=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 32=>b<='1';c<='1';d<='1';e<='1';f<='0';g<='1';h<='1';i<='1'; when 33=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='0';h<='1';i<='1';when 34=>b<='1';c<='1';d<='1';e<='1';f<='0';g<='1';h<='1';i<='1'; when 35=>b<='1';c<='1';d<='1';e<='0';f<='1';g<='1';h<='1';i<='1';when 36=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1'; when 37=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 38=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1'; when 39=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 40=>b<='1';c<='1';d<='1';e<='1';f<='0';g<='1';h<='1';i<='1'; when 41=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='0';h<='1';i<='1';when 42=>b<='1';c<='1';d<='1';e<='1';f<='0';g<='1';h<='1';i<='1'; when 43=>b<='1';c<='1';d<='1';e<='0';f<='1';g<='1';h<='1';i<='1';when 44=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1'; when 45=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 46=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1'; when 47=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 48=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 49=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 50=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='0';when 51=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='0';when 52=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 53=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 54=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 55=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 56=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 57=>b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';h<='1';i<='1';when 58=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='0';when 59=>b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='0';when 60=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when 61=>b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';h<='1';i<='1';when others=>null;end case;end process p1;p2:process(clk)beginif clk'event and clk='1'thena<=a+1;if a=61 thena<=0;end if;end if;end process p2;b1<=b;c1<=c;d1<=d;e1<=e;f1<=f;g1<=g;h1<=h;i1<=i;end;3)开机音乐时间不少于15秒,所以在保证输入时钟频率为1HZ的情况下,用一个减法计数器,从而控制beep作用时间为15秒。

相关主题