单片机课程设计智能温控调速风扇.doc

上传人:啊飒飒 文档编号:9959558 上传时间:2021-04-06 格式:DOC 页数:29 大小:1.54MB
返回 下载 相关 举报
单片机课程设计智能温控调速风扇.doc_第1页
第1页 / 共29页
单片机课程设计智能温控调速风扇.doc_第2页
第2页 / 共29页
单片机课程设计智能温控调速风扇.doc_第3页
第3页 / 共29页
单片机课程设计智能温控调速风扇.doc_第4页
第4页 / 共29页
单片机课程设计智能温控调速风扇.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《单片机课程设计智能温控调速风扇.doc》由会员分享,可在线阅读,更多相关《单片机课程设计智能温控调速风扇.doc(29页珍藏版)》请在三一文库上搜索。

1、摘 要 本课程设计基于温度传感器和51单片机控制技术,设计了一种智能温控调速风扇。本设计的温控风扇利用温度传感器DS18B20来检测外界环境的温度,利用数码管显示境温度和风度档位,既可以通过控制按键人工调节开启温度以及风速,也可实现风速的自动控制。并可以将定时时间存入AT24C02芯片,实现数据的掉电保护。风扇共有十个档位,根据PWM来控制调节风扇速度。本论文阐述了智能温控调速风扇的工作原理、硬件设计、软件实现的过程。电风扇的自动控制,可以更加便于人们对风扇的使用。克服了普通电风扇无法根据外界温度自动调节转速的困难。因此,智能电风扇的设计具有重要的现实意义。关键词 单片机;温度传感器 ;直流电

2、机;pwm11设计任务及要求 设计内容硬件设计 硬件设计包括:STC89C52RC单片机整体电路设计、数码管显示电路设计、温度传感器电路、独立按键电路、基于AT24C02掉电保护电路设计。软件设计本次课程设计全部程序均为C语言编写。实现风扇风速的温度自动控制、人工按键控制、定时功能、数码管数据显示和掉电保护功能的智能风扇控制程序。设计要求(1)利用温度传感器DS18B20检测环境温度,通过数码管显示出来。(2)根据温度的高低,输出不同占空比的PWM控制风扇风速。(3)可以选择人工控制还是温度自动控制。(4)可以进行风扇开启时间的定时。(5)为防止突然停电而使数据丢失,需要设计由单片机将数据送到

3、AT24C02模块中储存的模块,使其具有掉电保护功能。(6)可以实现风扇最低开启温度的设定。1 引言1.1 研究背景风扇是我们在日常生活中经常使用的设备,但传统风扇通常是由人为设定风扇的档速,季节交替时节,白天温度很高,电风扇应高转速;到了晚上,气温降低,应该逐步减小转速。但人们在睡眠时通常无法去改变风扇的转速,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风。 1.2论文研究意义为解

4、决上述问题,我们设计了这套温控自动风扇系统。本系统采用高精度集成温度传感器来检测当前环境温度。用51单片机控制,能显示实时检测温度,使用者可以设定开启温度以及定时时间。风扇的转速可以根据温度的变化而改变,也可以人工进行设定风速。这样的智能化控制比起传统的风扇能够更好地适应人们的需要。基于单片机的温度控制风扇是利用单片机来完成的一个小型控制系统。现阶段运用于国内大部分家庭,系统效率越来越高,成本也越来越低。其发展趋势可以根据其性质进行相应的改进可以运用与不同场合的温度监测控制,并带来大量的经济效益。22 设计思路及方案论证2.1设计思路本设计的整体思路是:首先利用温度传感器DS18B20检测环境

5、温度并直接输出数字温度信号给单片机进行处理,在LED数码管上显示当前环境温度值、目前风扇所处的档位。其中预设开启温度值只能为整数形式。同时采用PWM脉宽调制方式来改变直流风扇电机的转速。并通过按键改变预设开启温度值及进行人工控制或者温度自动控制模式的选择。系统结构框图如图2.1所示:STC89C52温度显示档位显示模式显示定时显示独立 按键PWM驱动电路直流电机DS18B20复位晶振AT24C02图2.1系统构成框图2.2方案论证本设计要实现风扇直流电机的温度控制,使风扇电机能根据环境温度的变化自动启停及改变转速,需要比较高的温度变化分辨率以及稳定可靠的换挡停机控制部件。2.2.1 温度传感器

6、的选择在本设计中,温度传感器的选择有以下两种方案:方案一:采用热敏电阻作为检测温度的核心元件,并通过运算放大器放大,热敏电阻会随温度而变化,进而产生输出电压变化信号,再经模数转换芯片ADC0809将电压变化信号转化为数字信号输入单片机处理。方案二:采用数字式的集成温度传感器DS18B20作为温度检测的核心元件,由其检测并直接输出数字温度信号给单片机进行处理。对于方案一,采用热敏电阻作为温度检测元件,价格便宜,元件易购,但热敏电阻对温度的细微变化不太敏感。在信号采集、放大以及转换的过程中还会产生失真和误差。故该方案不适合本系统。对于方案二,由于数字式集成温度传感器DS18B20的高度集成化,大大

7、降低了外接放大转化等电路的误差因数,温度误差变得很小,并且其温度分辨力极高。温度值在器件内部转化成数字量直接输出,简化了系统程序设计,又由于该温度传感器采用先进的单总线技术,与单片机的接口变得非常简洁,抗干扰能力强,因此该方案适用于本系统。2.2.2 控制核心的选择在本设计中采用STC89C52单片机作为控制核心,通过软件编程的方法进行温度检测和判断,并在其I/O口输出控制信号。STC89C52单片机工作电压低,性能高,片内含8k字节的只读程序存储器ROM和256字节的随机数据存储器RAM,它兼容标准的MCS-51指令系统,并且价格低廉,适合本设计系统。2.2.3 温度显示器件的选择方案一:应

8、用动态扫描的方式,采用LED共阴极数码管显示温度。方案二:采用LCD液晶显示屏显示温度。对于方案一,该方案成本低,显示明确醒目,功耗极低,同时温度显示程序的编写也相对简单,但不足的地方是它采用动态扫描的显示方式,因此会产生闪烁,但只要频率设置得当了即可采用该方案。对于方案二,液晶显示屏不仅能显示数字还能显示字符甚至图形,这是数码管无法达到的。但是液晶显示模块的价格昂贵,显示驱动程序的编写也较复杂,从简单实用的原则考虑,本系统采用方案一。2.2.4 调速方式的选择方案一:采用数模转换芯片DAC0832来控制,由单片机根据当前环境温度值输出相应数字量到DAC0832中,再由DAC0832产生相应模

9、拟信号,从而通过无级调速电路实现风扇电机转速的自动调节。方案二:采用单片机软件编程实现PWM调速的方法。利用定时器,当高电平时间到时,对I/O口电平取反,使其变成低电平;当低电平时间到时,再对该I/O口电平取反,如此循环即可得到PWM信号。对于方案一,该方案能够实现对直流风扇电机的无级调速,速度变化灵敏,但是D/A转换芯片的价格较高,性价比不高。对于方案二,相对于其他用硬件或者软硬件相结合的方法实现对电机进行调速而言,采用PWM 用纯软件的方法来实现调速过程,具有更大的灵活性,并可大大降低成本。综合考虑选用方案二。6 各个单元模块的硬件设计3各个单元模块的硬件设计系统主要器件包括DS18B20

10、温度传感器、STC89C52单片机、LED共阳极数码管、达林顿反向驱动器ULN2803、按键等。3.1系统器件及理论简介3.1.1 STC89C52单片机简介STC89C52RC单片机介绍STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。8K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间;可直接使用串口下载;共3 个16 位定时器/计数器。即定时器T0、T1、T2,并且具有EEPROM 功能。在许多许多较复杂的控制系统中STC89C52单片机得到了广

11、泛的应用。STC89C52有40个引脚。 图3.1 STC89C52单片机3.1.2 DS18B20单线数字温度传感器简介DS18B20数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理,适用于各种狭小空间设备数字测温和控制领域6。DS18B20的主要特征:测量的结果直接以数字信号的形式输出,以“单线总线”方式串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;温度测量范围在-55 +125之间,在-10 +85时精度为0.5,可实现高精度测温;它单线接口的独特性,使它与微处理器连接时仅需一条端口线即可实现

12、与微处理器的双向通信;支持多点组网功能,即多个DS18B20可以并联在唯一的三线上,实现组网多点测温的功能;工作电压范围宽,其范围在3.05.5V。 3.1.4 达林顿反向驱动器ULN2803简介 单片机控制风扇直流电机,需要加驱动电路,为直流电机提供足够大的驱动电流。在本系统中,选用达林顿反向驱动器ULN2803来驱动风扇直流电机。ULN2803在使用时接口简单,操作方便,可为电机提供较大的驱动电流。 ULN2803由8个NPN达林顿晶体管组装而成,共18个引脚,引脚18分别是8路驱动器的输入端,输入信号可直接是TTL或CMOS信号;引脚1118分别是8路驱动器的输出端;引脚9为接地线,引脚

13、10为电源输入。当输入TTL信号为5V或CMOS信号为615V时,输出的最大电压为50V,最大电流为500mA。下图3.4为ULN2803的结构图。图3.4 ULN2803的结构图3.1.5 LED数码管简介本系统选用LED数码管来进行数据显示。它主要是由8段发光二极管组成。 LED数码管可以分为共阴极和共阳极两种结构。字形与段选码的关系见表3.1所示。表3.1 7段LED的段选码表显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03fHC0H87fH80H106HF9H96fH90H25bHA4HA77H88H34fHB0HB7fH83H466H99HC39HC6H56dH92HD3

14、fHA1H67dH82HE79H86H707HF8HF71H8EH3.1.6 74573芯片简介 74HC573是拥有八路输出的透明锁存器,输出为三态门,是一种高性能硅栅CMOS器件。当使能为高时,Q 输出将随数据输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。74573引脚如图3.6所示。图3.6 74573引脚图AT24C02芯片简介AT24C0

15、2是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个8字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。3.2 主要部分电路设计3.2.1 DS18B20传感器连接电路 DS18B20数字温度传感器通过其内部计数时钟周期来的作用,实现了特有的温度测量功能。外围电路简单。在本设计中将DS18B20接在P1.3口实现温度的采集。DS18B20与单片机的连接如图3.7图3.7温度传感器连接电路3.2.2数码管显示电路本设计制作中选用8位共阳极数码管作为显示模块,它和单片机硬件的

16、接口如图3.8所示。其中P0口需接一个10K的上拉电阻,以使单片机的P0口能够输出高低电平。图3.8 数码管显示连接电路数据存储电路本设计选用AT24C02作为存储芯片,可以将定时时间和最低开启温度保存,方便下次开机使用。电路图如下:3.2.4 独立键盘连接电路键盘包括8个独立按键,它们的一端与单片机的P2口相连,另一端接地,当按下任一键时,P2口读取低电平有效。系统上电后,进入键盘扫描子程序,以查询的方式确定各按键,完成按键控制。其接线图如图3.9所示:图3.9 独立键盘连接电路3.2.3风扇电机的连接电路本设计中由单片机的I/O口输出PWM脉冲,通过一个达林顿反向驱动器ULN2803驱动电

17、机以及实现风扇速度的调节。由单片机通过P2.4口输出PWM脉冲,经过ULN2803驱动,实现电机转速与启停的自动控制。,风扇电机的一端接12V电源,另一端接ULN2803的OUT7引脚,ULN2803的IN7引脚与单片机的P3.1引脚相连,通过控制单片机的P3.1引脚输出PWM信号,由此控制风扇直流电机的速度与启停。电路如图3.10所示。 图3.10风扇电机的连接电路3.2.3 开关复位与晶振电路在单片机应用系统中,除单片机本身需要复位以外,外部扩展I/O接口电路也需要复位,因此需要一个包括上电和按钮复位在内的系统同步复位电路。单片机上的XTAL1和XTAL2用来外接石英晶体和微调电容,当按下

18、按键开关SW1时,系统复位一次。晶振为11.0592MHz。系统复位图与晶振电路如图3.11所示。16 图3.11系统复位图与晶振电路4 软件设计4.1 程序设计程序设计部分主要包括主程序、DS18B20初始化程序、DS18B20温度转换程序、温度读取程序、键盘扫描程序、数码管显示程序、温度处理程序、AT24C02掉电保护程序以及风扇电机控制程序。DS18B20初始化程序完成对DS18B20的初始化;DS18B20温度转换程序完成对环境温度的实时采集;温度读取程序完成主机对温度传感器数据的读取及数据换算,键盘扫描程序则根据需要完成初始的开启温度值的加减设定;温度处理程序对采集到的温度进行分析处

19、理,为电机转速的变化提供条件;数码管显示程序主要完成的是目前环境温度大小的显示,摄氏度符号的显示,预设值开启温度大小的整数显示和设定的温度差的显示以及目前风扇所处档位的显示。风扇电机控制程序则根据温度的数值完成对电机转速大小的控制。主程序流程图如图4.1 图4.1 主程序流程图中断程序流程图参考文献:1 赵继文. 传感器与应用电路设计M. 北京:科学出版社. 2008.87-1082 公茂法,黄鹤松,杨学蔚.单片机原理与实践M.北京:北京航空航天大学出版社,2009.78-973 张迎新.单片机初级教程M.北京:北京航空大学出版社,2006.75-894 STC89C52RC单片机用户手册S.

20、宏晶科技.2007.5 赵永杰,徐源.基于 DS18B20 的温度测量系统J现代电子技术,2008,31( 10) : 157-159致 谢 经过两个星期的努力,在老师和学长们的指导下我成功的设计出了温控风扇,该温控风扇以51单片机为核心,主要用到AT24C02,74HC573,DS18B20等芯片,通过数码管显示、按键控制、掉电保护等模块,实现了风扇自动控制功能。这次单片机课程设计,全部程序均为C语言编写。通过这次设计加深了我对C语言应用的理解,提高了使用C语言编程的能力,使知识与实践的结合提供了可能。当然,不仅在于软件层面,这次课程设计让我对软硬件的结合的认识程度也得到了加深。在整个设计过

21、程中,我与同学们交流实践中的经验,虚心请教学长们我在设计方面的不足,让我重新巩固了过去学过的电路、单片机、C语言等一系列课程的内容,为以后的学习奠定了更深厚的基础。在这里,感谢老师,感谢学长,感谢同学们对我的帮助,使我顺利完成了此次课程设计。知识在于实践是我这次设计过程中最大的收获,如果光学习知识不进行试验,那只是空谈,对自己的成长几乎没有多大帮助,但也不能否认扎实的知识基础对实践的成功起到不可磨灭的作用。总之,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是正确的理论,才能真正提高自己实际动手能力和独立思索的能力。 48附录1:电路总图44 附录2:实物图实物图45 系统调试5

22、系统调试5.1 软件调试5.1.1 按键显示部分的调试起初根据设计编写的系统程序:程序的键盘接口采用P1口,数码管的显示采用P0口控制LED的段码,P2口控制LED的位码,从而实现键盘功能及数码管的显示。经过编译没有出错,但在仿真调试时,数码管的显示的只是乱码,没有正确的显示温度,按键功能也不灵,当按下键时,显示并不变化。经过查找分析,发现键盘扫描程序没有按键消抖的部分,按键在按下与松手时,都会有一定程度的抖动,从而可能使单片机做出错误的判断,导致按键条件预设温度时失灵,甚至根本不能工作。因此必须在按键扫描程序中加入消抖的部分,即在按键按下与松手时加入延时判断,以检测键盘是否真的按下或已完全松

23、手。数码管不能正确的显示,主要是因为所以数码管的段码都由P0口传送,而数码管的显示又采用了动态扫描的方式,但在程序中却没有设置显示段码的暂存器,导致当P0口传送段码时发生混乱,不能正确识别段码。应在系统中加入锁存器,或是在程序中设定存储段码的空间。在键盘加入了消抖的程序,数码管显示程序中加入了段码的存储空间后,数码管能够正常的显示,按键也能够工作,达到了较好的效果。5.1.2 传感器DS18B20温度采集部分调试由于数字式集成温度传感器DS18B20的高度集成化,为软件的设计和调试带来了极大的简便,小体积、低功耗、高精度为控制电机的精度和稳定提供了可能。软件设计采用P3.1口为数字温度输入口,

24、但是需要对输入的数字信号进行处理后才能显示,从而多了温度转换程序。通常只显示了预设温度的整数部分。在温度转换程序中,为了能够正确的检测并显示温度的小数位,程序中把检测的温度与10相乘后,再按一个三位的整数来处理。如把24.5变为245来处理,这样为程序的编写带来了方便。5.1.3 电动机调速电路部分调试在本设计中,软件设置了P3.0口输出不同的PWM波形,通过达林顿反向驱动器ULN2803驱动直流电机转动,通过软件中程序设定,根据不同温度输出不同的PWM波,从而得到不同的占空比控制风扇直流电机。本程序的PWM程序的设定方法为将设定的PWM方波的周期设定为定值,每个档位增大一档时,高电平所占的占

25、空比增加。在本系统中风扇电机的转速可实现五个档位调速。通过温度传感器检测的温度与系统预设温度值的比较,实现转速变换。当检测到的温度比预设的温度每增加设定的温度差的大小时,风扇电机档位增加一档。5.2 硬件调试5.2.1 按键显示部分的调试系统按键部分实现了以下功能:按下P1.0口键,LED显示温度值增1;按下P1.1口键,LED的后两位显示温度值减1;按下P1.3口键温度差增加1。调试过程中出现了当按键时间过长时,设置的温度值不是增加1或者减小1而是增加后减少几个值,出现这种情况的主要原因可能是按键的去抖动延时时间过长造成,改进方法为将对应的按键去抖动延时时间适量增加,但也不应过长,否则将出现

26、按键无效的情形。系统显示部分实现了以下功能:LED显示的前三位实现了环境温度整数部分与小数部分的连续显示,LED的后两位能根据按键的调整显示所需要的设计温度。且LED的显示效果很好,很稳定。5.2.2 传感器DS18B20温度采集部分调试将DS18B20芯片接在系统板对应的P3.7口,通过插针在对应系统板的右下侧三口即为对应的VCC、P3.7和GND,可将芯片直接插在该插针上,因此即为方便。系统调试中为验证DS18B20是否能在系统板上工作,将手心靠拢或者捏住芯片,即可发现LED显示的前两位温度也迅速升高,验证了DS18B20能在系统板上工作。由于DS18B20为3个引脚,因此在调试过程中因注

27、意其各个引脚的对应位置,以免将其接反而是芯片不能工作甚至烧毁芯片。5.2.3 电动机调速电路部分调试系统本部分的设计中重在软件设计,因为外围的驱动电路只是将送来的PWM信号放大从而驱动电机转动。系统软件设置在P3.7口输出使电机转动的PWM占空比,当环境温度高于设置温度时,电机开始转动,若此时用高于环境温度的热源靠近测温芯片DS18B20时,发现电机的转速在升高,并越来越快,当达到一定值时,发现电机的转速不再升高;将热源离开测温芯片DS18B20时,发现电机的转速开始下降,转速达到一定值时,若将设置温度升高到环境温度以上,发现电机又停止了转动。系统采用的直流电机为12V的额定电压,而该驱动电路

28、在采用单片机电源时的输出电压最高不过5V,因此在调试过程中只采用了原有的5V直流电机来调试,且得到了可观的控制效果。5.3 系统功能5.3.1 系统实现的功能本系统能够实现单片机系统检测环境温度的变化,然后根据环境温度变化来控制风扇直流电机输入占空比的变化,从而产生不同的转动速度,亦可根据键盘调节不同的设置开启温度,再由环境温度与设置温度的差值来控制电机。当环境温度低于设置温度时,电机停止转动;当环境温度高于设置温度时,单片机对应输出口输出不同占空比的PWM信号,控制电机开始转动,并随着环境温度与设置温度的差值的增加电机的转速逐渐升高。 系统能动态的显示当前温度和设置温度,并能通过键盘调节当前

29、的设置温度。系统设置了不同的温度差,当温度每升高一个温度差的大小,风扇的档位会相应的加大一档,所处的当前档位会通过数码管显示出来。5.3.2 系统功能分析系统总体上由五部分来组成,既按键与复位电路、数码管显示电路、温度检测电路、电机驱动电路。首先考虑的是温度检测电路,该部分是整个系统的首要部分,首先要检测到环境温度,才能用单片机来判断温度的高低,然后通过单片机控制直流风扇电机的转速;其次是电机驱动电路,该部分需要使用外围电路将单片机输出的PWM信号转化为平均电压输出,根据不同的PWM波形得到不同的平均电压,从而控制电机的转速,电路的设计中采用了达林顿反向驱动器ULN2803,实现较好的控制效果;再次是数码管的动态显示电路,该部分的功能实现对环境温度和设置温度的显示,其中DS18B20采集环境温度,按键实现不同设置温度的调整,实现了对环境温度和设置温度的及时连续显示。40 附录4:中英文资料翻译55

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1