智能饮水机控制系统的设计.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流智能饮水机控制系统的设计2014-JX16- 本科毕业论文(设计) 智能饮水机控制系统的设计 系 (部)信息工程系专 业测控技术与仪器学 号201007064224学生姓名王珂指导教师刘秀敏提交日期年 月 日.精品文档.中工信商摘 要现代生活中,饮水机已经成为了必不可少的日常电器。而以往的饮水机只有单加热或者制冷功能,功能强大一些的饮水机可以实现对水温的控制,但是这类饮水机的市场价格相对较高。所以本文设计了一款价格相对低廉但是功能强大的智能饮水机系统,利用单片机不仅能够实现对水温的控制,同时利用液晶屏幕显示温度,拥有良好的人机信息交换界面,用户可以利用按键选择不同的模式,比如:沏茶,冲咖啡等。本设计也为各种突发情况制定了应对措施,比如在水箱缺水的情况下,用户无法使用加热功能,系统也会通过声光报警,提醒用户以保证用户及其系统的安全性。对于设计而言,在保证用户使用安全的情况下,尽可能为用户的使用提供方便是本设计的要求。本设计的智能化水平较高,完全可以根据用户的需求实现自动化操作。关键字:智能饮水机,单片机,控制Design the control system of intelligent water dispenser AbstractAt present,dispenser has became indispensable daily appliances.But in the past dispensers only has heating or cooling function,the betters can realize temperature control.But this kind of dispenser market price is relativity high.So I design a relatively inexpensive but powerful intelligent dispenser system.Using MCU not only can realize temperature control,but also can use liquid crystal display the temperature.Having a good man-machine interface,user can choose different patterns though keys.like:make tea,make coffee,and so on.This design also measures for various emergency situations.For example, in the water shortage situation, users can not use the heating function, the system will through sound and light alarm to remind the user.Ensure the safety of the user and the system.For the design, to ensure user safety, As far as possible for the user easy to use is the requirement of the design.The intelligent level of the design is higher,system can realize automatic operation according to the needs of user.Keywords:intelligent water dispenser MUC control目录1 引言12 系统功能设计23 系统硬件设计33.1 51单片机最小系统33.2 电源设计43.3 温度检测部分43.4 按键部分53.5 继电器控制部分63.5.1 泵机控制63.5.2 电磁阀控制73.5.3 加热电阻控制73.5.4 高频臭氧发生器控制83.6 显示电路93.7 液位检测103.8 报警电路113.9 红外控制电路114 系统软件设计134.1 主程序设计134.2 温度子程设计144.3 按键子程序设计174.4 继电器控制子程序设计204.5 显示子程序设计215 调试与制作245.1 硬件制作与调试245.2 软件调试246 结论26参考文献27致谢28附件291 引言人类社会发展迅速,人们对生活水平的要求也是越来越高,在先下的社会中越来越多的家用、办公、工业电器都实现了自动化,智能化。而饮水机这种已经在家庭、办公室等地方普及的电器而言更加朝着智能化发展。由于现在水资源污染严重,而人们对健康水平的要求越来越高,饮用的安全问题成了重中之重,人们在选用饮水机时会选择那些智能化程度高,同时能够保证饮用水安全的饮水机。这就给本课题提供了研究的意义,如何才能让饮水机更加智能化,并且可以实现对饮用水的消毒功能呢?在国外传统型的饮水机已经逐渐被淘汰,因为传统型的饮水机只有简单的加热功能。由于饮用水大多为纯净水或者为矿物质水,那么将水烧至沸腾会造成人体所需的矿物质流失。并且千滚水对人体的危害极大。所以在国外甚至于我国生产的饮水机都会有防止千滚水的设计,并且已经实现了温度可调节控制,真正做到了安全健康。功能更加强大的饮水机还有制冷功能,智能化水平也相对较高。这也为本设计提供了设计要求:安全健康、智能化水平较高1。2 系统功能设计该系统设计以STC89C52为主控芯片实现温度采集及其温度控制,温度采集使用DS18B20数字式温度传感器,使用LCD12864实现用户所需信息的显示,可以构成良好的人机信息交换界面。光电式液位传感器监测液位防止空烧情况的发生,当缺水情况下蜂鸣器报警,LED指示灯点亮。系统通过单片机分别控制四个继电器继实现对控制泵机,电磁阀门,加热电阻以及高频臭氧发生器的工作与停止。按键设计采用复位按键实现咖啡模式,泡茶模式,用户自定义模式的选择以及用户所需温度的选择。用户可以根据不同的需要进行选择性控制。该系统具有良好的人机信息交换界面,操作简单,十分稳定。系统框图如图2.1。图2.1系统框图3 系统硬件设计3.1 51单片机最小系统STC89C52为是一种低功耗、高性能CMOS 8位微控制器,具有在系统可编程FLASH存储器。在单芯片上,拥有灵巧的位CPU和在系统可编程FLASH,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构全双工串行口2。使得该芯片能适用于多种场合。最小系统由复位电路以及晶振电路组成,复位电路如图3.1所示。图3.1复位电路当单片机复位端口有高电平信号并且超过2个机器周期时单片机复位。 图3.2晶振电路常采用12M晶振作为系统的时钟。晶振电路如图3.2所示。3.2 电源设计设计所需要的电源为220V交流电源以及12V、5V直流电源,220V交流电源可直接取得故不作为设计重点,而12V及5V电源的设计为采用220V交流点转18V直流电高功率变压器通过2A整流桥芯片,采用LM7812及LM7805稳压芯片,将18V直流电压转换为12V直流电及5V直流电。LM7812是三端稳压芯片,它的适用范围极广,能够将35V以下,12V以上的电压稳定到12V,输出稳定性较好,并且有过热保护输出过流保护功能。同LM7812一样,LM7805也是三端稳压芯片,唯一不同之处在于LM7805能够将35V以下,5V以上的直流电压稳定到5V3。电源电路原理图如图3.3所示。 图3.3电源电路3.3 温度检测部分饮水机中常采用温度开关作为温度控制装置,当温度达到温度开关锁定的温度时,温度开关就会做出相应开启、关闭的动作。虽然温度开关价格相对较低,但是由于设计需实现智能化控制,并且实现用户对水温的控制,所以温度开关已经无法满足设计要求。故使用DS18B20数字式温度传感器,该温度传感器不需要外接电路,通过编程即可完成对温度的采集,A/D转换供单片机读取。DS18B20采用的是单总线式的数据传输方式,内部有64位的ROM单元和9字节的暂存单元,而单片机所需的温度采集值就存放于这9个字节中的第0字节和第1字节中。由于单片机读出的信号为数字信号,所以需要采用一系列的算法将这些二进制数转换为十进制数以供使用人员更加直观的观测采集到的温度值。DS18B20最高精度为12位,最低精度为9位,量程范围为-55125。满足本设计的要求并且价格相对低廉,所以设计采用DS18B20作为温度检测部分的核心4。由于该传感器输出电路较小所以需加4.7K以上的上拉电阻保证数据传输的准确定。单总线数据传输方式使得该传感器占用I/0的数量很少,这也是它的优点之一。温度检测电路如图3.4所示。 图3.4温度检测电路3.4 按键部分按键设计采用的是复位按键,用来控制程序中各个标志位的改变,以供调用子程序,设计相对简单。单片机上电后所有I/0口均为高电平,故当检测到低电平的时候单片机就会相应的做出动作。由于软件设计使用的是外部中断1作为按键程序的入口,所以按键公共端口为地端5。设计原理图如图3.5所示。 图3.5按键电路3.5 继电器控制部分继电器的种类多种多样如电磁继电器、固态继电器、时间继电器、中间继电器等。但是继电器的工作原理几乎是相同的,简而言之它是流控开关可以实现小电流控制大电流从而起到保护,控制的功能。而本设计使用的继电器是电磁式继电器,该种类的继电器是由由线圈和触点两个部分组成,当线圈有电流流过时就会产生磁力从而吸和触点,使常闭触点断开,常开触点导通达到控制功能。这样就可以实现5V直流电压控制12V泵机、电磁阀,甚至220V交流供电的高频臭氧放生装置和3000W的加热电阻丝6。但是继电器的型号一定要选择正确如最大承受功率及可以通过的电流,如果选择不合适会造成继电器的损坏。3.5.1 泵机控制水泵是一种可以运输液体的机械,可以分为容积水泵和叶片水泵。设计采用的是叶片水泵,利用回转叶片与水的作用力来传递能量。与控制电机相似,当流经水泵的电流较大时,水泵的功率较高时水流运输速度较快。系统为了将冷水送到加热水箱中以便加热,故采用了12V的低功率水泵,虽然是低功率但是已经可以在极短时间内将冷水送至加热水箱中。为了使用5V继电器控制12V水泵,故采用S8550PNP型三极管实现对电流的放大,这样就有足够的电流使继电器中的常闭触点断开,常开触点断开。这样当单片机I/0口响应的控制端口为低电平时,继电器吸和,使用12V的外接电源对水泵供电,实现了高低电压的隔离控制。原理图如图3.6所示。 图3.6泵机控制电路3.5.2 电磁阀控制当热水箱中的水加热完毕后,如果系统检测到出水口放有水杯时,电磁阀门就会打开。由于电磁阀门是一种电磁控制的工业设备,用来控制流体的元器件7。当阀门内部的线圈有电流通过时,铁芯就会产生磁力,吸引弹簧克服弹簧的压力使阀口打开,在额定工作电压内,流经电磁阀的电流越大阀口的打开幅度越大。同样的,本系统所采用的电磁阀门也是12V供电,并且为单向电磁阀。这样不仅可以节约成本也可以减少设计难度。采用电磁式继电器实现小电流对大电流的控制。原理图如图3.7所示。 图3.7阀门控制电路3.5.3 加热电阻控制加热电阻主要是利用焦耳定理。电阻的发热值是电阻的阻值同流过电阻的电流值的平方的乘积。所以加热电阻的功率一般都较大,并且大多数都是220V交流电直接供电。所以使用直流电源已经不能满足其要求,并且如果处理不当还会造成系统的损坏甚至安全事故的发生。仍旧采用电磁式继电器实现强电与弱电之间的控制。但是继电器型号的选择需要慎重。虽然控制原理相同但是由于控制的是220V大功率电子装置,所以必须选用大功率继电器可以通过10A电流,这是为了防止事故的发生,也是为了确保系统的稳定性8。而这是本设计的难点之一,用弱电控制强电是需要不断的测试和良好的理论基础。由于设计需要即时加热功能,所以热水箱中不能过大,并且加热电阻的功率必须满足要求,经过测试选用3KW的加热电阻即可。并且利用软件编程控制热水箱中的水不能多次被煮沸,防止千滚水危害人体健康。原理图如图3.8所示。 图3.8电阻丝控制电路3.5.4 高频臭氧发生器控制饮水机所用水虽然都是纯净水,但是在使用过程中难免由于饮水机设备或饮用水更换时间过长造成一定的污染,对人体造成伤害,所以需要对饮用水经行消毒。而饮水机也需要定期进行清洗。常用的饮用水消毒为化学方法消毒和物理方法消毒,简单的物理方法消毒使用的是活性炭经行吸附作用,需要定期更换活性炭并且随着使用时间增长会使消毒能力下降。而本设计使用的化学方法进行消毒,臭氧就有强氧化性,能够快速的杀灭饮用水中细菌,并且同饮用水的接触面积大,更容易溶于水,臭氧在水中不稳定及其容易分解为氧气和单个氧原子,使得臭氧具有褪色和除味的功能,可以更有效的对饮用水进行消毒9。如何产生臭氧是本设计的一个难点。当雷电过后就会闻到淡淡的草腥味,这其实就是臭氧。所以根据这现象就可以设计出一种臭氧发生器。利用高频电与空气中的氧气发生化学反应,使空气中的氧气转换成臭氧。这样就可以产生臭氧。如图3.9所示。 图3.9高频臭氧发生电路当220V交流电流经D6和R7已经被整流、限流。单向脉动电流控制Q5进行通断,产生振荡,经变压器T2升压后得到2K-3KV左右的高压电,经O3管放电就会产生O3了。C10同C9经行滤波,保证电源的干净无杂波。3.6 显示电路为了具有良好的人机交换界面, 并且可以将采集的信息显示出来,故采用LCD12864液晶显示屏。选用LCD12864的主要原因是LCD12864自带汉字库可以直接显示汉字10。并且屏幕较大可以更加直观。设计如图3.10所示。图3.10显示电路LCD12864为汉字图形点阵液晶显示模块,可以显示汉字及其图形并且内置了8192个汉字128个字符及64*256点阵显示RAM,3.3-5V供电自带背光功能拥有多种功能,如:画面移位,自定义字符,睡眠模式等。可以采用串口读写和并行读写两种工作方式。工作方式选择由单片机P2.7口控制,同时LCD12864具有复位功能。当复位端口有高电平时则LCD12864复位。由于本设计对LCD12864的控制采用的是并行读取方式,故单片机P0口与LCD12864的数据口相连。通过单片机控制RS、R/W、以及E端口即可实现对LCD12864控制。具体编程控制请阅读软件设计显示子程序11。3.7 液位检测检测液位的最主要目的是防止热水箱空烧。热水箱空烧不仅会造成加热电阻的损坏,也会造成安全隐患。检测液位的方法有很多,最简单的方法是采用两个导线直接放在水箱中,当水面浸没住两个导线的时候,水就如同导线,两根导线导通I/0口就可以检测到相应的电信号。虽然简单廉价,但是可靠性有所欠缺。所以采用可靠性更强但是使用也很方便的光电式液位传感器。设计采用传感器型号为 XKC-W001-NPN,这种型号的液位传感器可以适应不同颜色,不同透明度的液体液位的检测8。该液位传感器主要是利用红外光电效应。当该传感器上电后传感器中的红外发射头就会发出红外线,如果没有遇到液体时,红外线就不会产生反射效应。如果检测到液位则红外线就会产生反射现象从而红外接收头就会接收到信号,这样传感器的输出端口就会产生高低电平的转换,将光信号转换成了电信号供使用者采集。传感器的输出端口,即黄线可直接与单片机I/0相连,由于输出信号的电流不足,所以需要在传感器白线与黄线之间加10K上拉电阻放大电流信号,保证信号传输的可靠性。传感器红线接5V电源,蓝线接地实传感器供电,保证传感器正常工作。典型接线图如图3.11所示。 图3.11液位传感器典型接线图3.8 报警电路报警电路采用的无源蜂鸣器作为报警的电路主器件。无源蜂鸣器是流控器件,在额定范围内流经的电流越大,蜂鸣器的响度越大。并且频率不固定可以通过编程控制,为了保证流经蜂鸣器的电流,故需要采用三极管将电流放大。设计采用的S8550PNP型三极管,理论放大值为128倍容易实现深度饱和12。采用1K电阻作为限流电阻防止三极管烧毁。如图3.12所示。 图3.12 蜂鸣器报警电路3.9 红外控制电路本设计中红外控制主要用来检测热水箱出水的自动控制,红外发射头发出的红外线遇到遮挡物时则被反射回来由红外接收头接收。通过运算放大器以及外围器件构成电压比较器实现出水口有无容器的检测。常用的电压比较器多种多样,由于就只用到一级运算放大,故采用OP07单运算放大器。OPO7是一种低噪声,双极性运算放大器,开环增益高,低输入失调电压,能够运用于多种场合。供电范围为±3V±18V13。原理图如图3.13所示。 图3.13光电检测电路原理图中所示的为RPR220常用红外对管,集成了红外发射头和红外发射头。设计简单,R16为电位器,可以用来设定比较电压。4 系统软件设计4.1 主程序设计程序主要进行按键检测,通过不同的按键可以进入不同的子程序实现对各个功能的控制。系统主流程图如图4.1所示。 图4.1主程序流程图4.2 温度子程设计温度子程序是用来控制DS18B20的单总线,进行DS18B20的初始化,以及温度的读取和温度读取后对二进制数据处理转为十进制数据,以便其他子程序的调用。根据芯片手册上的时序图编程即可完成对DS18B20的控制14。复位时序图如图4.2.所示。 图4.2复位时序图主机总线从to时刻开始发送一个最短为480us的复位脉冲,在t1时刻释放总线等待,如果复位成功,则会在1560us后由DS18B20发送一个高脉冲到主机上,接着DS18B20在t2 时刻发出发出长达60240us的低脉冲则复位成功。每次进行温度采集时均需要复位。参考程序如下;void Init18b20 (void)D18B20=1;_nop_();D18B20=0;TempDelay(80); /delay 530 uS/80_nop_();D18B20=1;TempDelay(14); /delay 100 uS/14if(D18B20=0)flag = 1; /detect 1820 success!elseflag = 0; /detect 1820 fail!TempDelay(20); /20_nop_();_nop_();D18B20 = 1;写数据时序图如图4.3所示。 图4.3写时序图主机总线从to时刻由高拉低,在随后的15us60us后将所需要写入的数据写入总线由主机采样。两个数据间隙应当在1us以上15。参考程序如下:void WriteByte (uchar wr) /单字节写入unsigned char idata i;for (i=0;i<8;i+)D18B20 = 0;_nop_();D18B20=wr&0x01;TempDelay(3); /delay 45 _nop_();_nop_();D18B20=1;wr >>= 1;读数据时序图如图4.4所示:图4.4读时序图 主机总线从t0时刻开始保持15us的低电平随后在t1时刻将电平拉高持续45us以上,主机便可以总线上读取DS18B20放在总线上的数据。读取每个位数据间隔必须大于1us。参考程序如下:unsigned char ReadByte (void) /读取单字节unsigned char idata i,u=0;for(i=0;i<8;i+)D18B20 = 0;u >>= 1;D18B20 = 1;if(D18B20=1)u |= 0x80;TempDelay (2);_nop_();return(u);4.3 按键子程序设计设计总共设计了5个按键,功能是为了改变标志位flag,从而程序可以通过判断标志位flag进入相应的程序。程序流程图如图4.5所示。 图4.5按键子程序流程图程序设计思路为,S1(按键1)同单片机的外部中断1相连。当S1按下则进入外部中断1相应的子程序中,并且在该子程序中进行循环。通过S2,S3,S4选择系统三种不同的工作模式,分别为咖啡模式,固定水温65;沏茶模式,固定水温85;以及用户想要自行设定温度,可以通过按键进行调节确定。如果用户想要退出模式选择,进入普通的冷水使用则按下S5终止按键子程序的循环。为了防止空烧的情况,会在每次循环前检测水箱液位。故不会出现程序逻辑混乱导致水箱空烧的情况,参考程序如下:if(s2=0)/咖啡模式 delay(5); if(s2=0) while(!s2); lcd_wcmd(0x01); init_disp3(); hot=0; green=1; yellow=0; red=1; while(1) TemperatuerResult(); if(Temperature>30) finish();lcd_wcmd(0x01); init_disp2(); break; if(s5=0) delay(5);if(s5=0) lcd_wcmd(0x01); init_disp2();red=1;yellow=1;green=1;break;该程序为咖啡模式下的程序,沏茶模式与用户模式程序与该程序段类似故不再过多介绍,详细请参照附录程序部分。4.4 继电器控制子程序设计本段程序为系统的主要控制程序,故在此详细介绍。本段程序主要用来四个继电器的断开与吸和,从而实现对控制水泵,电磁阀,加热电阻丝以及臭氧发生器的控制。当检测到水箱缺水的情况下MCU相应I/O口输出低电平,继电器吸和,从而使用外部12V电源对水泵供电,当液位传感器检测到热水箱加满水后则继电器断开,如果热水箱在一定时间内没有加满水则继电器断开,报警电路工作。正常情况下,水箱加满水后MCU控制大功率继电器吸和,从而加热电阻丝工作。DS18B20工作采集水温,当水温高于用户设定时则控制加热电阻丝的继电器断开,系统停止加热。转而由红外传感器监测是否有杯子放在热水出水口,如果有则在液晶屏幕上显示文字提醒用户16。等待一段时间后控制电磁阀的继电器常开触点闭合,常闭触点打开。热水流出。用户此时可以通过按键关闭电磁阀,或者在一定时间后电磁阀自动关闭。此时系统会返回用户选择工作模式界面。程序流程图如图4.6所示。 图4.6继电器控制流程图4.5 显示子程序设计显示部分使用的LCD12864,LCD12864自带汉字库使用方便。支持串行数据传输及并行数据传输。显示子程序使用的是LCD12864并行数据传输方式。根据LCD12864读写时序图即可完成对LCD12864的控制。LCD12864显示一个汉字相当于在一个16*16的矩阵上显示出汉字,但由于LCD12864每行最多可以显示八个汉字,所以每次需要写入所显示的数据时,首先是要把所显示的位置坐标确定,通常使用X轴,Y轴来确定所显示数据的在液晶屏上的位置。参考程序如下:void lcd_pos(uchar X,uchar Y) uchar pos; if (X=1) X=0x80; else if (X=2) X=0x90; else if (X=3) X=0x88; else if (X=4) X=0x98; pos = X+Y ; lcd_wcmd(pos); /显示地址LCD12864写时序图如图4.7所示: 图4.7写时序图根据写时序图可知:RS在VIN1时刻由高电平拉低,R/W由高电平拉低,E端口由低电平拉高。并且经过一段延时后将数据写入在并行接口上。数据写入后经过一段时间将RS拉高,R/W拉高,E端口拉低。完成一个字节的数据写入到LCD12864。同时写入程序分为写入命令和写入所显示数据,写入命令是直接更改LCD12864内部寄存器的参数,而写入所显示数据则写入的数据相应的ASCLL码或者汉字库里自带的汉字,参考程序如下:void lcd_wdat(uchar dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; void lcd_wcmd(uchar cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; LCD12864读时序图如图4.8所示。 图4.8读时序图同写数据类似,根据读数据的时序图就能够编辑出相应的控制程序,从VIN1时刻开始,RS由低电平拉高至高电平,随后R/W由低电平拉高至高电平,E端口由低电平拉高使能LCD12864。同时需要读出的数据就会放在并行数据总线上,用户读取即可,在这次操作完后需要将RS拉低,R/W拉低,E端口拉低以供下次使用,由于本设计并未用到该功能故不作详细介绍17。5 调试与制作5.1 硬件制作与调试硬件部分调试分为原理图审核,PCB图审核和PCB板的检测,焊接检测。原理图为这个硬件设计的核心,如果原理图有问题那么整个设计极有可能出现无法工作需要后期在PCB板上改正,甚至导致重新印制PCB的危险。所以原理图的审核是硬件调试的重中之重。如果确定原理图绘制正确那么就绘制PCB图。PCB图的绘制也是比较重要的,尤其是各种原件的封装一定要准确。当PCB图绘制完成后可以发至工厂进行制作。这样出现焊接问题以及PCB断线问题可能性就会大大减少。但是如果是手工印制PCB板的话就需要多注意很多问题,而解决这些问题这也是硬件调试工作最主要的部分。首先就是当PCB板转印到铜板上后首先就是要检查是否有断线的地方,这个步骤是为了减少后期整体硬件调试的难度,如果存在的断线的地方则需要用碳素笔将断线处接好。然后将转印好的铜板放在腐蚀液里腐蚀。腐蚀的时间一定要把握好,需要注意不要直接将铜板丢入腐蚀液中或者放置时将铜板水平放置在水面上。应当倾斜一定角度放置,然后铜板自然水平漂浮在腐蚀液上,这样可以加快腐蚀速度并且减少起泡出现的可能性。腐蚀完毕后同样需要检测电路是否有断线的地方,也会因为腐蚀时间过长导致该问题的发生。如果出现则需要在PCB板上补线。当确定PCB板的电路没有问题,就要对PCB板进行钻孔,钻头要选用适当,因为焊盘的大小固定,通孔的尺寸也是固定的,钻头选用不当会造成焊盘损坏无法还接原件的引脚。PCB所有工艺流程完成后就需要在PCB板上放置元器件经行焊接。焊接完成后就可以对这个系统上电。检测整个系统电路是否导通,通常设计都会存在电源指示灯,上电后指示灯正常点亮,并且各个部分芯片没有出现发热显现则可以进行软件调试。如果上电后指示灯亮度微弱或者一直不亮则需要用万用表测试整个回路的导通性。芯片发热则需要立即断电,查看是否焊接正确。5.2 软件调试硬件调试完成后就需要软件调试,软件调试的最主要目的是为了再次确定硬件是否存在问题,这样才可以编写程序对系统各个模块进行控制。软件调试可以通过程序调试或者使用仿真软件进行调试。程序调试为编写一个简单的测试程序,该程序可以同时使硬件部分的各个模块同时工作。这样在将程序烧录到单片机里后能够直观的看出模块是否正常工作。在确定程序编写正确的情况加可以确定存在问题的电路。如果通过仿真软件进行调试,可以执行所编写的程序通过单步运行以及设立节点的方法观察硬件电路的工作情况是否正常,如果出现问题可以调用软件相关功能查看I/O情况,以及MCU内部寄存器情况。从而确定硬件电路出问题的地方,这部分软件调试是与硬件调试相结合再次确定硬件部分是否存在问题。硬件不存在问题就需要对系统程序进行调试,程序编写应当分模块化进行编写,同样的程序调试也应当分模块化调试。可以通过编译软件Keil进行来进行仿真调试。Keil软件自带仿真运行,程序调试功能,程序运行可以设立节点,单步运行,也可以全速运行。Keil在仿真调试过程中可以查看MCU内部寄存器运行状况,也可以查看MCU相关I/O的工作状态,程序运行所需的各部分时间也能在相应的操作界面进行显示。如图5.1所示。 图5.1软件调试图图5.1 调试界面6 结论根据前期设计理论的反复论证以及后期从设计出产品工作情况可以说明本设计的设计思路正确性,并且可以按照设计思路实现任务书上所要求的功能。经过测试所制作的电源模块工作稳定,能够长时间的使用,稳压芯片有一定的发热现象,但是不影响系统正常的工作,同时使用STC89C52单片机作为控制芯片可以对系统实现很好的控制。设计出的产品,能够实现自动上水,防止热水箱空烧,定时消毒,防止千滚水产生,即时加热,自动出水,温度智能化控制以及用户自选加热温度等功能,可以说已经实现了饮水机智能化的要求,并且造价相对较低。使用简单方便,用户可以通过液晶显示屏进行很好的操作,同时报警功能以及指示灯功能工作正常,可以说已经完全符合设计任务书所要求的内容,并且在要求内容的基础上实现了一定的功能扩展。该设计已经具有成为产品的潜质。并且根据手工制作PCB板的情况可以说明该设计加工难度不大,对工艺要求不高,但是安全性能较好,能够适用如民用范畴内。同时该产品具有二次开发的潜质,可以利用电子制冷片增加功能,也可以增加时钟芯片实现定时休眠待机功能等。总得而言这个设计还是具有一定的可行性和先进性。参考文献1 陈阳海.51系列单片机的基础知识J.电子制作,2005(12)2 张志良.单片机原理与控制技术.第1版.北京.机械工业出版社,20013 胡如龙.基于AVR单片机的全自动热饮机控制器的设计J.计算机测量与制.2008.16(8)4 5 question1506176086 姜宝港.智能家用电器原理与维修M.北京机械工业出版社,2002.57 刘大茂.智能仪器原理与设计.国防工业出版社,20088 朱欣华,姚天忠,邹丽新.智能仪器原理与设计M.北京.中国计量出版社,2008:11-209 魏立峰.单片机原理与应用技术M.2006年第一版.北京大学出版社10 唐朔飞.计算机组成原理M.高等教育出版社.2008.11 赵永杰.基于DS18B20的温度测量系统J.2008.12 王永军,从玉珍.数字逻辑与数字系统M .北京:电子工业出版社,1999.13 罗翼,张宏伟.PIC单片机应用系统开发实例M .北京:中国电力出版社,2005.14 阎石.数字电子技术基础(第四版).北京高等教育出版社,199815 ATMEL.8-bit Microcontroller with 8K Bytes Flash AT89C52.199916 TLC5615C/I 10-Bit Digital-to-Analog Converters.Texas Instruments17 By Howard Johnson and Martin GrahamHigh-Speed Digital Design. PublishingHouse of Electronics industry ,200308 . 360371致谢首先要十分感谢我的指导老师刘秀敏老师给我的帮助,同时也感谢各位专业课老师给予我的指导。我的设计基本实现了任务书上所要求的内容,并且增加了用户模式选择功能和出水口检测功能让这个系统更加智能化。但是系统在强电处理部分仍旧有所欠缺需要进一步的改进才能提高安全性能,本人也会在以后的学习中加强关于电源方面的学习,让自己的所设计的系统更加完善。这是我在大学期间所做的最后一样设计,方案方面进行了多次修改。但是在真正去动手实践的时候才会发现自己设计不足之处,理论上的只是永远都是理论,虽然是应用的基础,但是如果不去应用那么自己所学的理论只是又有何用处?附件附件一:原理图附件二:PCB图 附件三:源程序#include <reg52.h>#include <INTRINS.H> /Keil library #define uchar unsigned char#define uint unsigned int#define DATA P0#define delayNOP(); _nop_();_nop_();_nop_();_nop_();uchar code DIS1="欢迎使用WK饮水机"uchar code DIS2="当前水温:"uchar code DIS3="按键进入加温模式"uchar code DIS4="请选择模式"uchar code DIS5="1.咖啡、2.沏茶"uchar code DIS6="3.用户自定义"uchar code DIS7="水箱缺水"uchar code DIS8="水箱加水"uchar code DIS9="水箱稳定"uchar code DIS10="咖啡模式水温65 "uchar code DIS11="加热中请勿离开 "uchar code DIS12="加热完成请放水杯"uchar code DIS13="