1、目 录第 1 节 引 言31.1 智能电风扇控制系统概述 31.2 本设计任务和主要内容 3第 2 节 系统主要硬件电路设计 52.1 总体硬件设计 52.2 数字温度传感器模块设计 52.2.1 温度传感器模块的组成 52.2.2 DS18B20 的温度处理方法 62.3 电机调速与控制模块设计 72.3.1 电机调速原理72.3.2 电机控制模块硬件设计82.4 温度显示与控制模块设计 9第 3 节 系统软件设计103.1 数字温度传感器模块程序设计103.2 电机调速与控制模块程序流程153.2.1 程序设计原理 153.2.2 主要程序16第 4 节 结束语19参考文献20基于单片机的
2、智能电风扇控制系统基于单片机的智能电风扇控制系统1第 1 节 引 言 电风扇曾一度被认为是空调产品冲击下的淘汰品,其实并非如此,市场人士称,家用电风扇并没有随着空调的普及而淡出市场,近两年反而出现了市场销售复苏的态势。其主要原因:一是风扇和空调的降温效果不同空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人儿童和体质较弱的人使用;二是电风扇有价格优势,价格低廉而且相对省电,安装和使用都非常简单。尽管电风扇有其市场优势,但传统电风扇还是有许多地方应当进行改良的,最突出的缺点是它不能根据温度的变化适时调节风力大小,对于夜间温差大的地区,人们在夏夜使用电风扇时可能遇到
3、这样的问题:当凌晨降温的时候电风扇依然在工作,可是人们因为熟睡而无法察觉,既浪费电资源又容易引起感冒,传统的机械定时器虽然能够控制电风扇在工作一定后关闭,但定时范围有限,且无法对温度变化灵活处理。鉴于以上方面的考虑,我们需要设计一种智能电风扇控制系统来解决这些问题。1.1 智能电风扇控制系统概述 传统电风扇是 220V 交流电供电,电机转速分为几个档位,通过人为调整电机转速达到改变风力大小的目的,亦即,每次风力改变,必然有人参与操作,这样势必带来诸多不便。本设计中的智能电风扇控制系统,是指将电风扇的电机转速作为被控制量,由单片机分析采集到的数字温度信号,再通过可控硅对风扇电机进行调速。从而达到
4、无须人为控制便可自动调整风力大小的效果。1.2 设计任务和主要内容本设计以 MCS51 单片机为核心,通过温度传感器对环境温度进行数据采集,从而建立一个控制系统,使电风扇随温度的变化而自动变换档位,实现“温度高,风力大,温度低,风力弱”的性能。另外,通过键盘控制面板,用户可以在一定范围内设置电风扇的最低工作温度,当温度低于所设置温度时,电风扇将自动关闭,当高于此温度时电风扇又将重新启动。本设计主要内容如下: 风速设为从高到低 5 个档位,可由用户通过键盘手动设定。2 当温度每降低 2则电风扇风速自动下降一个档位。 当温度每升高 2则电风扇风速自动上升一个档位。 用户可设定电风扇最低工作温度,当
5、低于该温度时,电风扇自动停转。第 2 节 系统主要硬件电路设计 2.1 总体硬件设计系统总体设计框图如图 2-1 所示图 2-1 系统原理框图对于单片机中央处理系统的方案设计,根据要求,我们可以选用具有 4KB 片内E2PROM 的 AT89C51 单片机作为中央处理器。作为整个控制系统的核心,AT89C51 内部已包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰能力强,性价比高。是比较合适的方案2.2 数字温度传感器模块设计温度传感器可以选用 LM324A 的运算放大器,将其设计成
6、比例控制调节器,输出电压与热敏电阻的阻值成正比,但这种方案需要多次检测后方可使采样精确,过于烦琐。所以我采用更为优秀的 DS18B20 数字温度传感器,它可以直接将模拟温度信号转化为数字信号,降低了电路的复杂程度,提高了电路的运行质量。2.2.1 温度传感器模块组成本模块以 DS18B20 作为温度传感器,AT89C51 作为处理器,配以温度显示作为温度控制输出单元。整个系统力求结构简单,功能完善。电路图如图 2-2 所示。键盘输入温度显示单片机系统 电机控制模块数字温度传感模块基于单片机的智能电风扇控制系统3系统工作原理如下:DS18B20 进行现场温度测量,将测量数据送入 AT89C51
7、的 P3.7 口,经过单片机处理后显示温度值,并与设定温度值的上下限值比较,若高于设定上限值或低于设定下限值则控制电机转速进行调整。图 2-2 DS18B20 温度计原理图2.2.2 DS18B20 的温度处理方法DS18B20 直接将测量温度值转化为数字量提交给单片机,工作时必须严格遵守单总线器件的工作时序。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1
8、.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A1023P2.3/A1 24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R14k724k7R34k74k7R54k764k7R4k784k7X1CRYSTALC12p C22pQ12N2907 Q22N2907 27.0 DQ2VC 3GND1U2DS18B204表 2-1 部分温度值与 DS18B20 输出的数字量对照表 2.
9、3 电机调速与控制模块设计电机调速是整个控制系统中的一个重要的方面。通过控制双向可控硅的导通角,使输出端电压发生改变,从而使施加在电风扇的输入电压发生改变,以调节风扇的转速,实现各档位风速的无级调速。2.3.1 电机调速原理可控硅的导通条件如下:1)阳-阴极间加正向电压;2)控制极-阴极间加正向触发电压;3)阳极电流 IA 大于可控硅的最小维持电流 IH。电风扇的风速设为从高到低 5、4、3、2、1 档,各档风速都有一个限定值。在额定电压、额定功率下,以最高转速运转时,要求风叶最大圆周上的线速度不大于2150m/min。且线速度可由下列公式求得 310VDn式中,V 为扇叶最大圆周上的线速度(
10、m/min),D 为扇中的最大顶端扫出圆的直径(mm);n 为电风扇的最高转速(r/min)。代入数据求得 1555r/min,取 =1250 r/min.又因为:5n5n取 n1=875 r/min.则可得出五个档位的转速值:温度值/ 数字输出(二进制) 数字输出(十六进制)+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 0008H0 0000 0000 0000 0000 0000H-0.5 1111
11、 1111 1111 1000 FFF8H-10.125 1111 1111 0110 1110 FF5EH-25.625 1111 1111 0110 1111 FF6FH-55 1111 1100 1001 0000 FC90H107最 低 转 速调 速 比 最 高 转 速基于单片机的智能电风扇控制系统5=1250r/min5n=1150r/min4=1063r/min3=980r/min2n=875r/min1又由于负载上电压的有效值其中,u1 为输入交流电压的有效值, 为控制角。解得:=0 t=0ms5=23.5 t=1.70ms4=46.5 t=2.58ms3=61.5 t=3.43
12、ms2=76.5 t=4.30ms1以上计算出的是控制角和触发时间,当检测到过零点时,按照所求得的触发时间延时发脉冲,便可实现预期转速。2.3.2 电机控制模块硬件设计电路中采用了过零双向可控硅型光耦 MOC3041 ,集光电隔离、过零检测、过零触发等功能于一身,避免了输入输出通道同时控制双向可控硅触发的缺陷, 简化了输出通道隔离 2 驱动电路的结构。所设计的可控硅触发电路原理图见图 2-3 。其中 RL即为电机负载,其工作原理是:单片机响应用户的参数设置, 在 I/ O 口输出一个高电平, 经反向器反向后, 送出一个低电平,使光电耦合器导通, 同时触发双向可控硅, 使工作电路导通工作。给定时
13、间内,负载得到的功率为: nPUIN式中: P 为负载得到的功率, kW; n 为给定时间内可控硅导通的正弦波个数; N 为给定时间内交流正弦波的总个数; U 为可控硅在一个电源周期全导通时所对应的电压有效值,V; I 为可控硅在一个电源周期全导通时所对应的电流有效值,A。由式(1) 可01sin2()u6知,当 U , I , N 为定值时 , 只要改变 n 值的大小即可控制功率的输出,从而达到调节电机转速的目的。图 2-3 电机控制原理图2.4 温度显示与控制模块设计通过 HD7279A 控制芯片组建一个单片机键盘输入与显示模块,其中包括一个 2*8的键盘矩阵。和 8 段动态扫描数码管显示
14、。与单片机通过接插件连接,可以用于系统的控制和输出,其原理图如图 2-4 所示。ZeroCrosing12 64U1MOC3031MXTAL218XTAL119ALE3031PSN29RST9P0./AD0390.1/138P0.2/AD2370.3/336P0.4/AD4350.5/534P0.6/AD630.7/732P1.011.2P1.231.34P1.451.56P1.671.78P3.0/RXD103.1/T 1P3.2/INT0123./IT113P3.4/T014P3.7/RD173.6/W163.5/T115P2.7/A1528P2.0/A8212.1/92P2./A1023
15、2.3/124P2.4/A12252.5/13262.6/1427U2AT89C513 2U3:A409 RL10kC127pR44k7R24k7R14k7 U4L208L6基于单片机的智能电风扇控制系统7ABCDEFGHCOMABCDEFGHCOMABCDEFGHCOMABCDEFGHCOMABCDEFGHCOMABCDEFGHCOMABCDEFGHCOMABCDEFGHCOMA14B16C20D23E21F15G17DP2DIG02I11DIG26I37DIG43I510DIG65I78DIN1CS12LK13ISET18DOUT24 U1MAX721R120R20R320R420R520
16、R620R720R820RR910kR1010kR110kR1210kR1310kR1410kR1510kR1610k图 2-4 HD7279A 键盘和显示器控制模块电路原理图第三节 系统软件设计3.1 数字温度传感器模块程序设计8本系统的运行程序采用汇编语言编写,采用模块化设计,整体程序由主程序和子程序构成。图 3-1 数字温度传感器模块程序流程图如图 3-1 所示,主机控制 DS18B20 完成温度转换工作必须经过三个步骤:初始化、ROM 操作指令、存储器操作指令。单片机所用的系统频率为 12MHz。根据DS18B20 初始化时序、读时序和写时序分别可编写 4 个子程序:初始化子程序、写子
17、程序、读子程序、显示子程序。DS18B20 芯片功能命令表如下:表 2 DS18B20 功能命令表基于单片机的智能电风扇控制系统9主要程序如下:MAIN: ;初始化LCALL RST_DS18B20LCALL GET_TEMPERMOV A,20HMOV C,08HRRC AMOV C,09HRRC AMOV C,10HRRC AMOV C,11HRRC AMOV 20H,ALCALL DISPLAYAJMPMAINRST_DS18B20:SETB P3. 7NOP命令 功能描述 命令代码CONVERT 开始温度转换 44HREAD SCRATCHPAD 读温度寄存器(共 9 字节) BEHR
18、EAD ROM 读 DS18B20 序列号 33HWRITE SCRATCHPAD 将警报温度值写如暂存器第 2、3 字节 4EHMATCH ROM 匹配 ROM 55HSEARCH ROM 搜索 ROM F0HALARM SEARCH 警报搜索 ECHSKIP ROM 跳过读序列号的操作 CCHREAD POWER SUPPLY 读电源供电方式:0 为寄生电源,1 为外电源 B4H10CLR P3. 7MOV R1, #3RST1:MOV R0, #110DJNZ R0, $DJNZ R1,RST1SETB P3. 7NOPNOPMOV R0, #25HRST2:JNB P3. 7,RST3
19、DJNZ R0,RST2LJMP RST4RST3: SETB FLAGLJMP RST5RST4:CLR FLAGLJMP RST7RST5:MOV R0, #115RST6:DJNZ R0, $RST7: SETB P3. 7RETWR_DS18B20: ;写数据子程序MOV R2, #8CLR CWR1: CLR P3. 7MOV R3, #6DJNZ R3, $RRC AMOV P3. 7,CMOV R3, #25DJNZ R3, $基于单片机的智能电风扇控制系统11SETB P3. 7NOPDJNZ R2,WR1SETB P3. 7RETRD_DS18B20: ;读数据子程序MOV
20、R4, #2MOV R1, #20HREAD1:MOV R2, #8READ2: CLR CSETB P3. 7NOPNOPCLR P3. 7NOPNOPNOPSETB P3. 7MOV R3, #9READ3:DJNZ R3,READ3MOV C, P3. 7MOV R3, #23READ4:DJNZ R3,READ4RRC ADJNZ R2,READ2MOV R1,A12INC R1DJNZ R4,READ1RET3.2 电机调速与控制模块程序流程3.2.1 程序设计原理采用双向可控硅过零触发方式,由单片机控制双向可控硅的通断,通过改变每个控制周期内可控硅导通和关断交流完整全波信号的个数来
21、调节负载功率,进而达到调速的目的。由于 INT0 信号反映工频电压过零时刻,因此只要在外中断 0 的中断服务程序中完成控制门的开启与关闭,并利用中断服务次数对控制量 n 进行计数和判断,即每中断一次,对 n 进行减 1 计数,如果 n 不等于 0,保持控制电平为“1” ,继续打开控制门;如 n=0,则使控制电平复位为“0” ,关闭控制门,使可控硅过零触发脉冲不再通过。这样就可以按照控制处理得到的控制量的要求,实现可控硅的过零控制,从而达到按控制量控制的效果,实现速度可调。1)回路控制执行程序。主回路控制执行程序的任务是初始化数据存储单元,确定电机工作参数 / ,并将其换算成“有效过零脉冲”的个
22、数;确定中断优先minax级、开中断,为了保证正弦波的完整,工频过零同步中断 INT0 确定为高一级的中断源。2)断服务程序,执行中断服务程序时,首先保护现场,INT0 中断标志置位,禁止主程序修改工作参数,然后开始减 1 计数,判断是否关断可控硅,最后 INT0 中断标志位清零,还原初始化数据,恢复现场,中断返回。 (设 1 秒钟通过波形数N=100)中断流程图如图 3-2 所示:基于单片机的智能电风扇控制系统13图 3-2 电机控制模块中断响应流程图3.2.2 主要程序外中断 INT0 的部分中断响应程序如下:ORG0003HINTD0:PUSH ACCPUSH PSWPUSH DPHPU
23、SH DPLSETB 24H.0 MOV A, 5FHJZ TING1 DEC A 14MOV 5FH,ALJMP FAN2TING1: FAN2:MOV A, 5BHJZ TING2 DEC A MOV 5BH, ALJMP ZONGTING2:ZONG:MOV A, 59HJZ KAIDEC AMOV 59H, ALJMP EXITKAI:CLR 24H.0JB 26H.0, KAI2KAI2:MOV A, 66HJZ EXIT1EXIT1:MOV 5FH,5AHMOV 5BH,66HMOV 59H,#100EXIT:POP DPLPOP DPHPOP PSW基于单片机的智能电风扇控制系统
24、15POP ACCRETI结 束 语首先,通过这次应用系统设计,在很大程度上提高了自己的独立思考能力和单片机的专业知识,也深刻了解写一篇应用系统的步骤和格式,有过这样的一次训练,相信在接下来的日子我们都会了,而且会做得更好。我所写的系统主要根据目前节智能化电风扇技术的发展趋势和国内实际的应用特点和要求,采用了自动化的结构形式,实现对电风扇转速的自动控制。系统以单片机 AT89C51 为核心部件,单片机系统完成对环境温度信号的采集、处理、显示等功能;用 Protel 软件绘制电路原理图和 PCB 电路印刷板图,由Protues 软件进行访真测试,利用 MCS51 汇编语言编制,运行程序该系统的主
25、要特点是:1)适用性强,用户只需对界面参数进行设置并启动系统正常运行便可满足不同用户对最适合温度的要求,实现对最适温度的实时监控。2)系统成本低廉,操作非常简单,随时可以根据软件编写新的功能加入产品。操作界面可扩展性强,只要稍加改变,即可增加其他按键的使用功能。16本系统在当今提倡人性化设计和健康产品的环境下具有非常好的市场前景。 本设计在模拟检测中运行较好,但采样据不太稳定。功能上的缺憾是对于两个档之间的临界温度处理不好,并且档位太少。还有待改进。基于单片机的智能电风扇控制系统17参考文献1 张鑫.单片机原理及应用.电子工业出版社1 明德刚.DS18B20 在单片机温控系统中的应用.贵州大学学报,2006,2 2 黄朝民,肖明清,吴志强.单片机原理与应用.现代电子技术,2006,12 3 刘进山.基于 MCS-51 电风扇智能调速器的设计.电子质量,2004,10