家用电风扇控制逻辑电路设计Word格式文档下载.docx

上传人:b****5 文档编号:21026078 上传时间:2023-01-27 格式:DOCX 页数:27 大小:42.60KB
下载 相关 举报
家用电风扇控制逻辑电路设计Word格式文档下载.docx_第1页
第1页 / 共27页
家用电风扇控制逻辑电路设计Word格式文档下载.docx_第2页
第2页 / 共27页
家用电风扇控制逻辑电路设计Word格式文档下载.docx_第3页
第3页 / 共27页
家用电风扇控制逻辑电路设计Word格式文档下载.docx_第4页
第4页 / 共27页
家用电风扇控制逻辑电路设计Word格式文档下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

家用电风扇控制逻辑电路设计Word格式文档下载.docx

《家用电风扇控制逻辑电路设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《家用电风扇控制逻辑电路设计Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。

家用电风扇控制逻辑电路设计Word格式文档下载.docx

分工:

一人尽心程序编译,一人负责查询资料记录并完成设计报告。

二、方案设计与论证

2.1电风扇单元电路的设计

2.1.1触发脉冲的形成

“风速”和“风种”状态锁存电路的输出信号状态的变化依靠各自的触发脉冲。

在“风速”状态的锁存电路中,可以利用“风速”按键(k1)所产生的脉冲信号作为触发脉冲;

在“风种”状态锁存器的触发脉冲CP由“风种”(k2)、“风速”(k1)的信号和电风扇的工作状态信号(设ST为电风扇的工作状态,ST=0停,ST=1运转)三者组合而成。

当电风扇处于停止状态(ST=0)时,按(k2)无效,CP信号将保持低电平;

只有按k1后,CP信号变成高电平,电风扇进入运转状态(ST=1)。

此后,CP不再受k1的控制,而是有k2控制,可得触发脉冲逻辑表达式:

CP=K1·

ST¯

+K2·

ST。

(当k1输出的三个信号Q2、Q1、Q0全部为零时,电扇停转,ST=0;

当三个输出信号Q2、Q1、Q0不全为零时,电扇运转,ST=1,从而可得电风扇工作状态ST逻辑表达式为:

ST=Q0+Q1+Q2)

最后得到触发脉冲CP的逻辑表达式:

Q2¯

Q1¯

Q0¯

+K2·

(Q0+Q1+Q2)

CP信号状态表

K2

K1

ST

CP

0

1

2.1.2触发脉冲电路

键K1按动后形成的脉冲信号作为“风速”状态锁存电路的触发信号。

键K1、K2及74LS00、74LS08构成“风种”状态锁存电路的触发信号CP。

电风扇停转时,ST=0,K1=0,与非门U2输出为高电平,U3输出为高电平,所以U4输出的CP信号变为低电平。

当按下K1后,U2输出为低电平,使U4输出CP信号变为高电平,并使触发器翻转,“风种”处于“正常”状态。

由于k1输出的上升沿脉冲,也使“风速”处于“弱”状态,电风扇开始运转,ST=1。

电风扇开始运转后,U2输出始终为高电平,这样使风种状态的触发脉冲CP与K2的状态相同。

每次按下K2并释放后,CP信号就会产生上升沿使风种的状态发生变化。

2.2电风扇单元电路的工作原理

2.2.1风速的控制原理

电风扇处于停转状态时,所有指示灯不亮。

此时只有按“风速”键,电扇才会启动运转,其初始状态处于“弱”档,相对应的只是灯亮。

此时,按动“风速”键会产生触发脉冲可循环选择弱、中、强三种状态中的任意种状态。

“风速”的工作状态是由触发器来锁存状态,触发器输出1表示工作状态有效,0表示无效,当三个输出全部为0则表示停止状态。

设数字×

×

为Q2、Q1、Q0的输出信号,其转换图如下

“风速”转换图

2.2.2风种的控制原理

在“风种”的三种选择方式中,在正常位置时,风扇为连续运行;

在自然和睡眠位置时,为间断运行方式。

电路中采用74LS151作为风种方式的控制器,由74LS175的三个输出信号选中74LS151的一种方式。

间断工作时,电路中用了一个8秒周期的时钟信号作为自然方式的间断控制;

二分频后再作为睡眠方式的控制输入。

“风种”转换图

2.2.3电机运转控制原理

电风扇的转速通常是由电压来控制的,但是这里的弱、中、强三种转速,所以需要在电路里考虑三个输出端(弱中强)和控制外部电线路(如可控硅出发电路)。

这三个输出端与指示电风扇转速状态的三个端子不同,除了要控制电机分别按弱中强三种转速外,还必须能够控制电机连续运转或间断运转,以与“风种”不同选择方式相对应。

要是用1表示某档速度的选通,用0表示某档速度的关断,那么“风种”信号的输入就使得某档电机速度被连续或间断地选中。

例如风种选择“睡眠”,风速选择“弱”时,电机将运行在开8秒停8秒,表现在电机运转控制“弱”上就是出现间断的1和0的状态。

2.2.4停止电路原理分析

电路中选用上升沿触发器74LS151带有直接清零端,使清零端与“停止”键相连可实现停止的功能。

在电扇任意工作状态下,按“停止”键,会产生低电平输入到清零端,使触发器输出全部为低电平,电扇处于停止状态,所有指示灯熄灭。

三、实现与测试

我们用四个按键分别控制“风速”、“风种”、“定时”、“停止”,然后用步进电机当做风扇叶片,用数码管显示时间,用二极管显示风速的“强”、“中”、“弱”以及风种的“正常”、“自然”、“睡眠”。

我们用到的软件是Quartys,在对程序进行编译后可通过试验箱完成我们的设计。

四、分析与总结

这一段时间对家用电风扇逻辑电路的设计过程中,自己在查找参考资料的时候遇到了许多疑难问题,面对问题自己通过查找先前课堂笔记、同学的讨论及老师的指导解决了疑难,使课题设计能顺利的完成。

同时,在设计过程中,进一步加强了对电子的了解,复习了在大学期间学过的电子技术基础的知识,培养综合设计能力和实际动手能力,提高了综合应用电子解决问题的能力,相信这对我今后的工作有十分重要意义!

面对科技的不断发展和进步,相信在不久的将来电风扇的功能会更强,例如用红外线遥控控制、具有定时功能、智能控制等,甚至电子控制线路的电风扇会被取代。

参考文献

1. 

康华光.电子技术基础数字部分(第五版)[M].北京:

高等教育出版社.2006 

2. 

彭介华.电子技术课程设计指导[M].北京:

高等教育出版社.2005

3. 

谢自美.电子线路设计.实验.测试[M].武汉:

华中科技大学出版.2000

4. 

赵伟军. 

Protel 

99 

SE 

教程.北京:

邮电出版社.2004

5. 

肖玲妮等.Protel 

印刷电路板设计教程[M].北京:

清华大学出版社.2003

五、硬软件设计

按键控制程序

modulecount(

clock,

key1,

key2,

key3,

key4,

hour_ge,

hour_shi,

minute_ge,

minute_shi,

second_shi,

second_ge,

state1,//调整位选择输出到display

flag,//当到达00:

00:

00时输出1停止信号到dian_ji

);

inputclock;

inputkey1;

//选择

inputkey2;

//加

inputkey3;

//减

inputkey4;

//确定

output[2:

0]state1;

outputflag;

output[3:

0]minute_ge;

0]second_ge;

0]minute_shi;

0]second_shi;

0]hour_ge;

0]hour_shi;

//**************************

reg[4:

0]hour;

//最大31

reg[5:

0]minute;

0]second;

reg[3:

0]minute_ge_out;

0]second_ge_out;

reg[2:

0]minute_shi_out;

0]second_shi_out;

0]hour_ge_out;

0]hour_shi_out;

regflag_q;

0]state1_out;

regflag_out;

//*****************************

always@(posedgeclock)

begin

reg[19:

0]count1;

//消抖

reg[29:

0]count;

//计数

0]count6;

if(key4==1'

b0)//确认键

if(count1<

50_0000)

begin

count1<

=count1+1'

d1;

if(count1==49_9999)

if(key4==1'

b0)

begin

flag_q=~flag_q;

second<

=59;

//确认键按下后秒置数59,

flag_out<

=0;

//停止信号复位

end

end

b1)count1<

=20'

d0;

//*****************************

if(flag_q==1'

b1)//确定键按下后才开始倒计时

count<

=count+1'

if(count==30'

d50_00_0000)

=30'

if(second==6'

d0)

if((hour==0)&

&

(minute==0))

elsesecond<

if(minute==4'

if(hour==0)

minute<

elseminute<

begin

=1;

//停止信号

hour<

end

elsebeginhour<

=hour-1;

flag_out<

end

end

elseminute<

=minute-1'

b1;

elsesecond<

=second-1'

end

//*************************按键控制加减***************************************

if(state1==3'

b001)//分钟加

if(key2==1'

count6<

=count6+1'

if(count6==30'

d100_00000)//

count6<

if(key2==1'

minute<

=minute+1'

if(minute>

7'

d59)

end

//***********************************************

elseif(key3==1'

b0)//分钟减

d100_00000)//10ms

if(key3==1'

if(minute==7'

minute<

=7'

d59;

end

end

//*******************************

elseif(state1==3'

b010)//小时加

d10_00_0000)//12ms

hour<

=hour+1'

if(hour>

6'

d23)

hour<

=6'

//*********************************

if(key3==1'

b0)//小时减

=hour-1'

if(hour==6'

d23;

end

second_shi_out<

=second/10;

second_ge_out<

=second%10;

minute_shi_out<

=minute/10;

minute_ge_out<

=minute%10;

hour_shi_out<

=hour/10;

hour_ge_out<

=hour%10;

end

//********按键选择调整对象****************

reg[19:

0]count_x1;

if(key1==0)

if(count_x1<

count_x1<

=count_x1+1;

if(count_x1==49_9999)

if(key1==0)

state1_out<

=state1_out+1;

if(state1_out==2)state1_out<

if(key1==1)count_x1<

if(key4==0)state1_out<

//确认键按下

//******************************************************

assignsecond_ge=second_ge_out;

assignsecond_shi=second_shi_out;

assignminute_ge=minute_ge_out;

assignminute_shi=minute_shi_out;

assignhour_ge=hour_ge_out;

assignhour_shi=hour_shi_out;

assignstate1=state1_out;

assignflag=flag_out;

endmodule

电机程序

moduledian_ji(

key1,

key2,

key3,

moto_z,

moto_f,

led_s,//速度

led_m,//模式

flag,//模式输出

flag_stop,//倒计时时间到时,输入信号

);

inputflag_stop;

output[1:

0]flag;

outputmoto_z;

outputmoto_f;

0]led_s;

0]led_m;

//******************

reg[29:

0]count2;

//正常模式

0]count3=5_00000;

//自然模式

0]led_s_r;

0]led_m_r;

regmoto_z_r;

regmoto_f_r;

reg[1:

0]flag2_out;

0]flag1;

//风速(高,低,中)

//reg[1:

0]flag2;

//模式(正常,自然,睡眠)

0]flag3;

//自然风中的模式

//***************************************

reg[31:

0]count_x;

count_x<

=count_x+1;

if(count_x==150_000000)//5秒

flag3<

elseflag3<

//******************电机转动***************

=count1+1;

count2)

moto_z_r<

elseif(count1<

500)

=1'

elsecount1<

//********按键选择,高,中,低****************

if((flag2_out==1)||(flag2_out==3))//正常模式下

flag1<

=flag1+1;

if(flag1==3)flag1<

if(key3==0)flag1<

//停止

//***********自然模式下,高,中,低循环******************

if(flag2_out==2)

if(flag3==1)

flag1<

if(flag1>

3)

if(flag_stop==1)flag1<

//倒计时完毕,风扇停止,风速调节无效,需要按确定键复位flag_stop

//***************风速***********************

if(flag1==1)

count2<

=300;

//低

elseif(flag1==2)count2<

=250;

//中

elseif(flag1==3)count2<

=20;

//高

elseif(flag1==0)count2<

=500;

//停

//********按键选择模式****************

0]count_x2;

if(key2==0)

if(count_x2<

count_x2<

=count_x2+1;

if(count_x2==49_9999)

if(key2==0)

flag2_out<

=flag2_out+1;

if(flag2_out==3)flag2_out<

if(key2==1)count_x2<

if(key3==0)flag2_out<

if(flag_stop==1)flag2_out<

//倒计时完毕后模式按键无效,需要按确定键复位flag_stop

//***************led*****************

if(flag1==1)led_s_r<

=3'

b011;

elseif(flag1==2)led_s_r<

b101;

elseif(flag1==3)led_s_r<

b110;

elseled_s_r<

b111;

if(flag2_out==1)led_m_r<

elseif(flag2_out==2)led_m_r<

elseif(flag2_out==3)led_m_r<

elseled_m_r<

//*******************************************

assignled_s=led_s_r;

assignled_m=led_m_r;

assignmoto_f=0;

assignmoto_z=moto_z_r;

assignflag=flag2_out;

数码管显示程序

moduledisplay(

led_wei1,

led_wei2,

led_wei3,

led_wei4,

led_wei5,

led_wei6,

led_wei7,

led_wei8,

led_du,

clock,

hour_ge,

hour_shi,

minute_ge,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 演讲主持

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1