《基于单片机的智能温控风扇.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能温控风扇.doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、南京信息职业技术学院毕业设计论文作者 赵鹏雪 学号 11141P18 系部 电子信息学院 专业 物联网应用技术 题目 基于单片机的智能温控风扇设计 指导教师 周波 评阅教师 完成时间:2021年4月 23日 摘要:本次设计的单片机系统是基于单片机的智能电风扇设计。使用的控制芯片是AT89C51,用数字温度传感器DS18B20检测温度并通过数码管显示,通过继电器来实现小电流的单片机控制大电流的电风扇电机工作,利用单片机内部定时器实现电风扇定时时间的设定。本套系统的软件程序思想主要是通过实时温度与设定的温度上下限值进行比拟后,控制电风扇启停、强弱挡,最终使环境维持让人舒适的温度。用户可以根据自身需
2、求自行设定温度上下限值、电风扇启停及工作时间。用户设定的温度上下限值通过软件程序自动保存在数字温度传感器DS18B20内部的EPPROM内存单元中,掉电后数据不会丧失,不必劳烦用户每次启动风扇反复重新设定温度上下限值。【关键词】:智能,传感器,温控,风扇ABSTRACTThe design is based on single-chip control thermostat fan designed to sensitive sensing temperature sensing and display, the design AT89C51 control center, as the te
3、mperature sensor DS18B20 sensor senses the temperature of the internal timer set time set the length to control the intensity and wind speed fan switch The design of single chip microcomputer system is based on single chip microcomputer intelligent temperature control fan design. Through the relay t
4、o achieve small current SCM control large current of the electric fan motor work, realize electric fan timing time of internal microcontroller timer setting.This set of system software program thought mainly through real-time temperature and setting temperature upper and lower limit value after comp
5、arison, strong or weak and eventually make the environment to maintain a comfortable temperature .The user can according to their own needs to set temperature upper and lower limit, electric fan start-stop and working time.Users to set the temperature of the upper and lower limit value automatically
6、 by the software program stored in the digital temperature sensor DS18B20 the internal EPPROM memory unit, dont need to bother the user with each fan launched again and again to reset temperature limit up and down.【KEY WORD】: Intelligence, sensors, temperature, fan目 录1、引言12、总体设计13、硬件设计23.1 AT89C51单片
7、机概述2 3.1.1 AT89C51单片机组成3 3.1.2AT89C51单片机的引脚结构43.2 DS18B20 单线数字温度传感器54、系统电路设计64.1 单片机最小系统电路设计6 4.1.1 AT89C51单片机的最小系统64.2 按键电路设计74.3 控制电路设计8 4.3.1温度控制电路设计8 4.3.2声响控制电路设计84.4 温控自动电路设计9 4.4.1 双向晶闸管介绍9 4.4.2 继电器介绍9 4.4.3 电路设计94.5 数码显示电路设计104.6 电源电路设计11 4.6.1 LM7805集成稳压器介绍11 4.6.2电路设计115、软件设计125.1 总体设计思想1
8、2 5.2 各局部的软件框图和程序12 5.2.1 主程序流程图12 5.2.2 温度显示子程序流程图13总结13附录14附录一 电路原理图14附录二 源程序15致谢31参考文献32仅供学习参考1、引言电扇是人们日常生活中常用的降温工具,从开始的吊扇到现在的USB风扇,无处不见电扇的踪迹。虽然如今空调已经走进千家万户,但是电扇的低位还是无可取代,作为一种节能环保,并且廉价简单的降温工具,电扇还在很多人家发挥着自己独特的作用。顺应时代潮流,各种多功能的风扇逐渐在取代传统风扇。单片机作为一种智能化程度高,控制精度高,操作简单,廉价易得,抗干扰能力强等特点,越来越多的应用于智能化产品之中。市场上智能
9、风扇产品相继问世,制作方法也多种多样,功能也逐渐完善,普遍都具有了手动变速和定时关闭等功能,相对而言,具备人性化,智能化的风扇还是很少,使用也并不广泛,而且在电子工艺高度开展的今天,智能化的步伐也越来越快,尤其是中国这个高速开展的国家,电扇的智能化也该向前迈进一个步伐。在中国市场上风扇还是有一定的市场份额的,几乎每个家庭都有风扇,具备价格廉价,摆放轻便,体积灵巧等特点,使得风扇在中小城市以及乡村将来一段时间内仍然会占有市场的大局部份额,为提高风扇的市场竞争力,使之在技术含量上有所提高,满足智能化的要求,智能风扇很具竞争力。大学四年即将结束,为了检验自己的学习情况,我决定使用之前所学习到的硬件只
10、是结合相关的软件根底来制作一个基于单片机的智能温控风扇。基于对人性化与智能化相结合的考虑,同时基于对价格的考虑,本设计决定制作一个基于51单片机的智能温控风扇,该风扇具有随温度自动调节风速的功能,并且在无人时可以自动关闭,而且可以根据每个人的不同情况来设定基准温度,从而实现了人性化与智能化的双重目标。2、总体设计 本设计的整体思路是:利用温度传感器DS18B20来检测环境温度,并直接输出数字温度给51单片机进行处理,并将实时温度、设置温度、风速显示在液晶12864上。设置温度辅以2个可调按键,一个提高设置温度,一个降低设置温度,设置温度只能是整数型式,检测到的环境温度可以精确到小数点后一位。本
11、系统还配备一个红外探头,探测出风范围内是否有人,假设无人那么自动关闭风扇。如图2-1所示。图2-1 硬件总体框图3、硬件设计 3.1 AT89C51单片机概述在20世纪70年代时,当时的微电子技术正处在一个开展阶段,集成电路也属于中规模的开展时期,对于新材料新工艺尚未进入成熟阶段,单片机也是如此,仍处在一个初级的开展阶段,元件集成规模还比拟小,功能也比拟简单,一般包括CPU、RAM,有的还包括了一些比拟简单的I/O口,将I/O口集成到芯片上,单片机还组要将一些外围的其他处理电路共同构成一个完整的计算系统。类似的单片机还有Z80微处理器。1976年由INTEL公司推出的MCS-48单片机,这个时
12、期的单片机才是真正的8位单片微型计算机,因此逐渐推向了市场。MCS-48单片机由于它的体积小,功能全,价格低在市场上得到了广泛的应用,这为单片机的开展奠定了根底,在单片机的开展史上增添了亮丽的一笔,一个重要的里程碑。其后单片机进入多功能强大的开展阶段,由假设干但公司研发约有几十个品种,将近300多个系列,此时才算是真正进入单片机时代,普遍的单片机均集成CPU、RAM、ROM、I/O接口也很多、中断系统相当丰富,并且局部单片机还自带A/D转换器,功能性很强大强大,RAM和ROM的容量也日趋增长,寻址空间可达64kB,此时的单片机开展到了一个新纪元,应用领域也日趋广泛,单片机控制的智能化的电器也便
13、走上了开展道路。上个世纪90年代单片机如雨后春笋一般,MOTOROLA公司推出MC68HC系列单片机,随后NTEL公司推出了80960超级32位单片机并且将相关产品投放市场,成为单片机开展历史上的一个里程碑。3.1.1 AT89C51单片机组成如图3-1所示图3-1 AT89C51单片机组成结构图目前使用较为广泛的主要是89C5X系列的单片机,都采用了标准的MCS-51控制内核,并且此系列单片机品种齐全、性能可靠、小体积、价格廉价、供货充足、调试和编程都十分方便,所以应用比拟广泛。AT89C51是CMOS 结构8位单片机,具有低功耗、电压低、性能好等优点,该单片机内部具有一个内存大小为8KB的
14、FLASH EPPROM,可反复擦除程序10000次,设计时采用了CMOS和ATMEL公司的高集成度、数据不易丧失的存储器技术,片内FLASH存储器可以使用常规的非易失性存储编程器进行编写。因此,STC89C52是一种功能强大,使用灵活并且价格低廉的单片机,可广泛应用于各个控制领域。 AT89C51单片机的主要特性如下:1.8KB可反复擦写程序的FLASH存储器;2.全表态工作 :024HZ;3.256x8字节的内部RAM;4.32个外部双向输入、输出IO口;3.1.2AT89C51单片机的引脚结构。如图3-2所示。图3-2 AT89C51单片机的管脚分布 表3-1 AT89C51单片机的引脚
15、功能引脚引脚功能VCC电源电压GND接地P0口 P0口是双向8位三态IO口,每个IO口都可以独立控制,它不带上拉电路,主要用作数据和地址的输入输出。P1 P1口试一个普通的输入输出口,其内部带有上拉电阻,也就是说不需要外接上拉电阻。在对其进行数据读写操作时方法同P0口。P2P2口与P1口功能相同,在使用时除像P1口做驱动口外还与P0口构成地址的高8位,与P0口形成16位地址的输入输出数据操作。P3 P3端口除普通IO口功能外,还有第二功能。RST 单片机复位引脚,当RST复位引脚上出现两个或两个以上机器周期高电平再变为低电平,单片机将完成复位动作。表3-2 P3口的第二功能表端口引脚第二功能P
16、3.0RXD(串行输出口)P3.1TXD(串行输入口)P3.2INT0外部中断0P3.3INT1外部中断1P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据写)P3.7RD(外部数据读) XTAL1:外接时钟引脚。单片机外接晶振电路的输入端。片内震荡电路的输入端。 XTAL2:外接时钟引脚。单片机外接晶振电路的输出端。片内震荡电路的输出端。3.2 DS18B20 单线数字温度传感器 温度传感器介绍DS18B20 是数字温度传感器。其主要优点是体积小、价格低、精度高。用它做温度测量系统的设计时,可以使电路更简单,在一根通信线以上,可以挂很多的DS18B20温度传感
17、器,使用非常方便。 数字温度传感器DS18B20的实物图。 如图3-3所示图3-3 DS18B20 实物图DS18B20 数字温度传感器主要由4 局部组成:64 位的ROM、温度传感器、非挥发的温度报警触发器TH 和TL及配置存放器。数字温度传感器DS18B20的内部结构。如图3-4所示。图3-4 DS18B20 内部结构图表3-3 DS18B20传感器引脚图序号名称DS18B20引脚功能说明1GND地信号2DQ数据输入/输出引脚,单总线接口。3VDD可选择的VDD引脚。 4、系统电路设计4.1 单片机最小系统电路设计4.1.1 AT89C51单片机的最小系统。 如图4-1所示。图4-1 AT
18、89C51单片机的组成结构图(1) 时钟电路 时钟电路是能够为AT89C51单片机产生工作所必须的时钟信号,AT89C51单片机本身就是一个复杂的同步时序电路。AT89C51单片机在唯一的时钟信号的严格控制下按时序执行指令 ,MCU时钟频率会影响速度和稳定性。通常时钟有两种:外部时钟和内部时钟。本系统使用的内部时钟系统提供时钟信号。AT89C51单片机内部自带的震荡器是一个高增益反向放大器,XTAL1和XTAL2分别为芯片外部时钟的输入输出端口,它们跨接在晶体振荡器和微调电容之间使用。对于晶振电路电容的选择,如果所选电容太小,就会影响系统的快速性、稳定性及振荡的频率,所以C1、C2电容一般选在
19、30pf左右。晶振一般选用范围为1.2MHZ到12MHZ,单片机使用越高的晶振频率就可以得到越高的运行速度,但是这对存储器的存储速度提出了更高的要求。为了提升晶振电路的稳定性,一般选用温度稳定性好的瓷片电容及频率为12MHZ的晶振。时钟电路图如图4-2所示。 图4-2时钟电路图(2) 复位电路AT89C51单片机可以通过RST复位引脚进行初始化操作,其原理是让单片机程序从指定初始化地址开始执行程序。只要让AT89C51单片机的RST复位引脚上出现两个或两个以上机器周期的高电平,就可以使单片机程序复位,但是如果保持RST复位引脚一直是高电平,那么AT89C51单片机就一直循环复位,一旦RST复位
20、引脚由高电平变为低电平后,单片机便复位成功。复位电路如图4-3所示。 图4-3 复位电路图4.2 按键电路设计K1 是功能键,第一次按下时,可以对下限温度进行设置 第二次按下时,可以对上限温度进行设置 第三次按下时,恢复温度显示。K2 是加一键,可以对上下限温度进行加一调整,长按时执行快速加一操作。K3 是减一键,可以对上下限温度进行减一调整,长按时执行快速减一操作。 按键电路如图4-4所示。 图4-4 按键电路图4.3 控制电路设计4.3.1温度控制电路设计温度采集电路主要是由数字温度传感器DS18B20组成的。它能够把采集的温度数据转化成二进制数,经过单片机处理后变为十进制,最后通过数码管
21、显示。如图4-5温控传感器电路图4-5传感器电路图4.3.2声响控制电路设计该电路主要由数字温度传感器DS18B20、三个按键、一个PNP型三极管和一个蜂鸣器等组成的。声响电路在每按下按键时会响一声,当没DS18B20数字温度传感器数值超过或低于温度上下限时,单片机就会通过蜂鸣器发出警报声音。声音电路会在每个按键的按下时响一声,当数字温度传感器DS18B20没有温度数据输出时,单片机将通过蜂鸣器发出报警声音。 上下限温度值主要是通过按键K1、K2、K3来设定。按键K1、K2、K3分别接入单片机的P1.4、P1.5、P1.6脚。 电路如图4-6所示图4-6 声响控制电路图4.4 温控自动电路4.
22、4.1 双向晶闸管介绍双向晶闸管,具有对称性的特点,使它能够在两个方向上导通,是一种理想的交流开关装置。双向晶闸管由N-P-N-P-N五层半导体制成的,从中引出了三个电极。双向晶闸管也可以视为两个单向晶闸管反向并联,但它只有一个控制极。4.4.2 继电器介绍 继电器是一种电气控制器件。它具有控制系统和被控制系统。经常用在自动控制电路中,它的根本原理是用小电流控制大电流运作,相当于一种“自动开关。因此继电器在电路中得到了广泛应用,如用于自动调节、平安保护、转换电路等。4.4.3 电路设计该电路的主要功能是根据单片机给出的信号来控制继电器,从而控制电风扇。正常情况下,电风扇工作状态默认为弱风挡,当
23、实时温度低于温度下限TL时,继电器1吸合,关闭风扇;当实时温度高于温度上限时,继电器2吸合,切换到强风档。 电路如图4-7所示。图4-7温控自动电路4.5 数码显示电路 显示电路局部包括5个共阳极八段数码管,PNP型晶体管,电阻器等。用单片机的P0端口连接共阳极数码管的8位数据端用来提供段选数据,用单片机的P2端口的P2.3P2.7连接数码管的片选端用来提供片选信号输,用8550PNP型三极管搭建驱动电路驱动来驱动数码管显示。因为P0口内部没有上拉电阻,所以在P0接一个10K的排阻到电源。为防止对数码管的损坏,在P0端口各加一个300欧姆的限流电阻。过P0口把要显示的数据通送给数码管,并且通过
24、P2.7P2.3五个端口轮流翻开数码管的位选通,由于每位数码管刷新显示的时间十分短扫描周期在20ms左右和人眼视觉暂留,所以我们根本看不出它的闪烁,而是固定同步显示各数据。电路如图4-8所示。图4-8数码管显示电路4.6 电源电路4.6.1 LM7805集成稳压器介绍三端稳压器LM7805是常见的,可以提供5V直流输出电压,其应用范围非常广泛,包含的调节器的过流保护电路和过载保护电路。如果使用散热器,可以继续提供1A的输出电流,如果使用周边设备相互配合,可以提供不同的电压和电流。电路如图4-9所示。图4-9LM7805引脚图4.6.2电路设计本系统设计的电源电路采用9V变压器将220V交流电变
25、为9V交流电,然后经过整流电路、2200uf电解电容滤波后变为较平稳的直流电,再送给LM7805稳压器变为平整的直流电,最后通过220uf电解电容、104pf瓷片电容滤去电压中的毛刺电压,最后得到5V稳压电源。电路如图4-10所示。图4-10 电源电路图5、软件设计5.1 总体设计思想本系统是基于AT89C51单片机设计的。首先是软件检测数字温度传感器DS18B20工作是否正常,如果发现系统检测不到数字温度传感器DS18B20采集的温度数据时,蜂鸣器发出报警信息,提示用户检查系统或更换数字温度传感器DS18B20。系统检测正常时,通过3个功能按键K1、K2、K3来设定好系统温度上下限值后,按确
26、认键,系统进入正常运行状态。通过对数字温度传感器DS18B20进行数据采集,用数码管显示实时温度。当实时温度低于或高于设定温度上下限时,通过单片机输出信号控制继电器关断从而控制电风扇启停、强弱风挡的切换,从而到达环境温度的调控目的。5.2 各局部的软件框图和程序5.2.1 主程序流程图主程序流程图如图5-1所示。 图5-1 主程序流程图5.2.2 温度显示子程序流程图 数码管显示子程序流程图如图5-2所示。图5-2 DS18B20复位与检测子程序流程图总 结到目前为止,我的论文根本完成。从最初的无从下手,毫无头绪,再到对思路的清晰,整个设计过程都是对我的考验。因为我对电路一直都挺感兴趣的,我开
27、始思考我的论文题目,从定下论文题目后,我开始收集材料,尽量让我的资料更加完整,在之后在写作的过程中,我也遇到了许多的问题,多亏了老师的指导和同学们的帮助,我才能把论文慢慢成形。当我终于完成了所有的任务之后,看着我的论文,我觉得一切都是值得的。这次毕业论文的制作过程让我更加了解了自己,知道了独立思考的重要性。我不会忘记这次在毕业设计中所感受到的一切,这让我知道今后无论遇到任何事,都需要脚踏实地、认真谨慎,更要有不怕困难,坚持不懈的精神。附 录附录一 电路原理图附录二 源程序;*;精准温度显示温控自动风扇系统 *;*说明: ;* 1、K1 按第一次进入设定低温动作温度值 TL 状态:;* 2、K1
28、 按第二次进入设定高温动作温度值 TH 状态:;* 3、K1 按第三次显示当前温度值 ;* 4、设定过程: K2 加键, K3 减键,可快速调; 5、当实时温度值在TL和TH之间时,开启弱风档;当实时温度低于TL时,关闭 风扇;当实时温度高于TH时,开启大风档。每次设置的TH和TL均被保存在 DS18B20的ROM; 内,掉不需重新设置. *;* TIMER_L DATA 23H TIMER_H DATA 24H TIMER_COUN DATA 25H TEMPL DATA 26H TEMPH DATA 27H TEMP_TH DATA 28H TEMP_TL DATA 29H TEMPHC
29、DATA 2AH TEMPLC DATA 2BH TEMP_ZH DATA 2CH BEEP EQU P3.7 DATA_LINE EQU P3.3 C1 EQU P3.4 ;C1控制口,接继电器1 C2 EQU P3.5 ;C2控制口,接继电器2 FLAG1 EQU 20H.0 FLAG2 EQU 20H.1;- K1 EQU P1.4 K2 EQU P1.5 K3 EQU P1.6;= ORG 0000H JMP MAIN ORG 000BH AJMP INT_T0;-MAIN: MOV SP,#30H MOV TMOD,#01H ;T0,方式1 MOV TIMER_L,#00H ;50m
30、s定时值 MOV TIMER_H,#4CH MOV TIMER_COUN,#00H ;中断计数 MOV IE,#82H ;EA=1,ET0=1 LCALL READ_E2 MOV 20H,#00H SETB BEEP SETB C1 setb C2 MOV 7FH,#0AH ;熄灭符 CALL RESET ;复位与检测DS18B20 JNB FLAG1,MAIN1 JMP STARTMAIN1: CALL RESET JB FLAG1,START LCALL BEEP_BL JMP MAIN1START: MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE MOV A,#044H
31、 ; 发出温度转换命令 CALL WRITE CALL RESET MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE MOV A,#0BEH ; 发出读温度命令 CALL WRITE CALL READ ;读温度数据 CALL CONVTEMP CALL DISPBCD CALL DISP1 CALL SCANKEY LCALL TEMP_COMP JMP MAIN1;=;功能键扫描子程序;=SCANKEY: MOV P1,#0F0H JB K1,SCAN_K2 CALL BEEP_BLSCAN_K1: CALL ALERT_TL CALL ALERT_PLAY JB K1,S
32、CAN_K1 CALL BEEP_BLSCAN_K11: CALL ALERT_TH CALL ALERT_PLAY JB K1,SCAN_K11 CALL BEEP_BLSCAN_K2: JB K2,SCAN_K3 CALL BEEP_BLSCAN_K3: JB K3,SCAN_END CALL BEEP_BL LCALL RESET_ALERT LCALL RE_18B20 LCALL WRITE_E2SCAN_END: RET;=;设置动作温度值TL,TH;=RESET_ALERT: CALL ALERT_TL CALL ALERT_PLAY JNB K3,$ ;K3为位移键 SETB
33、TR0RESET_TL: CALL ALERT_PLAY JNB FLAG2,R_TL01 mov 75H,7fh ;消影 mov 76H,7fh CALL ALERT_PLAY JMP R_TL02R_TL01: CALL ALERT_TL mov 75h,7Eh ;送设定值 mov 76h,7Dh CALL ALERT_PLAY R_TL02: JNB K1,K011A JNB K2,K011B JNB K3,RESET_TH JMP RESET_TLK011A: INC TEMP_TL MOV A,TEMP_TL CJNE A,#120,K012A ;没有到设定上限值,转 MOV TEM
34、P_TL,#0K012A: CALL TL_DEL JMP RESET_TLK011B: MOV A,TEMP_TL CJNE A,#00H,K ;没有到设定下限值,转 MOV TEMP_TL,#120K: DEC TEMP_TLK012B: CALL TL_DEL JMP RESET_TL;-RESET_TH: CALL BEEP_BL JNB K3,$RESET_TH1: CALL ALERT_PLAY JNB FLAG2,R_TH01 mov 75H,7fh ;消影 mov 76H,7fh CALL ALERT_PLAY JMP R_TH02R_TH01: CALL ALERT_TH m
35、ov 75h,7Eh ; mov 76h,7Dh CALL ALERT_PLAYR_TH02: JNB K1,K021A JNB K2,K021B JNB K3,K002 JMP RESET_TH1K021A: INC TEMP_TH MOV A,TEMP_TH CJNE A,#120,K022A ;没有到设定上限值,转 MOV TEMP_TH,#0K022A: CALL TH_DEL JMP RESET_TH1K021B: MOV A,TEMP_TH CJNE A,#00H,K023B ;没有到设定下限值,转 MOV TEMP_TH,#120K023B: DEC TEMP_THK022B: CALL TH_DEL JMP RESET_TH1K002: CALL BEEP_BL CLR TR0 ;关闭中断 RET;-;键延时子程序;-TL_DEL: ;设定温度低值TL延时 MOV R2,#0AHTL_DEL1: CALL ALERT_TL CALL ALERT_PLAY DJNZ R2,TL_DEL1 RETTH_DEL: ;设定温度高值TH延时 MOV R2,#0AHTH_DEL1: CALL ALERT_TH CALL ALERT_PLAY DJNZ R2,TH_DEL1 RET;=