毕业论文-基于单片机的民用智能温控风扇.doc_第1页
毕业论文-基于单片机的民用智能温控风扇.doc_第2页
毕业论文-基于单片机的民用智能温控风扇.doc_第3页
毕业论文-基于单片机的民用智能温控风扇.doc_第4页
毕业论文-基于单片机的民用智能温控风扇.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1 长沙民政职业技术学院 毕业设计说明书毕业设计说明书 题目题目: 基于单片机的民用智能温控风扇基于单片机的民用智能温控风扇 类型:类型: 学生姓名:学生姓名: _ _ _ 学学 号:号: _ 学学 院:院: _电子信息工程学院电子信息工程学院_ _ 专专 业:业: _电气自动化电气自动化_ 班班 级:级: _ _自动自动 14311431 班班_ 学校指导教师:学校指导教师:_ 企业指导教师:企业指导教师:_ 20172017 年年 4 4 月月 1212 日日 产品设计产品设计工艺设计工艺设计 方案设计方案设计 2 摘 要 本设计为智能温控风扇系统,采用 STC89C52 单片机作为控制中心,通过 DS18B20 温 度采集器检测环境温度,根据所设定的温度值对风扇电动机进行控制。可由用户设置高 低两个温度值,测得实时温度值在所设定的高低温度之间时将自动打开风扇弱风档,当 实时温度超过所设定的高温度值时将自动打开风扇强风档,当温度小于所设定的低温度 值时将自动关闭风扇。采用 DS18B20 具备精准的温度检测和显示功能,其内部的 E2ROM, 可以将用户设定的值保存下来,方便重新开启时不再设置。 关键词:温控风扇;单片机;关键词:温控风扇;单片机;DS18B20DS18B20;自动控制;自动控制 3 目 录 1. 绪论绪论.4 1.1 系统概述 .4 1.1.1本设计任务和主要内容.4 1.1.2系统设计整体框架.5 1.1.3 PCB图.6 2.2. 方案论证方案论证.6 2.1 温度传感器的选用.6 2.2 控制核心的选择.7 2.3 显示电路.7 2.4 调速方式.8 3 3 温度传感器温度传感器.8 3.1 DS18B20 简介.8 4.4. 电路软件设计电路软件设计.9 4.1 单片机最小系统电路.9 4.2 DS18B20 温度采集电路.10 4.3 四位数码管显示电路.10 4.4 电机控制电路 .11 5 5 系统软件设计系统软件设计.11 5.1 程序流程图 .11 5.2 数字温度传感器模块和显示子模块.12 6 6 作品实物照片作品实物照片.14 7 结论结论.16 参考文献参考文献 .17 致谢致谢.17 附录附录.18 4 1. 绪论 现如今我们生活中可以见到的电风扇已经具有调节档位及定时功能。在炎热的 夏天,白天气温较高,这时候人们就会将电风扇以高转速,大风量运行,以达到降温 的目的;到了晚上要入睡的时候,气温还是使人难以入睡,这时候人们还是会将档位 开大,打开定时功能,到了时间自动关闭,但是有时候,计时到了后很多人都会被热 醒,不得不重新打开风扇,重新开启定时功能。倘若不打开定时功能吹一整晚的话, 到了夜里气温较低时就容易使人感冒。所以基于这种现状,我设计了这套智能温控风 扇系统,基于单片机 STC89C51 控制,采用 DS18B20 高精度温度传感器,可以显示实时 温度,并根据用户所设定的温度,当环境温度达到这个值时执行弱风、强风、关闭动 作。这套系统很好的解决了上述的问题,给人们生活带来了大大的便利,也使电风扇 变得更加智能。 1.1 系统概述 1.1.1 本设计任务和主要内容 本系统采用 STC89C52 作为控制中心,采用较为精准的 DS18B20 温度传感器采集实 时环境温度,通过编写好的程序,设定好指定的最高温度值和最低温度值,使电风扇可以 实现温度智能化。当环境温度小于最低温度时,将关闭电动机;当环境温度超过最低温 度时,电动机将重新启动。 本设计主要内容如下: (1)风速设为强、弱两个档位 (2)当环境温度低于设定的最低温度时,电动机关闭。 (3)当环境温度处于设定的最高温度和最低温度之间时,则电动机以弱风档位运行。 (4)当环境温度高于设定的最高温度时,则电动机以强风档位运行。 5 1.1.2 系统设计整体框架 图 2.1 系统整体设计框架图 键盘输入 显示器 单片机系统电机控制模块温度采集模块 6 1.1.3 PCB 图 2. 方案论证 2.1 温度传感器的选用 对于温度传感器的选用需要考虑到最主要的一点因素就是精准度,因为系统设计 的主要目的是拿来日常使用,所以不能有太大的误差。我总结出了三款可以考虑使用 的温度传感器:热敏电阻,热电偶,DS18B20 传感器。对三者进行了一个比较,最终决 7 定选用 DS18B20 传感器作为本系统的温度传感器。 热敏电阻相对于另外两款来说,其具备的优点有价格低廉,采购也方便,它需要 通过运算放大器放大热敏电阻因为温度所产生的变化,需要加装 AD 转换芯片将模拟信 号转化成数字信号提交给单片机处理,在这一系列的动作中,很容易产生一系列的误 差,且无法感测到比较细微的温度变化,电路设计也比较复杂,不适合应用到我们的 系统当中。 热电偶相对于二者来说,通过桥式测量电路可以实现较为精准的温度感测,且误 差也不大,但是相对来说电路设计也比较复杂,对温度的细微变化感测也不精准,不 适用于这套系统的设计。 DS18B20 这款传感器相对二者来说,由于其为一款高度集成化的数字型温度传感器, 在电路设计方面简单了很多,且它感测温度的原理与另外两种在本质上就不同,温度 误差很小,对温度的细微变化也非常敏感,非常适合应用到这套系统中使用。 2.2 控制核心的选择 对于控制核心本身我有着两个想法,第一个就是选用电压比较电路来作为控制核 心,第二个便是最终决定的单片机 STC89C51 作为控制核心。之所以会选择单片机, 我将二者作了一个对比。 电压比较电路相对来说,电路设计简单,也不用编写程序,采用热敏电阻或者热 电偶,采用 AD 转换将温度信号转化成电信号,由设计好的比较电路来控制电动机的 转速,到达某值时自动跳转到强弱状态。这种模式比较单一,从根本上来说还是没有 达到智能的一个目的,用户不能比较自由的设置高低温度值,太过于机械化。 单片机作为控制核心就不同了,通过编写好的系统程序,DS18B20 采集到的环境 温度可以实时的显示出来,温度的感测比较精准,还可以通过按键更改最高温度值和 最低温度值,这样才是较为智能的系统,可以在很多环境下使用,更加贴近人们的日 常使用。 2.3 显示电路 显示电路的选用就比较容易决定了,一个是五位共阳数码管,一个就是液晶显示 屏 LCD。我选择了五位共阳数码管,相对来说,它的价格比较便宜,也比较实用,虽然 美观感上不是很好。液晶显示屏看起来会比较舒服,比较上档次一点,显示的效果和 样式也比数码管要好,但是成本会高很多,最终考虑到这套系统需要显示的只有温度, 8 数码管就可以很好的完成这项任务,故不采用液晶屏。 2.4 调速方式 本套系统需要达到温度高开启强风档,温度低开启弱风档,低于最低值时关闭电 动机的目的,所以在电动机调速方式的选用上也需要贴合系统的需求。常用的降压方 式有变压器和晶闸管两种。 变压器通过内部的线圈在电磁感应的原理上将电压减小,从而控制电动机的电 压,减小电动机的转速。但是这种方式的缺点就在于改变了电压调节,对电动机转速 有一定限制,相对于整套系统来说还是不能比较好的适应,而且使用中比较容易发热, 有一定的风险系数。 晶闸管相对来说就没有变压器那样的发热症状,它通过控制导通角大小,来实现 对电动机的控制,可以很好的适应这套系统的要求,可以使电动机在最大功率和关闭 之间任意调速。 3 温度传感器 3.1 DS18B20 简介 DS18B20 是一款运用比较广泛的数字温度传感器,接线比较方便,其体积也比较小, 对环境温度的检测比较精准,可以在很多环境下使用,抗干扰的能力较强,误差小。 1、技术性能描述: 、 测温范围 55+125 、工作电源: 3.05.5V/DC 、在使用中不需要任何外围元件 、测量结果以 912 位数字量方式串行传送 、不锈钢保护管直径 6 、 适用于 DN1525, DN40DN250 各种介质工业管道和狭小空间设备测温 、标准安装螺纹 M10X1, M12X1.5, G1/2”任选 9 4.电路软件设计 4.1 单片机最小系统电路 图 4.1 单片机最小系统电路 (1)9 号接口接上了复位电路 (2)晶振采用 12MHZ。 (3)单片机的 31 接口接高电平 VCC 10 4.2 DS18B20 温度采集电路 图 4.2 温度采集电路图 DS18B20 的 1 号接口需要接地,2 号接口接单片机的 P24,3 号接口接 VCC,为了保 障不出现误差,2 号接口需要接一个 10K 的电阻 4.3 四位数码管显示电路 图 4.3 四位数码管显示电路 4 位数码管为共阳数码管,因为单片机输出电流比较小,所以使用 4 个 PNP 型的三 极管 9012 来驱动数码管的显示。 11 4.4 电机控制电路 图 4.4 电机控制电路 单片机响应用户的参数设置, 当温度高于设定值时,三极管就会驱动风扇转动 5 系统软件设计 5.1 程序流程图 12 图 5.1 程序流程图 5.2 数字温度传感器模块和显示子模块 初始化、ROM 操作指令、存储器操作指令是传感器转换温度信号必不可少的步骤。 。 开始 系统初始化 显示子模块 温度变化?温度控制子模块 键盘输入? 键盘处理子模块 13 图 5.2 数字温度传感器模块程序流程图 开始 DS18B20 初始化 启动 DS18B20 测温 内部判断 调用读子程序 显示子程序 结束 调用相应的控 制程序 调用相应的键 值处理程序 调用写子程序 异常 正常 14 6 作品实物照片 图 6.1 系统启动时自动显示室温 图 6.2 设置上限温度值 15 图 6.3 设置下限温度值 图 6.4 室温达到设定的下限温度值,以弱风档运行 16 图 6.5 室温达到设定的上限温度值,以强风档运行 使用说明:共有四个按键,上面的单独按键为复位键,最下面一排的三个按键分别是 加,减,设置键。按下设置键可以分别设置上限温度值和下限温度值。 7 结论 本系统很好的解决了传统电风扇的不便捷之处,通过用户自由设定高低温度值, 可以实现日常使用中,环境温度低于最低值时自动关闭电风扇,高于最低温度低于最 高温度时以低速运行,高于最高温度时自动以高转速运行。与传统电风扇相比无需再 手动开启关闭以及换挡,特别是入睡时,使电风扇走向了智能化。且由于采用的是单 片机设计,产品的价格比较便宜,稳定性也比较好,通过程序的控制可以完美的达到 最初的目的。整套系统是为了调速而研制,在日常使用中需要接入更多的功能,且两 17 个档位不能很好地满足需求,需要改进的地方还有很多。 参考文献 1 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998 2 李广弟.单片机基础.北京:北京航空航天大学出版社,1994 3 阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1989 4 王忠飞,胥芳MCS 一 51 单片机原理及嵌入式系统应用M.西安:西安电子科技大学出版社, 2007P268-273 5蔡朝洋,单片机控制实习与专题制作M.北京:北京航空航天大学出版社,2006 致谢 不知不觉,时间飞逝,大学三年就快要过去,在此毕业论文完成之际,我想先感 谢母校长沙民政职业技术学院给了我三年学习的机会;感谢大学三年的所有传授于我 专业知识和技能的老师;感谢大学三年一起学习一起进步的同学。在此我要特别感谢 的是我的指导老师王宏彦老师,在本次毕业设计中,王老师给予了我很大的支持,从 一开始的选题,再到程序的设计等等,王老师都一直在悉心指导我,在此表示特别感 谢! 18 附录 数字温度传感器模块和显示子模块程序: #include /调用单片机头文件 #define uchar unsigned char /无符号字符型 宏定义变量范围 0255 #define uint unsigned int /无符号整型 宏定义 变量范围 065535 #include eeprom52.h /数码管段选定义 0 1 2 3 4 56 7 8 9 uchar code smg_du=0 x28,0 xee,0 x42,0 x52,0 xe5,0 xa8,0 x41,0 xe7,0 x20,0 xa0, 0 x60,0 x25,0 x39,0 x26,0 x31,0 x71,0 xff; /断码 /数码管位选定义 uchar code smg_we=0 xef,0 xdf,0 xbf,0 x7f; uchar dis_smg8 = 0 x28,0 xee,0 x32,0 xa2,0 xe4,0 x92,0 x82,0 xf8; uchar smg_i = 3; /显示数码管的个位数 sbit dq = P24;/18b20 IO 口的定义 bit flag_lj_en; /按键连加使能 bit flag_lj_3_en; /按键连 3 次连加后使能 加的数就越大了 uchar key_time,key_value; /用做连加的中间变量 19 bit key_500ms ; sbit pwm = P23; uchar f_pwm_l ; /越小越暗 uint temperature ; / bit flag_300ms ; uchar menu_1; /菜单设计的变量 uint t_high = 300,t_low = 100; /温度上下限报警值 /*1ms 延时函数*/ void delay_1ms(uint q) uint i,j; for(i=0;iq;i+) for(j=0;j= smg_i) i = 0; P1 = 0 xff; /消隐 P3 = smg_wei; /位选 P1 = dis_smgi; /段选 /*把数据保存到单片机内部 eepom 中*/ void write_eeprom() SectorErase(0 x2000); byte_write(0 x2000, t_high % 256); byte_write(0 x2001, t_high / 256); byte_write(0 x2002, t_low % 256); byte_write(0 x2003, t_low / 256); byte_write(0 x2055, a_a); 21 /*把数据从单片机内部 eepom 中读出来*/ void read_eeprom() t_high = byte_read(0 x2001); t_high = 8; t_high |= byte_read(0 x2000); t_low = byte_read(0 x2003); t_low = 1; /*读取 18b20 内的数据*/ uchar read_18b20() uchar i,value; for(i=0;i= 1; /读数据是低位开始 dq = 1; /释放总线 if(dq = 1) /开始读写数据 value |= 0 x80; delay_uint(5); /60us读一个时间隙最少要保持 60us 的时间 return value; /返回数据 /*读取温度的值 读出来的是小数*/ 24 uint read_temp() uint value; uchar low; /在读取温度的时候如果中断的太频繁了,就应该把中 断给关了,否则会影响到 18b20 的时序 init_18b20(); /初始化 18b20 EA = 0; write_18b20(0 xcc); /跳过 64 位 ROM write_18b20(0 x44); /启动一次温度转换命令 EA = 1; delay_uint(50); /500us init_18b20(); /初始化 18b20 EA = 0; write_18b20(0 xcc); /跳过 64 位 ROM write_18b20(0 xbe); /发出读取暂存器命令 low = read_18b20(); /读温度低字节 value = read_18b20(); /读温度高字节 EA = 1; value 990) t_high = 990; if(key_can = 3) if(flag_lj_3_en

温馨提示

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

评论

0/150

提交评论