电风扇控制逻辑电路课程设计Word文档格式.docx
- 文档编号:18470302
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:12
- 大小:178.43KB
电风扇控制逻辑电路课程设计Word文档格式.docx
《电风扇控制逻辑电路课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《电风扇控制逻辑电路课程设计Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
在“睡眠”位置,是产生轻柔的微风,电扇运转8秒,间断8秒的方式。
(4)电风扇在任意状态下,按“停止”键电扇停止工作,所有指示灯熄灭。
三、总体设计原理与内容
1、设计的总体原理
首先用脉冲信号CLK1的上升沿表示按键1,其控制风速,同时它还做电扇的启动键。
当电扇处于关闭状态时,按一下按键1(即给一个上升脉冲CLK1),电扇即处于待机状态,同时电扇风速处于“弱”状态(即LED1亮),若再按一次按键1,则风速处于“中”状态(即LED2亮),再按一次按键1,风速处于“强”状态(即LED3亮),依次循环。
用脉冲信号CLK2的上升沿表示按键2,其控制风种,当电扇处于待机状态时,按一下按键2(即给一个上升脉冲CLK2),电扇即开始运转,同时风种处于“正常”状态(即LED4亮),电扇持续运转(即LED7常亮),连续按按键2,则风种依次处于“正常,自然,睡眠”状态,电扇依次持续运转,转四秒停四秒(即LED7亮四秒不亮四秒),转八秒停八秒(即LED7亮八秒不亮八秒)。
用脉冲信号RS的上升沿表示按键3,它做电扇的关闭键,当电扇处于运转状态时,按一下按键3(即给一个上升脉冲RS),电扇即停止运转(即所有发光二极管不亮)。
2、设计内容
图1设计总体框图
如图1,在关闭状态给一个触发脉冲CLK1(即按一下键1),即启动电风扇,风速为默认“弱”状态,则电扇处于待机状态,此时按下风种选择键键2,风扇即开始运转,且风种为“正常”。
逐次按键1,则可实现风速转换;
逐次按键2,则可实现风种转换。
四、EDA设计及仿真
1、电风扇控制逻辑电路设计源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
entitydianfengshanis
port(clk1,clk2,rs:
inbit;
------按键clk1风速clk2风种rs代表停止键
clk:
instd_logic;
------亮灭时钟1hz
ledx:
bufferbit;
------自然风
ledy:
------睡眠风
ledA,ledB,ledC,ledD,ledE,ledF,ledG:
outbit);
------ledA-C风速ledD-F风种ledG状态
enddianfengshan;
architecturesimpleofdianfengshanis
signalm:
integerrange0to9;
------自然风延时
signaln:
integerrange0to17;
------睡眠风延时
begin
process(clk1,clk2,rs,clk)---clk1风速clk2风种
variablecounter,counter1,counter2:
integer;
variableled1,led2,led3,led4,led5,led6,led7:
bit;
begin
-------------------------------------------------
if(rs=‘1’)then------rs代表停止键状态
counter:
=0;
counter1:
counter2:
--按下关闭键所有发光二极管不亮;
else
if(clk1'
eventandclk1=‘1'
)then--按下风速键,ledA亮;
counter:
=counter+1;
counter1:
=counter1+1;
---风速变量
if(counter1=4)thencounter1:
=1;
endif;
endif;
if(counter>
0)then
if(clk2'
eventandclk2=‘1'
)then
counter2:
=counter2+1;
----风种变量
if(counter2=4)then
counter2:
endif;
endif;
endif;
if(counter1=0)then
led1:
=‘0'
;
led2:
led3:
led7:
-------风速选择
elsif(counter1=1)then
=‘1'
led3:
elsif(counter1=2)then
elsif(counter1=3)then
if(counter2=0)then-------风种选择
led4:
led5:
led6:
elsif(counter2=1)then
elsif(counter2=2)then
led6:
if(clk'
eventandclk=‘1'
)then---当自然风亮4S灭4S由CLK控制
m<
=m+1;
if(m=4)then
ledx<
=notledx;
led7:
=ledx;
elsif(counter2=3)then
)then---当睡眠风亮8S灭8S由CLK控制
n<
=n+1;
if(n=8)then
ledy<
=notledy;
endif;
=ledy;
ledA<
=led1;
ledB<
=led2;
ledC<
=led3;
ledD<
=led4;
ledE<
=led5;
ledF<
=led6;
ledG<
=led7;
endprocess;
endsimple;
2、电风扇控制逻辑电路设计仿真结果及数据分析
图2软件仿真图
如图2,首先用脉冲信号CLK1的上升沿表示按键1,其控制风速,同时它还做电扇的启动键。
rs代表停止键状态,ledA,B,C,D,E,F,G代表所有二极管,其中六个为状态指示灯,一个代表电风扇运转状态,在刚开始1.4s处,按下停止键,ledA,B,C,D,E,F,G全为低电平,即所有二极管全部熄灭,clk1,clk2,代表“风速”、“风种”按键状态,当clk1为高电平时,ledA为高电平,代表电风扇风速为强等风;
当clk1第二次变为高电平时,ledB为高电平,代表电风扇风速为中等风;
当clk1第三次变为高电平时,ledC为高电平,代表电风扇风速为弱等风;
,当clk2为高电平时,ledD为高电平,代表电风扇风速为正常风;
当clk2第二次变为高电平时,ledE为高电平,代表电风扇风速为自然风;
当clk2第三次变为高电平时,ledF为高电平,代表电风扇风速为睡眠风;
当电风扇风速为自然风时,ledG循环4秒钟为高电平,4秒钟为低电平;
当电风扇风速为睡眠风时,ledG循环8秒钟为高电平,8秒钟为低电平。
clk为输入时钟信号,选择不同的时钟频率,决定ledG循环点亮与熄灭的时间;
当电风扇为停转状态时,只有按下“风速键”,电风扇才启动,波形图中,在52秒处,停止键为高电平,在此之后的55秒处和59秒处,clk2为高电平,clk1在此期间始终为低电平,ledA,B,C,D,E,F,G全为低电平,即所有二极管全部熄灭,这就符合了当电风扇为停转状态时,只有按下“风速键”,电风扇才启动的要求,在62秒处第一个clk1高电平到达,此时循环前面步骤。
3、仿真结果总结
在仿真过程中,起初clk2送入第一个高电平时,ledD,E,F不能正常触发,后来经过调试,发现是没有判断clk1的状态,最终经过调试,加上了判断语句在counter大于0则执行clk2的程序,解决了这个问题。
停止键起初不能完全实现应有的功能,在rs送高电平信号时,其余的led输出状态没有改变为0,将所有led输出状态控制函数移到rs判断语句之外后,复位信号就输出正常。
在给时钟信号clk赋值后,第12秒和23秒处对应的ledG输出没有按照亮4秒,灭4秒进行,后来发现是endtime设置的不对,修改后仍有错误,再将clk的单位修改后,ledG正常显示。
五、硬件实现
1、硬件引脚锁定及步骤
在硬件仿真前要进行引脚锁定,我选择的是模式6,其中时钟信号clk选择CLOCK0,锁定引脚PIN_L1;
风速键对应clk1,锁定引脚为PIN_F14;
风种键对应clk2,锁定引脚为PIN_F15;
ledA连接D8,锁定引脚为PIN_J20;
ledB连接D7,锁定引脚为PIN_J21;
ledC连接D6,锁定引脚为PIN_J22;
ledD连接D5,锁定引脚为PIN_k17;
ledE连接D4,锁定引脚为PIN_k18;
ledF连接D3,锁定引脚为PIN_k21;
ledG连接D1,锁定引脚为PIN_L17;
停止键连接rs,锁定引脚为PIN_G16。
其引脚配置图如下:
图3硬件仿真引脚配置图
2、硬件实现照片
图4风速弱、风种正常led显示图
图4是风速为“弱”、风种为“正常”的led显示图。
如图,led1亮,led2、led3不亮,led4亮,led5、led6不亮,led7常亮。
图5风速中、风种自然led显示图
(1)
图6风速中、风种自然led显示图
(2)
图5、6是风速为“中”、风种为“自然”的led显示图。
两图均为led2、led5亮,led1、led3、led4、led6不亮,而
(1)图为led7亮时的图片,
(2)图为led7不亮时的图片。
其中图
(1)持续时间为4秒,图
(2)持续时间为4秒。
图7风速强、风种睡眠led显示图
(1)
图8风速强、风种睡眠led显示图
(2)
图7、8是风速为“强”、风种为“睡眠”的led显示图。
两图均为led3、led6亮,led1、led2、led4、led5不亮,而
(1)图为led7亮时的图片,
(2)图为led7不亮时的图片。
其中图
(1)持续时间为8秒,图
(2)持续时间为8秒。
六、设计总结
设计过程中由于同一个变量counter1由两个边沿脉冲clk1和clk2触发,导致错误始终存在,通过修改边沿触发方式,错误得到解决。
然后就是程序编写不熟练,导致很多的逻辑错误。
延时可以通过很多种方法来实现,比如说定时延时,脉冲计数延时,甚至可以借助FOR循环或者LOOP循环来实现延时。
但是众多的延时中有的只能仿真,不能综合,比如FOR循环延。
为了实现仿真和综合并举,我考虑了前面两种延时方式。
为期两周的EDA课程设计很快就结束了,虽然在以前的学习中还有很多没有弄懂的问题,但通过这次设计进一步加深了对EDA的了解,让我对他有力更加浓厚的兴趣。
在这次课程设计过程中,我充分认识到实际操作的重要性。
通过课程设计可以把很多章节的模块融合到一起,对以后的学习很有帮助。
此次设计使我对VHDL的语法结构有了很大的认识提高,感觉VHDL语言不想我们一般的变成语言,如果我们以前的编程思想去做它,就会出现很多的错误。
另外,我在仿真时感悟到了一些技巧,例如在编写程序是应该将一段一段的代码进行仿真,各个部分都成功后,再进行综合仿真,这样可以提高效率。
我们在用VHDL语言进行电路设计时候应先进行逻辑机构的梳理,然后将系统分为若干个模块,然后对每一个模块进行单独的设计,仿真,成功之后,将各个模块通过元件绿化,组成一个系统,进行综合仿真。
这样可以提高设计效率。
在做任何设计前都要广泛查阅税基资料,并借助网络资源去了解并汲取他人好的创作思想。
通过这次课程设计我感觉自己在动手操作方面有了质的飞跃,结合以前的EDA实验课沉淀下来的经验和老师的指导以及周围同学的帮助,我的这次设计进行得很顺利,在巩固所学知识的基础上也显著增强了自己的实践能力。
另外,我们还应加大练习,熟能生巧。
参考文献
[1]林明权.VHDL数字控制系统设计范例[M].北京:
电子工业出版社.2003
[2]雷伏容.VHDL电路设计[M].北京:
清华大学出版社.2006
[3]陈荣,陈华.VHDL芯片设计[M].北京:
机械工业出版社.2006
[4]杨恒,李爱国等.FPGA/CPLD最新实用技术指南[M].北京:
清华大学出版社.2005
[5]孙研鹏,张芝贤等.VHDL与可编程逻辑器件应用[M].北京:
航空工业出版社.2006
[6]辛春艳.VHDL硬件描述语言[M].北京:
国防工业出版社.2002
[7]曾繁泰,陈美金.VHDL程序设计[M].北京:
清华大学出版社.2000
[8]阎石.数字电子技术[M].北京:
高等教育出版社.2006
[9]BobZeidman,基于FPGA&
CPLD的数字IC设计方法[M].赵宏图译,北京:
北京航空航天大学出版社.2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电风扇 控制 逻辑电路 课程设计