• 844.50 KB
  • 2022-04-29 13:59:45 发布

基于单片机的智能饮水机的设计电气工程及其自动化专业毕业论文.doc

  • 53页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'河南理工大学万方科技学院本科毕业论文本科毕业设计(论文)题目基于单片机的智能饮水机的设计院(系部)万方科技学院专业名称电气工程及其自动化专业年级班级07-6学生姓名指导教师2011年5月25日53 河南理工大学万方科技学院本科毕业论文摘要目前,大多数家庭所使用的饮水机都只有一些基本的功能,例如加热、保温。然而,随着人们物质生活的不断提高,对饮水机的性能要求也不断提高。为了满足人们对饮水机的性能要求,本课题研究智能饮水机,它主要功能是在温度达到100°沸腾,并能在0-100℃之间以5℃为最小温差进行温度设定,从而得到任意想要的水温,非常人性化。它还具有过热保护及防干烧功能等。随着计算机技术的发展,单片机技术已成为计算机技术中的一个独特的分支,单片机的应用领域也越来越广泛,特别是在工业控制和仪器仪表智能化中扮演着极其重要的角色。过去经常采用模拟电路、数字电路实现的电路系统,现在相当大一部分可以用单片机予以实现,传统的电路设计方法已演变成软件和硬件相结合的设计方法。在实际应用中,单片机经常要与各种传感器相结合组成一定的应用系统,以实现系统的自动检测与控制。本文所设计的智能饮水机就是单片机结合传感器的一个简单应用。该系统设计综合单片机以及电子技术理论,从生活实际出发,完善了饮水机的功能。整个设计系统实现三个功能,即加热、对温度上下限的控制和定时加热。与传统的饮水机相比,由于采用了自动检测和控制的电子设计技术,可较好地实现对水温的测量和控制,具有较广泛的应用前景。关键词:智能饮水机AT89S52单片机温度采集功能设计53 河南理工大学万方科技学院本科毕业论文AbstractCurrently,mosthouseholdsareusingdrinkingfountainsareonlysomebasicfunctions,suchasheating,insulation.However,withthecontinuousimprovementofmateriallife,people,performancerequirementsofthedrinkingfountainsalsorising.Tomeettheperformancerequirementsfordrinkingfountains,drinkingfountainsoftheintelligenceresearch,whichmainfunctionisintheboilingtemperaturereaches100°,andcanbebetween0-100℃at5℃temperaturedifferencefortheminimumtemperaturesetting,youwanttogetanywater,veryhuman.Italsohasthermalprotectionandanti-dryfunctions.Withthedevelopmentofcomputertechnology,singlechiptechnologyhasbecomethecomputertechnologyinauniquebranchofmicrocontrollerapplicationsareincreasinglybeingusedespeciallyinintelligentindustrialcontrolandinstrumentationplaysaveryimportantrole.Usedtoanalogcircuits,digitalcircuitscircuitsystem,andnowalargepartofthemicrocontrollercanbeachieved,thetraditionalmethodofcircuitdesignhasevolvedintoacombinationofsoftwareandhardwaredesign.Inpracticalapplications,themicrocontrollerwithavarietyofsensorsoftencomposedofsomecombinationoftheapplicationsystemtoachieveautomaticdetectionandcontrolsystem.Intelligentdesigninthispaperdispenserisasimplemicrocontrollerwithsensorapplications.Thesystemdesignofintegratedmicrocontrollersandelectronicstheory,therealityoflife,improvethefunctionofthedrinkingfountains.Thewholedesignsystemtoachievethreefunctions,namely,heating,temperaturecontrolandtimerupperandlowerheat.Comparedwiththeconventionaldrinkingfountains,theuseofautomaticdetectionandcontrolofelectronicdesigntechniquestoachievebettermeasurementandcontrolofwatertemperature,haveawiderapplication.Keywords:intelligentwaterdispenser,AT89S52microcontroller,temperatureacquisition,FunctionalDesign朗读显示对应的拉丁字符的拼音 字典53 河南理工大学万方科技学院本科毕业论文目录前言61绪论81.1课题研究的背景81.2市场饮水机现状81.3课题研究的目的和意义91.4智能饮水机的主体功能91.5课题设计的主体内容102智能饮水机的硬件结构设计112.1智能饮水机的总体设计112.2元器件选择122.3AT89S52的主要性能122.3.1AT89S52功能特性描述132.3.2AT89S52晶振电路的设计132.4测温电路的设计152.4.1DS18B20的引脚图及方框图152.4.2DS18B20主要性能162.4.3DS18B20功能特性描述162.4.4DS18B20供电方式182.5主控系统192.6输入控制202.7显示部分212.8其他功能部分233智能饮水机的软件设计253.1系统分配方式253.2主程序设计253.3各模块程序设计283.3.1温度检测程序设计283.3.2显示程序设计303.3.3键盘扫描程序313.3.4延时程序344调试及性能分析354.1软件调试3553 河南理工大学万方科技学院本科毕业论文4.1.1新建工程354.1.2新建文本354.1.3添加文本364.1.4程序编译374.2硬件调试374.2.1电源电路的仿真374.2.2出水电路模块的仿真384.2.3加热模块电路的仿真394.2.4显示模块电路的仿真394.2.5报警电路的仿真404.3性能分析41结论42致谢43参考文献44参考文献44附录145附录246附录34753 河南理工大学万方科技学院本科毕业论文前言随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。温度传感器是其中重要的一类传感器。其发展速度之快,以及其应用之广,并且还有很大潜力。为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本文利用单片机结合温度传感器加以简单的按键控制及显示等功能实现了对智能饮水机的控制,为我们对单片机系统的学习提供了很好的真实素材。53 河南理工大学万方科技学院本科毕业论文本设计实用性及综合性比较强,设计系统不仅可以作为智能饮水机的控制系统,如果稍微改装可以做环境温度检测系统、实验室温度监控系统等等。课题主要任务是完成水温检测并利用单片机实现温度调节并加以显示、报警、锁定等功能。该系统具有操作方便,控制灵活、实用等优点。本设计系统包括温度传感器,键盘输入模块,输出控制模块,数据传输模块,温度显示模块和出水驱动电路等部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控及调节,完成了课题所有要求。53 河南理工大学万方科技学院本科毕业论文1绪论1.1课题研究的背景从饮水机问世以来,在中国的发展趋势逐年增加。饮水机的使用量逐年增长,随着人们生活水平的提高,人们对其功能的要求也越来越高,所以,对智能饮水机的需求就逐渐显现了出来。 饮水机是采用瓶装水或者自来水经净水器净化作为水源,利用电能对其进行加热,一年四季提供常温水或热水的饮水电器。饮水机基本能满足人们日常的饮水、泡茶、冲咖啡、即食食品以及调制冷饮的各种需要。饮水机具有饮水时尚、结构简单、操作方便、清洁卫生、价廉物美等优点。在饮水机进入高潮的今天,市场十分活跃,然而,消费者对饮水机的选择不是停留在过去的眼光,而是高标准,不仅实用而且要求外形脱俗,跟上时代潮流步伐,尤其在其功能方面要有更高的要求。当前绝大多数厂家生产的饮水机都采用智能化控制。因此,智能饮水机已是饮水机发展的必然趋势。1.2市场饮水机现状可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤设备,五花八门,无所不在。饮水机也不例外。53 河南理工大学万方科技学院本科毕业论文单片机按其应用范围可分为通用型和专用型两类。家用电器多采用专用型单片机,如日本NEC公司开发的7500系列和75X00系列4位单片机、美国国家半导体公司的COP400系列4位单片机,以及日本松下公司的MN1400系列、美国Zilog公司的Z8系列以及日本富士通公司的MB88系列等专用型单片机。家用电器所采用的通用型单片机,主要是Intel公司的MCS系列产品。目前饮水机基本上都采用单片机控制,但各厂家生产的饮水机单片机控制所达到的功能各不相同。智能化,多功能必定是发展趋势。1.3课题研究的目的和意义单片机在电子产品中的应用已经越来越广泛,在很多电子产品中也用到了温度检测和温度控制。目前广泛使用的饮水机,具有价格低廉,制造简便等优点。但是随着用户长时间使用,这些饮水机功能单一、能耗较大、长时间饮用饮水机的水对健康不利等缺点逐渐暴露出来。传统的饮水机的局限性一般体现在以下几个方面:第一,功能相对简单。只有简单的温度控制,而且用户还不能自己根据自己的喜好设定温控参数。第二,能耗较大。在没有人使用的时候饮水机也处在开机状态无疑会造成能源的大量浪费,在能源紧缺的今天这个方面亟待解决。第三,长期饮用饮水机里的水会对健康不利。由于广泛使用的饮水机烧水不能完全沸腾,长期饮用这种水会对身体造成较大的伤害。本此设计的基于AT89S52的多功能饮水机,采用DS18B20实现温度采集,经过LED显示,读数直观、准确。并且程序存储器E2PROM可以很容易的实现软件升级,从软件方面提高仪器精度。同时可以对加热温度进行控制,从而防止了每次加热都使水沸腾,既节能又能更好的满足人们的需求。1.4智能饮水机的主体功能(1)智能饮水机的主体功能:53 河南理工大学万方科技学院本科毕业论文本课题设计的智能饮水机具有过热保护防干烧、加热至沸腾、设置温度加热、超温报警提示、安全锁定、电动机出水功能等。(2)智能饮水机的按键功能:①出水键:控制饮水机出水和停止出水;②加热键:负责控制开始加热和停止加热;③锁定键:按下锁定键,其他按键无效;④切换健:按下后开始设定用户想要的温度;⑤温度设定键:按一下温度增加5℃,温度可在0℃到100℃之间循环。(3)智能饮水机的显示功能:①电源灯(绿色):接通电源,电源灯点亮;②加热指示灯(黄色):按下加热键,加热指示灯点亮,表示烧水开始工作。再次按下加热键,指示灯熄灭,表示烧水停止;③锁定键指示灯(蓝色):锁定其他按键功能,灯亮表示其他按键均不可用;④超温报警灯(红色):灯点亮表示水已经达到设定的加热温度或已沸腾并停止加热;⑤数码管:显示当前水温或用户设定的温度。⑥蜂鸣器:响起后说明水以沸腾并停止加热。1.5课题设计的主体内容该设计的主要内容主要包括设计方向的选择、设计题目的确定、设计方法的研究与比较,选择最优方案后开始进行硬件设计和软件设计以及最终的仿真调试。其中硬件设计包括器件的选定,各模块功能的设计与实现,以及最终各功能模块与单片机的连接构成一个整体系统并能满足设计要求;软件设计主要是通过编写C语言程序对单片机进行控制使其按照程序运行从而实现各模块的功能满足设计的要求;最终通过KeiluVision2编译软件将写好的程序编译成为16进制文件,使之能够在proteus仿真软件中和硬件电路一起进行仿真调试,从而确保设计的正确性。53 河南理工大学万方科技学院本科毕业论文2智能饮水机的硬件结构设计2.1智能饮水机的总体设计整个硬件系统由主控制系统、输入输出模块、传感器、其他功能电路和电源部分组成。主控系统使用单片机控制,包括对键盘的信息的接收和控制,对其他功能电路的控制等,通过软件编程实现预定功能;传感器部分即检测子系统,主要是进行饮水机中水的温度检测和控制,采用智能温度传感器DS18B20;其他功能电路部分包括恒温,防干烧,出水等电路,达到功能多样化;电源部分为智能饮水机提供必要的电能,保证饮水机能够正常的工作。整体框图如图2-1所示。以下详细讨论每个功能模块的设计思想和硬件电路的实现。温度检测电路晶振电路复位电路其他功能电路功能显示报警电路键盘单片机AT89S52数码显示电源电路图2-1智能饮水机电路框图53 河南理工大学万方科技学院本科毕业论文2.2元器件选择主机单元由AT89S52单片机和相关的存储器组成,是仪表的核心。关键部分期间名称及其在电路中的主要功能如下:(1)AT89S52:完成监控系统数据采集过程、采集方式和报警过程的控制。是整个系统的核心处理器,单片机首先把通过传感器测到的现场温度与预先设置的温度进行比较,如果大于或小于预先设置值,就输出信号去控制加热器的工作,从而实现温度控制。(2)数码管:用于显示当前水温及设定的水温。(3)DS18B20:单线数字温度传感器,可直接将被测温度转化为串行数字信号,以供单片机处理。(4)各色LED及蜂鸣器:用于提示用户饮水机的各种状态。(5)按键:输入模块,用于控制单片机完成各项功能。2.3AT89S52的主要性能AT89S52具有8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作指导下一个硬件复位。53 河南理工大学万方科技学院本科毕业论文2.3.1AT89S52功能特性描述(1)AT89S52是一种低功耗,高性能CMOS工艺的8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统提供高灵活,超有效的解决方案。(2)AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0KHZ静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机停止工作,直到一个中断或硬件复位为止。(3)AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含8个中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。AT89S52可以按照常规方法进行编程,也可以在线编程。其通用的微处理器和Flash存储器结合在一起,可反复擦写的Flash存储器可有效地降低开发成本。2.3.2AT89S52晶振电路的设计53 河南理工大学万方科技学院本科毕业论文每个单片机系统里都有晶振,全称是叫晶体震荡器,在单片机系统里晶振的作用非常大,它结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十,高级的精度更高。晶振电路中的两个电容叫做负载电容。一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。它是根据晶振厂家提供的晶振要求负载电容选值的,换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差。也能保证温漂等误差。两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振。在本设计中XTAL1和XTAL2端外接石英晶体作为定时元件,内部反向放大器自激振荡,产生时钟。所用石英晶体的振荡频率为12MHZ,电容C1,C2常为20pF~40pF内,如图2-2所示。图2-2晶振电路53 河南理工大学万方科技学院本科毕业论文2.4测温电路的设计2.4.1DS18B20的引脚图及方框图DS18B20的外形及管脚排列图如下图2-3所示。(1)GND地信号(2)DQ数据输入/输出引脚。用在寄生电源下,可以向器件提供电源。(3)VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。图2-3DS18B20外形及引脚排列53 河南理工大学万方科技学院本科毕业论文2.4.2DS18B20主要性能(1)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;(2)测温范围-55℃~+125℃,固有测温分辨率0.5℃;(3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温;(4)工作电源:直流3~5V;(5)在使用中不需要任何外围元件;(6)测量结果以9~12位数字量方式串行传送;(7)不锈钢保护管直径Φ6;(8)适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温;(9)标准安装螺纹M10X1,M12X1.5,G1/2”任选;(10)PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。2.4.3DS18B20功能特性描述DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为9字节的存储器,结构如表2-1所示。前两53 河南理工大学万方科技学院本科毕业论文个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。第5字节为配置寄存器,见表2-3,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如表2-3所示。低5位都为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS--18B20出厂时该位被设置为0,用户可改动,R1和R0决定温度转换的精度位数,来设置分辨率。表2-1高速暂存RAM字节数123456789存储信息LSBMSBTH1TL2配置寄存器保留保留保留CRC表2-2DS18B20温度转换时间表R1R0分辨率/位温度最大转换时间/ms00993.750110187.510113751112750表2-3配置寄存器TMR1R011111由表2-2可见,DS18B20分辨率越高,所需要的温度数据转换时间越长。当DS18B20接收到温度转换命令后,开始启动转换。转换后,温度值就以16位带符号的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例。其中S为符号位。DS18B20的温度值格式如表2-4所示。表2-4DS18B20温度值格式表LSByteBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0MSByteBit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8SSSSS53 河南理工大学万方科技学院本科毕业论文当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值。表2-5是部分温度值对应的二进制度数据。表2-5部分温度对应值表温度℃二进制表示十六进制表示+125000001111101000007D0H+8500000101010100000550H+25.062500000001100100000191H+10.125000000001010000100A2H+0.500000000000000100008H000000000000010000000H-0.51111111111110000FFF8H-10.1251111111101011110FF5EH-25.0251111111001101111FE6FH2.4.4DS18B20供电方式(1)DS18B20寄生电源供电方式电路DS18B20采用寄生电源供电时,要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,靠上拉电阻是无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,只适用于单一温度传感器测温,也不宜采用电池供电系统,并且电源电压必须保证是5V。当电源电压下降时,会使测量的误差变大。(2)DS18B20的外部电源供电方式DS18B20采用外部供电时,53 河南理工大学万方科技学院本科毕业论文I/O线不需要强上拉电压,同时在总线上可以挂接多个DS18B20传感器,组成多点测温系统。但要注意在外部供电的方式下,DS18B20的GND引脚不能悬空,否则读取的温度总是85℃。但在proteus仿真中VCC和GND均悬空,否则仿真错误。比较上述两种供电方式后认为外部电源供电方式对电源要求比电源供电方式优越些且稳定性好,故在此设计中采用外部电源供电方式供电电路。仿真电路如下图2-4:图2-4采用外部供电的测温电路2.5主控系统主控系统采用单片机控制。单片机的晶振与复位电路如图2-5所示,单片机选用的是ATMEL公司的AT89S52的8位单片机,晶体振荡器选12MHZ,C5,C6为22pF石英电容,与晶体振荡器构成时钟电路。电容C7,电阻R7、R8和按键S1构成上电复位和手动复位电路。53 河南理工大学万方科技学院本科毕业论文图2-5晶振与复位电路AT89S52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4KB的可反复擦写的只读程序存储器(PEROM)和128B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89S52单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。2.6输入控制输入控制如图2-6所示,采用的按键控制,这样不仅减少的制作成本而且便于做。通过74LS373的通断进行按键信号的传输,当74LS373被锁定时,按键信号不能传入单片机,从而达到按键的锁定作用。53 河南理工大学万方科技学院本科毕业论文图2-6输入电路2.7显示部分LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a、b、c、d、e、f、g、p来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮p不亮。LED数码管有微亮亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸数码管是由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极称为共阳极数码管,发光二极管的阴极连接到一起连接到电源负极称为共阴极数码管。常用LED数码管所显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。显示电路见图2-7。53 河南理工大学万方科技学院本科毕业论文图2-7显示电路LED数码管引脚共阴和共阳两种方式:电源VCC通过1个1K的排阻与LED相连,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的,找到一个就够了,然后GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴。相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳。也可以直接用数字万用表,将档位拨到二极管通断性测试档,这时红表笔代表电源的正极,黑表笔代表电源的负极,然后在引脚上进行逐个测试,以确定是共阳还是共阴。一般十个引脚分别为7个段加2个公共加一个小数点。公共端一般在中间或在两边,两排,一排一个对称。至于其他引脚的排序你可以自己量出来。先假设是共阴极或共阳极,假设中间那个就是公共端,用数字万用表逐个判断即可,如果判断错误不亮,就更改假设,继续判断。直到假设正确,也就是说判断正确,那么引脚的顺序和位置就出来。53 河南理工大学万方科技学院本科毕业论文数码管所使用的电流与电压(1)电流:静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流50-60mA。(2)电压:查引脚排布图,看一下每段的芯片数量是多少?当红色时,使用1.9V乘以每段的芯片串联的个数;当绿色时,使用2.1V乘以每段的芯片串联的个数。2.8其他功能部分(1)出水控制当MOT输出低电平时,三极管处于截至区,集电极和发射极导通,接触器常开触点闭合,出水管道导通。如图2-8所示。图2-8出水控制53 河南理工大学万方科技学院本科毕业论文(2)加热控制当HOT输出低电平时,三极管处于截至区,集电极和发射极导通,接触器常开触点闭合,线圈通电加热。见图2-9。图2-9加热控制53 河南理工大学万方科技学院本科毕业论文3智能饮水机的软件设计3.1系统分配方式在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以控制其工作。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。模块程序设计法的主要优点是:(1)单个模块比起一个完整的程序易编写及调试;(2)模块可以共存,一个模块可以被多个任务在不同条件下调用;(3)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序、温度检测程序、显示子程序、延时程序和其他相关程序等组成。3.2主程序设计程序的初始化主要包括三个环节:(1)实现各种设置堆栈指针、定时器/计数器0初始化、以及开中断、定时器/计数器启动;(2)实现LED显示当前水温并能显示预设的水温;53 河南理工大学万方科技学院本科毕业论文(3)不断的进行按键扫描,判断是否有按键按下,如没有按键按下,则返回显示;如有按键按下,则根据所按键实现相应的操作。人机对话功能键设置如下:(1)“出水”键:控制其出水和停止出水;(2)“加热”键:控制其加热和停止加热;(3)“锁定”键:用于锁定其他所有按键;(4)“切换”键:用于将显示器切换至温度设定界面并开始设定温度;(5)“设置温度”键:以5℃为间隔在0℃至100℃之间以递增方式设定水温。主程序如下:voidmain(){T=100;while(1){Lock_key();if(Lock==0)keyscan();if(flag2==0)temp_display();if(flag2==1)SEG_display(T,0);if(temp>=T*10){Temp_led=0;Hot=1;Hot_led=1;}if(temp=1000){Beep=0;Hot=1;Hot_led=1;}if(temp<1000)Beep=1;}}主程序程序框图如图3-1所示:53 河南理工大学万方科技学院本科毕业论文变量定义显示按键扫描,判断是否有键按下芯片初始化开始NY延时Y按键扫描,判断是否有键按下NY按“出水”键,电机转动按“加热”键,加热按“锁定”键,其他键无效按“切换”键,切换至调温按“设置温度”键,进行温度设置图3-1主程序框图53 河南理工大学万方科技学院本科毕业论文3.3各模块程序设计3.3.1温度检测程序设计温度检测运用DS18B20芯片,因为其功能全面且精度高,完全可以满足设计要求,它将检测到的水温送给单片机,再由单片机输出给显示电路将实时水温显示出来。其程序流程图如下:读一个字节写一个字节读取温度开始显示温度DS18B20初始化图3-2温度检测程序流程图其程序段如下:voidinit_ds18b20(){ucharx=0;DQ=1;//DQ复位delay_us(10);//稍做延时DQ=0;//单片机将DQ拉低delay_us(100);//精确延时大于480us53 河南理工大学万方科技学院本科毕业论文DQ=1;//拉高总线delay_us(10);x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败delay_us(20);}ucharReadOneChar(){uchari;uchardat=0;for(i=8;i>0;i--){DQ=0;dat>>=1;DQ=1;if(DQ)dat|=0x80;delay_us(10);}return(dat);}voidWriteOneChar(uchardat){uchari;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay_us(10);DQ=1;dat>>=1;}}intReadTem(){intt;uchara,b;init_ds18b20();WriteOneChar(0xcc);//跳过读序号列号的操作53 河南理工大学万方科技学院本科毕业论文WriteOneChar(0x44);//启动温度转换delay_us(200);init_ds18b20();WriteOneChar(0xcc);//跳过读序号列号的操作WriteOneChar(0xbe);//读取温度寄存器等a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;returnt;}voidtemp_display(){uinttemp_point;temp=ReadTem()*0.625;//将温度的高位与低位合并temp_point=temp%10;//取出小数位SEG_display(temp/10,temp_point);}3.3.2显示程序设计显示程序是负责点亮4支数码管,并根据单片机送出的数据及时更新显示的数据,其程序流程图如下:送段选信号送位选信号延时循环四次开始图3-3显示程序流程图53 河南理工大学万方科技学院本科毕业论文其程序段如下:voidSEG_display(uchardat1,uchardat2){P23=1;P0=table[dat1/100];P20=0;delay_us(80);P20=1;P0=table[dat1/10%10];P21=0;delay_us(80);P21=1;P0=table[dat1%10]|0x80;P22=0;delay_us(80);P22=1;P0=table[dat2];P23=0;delay_us(80);}3.3.3键盘扫描程序键盘扫描程序的任务是在程序运行过程中始终不停的检测是否有按键被按下,如果检测到有按键被按下,则进入与该按键对应的程序运行;若该按键没有被按下,则继续检测下一个按键,如此循环,从而完成每一个按键所对应的功能。该设计中第四个按键为锁定键,当检测到锁定键被按下时,其他按键均无效,只有当检测到锁定键再次被按下,其他按键的功能才恢复正常。其程序流程图如下:53 河南理工大学万方科技学院本科毕业论文开始按键1按下?延时2msY确定按键1按下?执行按键1对应程序Y继续检测下一按键循环NN图3-4键盘扫描程序流程图其程序段如下:voidkeyscan(){if(key1==0){53 河南理工大学万方科技学院本科毕业论文delay_ms(2);if(key1==0){flag=~flag;if(flag==1)Out=0;if(flag==0)Out=1;}while(!key1);}if(key2==0){delay_ms(2);if(key2==0){flag1=~flag1;if(flag1==1){Hot=0;Hot_led=0;}if(flag1==0){Hot=1;Hot_led=1;}}while(!key2);}if(key3==0){delay_ms(2);if(key3==0){if(flag2==1)T+=5;if(T>=101)T=0;}while(!key3);}if(key5==0){delay_ms(2);if(key5==0)53 河南理工大学万方科技学院本科毕业论文{flag2=~flag2;}while(!key5);}}voidLock_key()//锁定键盘{if(key4==0){delay_ms(2);if(key4==0){Lock=~Lock;if(Lock==1)Lock_led=0;if(Lock==0)Lock_led=1;}while(!key4);}}3.3.4延时程序voiddelay_us(uchari)//us延时函数{while(i--);}voiddelay_ms(ucharn)//延时10×n毫秒程序{uinti,j;for(i=0;i#defineucharunsignedchar#defineuintunsignedintsbitkey1=P3^0;//按键定义sbitkey2=P3^1;sbitkey3=P3^2;sbitkey4=P3^3;sbitkey5=P3^4;sbitOut=P1^3;//控制端口定义sbitHot=P1^5;sbitHot_led=P1^1;sbitTemp_led=P1^2;sbitBeep=P1^4;sbitLock_led=P1^0;sbitP20=P2^0;//数码管位选定义sbitP21=P2^1;sbitP22=P2^2;sbitP23=P2^3;sbitP24=P2^4;sbitDQ=P1^7;//ds18b20端口定义ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodetable1[]={0x00,0x01,0x03,0x07,0x0f};53 河南理工大学万方科技学院本科毕业论文bitLock,flag,flag1,flag2;uinttemp,T;//***************************延时函数***************************voiddelay_us(uchari)//us延时函数{while(i--);}voiddelay_ms(ucharn)//延时10×n毫秒程序{uinti,j;for(i=0;i0;i--){DQ=0;dat>>=1;DQ=1;if(DQ)dat|=0x80;delay_us(10);}return(dat);}//*********写一个字节53 河南理工大学万方科技学院本科毕业论文voidWriteOneChar(uchardat){uchari;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay_us(10);DQ=1;dat>>=1;}}//*********读取温度intReadTem(){intt;uchara,b;init_ds18b20();WriteOneChar(0xcc);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换delay_us(200);init_ds18b20();WriteOneChar(0xcc);//跳过读序号列号的操作WriteOneChar(0xbe);//读取温度寄存器等a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;returnt;}//*********显示温度voidtemp_display(){uinttemp_point;temp=ReadTem()*0.625;//将温度的高位与低位合并53 河南理工大学万方科技学院本科毕业论文temp_point=temp%10;//取出小数位SEG_display(temp/10,temp_point);}//************************键盘扫描程序************************//voidkeyscan(){if(key1==0){delay_ms(2);if(key1==0){flag=~flag;if(flag==1)Out=0;if(flag==0)Out=1;}while(!key1);}if(key2==0){delay_ms(2);if(key2==0){flag1=~flag1;if(flag1==1){Hot=0;Hot_led=0;}if(flag1==0){Hot=1;Hot_led=1;}}while(!key2);}if(key3==0){delay_ms(2);if(key3==0){if(flag2==1)T+=5;53 河南理工大学万方科技学院本科毕业论文if(T>=101)T=0;}while(!key3);}if(key5==0){delay_ms(2);if(key5==0){flag2=~flag2;}while(!key5);}}voidLock_key()//锁定键盘{if(key4==0){delay_ms(2);if(key4==0){Lock=~Lock;if(Lock==1)Lock_led=0;if(Lock==0)Lock_led=1;}while(!key4);}}//****************************主函数**************************//voidmain(){T=100;while(1){Lock_key();if(Lock==0)53 河南理工大学万方科技学院本科毕业论文keyscan();if(flag2==0)temp_display();if(flag2==1)SEG_display(T,0);if(temp>=T*10){Temp_led=0;Hot=1;Hot_led=1;}if(temp=1000){Beep=0;Hot=1;Hot_led=1;}if(temp<1000)Beep=1;}}53'