版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论1.1选题研究背景随着科技时代到来,智能化产品层出不穷,为人们的生活带来了便利。风扇作为传统老式家用电器,受到空调产品的冲击。但由于其价格低廉、摆放方便,风扇并没有因为空调产品的冲击而退出历史舞台,反而仍占有不小的市场份额。传统的风扇有着诸多缺点:可选风速档位少;即使有些风扇具有定时的功能,也没办法应对夏夜温度的多变,无论是被热醒还是被冻醒,都不是好的体验。为解决上述问题,温控风扇应运而生。温控风扇可以自动检测环境温度,再根据温度的变化自动调节风扇的启停和转速,温控风扇不仅可以节约宝贵的电资源,也方便了人们的生产和生活[1]。1.2选题研究的目的和意义中国第一台风扇生产于1916年,此后随着科学技术的发展,风扇的功能越来越强、越来越丰富。现在的风扇逐渐趋于智能化,将监测、反馈等其他技术与风扇结合起来具有重要的意义。过去的风扇拘泥于技术,功能简单,大部分都是手动调速再加上一个定时器,无法满足人们的需求,风扇需要加以创新,融入新的功能技术。作为夏日消暑的家电,风扇的启停或调速都必须让人们手动控制,若是在人们熟睡之后温度骤变,也必须自己起床对风扇进行调节。如果,风扇可以根据实时温度的变化来控制风扇的起停和调速,会更加人性化。1.3温控风扇的设计原理温控风扇系统,采用STC89C52单片机作为核心控制器。利用DS18B20数字温度传感器采集实时温度,经读取后再在数码管上显示出来[2]。接着将读取的温度经单片机处理后通过三极管驱动直流电机。其中系统利用单片机的T0定时器来产生PWM脉冲,对直流电机调速[3]。系统总体设计2.1总体结构框图整个系统主要由硬件和软件两部分组成,其中,硬件部分主要由单片机、温度传感器、电机驱动电路、电源供电电路及数码管显示电路等模块构成[4],如图2.1所示。本设计中由温度传感器检测当前环境温度,再将温度送回到单片机中进行分析处理,在编写的程序中设定温度限值,当检测到温度介于设定值之间时,直流风扇会自动转换到合适的风速档位甚至是关停。这样就真正实现了用温度控制风扇转速,即真正实现了风扇的智能化。图2.1系统总体结构框图2.2硬件选择本设计选用STC89C52单片机作为中央控制器,采用DS18B20数字温度传感器采集实时温度,利用定时器T0对直流电机进行脉宽调速,通过编程完成对直流风扇的智能调控[5]。同时,还借助数码管显示温度。系统硬件设计3.1STC89C52单片机单片机最小系统包括:电源电路、晶振电路和复位电路[6]。本设计中晶振频率为12MHZ,复位电路用于将单片机内部各状态恢复到初始值[7]。本设计中将P0口作为数码管的段选,P2口作为数码管的位选,即将JP10与J12、JP11与J16用杜邦线对应连接;P3.2引脚连接五线四相步进电机的INT7引脚,用以控制直流电机的起停与变速;在所用实验板上默认温度传感器的DQ端与P3.7引脚已连接。单片机体积小,成本低,运用灵活,易于产品化,它能方便的组成各种智能化的控制设备。(a)AT89C52原理图(b)AT89C52接线图图3.1STC89C52电路3.2DS18B20温度传感器电路3.2.1DS18B20的特点DS18B20是DALLS半导体公司推出的全球第一片支持“一线总线”接口的数字温度传感器,可以将温度转化为9~12位串行数字信号,其测温范围为-55℃到125℃[8]。它具有体积小、功耗低、精度高、抗干扰能力强等优点[9]。DS18B20的实物结构如图3.2所示,具备高温触发器TH和低温触发器TL,可以准确反应温度的调节变化[10]。DS18B20的分辨率默认为是12,即最大转换时间为750μs,温度增量为0.0625℃。如图3.3所示,其中VDD是电源正极接入端,GND是电源负极接入端,DQ默认连接P3.7引脚。图3.2DS18B20内部结构图3.3DS18B20实物图DS18B20的暂存寄存器共有9个字节,第0字节为温度值低位第1字节为温度值高位,如图3.4所示[11]。位11是符号位,当S=1时该值为负,计算时需要取反再加1,当S=0时该值为正。由于位0取值2-4,所以读出的温度必须乘以0.0625。图3.4寄存器温度存储3.2.2DS18B20的测温原理如图3.5所示,DS18B20内部有两个不同温度系数的振荡器,其中,低温系数振荡器的震荡频率受温度影响小所产生信号送给减法计数器1,高温系数振荡器的震荡频率受温度影响大所产生信号送给减法计数器2,减法计数器1中被预置与-55℃对应的一个基数值,减法计数器1每次基数被减至0,温度加1℃[12],接着减法计数器1再次从预设值开始做减法,直到减法计数器2的基数减至0,停止温度值的累加。被测的温度值以l6位二进制补码的形式存放在暂存寄存器中,由主机发出读存储器命令读出[13]。图3.5测温原理3.2.3DS18B20的指令访问一个DS18B20必须经过初始化,ROM命令和功能命令[14],如图3.6所示。图3.6DS18B20命令3.3直流电机调速电路单片机输出控制信号不能直接驱动直流电机,需要外接电路驱动[15]。电机接于C端和COM端,与之相应的B端与P3.2相连接,如图3.8所示。本设计采用的是PWM脉宽调制调压,调压调速具有平滑度高、能耗小、精度高等优点,在工业生产中广泛使用,其中PWM应用更为广泛[16]。脉宽调制就是通过调节电压的占空比,来改变平均电压的大小,从而控制直流风扇电机的转速。只要周期足够短就不会看到直流电机明显的关断和导通,在视觉效果上直流电机是匀速转动的。如图3.7所示,V=Vmax×(t1/T)=Vmax×D,平均电压的大小与占空比成成正相关关系,只要改变占空比就可以得到不同的电压。图3.7脉冲信号图3.8直流电机电路3.4显示电路如图3.9(a)所示,一个数码管由8个二极管构成,用来显示数字、字符和小数点。如图3.9(b)所示,数码管分为两种,当共阴极数码管置1或共阳极数码管置0时,该段LED上的二极管导通。数码管显示字符编码,如表3.1所示。显示字符012345678共阴极段码3F065B4F666D7D077F共阳极段码C0F9A4B0999282F880显示字符9ABCDEF-熄灭共阴极段码6F777C395E79714000共阳极段码908883C6A1868EBFFF表3.1数码管显示字型编码图3.9数码管原理图本设计中的数码管显示电路利用8个共阴极数码管,在电路中将段选接于J12,位选接于J16,如图3.10所示。为了防止烧坏数码管,为每段数码管加上限流电阻[17]。显示温度时,数码管从高位到低位逐位显示当前环境温度。由于P0口控制着8位数码管的段选均,所以要想使每个数码管显示不同的字符就必须设置一定的延时逐个显示,只要延时时间短就会造成视觉暂留效果,仿佛数码管同时亮起。(a)数码管原理图(b)数码管接线图图3.10数码管显示电路第四章系统软件设计4.1主程序流程图在主函数中先将温度读取出来再显示,然后根据温度的大小控制电机转速,如图4.1所示。图4.1主程序流程图4.2部分子函数4.2.1延时函数延时函数在数码管显示时进行调用,实现视觉暂留的效果。voidDelay_1ms(uinti)//延时(i*1)ms{ ucharx,j; for(j=0;j<i;j++) for(x=0;x<=148;x++); }4.2.2DS18B20复位函数复位函数用于检测总线上是否有DS18B20响应,还可以清空寄存器的值和之前的一些设置。分析图4.2可知时序为:先给DQ置低电平;延时60μs;接着给DQ赋高电平;延时75μs,准确检测到DS18B20的存在脉冲;检测DQ的高低电平,若为低电平则表示DQ存在,反之复位失败;从4)开始延时最小为480μs,这是初始化过程结束;最后给DQ赋高电平。图4.2DS18B20初始化时序图Reset(void){ // uchardeceive_ready;//定义返回值类型 DQ=0;//赋低电平 delay(29); DQ=1;//赋高电平 delay(3);// deceive_ready=DQ;//检测高低电平 delay(25);// return(deceive_ready);}4.2.3从DS18B20读一个字节函数根据DS18B20读取字节的时序图,先编写读取一位的函数从中读取一位数据,再在读字节的函数中对读位函数进行调用,以达到从DS18B20中读取整个字节的效果。图4.3DS18B20读位时序分析图4.3可知时序为:先给DQ赋低电平;延时3μs;给DQ赋高电平;延时8μs;在12μs时读取总线上的电平;延时60μs;最后给DQ赋高电平。ucharread_bit(void)//读位函数{ uchari; DQ=0; nops(); DQ=1; for(i=0;i<3;i++); return(DQ);//读取位}ucharread_byte(void)//读字节函数{ uchari,m,data_bit; m=1; data_bit=0; for(i=0;i<8;i++) { if(read_bit()) { data_bit=data_bit+(m<<i);//由高位到低位读出字节(8位) } delay(6); } return(data_bit);//返回所读字节}4.2.4数码管显示函数在本设计中,P0口控制段选,P2口控制位选。以便显示实时环境温度。P0=table[temp/10%10];//显示十位温度P2=0xfb;Delay_1ms(5);//延时5ms,以便每位数码管显示不同的字符P0=table[temp%10];//显示个位温度P2=0xfd;Delay_1ms(5);P0=0x58;//显示温度单位P2=0xfe;Delay_1ms(5);4.2.5PWM脉宽调速函数本设计中采用定时器T0的模式一工作方式,即有TMOD=0x01,如表4.1所示D0置1、其它七位置0。在这种模式下满足:T定时=(216-定时初值)×震荡周期×12经计算,当T0定时1ms时定时初值为64536,转换成十六进制为FC18H,所以在高八位赋值0xfc、在低八位赋值0x18。TMODD7D6D5D4D3D2D1D0(89H)GATEC/TM1M0GATEC/TM1M0表4.1定时器/计数器模式寄存器TMOD格式中断函数调用过程如图4.4所示。图4.4中断过程voidTime0(){TMOD=0x01;//模式1工作TH0=0xfc;//12MHZ下,定时1ms,所需初始值为64536TL0=0x18;ET0=1;//开T0中断EA=1;//开CPU中断TR0=1;//启动定时器}voidTime()interrupt1//中断服务程序{staticucharcount=0;//定义静态变量TH0=0xfc;//初始值TL0=0x18;if(count==off){pwm=1;//电机启动}count++;if(count==T){count=0;pwm=0;//电机停止}} 4.2.6温控函数如图4.5所示,当温度被读出来后送入单片机进行分析处理,根据温度限定范围确定直流电机的转速。图4.5流程图if(temp<20){pwm=0;//电机停转}if(20<=temp<30){off=12;//电机低速转动}if(30<=temp<40){off=8;//电机中速转动}if(temp>=40){off=4;//电机高速转动 }总结似乎还记得刚接触到课题时的那种迷茫和无措,在之后的一段时间内都将自己埋在无尽的材料文献中,接着在老师的帮助下渐渐理解自己需要做些什么,到后来的目标清晰,再到如今的毕业设计基本完成,似乎过了许久,也仿佛就在昨天。在本次设计中,有不小的收获但同样有些许遗憾,难以以“一言以蔽之”。毕业设计不仅是对我大学生涯的总结,也是对我的一次较大的考验,这这段时间里,对我的操作能力进行了不小的提升,也为我未来的学习和工作提供了宝贵的经验。通过这次的设计对我们所学习的专业知识有了更清楚的认识,是我不知不觉的喜欢上了我们的专业。现在我可以说,我完全可以单独完成一个简单智能产品的设计加工。在这里我也深刻的知道,我在实践方面是很不够的,这将在以后的工作中慢慢去领悟、学习。这次毕业设计,给我最大的体会就是熟练操作软件来源我们对专业的熟练程度。比如,我们想加快编程程度,除了对各编程指令的熟练掌握之外,还需要掌握硬件方面的知识。在上级对程序进行调试时,不仅要充分理解自己的程序,还要熟悉软件各个功能键的作用,这样才能得心应手。本设计的选题、设计内容及设计的形成是在杨春丽老师的悉心指导下完成的。在毕业设计的完成过程中倾注了老师大量的心血,因此,在设计完成之际,特向我尊敬的老师表达衷心的感谢。在本次设计中,我掌握了研究的及方法和思路。为今后的工作打下了一定的基础,但也发现了自己的一些不足。在之后的时光,我将牢记自己在本次设计中的所得,砥砺前行,不断完善自己。附录Ⅰ部分元件清单序号元件名称元件标号元件型号数量1电容C133pf22电容(2)C2、C320pf23数码管DS1SMG04.114三极管Q1、Q2、Q3、Q4、Q5901255电阻(1)R11K16电阻(2)R210K17电源开关SW1SW(灰色)18单片机U1STC89C5219温度传感器U2DS18B20110晶振Y112M111风扇P3风扇1附录Ⅱ源程序#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#define nops(){_nop_();_nop_();_nop_();_nop_();}//延时函数#definejump_ROM0xCC//跳过ROM#definestart0x44//启动温度转换#defineread_EEROM0xBE//读暂存寄存器sbitDQ=P3^7;//DS18B20数据口unsignedcharTMPH,TMPL;//温度的高八位与低八位//共阴极数码管字符编码ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};sbitpwm=P3^2;//控制电机通断ucharT;//电机转动周期ucharoff; //一周期内低电平时长voiddelay(uintN)//延时子函数{ inti; for(i=0;i<N;i++);}voidDelay_1ms(uinti)//延时子程序,延时时间为1ms*x{ ucharx,j; for(j=0;j<i;j++) for(x=0;x<=148;x++); }Reset(void)//DS18B20初始化{ // uchardeceive_ready;//定义返回值类型 DQ=0;//赋低电平 delay(29); DQ=1;//赋高电平 delay(3);// deceive_ready=DQ;//检测高低电平 delay(25);// return(deceive_ready);}ucharread_bit(void)//从DS18B20读出的一个位值{ uchari; DQ=0; nops(); DQ=1; for(i=0;i<3;i++); return(DQ);}voidwrite_bit(uchardata_bit)//向DS18B20写一位(data_bit){DQ=0;if(data_bit==1)DQ=1;delay(5);DQ=1;}ucharread_byte(void)/从DS18B20读一个字节(8位){ uchari,m,data_bit; m=1; data_bit=0; for(i=0;i<8;i++) { if(read_bit()) { data_bit=data_bit+(m<<i);//由高位开始读 } delay(6); } return(data_bit);}voidwrite_byte(ucharbyt)//向DS18B20写一个字节(byt){ uchari,temp; for(i=0;i<8;i++) { temp=byt>>i;//由低位开始写入 temp=temp&0x01; write_bit(temp); delay(5); }}voidTime0(){TMOD=0x01;//模式一工作TH0=0xfc;//初值TL0=0x18;ET0=1;//开T0中断EA=1;//开CPU中断TR0=1;//启动定时器}voidTime()interrupt1//中断服务程序{staticucharcount=0;TH0=0xfc;TL0=0x18;if(count==off){pwm=1;//电机启动}count++;if(count==T){count=0;pwm=0;//电机关断}} voidmain(){ uinttemp; P2=0x00;T=20;pwm=0; while(1) { Reset();//DS18B20初始化 write_byte(jump_ROM);//跳过ROM write_byte(start);//启动温度转换命令 Reset();//DS18B20初始化 write_byte(jump_ROM);//跳过ROM write_byte(read_EEROM);//读暂存寄存器 TMPL=read_byte(); TMPH=read_byte(); temp=TMPL/16+TMPH*16;//温度实际值 P0=table[temp/10%10];//P0做段选、P2做位选 P2=0xfb; Delay_1ms(5); P0=table[temp%10]; P2=0xfd; Delay_1ms(5); P0=0x58; P2=0xfe; Delay_1ms(5); Time0(); if(temp<20){pwm=0;//电机停转}if(20<=temp<30){off=12;//电机低速转动}if(30<=temp<40){off=8;//电机中速转动}if(temp>=40){of
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国网内蒙古东部电力有限公司高校毕业生招聘(第二批)考试备考试题及答案解析
- 2026广西桂林恭城瑶族自治县中医医院就业见习岗位招募25人笔试模拟试题及答案解析
- 2026江西青山湖产业控股集团面向社会招聘7人考试备考题库及答案解析
- 2026山东省口腔医院(山东大学口腔医院)招聘71人笔试备考试题及答案解析
- 2026北京师范大学海口附属学校(新埠岛校区)招聘34人笔试备考题库及答案解析
- 2026年国有全资企业宣城兆华新材料有限责任公司招聘44名笔试模拟试题及答案解析
- 2026云南曲靖经济技术开发区财政局招聘城镇公益性岗位人员1人考试备考题库及答案解析
- 2026四川凉山州会理市清源水务投资开发建设有限责任公司招聘专业技术人员6人考试备考题库及答案解析
- 2026年2月江苏苏州市航空产业发展集团有限公司招聘5人考试参考试题及答案解析
- 2026辽宁抚顺新钢铁春季校园招聘考试参考题库及答案解析
- 孕妇孕期心理健康指导健康宣教
- 锂产业发展现状及趋势课件
- 第一章 组织工程学-概述
- 211和985工程大学简介PPT
- 【基于7P理论的汉庭酒店服务营销策略14000字(论文)】
- 初中数学:《二次根式》大单元教学设计
- 分清轻重缓急
- 山东大学核心期刊目录(文科)
- 2023年医技类-康复医学治疗技术(中级)代码:381历年考试真题(易错、难点与常考点摘编)有答案
- 噪声及振动环境课件
- GB/T 37140-2018检验检测实验室技术要求验收规范
评论
0/150
提交评论