智能风扇采用单片机at89c51控制系统初稿本科学位论文.docx

上传人:b****6 文档编号:5291921 上传时间:2022-12-14 格式:DOCX 页数:29 大小:362.90KB
下载 相关 举报
智能风扇采用单片机at89c51控制系统初稿本科学位论文.docx_第1页
第1页 / 共29页
智能风扇采用单片机at89c51控制系统初稿本科学位论文.docx_第2页
第2页 / 共29页
智能风扇采用单片机at89c51控制系统初稿本科学位论文.docx_第3页
第3页 / 共29页
智能风扇采用单片机at89c51控制系统初稿本科学位论文.docx_第4页
第4页 / 共29页
智能风扇采用单片机at89c51控制系统初稿本科学位论文.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

智能风扇采用单片机at89c51控制系统初稿本科学位论文.docx

《智能风扇采用单片机at89c51控制系统初稿本科学位论文.docx》由会员分享,可在线阅读,更多相关《智能风扇采用单片机at89c51控制系统初稿本科学位论文.docx(29页珍藏版)》请在冰豆网上搜索。

智能风扇采用单片机at89c51控制系统初稿本科学位论文.docx

智能风扇采用单片机at89c51控制系统初稿本科学位论文

摘要

电风扇是夏天给人们降温的非常好的家用电器,智能风扇就是能根据温度的改变,风扇转速随之改变,现在的风扇很难做到这一点,只有人为的几档调速。

夏夜温度下降后人们容易因熟睡而受凉,当温度升高时,它又不能根据温度的变化改变转速。

本设计智能风扇采用单片机AT89C51作为控制系统的核心,使用温度传感器DS18B20进行当前的温度采集,利用PWM脉冲宽23度调制技术进行实时调速,并通过LED数码管显示当前温度。

关键词:

单片机;温度传感器;风扇;PWM;

DesignofSmartFanBasedonSingleChipMicrocomputer

Abstract

Fanisverygoodforpeoplecoolingappliancesinthesummer.SmartFanisaccordingtochangesintemperature,andfanspeedchanges.Nowthefanisdifficulttodothis,onlyafewartificialstallspeed.

ThedesignofthefancontrolsystemusesAT89C51microcontroller,theindoortemperaturesensorDS18B20temperatureacquisition,usePWMpulsewidthmodulationtechnologyforreal-timecontrol,anddisplaysthecurrenttemperaturethroughtheLEDdigitaltube.

KeyWords:

Microcontroller;TemperatureSensors;Fan;

 

第一章绪论3

1.1引言3

1.2发展现状与应用领域3

1.3本次设计的主要任务和内容4

第二章方案论证5

2.1控制核心的选择5

2.2调速方式的选择5

2.3温度传感器的选择6

2.4显示电路的选择7

第三章主要原件的介绍7

3.1AT89C51简介7

3.2DS18B20简介9

3.3四位共阳极数码管11

第四章系统主要硬件电路设计12

4.1DS18B20的工作原理及其单片机的接口电路12

4.2风扇PWM调速原理及其单片机接口电路14

4.3晶振及复位电路设计15

4.4数码显示电路16

4.5按键连接电路17

第五章软件设计18

5.1程序设置18

第六章系统调试19

6.1软件调试20

6.1.1按键显示部分的调试20

6.1.2传感器DS18B20温度采集部分调试20

6.1.3电动机调速电路部分调试21

6.2硬件调试21

6.2.1传感器DS18B20温度采集部分调试21

6.2.2电动机调速电路部分调试21

6.3系统功能21

6.3.1系统实现的功能22

6.3.2系统功能分析22

总结23

谢辞23

参考文献24

附录25

附录一:

电路原理图25

附录二:

源程序25

第一章绪论

1.1引言

在现实生活中,咱们总是要运用一些降温设施。

虽然如今不少城市家庭都用空调设备作为降温工具,但在大部分乡村家庭电风扇依旧是作为夏季降温的主要工具。

春夏或是夏秋交替时节,早晚温差较大,白昼温度较高,风扇应该转动的较快,这样才可以让人感到凉爽。

到了夜间,气温降落很多,当人们入睡之后,风扇的转速应慢慢减下来,避免感冒。

尽管如今的风扇有多个档位可以调节,但都必须由人工来换挡,在人们酣睡以后就无能为力了。

针对这个问题我们现在普遍采用定时的办法,但采用定时的方法普遍只能定时两个多小时,如果在这两个多小时里温度没有变化很大,人们就会感到酷热醒过来去打开风扇,这样就影响了人们的睡眠质量。

从以上 剖析可知,须要设计出一种智能化的电风扇来解决这个问题。

本设计的控制核心采用单片机AT89C51,当前环境温度通过温度传感器18B20来采集。

实时温度通过LED数码管来显示,并依据温度传感器检测到的当前环境温度,输出相应占空比的PWM脉冲信号,进而调节风扇不同的转速。

1.2发展现状与应用领域

虽然作为一种老式家电,电风扇曾一度被认为是空调冲击下的淘汰品;但电风扇具备摆放便利、体积轻巧、价格便宜等优势。

我国对电风扇的优化研究是很积极的,由于大部分家庭受消费水平的限制,作为成熟的家电产业中一员的电风扇,在中国还是具有很广阔市场的,智能电风扇已经投入市场,目前这方面的技术已经成熟。

下一阶段的研究将是使其愈加人性化,更好的满足不同群体的人的需求。

根据不同人群的不同需要,美的等家电企业也相继推出了大厦扇和学生扇等智能化电风扇产品。

国外和我国在电器研究方面比较起来,前者对电风扇的研究并不是很踊跃,但是国外在智能化电器领域却比我国更加先进。

“智能化电器”包含三个层次:

智能化磁力启动器、智能化接触器、和智能化断路器等是智能化的电器元件,智能化开关柜:

多台断路器;智能化供配电系统:

用电设备与供电系统的控制的控制关系十分密切。

增强网络性能,最大程度地提升配电系统和用电设备的自动化水平是这两个层次上的智能化任务的重点

采用可编程器件及微处理器,大量功能通过“以软代硬”来实现,并拥有“现场”设计的能力并充分增强智能化电器元件的“柔性”与适应性。

是新型智能化电器元件的发展趋势。

例如一种采用FPGA器件构成的专用功能集成电路已被投入了使用。

随着温度控制技术的发展,为了使电风扇愈加人性化以及节省电能等,温度控制风扇越来越受到青睐并被广泛的应用。

温控风扇系统之所以能很好的节约电能是因为能根据当前的环境温度去自动开通、关闭电风扇并能控制电风扇的转速,这样也方便用户们的使用更具人性化。

并且温控风扇系统在工业生产、日常生活中都有宽泛的使用,如在工业生产中大型机械设备的散热系统,或限制笔记本电脑上的智能CPU风扇等基于单片机的温控风扇都能够根据环境温度的高低自动启动或停止转动,并能够按照温度的变化完成转速的自动调节,在现实生活中具非常广泛的用途,因此它的设计具有一定的价值意义

1.3本次设计的主要任务和内容

本设计的主要控制核心是AT8951单片机,温度传感器采集到的数据处理通过51单片机来完成,并且电风扇的各种工作状态是通过各种电子元器件对其进行实时控制的,进而满足用户的需要。

本次设计主要完成以下内容:

(1)可根据当前环境温度和预设温度自动调节风扇转速,当前温度大于预设温度上限,风扇转速较高;小于预设温度上限,大于预设温度下限风扇转速较低;小于预设温度下限风扇自动关闭。

(2)预设温度可通过按键增加或减少,三个按键。

第一个为功能键按第一下显示温度上限可对温度上限进行设置,按第二下显示温度下限可对温度下限进行设置,按第三下显示环境温度。

第二个键为温度设置加键,按一下加五度。

第三个键为温度减键,按一下温度减一。

(3)能够实现对风扇转速的手自动控制。

(4)自动模式下,通过对温度信号的检测,完成对风扇转速的智能控制。

(5)数码管可以对环境温度进行显示,并显示风扇档位。

第二章方案论证

2.1控制核心的选择

方案一:

采用单片机作为控制核心。

在本设计中采用AT89C51单片机,通过编程的方法来完成对温度的实时采集,在其I/O口输出相应的控制信号控制风扇的转速。

单片机AT89C51工作电压相对较低,单片内含有4k字节的ROM和256字节的RAM,并且价钱也相对低廉。

方案二:

采用电压比较电路作为控制执行部件。

将采集到的温度信号转变为电信号然后经放大电路放大,通过集成运算放大器组成的比较电路的判断决定电风扇的转动速度。

对于方案一,用单片机AT89C51作为控制器件,单片机经过读取ds18b20当前温度程序和显示温度程序将温度传感器DS18B20检测到的环境温度通过LED数码管显示出来,并且单片机的外部按键可以通过按键扫描程序对预设的温度上下限初值进行增大或者减小,同时对于设计中所要实现的功能采用单片机的软件编程更容易实现,成本低,所以以单片机AT89C51为控制核心,适合本次设计。

对于AT89C51的具体参数参见下面“主要元件介绍”中的各器件介绍。

对于方案二,控制核心采用电压比较电路的方案,虽然该方案电路比较简单、易于实现,但预设温度的初值不能进行更改,无法满足不同用户的使用需求,因此本次设计不采纳这个方案。

2.2调速方式的选择

方案一:

采用变压器调速方式,将市电220v交流电压通过线圈降压到不同的数值然后通过把电风扇电机接到不同电压值的线圈上来完成对直流电机转速的控制。

方案二:

采用单片机的PWM软件编程方式来调速。

PWM是英文PulseWidthModulation的简写形式,它的文意思是脉冲宽度调制。

PWM是一种按某种规律变化的脉冲方波,在PWM驱动的直流电机的调节控制系统当中,最常用的是矩形PWM脉冲信号波,也是编写程序比较简单的。

在对直流电机的转速进行调节时,需要根据当前温度来输出相应占空比的PWM脉冲。

PWM脉冲的占空比指的是高电平的时间在一个周期时间内的所占的百分比,若全为低电平,占空比为零,风扇不转;若全为高电平,占空比为100%,转速达到最大。

用单片机输出PWM脉冲信号时,有如下两种方法:

(1)利用软件延时。

可以利用编程软件控制单片机P1.0口高低电平的时间实现不同占空比的PWM脉冲的输出,利用赋值的方法对单片机输出的电平进行高低转换,从而实现风扇的调速,本设计采用该方法。

设计不同占空比的PWM脉冲的思路是:

假设采用1S的周期方波,以50MS为基准;则20个基准便就是一个1S,那么当其中10个连续的50MS的高电平脉冲,然后10连续的50MS低电平脉冲,便得到了占空比为50%的PWM方波信号。

(2)利用单片机自带的PWM功能。

但本次设计所用得AT89C51单片机没有这种功能,只有STC系列的才有,故不可行。

对于方案一,该方案可以对直流风扇进行调速,但调节不是非常方便,而且利用变压器来改变电压,不能适应人性化要求。

对于方案二,采用PWM脉冲调制的编程软件方法来实现对直流电机的实时调速,具有很大的灵活性,并且可以更充分地发挥单片机的功能,综合考虑选用方案二。

2.3温度传感器的选择

方案一:

检测温度的元器件采用热电偶,并与适当的外围电路相配合,由单片机AT89C51将检测到的温度信号进行处理。

方案二:

检测温度的元器件采用热敏电阻,采集的信号经过运算放大器放大,由于热敏电阻的阻值的变化是由温度变化会引起、进而可以得到输出电压变化的信号。

方案三:

检测温度的元器件采用高精度集成温度传感器DS18B20,单片机可处理直接输出的数字温度信号。

对于方案一,检测元器件采用热电偶,它检测的温度范围非常宽,-50摄氏度到1600摄氏度都能检测,但是电路设计非常复杂,故本设计不采用该方案。

对于方案二,虽然热敏电阻价格相对来说较为便宜、元器件也比较容易买到,但是对温度的变化感应敏感度不强,在检测温度信号时,有可能会产生失真和误差,故本设计不采用这个方案。

对于方案三,由于温度传感器DS18B20的集成度很高,所以大大减少了外接电路,从而检测误差也会小很多,DS18B20检测温度的原理与前面两种方案检测温度的原理有着很大的不同。

其检测到的温度值能直接送入单片机处理,不用编写较多的转换程序,简化了程序的编写,且只需用一根线便可与单片机相连,接口也相当简单,本次设计采用该方案。

关于DS18B20的详细参数参看下面的器件介绍。

2.4显示电路的选择

方案一:

采用四位共阳极数码管显示温度,动态扫描显示方式。

方案二:

采用液晶显示屏LCD显示温度

对于方案一来说数码管的优势是显示温度明亮醒目,在夜间也能看见并且成本低廉,显示驱动程序的编写也较为简单,功耗也较低,这种显示方式得到了广泛应用。

不足的地方是数码管显示时会有闪烁,因为扫描显示的方式是使四个LED逐个点亮.但是可以通过增大扫描的频率来消除闪烁感,因为人眼的视觉暂留时间为20MS,当数码管扫描周期小于这个时间时人眼将感觉不出闪烁,。

对于方案二,液晶显示屏的优势是能显示字符甚至图形还能显示数字,显示屏显示字符优美,这是LED数码管所无法比拟的。

但是液晶显示驱动程序较复杂,模块价格较贵,从简单实用的原则考虑,本系统采用方案一。

第三章主要原件的介绍

系统主要器件包括DS18B20温度传感器、AT89C51单片机、四位LED共阳数码管、风扇。

辅助元件包括电阻、电容、晶振、电源、按键、开关等。

3.1AT89C51简介

AT89C51是由美国ATMEL公司生产的一款低电压单片机,兼容MCS-51指令,内部含有256字节的RAM和4K字节的ROM。

其含有Flash存储单元,功能十分强大,并且中央处理器是8位的。

AT89C51单片机具有以下标准的功能:

一个8位CPU频率范围是1.2-12MHZ,4K字节的Flash闪存,256字节的内部数据存储器RAM,4个8位并行的I/O口,一个全双工的串行口,2个16位的定时/计数器,5个中断源的中断控制系统,片内自带振荡器和时钟电路。

AT89C51单片机管脚图如3.3所示:

图3.3AT89C51单片机

各管脚功能如下[8]:

VCC:

40引脚接5V供电电压。

GND:

20引脚接地。

XTAL1:

19引脚外接微调电容和石英晶体,为单片机提供外部时钟信号。

XTAL2:

18引脚外接微调电容和石英晶体,为单片机提供外部时钟信号。

P0口:

P0.7~P0.0,这组引脚一共有8个,其中P0.0为最低位,P0.7为最高位。

是漏极开路的8位准双向I/O口,有两种功能。

第一:

做通用I/O口,无片外内存时,P0口可做通用I/O接口使用。

第二:

做地址/数据口,在访问外部内存时,用作地址总线的低8位和数据总线。

P1口:

P1.7~P1.0,其中P1.0为最低位,P1.7为最高位,仅用作I/O口。

P2口:

P2.7~P2.0,其中P2.0为最低位,P2.7为最高位。

P2口是带内部上拉电阻的8位准双向I/O接口,具有两种功能。

第一:

做通用I/O口,无片外内存时,P2口可用作通用I/O口。

第二:

做地址口,在访问外部内存时,用作地址总线的高8位。

P3口:

P3.7~P3.0,其中P3.7为最高位,P3.0为最低位。

P3口是双功能口。

具有两种功能。

第一:

用作通用I/O口。

第二功能:

P3.0RXD串行口输入;P3.1TXD串行口输出;P3.2INTO外部中断0输入;P3.3INT1外部中断1输入;P3.4T0定时计数器的脉冲输入;P3.5T1定时计数器的脉冲输入;P3.6WR片外RAM写信号;P3.4RD片外RAM读信号。

RST:

9引脚复位输入,高电平有效。

29引脚外部程序内存读信号。

通常接EPROM的OE端,当访问外部程序内存时,此脚会定时输出脉冲信号作为读片外程序内存的选通信号。

端在每个机器周期中两次有效,但当访问外部RAM时,两次

负脉冲不出现。

可驱动8个LS型TTL。

ALE/

30引脚地址锁存编程/允许线,当单片机访问片外存储器时,在P0.0~P0.7引脚线上输出ALE/

线上输出一个高电位脉冲的同时还在片外存储器低8位地址,其下降沿的作用是把这个片外存储器低8位地址锁存到外部专用地址锁存器。

/VPP:

31引脚内外部程序内存选择输入端。

=1,CPU访问片外ROM,并执行其指令。

当PC>0FFFH时,自动转向片外ROM。

=0,不论片内是否含有内存,只执行片外ROM的指令。

3.2DS18B20简介

DS18B20内部结构主要有四个部分:

配置寄存器、非挥发的报警触发器TH和TL、64位的只读程序存储器ROM、温度传感器。

总共有三个管脚,包含DQ,GND,VDD。

其中DQ为数字信号端,GND为电源地,VDD为电源输入端。

DS18B20的主要性能特点如下:

(1)仅可用一个端口便可以通信;

(2)无须外部器件;

(3)DS18B20支持多点组网功能;

(4)适应电压范围广,电压范围为3.0~5.5V;

(5)待机功耗为零;

(6)温度以9位或12位数字;

(7)具有报警命令识别功能;

(8)具有负电压特性,电源接反时,芯片不会烧坏;

DS18B20的管脚图及部分温度值与DS18B20输出的数字量对照表见图

3.5和表3-1所示:

图3.5DS18B20温度传感器

 

表3-1部分温度值与DS18B20输出的数字量对照

温度值/℃数字输出(二进制)数字输出(十六进制)

+125000001111101000007D0H

+8500000101010100000550H

+25.62500000001100100010191H

+10.125000000001010001000A2H

+0.500000000000010000008H

000000000000000000000H

-0.51111111111111000FFF8H

-10.1251111111101101110FF5EH

-25.6251111111101101111FF6FH

-551111110010010000FC90H

3.3四位共阳极数码管

四位共阳极数码管,位控制端(1-4)给高电平使能相应的位,笔段控制端(A-B、DP.)给低电平可点亮。

第四章系统主要硬件电路设计

本次设计的思路:

本次设计采用AT89C51单片机为控制核心,当前温度利用温度传感器DS18B20采集并送入单片机处理,单片机根据预设温度与当前温度的比较决定是否开启风扇和风扇转速,并通过四位共阳极LED数码管显示风扇档位和当前环境温度。

当前温度高于预设温度上限,风扇工作在高档位2档;低于预设温度上限高于预设温度下限时风扇工作在低档位1档;当前温度低于预设温度下限风扇停止转动0档。

单片机根据当前的温度输出相应占空比的PWM脉冲,送入5V的直流电机,从而产生不同转速。

复位方式是:

上电自动复位,没有复位按键。

系统总体设计图如图3.1所示。

 

AT89C51

温度、档位显示

键盘功能输入

电机调速

数字温度传感器

 

图3.1系统总体设计结构图

4.1DS18B20的工作原理及其单片机的接口电路

DS18B20内部结构如图3-1所示,主要由4部分组成:

64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

其管脚排列如图3-2所示,DQ为数字信号端,GND为电源地,VDD为电源输入端。

图4-1DS18B20内部结构图

图3-2DS18B20外形及管脚

因为DS18B20只有一根数据线。

所以它和单片机的通信是需要串行通信,由于AT89C51有两个串行端口,所以可以不用软件来模拟实现。

通过单线接口访问DS18B20必须遵循如下协议:

初始化、ROM操作命令、存储器操作命令和控制操作。

要使传感器工作,一切处理必须从序列开始。

单片机发送(Tx)--复位脉冲(最短为480μs的低电平信号)。

接着单片机便释放数据线线并进入接收方式(Rx)。

经过4.7K的上拉电阻总线被拉至高电平状态。

在检测到I/O引脚上的上升沿信号之后,DS18B20需要等待15-60μs,然后接着发送脉冲信号(60-240μs的低电平信号)。

并且以存在复位脉冲表示DS18B20已经准备好了发送或接收,然后给出正确的ROM命令和存储操作命令的数据。

DS18B20通过使用时间片进行写入和读出数据的操作,时间片被用来处理数据位和进行何种指定操作。

它有写时间片和读时间片两种。

写时间片:

当单片机把数据线从逻辑高电平拉至逻辑低电平时,产生写时间片。

有两种类型的写时间片:

写1时间片和写0时间片。

所有时间片需要有60微秒的持续期,在各个写周期之间必须要保持最短为1微秒的恢复时间。

读时间片:

在从DS18B20读数据时,使用读时间片。

当单片机把数据线从逻辑高电平拉至逻辑低电平时产生读时间片。

数据线在逻辑低电平必须保持至少1微秒的时间;来自温度传感器DS18B20的输出数据在时间下降沿之后的15微秒内有效。

为了使单片机读出从读时间片开始算起15微秒的状态,其必须停止把引脚驱动拉至低电平状态。

在时间片结束之后,I/O引脚通过外部的上拉电阻拉回至高电平状态,所有读时间片的最短保持时间为60微秒,包括两个读周期间至少要有1μs的恢复时间。

一旦主机检测到DS18B20的存在,它便会发送一个器件ROM操作命令。

所有的ROM操作命令均为8位长。

图3-3DS18B20与单片机接口电路

 

4.2风扇PWM调速原理及其单片机接口电路

我们采用的是PWM来实现直流电动机的调速,优点:

控制原理简单,输出波动小,线性好,对邻近电路干扰小。

缺点:

功率低,散热问题严重。

PWM调速原理:

输出电压

(2-1)

(2-2)

式2-1中

称为占空比。

占空比D表示了在一个周期T里开关管导通的时间与周期的比值。

D的变化范围为0<=D<=1。

当在电源电压U不变的情状态下,输出的平均电压取决于占空比D的大小,改变D值也就可以改变输出电压的平均值了,进而可以达到控制直流电机转速的目的,也就实现了PWM调速。

风扇驱动电路核心元件由两个三级管组成。

Q1为NPN型三极管8050,基极高电平有效;Q2为PNP型三极管8550,基极低电平有效。

R3、R4是限流电阻,R5是上拉电阻。

当外界温度高于预设温度上限时,P1.0输出较高电平令Q1导通,当Q1导通电流较大时Q2基极会产生低电平使Q2导通大幅度导通风扇转速较快。

当外界温度低于预设温度上限高于预设温度下限时,P1.0会根据程序占空比输出一个间断的高电平,使风扇转速较慢。

当外界温度低于预设温度下限时,占空比为零,风扇停止转动。

4.3晶振及复位电路设计

单片机工作时需要时钟信号,时钟信号通常可由外部方式或者单片机的内部方式提供。

本次设计采用内部时钟方式,利用单片机内部自带的反相放大器,XTAL2为放大器的输出端,XTAL1为放大器的输入端,这两个引脚外接石英晶体振荡器和微电容,构成可以自激的振荡器。

本设计在XTAL1和XTAL2外接了一个12MHZ的晶振,22pf的电容[9]。

复位是使单片机回复到初使的状态,就跟计算机的重启差不多,并从初始状态从新工作。

单片机是高电平复位,一般有两种方式:

按键复位和上电复位,两种复位方式均可。

本次设计采用上电复位,当系统上电时,系统复位一次,电阻R1为10k。

其时钟电路与复位电路如图3.4所示:

4.4数码显示电路

显示电路部分包括4个共阳极七段数码管,PNP型晶体管,电阻器等。

提供段选数据的方式是用单片机的P0端口连接共阳极数码管的七位数据端,通过用单片机的P2端口的P2.0—P2.3连接数码管的片选端来提供片选信号输出,用8550(PNP型)三极管搭建驱动电路驱动来驱动数码管显示的显示电路。

因为P0口内部没有上拉电阻,所以需要在P0接一个10K的排阻到电源。

通过P0口把要显示的数据送给数码管进行点亮,并且通过P2.0—P2.3四个端口轮流打开数

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

当前位置:首页 > 高等教育 > 院校资料

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

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