电子设计报告 智能风扇控制系统.docx

上传人:b****5 文档编号:6602422 上传时间:2023-01-08 格式:DOCX 页数:10 大小:349.80KB
下载 相关 举报
电子设计报告 智能风扇控制系统.docx_第1页
第1页 / 共10页
电子设计报告 智能风扇控制系统.docx_第2页
第2页 / 共10页
电子设计报告 智能风扇控制系统.docx_第3页
第3页 / 共10页
电子设计报告 智能风扇控制系统.docx_第4页
第4页 / 共10页
电子设计报告 智能风扇控制系统.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

电子设计报告 智能风扇控制系统.docx

《电子设计报告 智能风扇控制系统.docx》由会员分享,可在线阅读,更多相关《电子设计报告 智能风扇控制系统.docx(10页珍藏版)》请在冰豆网上搜索。

电子设计报告 智能风扇控制系统.docx

电子设计报告智能风扇控制系统

 

智能风扇控制系统

设计报告

(电子大赛选拔赛)

 

小组成员:

沈君豪/13014432313电子中美

吕智超/13015433813电子中美

黄寒雪/13015435913电子中美

设计时间:

2015.2—2015.3

 

一.前期准备:

经过我们小组三人的讨论,最终我们决定采用8051作为整个系统的控制部分,运用8051系列单片机以及C51编程实现解决方案。

故我们事先进行了分工,并进入了准备阶段。

 

二.总体设计:

作为控制部分,我们决定使用8051单片机;电源部分我们采用了microusb母座进行供电,工作时可以插入手机充电器(microusb公头)进行供电;风扇使用直流电机代替;直流电机驱动部分则使用L298N芯片。

1.首先是按键部分,3个按键(分别表示风速、类型、停止)的状态以启动电扇或设置相应的工作状态。

这样就需要3个按键,要通过一个按键来控制2个以上的状态,可以通过按键的次数来控制第几种状态,比如风速有三种状态(弱、中、强),可以用按键1次控制弱,按键2次控制中,按键3次控制强,这样就可以实现一键控制多钟状态了。

其中停止按键与P3.2(外部中断0)相接,按下时即可停止所有行为。

2.控制器的指示灯,我们想使用六个LED灯进行显示,分别显示不同风速、类型等6个指示信号。

3.用直流电机作为电风扇,其转速和停止可通过改变L298N其使能输入的频率来改变电机的速度。

利用L298N的2,3引脚来驱动直流电机。

4.风速和风种的实现,采用8051的定时器中断,每隔一定的时间停止L298N的使能输入,使电机停止,改变不同的定时时间,来获得电机的不同转速与风种。

三.原理图:

 

 

四.程序设计(C51)

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitA1=P1^0;//电机控制端口

sbitB1=P1^1;

sbitENA=P1^2;

 

sbitkey1=P3^0;//风速设置按键

sbitkey2=P3^1;//风种设置按键

sbitkey3=P3^2;//停止设置按键

 

sbitled1=P0^0;//强风指示灯

sbitled2=P0^1;//中风指示灯

sbitled3=P0^2;//慢风指示灯

sbitled4=P0^3;//正常指示灯

sbitled5=P0^4;//自然指示灯

sbitled6=P0^5;//睡眠指示灯

bitStop_Flag=0;

uintcount=0;

ucharpwm_duty=0;//最大为100

ucharwind_speed=0;//分为三级0高1中2慢

ucharwind_mode=0;//分为三类0正常1自然2睡眠

uinttime=0;//计时变量

voiddelay1ms(void)

{

unsignedchara,b,c;

for(c=1;c>0;c--)

for(b=142;b>0;b--)

for(a=2;a>0;a--);

}

voidMotor_Forward()//电机正转

{

A1=1;

B1=0;

ENA=1;

}

voidMotor_Reversal()//电机反转

{

A1=0;

B1=1;

ENA=1;

}

voidMotor_Stop()//电机急停

{

A1=1;

B1=1;

ENA=0;

}

voidInitTimer0(void)//T0初始化为1ms定时器

{

TMOD=0x01;

TH0=0x0FC;

TL0=0x18;

EA=1;

ET0=1;

//TR0=1;

}

//主函数

voidmain()

{

//端口配置

P0=0xff;

P1=0x00;

P2=0xff;

P3=0xff;

InitTimer0();

EX0=1;//外部中断0开

IT0=1;//边沿触发

TR0=1;

while

(1)

{

if(!

key1)//设置风速

{

delay1ms();

if(!

key1)

{

wind_speed++;

if(wind_speed>=3)wind_speed=0;

TR0=1;//开启定时器

Stop_Flag=0;//标志位清零

}

while(!

key1);//等待按键释放

}

if(!

key2)//设置风种

{

delay1ms();

if(!

key2)

{

wind_mode++;

if(wind_mode>=3)wind_mode=0;

time=0;

}

while(!

key2);//等待按键释放

}

if(!

Stop_Flag)

{

switch(wind_speed)

{

case0:

pwm_duty=100;//100%转速

A1=1;

B1=0;

led1=0;

led2=1;

led3=1;

break;

case1:

pwm_duty=70;//70%转速

A1=1;

B1=0;

led1=1;

led2=0;

led3=1;

break;

case2:

pwm_duty=40;//40%转速

A1=1;

B1=0;

led1=1;

led2=1;

led3=0;

break;

default:

A1=1;

B1=1;

break;

}

}

else

{

P0=0xff;//LED全灭

}

}

}

voidTimer0Interrupt(void)interrupt1//定时器中断T0

{

TH0=0x0FC;

TL0=0x18;

count++;

if(wind_mode==0)//正常

{

if(count<=pwm_duty)

ENA=1;

else

ENA=0;

if(count>=100)

count=0;

led4=0;

led5=1;

led6=1;

}

elseif(wind_mode==1)//自然

{

time++;

if(time<=4000)//4s

{

if(count<=pwm_duty)

ENA=1;

else

ENA=0;

if(count>=100)

count=0;

}

else

{

ENA=0;

}

if(time>=8000)time=0;

led4=1;

led5=0;

led6=1;

}

else//睡眠

{

time++;

if(time<=8000)//8s

{

if(count<=pwm_duty)

ENA=1;

else

ENA=0;

if(count>=100)

count=0;

}

else

{

ENA=0;

}

if(time>=16000)time=0;

led4=1;

led5=1;

led6=0;

}

}

voidISR_Key(void)interrupt0using1//外部中断0

{

Motor_Stop();//关闭马达

P0=0xff;//关闭所有LED

TR0=0;

Stop_Flag=1;

}

四.实物焊接图

五.元件清单:

STC89C511个

L298N1个

按键4个

12M晶振1个

22Pf电容2个

10Uf电解电容1个

直流电机1个

330Ω电阻6个

10kΩ电阻6个

LED6个

 

六.参考用书:

1.《工程电路分析》(美)WilliamH.Hayt(威廉H.海特) 著

电子工业出版社出版时间2012-9-1

2.《CPrimerPlus》 (美)StephenPrata 著

人民邮电出版社出版时间 2005-2-1

3.《时间触发嵌入式系统设计模式》(英) MichaelJ.Pont 著

中国电力出版社出版时间2004-7-1

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

当前位置:首页 > 总结汇报 > 其它

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

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