毕业设计(论文)-基于单片机的智能风扇控制系统设计.doc_第1页
毕业设计(论文)-基于单片机的智能风扇控制系统设计.doc_第2页
毕业设计(论文)-基于单片机的智能风扇控制系统设计.doc_第3页
毕业设计(论文)-基于单片机的智能风扇控制系统设计.doc_第4页
毕业设计(论文)-基于单片机的智能风扇控制系统设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要电风扇是夏天给人们降温的非常好的家用电器,智能风扇就是能根据温度的改变,风扇转速随之改变,现在的风扇很难做到这一点,只有人为的几档调速。夏夜温度下降后人们容易因熟睡而受凉,当温度升高时,它又不能根据温度的变化改变转速。本设计智能风扇采用单片机AT89C51作为控制系统的核心,使用温度传感器DS18B20进行当前的温度采集,利用PWM脉冲宽度调制技术进行实时调速,并通过LED数码管显示当前温度。关键词:单片机;温度传感器;风扇; PWM;Design of Smart Fan Based on Single Chip MicrocomputerAbstractFan is very good for people cooling appliances in the summer. Smart Fan is according to changes in temperature, and fan speed changes. Now the fan is difficult to do this, only a few artificial stall speed. The design of the fan control system uses AT89C51 microcontroller , the indoor temperature sensor DS18B20 temperature acquisition, use PWM pulse width modulation technology for real-time control, and displays the current temperature through the LED digital tube. Key Words: Microcontroller;Temperature Sensors;Fan;第一章 绪 论31.1引言31.2 发展现状与应用领域41.3 本次设计的主要任务和内容5第二章 方案论证62.1 控制核心的选择62.2 调速方式的选择62.3 温度传感器的选择72.4 显示电路的选择8第三章 主要原件的介绍83.1 AT89C51简介83.2 DS18B20简介103.3四位共阳极数码管12第四章 系统主要硬件电路设计134.1 DS18B20的工作原理及其单片机的接口电路134.2 风扇PWM调速原理及其单片机接口电路154.3晶振及复位电路设计164.4 数码显示电路174.5按键连接电路18第五章 软件设计195.1 程序设置19第六章 系统调试196.1 软件调试196.1.1 按键显示部分的调试206.1.2 传感器DS18B20温度采集部分调试206.1.3 电动机调速电路部分调试206.2 硬件调试206.2.1 传感器DS18B20温度采集部分调试216.2.2电动机调速电路部分调试216.3 系统功能216.3.1 系统实现的功能216.3.2 系统功能分析21总 结22谢 辞23参考文献23附录24附录一:电路原理图24附录二:源程序24第一章 绪 论1.1引言在现实生活中,我们要经常使用一些降温设备。虽然现在不少城市家庭都用空调设备作为降温工具,但在大部分农村家庭风扇仍然是作为夏季降温的主要工具。春夏或者夏秋交替季节,早晚温差比较大,白天温度很高,风扇应该转动的比较快,这样才能给人带来凉爽。到了晚上,气温下降的很多,当人们入睡后,风扇的转动速度应慢慢减下来,防止感冒。虽然现在的风扇有不同的档位可以调节,但都必须人工来换挡,当人们熟睡时就无能为力了。尽管现在普遍采用定时的方式解决这个问题,但定时时间有限,一般最多只有两个小时,在这两个小时内温度并不一定就会下降的很多,风扇关闭后,人们可能就会因为炎热再次醒来开启电扇,这样会使人的睡眠质量大大降低。从以上的分析可知,需要设计出一种很智能化的电风扇来解决。本设计用单片机作为控制核心,用温度传感器采集当前温度,LED数码管显示实时温度,并根据当前检测到的温度,输出不同占空比的PWM脉冲信号,从而风扇实现了不同的转速。1.2 发展现状与应用领域当今社会已经完全进入了电子信息化,温度控制器在各行各业中已经得到了充分的利用。具有对温度进行实时监控的功能,以保证工业仪器,测量工具,农业种植的正常运作,它的最大特点是能实时监控周围温度的高低,并能同时控制电机运作来改变温度。它的广泛应用和普及给人们的日常生活带来了方便。简易温度监测控制器是利用单片机系统来完成的一个小型的控制系统。现阶段运用与国内大部分家庭,系统效率越来越高,成本也越来越低。其发展趋势可以根据其性质进行相应的改进可以运用与不同场合的温度监测控制,并带来大量的经济效益。它广泛应用于城市、农村、各种工业生产,在一定情况下亦适用于太阳能、锅炉及对温度敏感的产业的自动控制和温度报警,是实现无人值守的理想产品,市场极为广阔,需求量大。并且使用寿命长,适用范围广,安装极其容易。1.3 本次设计的主要任务和内容 本设计是以AT8951单片机为主要控制核心,利用51单片机对温度传感器采集到的数据进行处理,并且通过各种电子元器件对电风扇各种工作状态进行实时控制,从而可以达到用户的要求。本次设计主要完成以下内容:(1)可根据预设温度自动调节风扇转速,当当前温度大于预设温度上限,风扇转速较高;小于预设温度上限,大于预设温度下限风扇转速较低;小于预设温度下限风扇自动关闭。 (2) 预设温度可通过按键增加或减少,三个按键。第一个为功能键按第一下显示温度上限设置,按第二下显示温度下限设置,按第三下显示环境温度。第二个键为温度设置加键,按一下加五度。第三个键为温度减键,按一下温度减一。 (3) 可以实现对风扇转速的手自动控制。 (4)自动模式下,通过对温度信号的检测,实现对风扇转速的智能控制。 (5) 数码管可以对环境温度进行显示,并显示风扇档位。第二章 方案论证2.1 控制核心的选择 方案一:采用单片机作为主要控制芯片。在本设计中采用AT89C51单片机,通过软件编程的方法来实现对温度的实时采集和控制,在其I/O口输出相应的控制信号。单片机AT89C51工作电压相对比较低,单片内含有4k字节的ROM和256字节的RAM,并且价格也相对较便宜。方案二:采用电压比较电路作为控制执行部件。将采集到的温度信号转换为电信号并经放大电路放大,集成运算放大器组成的比较电路来判断决定电风扇的转动速度。对于方案一,用单片机作为控制器件,通过简单的程序编写可以将温度传感器DS18B20检测的温度通过LED数码管显示出来,而且可以通过按键扫描程序通过单片机的外部按键对预设的初值进行增加或者减少,同时对于驱蚊功能采用单片机的软件编程更易实现,成本低,故以单片机AT89C51为控制核心,适合本次设计。对于AT89C51的具体参数参见下面“硬件设计”中的各器件介绍。对于方案二,采用电压比较电路作为控制的核心,虽然电路比较简单、容易实现,但不能对预设温度的值进行更改,无法满足不同用户的需求,故本次设计不采用。2.2 调速方式的选择方案一:采用变压器调节方式,运用变压器原理将市电220V交流电压通过线圈降压到不同的值,电风扇电机接到不同电压值的线圈上就可以来控制直流电机的转速。方案二:采用单片机的PWM软件编程方式。PWM中文意思是脉冲宽度调制,英文意思是Pulse Width Modulation的简写形式,它是一种按某种规律变化的脉冲方波,在PWM驱动直流电机的调节控制系统当中,最常用的是矩形PWM脉冲波信号,也是编写程序最简单的。在对直流电机的转速进行控制时,需要根据当前温度来输出不同占空比的PWM脉冲。PWM脉冲的占空比是指高电平的时间在一个周期时间内的百分比,若全为低电平,占空比为零,风扇不转;若全为高电平,占空比为100%时,转速达到最大 4。用单片机输出PWM脉冲信号时,有如下两种方法:(1) 利用软件延时。可以利用单片机自带的定时器编程实现不同占空比的PWM脉冲的输出,利用中断程序对单片机输出的电平进行高低转换,从而实现风扇的调速,本设计采用该方法。设计不同占空比的PWM脉冲的思路是:假设采用1S的周期方波,以50MS为基准,则20个基准便就是一个1S,那么当其中4个连续的50MS的高电平脉冲,然后16连续的50MS低电平脉冲,便得到了占空比为20%的PWM方波信号。(2) 利用单片机自带的PWM功能。但本次设计所用得AT89C51单片机没有这种功能,只有STC系列的才有,故不可行。对于方案一,该方案可以对直流风扇进行调速,但调节不是很方便,而且采用变压器来改变电压,不能适应人性化要求。对于方案二,采用PWM 脉冲调制的纯软件的方法来实现对直流电机的实时调速,具有很大的灵活性,而且可以更充分地发挥单片机的功能,综合考虑选用方案二。2.3 温度传感器的选择 方案一:用热电偶来作为检测温度的元器件,配合适当的外围电路,将检测到的温度信号送入单片机AT89C51处理。方案二:用热敏电阻作为检测温度的元器件,经过运算放大器放大,由于温度变化会引起热敏电阻的电阻值发生相应的变化、便可以得到输出电压变化的信号。方案三:用高精度集成温度传感器DS18B20作为检测温度的元器件,直接输出数字温度信号给单片机处理5。对于方案一,采用热电偶作为检测元器件,其检测的温度范围非常宽,可检测-50摄氏度到1600摄氏度,但是电路设计比较复杂,故本设计不采用该方案。对于方案二,采用热敏电阻价格相对便宜、元器件也很容易买到,但热敏电阻对温度的变化不是很敏感,在检测温度信号的时候,还有可能产生失真和误差,故本设计不采用该方案。对于方案三,由于温度传感器DS18B20的集成度很高,大大减少了外接电路,从而检测误差也会变小很多,DS18B20检测温度的原理与前面两种方案的原理有着很大的不同。其检测到的温度值可以直接送入单片机处理,不用编写更多的转换程序,简化了程序的编写,且只用一根线便可与单片机相连,接口相当简单,本次设计采用该方案。关于DS18B20的详细参数参看下面“硬件设计”中的器件介绍。2.4 显示电路的选择方案一:采用四位共阳极数码管显示温度,动态扫描显示方式。方案二:采用液晶显示屏LCD显示温度对于方案一,该方案成本低廉,显示温度明确醒目,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。不足的地方是扫描显示方式是使四个LED逐个点亮,因此会有闪烁,但是人眼的视觉暂留时间为20MS,当数码管扫描周期小于这个时间时人眼将感觉不到闪烁,因此可以通过增大扫描频率来消除闪烁感。对于方案二,液晶体显示屏具有显示字符优美,不但能显示数字还能显示字符甚至图形的优点,这是LED数码管无法比拟的。但是液晶显示模块价格昂贵,驱动程序复杂,从简单实用的原则考虑,本系统采用方案一。第三章 主要原件的介绍系统主要器件包括DS18B20温度传感器、AT89C51单片机、四位LED共阳数码管、风扇。辅助元件包括电阻、电容、晶振、电源、按键、开关等。3.1 AT89C51简介AT89C51是美国ATMEL公司生产的低电压单片机,其含有4K字节的ROM和256字节的RAM,兼容MCS-51指令。其中央处理器是8位的,且含有Flash存储单元,功能非常强大。AT89C51单片机具有以下标准的功能:一个8位CPU频率范围1.2-12MHZ,4K字节Flash闪存,256字节内部数据存储器RAM,4个8位并行I/O口,一个全双工串行口,2个16位定时/计数器,5个中断源的中断控制系统,片内自带振荡器和时钟电路。AT89C51单片机管脚图如3.3所示: 图3.3 AT89C51单片机 各管脚功能如下8:VCC:40引脚接5V供电电压。GND:20引脚接地。XTAL1:19引脚为单片机提供外部时钟信号,外接石英晶体和微调电容。XTAL2:18引脚为单片机提供外部时钟信号,外接石英晶体和微调电容。P0口:P0.7P0.0,这组引脚共8条,其中P0.7为最高位,P0.0为最低位。是漏极开路的8位准双向I/O口,有两种功能。第一:做通用I/O口,无片外内存时,P0口可做通用I/O接口使用。第二:做地址/数据口,在访问外部内存时,用作地址总线的低8位和数据总线。P1口:P1.7P1.0,其中P1.7为最高位,P1.0为最低位,仅用作I/O口。P2口:P2.7P2.0,其中P2.7为最高位,P2.0为最低位。P2口是带内部上拉电阻的8位准双向I/O接口,具有两种功能。第一:做通用I/O口,无片外内存时,P2口可用作通用I/O口。第二:做地址口,在访问外部内存时,用作地址总线的高8位。P3 口:P3.7P3.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.7P0.0引脚线上输出片外存储器低8位地址的同时还在ALE/线上输出一个高电位脉冲,其下降沿用于把这个片外存储器低8位地址锁存到外部专用地址锁存器。/VPP:31引脚内外部程序内存选择输入端。=1,CPU访问片外ROM,并执行其指令。当PC0FFFH时,自动转向片外ROM。=0,不论片内是否含有内存,只执行片外ROM的指令。3.2 DS18B20简介DS18B20内部结构主要有四个部分:64位的只读程序存储器ROM、温度传感器、非挥发的报警触发器TH和TL、配置寄存器。总共有三个管脚,包含DQ,GND,VDD。其中DQ为数字信号端,GND为电源地,VDD为电源输入端。DS18B20的主要性能特点如下:(1) 仅可用一个端口便可以通信;(2) 无须外部器件;(3) DS18B20支持多点组网功能;(4) 适应电压范围广,电压范围为3.05.5V;(5) 待机功耗为零;(6) 温度以9位或12位数字;(7) 具有报警命令识别功能;(8) 具有负电压特性,电源接反时,芯片不会烧坏;DS18B20的管脚图及部分温度值与DS18B20输出的数字量对照表见图 3.5和表3-1所示: 图3.5 DS18B20温度传感器 表3-1 部分温度值与DS18B20输出的数字量对照温度值/ 数字输出(二进制) 数字输出(十六进制) +125 0000 0111 1101 0000 07D0H+85 0000 0101 0101 0000 0550H+25.625 0000 0001 1001 0001 0191H+10.125 0000 0000 1010 0010 00A2H+0.5 0000 0000 0000 1000 0008H0 0000 0000 0000 0000 0000H-0.5 1111 1111 1111 1000 FFF8H-10.125 1111 1111 0110 1110 FF5EH-25.625 1111 1111 0110 1111 FF6FH-55 1111 1100 1001 0000 FC90H3.3四位共阳极数码管四位共阳极数码管,位控制端(1-4)给高电平使能相应的位,笔段控制端(A-B、DP.)给低电平可点亮。第四章 系统主要硬件电路设计本次设计的思路:本次设计主要利用AT89C51单片机为控制核心,利用温度传感器DS18B20采集当前温度送入单片机处理,单片机根据当前温度与预设温度的比较决定是否开启风扇和风扇转速,并通过四位共阳极LED数码管显示当前温度和风扇档位。当前温度高于预设温度上限,风扇工作在高档位2档;低于预设温度上限高于预设温度下限时风扇工作在低档位1档;当前温度低于预设温度下限风扇停止转动0档。单片机根据当前的温度输出相应占空比的PWM脉冲,送入12V的直流电机,从而产生不同转速。复位方式是:上电自动复位,没有复位按键。系统总体设计图如图3.1所示。 AT89C51温度、档位显示键盘功能输入 电机调速 数字温度传感器图3.1 系统总体设计结构图4.1 DS18B20的工作原理及其单片机的接口电路 DS18B20 内部结构如图3-1所示,主要由4 部分组成:64 位ROM、温度传感器、非挥发的温度报警触发器TH 和TL、配置寄存器。其管脚排列如图3-2所示,DQ 为数字信号端,GND 为电源地,VDD 为电源输入端。 图4-1 DS18B20内部结构图 图3-2 DS18B20外形及管脚由于DS18B20只有一根数据线。因此它和主机(单片机)通信是需要串行通信,而AT89S51有两个串行端口,所以可以不用软件来模拟实现。经过单线接口访问DS18B20必须遵循如下协议:初始化、ROM操作命令、存储器操作命令和控制操作。要使传感器工作,一切处理均从序列开始。主机发送(Tx)-复位脉冲(最短为480s的低电平信号)。接着主机便释放此线并进入接收方式(Rx)。总线经过4.7K的上拉电阻被拉至高电平状态。在检测到I/O引脚上的上升沿之后,DS18B20等待15-60s,并且接着发送脉冲(60-240s的低电平信号)。然后以存在复位脉冲表示DS18B20已经准备好发送或接收,然后给出正确的ROM命令和存储操作命令的数据。DS18B20通过使用时间片来读出和写入数据,时间片用于处理数据位和进行何种指定操作的命令。它有写时间片和读时间片两种。写时间片:当主机把数据线从逻辑高电平拉至逻辑低电平时,产生写时间片。有两种类型的写时间片:写1时间片和写0时间片。所有时间片必须有60微秒的持续期,在各写周期之间必须有最短为1微秒的恢复时间。读时间片:从DS18B20读数据时,使用读时间片。当主机把数据线从逻辑高电平拉至逻辑低电平时产生读时间片。数据线在逻辑低电平必须保持至少1微秒;来自DS18B20的输出数据在时间下降沿之后的15微秒内有效。为了读出从读时间片开始算起15微秒的状态,主机必须停止把引脚驱动拉至低电平。在时间片结束时,I/O引脚经过外部的上拉电阻拉回高电平,所有读时间片的最短持续期为60微秒,包括两个读周期间至少1s的恢复时间。一旦主机检测到DS18B20的存在,它便可以发送一个器件ROM操作命令。所有ROM操作命令均为8位长。 图3-3 DS18B20与单片机接口电路4.2 风扇PWM调速原理及其单片机接口电路我们采用的是PWM来实现直流电动机的调速,优点:控制原理简单,输出波动小,线性好,对邻近电路干扰小。缺点:功率低,散热问题严重。PWM调速原理:输出电压 (2-1) (2-2)式2-1中称为占空比。占空比D表示了在一个周期T里开关管导通的时间与周期的比值。D的变化范围为0=D=1。当电源电压U不变的情况下,输出电压的平均值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.0P2.3连接数码管的片选端用来提供片选信号输,用8550(PNP型)三极管搭建驱动电路驱动来驱动数码管显示。因为P0口内部没有上拉电阻,所以在P0接一个10K的排阻到电源。通过P0口把要显示的数据通送给数码管,并且通过P2.0P2.3四个端口轮流打开数码管的位选通,由于每位数码管刷新显示的时间十分短(扫描周期在20ms左右)和人眼视觉暂留,所以我们基本看不出它的闪烁,而是固定同步显示各数据。4.5按键连接电路按键包括三个独立按键S1 S2和S3,一端与单片机的P3.1、P3.2和P3.3口连接,另一端接地,当按下任一键时,P3口读取低电平有效。系统上电后,进入按键扫描子程序,以查询的方式确定各按键,完成温度初值的设定。其中按键S1为设置键,可设置温度上下限值,第一次按下设置键设置温度上限值,第二按下设置键设置温度下限值,再按加减键就可以修改温度值。每按一次S2加键,系统对最初设定值加五,按键S3为减按键,每按下一次,系统对初定值进行减一计算。其连线图如图3-4所示。第五章 软件设计5.1 程序设置程序设计部分主要包括主程序、DS18B20初始化函数、DS18B20温度转换函数、温度读取函数、按键扫描函数、数码管显示函数、温度处理函数以及风扇电机控制函数。DS18B20初始化函数完成对DS18B20的初始化;DS18B20温度转换函数完成对环境温度的实时采集;温度读取函数完成主机对温度传感器数据的读取及数据换算,按键扫描函数则根据需要完成初值的加减设定;温度处理函数对采集到的温度进行分析处理,为电机转速的变化提供条件;风扇电机控制函数则根据温度的数值完成对电机转速及启停的控制。主程序流程图如图4-1所示。第六章 系统调试6.1 软件调试6.1.1 按键显示部分的调试起初根据设计编写的系统程序:程序的按键接口采用P3口,数码管现实采用P0控制LED的段码,P2口控制LED的位码,从而实现按键功能以及数码管的显示。经过编译没有出错,但在仿真调试时,数码管显示的只是乱码,没有正确的显示温度,按键功能也不灵的,当按键按下时,显示并不变化。经过查找分析,发现按键扫描程序没有按键消抖部分,按键在按下与松手时,都会有一定程序的抖动,从而可能使单片机做出错误的判断,导致按键条件预设温度时失灵,甚至根本不工作。因此必须在按键扫描程序中加入消抖部分,即在按键按下与松手时加入延时判断,以检测按键是否真的按下或已完全松手。数码管不能正确的显示,主要是因为所有数码管的段码都由P0口传送,而数码管显示又采用了动态扫描的方式,但在程序中却没有设置显示段码的暂存器,导致当P0口传送段码时发生混乱,不能正确识别段码。应在系统中加入锁存器,或是在程序中设定存储段码的空间。在按键加入了消抖程序,数码管显示程序中加入了段码的存储空间后,数码管能够正常的显示,按键也能正常的工作,达到了较好的效果。6.1.2 传感器DS18B20温度采集部分调试由于数字式集成温度传感器DS18B20的高度集成化,为软件的设计和调试带来了极大的方便,体积小、低功耗、高精度为控制电机的精度和稳定提供了可能。软件设计采用了P1.2口为数字温度输入口,但是需要对输入的数字信号进行处理后才能显示,从而多了温度转换程序。通过软件设计,实现了对环境温度的连续检测,由于硬件LED个数的限制,只显示了预设温度和环境温度的整数部分。6.1.3 电动机调速电路部分调试本设计中,采用了两个三极管为核心的驱动电路驱动直流电机,本系统仅驱动一个。软件设置了P1.0口输出不同的PWM波形,通过三极管驱动直流电机转动,通过软件中程序设定,根据不同温度输出不同的PWM波,从而得到不同的占空比控制风扇直流电机。6.2 硬件调试6.2.1 传感器DS18B20温度采集部分调试将DS18B20芯片接在系统板对应的P1.2口,通过插针在对应系统板的右下侧三口即为对应的VCC、P1.2和GND,可将芯片直接插在该插件上,因此极为方便。系统调试中为验证DS18B20是否能在系统板上工作,将手心靠拢或者捏住芯片,即可发现LED显示的前两位温度也迅速升高,验证了DS18B20能在系统板上工作。由于DS18B20为3个引脚,因此在调试过程中因注意各个引脚的对应位置,以免其接反而使芯片不能正常工作甚至烧毁芯片。6.2.2电动机调速电路部分调试系统本部分的设计中重在软件设计,因为外围的驱动电路只是将送来的PWM信号放大从而驱动电机转动。系统软件设置在P1.0口输出是电机转动的PWM占空比,当环境温度高于设置温度时,电机开始转动,若此时用高于环境温度的热源靠近芯片DS18B20时,发现当当前温度大于预设温度上限,风扇转速较高;小于预设温度上限,大于预设温度下限风扇转速较低;小于预设温度下限风扇自动关闭。6.3 系统功能6.3.1 系统实现的功能本系统能够实现单片机系统检测环境温度的变化,然后根据环境温度变化来控制风扇直流电机输入占空比的变化,从而产生不同的转动速度,也可根据按键调节不同设置温度,再由环境温度与设置温度的差值来控制电机。当环境温度低于设置温度时,电机停止转动;当环境温度高于设置温度时,单片机对应输出口输出不同占空比的PWM信号,当当前温度大于预设温度上限,风扇转速较高;小于预设温度上限,大于预设温度下限风扇转速较低;小于预设温度下限风扇自动关闭。并能通过按键调节当前的设置温度。6.3.2 系统功能分析系统总体上由五部分组成,即按键与复位电路、数码管显示电路、温度检测电路、电机驱动电路。首先考虑的是温度检测电路,该部分是整个系统的首要部分,首先要检测到环境温度,才能用单片机来判断温度的高低,然后通过单片机控制直流风扇电机的转速;其次是电机驱动电路,该部分需要使用外围电路将单片输出的PWM信号转化为平均电压输出,根据不同的PWM波形得到不同的平均电压,从而控制电机的转速。电路的设计中采用了以两个三极管为核心的驱动电路,实现较好的控制效果;再次是数码管的动态显示电路,该部分的功能实现对环境温度和设置温度的显示,其中DS18B20采集环境温度,按键实现不同设置温度的调整,实现了对环境温度和设置温度的及时连续显示。总 结 到目前为止,我的论文基本完成。从最初的无从下手,毫无头绪,再到对思路的清晰,整个设计过程都是对我的考验。因为我对电路一直都挺感兴趣的,我开始思考我的论文题目,从定下论文题目后,我开始收集材料,尽量让我的资料更加完整,在之后在写作的过程中,我也遇到了许多的问题,多亏了老师的指导和同学们的帮助,我才能把论文慢慢成形。当我终于完成了所有的任务之后,看着我的论文,我觉得一切都是值得的。这次毕业论文的制作过程让我更加了解了自己,知道了独立思考的重要性。我不会忘记这次在毕业设计中所感受到的一切,这让我知道今后无论遇到任何事,都需要脚踏实地、认真谨慎,更要有不怕困难,坚持不懈的精神。 谢 辞本次课题是在王老师的悉心指导下完成的。在对本课题的设计以及论文编写过程中,王老师给予充分正确的指导。在此,谨向王老师表示崇高敬意和衷心的谢意!同时也感谢所有帮助过本课题完成的其他老师以及同学的大力支持,没有他们的积极配合,这次毕业设计也是不能完成的那么顺利。通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学四年的学习成果。在这次设计中我学会了把理论和实际问题结合起来理解,让理论来指导实践,让实践来验证理论。虽然我在这次毕业设计的过程中觉得自己有了质的飞跃,但是还需在以后的工作和学习中继续努力、不断完善。这几个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。 参考文献 1 胡汉才.单片机原理及其接口技术.北京:清华大学出版社,20042 刘国钧,陈绍业,王凤翥.图书馆目录.第1版.北京:高等教育出版社,19573 求是科技.单片机典型模块设计实例导航.北京:人民邮电出版社,20044 王化详,张淑英.传感器原理.天津:天津大学出版社,20025 荣俊昌.新型电风扇原理与维修.北京:高等教育出版社,20046 王港元.电工电子实践指导.江西:江西科学技术出版社,20057 余小平,奚大顺.电子系统设计M.北京:航空航天大学出版社,2007.37-538 来清民.传感器与单片机接口及实例M.北京:航空航天大学出版社,2008.90-929 刘健,徐炜,伊均萍,刘良成.电路分析M.北京:电子工业出版社,2005.75-7910 郑海春、姜月.智能无线防盗报警系统.西化:微计算机信息, 2009(2).21-4311 童诗白、华成英.模拟电子技术基础(第三版).北京:高等教育出版社,2007.12 附录附录一:电路原理图附录二:源程序#include#include#define uchar unsigned char#define uint unsigned int/sbit dj=P10;/电机控制端接口sbit DQ=P12;/温度传感器接口/按键接口/sbit key1=P31;/设置温度sbit key2=P32;/温度加sbit key3=P33;/温度减/sbit w1=P20;sbit w2=P21;sbit w3=P22;sbit w4=P23;/共阴数码管段选/uchar table22=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x40,0x38,0x76,0x00,0xff,0x37;/-,L,H,灭,全亮,n 16-21uint wen_du; uchar gao,di;/pwmuint shang,xia; /对比温度暂存变量uchar dang;/档位显示uchar flag;uchar d1,d2,d3;/显示数据暂存变量void delay(uint ms)uchar x;for(ms;ms0;ms-)for(x=10;x0;x-);/*ds18b20延迟子函数(晶振12MHz )*/ void delay_18B20(uint i)while(i-);/*ds18b20初始化函数*/void Init_DS18B20() uchar x=0; DQ=1; /DQ复位 delay_18B20(8); /稍做延时 DQ=0; /单片机将DQ拉低 delay_18B20(80); /精确延时 大于 480us DQ=1; /拉高总线 delay_18B20(14); x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay_18B20(20);/*ds18b20读一个字节*/ uchar ReadOneChar()uchar i=0;uchar dat=0;for (i=8;i0;i-) DQ=0; / 给脉冲信号 dat=1; DQ=1; / 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); return(dat);/*ds18b20写一个字节*/ void Wri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论