基于单片机的智能电风扇的设计毕业论文.docx
基于单片机的智能电风扇的设计摘要本设计主要实现的功能是,使电风扇分为可切换的手动档和自动档,手动档下分为低速、中速、高速三档,自动档下可自主设置温度值,通过温度传感器采集并显示周围环境温度及设置温度,并依据设定好的温度自动调整风扇的转速,实现风扇的智能化。主要采用直流电机PWM调速系统以AT89C51为控制核心,由命令输入模块、LCD显示模块及电机驱动模块等组成。关键字:直流电机、PWM、单片机一、系统方案的设计与分析1系统的总体框图对于单片机中央处理系统的方案设计,根据要求,我们可以选用具有4KB片内E2PROM的AT89C51单片机作为中央处理器。作为整个控制系统的核心,AT89C51内部已包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰能力强,性价比高。2方案的论证与选择2.1输入模块的论证与选择方案一:独立式键盘。特点是硬件结构简单,编程容易,但是占用的I/O口比较多。方案二:矩阵式键盘。特点是硬件结构复杂,编程复杂,对于按键较多的时候可以节省I/O口。综上两方案,本设计选择方案一。2.2显示模块的论证与选择方案一、数码管显示,特点是耗电少,成本低、寿命长、故障少、可视距离远,但只能显示数字和字母。方案二、LCD1602显示,特点是体积小、功耗低、显示内容丰富,是单片机中常用的信息显示模块。综上两方案,本设计选择方案二。3理论分析与计算3.1 PWM调速原理 基于单片机类由软件来实现:在PWM调速系统中占空比D是一个重要的参数。在电源电压U不变的情况下,电枢电压的平均值取决于占空比D大小,改变D的值可以改变电枢端电压的平均值从而达到调速的目的。改变占空比D的值有三种方法: 定宽调频法:保持1t不变,只改变t,这样使周期或频率也随之改变。 调宽定频法:保持t不变,只改变1t,这样使周期或频率也随之改变。 定频调宽法:保持周期T或频率不变,同时改变1t和t。 前两种方法在调速时改变了控制脉冲的周期或频率,当控制脉冲的频率与系统固有频率接近时,将会引起振荡,因此常采用定频调宽法来改变占空比从而改变直流电动机电枢两端电压。利用单片机的定时计数器外加软件延时等方式来实现脉宽的自由调整。此种方式可简化硬件电路、操作性等优点。 二 硬件电路设计 1 控制系统 单片机AT89C51AT89C51是一种带4K字节FLASH 存储器,带2K字节闪存可编程可擦除只读存储器的单片机。128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。2、驱动模块直流电机驱动芯片L298L298可接受标准TTL逻辑电平信号VSS,VSS可接457 V电压。4脚VS接电源电压,VS电压范围VIH为2546 V。输出电流可达25 A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。3 显示模块LCD1602显示模块工业字符型液晶,能够同时显示16x02即32个字符是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。特性:3.3V或5V工作电压,对比度可调、内含复位电路,提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器 DDRAM,内建有192个5X7点阵字型的字符发生器CGRAM,8个可由用户自定义的5X7的字符发生器CGRAM。特点:微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。4、温度处理DSl820数字温度计提供9位(二进制)温度读数指示器件的温度信息经过单线接口送 入DSl820或从DSl820送出因此从主机CPU到DSl820仅需一条线(和地线)DSl820的电源可以由数据线本身提供而不需要外部电源。DS18B20 的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。DS18B20直接将测量温度值转化为数字量提交给单片机,工作时必须严格遵守单总线器件的工作时序。温度值/ 数字输出(二进制) 数字输出(十六进制) +85 0000 0101 0101 0000 0550H +25.625 0000 0001 1001 0001 0191H +10.125 0000 0000 1010 0010 00A2H+0.5 0000 0000 0000 1000 0008H 0 0000 0000 0000 0000 0000H-0.5 1111 1111 1111 1000 FFF8H -10.125 1111 1111 0110 1110 FF5EH -25.625 1111 1111 0110 1111 FF6FH -55 1111 1100 1001 0000 FC90H三、软件设计程序说明本系统直接应用于AT89C51的软件方法实现PWM信号的输出,这比硬件实现PWM成本低,限制少,实现便捷。PWM脉冲信号是单片机采用延时程序产生的方波信号。PWM脉宽控制是把一脉冲的脉宽均相等的脉冲序列作为PWM波,改变脉冲的宽度或占空比来实现可调速。本设计中采用了定频调宽方式,在这种工作方式下电动机在运转时比较稳定,并且采用单片机产生PWM脉冲的软件实现上比较方便。此外利用定时器让单片机P1口的P1.0、P1.1、P1.2控制L298的IN1、IN2、ENA管脚,输出占空比不同的方波,然后经驱动芯片L298放大后控制直流电动机。在调速时,IN1与IN2引脚一个为低电平,一个为高电平,通过控制L298的ENA,产生驱动电机的PWM信号,并控制电机控制电机。程序流程图开始系统初始化DS18B20初始化LCD1602初始化NY工作模式的选择判断P00是否按下自动控制系统内部设置温度为20速度依据DS18B20内读到的数据与20的差值作为占空比的设置依据手动控制速度控制依据判断P01、P02、P03哪个被按下,设置占空比调用PWM控制速度程序四、调试结果与分析将各个模块按照电路要求连接到相应的位置,并连接好所有的电源线和液晶显示控制线,检查线路是否正确无误。然后将程序下载到单片机中。测试数据如下:手动控制占空比转速(r/min)1档1/4142档1/2453档3/482(P01接的是1档,P0,2接的是2档,P03接的是3档)自动控制(温度C)占空比(%)转速(r/min)200026301932605940100192结果说明:在实际测试中发现高电平所占比例越大,电机转速越快。电机转速测量值比预设的值要大,这里的原因主要是程序中语句导致的延时。因为程序语句本身就有一定的延时,加上C语言编程,一条C语句在进行编译时能编译成好几条汇编语句,有的甚至十几条,这样就增加了延时。同时由于电机转动时会有速度值的波动,所以从按键输入设定值或自动调节时,无法达到最大速度界限。五、参考文献1 楼然苗,李光飞.51系列单片机设计实例M,第二版,北京:北京航空航天大学出版社,2006.22 李军.51系列单片机高级实例开发指南M,第二版,北京:北京航空航天大学出版社,2004.6 3 黄贤武,郑筱霞,传感器原理及其应用 成都:电子科技大学出版社 2002.74 陈伯时,电力拖动自动控制系统,第二版,北京:机械工业出版社,2000年6月,127130 六、总结 这个设计的几大模块比较明确,在编写程序时,我选择先编写出每一个模块,让每一个模块实现其基本的功能,然后再逐步合并模块,来实现设计的要求。在编写程序的过程中遇到了一些问题,通过解决这些问题,我也有了一些收获。 通过本次设计,使自己学到了很多课本上学不到的东西,也让我领会到了单片机技术的应用广泛,同时也进一步加强了自己动手能力和运用专业知识的能力,从中我学会了如何去思考和解决问题。 附录一:原理图附录二:源程序