风扇报告Word文档格式.docx
- 文档编号:1396032
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:32
- 大小:143.23KB
风扇报告Word文档格式.docx
《风扇报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《风扇报告Word文档格式.docx(32页珍藏版)》请在冰点文库上搜索。
2.单片机控制系统,此系统应该包含有4个点按按钮(K1:
全速;
K2:
停止;
K3:
半速;
K4、自然风),4个发光二极管(D1,D2,D3,D4)指示四种状态:
全速/停止/半速/自然风;
3.一个固态继电器用于控制风扇电机电源;
4.一个电风扇。
当点按面板上的K1时风扇全速转动,点按K2时风扇停止转动,点按K3时风扇半速转动,点按K4时自然风(一段时间全速,一段时间半速)。
分析题目我们基本上可以通过这样的方案实现题目的要求:
通过固态继电器控制的接通与断开控制电风扇与电源的接通和断开,达到实现风扇工作与否的目的。
用4个LED来指示电风扇的四个工作状态:
全速,半速,自然风,开始/停止。
通过按键切换不同的工作状态和调节风速的大小,同时增加DS18B20测温和LCD1602显示功能。
2.2方案论证与比较
2.2.1调速模块:
方案一:
三级调速
该方案只提供在全速、半速、自然风三者之间转换。
操作简单,比较适合老人小孩等使用。
但风速级数太小,不能满足用户的一些需要(如:
在秋季晚上使用较低风速既能祛暑且风扇噪音更小更有利于用户睡眠)—适应范围窄。
不能很好的满足市场的需求,故不采纳此方案。
方案二:
无级调速
此方案在最大风速内用户能够随心所欲的调节风扇转速以满足不同需要。
而单片机只能输出数字信号,因此该设计需要D/A转换,上需要D/A转换模块才能实现。
因此会增加硬件开销,即提高风扇的价格。
而更重要的一方面,无级调速在现实使用中意义不大。
故放不采用方案。
方案三:
三级调速与十几调速
该方案与方案一比同样有操作简单的特性,而与方案二相比能符合用户多转速、低转速的需要且该方案较容易实现、性价比高,故采用此案。
2.2.2按钮模块:
每个按钮控制一个功能
此方案需要较多按钮、要使用I/O口扩展且操作复杂、性价比低。
故不采用此方案。
同一按钮多功能兼并
该方案可大大减少按钮的数量、不必I/O口扩展、操作简单、性价比高。
故使用此方案。
2.2.3显示模块:
数码静态显示
静态显示是指当显示某一字符时,相对应的二极管会被点亮。
静态显示的主要优点是显示稳定,亮度大且无闪烁感。
系统运行时在需要更新时CPU才去执行相应程序,有利于提高CPU工作效率。
但此显示方式,每个数码管显示器需要一个8位的I/O口进行控制,由于单片机的I/O口有限,当显示位数增多时需要I/O扩展—性价比、性耗比不高。
故不使用此方案。
数码管动态显示
动态显示能用较少的I/O口的情况下驱动数码管。
且数码管有低功耗、亮度高、高低温等的优点。
但数码管显示的数据位数直接与数码管显示器的个数有关,在显示位数较多时需要较多数码管--占用空间较多。
且数码显示的数据可视化程度不高,故抛弃该方案。
LCD液晶显示
液晶显示器功耗低、体积小、显示内容丰富、超薄轻巧、驱动简单等优点使它足以胜任智能风扇的显示一职。
综合性价比及具体情况后我们决定使用1602显示器。
2.2.4电机驱动模块
三极管驱动
采用三极管组合放大电路。
采用三极管构成的组合放大电路驱动电机,但其稳定性不高,而且易受外界干扰和干扰其他器件。
L298驱动
采用专用驱动芯片L298。
L298N是ST公司生产的一种高电压、大电流电机驱动芯片。
该芯片采用15脚封装。
主要特点是:
工作电压高,最高工作电压可达46V;
输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;
内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;
采用标准逻辑电平信号控制;
具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;
可以外接检测电阻,将变化量反馈给控制电路。
使用L298N芯片驱动电机,该芯片可以驱动两个二相电机,也可以驱动一个四相电机,可以直接通过电源来调节输出电压;
并可以直接用单片机的I/O口提供信号;
而且电路简单,使用比较方便。
综上所诉,本设计采用方案二作为电机的驱动。
3.单元电路设计
单元电路设计分为五个部分:
ET45M052单片机模块,电机控制模块,显示模块,温度测量模块,按键及LED指示模块。
3.1ET45M052单片机模块
单片机模块是整个系统的核心,它控制着整个系统的运行,ET45M052单片机外解24M晶振,外围电路由LCD1602显示屏,DS18B20温度传感器,固态继电器,电机等部分组成。
图1.系统控制图
3.2电机控制模块:
采用直流电机控制电风扇的转动,使用固态继电器的断开和闭合控制电机停止和转动。
二继电器的断开或者是闭合是通过单片机某个引脚输出高低电平来控制的。
同时采用驱动芯片L298作为电机的驱动电路。
电路图见图2。
图2.电机控制电路
3.3显示模块:
本系统采用长沙太阳人有限公司生产的1602液晶显示器显示。
1602液晶最多能同时显示16×
2=32个字符。
液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'
A’。
1接口方面,有8条数据,三条控线。
可与微处理器或微控制相连,通过送入数据和指令,就可使模块正常工作。
提供多个功能指令:
清屏、开关显示,光标显示/关闭,移动与闪烁,整屏移动等多种模式。
接口信号说明:
引脚号
符号
引脚说明
1
Vss
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择(H/L)
12
D5
5
R/W
读/写选择(H/L)
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
基本操作指令:
读状态
输出
RS=L,R/W=H,E=H
D0-D7=状态字
写指令
RS=L,R/W=L,D0-D7=指令,E=高脉冲
无
读数据
RS=H,R/W=H,E=H
D0-D7=数据
写数据
RS=H,R/W=L,D0-D7=数据,E=高脉冲
图3.LCD1602
3.4温度测量模块
温度测量才用单总线DS18B20传感器,该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,微型化,,低功耗,高性能,抗干扰能力强使用方便,封装形式多样,可直接将温度转换成串行数字信号给单片机处理,适用于各种狭小空间设备数字测温和控制领域。
图4.DS18B20
3.5按键及LED指示模块
本系统采用了个按键和五个LED发光二极管,其中K1:
开始(全速)/停止,K2:
半速/自然风,K3:
功能键,K4:
切换,K5:
增加,K6:
减小;
五个发光二极管指示不同的工作状态,D1:
全速,D2:
半速,D3:
自然风,D4:
用户(但进入调节风速大小进入用户模式),D5:
系统刷新(闪烁)。
4.软件设计
系统软件设计采用C语言编写,对单片机进行编程实现各项功能。
程序是在WindowsXP环境下采用KeiluVision2软件编写的。
仿真平台为Proteus7.4。
介绍系统主程序,测温子程序,显示子程序,调速子程序,延时子程序等,程序见附录。
4.1主程序流程图
图5.主程序流程图
4.2按键处理流程图
图6.按键处理流程图
5.系统测试
本设计的主要目的是使普通直流电风扇的功能更强大,更完善,操作简单方便,主要实现了一下几个方面的功能。
温度监测:
可以实时测量温度,为用户选择哪种工作模式提供可靠的参考。
多级调速:
提供多个级别的风速和风型,以满足不同用户和不同环境的需要。
液晶显示:
液晶显示当前温度,用户随时知道当前温度。
设定关机温度:
默认关机温度为25℃,用户可以上下调节,当温度低于设定值时自动关机。
6.结束语
系统总体测试表明,该系统运行良好,各部分功能均正常。
在普通直流风扇的基础上增加了一些功能,使之更加智能化,人性化,操作简单方便。
本设计使我们所学的知识得到了应用,增强了实际动手能力,同时在设计中也提高发现,分析,解决问题的能力。
在设计中我们也遇到了很多问题,但是我们没有退却,依靠网络,书本等资源,一个个把它们的解决了。
同时这个设计也存在不足之处,比如安全保护,倾倒保护等其他一些很实用的功能。
这个和我们自身的知识水平和时间有关。
7.参考文献:
1.张毅刚.单片机原理及其应用.北京:
高等教育出版社,2003
2.徐玮.C51单片机高效入门.北京:
机械工业出版社,2007
3.刘建清.从零开始学单片机C语言.北京:
国防工业出版社2006
4.郭浩志.C语言程序设计教程.北京:
北京邮电出版社.2005
8.附录:
1.原件清单:
元件
数量
ET45M052
1块
固态继电器
1个
DS18B20
按钮
7个
LCD1602
万用板
直流电风扇
1台
导线
若干
发光二极管
6个
电容
电阻
24M晶振
其他
2.电路原理图
图7.电路原理图
图8.Proteus仿真图
3.源程序清单
#include<
reg52.h>
//头文件
DS18B20.h>
//头文件
sbitup=P3^5;
//增加键
sbitdown=P3^6;
//减小键
sbitturn=P3^7;
//切换键
sbitfun=P0^0;
//功能键
sbitmode=P0^1;
//半速/自然风/全速键
sbiton_off=P0^2;
//开关
sbitfull=P1^0;
//全速指示灯
sbithalf=P1^1;
//半速指示灯
sbitnature=P1^2;
//自然风指示灯
sbitcustome=P1^3;
//用户模式指示灯
sbitnew=P1^4;
//刷新灯
sbitrelay=P1^6;
//继电器
sbitmotor=P1^7;
//电机
uchardisdata1[];
//温度各位数值
uinttemp1=25;
//默认关机温度值
ucharnum1,num2,num3,num4,num5,num6,num7,num22=0,flag;
//标志位
intt0count,t1count,speed=10,relay1=1;
//******************************************************
//函数申明
voidset_speed();
voidkeyscan();
voidziranfeng();
voidset_temp();
voidtj();
voidsz();
voidgnj();
voidmod();
voidmo();
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//延时程序
voiddelay(unsignedintx)
{
unsignedinty;
while(x--)
for(y=125;
y>
0;
y--);
}
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//延时程序程2
voiddelay2(unsignedintx)
while(x--)
{
new=!
new;
//刷新灯闪烁
for(y=5000;
}
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//延时程序1
voiddelay1(intx)
inty;
for(y=50;
y--)
{
if(on_off==0)//检测开关键是否按下
{
delay2(30);
relay1=1;
//若按下标志位置1关闭电源
return;
//立即返回
}
if(mode==0)//检测模式选择键是否按下
{
delay2(30);
num2=0;
//若按下则进入全速模式
return;
//立即返回
}
delay2
(1);
//调用延时
}
////////////////////////////////////////////////
//关闭所有灯
voidoff_all(void)
{
full=1;
//关闭全速灯
nature=1;
//关闭自然风灯
half=1;
//关闭半速灯
custome=1;
//关闭用户灯
}
voidmain()//主函数
{
TMOD=0x10;
TH1=(65536-5000)/256;
//装入初值
TL1=(65536-5000)%256;
EA=1;
//开启中断总开关
ET1=1;
//开启定时器1的开关
lcd_init();
//初始化液晶显示器
off_all();
//关闭所以指示灯
while
(1)//大循环
{
read_temp();
//读取温度
ds1820disp();
//显示温度
wr_dat(0xdf);
wr_dat('
C'
);
//℃
new=!
//刷新灯闪烁
keyscan();
//调用键盘扫描
set_speed();
//速度设置
set_temp();
//设置关机温度
//------------------------------------------------
//设置
voidsz()
if(num3==1)//如果按下了功能键
//关闭所以灯
custome=0;
//开启用户灯
tj();
//调用调节函数
elsecustome=1;
//如果没有按下功能键则关闭功能键
//++++++++++++++++++++++++++++++++++++++++++++++++
//调节
voidtj(void)
{if(num3==1)
if(up==0)//如果按下了加速键
delay2(30);
//延时
speed++;
//加速
if(speed>
=11)
speed=10;
//限制最高速度
}
if(down==0)//如果按下减速键
speed--;
//减速
if(speed<
=0)
speed=1;
//限制速度下限
set_speed();
//刷新速度设置
//+++++++++++++++++++++++++++++++++++++++++++++++++++
//!
!
//键盘扫描
//
voidks(void)//开始键处理
delay2(30);
//延时去抖
relay1=!
relay1;
//////////////////////////////////////////////////////////////
voidmo(void)//功能键按下后相应操作函数
//延时去抖
num2++;
if(num2==3)
////////////////////////////////////////////////////////////
voidgb(void)//关闭风扇的初始化操作
//关闭所有灯
num3=0;
speed=0;
num2=0;
num22=0;
//所以数据初始化
///////////////////////////////////////////////////////////
voidqbz(void)//全速/半速/自然风调节处理
if(fun==0)//如果按下功能键进入功能选择gnj();
sz();
//功能键状态判断处理
if(num22==0)
relay=0;
if((num2==1)||(num3==1)||(num22==1))//在调速和半速等状态下开启中断以调节占空比
TR1=1;
else
TR1=0;
//不在相应状态则关闭中断提高CPU利用率
switch(num2)
case0:
{if(num22==0)
//全速
off_all();
fu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 风扇 报告