数字电风扇模拟控制系统设计.docx
《数字电风扇模拟控制系统设计.docx》由会员分享,可在线阅读,更多相关《数字电风扇模拟控制系统设计.docx(26页珍藏版)》请在冰豆网上搜索。
数字电风扇模拟控制系统设计
泉州师范学院
毕业论文(设计)
题目数字电风扇模拟控制系统设计
物信学院电子信息科学与技术专业07级电信班
学生姓名卢晗辉学号070303003
指导教师袁放成职称教授
完成日期2011年4月
教务处制
数字电风扇模拟控制系统设计
物信学院电子信息科学与技术专业070303003卢晗辉
指导老师袁放成教授
【摘要】该数字电风扇模拟控制系统以单片机STC89C52为主控制核心控制风扇功能,通过单片机控制L298N芯片驱动风扇实现三个档位的转速,温度传感器DS18B20实现温度的采集,并且具有定时功能,液晶LCD1602实现了显示风扇的工作状态、温度、动态倒计时显示剩余的定时时间。
文章主要介绍了该数字电风扇模拟控制系统的硬件电路设计和软件设计。
【关键词】数字电风扇模拟系统;单片机STC89C52;风扇功能;LCD显示;
2.4单片机STC89C52主控制模块......................................................10
3.1软件设计流程图..................................................................13
3.2占空比.........................................................................13
6设计总结与感受.......................................................................15
7致谢.................................................................................16
附录PCB图...........................................................................19
引言
电风扇曾一度被认为是空调产品冲击下的淘汰品,其实并非如此。
市场人士称,家用电风扇并没有随着空调的普及而淡出市场,近两年反而出现了市场销售复苏的态势。
其主要原因:
一是风扇和空调的降温效果不同,空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人、儿童和体质较弱的人使用;二是电风扇有价格优势,价格低廉而且相对省电,安装和使用都非常简单。
随着电子技术以及单片机技术的发展,人们对风扇的要求越来越高,尤其是电风扇的智能化及人性化等方面,且电风扇的人性化显得更为重要。
本文基于单片机控制系统设计了一款较为人性化的数字电风扇模拟系统。
1.设计指标要求
(1)电风扇产生三类风:
“自然风”、“常风”和“睡眠风”;
(2)电风扇具有定时工作功能及倒计时工作功能;
(3)具有省电模式:
外界温度低于临界温度,电风扇停止转动;外界温度高于临界温度,电风扇可恢复转动;
(4)LCD液晶显示:
实时显示电风扇的工作状态,包括风类显示、定时时间显示、动态倒计时剩余时间。
2.系统设计
系统设计框图如图2-1所示。
LCD1602
显示器
STC89C52主控制模块
数字温度计DS18B20
双全桥驱动器
L298N
电机驱动模块
按键模块
直流电机风扇
图2-1数字电风扇模拟系统的设计框图
2.1直流电机风扇
直流电机是一种能实现机电能量转换的电磁装置,它能使绕组在气隙磁场中旋转感生出交流电动势,并依靠换向装置,将此交流电变为直流电。
其产生交流电的物理根源在于,电机中存在磁场和与之有相对运动的电路,即气隙磁场和绕组。
旋转绕组和静止气隙磁场相互作用的关系可通过电磁感应定律和电磁力定律来分析。
根据电磁感应定律,在恒定磁场中,当导体切割磁场磁力线时,导体中将感应电动势。
如果磁力线、导体及其运动方向三者互相垂直,则导体中产生的感应电动势的大小为
图2-2
式中,b为磁感应强度,单位为t;
为导体切割磁力线的有效长度,单位为m;
为导体切割磁场的线速度,单位为m/s;
为导体感应电动势,单位为v。
依据电磁力定律,当磁场与载流导体相互垂直时,如图2-2(a)所示,作用在载流导体上的电磁力为
式中,
为载流导体中电流,单位为a;
为电磁力,单位为n。
电磁力的方向用左手定则确定,如图2-2(b)所示。
直流电机的工作原理是基于载流导体在磁场中受力产生电磁力形成电磁转矩的基本原理。
但要获得恒定方向的转矩,需将其外电路的直流电流变为绕组中的交流电流,即同样需要机械整流装置。
直流电机的基本结构与直流发电机相同,如图2-3所示,此时a、b电刷接在直流电源上,电机的轴上带着被拖动的负载。
图2-3
当直流电流从电刷a流人,经换向片1、线圈abcd、换向片2,由电刷b流出时,如图2-3(a)所示,载流导体在磁场中将受到电磁力的作用,据左手定则,使线圈沿逆时针方向转动。
当电枢转过半周时,如图2-3(b)所示,dc处于n极下,ab处于s极下,此时电流仍从电刷a流入,经换向片2、线圈dcba、换向片1,最后由电刷b流出,据左手定则,此时线圈仍然沿逆时针方向转动。
因此,电枢将沿一个恒定方向转动。
实际上,直流电机风扇的电枢上有许多线圈,这些线圈产生的电磁转矩合成为一个总的电磁转矩,拖动负载转动。
总之,在上述直流电机的工作过程中,单从电枢线圈的角度看,每个导体中的电流方向是交变的;但从磁极看,每个磁极下导体中电流的方向是固定的,即不管是哪个导体运行到该极下,其中的电流方向总是相同的。
因此,直流电机风扇可获得恒定方向的电磁转矩,使电机持续旋转。
这就是直流电机的工作原理。
这次选用的直流电机风扇型号是小型CPU散热风扇,额定电压为12V,额定功率为0.25W。
2.2双全桥功率放大芯片L298N
2.2.1双全桥功率放大芯片L298N介绍
采用L298N来驱动风扇的直流电机,L298N是恒压恒流桥式2A驱动芯片,内部包含4通道逻辑驱动电路,可以驱动两个直流电机,或两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压。
可以直接用单片机的I/O口提供信号[7][8]。
引脚排列如图2-4所示,各引脚功能为:
15引脚-输出电流反馈引脚,在通常使用中这两个引脚也可以直接接地。
2、3引脚-此两脚是全桥式驱动器A的两个输出端,用来连接负载。
4引脚-Vs,电机驱动电源输入端。
5、7引脚-输入标准的TTL逻辑电平信号,用来控制全桥式驱动器A的开关。
6、11引脚-使能控制端.输入标准TTL逻辑电平信号;低电平时全桥式驱动器禁止工作。
8引脚-接地端,芯片本身的散热片与8脚相通。
9引脚-逻辑控制部分的电源输人端口。
10、12引脚-输入标准的TTL逻辑电平信号,用来控制全桥式驱动器B的开关。
13、14引脚-此两脚是全桥式驱动器B的两个输出端,用来连接负载。
图2-4L298N的引脚图
由于只需要驱动一个电机风扇,所以本设计只用了双桥功率放大芯片L298N的A路驱动。
PWM波输入为引脚6,转向控制信号输入为引脚5与引脚7,输出信号为引脚2与引脚3
2.2.2双全桥功率放大芯片L298N电路工作原理
双全桥功率放大芯片L298N在本设计中用来控制直流风扇电机的转向及转速。
1.转向控制
电风扇转动状态与L298N的输入编码如表2-1所示:
表2-1电风扇转动状态编码
IN1
IN2
电机转动状态
1
0
正转
0
1
反转
1
1
停止
表中IN1和IN2为转动控制信号,由单片机控制并通过光电耦合器进行耦合。
2.转速控制
电风扇的调速是采用脉宽调制(PWM)信号来完成的。
其原理是由单片机控制L298N的使能端,使
风扇电机输入电压为PWM电压,则电风扇两端的平均电压U=Vcc*(t/T)=qVcc,q为PWM波的占空比。
电风扇的转速与电风扇两端的电压成比例,所以与PWM波的占空比成正比。
PWM波的占空比由单片机控制,从而可达到智能控制电风扇转速,而产生不同强度的风。
L298N的驱动电路如图2-5所示,图中二极管用来续流保护。
图2-5L298N的驱动电路
2.2.3光电耦合器TLP521芯片介绍
光电耦合器是一种把红外光发射器件和红外光接受器件以及信号处理电路等封装在同一管座内的器件。
当输入电信号加到输入端发光器件LED上,LED发光,光接受器件接受光信号并转换成电信号,然后将电信号直接输出,或者将电信号放大处理成标准数字电平输出,这样就实现了“电-光-电”的转换及传输,光是传输的媒介,因而输入端与输出端在电气上是绝缘的,也称为电隔离。
TLP521-4是内部含有独立的四个光电耦合器构成的芯片。
每个光电耦合器的结构图如图2-7所示。
光电耦合器的作用是免干扰由输出通道传入控制微机,吸收尖峰干扰信号,所以具有很强的抑制噪声干扰能力,作为开关时,耐用,可靠性高和转换速度高,作高压开关,信号隔离转换脉冲系统间的匹配。
图2-6光电耦合器结构图
2.3数字温度计DS18B20
数字温度计DS18B20特征:
(1)全数字温度转换及输出;
(2)先进的单总线数据通信;
(3)最高12位分辨率,精度可达土0.5摄氏度;
(4)12位分辨率时的最大工作周期为750毫秒;
(5)可选择寄生工作方式;
(6)检测温度范围为–55°C~+125°C(–67°F~+257°F);
(7)内置EEPROM,具有限温报警功能;
(8)64位光刻ROM,内置产品序列号,方便多机挂接;
(9)多样封装形式,适应不同硬件系统。
数字温度计DS18B20引脚排列如图2-8所示。
图2-7数字温度计DS18B20引脚图
数字温度计DS18B20的工作电压为3V~5V[4][5]。
其内部的高速缓存RAM是9个字节的存储器,如表2-1所示。
第6、7、8个字节保留不使用。
第9个字节是前面8个字节的CRC检验码,用来检验数据,保证通信数据的正确性。
第3个和第4个字节,是非易失性温度报警触发器TH和TL的易失性拷贝,每次上电复位时被刷新。
表2-2高速缓存RAM
温度传感器测得的温度值,以16位二进制数表示,低8位存放于高速缓存RAM的第1个字节,高8位存放于高速缓存RAM的第2个字节。
读DS18B20的数据时,低位在前,高位在后。
这16位二进制数的最前面5位表示温度的正负,若S=0表示测得的温度大于或等于0,若S=1表示测得的温度小于0。
温度为正时,将测得的温度值所表示的二进制数,转换成十进制数,再乘以0.0625,就可以得到实际的温度值。
温度为负时,将测得的温度值所表示的二进制数,取反加1先变成原码,然后转成十进制数,再乘以0.0625,就可以得到实际的温度值。
如二进制数0000000110010001,除前5位符号位外,先转成十进制数得401,再乘以0.0625得25.0625,因为16位二进制数的前5位是0,所以实际温度为+25.0625度。
如二进制数1111110010010000,除前5位符号位外,先取反加1得01101110000,转成十进制数得880,再乘以0.0625得55,因为16位二进制数的前5位是1,所以实际温度为-55度。
表2-3数字温度计DS18B20温度数据表
由于数字温度计DS18B20是在一根I/O线上进行通信,因此有着严格的通信协议,该通信协议定义了几种信号:
复位脉冲、存在脉冲、写0、写1、读0、读1。
所有这些信号,除存在脉冲是由数字温度计DS18B20(从机)发出的外,其余都是由单片机(主机)发出的。
(1)数字温度计DS18B20的复位操作
单片机和数字温度计DS18B20间的任何通信都需要以初始化过程开始。
初始化过程就是单片机发出一个复位脉冲,跟着如果检测到数字温度计DS18B20的存在脉冲,表明数字温度计DS18B20已经准备好发送或接收数据。
具体的初始化过程,主机首先发出一个480~960us的低电平脉冲,然后释放总线变为高电平,并在随后的480us的时间内对总线进行检测。
如果有低电平出现,说明总线上有数字温度计DS18B20已做出应答。
若无低电平出现一直都是高电平,说明总线上无数字温度计DS18B20应答。
作为从机的数字温度计DS18B20在一上电后,就一直在检测总线上是否有480~960us的低电平(复位脉冲)出现。
若有就在总线转为高电平后等待15~60us后,将总线电平拉低60~240us作为存在脉冲做出响应,告诉主机数字温度计DS18B20已做好准备。
若没有检测到就一直在检测等待。
图2-9初始化过程“复位脉冲”和“存在脉冲”
(2)数字温度计DS18B20的读操作
读周期最短为60us。
对于读操作分为读0和读1操作两个过程。
若从机要往总线送出0,在主机把总线拉低1us后,则继续拉低电平最少15us。
若从机要往总线送出1,在主机把总线拉低1us后,就释放总线为高电平,一直到读周期结束。
而作为主机的单片机,必须在读周期开始的15us内,对总线进行采样,在采样时间内总线若为高电平则表示读1,在采样时间内总线若为低电平则表示读0。
图2-10DS18B20的读操作时序
(3)数字温度计DS18B20的写操作
写周期最短为60us,最长不超过120us。
对于写操作也分为写0和写1操作两个过程。
若主机想写0,在主机先把总线拉低1us后,则继续拉低电平最少60us直至写周期结束,然后释放总线为高电平。
若主机想写1,在主机先把总线拉低1us后,就释放总线为高电平,一直到写周期结束。
而作为从机的数字温度计DS18B20则在检测到总线被拉低15us后,在紧接着的15us~45us开始对总线采样,在采样时间内总线若为高电平则表示写1,在采样时间内总线若为低电平则表示写0。
图2-11DS18B20的写操作时序
2.4单片机STC89C52主控制模块
STC89C52单片机的40个引脚大致可分为4类:
电源、时钟、控制和I/O引脚。
STC89C52单片机最小系统如图2-12所示【1】【2】。
图2-12STC89C52单片机最小系统
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,
这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口作为AT89C52的一些特殊功能口,管脚备选功能如下:
P3.0RXD(串行输入口),P3.1TXD(串行输出口),P3.2/INT0(外部中断0),P3.3/INT1(外部中断1),P3.4T0(记时器0外部输入),P3.5T1(记时器1外部输入),P3.6/WR(外部数据存储器写选通),P3.7/RD(外部数据存储器读选通)。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程
序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
STC系列单片机的下载编程电路非常简单,只要通过单片机的串口的发送和接收引脚,再经过电平转换与电脑连接,通过专用软件下载程序,就可以实现程序的可在线编程,程序下载速度快。
由于单片机的电平是TTL电平,而计算机的电平是属于CMOS电平,所以单片机若要与PC机进行通信,则必须进行电平转换,而通常采用的电平转换芯片是MAX232,它能实现单片机逻辑电平与电脑的电平之间的相互转换,从而实现之间的相互通信,其芯片引脚图如图2-13所示。
图2-13MAX芯片引脚图
串口下载电路如下图2-14。
图2-14串口下载电路图
2.5LCD1602显示模块
LCD1602是两行十六位的显示器,主要是通过RS、R/W、E与单片机相接,DB0-DB7数据传送接口与单片机的I/O口相接,由单片机程序编程来控制显示内容,该LCD带背光源,所以BLA需接电源、BLK接地,来使显示比较清晰,LCD1602与单片机的接法如图2-15所示[6]。
图2-15LCD显示电路
2.6键盘模块
本设计采用独立式按键。
独立式按键是一组相互独立的按键,它们分别直接与I/O口电路连接,每个按键占用一根输入口线。
独立式键盘配置比较灵活,软件结构简单,担当案件较多时,输入口线浪费较大。
由于只需要五个按键,为了方便软件编程,故采用独立式按键。
五个按键的功能分别为
按键1:
强风
按键2:
自然风
按键3:
睡眠风
按键4:
定时时间选择
按键5:
定时开始
2.7直流稳压电源
在本设计中,需一路+12V和四路+5V电源为系统供电。
电源是由实验室直流稳压电源经一片稳压芯片LM7812和4片稳压芯片LM7805获得。
+12V电源为L298N供电,四路+5V电源分别为单片机,数字温度、光电耦合器供电。
3.软件程序设计
3.1软件设计流程图
开始
初始化
显示当前温度
Y
N
NY
N
Y
Y
N
N
Y
3.2占空比
强风键、自然风键、睡眠风键所对应的占空比如图3-1所示
占空比1:
6
图3-1强风键、自然风键、睡眠风键所对应的占空比
在此次设计中,由STC89C52利用定时器1产生占空比可变的PWM波。
程序如下:
voidt0_int()interrupt3
{
TH1=0xe0;
TL1=0xc0;
if(N>11)N=0;
elseN++;
if(N==M)
PWM=0;
elseif(N==0)
PWM=1;
}
单片机晶振为11.0592M,周期是1.085us,根据程序可知,定时器每(65536-57536)*1.085us产生一次中断,PWM波的频率为1/【12*(65536-57536)*1.085】*106hz,即9.6hz。
PWM波的频率不能太高,否则会与DS18B20温度传感器读取温度产生冲突,导致温度显示不稳定。
当强风键按下时,M=9,即产生了9*(65536-57536)*1.085us的高电平,3*(65536-57536)*1.085us的低电平,因此占空比为3:
4。
.
当自然风键按下时,M=3,即产生了3*(65536-57536)*1.085us的高电平,9*(65536-57536)*1.085us的低电平,因此占空比为1:
4。
.
当睡眠风键按下时,M=2,即产生了2*(65536-57536)*1.085us的高电平,10*(65536-57536)*1.085us的低电平,因此占空比为1:
6。
4.硬件电路的焊接与调试
考虑到本系统所用元器件较少,大部分功能都是通过软件编程来实现,因此本次设计选用是单面的PCB板。
板子做好后对照原理图和PCB检查,再用万用表检查是否有虚焊或断路,保证所制作出来的线路与原设计线路的一致性。
4.1焊接注意的事项:
1、注意事项
(1)焊接时间不宜过久,但要完全熔着,以免造成冷焊
(2)注意不要有虚焊
(3)线路上不相连的器件在焊接时不能因为器件相隔距离小,而造成焊点相连
(4)焊点的表面要平滑、有光泽
2、焊接顺序
主要应该注意先焊接小的器件,最后焊接大的;在焊接好后应先拿开焊丝再拿开电烙铁
4.2硬件电路的调试
(1)调试硬件电路时。
用万用表测试所有芯片的电源和地是否确实接电源和接地了,测试各个芯片是否处于正常的工作电压,并测试电路是否有短路、断路、虚焊,有无接错线,同时要特别注意过孔是否连接正确。
(2)硬件电路通电时,注意用手背触摸下芯片是否发烫,防止芯片被烧坏掉。
(3)调试硬件电路,烧写程序看各项功能是否正常实现,分析未实现原因。
(4)调试风扇电路。
置PWM输出为1,风扇是否能正常转动
(5)在调试硬件电路时,注意各部分电路之间的时序配合关系。
(6)在调式过程中,应分功能模块调试好了以后再整合成整体调试。
(7)在调试整机电路时,在排除故障中,检测不出故障,可就对各个芯片进行独立检测。
数字模拟风扇控制系统,软硬件在实验室能正常工作,且各项均达到设计任务的要求。
5.软件的调试及问题分析
首先,先把各部分功能单独完成,包括风扇三档风速的实现、LCD的显示功能、倒计时功能、温度采集功能、温度控制功能。
再把全部功能结合起来。
在这个过程中遇到了许多的问题。
1:
LCD的八位数据引脚接上P0口一直无法正确显示。
检查电路后,发现排阻焊反了,排阻上有个圆点的那一脚应接40脚,将它反过来焊上后可以正常使用了。
最后经过分析得知:
排阻装反与没有接上拉电阻显示的结果是一样的,因为P0口本身提供的电流很低,如果没有接上拉电阻,电流始终很低,这就造成了不能正确显示的原因。
2:
P3口作为AT89C52的一些特殊功能口,最好