家用电风扇的设计Word文件下载.docx
《家用电风扇的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《家用电风扇的设计Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。
本论文设计了一个家用电风扇的单片机控制系统设计。
系统采用AT89C52单片机为控制核心,设计了按键电路、显示电路和过热保护电路,并采用C语言进行编程、调试和仿真,实现了电风扇的几项基本功能:
电机的正反转功能,0-990秒的定时功能,以及自然、正常、睡眠三种风类的选择功能。
经过多次的测试与电路的调整、系统的各项功能均能正常实现。
关键词:
单片机,电风扇,保护电路,定时
1.2课题研究的目的和意义
面临庞大的市场需要,需要提高电风扇的市场竞争力。
使之在技术含量上有所提高,应使风速不仅功能多样,操作简便,而且更加安全可靠,为此,我选择《家用电风扇的单片机控制系统设计》作为我的设计研究课题。
所以在设计课题的时候,给电风扇赋予了人性化的设计,如过热保护功能。
相信其人性化的设计将大大提高电风扇的市场竞争力。
而且最主要的是通过传感器的控制使得科技的应用深入生活中,让广大人民能享受到科技带来的方便。
1.3系统的设计要求及内容
本设计以AT89C52单片机为核心,通过按键扫描电路和显示电路建立一个控制系统,使电风扇人为的变换档位,能够满足人们的需求。
另外,通过过热保护电路可以很好的保护电机,当电机发热时,电路报警并且电机停转,当电机温度恢复正常时,电机又正常工作。
本设计主要内容如下:
1、用4位数码管实时显示电风扇的工作状态,最高位显示风类:
“自然风”显示“1”、“正常风”显示“2”、“睡眠风”显示“3”。
后3位显示定时时间:
动态倒计时显示剩余的定时时间,无定时显示“000”。
2、设计“自然风”,“正常风”和“睡眠风”三个风类键用于设置风类;
设计一个“定时”键,用于定时时间长短设置;
设计一个“摇头”键用于控制电机摇头。
在整个定时状态下,电路具有允许用户随时自行选择使用“自然风”状态,也可选择使用“常风”和“睡眠风”状态。
设计过热检测与保护电路,若电风扇电机过热,则电机停止转动,电机冷却后电机又恢复转动。
2电风扇系统的方案论证
2.1保护电路的选择
保护电路可由以下几种方案可供选择:
方案一:
选用热敏电阻作为感测温度的核心元件,通过运算放大器放大于是温度变化引起热敏电阻的变化,进而导致输出微弱的电压变化信号,再用A/D转换芯ADC0809将模拟信号转化为数字信号输入单片机处理。
方案二:
选用ADC0809作为过热保护电路的核心部件,假设先设定一个标准电压值,通过0-5V模拟电压输入进行模数转换,如果数据超过标准值则单片机对电机进行相应操作,使电机启停。
对于方案一,采用热敏电阻有价格便宜、元件易购的优点,但热敏电阻对温度的细微变化不敏感,在信号采集、放大、转换过程还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其本身电阻对温度的变化存在较大的误差,虽然可以通过一定的电路给以纠正,将使电路复杂稳定性降低,故该方案不适合本系统。
对于方案二,取代了传感器检测电路,大大降低了外接放大转换等电路的误差因素,通过运用电压值来模拟电机温度值,使得其分辨率很高,可以满足系统要求,故采用方案二。
2.2控制核心的选择
方案一:
采用电压比较电路作为控制部件。
温度传感器采用热敏电阻或热电偶等,温度信号转为电信号并放大,集成运放组成的比较电路判决控制风扇的转速。
当高于或低于某值时将风扇切换到相应档位。
方案二:
采用单片机作为控制核心,以软件编程的方式进行风速判断,并在端口输出控制信号。
对于方案一,采用电压比较电路具有电路简单、易于实现,以及无需编写软件程序的特点,但控制方式过于单一,不能自由设置上下限动作及定时时间,无法满足不同用户以及不同环境下的要求,故不采用此方案。
对于方案二,以单片机作为控制器,通过编写程序不但能将传感器检测到的模拟温度值通过A/D转换传给单片机进行处理,而且用户能通过键盘接口,自由设置上下限定时时间,满足全方位的需求,并且通过检测电路判断电机温度是否过高,能精确把握电机温度的微小变化。
故本系统采用方案二。
2.3显示电路的选择
采用液晶显示屏LCD显示电机状态。
采用八位共阴数码管显示电机状态,动态扫描显示方式。
通过比较两个方案。
方案二成本低廉,显示温度明确醒目,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。
不足的地方是扫描方式是循环使四个LED依次点亮,因此会有闪烁,但是人眼的视觉暂留时间为20M,当数码管扫描周期小于这个时间时人眼看不到闪烁,故采用方案二。
3系统的主要硬件电路设计
3.1总体硬件设计
本系统由五个模块组成,分别是输入模块、显示模块、电机控制模块、过热保护模块以及单片机控制系统。
其中单片机控制系统是核心,由AT89C52、晶振和复位电路组成。
它通过处理输入的各种数据信息来对其它模块发出指令,进行相应的操作。
输入模块由5个按键组成,分别控制电机的风速、正反转和定时时间。
显示模块由8位共阴数码管组成,显示定时时间和风速。
过热保护模块由ADC0809和外围电路组成,通过设定电压初始值使电机超值停转并且相应二极管发光报警。
电机控制模块由L298和其它的元器件组成,它主要是放大输入信号的倍数,用来驱动电机。
系统总体设计框图如图3.1所示:
图3.1系统原理框图
对于单片机中央处理系统的方案设计,根据要求,我们可以选择AT89C52单片机作为中央处理器,作为整个控制系统的核心,AT89C52内部包含了定时器,程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其它存储器和定时器件、方便,整个系统结构紧凑,抗干扰能力强,性价比高,是比较适合的方案。
3.1.1AT89C52单片机的性能及应用
单片机是早期SingleChipMicrocomputer的直译,它反映了早期单片机的形态和本质。
然后,按照面向对象,突出控制功能,在片内集成了许多外围电路及外设接口,突破了传统意义上的计算机结构,发展成microcontroller的体系结构,目前国外已普遍称之为微控制器MCU。
鉴于它完全作嵌入应用,故又称为嵌入式微控制器[1]。
3.1.2单片机的主要特征
由于AT89C52单片机的设计时间有限其精度不是很高,它的测温范围在0~100℃之间,可以直接应用在对温度精度要求不高的各种现场。
单片机多通道温度采集测控系统采用数字温度传感器满足温度测量,并将温度采集信号转换成数字信号经单片机处理并经输出驱动电路显示于共阴极数码管。
该测量仪可实现多点(4点)不同区域测量,单通道,循环测量。
除此之外,考虑到测控会用于工业生产当中,增加了超温报警功能,可以设置温度的上下限,可靠性要求比较高,软件编程比较难[2]。
AT89C52单片机温度测控仪采用ATMEL公司的AT89C52单片机,采用双列直插(DIP),有40个引脚。
该单片机采用ATMEL公司的高密度非易失性存储技术制造,与美国INTEL公司生产的MCS-51系列单片机的指令和引脚设置兼容。
其主要特征如下:
1、8位CPU
2、内置8K字节可重复编程Flash,可重复擦写1000次
3、完全定态操作:
0Hz~24Hz,可输出时钟信号
4、256字节的片内数据存储器
5、32根可编程I/O线
6、2个16位定时/计数器
7、中断系统有6个中断源,可编为两个优先级
8、一个全双工可编程串行通道
9、具有两种节能模式:
闲置模式和掉电模式
值得注意的是,P0、P1、P2、P3口作为普通I/O口使用时都是准双向口结构,其输入操作和输出操作本质不同,输入操作是读引脚状态,输出是对锁存器的写入操作。
当内部总线给口锁存器置0或1时,锁存器中的0、1状态立即反映到引脚上。
但在输入操作时,如果锁存器状态为0引脚被钳位0状态,导致无法读出引脚的高电平输入。
因此,准双向口作为输入口时,应先使锁存器置1(称之为置输入方式)。
另外,I/O口的端口自动识别功能,保证了无论是P1口(低8位地址)P2口(高8位地址)的总线复用,还是P3口的功能复用,内部资源自动选择不需要用指令进行状态选择。
随着计算机技术的发展,单片机的功能越来越强大,寿命长、速度快、低功耗、低噪声、可靠性高的特点及16位、32位单片机的出现,在工业领域仍具有很大的发展潜力。
3.1.3硬件系统的设计
单片机应用系统的设计可划分为两部分:
一部分是与单片机直接接口的数字电路范围内电路芯片的设计。
如存储器和并行接口的扩展、定时系统、中断系统扩展,一般的外部设备的接口,甚至于A/D、D/A芯片的接口。
另一部分是与模拟电路相关的电路设计包括信号整形、变换、隔离和选用传感器,输出通道中的隔离和驱动以及执行元件的选用。
(1)从应用系统的总线观念出发,各局部系统和通道接口设计与单片机要做到全局一盘棋。
例如,芯片间的时间是否匹配,电平是否兼容,能否实现总线隔离缓冲等,避免“拼盘”战术。
(2)尽可能选用符合单片机用法的典型电路。
(3)尽可能采用新技术,选用新的元件及芯片。
(4)抗干扰设计是硬件设计的重要内容,如看门狗电路、去耦滤波、通道隔离、合理的印制板布线等。
(5)当系统扩展的各类接口芯片较多时,要充分考虑到总线驱动能力。
当负载超过允许范围时,为了保证系统可靠工作,必须加总线驱动器。
3.2过热检测模块的设计
3.2.1ADC0809简介
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换[3]。
是目前国内应用最广泛的8位通用A/D芯片。
3.2.2ADC0809的工作原理
ADC0809的工作原理是:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开。
转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。
数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。
为此可采用下述三种方式[4]。
(1)定时传送方式
对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。
可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。
因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
3.3电机调速与控制模块设计
电机调速是整个控制系统中的一个重要的方面,通过L298来调节PWM的输出,使输出端电压发生变化,从而使施加在电风扇的输入电压发生改变,以调节电风扇的转速,实现各档位的风速的切换。
3.3.1L298芯片介绍
L298驱动芯片是SGS公司的产品,内部包含4通道逻辑驱动电路。
是一种二相和四相的专用驱动器,即内部包含二个H桥的高压六双桥式驱动器接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
L298有两路电源分别为逻辑电源6V和动力电源12V,ENA、ENB直接接5V电源使电机进入使能状态,IN1和IN2用来控制电路的逻辑功能状态。
由于使用的电机是线圈式,在从运行状态突然转到停止状态和从顺时针状态突然转到逆时针状态时会形成很大的方向电流,在电路中加入二极管就是在产生方向电流的时候进行泄流,保护芯片的安全,表3.1为L298的逻辑功能表[5]。
表3.1L298逻辑功能表
IN1
IN2
ENA
电机状态
X
停止
1
顺时针
逆时针
3.3.2电机调速原理
我们采用的PWM来实现直流电动机的调速,由于直流电机的转速与加在其两端的平均电压成正比,所以在对直流电动机电枢电压的控制和驱动中,目前经常使用的是通过改变电机电枢电压接通时间与通电周期的比值来控制转速,其优点:
控制原理简单输出波动小,线性好,对邻近电路干扰小,缺点是:
功率低,散热问题严重。
占空比示意图如图3.2所示。
图3.2占空比示意图
电动机的电驱绕组两端的电压平均值U为:
式中D为占空比,
。
占空比表示了在一个周期T里开关管导通的时间与周期的比值,D的变化范围为0<
=D<
=1。
当电源电压UB不变的情况下,输出电压的平均值U取决于与占空比D的大小,改变D值也就改变了输出电压的平均值,从而达到控制电动机转速的目的,即实现了PWM调速。
3.3.3电机调速模块设计
根据硬件原理图连接好电路,A/D接入单片机上通过程序来控制L298输出控制直流电机的转动。
通过不同按键输出不同的占空比,使直流电机转动。
当自然风键按下时,输出占空比为1:
3的方波;
当常风键按下时,输出占空比为3:
1的方波;
当睡眠风键按下时,输出占空比为1:
5的方波;
当摇头键按下时,电机反转,同时保持原先的风速[6]。
3.4显示与控制模块设计
LED数码管有共阳和共阴两种,都把这些LED发光二极管的负极接到一块(一般是拼成一个8字加一个小数点而作为一个引脚,为共阴管)。
本系统设计采用4位共阴数码管显示电路,在设计4位LED显示时,为了简化电路,降低成本,采用动态显示的方式,4个LED显示共用一个8位的I/O,4个LED数码管的位选线分别由相应的P2.0-P2.3控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。
译码显示电路将档位和定时时间的输出状态经显示译码器译码,通过4位LED七段显示器显示出来。
到达定时时间电机停止转动同时定时时间变为0。
P2.5口接一个发光二极管,当电压值超压时二极管灯亮实现报警,此状态下,无论定时时间和风速键是否按下,电机都处于停止状态[7]。
3.5键盘模块设计
3.5.1键盘方式选择
常用的键盘识别方法有:
行扫描法、线翻转法和利用8270键盘接口的中断法,在本系统中,完全可以不运用中断法完成键盘接口,这是由系统的特殊性决定的。
首先,对于本系统而言,要实现便携式的设计,硬件电路使用的越少越好。
其次,被测信号由外中断引脚输入,未占用单片机4个并行I/O口中的任何一个,系统有足够的资源利用自身I/O完成接口。
最后,只有当传感器输出信号频率为空载频率,系统处于空闲待测的状态下,才允许键盘输入,因此键盘识别占用的CPU时间不会对系统正常工作造成影响,因此直接利用单片机并行接口完成键盘的接口,采用线翻转法进行键盘识别[8]。
3.5.2实现方案
本系统使用简单的键盘和数码显示器件来完成输入\输出操作的人机界面。
键盘输入信息的主要过程是:
1、CPU判断是否有键按下。
2、确定哪一个键被按下。
3、把此键代表的信息翻译成计算机所识别的代码,如ASCII或者其他代码。
键盘上有很多键,每一个键对应一个键码,以便根据键码转到相应的子程序,进一步实现数据输入和命令处理的功能。
键盘识别的流程如图3.3所示:
图3.3键盘识别流程图
按键消抖可分为硬件消抖和软件消抖两种,在键数较少时可用硬件消除抖动,一种是采用在I/O口上并接合适的电容来解决;
另一种是采用RS触发器消抖。
4系统程序设计及仿真
系统软件设计包括主程序设计,A/D转换子程序设计和定时器T0中断程序设计。
4.1主程序流程图设计
软件所要实现的功能有:
按键响应,对ADC0809的控制,对数据的处理和传送显示的数据。
主程序包含初始化、调用A/D转换子程序和调用显示程序,其流程图如图4.1所示:
图4.1主程序流程图
主程序经初始化后,开始四位数码管显示的是“0000”电机停转。
然后进入按键扫描程序,依次对自然风、常风、睡眠风进行扫描,单片机I/O口输出相应的占空比方波,当为自然风时,数码管最高位显示“1”,当为常风时,数码管最高位显示“2”,当为睡眠风时,数码管最高位显示为“3”。
当有定时键按下时,转到定时器T0中断程序进行。
当有摇头键按下时,高低电平翻转,电机开始反转。
4.2定时器T0中断程序流程图设计
定时器T0是用来对定时时间进行控制的,结合数码管动态显示,首先给T0设置工作方式和初始值,由于它不可重装,所以在主程序中必须再次定义它的初始值。
其流程图如图4.2所示。
图4.2定时器T0中断程序流程图
4.3A/D转换测量子程序流程图设计
由于ADC0809在进行A/D转换时要用到CLK信号,而此时的ADC0809的CLK是接在AT89C52单片机的P2.4端口上,也就是要求从P2.4输出CLK信号供ADC0809使用。
因此产生CLK信号的方法就的使用软件来产生了;
由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理。
然后和设定的参考值比较,而实际显示的电压值的关系为
其流程图如图4.3所示。
图4.3A/D转换测量子程序流程图
在主程序中,ADC0809的转换程序也是无限循环的,它主要是检测电机是否过热。
本系统中,运用定时器T1作为CLOCK的脉冲信号,由于它的工作方式为2,且初始值216,足以满足ADC0809所转换一次所需要的时间。
设定电机过热电压初始值为1.95V,当模拟电压输入量超过这个值时,发光二极管点亮,表示电机过热此时L298使能端变低电平,电机停转。
4.4系统仿真结果
系统仿真结果见附录B。
4.5源程序
源程序见附录C。
结论
在写设计论文时我深深体会到搞设计的艰辛与困难,电风扇我们都熟悉,但要想把单片机技术运用到电风扇上是不简单的事情。
这次设计让我学到了许多课本上没有的知识,使我受益匪浅,让我认识到无论做任何事情,都要认真对待,要知道自己要做什么,怎么样才能做到,是否能够做好,因此,这些都需要我们认真的分析,遇到困难要及时寻求老师的帮助。
我相信,没有解决不了的问题。
我会一步一个脚印,踏踏实实的向我的目标前进。
致谢:
我的设计在老师的指导下,进行大胆的理论与实践相结合,通过查找翻阅有关理论资料和技术手册,我的动手能力得到很大提高,使我懂得了如何把书本上知识总结起来去应用于实践,学到了研究、开发,设计单片微型计算机对工业过程控制的一套完整的方法,受益很大。
硬件软件都要涉及,由于时间紧,工作量大,本次设计没能做出实物。
本设计锻炼了我的动手能力,进一步强化了专业知识,提高了将所学知识应用于实践的能力。
在此感谢对我辛勤教导的老师们以及同学,谢谢你们对我的关心和照顾。
参考文献
[1]谢维成.单片机原理与应用及C51程序设计[M].清华大学出版社,2009.7
[2]谢自美.电子线路设计.实验.测试[M].华中科技大学出版社,2002.6
[3]马忠梅等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2003.11
[4]楼然苗等.单片机课程设计指导[M].北京航空航天大学出版社,2007.7
[5]张永枫.单片机应用实训教程[M].西安电子科技大学出版社,2005.2
[6]夏继强.单片机实验与实践教程[M].北京航空航天大学出版社,2001.5
[7]吴国经.单片机应用技术[M].中国电力出版社,2004.7
[8]AT89C51DATASHEEPPhilipsSemiconductors1999.dec
单片机电风扇控制系统的设计原理图
仿真结果图
图1
图1是自然风键按下时状态,数码管显示为1,无定时时间。
ADC0809显示电压值为1.95V,电机不发热,正常转动。
为了表示哪个按键被按下,仿真图上对应的按键均为闭合状态,下面的仿真图也同上,这里不在阐述。
图2
图2为示波器仿真效果,PWM输出占空比为1:
3的方波,电机正转。
图3
图3是常风键按下时状态,数码管第一位显示为2,无定时时间。
图4
图4是示波器仿真效果图,PWM输出占空比为3:
1的方波,电机正转。
图5
图5是睡眠风键按键按下时状态,数码管第一位显示为3,无定时时间。
图6
图6是是示波器仿真效果图,PWM输出占空比为1:
5的方波,电机正常转动。
图7
图7是电机反转的仿真图,由于是在常风的模式进行的,我们只能看它的PWM占空比示意图与电机正转的示意图进行比较,其反转的效果如图8所示:
图8
图8是常风风模式下的电机反转占空比示意图,经过与图4进行比较,它们的方波占空比完全吻合,这证明了电机正反转完全正常。
图9
图9是自然风按键按下时状态,数码管第一位显示为3,定时时间为15ms。
图10
图10是睡眠风按键按下时状态,数码管第一位显示为3,定时时间为0ms。
ADC0809测得的显示电压值为2.0V,超过设定的初始值,则表示电机发热,电机停止转动。
参考程序
/*********************************************************************/
//家用电风扇的单片机控制系统设计C程序
#include<
reg51.h>
#defineuintunsignedint
#defineucharunsigndechar
sbitkey1=P3^0;
sbitkey2=P3^1;
sbitkey3=P3^2;
sbitkey4=P3^3;
sbitkey5=P3^4;
sbitA=P2^6;
//电机驱动端口
sbitD=P2^7;
sbitwei1=P2^0;
sbitwei2=P2^3;
sbitwei3=P2^2;
sbitwei4=P2^1;
sbitwxout=P2^5;
//温度太高报警灯
sbitclock=P2^4;
sbitstart=P3^5;
sbiteoc=P3^6;
//adc0809驱动端口定义