基于单片机的热水器水温水位控制系统毕业设计.docx
《基于单片机的热水器水温水位控制系统毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的热水器水温水位控制系统毕业设计.docx(20页珍藏版)》请在冰豆网上搜索。
基于单片机的热水器水温水位控制系统毕业设计
以下文档格式全部为word格式,下载后您可以任意修改编辑。
基于单片机的电热水器水温水位控制系统设计
摘要
随着人们生活水平的提高,各种热水器的使用已相当普及。
与之相配套的控制仪也相继问世。
然而,目前市场上的各种热水器控制电路还与理想要求相差甚远。
因此我设计了新型的热水器水温水位控制系统来满足于当今的需求,该热水器智能控制系统主要由AT89S52单片机控制、DS18B20温度传感器、独立键盘、LED数码管和报警系统组成。
该系统能测量并显示水温、设置水温范围,若水温不处于所设置的水温范围则报警,同时还能对水位进行设置及加水,先设置好需要加水的水位段数,单片机会根据这个数进行判断是否加水。
通过软硬件调试使以上所述功能都能正常实现。
本次设计是对水温水位控制系统的智能化改进,采用单片机对其水温水位参数进行控制,提高了电器的工作稳定性,同时引进了数字传感器对水温进行数据采集,这样也就提高了系统的控制精度,以其自身的控制精度高、稳定性好和成本低的独特优点在今后将会由广泛的实用价值,其基于单片机的改进方法也具用广泛的应用意义。
关键词:
单片机;DS18B20;水温水位控制
ElectricWaterHeaterWaterTemperature-LevelControlSystemBasedonSCM
Abstract
Withtheimprovementofpeople'slivingstandard,theuseofvariouswaterthevariouswateranewtypeofwaternowdays.Thedesignofsolarwaterindependentkeyboard,LEDandalarmsystem.Thesystemcanmeasureanddisplaywatertemperature,settherangeofwatertemperature,ofthewatertemperatureisnotintherangeofsettingtemperatureisalarming.Atthesametime,youcansetthewaterlevelandaddwater,first,needtosetupthewaterlevelabovethewater,single-chipwilldeterminewhetheraddthewaterornotaccordingtothenumber.Throughbenormal.
Forotherrelatedparameters,italsomeaningusing.Therevivificationofthewatercontrolsystemisanintelligentproduct.Toitsowncontrolof,stabilityandlowcostoftheadvantages,inthefuturetherewillbeawiderangeofpracticalvalue.Thedesignofthewatertemperaturecontrolsystemistoimprovetheintellectualized.Amonolithicintegratedcircuitsistocontrolthelevelofparameterandimprovethestabilityoftheelectricalwork,andmeantime,What’smore,itsbasedonsinglewaysofimprovementmeaning.
Keywords:
singlechip;waterlevel’sexamination;watertemperature’sexamination
目录
摘要I
AbstractIII
第1章绪论-1-
1.1选题的意义-1-
1.2电热水器发展现状-1-
1.3课题任务-3-
第2章系统设计方案-5-
2.1设计原理-5-
2.1.1系统原理-5-
2.1.2子系统工作原理-5-
2.2设计方案-6-
2.2.1系统设计方案的选择-6-
2.2.2各部件控制系统方案-8-
第3章系统硬件设计-11-
3.1系统总体设计-11-
3.2各单元电路设计-13-
3.2.1控制单元设计-13-
3.2.2显示单元设计-19-
3.2.3检测单元设计-25-
第4章系统软件设计-33-
4.1主程序设计-33-
4.2子程序设计-33-
4.2.1温度采集-33-
4.2.2控制按键设计-34-
4.2.3读温度-35-
第5章系统调试-37-
5.1硬件调试-37-
5.1.1调试步骤-37-
5.1.2液位检测-37-
5.1.3温度检测-38-
5.2软件调试-38-
5.2.1Proteus仿真-38-
5.2.2软件调试过程-39-
5.3系统联调-39-
总结-43-
参考文献-45-
致谢-47-
附录-49-
第1章绪论
1.1选题的意义
随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。
在现代社会中,水位和温度控制不仅应用在工厂生产方面,其作用也体现到了生活的各个方面。
随着人们生活质量的提高,酒店厂房及家庭生活中都会见到水位和温度控制的影子,水位和温度控制将更好的服务于社会目前,单片机控制器在从生活工具到工业应用的各个领域,例如生活工具的电梯、工业生产中的现场控制仪表、数控机床等。
尤其是用单片机控制器改造落后的设备具有性价比高、提高设备的使用寿命、提高设备的自动化程度的特点。
现代工业设计、工程建设及日常生活中常常需要用到水位和温度控制,早期水位和温度控制主要应用于工厂中,例如工厂中的大型锅炉,必须实时的掌握锅炉的水位和温度,确保系统的正常运行。
因此,水温水位控制在改善人们生活质量中起到了非常重要的作用。
现在市面上的电器种类繁多,它们都需要对其主要的水位和水温参数加以控制,实现电器水温水位控制的自动化。
早期温度和水位的参数控制时通过模拟电路实现的,这种方式不仅电路复杂,成本高,而且误差大,系统的稳定性不好,单片机及微型计算机技术的发展和应用有效地解决了这些缺点,特别是传感器的发展,更好的提高了检测参数的精度。
选择基于单片机的水温水位控制系统,是因为它不仅在人们生活中具有显著的意义,更重要的是能系统地聚温度和水位参数于一身,对于更好的掌握和认识单片机的应用和传感器的应用,系统地深刻认识自动控制的实际应用,掌握复杂的多子系统地设计起到了很强的锻炼作用。
1.2电热水器发展现状
经过20多年的发展,整个热水器行业已经从最初的小而少发展到现在的大而多,产品类型也随着技术不断成熟,由最初的燃气热水器独领风骚发展到今天的燃气式、电热式、太阳能、空气源热泵等多种类型。
随着全球经济快速发展,中国电器制造业的迅猛发展及城市建设步伐的不断加快,为热水科技产业带来了无限商机。
目前,创新、安全、节能、高效已成为热水器行业间竞争的焦点及发展趋势。
据调查,中国热水器的普及率只有70%左右。
目前,46.6%的居民家庭表示要在未来5年中购买或更换热水器。
未来5年内我国城市热水器需求量将平稳增长,达到4660万台,热水器行业即将迎来新一轮的消费高峰。
据国务院发展研究中心市场经济研究所推出的“中国城市热水器市场研究咨询报告”显示,未来三年,我国热水器市场将继续保持平稳发展的态势,年增长保持在6%左右。
就中国的具体情况而言,太阳能热水器由于安装位置的局限性,只适用于居住在顶楼的居民,且受天气原因的限制,使用范围狭窄,燃气热水器由于必须分室安装,且须由专业人员安装,并且燃气热水器不易调温,需定期除垢,在使用中还易产生有害气体,特别是使用液化石油气和人工煤气型的直排式燃气热水器,会产生轻度油烟,严重时甚至会危及生命。
因此燃气热水器是一种人命关天的特殊产品,即使有百分之一的疏忽,带给用户的危险将是百分之百。
根据中国商业联合会前不久的统计,电热水器的市场份额在销售数量和销售收入两个方面都已经超过了长期以来占优势的燃气热水器。
该中心预计,在城市电网更大范围改造和城市住房市场大规模启动的带动下,今后几年我国电热水器市场将呈现强劲增长势头。
目前市场上的电热水器分连续水流式和贮水式,前者虽具有加热速度快和体积小的优点,但需要的功率大,大多数家庭供电线路难以承受。
而市场上传统的机械式电热水器控制功能不完善,而且精度低、可靠性差,生活质量的提高使得消费者对电热水器功能提出延伸至全新的概念层面。
热水器技术未来将继续朝着以下几个方面发展:
①智能化:
从最初的手动旋钮调节发展到如今数字化调节方式
②节能技术:
从最初机械结构上的保温节能到控制技术上的定时加热或分步加热技术转变,由于在水温很高时热量流失较快,所以未采用该类技术的产品需要长时间在高温区反复加热,不仅启动频繁,而且耗电量很大,如果用户可根据自己的实际需要设定好规定时段以进行定时倒计时加热,则能将保温耗电降至最低
③安全稳定性:
由于电热水器不同于一般的家电产品,涉及到人身安全,所以安全问题一直是各大厂家考虑的重点。
随着现在各种安全技术在电热水器设计中的普遍应用,用电环境的日益规范,以及国家对电热水器实行强制认证,安全技术已经成为衡量电热水器的重要标准。
其中安全技术主要体现在能自动检测热水器是否处于正常工作状态,并具有调温、恒温、防干烧、防超高温、防漏电等多项自检功能,使用户在使用过程中安全更有保障。
此外,随着无线通信技术的发展,无线远程控制也将是新一代电热水器的发展方向,用户可以通过任何一部双音频固定电话或手机遥控热水器的开关、温度设定等,并可查询热水器的工作状态。
现在市场上较为先进的储水式电热水器能实现上述等功能,但仍难以满足人们对现代化家电的使用要求。
在现如今众多的控制手段中,要满足低价格、高性能、尤其是智能化的要求,采用典型的嵌入式控制系统——单片机为核心的控制器应为首选。
1.3课题任务
本设计主要是对市场现有产品的仿制,要能够实现电热水器的完整功能。
以AT89S52单片机为核心配合传感器、显示器件、继电器、电加热器、报警器等外围器件,采集热水器储水箱中的水位、水温信号,通过控制电动机的运转、电加热器加热来控制储水器的水位、温度。
利用键盘上开关按钮进行调节水温的最大和最小限度,手动控制上水和加热,设置水位水温功能。
采集热水器储水箱中水位和水温信号,并完成水位和水温的显示,以及缺水报警系统。
第2章系统设计方案
2.1设计原理
2.1.1系统原理
利用热敏传感器和水位传感器检测水温和水位,并加以显示。
根据水位情况进行手动和自动上水控制。
当水位从高到低,出现缺水状态时,蜂鸣器报警,缺水指示灯亮,继电器开始工作,热水器容器上水,水位上升超过“低”水位后,缺水指示灯熄灭,蜂鸣器停止报警。
水位至预置水位后继电器关闭,停止上水;当水温低于设定最低温度时,加热继电器工作,当温度加热高于设定最高温度的时候继电器停止工作。
此系统是为多子系统的综合性控制系统,设计过程中也是分块实现设计调试,最后进行综合实现,以下就从各子系统的工作原理进行分别进行说明。
图2.1系统原理图
2.1.2子系统工作原理
1、温度控制系统
该子系统利用低功耗单线数字温度传感器DS18B20实现温度采样,将采样的温度值通过单片机的P3.3口送入单片机处理,然后实现水温的控制,利用按键对水温的值进行设置,当温度高于上限或者低于下限后蜂鸣器报警,使之保持温度在一定范围内的稳定。
本控制系统可以时时采集热水器内部水温通过LED显示水温,由于太阳能热水器实际温度不会超过100摄制度,所以本系统采用两位显示,测量范围为00~99摄氏度,温度可以精确到小数点后两位。
2、水位控制系统
该子系统能进行水位的控制,利用自制的3根导线对水位的信息进行采集,并通过单片机的P2口送入给单片机处理加工,通过发光二极管显示器显示,共有3个水位挡,没水或者系统出错后,蜂鸣器都报警,使系统的水位保持在一定的范围内。
本系统需显示水位,水位分低、中、高三档,均用发光二极管来指示。
实验证明,纯净水几乎是不导电的,但自然界存在的以及人们日常使用的水都会含有一定的Mg2+、Ca2+等离子,它们的存在使水导电。
本控制装置就是利用水的导电性来完成的。
当水位未达到a时,即h当a[18]Yang.Y.,Yi.J.,Woo,Y.Y.,andKim.B.:
‘OptimumDesignforLinearityandEfficiencyofMicrowaveDohertyAmplifierUsingaNewLoadmatchingTechnique’,Microw.J.,2001,44,(12),pp.20–36
[19]ZouZhijun.AstudyofCapacityofMajorminorpriorityT-intersectionbyMeansofComputerSimulation[J],ChinaJournalofHighwayandTransport,2000,013(003):
.
[20]王欢,王忠庆.TheDesignandImplementationoftheTemperatureAlarmSystemBasedontheSTC89C52RCSingle-chip[N].JournalofJinchengInstituteofTechnology期
[21]吴健,侯文.ATemperatureControlSystemBasedonSTC89C52MCU[J]puterKnowledgeandTechnology(4):
23~31.
[22]张军.SmartTemperatureSensorDS18B20andItsApplication[J].instrumentationTechnology(4):
53~58.
致谢
时间如梭,经过三个对月的紧张的忙碌,毕业设计终于接近尾声,给大学的最后一课画上了一个圆满的句号。
四年的理论学习,使我掌握了基本的专业知识、学习方法。
然而,理论离不开实践,毕业设计正是专业教学的最后一个环节,它使我们把所学的知识得到复习、巩固,加强了理论联系实际的能力,真正把所学的知识应用到实践中去,为将来步入社会,走向工作单位打下了坚实的基础。
在指导老师王玉杰和同学的热心帮助下,我完成了本次设计。
在毕业论文完成之际向培养我的学校及所有关怀和鼓励我的老师表示深深的谢意。
这次设计为我今后的工作奠定了良好的基础,同时,使我能够把学到的知识应用到实践当中,也是对我四年来所学专业知识的一次检验。
在设计过程中得到了来自方方面面的关怀与指导。
尤其是指导教师在学习中给予了很大的帮助,为本次设计的顺利完成耗费了大量的心血。
在此我要向尊敬的导师表示深深的谢意!
由于本人能力有限,在设计过程中不妥之处在所难免,望广大指导教师给予批评指正。
谢谢!
附录
附录1
系统原理图
附录2源程序清单
#includeucharset_st=0;状态标志
signedcharshangxian=38;上限报警温度,默认值为38
signedcharxiaxian=5;下限报警温度,默认值为05
ucharcodeLEDData[]={0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0};
*****延时子程序*****
voidDelay(uintnum)
{
while(--num);
}
*****初始化定时器0*****
voidInitTimer(void)
{
TMOD=0x1;
TH0=0x4c;
TL0=0x00;50ms(晶振11.0592M)
EA=1;全局中断开关
TR0=1;
ET0=1;开启定时器0
}
*****定时器0中断服务程序*****
voidtimer0(void)interrupt1
{
TH0=0x4c;
TL0=0x00;
x++;
}
*****读取温度*****
voidcheck_wendu(void)
{
uinta,b,c;
c=ReadTemperature()-5;获取温度值并减去DS18B20的温漂误差
a=c100;计算得到十位数字
b=c10-a*10;计算得到个位数字
m=c10;计算得到整数位
n=c-a*100-b*10;计算得到小数位
if(m<0){m=0;n=0;}设置温度显示上限
if(m>99){m=99;n=9;}设置温度显示上限
}
*****显示开机初始化等待画面*****
Disp_init()
{
P2=0xf7;显示-
P0=0xbf;
Delay(200);
P0=0xef;
Delay(200);
P0=0xfb;
Delay(200);
P0=0xfe;
Delay(200);
P0=0xff;关闭显示
}
*****显示温度子程序*****
Disp_Temperature()显示温度
{
P2=0x3c;显示C
P0=0xbf;
Delay(300);
P2=LEDData[n];显示个位
P0=0xef;
Delay(300);
P2=LEDData[m%10];显示十位
DIAN=0;显示小数点
P0=0xfb;
Delay(300);
P2=LEDData[m10];显示百位
P0=0xfe;
Delay(300);
P0=0xff;关闭显示
}
*****显示报警温度子程序*****
Disp_alarm(ucharbaojing)
{
P2=0x3c;显示C
P0=0xbf;
Delay(200);
P2=LEDData[baojing%10];显示十位
P0=0xef;
Delay(200);
P2=LEDData[baojing10];显示百位
P0=0xfb;
Delay(200);
if(set_st==1)P2=0x61;
elseif(set_st==2)P2=0x3d;上限H、下限L标示
P0=0xfe;
Delay(200);
P0=0xff;关闭显示
}
*****报警子程序*****
voidAlarm()
{
if(x>=10){beep_st=~beep_st;x=0;}
if((m>=shangxian&&beep_st==1)||(melseBEEP=0;
if(flag==2){
if(beep_st==1){BEEP=1;LED1=0;LED2=0;LED3=0;}
else{BEEP=0;LED1=1;LED2=1;LED3=1;}
}
if(mif(m>=shangxian)JDQ2=1;
}
*****主函数*****
voidmain(void)
{
uintz;
InitTimer();初始化定时器
BEEP=0;
LED1=1;关指示灯
LED2=1;
LED3=1;
JDQ1=1;
JDQ2=1;
check_wendu();
check_wendu();
for(z=0;z<300;z++)
{
Disp_init();
}
while
(1)
{
if(SET==0)
{
Delay(2000);
do{}while(SET==0);
set_st++;x=0;shanshuo_st=1;
if(set_st>2)set_st=0;
}
if(set_st==0)
{
check_wendu();
Disp_Temperature();
if(S1==0&&S2==0){LED1=0;LED2=0;LED3=0;flag=0;JDQ1=1;}水满红灯亮黄灯亮绿灯亮
if(S1==0&&S2==1){LED1=0;LED2=0;LED3=1;flag=0;}半桶水红灯亮黄灯亮绿灯灭
if(S1==1&&S2==1){LED1=0;LED2=1;LED3=1;flag=1;JDQ1=0;}剩一点水开始加水红灯亮黄灯灭绿灯灭
if(S1==1&&S2==0){flag=2;JDQ1=1;}故障错误三个灯闪蜂鸣器报警
Alarm();报警检测
}
elseif(set_st==1)
{
BEEP=0;关闭蜂鸣器
if(DEC==0)
{
Delay(2000);
do{}while(DEC==0);
shangxian--;
if(shangxian}
if(ADD==0)
{
Delay(2000);
do{}while(ADD==0);
shangxian++;
if(shangxian>99)shangxian=99;
}
if(x>=10){shanshuo_st=~shanshuo_st;x=0;}
if(shanshuo_st){Disp_alarm(shangxian);}
}
elseif(set_st==2)
{
BEEP=0;关闭蜂鸣器
if(DEC==0)
{
Delay(2000);
do{}while(DEC==0);
xiaxian--;
if(xiaxian<0)xiaxian=0;
}
if(ADD==0)
{
Delay(2000);
do{}while(ADD==0);
xiaxian++;
if(xiaxian>shangxian)xiaxian=shangxian;
}
i