智能风扇设计Word文档下载推荐.docx

上传人:b****1 文档编号:5330064 上传时间:2023-05-05 格式:DOCX 页数:30 大小:232.22KB
下载 相关 举报
智能风扇设计Word文档下载推荐.docx_第1页
第1页 / 共30页
智能风扇设计Word文档下载推荐.docx_第2页
第2页 / 共30页
智能风扇设计Word文档下载推荐.docx_第3页
第3页 / 共30页
智能风扇设计Word文档下载推荐.docx_第4页
第4页 / 共30页
智能风扇设计Word文档下载推荐.docx_第5页
第5页 / 共30页
智能风扇设计Word文档下载推荐.docx_第6页
第6页 / 共30页
智能风扇设计Word文档下载推荐.docx_第7页
第7页 / 共30页
智能风扇设计Word文档下载推荐.docx_第8页
第8页 / 共30页
智能风扇设计Word文档下载推荐.docx_第9页
第9页 / 共30页
智能风扇设计Word文档下载推荐.docx_第10页
第10页 / 共30页
智能风扇设计Word文档下载推荐.docx_第11页
第11页 / 共30页
智能风扇设计Word文档下载推荐.docx_第12页
第12页 / 共30页
智能风扇设计Word文档下载推荐.docx_第13页
第13页 / 共30页
智能风扇设计Word文档下载推荐.docx_第14页
第14页 / 共30页
智能风扇设计Word文档下载推荐.docx_第15页
第15页 / 共30页
智能风扇设计Word文档下载推荐.docx_第16页
第16页 / 共30页
智能风扇设计Word文档下载推荐.docx_第17页
第17页 / 共30页
智能风扇设计Word文档下载推荐.docx_第18页
第18页 / 共30页
智能风扇设计Word文档下载推荐.docx_第19页
第19页 / 共30页
智能风扇设计Word文档下载推荐.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

智能风扇设计Word文档下载推荐.docx

《智能风扇设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《智能风扇设计Word文档下载推荐.docx(30页珍藏版)》请在冰点文库上搜索。

智能风扇设计Word文档下载推荐.docx

3.1系统的原理方框图·

3.2 元器件选型·

8

3.3硬件主电路·

11

4 软件设计·

14

4.1 软件设计思想及主流程·

14

4.2 流程框图及关键代码·

15

5系统调试·

29

5.1硬件测试·

29

5.2软件测试·

30

5.3整体测试·

31

设计心得·

32

参考文献·

33

1系统概述

1.1 AT89C51单片机简介

传统电风扇多采用机械方式进行控制,功能少,噪音大,各档的风速变化大。

随着科技的发展和人们生活水平的提高,家用电器产品趋向于自动化、智能化、环保化和人性化,使得由微机控制的智能电风扇得以出现。

AT89C51单片机提供以下标准功能:

4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时、计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51单片机可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时、计数器,串行通行口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

1.2本设计任务和主要内容

本文以AT89C51单片机为核心,通过数字温度传感器对外界环境温度进行数据采集,从而建立一个控制系统,使电风扇随温度的变化而自动调节档位,实现“温度高、风力大、温度低、风力弱”的性能。

另外,通过红外发射和接收装置及按键实现各种功能的启动与关闭,并且可对各种功能实现遥控,用户可以在一定范围内设置电风扇的最低工作温度,当温度低于所设置温度时,电风扇将自动关闭,当高于此温度时电风扇又将重新启动。

本设计主要内容如下:

(1)风速设为从低到高共5个档位,可由用户通过键盘和遥控手动设定。

(2)每当温度降低2℃,则电风扇风速自动下降一个档位。

(3)每当温度升高2℃,则电风扇风速自动上升一个档位。

(4)用户可以设定电风扇最低工作温度,当低于该温度时,电风扇自动停转。

二、方案论证

传统电风扇供电采用的是220V交流电,电机转速分为几个档位,通过人工手动调整电机转速达到改变风速的目的,亦即,每改变一次风力,必然有人参与操作,这样就会带来诸多不便。

本文介绍了一种基于AT89C51单片机的智能电风扇调速器的设计,该设计巧妙利用红外线遥控技术、单片机控制技术、无级调速技术和温度传感技术,把智能控制技术应用于家用电器的控制中,将电风扇的电机转速作为被控制量,由单片机分析采集到的数字温度信号,再通过可控硅对风扇电机进行调速。

从而达到无须人为控制便可自动调整风速的效果。

2.1系统总体设计

图1系统总体结构框图

经过详细分析和实现难度对比有以下基本理论依据:

2.2传感器部分

方案一:

采用热敏电阻

采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。

而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂.另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。

方案二:

采用DS18B20

温度传感器采用DS18B20数字温度传感器。

DS18B20数字温度传感器芯片是以9位数字量的形式反映器件的温度值。

DS18B20数字温度传感器通过一个单线接口发送或接受信息,因此在中央微处理器和DS18B20之间仅需一条连接线(加上地线)。

用语读写和温度转换的电源可以从数据线本身获得,无需外部电源。

它可以直接将模拟温度信号转化为数字信号,降低了电路的复杂程度,提高了电路的运行质量。

综合考虑,选择方案DS18B20进行温度测量。

           2.3主控制部分

方案一:

采用SPCE061A单片机

采用凌阳16位的SPCE061A单片机,处理速度较慢,内置2KSRAM,32KFLASH,要实现稍大的存储量受到限制,而如果扩展大量的外围电路的话,则降低了系统的可靠性,消耗了大量的CPU资源。

采用AT89C51单片机

AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内4bytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置用8位中央处理器(CPU)和Flash存储单元,功能强大。

AT89C51单片机可灵活应用于各种控制领域。

综合考虑,选择AT89C51单片机作为主控制器。

2.4调速方式的选择

采用PWM控制

PWM是利用数字输出对模拟电路进行控制的一种有效技术,尤其是在对电机的转速控制方面,可大大节省能量。

但前期投入大。

方案二:

采用可控硅控制

实际中通过控制双向可控硅的导通角,使输出端电压发生改变,从而使施加在电风扇的输入电压发生改变,以调节风扇的转速,实现各档位风速的无级调速。

从本设计要求综合考虑实际中选择方案二。

2.5温度控制模块设计

采用红外遥控器+红外遥控解码:

红外遥控器的使用大大方便了用户,使他们可以在一定范围内实现对本系统的远程控制,符合当代人的生活习惯,而且红外遥控器的技术已经相当成熟,使用也比较方便。

用键盘:

假如使用键盘,用户就只能走进本控制系统去控制该系统已完成自己想要的操作。

此方案设计与制作比较简单,且能完全完成既定功能。

综合各方面因素,采选用方案二。

2.6显示电路的设计

LCD1602液晶屏:

LCD1602液晶屏是16*2的字符型液晶,可以显示英文26个字母的大小写,阿拉伯数字0—9,及一些简单的符号。

该液晶屏操作简单,显示功能强大。

数码管:

虽然数码管的显示位数有限,且只能显示一些简单的字符。

但是在本课程设计中,所需要的数码管不多,少量数码管即可符合设计要求,估可采用。

方案三:

LCD12864液晶屏:

该液晶屏是比LCD1602液晶屏更先进的液晶,可以显示图片信息,同样可以完成本设计系统的需要。

但是该液晶屏相对比较贵。

综上所述,我们选择了数码管作为显示模块。

综上所述的论证,通过焊接、接线、编程等工作就可以制作智能调速风扇。

3 硬件设计

3.1系统的原理方框图

本系统由集成温度传感器、单片机、LED数码管、发光二极管、直流电机及一些其他外围器件组成。

使用具有价廉易购的AT89C51单片机编程控制,通过修改程序可方便实现系统升级。

系统的框图结构如下:

人工控制

图2系统原理框图

3. 2元器件选型

经过案例分析选择以下元器件并给出其基本原理

3.2.1DS18B20数字温度传感器

DS18B20数字温度传感器采集现场温度,将测量到的数据送入AT89C51单片机的P3.3口,经过单片机处理后显示当前温度值,并与设定温度值的上下限值作比较,若高于设定上限值或低于设定下限值则控制电机转速进行自动调整。

--

图3DS18B20温度计原理

3.2.2AT89C51的引脚功能

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

3.2.3双向可控硅

双向晶闸管是在普通晶闸管的基础上发展而成的,它不仅能代替两只反极性并联的晶闸管,而且仅需一个触发电路,是目前比较理想的交流开关器件。

其英文名称TRIAC即三端双向交流开关之意。

3.2.4数码管

数码管显示电路采用共阳极四位数码管以及9012三极管作为驱动数码管发亮。

其连接方式如下:

应用单片机P0口连接八段数码管,用P1口的P1.0—P1.3四个端口作为数码管的片选信号输出端口,其中要用9012(PNP型)三极管做驱动。

为了防止烧坏数码管,所以给数码管各段各加一个50k的限流电阻。

要显示的数据通过P0口送给数码管显示,通过P1口的P1.0—P1.3四个端口分别对数码管进行位选,事实上数码管是间断被点亮的,只是其间断时间十分短,扫描期

周在20ms以下,利用人眼视觉暂留,我们基本看不出它们的闪烁。

     

 图4数码管显示电路

  

3.2.5键盘控制元件

键盘是人机交互的重要部件。

本部件主要便于用户对电风扇进行操作,使用户只要进行一些简单的操作,就能实现所需的全部功能,键盘操作模块在电风扇底座部分有一个3x 3小矩阵键盘,可以进行风的强度、类型、定时等系统设置,按键电路图如图6所示。

图5按键控制原理图

3.3硬件主电路

3.3.1温度采集、控制模式设定以及复位电路

温度采集电路主要是由DS18B20构成,它可以把采集的温度数据转化成二进制数,经过单片机处理后输出送数码管显示。

图6温度采集、控制模式设定以及复位电路

  开关设定主要是通过按键K1来设定的。

模式转换键由K2来完成,可以实现温度控制风速和手动设定风速的功能。

手动设定风扇档位由K3、K4来完成,按一下K3键可以实现档位增一,而按下K4键可以实现档位减一。

3.3.2电机驱动电路

驱动模块主要采用驱动芯片ULN2803,PWM脉冲信息通过I\O口P3^4输出,然后经过ULN2803时由1B—7B输入至7C输出以驱动电机转动。

电路如图7 电机驱动电路

图7

3.3.3开关、模式指示灯电路

ﻩ分别通过P1^0—P1^2作为开关、两个模式指示灯,按下开关键K1时,开关指示灯亮,表明DS18B20一开始工作,此时后三位显示相应温度;

若此时按下模式一键K2,转为到温度控制风速功能,当达到相应温度范围,电机转速作相应改变;

若按下模式二键K3,转为手动控制风速,此时可以分别按K3或者K4键,以控制档位。

图8 开关、模式指示灯电路

本系统的总电原理图为:

图9 总电原理图

4、软件设计

本系统的运行程序采用C语言编写,采用模块化设计,整体程序由主程序和显示、键盘扫描、红外线接收以及电机控制等子程序模块组成。

4.1软件设计思想及主流程

主程序:

在主程序进行初始化后,开始反复检测各模块相关部分的缓冲区的标志,如果缓冲区置位,说明相应的数据需要处理,然后主程序调用相应的处理子模块。

如图7所示。

图10主程序模块流程图

4.2流程框图及关键代码

4.2.1 数字温度传感器模块和显示子模块

如图8所示,主机控制DS18B20数字温度传感器完成温度转换工作必须经过三个步骤:

初始化、ROM操作指令、存储器操作指令。

单片机所用的系统频率为12MHz。

根据DS18B20数字温度传感器进行初始化时序、读时序和写时序分别可编写3个子程序:

初始化子程序、写子程序、读子程序。

图11数字温度传感器模块程序流程图

DS18B20芯片功能命令表如下:

命令          说明        协议

READROM       读取激光ROM64位      33H

MATCHROM           匹配ROM      55H 

SKIP ROM           跳过ROM         CCH

SEARCH ROM        搜索ROM     F0H

ALARMSEARCH     告警搜索        ECH

WRITESCRATCHPAD    把字节写入暂存器的地址2和3 4EH

READSCRATCHPAD   读取暂存器和CRC字节   BEH

COPYSCRATCHPAD    把暂存器内容拷贝到非易失性存储器中  48H

CONVERTT             开始温度转换     44H

RECALLE2     把非易失性存储器中的值召回暂存器    B8H

READPOWERSUPPLY   读电源供电方式:

0为寄生电源,1为外电源   B4H

表1 DS18B20功能命令表

4.2.2电机调速与控制子模块

本模块采用双向可控硅过零触发方式,由单片机控制双向可控硅的通断,通过改变每个控制周期内可控硅导通和关断交流完整全波信号的个数来调节负载功率,进而达到调速的目的。

因为INT0信号反映工频电压过零时刻,所以只要在外中断0的中断服务程序中完成控制门的开启与关闭,并利用中断服务次数对控制量n进行计数和判断,即每中断一次,对n进行减1计数,如果n不等于0,保持控制电平为“1”,继续打开控制门;

如n=0,则使控制电平复位为“0”,关闭控制门,使可控硅过零触发脉冲不再通过。

这样就可以按照控制处理得到的控制量的要求,实现可控硅的过零控制,从而达到按控制量控制的效果,实现速度可调。

(1)中断服务程序:

执行中断服务程序时,首先保护现场,INT0中断标志置位,禁止主程序修改工作参数,然后开始减1计数,判断是否关断可控硅,最后INT0中断标志位清零,还原初始化数据,恢复现场,中断返回。

(设1秒钟通过波形数N=100)

(2)回路控制执行程序:

主回路控制执行程序的任务是初始化数据存储单元,确定

电机工作参数nmin/nmax,并将其换算成“有效过零脉冲”的个数;

确定中断优先级、开

中断,为了保证正弦波的完整,工频过零同步中断INT0确定为高一级的中断源。

a

图11电机控制模块中断响应流程图

数字温度传感器模块和显示子模块程序:

#include<REG52.h>

#defineucharunsignedchar

#defineuintunsignedint

sfr Dat_Port=0x80;

sbitge=P2^6;

sbitshi=P2^7;

sbitTMDAT=P3^7;

ucharcodetable[]={0x3F,0x06,0x5B,0x4F,

ﻩ0x66,0x6D,0x7D,0x07,

  0x7F,0x6F};

uchartmpbuf[2];

voidDelay(int useconds)

{

ﻩints;

for(s=0;

s<

useconds;

s++);

ucharReset_Bus(void)

ﻩuchar presence;

ﻩTMDAT=0;

Delay(29);

ﻩTMDAT=1;

Delay(3);

ﻩpresence=TMDAT;

Delay(25);

ﻩreturn(presence);

}

voidWrite_Bit(char bitval)

ﻩTMDAT=0;

ﻩif(bitval==1) TMDAT=1;

ﻩDelay(5);

TMDAT=1;

void Write_Byte(char val)

ﻩucharI;

ﻩﻩuchartemp;

ﻩfor(i=0;

i<

8;

i++)

{ﻩ

ﻩtemp=val>>

i;

temp&=0x01;

ﻩWrite_Bit(temp);

ﻩ}

Delay(5);

ucharRead_Bit(void) 

ﻩuchar i;

TMDAT=0;

ﻩTMDAT=1;

for(i=0;

3;

i++);

ﻩreturn(TMDAT);

uchar Read_Byte(void)

uchari;

ucharvalue=0;

for (i=0;

8;

i++)ﻩﻩﻩﻩ

ﻩ{

ﻩif(Read_Bit()) value|=0x01<<

i;

ﻩDelay(6);

ﻩ}

ﻩreturn(value);

uintDS18B20_Tmp_Read(void)

uint TEMP;

uchar TEMP_LSB,TEMP_MSB;

Reset_Bus();

Write_Byte(0xCC);

Write_Byte(0x44);

Delay(5);

ﻩReset_Bus();

Write_Byte(0xCC);

ﻩWrite_Byte(0xBE);

TEMP_LSB=Read_Byte();

TEMP_MSB=Read_Byte();

TEMP=TEMP_MSB;

ﻩTEMP=TEMP<

<

ﻩTEMP=TEMP|TEMP_LSB;

returnTEMP;

voidDisplay(void)

ucharj;

ﻩj=tmpbuf[0];

ﻩDat_Port=table[j];

ﻩshi=0;

ﻩDelay(5);

shi=1;

ﻩDelay(5);

ﻩj=tmpbuf[1];

ﻩDat_Port=table[j];

ﻩge=0;

Delay(5);

ge=1;

void main(void)

ﻩuinttmp;

ucharI,tmph;

ﻩwhile

(1)

{

ﻩtmp=DS18B20_Tmp_Read();

ﻩﻩtmph=(uchar)((tmp>

>

4)&

0xff);

tmpbuf[1]=tmph%10;

ﻩtmpbuf[0]=(tmph%100)/10;

ﻩﻩfor(i=0;

i<20;

i++)

ﻩ{

ﻩDisplay();

ﻩﻩ}

电机调速与控制子模块主程序:

#include<

reg52.h>

#define uchar unsignedchar

#defineuintunsignedint

sbitFan=P3^2;

uchart1;

void init()

uint tmp;

tmp=DS18B20_Tmp_Read();

Fan=1;

           /*导通*/

ﻩTMOD=0x01;

TH0=(65536-50000)/256;

ﻩTL0=(65536-50000)%256;

EA=1;

EX0=1;

IT0=1;

ﻩET0=1;

TR0=1;

voidexter()interrupt 0

ﻩuint n0,n1,n2,n3,n4,n5;

uchar tmp;

ﻩif((tmp>

0x0180)&&

(tmp<0x01A0)==1)

n1--;

if(n1==0)

ﻩFan=0;

     /*截止*/

ﻩif(t1==20)

ﻩt1=0;

Fan=1;

ﻩ}

ﻩ}

}

else if((tmp>

=0x01A0)&

&(tmp<

0x01C0)==1)

ﻩﻩn2--;

ﻩﻩif(n2==0)

ﻩﻩFan=0;

ﻩif(t1==20)

ﻩﻩ{

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2