ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:125.98KB ,
资源ID:27439083      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27439083.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(温控风扇系统设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

温控风扇系统设计.docx

1、温控风扇系统设计 Revised by Chen Zhen in 2021温控风扇系统设计自动化系统创意设计大赛作品说明书作品名称:温控风扇系统设计 队 员 : 2015年 4月摘要:本设计是基于STC12C5A60S2单片机技术与温度传感器测量外界温度的设计原理,进行了不同设计方案的比较,给出了设计的硬件电路,同时对各种关键硬件进行较详细的介绍,并且以流程图的方式对系统设计作出介绍。系统主要通过温度传感器控制不同的PWM占空比输出来控制风扇的档位。而出于方便、可选择性的考虑,系统也添加了辅助功能,就是直接手动控制风扇的档位。 关键词:STC12C5A60S2单片机,DS18B20温度传感器,

2、PWM1、引言温控风扇在节能环保方面具有一定的作用,其工作原理除了普通的手动档位调节,主要是通过温度传感器感应外界温度,并自主地进行档位的调节,这样在风扇开着的情况下,不需进行手动就可以根据不同的外界温度进行自主调节风力大小,达到节能目的。2、背景随着空调机在日常生活中的普遍应用,很容易想到电风扇会成为空调的社会淘汰品,其实经过市场的考验和证实,真实的并不是这样的,在空调产品的冲击下,电风扇产品仍然具有很强大的生命力,电风扇在市场的考验中并没有淡出市场,反而销售在不停的复苏中,具有强大的发展空间。据市场调查,电风扇的不停复苏主要在以下原因:一,是电风扇虽然没有空调机的强大的制冷功能,但电风扇是

3、直接取风,风力更加温和,比较适合老年人、儿童以及体质虚弱的人使用。二,是电风扇经过多年的市场使用,较符合人们的使用习惯,而且结构简单、操作方便、安装简易。三,是电风扇比起空调产品而言,其价格低廉,相对省电,更易的进入老百姓的家庭。在目前空调还没有普及,并且并不是所有的情况下空调都适合使用的情况下,智能风扇适合人体对温度的要求,智能风扇还有具有相当作用的。3、意义与应用1、普通电风扇的现状及存在的隐患:大部分只有手动调速,功能单一。长时间在高负荷工作容易损坏电器,并且造成电量的损失。2、作品可运用在家庭中,风扇的风力随温度而调节,即可以避免人因温度低吹到冷风而着凉,也可达到节能目的,可见温控风扇

4、更具有优越性。3、其次将此系统装在产热多,急需排热的设备上,可以帮助它及时散掉大量的热。比如电脑散热器等。4、原理简介1、电源开关,控制系统处于工作还是停止状态。2、当系统上电之后,通过单片机读取外界温度,然后在液晶显示屏上显示出来。通过判断温度的范围,控制风扇的停止与转不同的速度。同时LED给出档位指示。温度控制的范围可以通过按键进行设置。3、另外,当不需要温度控制时,可以通过模式切换开关,让系统工作于手动控制模式。通过按键进行调节风扇的停止,与不同转速。5、方案设计方案一:采用两片STC89C516RD单片机、液晶1602和ds18b20,进行设计,让单片机1进行温度读取操作,另外的单片机

5、2通过定时器,产生占空比不同的PWM。两单片机通过串口进行通信,这样单片机1可以通过读取外界的温度,然后对单片机2进行控制。这样就能在不同的温度区间内,单片机2控制直流5v小风扇不同的转速,从而实现温度自动控制风扇。方案二:采用STC12C5A60S2单片机、液晶1602和ds18b20。这也是一款51单片机,但是它的性能比STC89C516RD单片机更强大,而且有独立的双路PWM输出。这样,采用一片STC12C5A60S2单片机就能实现温度读取和直流5v小风扇的转速控制。方案三:采用stm8s105系列单片机、液晶1602和ds18b20,同样可以实现温度读取和直流5v小风扇的转速控制方案比

6、较:方案一需要耗费更多的硬件资源。因此我们直接排除方案一。方案三,如果采用44脚贴片封装的stm8s105单片,可以在很小的覆铜板上把硬件做出来,这样可以节省一些硬件资源。但是,因为温度传感器ds18b20的读取是通过单一I/O口读取的,stm8s105的I/O操作需要设置,让其是处于输入或者输出方式。操作非常麻烦。方案二需要的硬件资源相对较少,而且其I/O口兼容8051单片机,可以实现I/O口准双向操作,这样编程相对简单。综上所述,我们选择方案二。6、STC12C5A60S2单片机简介我们采用的单片机为STC12C5A60S2,STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的

7、单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S)针对电机控制,强干扰场合。其引脚与普通8051单片机基本相同。 PWM寄存器设置STC12C5A60S2单片机内置两路独立PWM输出,通过设置相应寄存器,可以让占空比改变。PWM0的输出口在,而PWM1的输出口在相关的设置例子如下面的程序所示:CCON = 0; 单片机基础M. 北京航空航天大学出版社, 2001.3模拟电子技术基础M. 高等教育出版社, 2001.4数字电子技

8、术基础M. 高等教育出版社, 2006.附录:实物硬件图图14实物硬件图附录:程序#include#include #define uchar unsigned char#define uint unsigned int#define LCD1602_DATAPINS P0sfr PCAPWM0 = 0xf2; ; LcdWriteCom(0x86); /写地址 LcdWriteData(0+datas3); /显示小数点 LcdWriteCom(0x87); /写地址 LcdWriteData(0+datas4); /显示小数 /* 温度控制电机输出占空比函数*/void control (

9、void) if(a*100+b*10+c) tem_1) CCAP0H = CCAP0L = 0xff; /PWM0 口输出 0%占空比 LED0 = 0; LED1 = 0; else if (tem_1 = (a*100+b*10+c)&(a*100+b*10+c)tem_2 ) CCAP0H = CCAP0L = 0xB3; /PWM0 口输出30%占空比 LED0 = 1; LED1 = 0; else if (tem_2 = (a*100+b*10+c) CCAP0H = CCAP0L = 0x1a; /PWM0 口输出90%占空比 LED0 = 1; LED1 = 1; /* 函

10、数名 : keyscan* 函数功能 : 键盘扫描*/void keyscan1 () if (0 = key1) /温度下限调整按键 Delay1ms(20); if (0 = key1) tem_1+; if(31 = tem_1) tem_1 = 17; while(!key1); if (0 = key2) /温度上限调整按键 Delay1ms(20); if (0 = key2) tem_2+; if(44 = tem_2) tem_2 = 23; while(!key2 ); if(tem_1 = tem_2) tem_2+; /防止两个温度范围一样 if(tem_2 tem_1)

11、 /防止温度上限比温度下限低 tem_2=tem_1+1; void keyscan2 () if(jia_key=0) /加速按键 Delay1ms(20); if(jia_key=0) num+; if(num=3) num=0; while(jia_key=0); /* 电机输出档位选择函数*/void dangwei() switch(num) case 0: CCAP0H = CCAP0L = 0xff; /PWM0 口输出 0%占空比 LED0 = 0; LED1 = 0; break; case 1: CCAP0H = CCAP0L = 0x67; /PWM0 口输出60%占空比

12、 LED0 = 1; LED1 = 0; break; case 2: CCAP0H = CCAP0L = 0x1a; /PWM0 口输出90%占空比 LED0 = 1; LED1 = 1; break; /* 函数名 : displayx ()* 函数功能 : LCD显示读取到的键盘的数值*/void display1 (int p) unsigned char datas = 0, 0; datas0 = p / 10; datas1 = p % 10; LcdWriteCom(0x8b); LcdWriteData(0+datas0); LcdWriteCom(0x8c); LcdWri

13、teData(0+datas1); void display2 (int t) unsigned char datas = 0, 0; datas0 = t / 10; datas1 = t % 10; LcdWriteCom(0x8e); LcdWriteData(0+datas0); LcdWriteCom(0x8f); LcdWriteData(0+datas1); /* 电机输出寄存器初始化函数*/void init_dianji() CCON = 0; /初始化 PCA控制寄存器 /PCA计数器停止运行 /清除CF标志位 /清除所有中断标志位 CL = 0; /重置PCA的16位计数

14、器 CH = 0; CMOD = 0x02; /设置 PCA 计数器时钟源为 Fosc/2 /禁止PCA 计数器溢出中断 CCAPM0 = 0x42; /PCA模块0工作在8位PWM模式并且没有PCA中断 CR = 1; /PCA 计数器开始运行/* 函数名 : main* 函数功能 : 主函数*/void main() LED0=0; LED1=0; CCAP0H = CCAP0L = 0xff; P1M1 = 0x00; P1M0 = 0x08; /把口定义为强推挽输出,驱动电机 P2M1 = 0x00; P2M0 = 0x18; /把和定义为强推挽输出,驱动LED LcdInit();

15、/初始化LCD1602 init_dianji(); /电机PWM驱动初始化 while(1) if(1 = key_sw) /温控模式 LcdWriteCom(0x88); /写地址 88 LcdWriteData(C); LcdDisplay(Ds18b20ReadTemp(); /温度读取显示 control (); /温度控制电机占空比 keyscan1 (); /键盘扫描 display1 (tem_1); /控制温度数字显示 display2 (tem_2); if(0 = key_sw) /键控模式 LcdWriteCom(0xc2); LcdWriteData(D); LcdWriteCom(0xc3); LcdWriteData(W); LcdWriteCom(0xc4); LcdWriteData(:); dangwei(); /键控电机档位选择 keyscan2 (); /键盘扫描 LcdWriteCom(0xc5); LcdWriteData(0+num); /显示按键档位

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

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