完成版基于某单片机的锅炉温度控制系统的设计.doc
word1.1 课题背景与研究意义锅炉是一种热能转换设备,由锅和路两大主体和保证其安全经济连续运行的附件,仪表附属设备,自控和保护系统组成,水在锅锅筒中不断被炉里燃料燃烧释放出来的能量加热,温度升高并产生带压蒸汽,由于水的沸点随压力的升高而升高,锅是密封的,水蒸气在里面的膨胀受到限制而产生压力形成热动力严格的说锅炉的水蒸气是水在锅筒中定压加热至饱和水再汽化形成的作为一种能源广泛使用。锅炉广泛用于生产和生活之中。中小型锅炉作为供暖设备用于提供热水,取暖方面得到了广泛应用。目前,取暖多采用集中供暖方式。集中供暖,一般都是按一个采暖季每平方建筑面积来收费的,对北方地区来说,天气比拟冷,需要供暖时间长,应该集中供暖省钱。指集中集团式供暖的一种形式。从能源利用方面讲,集中供暖一次性投资大,运行费用高,无论是否需要,暖气始终全天供热,因楼层不同而造成温度不均,假如遇到供暖偏热,居民只有开窗降温,使宝贵的能源白白浪费。这种供暖方式从原理上而言,效率较高。集中供暖的锅炉大多数是燃媒锅炉,锅炉燃烧时污染大,已经带来了严重的环境污染问题。由于这些用户采用集中取暖,给个别用户带来不便的缺陷。基于这种情况,近年来采用以天然气,液化石油气为燃料的中小型燃气锅炉具有高效、环境污染小,发热量大甚至无污染等特点,受到普遍欢迎。尤其在国外,燃气锅炉目前已得到了普遍应用。家用燃气锅炉常见的是套管式燃气锅炉、板换式燃气锅炉、冷凝式燃气锅炉。随着科技的开展以与各种客观条件的具备,生活采暖用燃气锅炉的应用也必将得到进一步的开展与推广。随着燃料不断补给,燃料充足,城市燃气管网逐步完善,燃气使用率逐步会提高。市场经济的开展与开放,国有企业享受国家能源补贴的取消,住房逐渐私有化,供热管网费、采暖费全部由个人支付。会有越来越多的人放弃集中供热方式而采用分散采暖方式。而小型家用燃气锅炉的使用作为集中供暖的一个很好补充或替代它必将被越来越多的人关注和选用成为趋势。目前市场上家用燃气锅炉为进口,价格高,售后服务不够完善,不利于燃气锅炉的推广使用,研制燃气锅炉的公司亦相对较少。因此研制开发小型家用燃气锅炉就具有现实的意义与客观的市场价值。本设计将结合小型家用燃气锅炉实际的需要,利用MCS-51系列单片机为核心器件组成温度控制系统,采用温度采集技术,通过运行和分析研究,以期正确认识和全面理解利用单片机实现温度采集技术在过程控制中的应用。1.2 系统的总体设计思想目前,世界计算机市场上出现了专门用于工业控制的单片机系列产品,单片机以其体积小、重量轻、功耗低、价格廉价、功能强的特点,在工业控制的实践中得到越来越广泛的应用单片机不仅可以实现各种常规的控制,还可以根据被控对象的特性,充分利用控制理论的最新研究成果,采用更完善的控制方式,以获得更好的控制效果。目前,由于家用锅炉属于批量生产,而且每台锅炉需要一套完整的控制系统,针对这些特点,尤其从产品本钱角度出发,以MCS-51为核心器件组成的控制系统是比拟理想的选择。此外,MCS-51系列单片机运算能力、完备的控制功能、加上完善的外部接口电路,对中小型锅炉控制系统完全可以胜任。在外围芯片选取时,尽量选取典型的、易于扩展和替换的芯片和电路,并本着节约本钱的思想。选用基于单总线的数字温度传感器DS18B20和LCD液晶显示器。DS18B20温度传感器采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域;LCD液晶显示器为平面超薄的显示设备,它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗很低,因此倍受工程师青睐,适用于使用电池的电子设备。它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。它们二者与单片机的接口比拟简单,而且编程强度不大,既保证了系统的稳定性,又缩短了系统的开发周期,节约了开发本钱。系统在软件上采取模块化的程序结构。主程序作为控制程序,为整个系统软件的一条主线,其它功能模块均采用子程序调用、查询等方式,为调试和扩大提供了方便。本系统的电源采用市场上常见的W7800(7800)系列7805电源稳压芯片,模拟信号和数字信号分别用单独的供电回路,以防止电源干扰。利用温度传感器DS18B20采集测量锅炉水温;使用LCD液晶显示器显示水位的上下限值、预先设定的温度报警值和当前采集的温度值。利用继电器控制燃烧器和给水泵的加热和给水。当锅炉的水的实际水温超过报警温度值,系统会发出报警声音,这时接在单片机一端的继电器动作,燃烧器断电。此时温度传感器实时对锅炉温度检测,当温度降到设定值的下限时,继电器重新通电。燃烧器电源重新接通,锅炉继续加热。如此反复监控温度。这样对锅炉温度控制不仅可以节约能源,提高能源的使用率。此外,为符合实际本系统对锅炉的水位进展实时监控,防止锅炉干烧和锅炉水溢出,以免造成能源浪费和水溢出引起的锅炉爆炸严重后果。2硬件电路设计 主电路 1.温度控制电路图2.1温度控制电路2.水位控制电路图2.2锅炉加水电路图 2.3 水位检测电路2.2 单片机最小系统AT89S51的时钟可由部产生也可以由外部产生。在这个设计中只是用了部产生。利用芯片部振荡电路,在XTAL1,XTAL218,19脚的引脚上外接定时元件,部振荡器便能产生自激振荡,用示波器便可观察到XTAL2输出的正弦波,定时元件可以采用石英晶体和电容组成的并联谐振电路,它与单片机的接法的如图3-5所示。晶体可以在1.2MHz12MHz之间所选,电容可以在2060pF之间所选,通常选择30pF左右,电容C6,C7的大小对振荡频率有微小的影响,可起频率微调作用。在设计印制板时,晶体和电容应尽可能与单片机芯片靠近,以减少寄生电容,保证振荡器可靠工作,一般采用瓷片电容。图2.5 时钟电路2.2.2 复位电路单片机上电后,在其9脚RESET出现24个振荡周期以上的高电平后,单片机部初始复位。为了确保单片机正常复位,必需使其第9脚上出现的高电平保持2s以上。复位电路如图 所示。图2.6 复位电路系统的复位电路是由RC电路组成,外加一个手动复位按钮。刚上电时或者触动按钮后C5两端的电压为0,这时RST为高电平,而其高电平保持时间是由R和C的时间常数决定,由公式(3-1)可知,C充电的时间常数ms,远远大于2s,即使RST高电平的时间保持2s以上,确保了单片机正常复位。 温度控制电路设计本系统采用继电器进展对燃烧器工作方式控制,从而锅炉控制温度。当P口输出高电平时,经反相驱动器7406变为低电平,使发光二极管发光,从而使光敏三极管导通,进而是Q3导通,因而继电器的线圈通电,接通锅炉燃烧器。本局部电路与单片机的接口如图2.9所示。1.当P1.7输出高电平时,燃烧器通电,燃烧器对锅炉加热,进展加热处理。2.当P1.7输出低电平时,燃烧器断电,燃烧器对锅炉加热,不进展加热处理。图2.9 温度控制电路2.4 水位控制电路锅炉在正常加温工作情况下,同时对锅炉液位检测。当锅炉的水位满足条件时开始工作。本系统设计利用普通水的导电性质采用不绣钢管作为测量液位的器件,放于锅炉上下限的金属棒是否正在导电的情况判断锅炉的水位是不是在上下限围之间,单片机通过采集的水位变化的信号,发出对给水泵控制的命令,控制锅炉水位符合条件。图2.10水位检测电路如图2.10水位检测电路所示,金属棒1放于水位上限位置,金属棒2放于水位下限位置,金属棒3放于水位以下比拟远点的位置。其中金属棒1和金属棒2用限流电阻分别与单片机相连接,金属棒3接+5v的电源。单片机不断的检测单片机端口p1.2和p1.3的电平情况。(1)当P1.2高电平和P1.3高电平时,即实际水位在水位上限以上的位置,这时系统发出报警命令,系统停止工作。(2)当P1.2高电平和P1.3低电平时,即实际水位在水位上限和水位下限之间的位置,单片机不进展处理,即保持给水泵的状态不变。(3)当P1.2低电平和P1.3低电平时,即实际水位在下限以下的位置,这时系统控制给水泵工作,锅炉开始加水,并报警。图2.11 水位控制电路当锅炉水位处与水位下限值的时,单片机P1.4口输出一个高电平,继电器接通,此时给水泵通电,给水泵开始工作给锅炉加水。本系统采用蜂鸣器进展报警,并用两个LED指示灯表示工作状态,红灯亮绿灯灭表示报警;红灯灭绿灯亮表示正常工作。该局部电路与单片机的接口如。图2.15 报警电路电路由限流电阻R1、三极管Q1、两个二极管和蜂鸣器组成。这个电路并不是一般的放大电路,三极管不是工作在放大状态,而是工作在饱和状态和截止状态。当基极为低电平时,晶体管处于饱和状态,饱和电压为UCES=0. 3V,此时,蜂鸣器鸣叫。当基极为高电平时,晶体管截止,相当于开路,输出为高电平,蜂鸣器停止鸣叫。本系统为符合实际要求,进入系统之前首先对温度报警值的设置。本系统有三个按键分别为K1,K2,K3.如图2.17所示。(1) K1设置锅炉温度报警值的温度值增加按键。K1每按下一次,温度报警值显示加比上一次值增加一度。(2) K2设置锅炉温度报警值的温度值减少按键。K1每按下一次,温度报警值显示比上一次值减少一度。 (3) K3温度报警值确定值。图2.17 按键电路设计3 系统软件设计本章讲述的系统软件设计包括锅炉温度控制的单片机程序设计以与构成系统的各局部子程序设计。主流程图设计锅炉温度控制系统的单片机程序设计主流程图如下列图。本系统进入执行时先对锅炉水位进展与设定的水位上下限进展判断,然后按条件不同处理结果。当锅炉水位满足条件的时候再对锅炉的水温采样监控,并进展相应的处理。图 3.1 软件主流程3.2中断程序程序中断服务程序序K1是否按下加1并示K2是否按下减1并显示K3是否按下返回是是是否否否图4.2 中断服务程序4.3 DS18B20温度采集子程序设计DS18B20有严格的协议来确保其数据的完整性。协议包括几种单线信号类型:复位脉冲,存在脉冲,写0、写1、读0、读1。所有这些信号类型除存在脉冲外,其它的信号均由总线主机产生。开始与SD18B20进展任何通信。都要对其进展初始化,在接收到复位脉冲后,再对SD18B20进展正确的ROM命令和存贮器操作命令。在总线主机初始化过程,主机通过拉高单总线,以产生复位脉冲。接着,在主机释放总线,并进入接收模式。当总线被释放后,上拉电阻将总线拉高。在单总线器件检测到上升沿后,接着产生延时,接着通过拉低总线,以产生存在脉冲。DS18B20温度采集子程序流程图如。开始检测DS18B02是否存在跳过EOM匹配是发出温度转换 命令跳过ROM匹配发出温度读取命令保存采集的温度完毕否图3.3 DS18B20温度采集子程序流程图3.4 LCD液晶显示子程序设计本系统采用是16*2的LCD1602,单片机对其初始化,然后将需要显示的字符在LCD存储的地址和要求在LCD显示的地址送出,再检测LCD是否处在忙碌不能接收命令或数据的状态,检测到LCD空闲时就可以写数据显示了。LCD液晶显示子流程图如下列图,具体实现过程请查阅附录LCD液晶显示子程序。开始LCD液晶显示模块初始化将需要的显示信息和LCD的地址送出检测LCD是否忙碌写数据显示完毕否是图3.4 LCD液晶显示子程序流程图MAIN: CALL TEMP_SET;显示设定温度报警值的信息 MOV A,#0C9H;设定温度摄示度标记的显示位置 CALL TEMP_BJ ;显示温度摄示度的标记 LCALL DIS_TEMP;显示初始化的报警温度MAIN1: MOV 20H,#0 LCALL KEY;调用按键扫描程序 JNB 20H.0,DEC_TEMPADD_TEMP: INC TEMP_AL;报警温度值加1 LCALL DIS_TEMP;显示改变后的报警温度 AJMP MAIN1DEC_TEMP: JNB 20H.1,CONFIRM DEC TEMP_AL;报警温度值减1 LCALL DIS_TEMP;显示改变后的报警温度 AJMP MAIN1CONFIRM: JNB 20H.2,MAIN1;如果没按任何键就返回MAIN1继续扫描 ;SETB SPK; LCALL DIS_TEMP1 CALL MENU_OK1;LCD显示温度采集和水位控制信息 LCALL DIS_TEMP1 ;显示已设定的温度报警值 MOV A,#0CEH;当前温度摄示度标记的显示位置 CALL TEMP_BJ ;显示当前温度摄示度的标记START: CALL RE_18B20_1;检测通道1的DS18B20是否存在,并设置12位准确度 CALL RESET1 ;18B20复位子程序,检测18B20是否存在 JNB FLAG1,START11 ;如果DS1820不存在如此跳START11; CALL MENU_OK1;如果存在如此显示OK; MOV A,#0CEH; CALL TEMP_BJ ;显示温度摄示度的标记 JMP START21START11: CALL MENU_ERROR1;如果不存在如此显示ERROR MOV A,#0CBH CALL TEMP_BJ ;显示温度摄示度的标记 JMP STARTSTART21:;检查到有温度传感器后的处理 CALL RESET1;18B20复位子程序,再次检测18B20是否存在 JNB FLAG1,START11 ;DS1820不存在如此转到START11报错 MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE1 MOV A,#44H ; 发出温度转换命令 CALL WRITE1 CALL RESET1 MOV A,#0CCH ; 跳过ROM匹配 CALL WRITE1 MOV A,#0BEH ; 发出读温度命令 CALL WRITE1 CALL READ1;读出温度值到TEMPH、TEMPLDISPLAY: CALL DELAY2 CALL CONV;将采集到的温度在LCD1602显示出来 ;LCALL DIS_TEMP1;显示已设定的温度报警值ADD_WATER:INC WATER LCALL DIS_WATER;显示当前水位的值 AJMP PARE1;当前水位与水位上限值80比拟CLR SPK;如果水位大于80就报警SETB WATER-SW-H ;关闭给水泵CLR SPK;如果水位小于20就报警 CLR WATER_SW_H;如果当前水位低于下限值就打开给水泵开关CLR BOILER_SW ;当前温度超过温度报警值关闭锅炉燃烧器开关,停止加热 CLR RED SETB GREEN LJMPSTART;比拟完毕,重新采集温度和水位START0: flag,LOOP4;如果水位出现报警但温度没有出现报警时就继续采集温度和水位 SETB SPK;如果水位和温度都没有出现报警时就使绿灯亮,然后继续采集温度和水位 SETB RED CLR GREENLP:ORLP1,03H;逻辑或,检测水位MOVA,P1;读P1口JNB ACC.3,LP1, P1.3=0跳转到LP1 ACC.4,LP2;当P1.4=0表示实际水位在下限,跳转BK: MOV A #20 ACALLD2S;调延时2S子程序 AJMPLPLP1:JNBACC 4,L00P3;当P1.4=0如此转SETBSPK;报警SETBP1. 2;使P1 2=1,停止电机工作LP4:SJMPL00P4;出现故障后程序进入 等待状态LP3:CLRP1.2;启动电机 AJMPBKLP2: SETBP1 2;电动机停止工作 电机工作AJMPBKEND;=;LCD显示温度标记子程序;=TEMP_BJ: ;MOV A,#0CAH CALL W ;调用LCD写命令子程序 MOV DPTR,#BJ1 ;指针指到显示消息 MOV R1,#0 MOV R0,#2BBJJ1: MOV A,R1 MOVC A,A+DPTR CALL WDATA ;调用LCD写数据子程序 INC R1 DJNZ R0,BBJJ1 RETBJ1: DB 00H,"C" ;摄示度标记;=TEMP_SET: ;设定温度报警值 MOV DPTR,#TEMP_SET1 ;指针指到显示消息 MOV A,#1 ;显示在第一行 CALL LCD_PRINT;在LCD的第一行或第二行显示字符 RETTEMP_SET1: DB " SET ALARM TEMP ",0;=MENU_OK1: ;LCD显示温度采集和水位控制信息 MOV DPTR,#M_OK1 ;指针指到显示消息 MOV A,#1 ;显示在第一行 CALL LCD_PRINT;在LCD的第一行或第二行显示字符 MOV DPTR,#M_OK2 ;指针指到显示消息 MOV A,#2 ;显示在第二行 CALL LCD_PRINT ;在LCD的第一行或第二行显示字符 RET总 结本设计通过单片机的控制,实现了锅炉温度控制的根本功能,利用继电器控制燃烧器的工作,并且对锅炉水位进展控制,并通过显示屏显示出水温水位的状态信息,确保了能够在正常围下工作。系统中以AT89S51芯片作为控制芯片,采用一线总线的温度传感器DS18B20,用LCD1602液晶显示模块显示水温水位的状态信息,这些都得使硬件电路变得简单,性能得到提高。而且有蜂鸣器进展报警,使得本设计在应用上更加安全。在本次设计中,我不但巩固了根底知识,而且锻炼了自己的学习能力,通过查阅资料,了解了大量课堂上学不到的东西,为以后的工作和学习打下了夯实的根底,但遗憾的是本设计并未通过了实物模拟,在实际应用上肯定存在着不少缺欠。希望以后能做出实物,发现设计上的缺欠,并加以改良,完善本系统的设计。20 / 20