版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1引言现在热水器大部分都是快热式热水器,它给我们的生活带来了极大的便利,这使是它走进千家万户成为必然目前燃气式热水器因为它的安全隐患和越来越高的成本正在逐渐退出热水器市场。而太阳能热水器虽然环保无污染,但它寿诞天气。气候及安装条件的严格限制。很难占据更大的市场份额。目前主流的贮水式电热水器,体积庞大、预热时间长、热水储量有限,已经不适合现代生活的节奏。于是,快热式热水器小巧时尚的外观,安全可靠的性能让它有着广泛的发展和应用前景。普通电热水器有以下几个缺点:首先,因为电热水器长期通电,保持60度以上的高温,发热管容易结垢,内胆容易漏水,比较容易损坏。我们学校的电热水器经常因为结垢堵塞出水口水流越
2、来越小,给师生的饮水带来不便;其次,管道及水箱本身热量损耗大,等候热水所用时间较长;再次,在热水流出前都必须浪费一定量的冷水,根据管道的长短,这样既不环保,又不经济。而快热式热水器克服了上述缺点。它安全、干净、环保、即开即热。35秒出热水,无需等候,热水使用时间不受限制。2系统总体方案功能要求用2位数码管显示出水温度,能显示设定功率档位。温度检测显示范围0099C,精确度土C。设置3个功率档位指示灯,14档一个灯亮,58档两个灯亮,9档3个灯全亮。0档无功率输出,档位灯不亮。设置3个轻触按钮,分别为电源开关键、“+”键和“-”键。加热功率分09档,按“ + ”键依次递增至9档,按“-”键依次递
3、减至00-9 档功率依次为 0、1/9P、2/9P、3/9P、4/9P、5/9P、6/9P、7/9P、8/9P、P。内胆温度超过105C时停止加热,防止干烧 方案论证 按快热式电热水器的功能要求,决定采用如图 2.1所示的模块组成系统,即电源电路、单片机控制器、温度检测电路、按键输入电路、LED数码管及指示灯电路、报警电路和加热控制电路。图2.1快热式电热水器系统组成框图快热式电热水器为了达到“快热”的效果,取消了储水罐,使冷水在在进入加热管后立即被加热,这就要求加热管有较大的功率,家 用电热水器一般采用方便可靠的电热丝加热方法。根据热学及流体力学原理结合实际实验室测试,可以得到水温与流量、加
4、热功率之 间的关系如表2.1。表2.1中所列水温值和流量值可以满足大多数家庭用户使用要求,当最大的加热功率为 7.5KW时,按220V供电计算电流约为34A, 所以要求专线供电。表2.1水温与流量、加热功率的关系温度 C水流量功率2升/分钟2.5升/分钟3升/分钟3.5升/分钟4升/分钟4.5KW47423634325.5KW54484138356.5KW62544642387.5KW7060514641注:进水温度 15C,输入电压 AC220V对于加热功率的控制,最简单的方法是由若干不同功率的电热丝组合得到几种加热功率,但由于快热式热水器的加热功率较普通的大,且档位设置较多,用电热丝组合的
5、方法需要几组电热丝和继电器,成本增高且工作可靠性降低,所以比较理想的是采用可控硅控制功 率,电路简单又控制方便。温度检测的方法较多,最经典的方法就是用热敏电阻(或热敏传感器)组成电桥来采集信号,再经放大、AD转换后送单片机。目前比较先进的方法是采用专门的集成测温传感器(如DS18B20),直接将温度转换成数字信号传送给单片机。为了简化电路又降低成本,本文采用了温度/频率转换测温法,直接将温度信息转换成频率信号,用单片机测出频率大小,从而间接测出温度值,温度/频率转换电路简单可靠,成本低廉。3系统硬件电路的设计LED数码管及指示快热式热水器控制系统电路如图 3.1,由7个部分电路组成:单片机系统
6、及外围电路、电源电路、按键输入电路、 灯电路、报警电路、加热控制电路、温度检测电路。控制器采用成本低廉且工作可靠的 89C51或其兼容系列的单片机,采用12M的晶振。89C51对电源要求不甚严格,电源电路采用普通 的市电降压整流,然后经集成稳压器(7805)稳压输出+5V电压。按键采用轻触小按钮。显示电路采用两位共阳数码管,由2个三极管9012驱动,3个LED指示灯用于指示加热功率。报警电路采用 5V的自鸣式蜂鸣器。+5VC3U3B3Y119121C418100 QC14LS040.056uF+5V+5V快1OK23U3D46S2774LS04+5V8U4+5V_ 31R2M33PR24U3C
7、8050迈1KU3A33P4.7KEA/VPP0.0P0.1X1P0.2P0.3.P0.4X2P0.5P0.6P0.7RESETP2.0P2.1INT0P2.2INT1P2.3T0P2.4T1P2 5P2.6P1 0P2 7P1.1P1.2RDP1.3WRP1.4PSENP1.5ALE/PP1.7RXDU2393837363534333221221223252712817301089C511314DS1DS2200 Q *8Q3Q412345678b CP -as.1口厂 abcdefgg问 a 4r-;F I e I - abcdefggR9R104.7K:30K5VR7*10 q D1+5
8、V90129012R19510QR20510QR21510QR234.7KLED2十LED3十LED4Q5 90121N4007U17805VoutD2D5220/9V1N4007*41000u/16V_C530.1uVinDNG70U/10V*2K/1WU5MOC3023WiheaterLED1 -R22M/R2520K/2WQ6 BTA41*C60.1uD64007F1FUSETitleFast Water Heater circuit图3.1快热式家用电热水器控制电路图SizeNumberRevisionA4Date:10-Apr-2005Sheet ofFile:出版物热水heater
9、heate1.DDr&wn By: Gavin Hu加热控制电路123图3.2为加热控制电路原理图,电热丝的加热功率由双向可控硅来控制,单片机 通过光耦给可控硅触发信号,控制可控硅的导通角,从而控制电热丝的有效加热 功率。为了在关机和超温保护的状态下能可靠地关断加热电源,电路中设计了继电器来控制加热电源。其中串联在继电器线圈回路的熔丝为105C的热保险丝,当温度超过105C时,热保险丝会熔断,防止加热管干烧。与电热丝并联的LED发光管用来指示电热丝的工作状态。可控硅触发信号中需要对市电进行过零检测,以实现触发脉冲的相位延时。本电路中是利用三极管8050和一个非门实现过零检测的,电路如图 3.3
10、。图3.2加热控制电路图+5VQ5D2D51N4007*43R3210K8050R21MTitleSizeA4Date:File:图3.3过零检测电路图温度检测电路温度检测电路组成如图3.4所示,温度/频率变换电路是利用反相器组成的 RC多谐振荡器,其中的R24是一个热敏电阻,当温度变化时引起热敏电阻的阻值变化,从而改变了振荡器输出的方波频率。该频率的估算可用如下公式:f 1.1RC图3.4温度检测电路图式3.14系统软件程序的设计C按快热式热水器的功能,系统程序必需实现以下任务:显示扫描;按键扫描处理; 加热控制;温度检测(包括超温报警)。51系列单片机实现多任务运行的方法就 是分时复用,在
11、程序设计的时候要相应地分配好各任务的CPU占用时间。对于以上几个任务稍加分析可以看出,显示扫描、按键扫描和加热控制任务相对而言 有实时要求,而温度检测任务则可用定时(0.51s)实现。主函数系统在上电复位后,先对温度寄存器、档位寄存器赋默认值,并进行清除超温标 志,设置定时器及中断系统的工作方式等初始化工作。由于51系列单片机没有停机指令,我们可以利用主程序设置死循环反复运行各 个任务。我们把有实时要求的子程序(显示扫描、按键扫描、加热控制)放在最 内层的循环中,计算其运行一次占用的CPU时间,然后根据温度检测定时的间隔时间,计算出该循环的循环次数。本例中每运行一次有实时要求的子程序 (即 显
12、示扫描、按键扫描、加热控制)约占用 5ms CPU时间,运行测温子程序的时 间间隔为0.5s1,那么循环次数应为100次。图4.1为主函数程序流程图。显示扫描子函数显示子函数完成两位共阳数码管的扫描显示任务,图4.2为显示扫描子函数程序 流程图。开始图4.1主函数程序流程图图4.2显示扫描子函数程序流程图按键扫描处理子函数按键扫描子函数负责逐个扫描档位 “ + ”键、档位“-”键和开关键是否被按下, 若有键被按下则作出相应处理。图 4.3为按键扫描子函数程序流程图。加热控制函数加热控制程序根据用户设定的加热档位和系统当前的状态,来决定是否加热和控 制加热的功率并点亮相应的指示灯。如有超温标志还
13、应打开蜂鸣器报警。图4.4为加热控制函数程序流程图。加热控制程序通过控制继电器的通断来决定是否给电热丝通电加热, 而加热的功 率大小则由双向可控硅的导通角决定。系统程序利用外中断 INT1检测市电的过 零点,检测到过零点后,立即根据设定的加热档位给定时器 T1赋一个延时参数, 并打开定时器T1,允许其中断。当定时器 T1计满溢出后触发中断,T1中断程 序就会给可控硅发一个触发信号, 使其导通。图12.10、12.11分别是过零检测函 数程序流程图和可控硅触发信号控制函数程序流程图。图4.5过零检测函数程序流程图图4.6可控硅触发信号控制程序流程图打开测频外中断等待测试完成Tmin=0,Tmax
14、=100Temp=(Tmi n+Tmax)/2否是否是TOrig=Tabtemp?TOrigTabtemp?Tmax=TempTmin=Temp否Tmax-Tmin65?是否Temp Tabtemp,说明实际温度应该在Tmin和Temp之间(因为递减 函数特性),所以修改查找范围令 Tmax=Temp,同理如果T0rig Tabtemp,说 明实际温度应该在 Temp和Tmax之间,则令Tmin=Temp; 检查查找范围,如果 Tmax-Tmin1,那么重复第步骤直到完成查找。温度检测程序完成温度计算后便刷新系统当前温度寄存器,并判断有无超温、置位或清除相应的标志位。图4.7为温度检测函数程序
15、流程图。单片机使用外中断INT0和计时器T0检测输入的频率大小,为了减少测量的系 统误差相对值和随机误差对测量精度的影响,程序中取100个方波周期的和作为测量结果。程序中使用静态变量 px0count进行外中断的计数,在测量开始时, 我们给px0count赋值2是为了让频率测量有准确的起点。另外,为了区分测频 的开始和结束,还使用了测频开始标志位 T0tst和测频完成标志位Testok。图4.8 为频率测试函数程序流程图。图4.8频率测试函数程序流程图5系统程序清单以下是快热式电热水器控制源程序清单,采用C51编写,在Keil uVision2 V2.30(C51.exe V7.0)环境下调试
16、通过,并下载到 AT89C51测试运行成功。/*快热式热水器程序MCU AT89C51 XAL 12MHz*/#in clude #include vintrins.h #in clude void display(void);un sig ned char keysca n(v oid);void heatctrl(void);void temptest(void);sbit swkey=P1A0;sbit upkey=P1Al;sbit dow nkey=P1A2;sbit buzz=P1A05;sbit triac=P1A6;sbit relay=P1A7;sbit led仁 P2A5;
17、sbit led2=P2A6;sbit led3=P2A7;sig ned char data ctemp;un sig ned char data dispram2=0x10,0x10;un sig ned char data heatpower,px0co unt;bit tempov,t0tst,testok;超温标志、测温开始标志、测温完成标志/显示函数/按键扫描处理函数/加热控制函数测温函数/开关键/加热档位“ +”键/加热档位“-”键/蜂鸣器输出端/可控硅触发信号输出端/继电器控制信号输出端加热档位指示灯1加热档位指示灯2加热档位指示灯3当前测得水温寄存器/显示区缓存0计数器/加热
18、档位寄存器、外中断/*主函数 void ma in (void)无参数,无返回值循环调用显示、键扫描、温度检测、加热控制函数*/void main (void) un sig ned char i,j;ctemp=15;/初始化水温寄存器heatpower=5;初始化加热档位为5档tempov=0;/清除超温标志swkey=0;/默认开关键被按下,进入待机状态TMOD=0x11;/设定T0和T1工作方式为16位定时器TC0N=0x05;/设置外中断0和1为下降沿触发IP=0x01;/设置外中断0优先IE=0x80;/打开总中断while (1) i=1; dofor (j=0;j100;j+)
19、/循环100次约0.5sif (keysca n() i=6;/如果有键按下,显示当前档位3sdisplay();调用显示函数一次约4msheatctrl();/调用加热控制函数/end for (b=O;b1OO;b+)temptest();/每0.5s进行一次测温 while (-i);通过改变循环次数i的大小决定是否刷新显示j=abs(ctemp);/取温度绝对值dispram1=j%10;/取个位数送显示j/=10;/取十位数dispram0=j?j:0x11;送显示(带灭零)/end while (1)/*延时函数 void delay(unsigned int dt)参数:dt,无
20、返回值延时时间=dt*500机器周期*/ void delay (un sig ned int dt) 此句编译时以“DJNZ”实现,250*2=500机器周register un sig ned char bt;for (; dt; dt-)for (bt=250; -bt;);期/*un sig ned char i,a;a=0xfe;for (i=0; i2; i+)P2|=0x1f;P0=tabledisprami;P2&=a;dela y;a=_crol_(a,1);P0=0xff;显示函数 void display(void)无参数,无返回值两位共阳数码管扫描显示*/ void d
21、isplay(void)un sig ned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0xff;/位选赋初值/循环扫描两位数码管/清除位选/送显示段码/选通一位/延时2ms改变位选字/消影按键扫描处理函数 un sig ned char keysca n(v oid)无参数,返回值:无符号字符型,无键按下为 0,有键按下为其它影响全局变量:heatpower*/ un sig ned char keysca n(v oid)un si
22、g ned char i,ch;if (upkey=0)/ “ + ”键buzz=0;/打开蜂鸣器(发出按键音for (i=0;i5;i+) display();延时消抖buzz=1;/关闭蜂鸣器if (heatpower9) heatpower+ dispram0=0;dispram1=heatpower;while (upkey=0) display();return (1);else if (dow nkey=0)buzz=0;显示当前档位/等待键释放/返回有键按下/ “键/打开蜂鸣器(发出按键音)for (i=0;i0) heatpower-; /档位减dispram0=0;dispr
23、am1=heatpower;显示当前档位while (downkey=0) display。; /等待键释放return (2);/返回有键按下else if (swkey=0)/开关键buzz=0;打开蜂鸣器(发出按键音)for (i=0;i30;i+) display(); / 延时消抖buzz=1;/关闭蜂鸣器swkey=1;/置位开关键while (swkey=0) display();等待键释放ch=IE;暂存中断控制字IEIE=0x00;/禁止中断P0=0xff;P1=0xff;P2=0xff;/清除端口输出dispram0=0x10;dispram1=0x10;/显示“-”dis
24、play();while while (swkey) display。;/ 等待开关键按下buzz=O;/打开蜂鸣器(发出按键音for (i=0;i10;i+) display。;/ 延时消抖buzz=1;if (swkey=0) break;while (swkey=0) display();IE=ch;return (0);else return (0);/关闭蜂鸣器/确认开关键被按下/等待键释放/还原中断控制字IE/返回无键按下/无任何键按下时由此返回/*加热控制函数void heatctrl(void)无参数,无返回值判断是否加热、加热功率及档位指示灯处理*/void heatctrl
25、(void)relay=O;/接通继电器buzz=1;/关闭蜂鸣器switch (heatpower)判断加热档位case 0: EX1=0;ET1=0;triac=1;led1=1;led2=1;led3=1;break;/0 档不加热,指示灯不亮case 1:case 2:case 3:case 4: led1=0;led2=1;led3=1;EX1=1;break; /14 档 1 号指示等亮case 5:case 6:case 7:case 8: led1=0;led2=0;led3=1;EX1=1;break; 58 档 1 号、2 号指示灯亮case 9: EX1=0;ET1=0;
26、led1=0;led2=0;led3=0;triac=0;break; /9 档全功率,指示灯全亮else/当有超温标志时/蜂鸣报警buzz=0;/*测温函数 void temptest(void)无参数,无返回值,影响全局变量:ctemp, tempov测量并查表计算温度,判断是否超温*/void temptest(void)sig ned char temp,tempm in ,tempmax;un sig ned int t0rig;un sig nedintcodetemptab=0x6262,0x61eb,0x6171,0x60f7,0x6047,0x5ff7,0x5f6e,0x5e
27、ef,0x5e53,0x5 dbe,0x5d4b,0x5ca5,0x5c17,0x5b6b,0x5ada,0x5a5c,0x599b,0x58ff,0x5869,0x57b0,0x570d,0x5663,0x55c6,0x550 e,0x5444,0x5396,0x52dd,0x5240,0x5189,0x50b0,0x5005,0x4f20,0x4e69,0x4db1,0x4cef,0x4c42,0x4b64,0x4aaa,0x49e1,0x48fc,0x4847,0x476c,0x46b1,0x4604,0x4503,0x4449,0x4356,0x4299,0x41c0,0x40ce,0
28、x3ff0,0x3f2b,0x3e33,0x3d86,0x3ca6,0x3bd2,0x3b26,0x3a39,0x3973,0x38a6,0x37ef,0x373f,0x3687,0x35c3,0x3507,0x3487,0x33bc,0x32ed,0x324f,0x319e,0x3106,0x3053,0x2fa6,0x2f2a,0x2e88,0x2e00,0x2d63,0x2cd6,0x2c65,0x2bae,0x2b28,0x2a97,0x2a07,0x298e,0x2914,0x287a,0x280d,0x278a,0x2703,0x2687,0x2626,0x25e5,0x256d,
29、0x24ee,0x2489,0x2414,0x23bc,0x2356,0x22d9,0x2278,0x2203;溫度频率表px0co un t=2;/测频中断函数参数t0tst=1;/置测频程序开始标志EX0=1;/打开测频外中断testok=0;/清除测频程序完成标志while (!testok) display。;/ 等待测试完成t0rig=(unsigned int)TH0temptabtemp) tempmax=temp;/若实际值大于假定值,减小查找范围的最大值else tempm in=temp;/若实际值小于假定值,增大查找范围的最小值if (tempmax-tempm in2*t0rig) temp=tempmax;/接近最大值取最大值else temp=tempm in;/接近最小值取最小值break;/结束查找ctemp=temp;/刷新当前温度寄存器if (temp65) tempov=1;如果温度超过65度置位超温标志else if (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位管理制度范例大合集【职工管理】
- 第8课 世界市场与商业贸易 说课稿-2024-2025学年高二历史统编版(2019)选择性必修2 经济与社会生活
- 2024年航空货物运送协议细则版B版
- 2024年软件开发外协合同3篇
- 2024民主党派多媒体系统设备定期检修与保养合同6篇
- 2024年设计院股权转让与市场拓展合作协议3篇
- 2024年食品零售商零食采购协议示例版
- 2024年钢材订购协议(钢板)
- 2024版信息化工程服务协议样本一
- 2022年中考化学考前回归教材知识-盐化肥
- 《辐射安全许可证》申请条件核查表
- DB15-T 2537-2022 涉路工程安全性评价报告编制指南
- 名著导读简·爱整本书阅读计划
- 护理基础知识1000基础题
- 2023-2024学年成都市武侯区数学六上期末质量跟踪监视试题含答案
- 毕业设计(论文)-铁路货物运输装载加固方案设计
- 开关电源设计报告
- 煤矿新技术新工艺新设备和新材料演示文稿
- 选词填空(试题)外研版英语五年级上册
- 雷火灸疗法专业知识讲座
- 冷连轧机张力控制
评论
0/150
提交评论