【基于51单片机的智能温控风扇控制设计14000字(论文)】_第1页
【基于51单片机的智能温控风扇控制设计14000字(论文)】_第2页
【基于51单片机的智能温控风扇控制设计14000字(论文)】_第3页
【基于51单片机的智能温控风扇控制设计14000字(论文)】_第4页
【基于51单片机的智能温控风扇控制设计14000字(论文)】_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

桂林电子科技大学毕业设计(论文)报告用纸[25]。图3-11按键控制电路原理图3.7.1按键消抖按钮持续抖动∶其按钮颤动的持续时间主要原因是由于一个按钮的各种特殊机械、运动性质及其来源所决定的,一般正常情况下它们之间都会出现持续抖动到10ms以内,为了保证能够有效确保一个应用程序检测到一个按钮的一次完全闭合或者一次完全断开并响应一次,必须通过延长时间对该按钮进行消抖,等待闭合或断开稳定后再进行处理。图3-12按键抖动状态图按钮持续抖动∶其按钮颤动的持续时间主要原因是由于一个按钮的各种特殊机械、运动性质及其来源所决定的,一般正常情况下它们之间都会出现持续抖动到10ms以内,为了保证能够有效确保一个应用程序检测到一个按钮的一次完全闭合或者一次完全断开并响应一次,必须通过延长时间对该按钮进行消抖,等待闭合或断开稳定后再进行处理。本设计采用的是软件消抖,最简单的消抖原理,就是让这个抖动完全停止消失后再对其按键进行一次这个按键的内部状态抖动检查,如果和刚才被抖动检查时所得到的按键状态检查是一样,就已经完全可以准确判断和看出这个按键内部是否已经稳定动作。4.单片机智能温控系统软件的设计按钮持续抖动∶其按钮颤动的持续时间主要原因是由于一个按钮的各种特殊机械、运动性质及其来源所决定的,一般正常情况下它们之间都会出现持续抖动到10ms以内,为了保证能够有效确保一个应用程序检测到一个按钮的一次完全闭合或者一次完全断开并响应一次,必须通过延长时间对该按钮进行消抖,等待闭合或断开稳定后再进行处理。本设计采用的是软件消抖,最简单的消抖原理,就是让这个抖动完全停止消失后再对其按键进行一次这个按键的内部状态抖动检查,如果和刚才被抖动检查时所得到的按键状态检查是一样,就已经完全可以准确判断和看出这个按键内部是否已经稳定动作。4.1温控风扇程序设计总体思路智能温控风扇是使用定时器用做风扇的PWM调节实现功能,按键1用来调节手动模式下的加档位和自动模式下的温度加;按键2用来调节手动模式下的减档位和自动模式下的温度减;按键3用来切换手动挡位、自动档位、温度上限调整、温度下限调整。在系统启动电源通电后,对程序以及DS18B20初始化,写入、读取、温度转换等。4.2DS18B20系统初始化程序按照系统初始化时序图的要求表明,初始化的时序流程和操作步骤为:单片机将P2^4口置0持续750μs,这段时间的总线置0会产生一个复位脉冲,然后将总线置1持续时间约15至60us区间内,同时单片机开始收取信号。当总线置1后,DS18B20的系统接收到复位脉冲后,DS18B20等待15到60us,自动发出一个持续60-240us称为应答复位的脉冲来说明目前处于准备工作状态,以此来通知上位机做一些准备性的操作。当单片机收到的初始化信息并延时20us,最后把总线拉高。系统初始化与存在时序结束。图4-1DS18B20初始化时序图voidinit_18b20()//无返回值的初始化函数参数为空{ bitq;//定义q dq=1; //把总线拉高 delay_uint(1); dq=0; //给复位脉冲,拉低总线 delay_uint(80); dq=1; //把总线拉高,等待 delay_uint(10); q=dq; //读取18b20回复初始化信号 delay_uint(20); dq=1; //把总线拉高,释放总线}4.3DS18B20写入程序在单个总线上每个时隙只能够传送一位的数据,写入的时隙分为两种:分别是写0的写时隙和写1的写时隙。在总线处于高电平的情况下,把总线拉低这时候就开始写时隙了,这时候DS18B20有15至60us的数据采集时间且两个写时隙的间隔需留存1us的恢复时间。DS18B20在数据采集期间检测到为高电平,表明单片机向DS18B20写入1,在数据采集期间如果检测到为低电平,表明单片机向DS18B20写入0。图4-2DS18B20写入时序图在18B20持续拉低一条总线后,上位机继续拉低一条总线,就会输出一个书写0的时隙,待书写的时隙全部完成后将总线置1,置1的时间保持60-120us区间内。在连续置0一条总线后,单片机必须在15us内完成对DS18B20的写1与总线置1的过程。写时隙产生后,DS18B20在15至60us的进行总线的数据采集,以此来确定写0还是写1。voidwrite_18b20(uchardat){ uchar;//返回值为无符号字符型 for(i=0;i<8;i++)//i赋一个初值0,当i小于8时,执行for里的语句并且i自加,当不满足i<8时,结束for语句 { //写数据从最低位开始 dq=0; //把总线拉低,读时间隙开始 dq=dat&0x01;//向18b20写数据,以二进制方式保留最低位,其余位取0,保存到变量dq中 delay_uint(5); dq=1; //释放总线 dat>>=1;//表示dat向右移一位 } }4.4DS18B20读取程序单片机在总线为高电平的情况下先把总线置0持续1us再把总线置1后读时隙开始,单片机向DS18B20发出读命令后,DS18B20向总线输出数据。每个读时隙都应该保持60us以上的时间且两个读时隙之间需预留1us的恢复时间。图4-3详细的单片机读1时序图图4-4推荐的单片机读1时序图在读时隙开始后,DS18B20通过高总线保持高电平的手段向总线输送1数据,通过低总线保持低电平的手段向总线输送0数据。当向总线输送0数据的末期,DS18B20让总线保持高电平。向总线输出的数据在读时隙开始后15us内有效,因而单片机释放总线和读总线数据等动作需在15μs内完成。4.5温度转换程序DS18B20将转换的温度数据存放在储存形态是暂存的寄存器的第零和第一个字节当中,当需要获取温度数据时只需要发出读这两个字节的命令。读取温度值发送读取温度命令系统初始化跳过ROM操作读取温度值发送读取温度命令系统初始化跳过ROM操作图4-5读取温度值步骤流程图uintread_temp(){ uintvalue; ucharlow; init_18b20(); //初始化 EA=0;//关闭全部中断,否则影响时序 write_18b20(0xcc);//跳过64位ROM write_18b20(0x44);//温度转换命令 EA=1;//打开全部中断 delay_uint(50); init_18b20(); EA=0; write_18b20(0xcc); write_18b20(0xbe); //发送读取暂存器命令 low=read_18b20(); //读温度低字节 value=read_18b20();//读温度高字节 EA=1; value<<=8; //温度高位左移8位 value|=low; //高低两个字节合成一个整形变量 value*=0.625; //默认12的精度,转换温度值 returnvalue; //返回读出的温度}4.6按键程序流程图硬件设计上设置三个按钮,通过按钮扫描程序key_can进行。按钮左一用来调节手动模式下的加档位和自动模式下的温度加;中间按钮用来调节手动模式下的减档位和自动模式下的温度减;按键右一用来切换手动挡位、自动档位、温度上限调整、温度下限调整。图4-6按键程序流程图5.智能温控风扇系统的调试本次使用的是PZ-ISP普中自动下载软件烧录,通过普中科技实验盒子连接电脑烧录程序在PZ-ISP普中自动下载软件里面把Keil5做好的智能温控风扇系统程序下载到单片机芯片,再把烧录好的单片机芯片放置单片机放置底座上。首先是在Keil5编辑好智能温控风扇的程序了,然后在导航栏build编译并生成HEX文件。其次是打开PZ-ISP普中自动下载软件,在PZ-IS软件的操作栏中找到“芯片类型”和“串口号”,选择的串口号为COM4USB-SERIALCH340,芯片类型选择为STC89CXX(NEW),然后在“打开程序文件”中查找hex文件,选择hex文件,点击下载程序,完成实物的程序下载。通过实物仿真的调试,观察调试过程中模拟仿真到底有没有存在问题,电路有没有短路的情况,元器件在系统仿真中每个元件的功能是否正常,所有的功能是否已经完全实现了。有哪些功能是没有实现的,检查系统是否正常工作,检查出现的问题是程序存在的问题,还是实物元器件存在的问题,有问题,然后进行修改,改完之后再进行调试,调试到实物能够实现所有的功能为止。程序下载到实物后,实物接通电源,打开电源控制开关,四位一体数码管显示实时温度变化,如5-1图所示。图5-1自动模式界面显示实时温度图单击左一的按钮可调整高温设置的温度下降0.1度,通过长按左一按钮可以实现高温设置十分位温度连续下降,当十分位温度下降超过0.3度时,调整为高温设置个位温度连续下降1度;单击中间的的按钮可调整高温设置的温度上升0.1度,通过长按中间按钮可以实现高温设置十分位温度连续上升,当十分位温度上升超过0.3度时,调整为高温设置个位温度连续上升1度;按一下实物面板从左往右数第三个按钮,进入高温设置界面如下图5-2。图5-2设定高温界面图图5-3设定低温界面图按右一键调整至手动档位,数码管显示挡位与实时温度,可以实现0、1、2、3挡位的选择,通过左1键实现减档,中间的按键加档,0档风扇停止如图5-4所示,1档为低速如图5-5所示,2档为中速如图5-6所示,三档为高速如图5-7所示。图5-4手动模式0档界面图图5-5手动模式1档界面图图5-6手动模式0档界面图图5-7手动模式3档界面图6.结论这款智能温控风扇设计、调试已全部完成,基本功能及要求已完全实现,由于本人能力有限,而温控风扇这款设计上还有许多需要改进的地方,能使风扇系统更加智能化、信息化。该智能温控风扇设计在手动挡位下可以调节0、1、2、3挡位,也可以在自动模式下通过设置上下高低温调节风速,通过单片机作为智能温控风扇设计系统的控制核心,键盘、数码管显示器、PNP三极管元器件等构成。这种单片机智能温控风扇相对现在在市场出现还是比较少的,通过更改为更大功率有前景取代传统风扇占据市场。本文以简单结构、实用性强的指导路线,选用单片机作为核心控制系统,加上其他外面电路与传感器元件组成了整个单片机温度控制系统。在设计过程中选用stb18b20温度检测元件,通过程序参数与设置温度进行比较,形成温度信号进行控制风扇风速的结果,达到了实时温度显示和温度控制的功能。本次设计流程如下:系统整体框架设计,根据设计目的与查找资料,选择经济、实用的系统设计方案。元器件选用,根据设计要求以经济、实用、使用方便三大条件排列选择分析;硬件设计,使用AltiumDesigner软件绘画电路原理图,根据电路原理图制作实物;软件设计,根据元器件时序图,设计要求绘画控制流程图,设计单片机程序焊接实物,以元件备份三份的原则准备所需材料,对万用板进行排版焊接,下载程序进行检查;仿真设计,使用仿真软件Proteus绘制仿真动画,结合实物进行错误分析。这次的毕业设计不仅考察了我们的专业基础知识和动手能力,在设计中涉及了很多基础知识,如模电、数电、C语言、计算机基础、传感器应用等领域知识,加强了我们独立创新的思考能力和综合素质能力,更加是巩固了我们大学这几年所学的知识,也是为我们即将踏入社会锻炼前打好的铺垫。参考文献高铭阳.单片机的原理及接口技术[J].电子技术与软件工程,2017,0(4):257-257.郭志勇.单片机应用技术项目教程(C语言版)[M].北京:中国水利水电出版社,2011.1高峰.单片微型计算机原理与接口技术(第2版).北京:科学出版社,2007翟飞飞,刘绍国,戴胜华.温度传感器MAX6662的应用研究[J].单片机与嵌入式系统应用,2009,(1).37-39.DingXiaojin.Ametheodofmeasuringmulti-pointtemperaturebasedonDS18B20[J].ElectronicEngineer,2006,27(7):1-7.WangJinliang.ApplicationofdigitalizedsensorDS18B20inchemicalfiled[J].ForeingElectronicMeasurementTechnology,2005,24(2):18-21.吴少军.实用低功耗设计(原理器件与应用)/单片机应用技术系列[M].人民邮电出版社,2003.杨子文.单片机原理及应用[M].陕西:西安电子科技大学出版社.2006.张伟.单片机原理及应用[M].北京:机械工业出版社.2003.康华光,华中科技大学电子技术课程组.电子技术基础-数字部分(第5版).北京:高等教育出版社,2006.康华光,华中科技大学电子技术课程组.电子技术基础-模拟部分(第5版).北京:高等教育出版社,2006.李维

温馨提示

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

评论

0/150

提交评论