智能温控风扇的生产实习设计报告.docx

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

智能温控风扇的生产实习设计报告.docx

《智能温控风扇的生产实习设计报告.docx》由会员分享,可在线阅读,更多相关《智能温控风扇的生产实习设计报告.docx(32页珍藏版)》请在冰点文库上搜索。

智能温控风扇的生产实习设计报告.docx

智能温控风扇的生产实习设计报告

学号:

创新生产实习报告

 

学院电信学院专业电子信息科学与技术班级电子09-1

学生周义超&财聪指导教师(职称)利民

实习时间2012年12月10日至2013年1月5日

 

基于单片机的温控风扇的设计

 

摘要

温控风扇在现代社会中的生产以与人们的日常生活中都有广泛的应用,如工业生产型机械散热系统中的风扇、现在笔记本电脑上的广泛应用的智能CPU风扇等。

本文设计了基于单片机的温控风扇系统,采用单片机作为控制器,利用温度传感器DS18B20作为温度采集元件,并根据采集到的温度,通过一个达林顿反向驱动器ULN2803驱动风扇电机。

根据检测到的温度与系统设定的温度的比较实现风扇电机的自动启动和停止,并能根温度的变化自动改变风扇电机的转速,同时用LED八段数码管显示检测到的温度与设定的温度。

关键词:

单片机、DS18B20、温控、风扇

 

第一章绪论

1.1前言

在现代社会中,风扇被广泛的应用,发挥着举足轻重的作用,如夏天人们用的散热风扇、工业生产型机械中的散热风扇以与现在笔记本电脑上广泛使用的智能CPU风扇等。

而随着温度控制技术的发展,为了降低风扇运转时的噪音以与节省能源等,温控风扇越来越受到重视并被广泛的应用。

但是目前市场上的风扇多半是采用全硬件电路实现,存在着电路复杂,功能单一等局限性,因此有必要对现有的控制器进行改进。

本文设计了一种只能温控风扇控制系统。

它由ATMEL公司的8052系列单片机AT89C52作为控制器,采用DALLAS公司的温度传感器DS18B20作为温度采集元件,并通过驱动器ULN2803驱动风扇电机的转动。

同时使系统检测到得环境温度以与系统预设的温度动态的显示在LED数码管上。

根据系统检测到得环境温度与系统预设温度的比较,实现风扇电机的自动启停以与转速的自动调节。

该系统成本低,可靠性高,有较高的应用价值。

随着单片机在各个领域的广泛应用,许多用单片机作控制的温度控制系统也应运而生,如基于单片机的温控风扇系统。

它使风扇根据环境温度的变化实现自动启停,使风扇转速随着环境温度的变化而变化,实现了风扇的智能控制。

它的设计为现代社会人们的生活以与生产带来了诸多便利,在提高人们的生活质量、生产效率的同时还能节省风扇运转所需的能量。

 

 

第二章整体方案设计

2.1系统整体设计

本设计的整体思路是:

利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给单片机AT89C52进行处理,在LED数码管上显示当前环境温度值以与预设温度值。

其中预设温度值只能为整数形式,检测到的当前环境温度可精确到小数点后一位。

同时采用PWM脉宽调制方式来改变直流风扇电机的转速。

并通过两个按键改变预设温度值,一个提高预设温度,另一个降低预设温度值。

2.2系统功能简介

本系统能够实现单片机系统检测环境温度的变化,然后根据环境温度变化来控制风扇直流电机输入占空比的变化,从而产生不同的转动速度,亦可根据键盘调节不同的设置温度,再由环境温度与设置温度的差值来控制电机。

当环境温度低于设置温度时,电机停止转动;当环境温度高于设置温度时,单片机对应输出口输出不同占空比的PWM信号,控制电机开始转动,并随着环境温度与设置温度的差值的增加电机的转速逐渐升高,同时,会产生高温报警信号,系统还能动态的显示当前温度和设置温度,并能通过键盘调节当前的设置温度。

 

2.3系统原理框图

 

 

图2-3系统原理框图

 

 

第三章系统的硬件设计

3.1硬件总设计原理图

本系统的硬件模块有:

主控芯片模块、时钟复位模块、独立键盘输入模块、温度转换模块、声光报警模块、显示模块和电机风扇模块,共七大模块组成。

分别负责读取、显示、转换、报警以与运转等功能的实现。

其总设计原理图如图3-1所示:

图3-1硬件总设计原理图

 

3.2各模块电路单元设计

3.2.1主控模块的设计

本系统的主控模块如图3-2-1所示。

本模块主要有AT89C52单片机组成,其功能主要是读取相关数据作处理后,把数据存储在单片机RAM中,再把数据传送到输出电路用于显示或控制等。

 

图3-2-1主控单片机模块

下面介绍某些引脚的接法:

XTAL1和XTAL2连接12MHz的晶振,

RST接复位电路引脚,

P12引脚接驱动电动机的输入引脚,

P15接声光报警电路的输入引脚,

P16和P17分别接的是独立按键的设置预定值的“加”和“减”,

P37接温度传感器的数据端口I/O口,

P0和P2分别接六位数码管的段选和位选端口,

具体接法请参考图3-1所示。

3.2.2晶振和复位电路模块设计

本模块主要由两部分组成,一个是晶振电路,另一个是复位电路,如图3-2-2所示:

 

图3-2-2晶振电路与复位电路

晶振电路:

主要是由两个30pF的电容和12M的晶振组成的。

复位电路:

主要由一个10uF的电解电容、10k的电阻和一个复位按键组成的。

其中的RST接的是单片机的复位端,有图可知,本系统采用的是高电平复位,当系统上电时,RST处于高电平,这时系统就会复位,也即是上电复位。

另外,当系统启动过后,也可以选择按键复位,即当按下S0按钮时,也可以使RST置高电平,这时系统也会复位,也即是所谓的按键复位。

3.2.3独立键盘模块设计

独立键盘由两个独立按键S1和S2组成,一端分别与单片机的P16和P17相连,另一端接地,当按下任一健时,P1口读取低电平有效。

系统上电后,进入键盘扫描子程序,以查询的方式确定各按键,完成温度初值的设定。

其中按键S1为加按键,没按下一次,对预设值加一,按键S2为减按键,每按下一次,对预设值进行减一运算。

电路图如图3-2-3所示:

 

图3-2-3独立键盘模块电路

3.2.4温度检测模块设计

本模块的设计,采用采用美国DALLAS半导体公司生产的DS18B20可组网数字温度传感器芯片封装而成,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。

将DS18B20温度传感器的数据信号端口与单片机的一位I/O口相连,其余两引脚分别接电源和地即可。

本设计将DS18B20接在P37口实现温度的采集,其与单片机的连接图如图3-2-4所示:

 

图3-2-4温度检测模块电路

3.2.5声光报警模块设计

声光报警模块主要由一个发光二极管和一个5V有源蜂鸣器以与相关元件构成。

它通过P15接口与单片机相连,其硬件电路原理图如图3-2-5所示:

 

 

图3-2-5声光报警模块原理图

此报警模块电路的功能主要是当温度检测器检测到的温度值高于预设温度值10摄氏度时,单片机的P15引脚端口输出周期为0.6S的脉冲方波驱动报警模块电路工作,二极管闪烁,蜂鸣器叫,其中低电平有效。

反之,报警模块电路停止工作,二极管不闪,蜂鸣器不叫。

3.2.6数码管显示模块设计

本设计制作中,选用六位共阴极数码管作为显示模块,它与单片机硬件的接口如图3-2-6所示。

其中前3位数码管用于显示温度传感器实时检测采集到的温度值,可精确到0.1摄氏度,显示围为0到99.9摄氏度;后两位数码管用于显示系统设置的初值温度值,只显示整数温度值,显示围为0到99摄氏度。

六位数码管的段选a、b、c、d、e、f、g、dp线分别与单片机的P0口连接,其中P0口接一个10k的排阻作为上拉电阻;六位数码管的位选W1到W6分别与单片机的P2.0到P2.5口相连接。

只要其中一位中输出低电平时,则选中导通该位数码管。

 

 

图3-2-6数码管显示模块电路

 

3.2.7电机风扇模块电路设计

本设计中由单片机的I/O口输出PWM脉冲,通过一个达林顿反向驱动器ULN2803驱动12V直流无刷风扇电机以与实现风扇电机速度的调节。

电路如图3-2-7所示:

 

图3-2-7电机风扇驱动模块电路

键盘控制设置温度,通过软件向单片机输入相应控制指令,由单片机通过P1.2口输出与转速相应的PWM脉冲,经过ULN2803驱动风扇直流电机控制电路,实现电机转速与启停的自动控制。

当环境温度升高时,直流电机的转速会相应按照设定的等级有所提高;当环境温度下降时,电机的转速会相应的下降;当环境温度低于设置温度时,电机停止转动,而环境温度又高于预设温度时,电机重新启动。

风扇电机的一端接12V电源,另一端接ULN2803的OUT5引脚,ULN2803的IN5引脚与单片机的P1.2引脚相连,通过控制单片机的P1.2引脚输出PWM信号,由此来控制风扇直流电机的速度和启停。

 

第四章系统的软件设计

 

4.1软件总设计框图

程序设计部分主要包括主程序、DS18B20初始化函数、温度转换函数、温度读取函数、键盘扫描函数、数码管显示函数、温度处理函数、风扇电机控制函数以与中断报警函数等。

总设计流程图如图4-1所示:

 

图4-1软件总流程图

 

 

4.2软件编程与仿真

4.2.1用KeilC51编写程序

KeilC51是美国KeilSoftware公司开发的51系列兼容单片机C语言的软件开发系统,与单片机汇编语言相比,C语言在不仅语句简单灵活,而且编写的函数模块可移植性强[9],因而易学易用,效率高。

随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前使用较多的MCS-51系列单片机开发的软件。

用KeilC51编写的程序入图4-2-1所示:

 

图4-2-1程序编写图

4.2.2数码管显示程序分析

数码管显示程序采用了动态显示的方法,分别有五个变量作显示缓冲存,依次显示实时温度的十位,个位,小数位和设定值,程序如下:

voiddigitalshow(uchara4,a3,a2,a1,a0)

{

dbuf[3]=a0;

dbuf[4]=a1;

dbuf[0]=a2;

dbuf[1]=a3;

dbuf[2]=a4;

P2=0xff;

P0=dispcode[dbuf[3]];

P2=dispbitcode[5];

Delay

(1);

P2=0xff;

P0=dispcode[dbuf[4]];

P2=dispbitcode[4];

Delay

(1);

P2=0xff;

P0=dispcode[dbuf[0]];

P2=dispbitcode[2];

Delay

(1);

P2=0xff;

P0=dispcode[dbuf[1]];

P0=P0|0x80;

P2=dispbitcode[1];

Delay

(1);

P2=0xff;

P0=dispcode[dbuf[2]];

P2=dispbitcode[0];

Delay

(1);

}

4.2.4温度处理程序分析

这个温度处理程序,把温度传感器采集到的温度与设定值进行比较,从而控制高低电平的分配,当温度值小于设定值时,高电平为零个,低电平有五个;当温度值高于设定值时,高电平为1,低电平为4,以此类推,从而控制输出电平的占空比,程序如下:

voiddeal(floattmp)//温度处理

{

if(tmp<=sheding)

{

gao=0;

di=5;

}

elseif((tmp>sheding)&&(tmp<=(sheding+1)))

{

gao=1;

di=4;

}

elseif((tmp>(sheding+1))&&(tmp<=(sheding+3)))

{

gao=2;

di=3;

}

elseif((tmp>(sheding+3))&&(tmp<=(sheding+5)))

{

gao=3;

di=2;

}

elseif((tmp>(sheding+5))&&(tmp<=(sheding+7)))

{

gao=4;

di=1;

}

else

{

gao=5;

di=0;

}

}

 

4.2.5电机风扇控制程序分析

 

voiddianji()

{

ucharq,i;

for(q=0;q

{

pwm=0;

digitalshow(shi,ge,xiaoshu,sheding/10,sheding%10);

for(i=255;i>0;i--)

{

digitalshow(shi,ge,xiaoshu,sheding/10,sheding%10);

}

}

for(q=0;q

{

pwm=1;

digitalshow(shi,ge,xiaoshu,sheding/10,sheding%10);

for(i=255;i>0;i--)

{

digitalshow(shi,ge,xiaoshu,sheding/10,sheding%10);

}

}

}

4.2.6用Proteus软件进行仿真

总仿真图如图4-2-2所示:

 

图4-2-2总仿真电路图

仿真过程:

点击开始仿真按钮,系统开始仿真,写好的程序把预设值设置为20摄氏度,把温度传感器的温度值才低温调至高温,在调到小于20摄氏度时,电动机不转,报警电路不工作;当调到大于设定值20摄氏度时,电动机开始缓慢转动,当调到更高温度时,可以看到电机风扇的转速越来越快,且当温度高于设定值10摄氏度时,报警器工作。

本设计为5级调速,下图4-2-3为1级和3级下的转速:

 

图4-2-3

 

还可以通过按键S1和S2来设置预设值。

当预设值大于实时温度值时,电机风扇停止运转,报警电路也停止工作,蜂鸣器不叫,闪光灯灭。

通过仿真,可以看出直流风扇电机在系统设定温度一定的情况下,其转速随着环境温度(温度传感器检测到的温度)的增加而增大。

当环境温度低于系统预设的温度时,风扇自动停止运转,实现了系统所设计的功能。

当然,在此没有实现风扇直流电机的无级调速,本系统实现的是电机在随环境温度变化的五个等级的速度变化,环境温度在一定小围变化风扇电机转速是不变的,只有超过了设定的某一界限时转速才会变化

第五章系统的安装与调试

5.1制作安装

5.1.1制作流程

PCB板是所有设计过程的最终产品。

PCB图设计的好坏直接决定了设计结果是否能满足要求,PCB图设计过程中主要有以下几个步骤:

(1)创建PCB文件

在正式绘制之前,要规划好PCB板的尺寸。

这包括PCB板的边沿尺寸和部预留的用于固定的螺丝孔,也包括其他一些需要挖掉的空间和预留的空间。

(2)设置PCB的设计环境

(3)将原理图信息传输到PCB中

规划好PCB板之后,就可以将原理图信息传输到PCB中了。

(4)元件布局

元件布局要完成的工作是把元件在PCB板上摆放好。

布局可以是自动布局,也可以是手动布局。

(5)布线

根据网络表,在ProtelDXP提示下完成布线工作,这是最需要技巧的工作部分,也是最复杂的一部分工作。

(6)检查错误

布线完成后,最终检查PCB板有没有错误,并为这块PCB板撰写相应的文档。

(7)打印PCB图纸[9]

(8)准备感光板,进行曝光

(9)显影

(10)腐蚀

(11)钻孔

(12)焊接

在PCB板的制作时,要考虑电气要求、散热、封装尺寸等。

在确定PCB尺寸后,再确定特殊元件的位置。

最后,根据电路的功能单元,对电路的全部元器件进行布局。

从而完成元器件的安装与焊接。

5.2系统调试

5.2.1软件调试

按键显示部分的调试:

起初根据设计编写的系统程序:

程序的键盘接口采用P1口,数码管显示采用P0口控制LED的断码,P2口控制LED的位码,从而实现键盘功能与数码管的显示。

经过编译没有出错,但在仿真调试时,数码管显示的只是乱码,没有正确的显示温度,按键功能也不灵,当按下键时,显示并不变化。

经过查找分析,发现键盘扫描程序没有没有按键消抖部分,按键在按下与松手时,都会有一定程度的抖动,从而可能使单片机做出错误的判断,导致按键条件预设温度时失灵,甚至根本不能工作。

因此必须在按键扫描程序中加入消抖部分,即在按键按下与松手时加入延时判断,以检测键盘是否真的按下或已完全松手。

数码管不能正确的显示,主要是因为所以数码管的段码都由P0口传送,而数码管显示又采用了动态扫描的方式,但在程序中却没有设置显示段码的暂存器,导致当P0口传送段码时发生混乱,不能正确识别段码。

应在系统中加入锁存器,或是在程序中设定存储段码的空间。

在键盘加入了消抖程序,数码管显示程序中加入了段码的存储空间后,数码管能够正常的显示,按键也能够工作,达到了较好的效果。

温度程序调试:

在温度转换程序中,为了能够正确的检测并显示温度的小数位,程序中把检测的温度与10相乘后,再按一个三位的整数来处理。

如把24.5变为245来处理,这样为程序的编写带来了方便。

电机调速电路调试:

在本设计中,采用了达林顿反向驱动器ULN2803驱动直流电机。

软件设置了P1.2口输出不同的PWM波形,通过达林顿反向驱动器ULN2803驱动直流电机转动,通过软件中程序设定,根据不同温度输出不同的PWM波,从而得到不同的占空比控制风扇直流电机。

程序实现了P1.2口的PWM波形输出,当外界温度低于设置温度时,电机不转动或自动停止转动;当外界温度高于设置温度时,电机的转速升高或是自动开始转动,且外界温度与设置温度的差值越大,电机转速越高,即占空比增加。

 

5.2.2硬件部分的调试

(1)数码管显示模块的硬件调试

(2)声光报警器模块的硬件调试

(3)电机风扇调速电路模块的硬件调试

(4)独立键盘模块硬件调试

(5)温度检测模块硬件调试

5.3电路总图:

图5-3电路总图

 

结论

本次设计的系统以单片机为控制核心,以温度传感器DS18B20检测环境温度,实现了根据环境温度变化调节不同的风扇电机转速,在一定围能能实现转速的连续调节,LED数码管能连续稳定的显示环境温度和设置温度,并能通过两个独立按键调节不同的设置温度,从而改变环境温度与设置温度的差值,进而改变电机转速。

实现了基于单片机的温控风扇的设计。

本系统设计可推广到各种电动机的控制系统中,实现电动机的转速调节。

在生产生活中,本系统可用于简单的日常风扇的智能控制,为生活带来便利;在工业生产中,可以改变不同的输入信号,实现对不同信号输入控制电机的转速,进而实现生产自动化,如在电力系统中可以根据不同的负荷达到不同的电压信号,再由电压信号调节不同的发电机转速,进而调节发电量,实现电力系统的自动化调节。

综上所述,该系统的设计和研究在社会生产和生活中具有重要地位。

 

参考文献

[1]学龙.使用单片机控制的智能遥控电风扇控制器[J].电子电路制作,2003,9:

13—15.

[2]蓝厚荣.单片机的PWM控制技术[J].工业控制计算机.2010,23(3):

97—98

[3]钢,彦峰.1-Wire总线数字温度传感器DSI8B20原理与应用[J].现代电子技术,2005,28(21):

77—79.

[4]王文海,周欢喜.用Proteus实现51单片机的动态仿真调试[J].IT技术,2006,20:

10—11

附录:

程序代码:

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitDQ=P3^7;

sbitkey1=P1^6;

sbitkey2=P1^7;

sbitled=P1^3;

sbitalarm=P1^5;

sbitpwm=P1^2;

bdatauchardat;

sbitdat0=dat^0;

sbitdat7=dat^7;

ucharshi,ge,xiaoshu,sheding=20,gao,di,count,tcount;

uchardp[16]={0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9};

ucharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

uchardispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

uchardbuf[5]={0,0,0,0,0};

voiddmsec(uintcount)

{

uinti;//1ms延时

while(count--)

{

for(i=0;i<125;i++){}

}

}

voiddelay15(ucharn)//15us

{do{

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

n--;

}while(n);

}

voiddigitalshow(uchara4,a3,a2,a1,a0)

{

dbuf[3]=a0;

dbuf[4]=a1;

dbuf[0]=a2;

dbuf[1]=a3;

dbuf[2]=a4;

P2=0xff;

P0=dispcode[dbuf[3]];

P2=dispbitcode[5];

delay15(20);

P2=0xff;

P0=dispcode[dbuf[4]];

P2=dispbitcode[4];

delay15(20);

P2=0xff;

P0=dispcode[dbuf[0]];

P2=dispbitcode[2];

delay15(20);

P2=0xff;

P0=dispcode[dbuf[1]];

P0=P0|0x80;

P2=dispbitcode[1];

delay15(20);

P2=0xff;

P0=dispcode[dbuf[2]];

P2=dispbitcode[0];

delay15(20);

P2=0xff;

}

bitreset(void)

{biterr;

DQ=0;

delay15(40);

DQ=1;

delay15(4);

err=DQ;

delay15(18);

return(err);

}

voidwbyte(uchard)

{uchari;

dat=d;

for(i=8;i>0;i--)

{DQ=0;

delay15

(1);

DQ=dat0;

dat=dat>>1;

delay15

(1);

DQ=1;

}

}

ucharrbyte(void)

{uchari;

dat=0;

for(i=8;i>0;i--)

{dat=dat>>1;

DQ=0;

_nop_

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

当前位置:首页 > 工程科技 > 能源化工

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

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