当前位置:文档之家› 电风扇控制逻辑电路课程设计

电风扇控制逻辑电路课程设计

目录一、设计目的 (4)二、设计要求 (4)三、总体设计原理与内容 (5)1、设计的总体原理 (5)2、设计内容 (5)四、EDA设计及仿真 (5)1、电风扇控制逻辑电路设计源程序 (5)2、电风扇控制逻辑电路设计仿真结果及数据分析 (8)五、硬件实现 (9)1、引脚锁定图 (9)2、硬件实现照片 (9)六、设计总结 (12)1、设计过程中遇到的问题及解决方法 (12)2、设计体会 (12)3、对设计的建议 (13)七、设计生成的电路图 (13)参考文献 (13)电风扇控制逻辑电路设计一、设计目的通过对FPGA(现场可编程门阵列)芯片的设计实践,使学生掌握一般的PLD(可编程逻辑器件)的设计过程、设计要求、设计内容、设计方法,能根据用户的要求及工艺需要进行电子芯片设计并制定有关技术文件。

培养学生综合运用已学知识解决实际工程技术问题的能力、查阅图书资料和各种工具书的能力、工程绘图能力、撰写技术报告和编制技术资料的能力,受到一次电子设计自动化方面的基本训练。

培养学生利用EDA技术知识,解决电子设计自动化中常见实际问题的能力,使学生积累实际EDA编程。

通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力。

二、设计要求(1).以EDA技术的基本理论为指导,将设计实验分为基本功能电路和较复杂的电子系统两个层次,要求利用数字电路或者EDA方法去设计并完成特定功能的电子电路的仿真、软硬件调试;(2).熟悉掌握常用仿真开发软件,比如: Quartus II或Xilinx ISE的使用方法。

(3).能熟练运用上述开发软件设计并仿真电路并下载到FPGA中进行调试;(4).学会用EDA技术实现数字电子器件组成复杂系统的方法;学习电子系统电路的安装调试技术。

(5).用EDA技术实现电风扇控制器的控制功能,具体要求如下:1、用三个按键来实现。

风速”、“风种”、“停止”的不同选择。

2、用六个发光二报管分别表示“风速”(强、中、弱)、“风种”(睡眠、自然、正常)的三种状态。

3、电扇在停转状态时,只有按“风速’键才有效.按其余两键不响应。

电风扇启动后,再按动“风速”键可循环选择弱、中或强三种状态中的任一种状态,“风速”的弱、中、强对应电扇的转动由慢到快;按动“风种”键可循环选择正常、自然或睡眠三种状态的某—种状态。

“风种”在正常位置是指电扇连续运转;“自然”位置,是表示电扇模拟产生自然风,即运转4秒,间断4秒的方式;在“睡眠”位置,是产生轻柔的微风,电扇运转8秒,间断8秒的方式。

电扇运转情况用第七个发光二极管的亮与不亮表示。

4、电风扇在任意状态下。

按“停止”键电扇停止工作,所有指示灯熄灭。

三、总体设计原理与内容1、设计的总体原理首先用脉冲信号feng_su的上升沿表示按键2,其控制风速,同时它还做电扇的启动键。

当电扇处于关闭状态时,按一下按键2(即给一个上升脉冲feng_su),电扇即处于待机状态,同时电扇风速处于“弱”状态(即LED8亮),若再按一次按键1,则风速处于“中”状态(即LED7亮),再按一次按键1,风速处于“强”状态(即LED6亮),依次循环。

用脉冲信号feng_zhong的上升沿表示按键1,其控制风种,当电扇处于待机状态时,按键1处于失效状态,当启动时,风种的初态为正常,电扇持续运转(即LED3常亮),连续按按键1,则风种依次处于“正常,自然,睡眠”状态,电扇依次持续运转,转四秒停四秒(即LED2亮四秒不亮四秒),转八秒停八秒(即LED1亮八秒不亮八秒)。

用脉冲信号ting_zhi的上升沿表示按键3,它做电扇的关闭键,当电扇处于运转状态时,按一下按键3(即给一个上升脉冲RS),电扇即停止运转(即所有发光二极管不亮)。

2、设计内容图3-2-1 设计总体框图如图3-2-1,在关闭状态给一个触发脉冲feng_su(即按一下键2),即启动电风扇,风速为默认“弱”状态,风种默认为正常状态,风扇即开始运转。

逐次按键2,则可实现风速转换;逐次按键1,则可实现风种转换。

四、EDA设计及仿真1、电风扇控制逻辑电路设计源程序library ieee;use ieee.std_logic_1164.all;entity feng_shan123 isport(ting_zhi,feng_su,feng_zhong,clk:in std_logic;ruo,zhong,qiang,zheng_chang,zi_ran,shui_mian:out std_logic);end feng_shan123;architecture one of feng_shan123 istype state123 is(state0,state1,state2,state3);type state567 is(s0,s1,s2);signal pr_state0,nx_state0:state123;signal pr_state1,nx_state1:state567;signal zi_ran1:std_logic:='0';signal shui_mian1:std_logic:='0'; --自然风的控制信号,高电平有效signal kong_zhi:std_logic; --风种档位有效控制信号,高电平有效signal a,b:std_logic:='0'; --控制自然风和睡眠风的输出signal zi_ran3:std_logic:='1'; --自然风档位时,计时信号signal shui_mian3:std_logic:='1'; --睡眠档位时,计时信号beginprocess(ting_zhi,feng_su) --停止键有效时,系统停止beginif ting_zhi='1' then pr_state0<=state0; --信号上升沿来时,现态等于次态 elsif(feng_su'event and feng_su='1') then pr_state0<=nx_state0;end if;end process;process(ting_zhi,feng_zhong)beginif ting_zhi='1' then pr_state1<=s0; --信号上升沿来时,现态等于次态elsif(feng_zhong'event and feng_zhong='1') then pr_state1<=nx_state1;end if;end process;process(pr_state0)begincase pr_state0 iswhen state0=>ruo<='0';zhong<='0';qiang<='0';nx_state0<=state1;kong_zhi<='0';when state1=>ruo<='1';zhong<='0';qiang<='0';nx_state0<=state2;kong_zhi<='1';when state2=>ruo<='0';zhong<='1';qiang<='0';nx_state0<=state3;when state3=>ruo<='0';zhong<='0';qiang<='1';nx_state0<=state1;end case;end process;process(pr_state1,kong_zhi)begincase pr_state1 iswhen s0=>if(kong_zhi='0')then zheng_chang<='0';zi_ran1<='0';shui_mian1<='0';nx_state1<=s0;else zheng_chang<='1';zi_ran1<='0';shui_mian1<='0';nx_state1<=s1; end if;b<='0'; a<='0';when s1=>zheng_chang<='0';zi_ran1<='1';shui_mian1<='0';nx_state1<=s2;a<='1';b<='0';when s2=>zheng_chang<='0';zi_ran1<='0';shui_mian1<='1';nx_state1<=s0;a<='0';b<='1';end case;end process;process(zi_ran1,clk,a) --自然风档位,等两四秒,灭四秒variable zi_ran2:integer range 0 to 16;beginif zi_ran1='1' thenif(clk'event and clk='1') thenif zi_ran2=16 then zi_ran2:=0;zi_ran3<=not zi_ran3;else zi_ran2:=zi_ran2+1;end if;end if;else zi_ran3<='1';end if;if a='1' then zi_ran<=zi_ran3;else zi_ran<='0';zi_ran2:=0;end if;end process;process(shui_mian1,clk,b) --睡眠风档位,亮8秒,灭8秒variable shui_mian2:integer range 0 to 32;beginif shui_mian1='1' thenif(clk'event and clk='1') thenif shui_mian2=32 then shui_mian2:=0;shui_mian3<=not shui_mian3;else shui_mian2:=shui_mian2+1;end if;end if;else shui_mian3<='1';end if;if b='1' then shui_mian<=shui_mian3;else shui_mian<='0';shui_mian2:=0;end if; end process;end one;2、电风扇控制逻辑电路设计仿真结果及数据分析图4-2-1 软件仿真图如图4-2-1,首先用脉冲信号feng_su的上升沿表示按键2,其控制风速,同时它还做电扇的启动键。

相关主题