电加热饮水机设计_第1页
电加热饮水机设计_第2页
电加热饮水机设计_第3页
电加热饮水机设计_第4页
电加热饮水机设计_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

青岛理工大学毕业设计绪论1.1研究的目的及意义二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度控制和测量也成为了生活生产中频繁使用的词语,同时它们在各行各业中也发挥着重要的作用。目前,单片机在工业控制系统诸多领域得到了极为广泛的应用。特别是其中的C51系列单片机的出现,由于它具有极好的稳定性,快速性和更准确的运算精度,所以它的出现不但推动了工业的生产,也影响着人们的工作和学习。温度控制系统在现代工业设计、工程建设及日常生活中的应用越来越广泛。在日常人们的生活中,温度控制系统的应用和作用也体现到了各个方而,随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务社会。温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。传统的温度采集电路相当复杂,需要经过温度采集、信号放大、滤波、AD转换等一系列工作才能得到温度的数字量,并且这种方式不仅电路复杂,元器件个数多,而且线性度和准确度都不理想,抗干扰能力弱。现在常用的温度传感器芯片不但功率消耗低、准确率高,而且比传统的温度传感器有更好的线性表现,最重要的一点是使用起来方便。本次设计为一个基于单片机的饮水机的温度控制系统,该系统可以实时检测饮水机水箱的水温,并且可以通过数码管显示饮水机水箱水温度数,可以通过键盘或开关选择制冷或加热,可以人为设置水的温度的上下限,如加热,当温度在设定的范围内时正常工作,当低于水温下限时控制加热器加热;如制冷,当温度高于水温上限时控制压缩机制冷,当温度超过设定值时具有示警功能。1.2单片机的发展趋势单片机的发展趋势是向大容量、高性能化、外围电路内装化等方面发展。为满足不同用户的要求,各公司竞相推出能满足不同需求的产品。1.CPU的改进(1)增加CPU的数据总线宽度。例如,各种16位单片机和32位单片机,其数据处理能力要优于8位单片机。。(2)采用双CPU结构,以提高数据处理能力。2.存储器的发展(1)片内的程序存储器现在普遍采用闪速(Flash)存储器。Flash存储器能在+5V下读/写,既有静态RAM的读/写操作简便,又有在掉电时数据不会丢失的优点。使用片内Flash存储器,单片机可不用片外扩展程序存储器,大大简化了其应用系统结构。(2)加大存储容量。目前有的单片机片内程序存储器容量可达128KB甚至更多。3.片内I/O的改进(1)增加并行口的驱动能力,以减少外部驱动芯片。有的单片机可以直接输出大电流和高电压,以便能直接驱动LED和VFD(荧光显示器)。(2)有些单片机设置了一些特殊的串行I/O功能,为构成分布式、网络化系统提供了方便条件。4.低功耗化8位单片机产品已CMOS化,CMOS芯片的单片机具有功耗小的优点,而且为了充分发挥低功耗的特点,这类单片机普遍配置有等待状态、睡眠状态、关闭状态等工作方式。5.外围电路内装化随着集成电路技术及工艺的不断发展,把所需的众多外围电路全部装入单片机内,即系统的单片化是目前单片机发展趋势之一。例如,美国Cygnal公司的C8051F0208位单片机,内部采用流水线结构,大部分指令的完成时间为1或2个时钟周期,峰值处理能力为25MIPS。片上集成有8通道A/D、两路D/A、两路电压比较器,内置温度传感器、定时器、可编程数字交叉开关和64个通用I/O口、电源监测、看门狗、多种类型的串行接口(两个UART、SPI)等。一片芯片就是一个“测控”系统。1.3主要研究的内容本系统上电后数码管显示当前测量温度,此时加热指示灯和保温指示灯均不点亮;若此时按“自动加热”键,则单片机自动将预加热温度设置为80℃并开始加热,送出一个加热信号,并点亮加热指示灯;若按“温度设置”键,则进入预加热温度设置界面,此时数码管闪烁显示预先设置的温度,此时通过按键“+”和“-”进行设置温度,预先设置的温度按“5”为梯度递增或递减,设置好温度后再按一次“温度设置”键确定,单片机保存预先设置的温度,并开始加热;如果实测温度大于或等于预先设置的温度,则单片机发出停止加热信号并熄灭加热指示灯,同时点亮保温指示灯,且当超过预设温度时发出报警;当温度下降到预先设置的温度以下5度时,单片机再次发出加热信号,同时熄灭保温指示灯,并且点亮加热指示灯,依次循环控制;完成加热管控制电路、报警电路设计,重点设计好临界点问题。系统总体的设计2.1硬件总体的设计设计并制作一个基于单片机的热水器温度控制系统的电路,其结构框图如图2.1:电源电源单片机AT80C51数码管显示继电器温度传感器DS18B20报警键盘指示灯图2.1系统机构框图硬件系统子模块:(1)单片机最小系统电路部分;(2)键盘扫描电路部分;(3)数码管温度显示和运行指示灯电路部分;(4)温度采集电路部分;(5)继电器控制部分;(6)报警部分。2.2总体方案论证根据题目的要求,我们提出以下两种设计方案:方案1:此方案是釆用传统的二位模拟控制方法,选用模拟电路,用电位器设定给定值,采用上下限比较电路将反馈的温度值与给定的温度值比较后,决定加热或者不加热。由于采用模拟控制方式,系统受环境的影响大,不能实现复杂的控制算法使控制精度做得较高,而且不能用数码显示%。方案2:采用单片机AT80C51为核心。采用了温度传感器DS18B20采集温度变化信号,该传感器可以直接采集数字信号并通过单片机处理后去控制温度,使其达到稳定。使用单片机具有编程灵活,控制简单的优点,使系统能简单的实现温度的控制及显示,并且通过软件编程能实现各种控制算法使系统还具有控制精度高的特点。比较上述两种方案,方案2较好的改善了方案1的不足,并具有控制简单、控制温度精度高的特点,因此本设计电路采用方案2较为合适。2.3各部分电路方案论证本电路以单片机为基础核心,系统由前向通道模块、后向控制模块、系统主模块及键盘显示摸块等四大模块组成。现将各部分主要元件及电路做以下的论证:(1)温度采样部分方案1:采用热敏电阻,可满足0°C〜95°C的测量范围,但热敏电阻精度、重复性和可靠性都比较差,对于检测精度小于1°C的温度信号是不适用的。方案2:采用温度传感器DS18B20。DS18B20具有体积小、质量轻、线形度好、性能稳定等优点。其测量范围在-55°C〜+125°C,在-10°C〜+85°C时,其精度为0.5°C,当电源电压在5〜10V之间,稳定度为1%时,误差只有±0.01%时,其各方面特性都满足此系统的设计要求。此外DS18B20是温度电流传感器,对于提高系统抗干扰能力有很大的帮助。经上述比较,方案2明显优于方案1,故选用方案2。(2)显示部分控制与显示电路是反映电路性能、外观的最直观部分,所以此部分电路设计的好坏直接影响到电路整体的好坏。方案1:采用可编程控制器8279与数码管及地址译码器74LS138组成,可编程/显示器件8279提供LED的显示信号,并对对LED显示控制。方案2:采用单片机AT80C51的串口对主电路进行通信,并对LED显示进行控制这种方案既能很好的控制显示,又能为主单片机极大的减少了程序的复杂性,而且具有体积小,价格便宜等特点。对比以上两种方案可知,方案1虽然也能够很好的实现电路的要求,但考虑到电路设计的成本以及电路整体的性能,我们方案2更适合。(3)控制电路部分方案1:采用8031芯片,其内部没有程序存储器,因此需要进行外部扩展,这就会给电路增加复杂度。方案2:本方案的CPU模块采用2051芯片,其内部具有2kB单元的程序存储器,不需外部扩展程序存储器。但由于系统用到较多的I/O口,因此芯片资源不够用。方案3:采用AT80C51单片机,它内部有8kB单元的程序存储器,因此不需外部扩展程序存储器,而且它的I/O口也足够本次设计的要求比较以上3种方案,综合考虑单片机的各部分资源和性能,冈此此次设计选用方案3较为合适。硬件系统设计3.1硬件电路分析和设计本次设计主要思路:通过对单片机编程将温度传感器DS18B20采集的温度由外加驱动电路显示出来,包括对继电器的控制,进行升温控制,当温度达到上下限温度值时,蜂鸣器将进行报警。P1.7开关按钮是用于确认设定温度的,初始按下表示开始进入温度设定状态,然后可以通过P1.5和P1.6按键设置温度的升降,当再次按下P1.7时,表示确认所设定的温度,然后转入升温或降温。P2.3所连接的发光二极管用来表示加热状态,P2.5所连接的发光二极管用来表示保温状态。P2.3连接继电器,P3.1是温度信号线。所以可知,整个电路都是通过软件控制来实现设计要求的。3.1.1单片机最小系统电路因为AT80C51单片机内部自带8K的ROM和256字节的RAM,因此不需要再构建单片机系统的扩展电路。如图3.1,单片机最小系统有复位电路和振荡器电路。值得注意的是,单片机的31脚必须接高电平,否则系统将不能运行。因为该引脚若不接时为低电平,单片机将会直接读取外部程序存储器,而系统并没有外部程序存储器,所以必须接VCC。在按键两端并联一个电解电容,以便滤除交流干扰,增加系统的抗干扰能力。P0口:P0口为一个8位漏极开路双向I/O口,每个管脚都可吸收8个TTL门电流。当P1口的管脚第一次写“1”时,将被定义为高阻输入。P0口能够作为外部程序数据存储器,它可以被定义为数据/地址的低八位。在Flash编程时,P0口作为原码输入口,当Flash进行校验时,P0输出原码,此时P0外部电平必须被拉高。

P1口:P1口是一个内部可以提供上拉电阻的8位双向I/O口,P1口缓冲器能够接收输出4个TTL门电流。当P1口管脚写入“1”后,被内部上拉为高电平,可用作输入,当P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口会作为低八位地址接收。C2C230PFC330PF¾§Õñ112MEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U2+C410UFVCCR310KVCCAT80C51VCC112234SW5SW-PB(Ë«)图3.1单片机最小系统图AT80C51的管脚功用:VCC:供电电压,在本设计中供电电压为+5V。GND:接地。

P2口:P2口为一个带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被上拉电阻拉高,且作为输入。当P2口的管脚被外部下拉为低电平时,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口将输出地址的高八位。在给出地址“1”时,它利用内部上拉电阻,当对外部八位地址数据存储器进行读写时,P2口会输出其特殊功能寄存器的内容。P2口在Flash编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚有8个带内部上拉电阻的双向I/O口,可接收、输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。RST:复位输入端。当振荡器复位器件时,要保持RST脚两个机器周期的高电平状态。ALE:当访问外部存储器时,地址锁存于锁存地址的低位字节。在FLASH编程期间,该引脚用于输入编程脉冲。在平时,ALE端口以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时。然而,需要注意的是:每当其被用作外部数据存储器时,将会跳过一个ALE脉冲。如果想要禁止ALE的输出,可将SFR8EH地址置0。此时,ALE只有在执行MOVX,MOVC指令时ALE才会起作用。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机器周期PSEN两次有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA:EA功能为内外程序存储器选择控制端。当EA保持低电平时,单片机访问外部程序存储器。当EA端保持高电平时,单片机将会访问内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入端。XTAL2:来自反向振荡器的输出端。3.1.2键盘电路键盘是单片机应用系统中的主要输入设备,单片机使用的键盘分为编码键盘和非编码键盘。编码键盘采用硬件线路来实现键盘的编码,每按下一个键,键盘能够自动生成按键代码,并具有去抖功能。虽然这方法使用方便,但硬件较复杂。非编码键盘仅仅提供键开关状态,通过程序来识别键闭合,消除抖动,产生相应的代码,转入执行该键的功能程序。非编码键盘中键的数量较少,而且硬件简单,因此在单片机中应用非常广泛。图为按键和AT80C51的接线图,检测仪共设有4个按键,每个按键都由软件来决定其功能,4个按键功能分别为:EA/VP31X1EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U2AT80C51112234SW3SW-PB(Ë«)112234SW4SW-PB(Ë«)112234SW2SW-PB(Ë«)112234SW1SW-PB(Ë«)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7图3.2单片机按键和AT80C51的接线图(1)SW1:设定按键(设定按键)(2)SW2:加法按键(当前位加5)(3)SW3:减法按键(当前位减5)(4)SW4:退出设置键(系统初始化)3.1.3数码管及指示灯显示电路(1)数码管显示说明每个数码管的段码都是单片机的数据口输出,即各个数码管输入的段码都是一样的,为了使其分别显示不同的数字,可采用动态的显示方式,即先只让最低位显示0(含点),经过一段延时后,再只让次低位显示1,如此类推。由视觉暂留,只要我们的延时时间足够短,就能够使得数码的显示看起来非常的稳定清楚,过程如表3-1。表3-1数码管编码表段码位码显示器状态08H01H□□□□□□□0abH02H□□□□□□1□12H04H□□□□□2□□22H08H□□□□3□□□a1H10H□□□4□□□□24H20H□□5□□□□□04H40H□6□□□□□□aaH80H7□□□□□□□本系统设计中使用了3个数码管,其中前两位通过动态扫描用来显示实测温度,当我们设置加热温度的时候,两个数码管是闪烁的,以便提示目前处在温度设置状态。而第三位数码管通过静态用来显示符号“℃”。(2)运行指示灯的说明该热水器温度控制系统中使用到3个数码管和3个LED指示灯。其中,右上角的红色LED为电源指示灯;数码管右边的红色LED为加热指示灯,当刚开机或温度降到设定温度5℃以下时,该灯就会点亮,表明目前饮水机处于加热状态;当温度上升到设定温度时,该LED熄灭,与此同时数码管右边的绿色LED亮,表示饮水机目前处于保温状态,用户可以使用热水器内热水;当温度再次下降到设定温度5℃以下时,绿色LED熄灭,同时红色加热的LED灯点亮,就这样,不断循环。 图3.3LED数码管显示电路图3.1.4温度采集电路(1)DS18B20介绍Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。一线总线具有独特而且经济的特点,使用户可以轻松地组建传感器网络,为测量系统的构建引入全新简洁的概念。实时温度直接以“一线总线”的数字方式传输,极大的提高了系统的抗干扰性。DS18B20性能特点:1) 独特的单线接口方式:DS18B20在I/O处理器连接时,只需要一个I/O口,即可实现微处理器同DS18B20的双向通讯。2) 测温范围:-55°C〜+125°C,在-10°C〜+85°C时,其精度为0.5°C。3) 分辨率:DS18B20的分辨率由9〜12位(包括1位符号位)数据在线编程决定。4) 温度转换时间:DS18B20的转换时间与设定的分辨率有关,当设定为9位时最大转换时间为93.75ms;10位时,为187.5ms;11位时,为375ms;12位时,为750ms。在使用过程中,测得12位时,一般为5〜7.5ms。其DS18B20的管脚配置和封装结构如图3.4所示。图3.4DS18B20封装引脚定义:1)DQ为数字信号输入/输出端;2)GND为接地端;3)VDD为外接供电电源输入端;(2)DS18B20的单线(1-wirebus)系统单线总线结构是DS18B20的突出特点,但也是理解和编程的难点。需要从两个角度来理解单线总线:第一,单线总线只定义了一个信号线,而且DS18B20智能程度较低,所以DS18B20和处理器之间的通信必然要通过严格的时序控制来完成。第二,DS18B20的输出口是漏级开路输出,这里给出一个微控制器和DS18B20连接原理图。这种设计使总线上的器件要在合适的时间驱动它。显然,总线上的器件与(wiredAND)关系。这就决定:(1)微控制器不能单方面控制总线状态。之所以提出这点,是因为相当多的资料上认为,微控制器在读取总线上数据之前的I/O口的置1操作是为了给DS18B20一个发送数据的信号。这是一个错误的观点。因为如果当前DS18B20发送0,即使微控制器I/O口置1,总线状态还是0;置1操作是为了是I/O口截止(cutoff),以便确保微控制器能够正确的读取数据。(2)除了DS18B20发送0的时间段,其他时间段其输出口自动截止。自动截止是为确保:一,在总线操作的间隙总线处于空闲状态,即高态;二,确保微控制器在写1的时DS18B20能够正确读入。由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。①DS18B20的复位时序,如图3.5图3.5DS18B20的复位时序图②DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的读时序图如图3.6所示。图3.6DS18B20的读时序③DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。如图3.7所示。图3.7DS18B20的写时序图(3)DS18B20的供电方式DS18B20的供电方式有两种:一种是寄生电源;另一种为外电源供电。其T.作过程及其编程在软件设计部分介绍。在使用过程中发现DS18B20在解决各种误差、可篛性和实现系统优化等方而与传统各种温度传感器相比,有无可比拟的优越性。其表现在.:1)DS18B20可将被测温度直接转换成单片机能识別的数字信号输出。温度值不需要以电桥电路先获取电压模拟量,再经信号放人和A/D转换成数字倍号,解决了传统温度传感器存在的因参数不一致性,在31换传感器时会因放大器零漂而必须对电路进行重新调试的问题,使用方便[16]。2)DS18B20能提供9到12位温度®:数,精度高。且其信息传输只需1根信号线,与单片机接口十分简便。3)负压特性:当电源极性接反时,DS18B20虽然不能正常丁作,但不会W发热而烧毁。如图3.8为DS18B20其温度检测电路图。图3.8DS18B20其温度检测电路图在图3.9中示出了DS18B20的寄生电源电路。当DQ或VDD引脚为高电平时,这个电路便“取”的电源。寄生电路的优点是双重的,远程温度控制监测无需本地电源,缺少正常电源条件下也可以读ROM。为了使DS18B20能完成准确的温度变换,当温度变换发生时,DQ线上必须提供足够的功率。有两种方法确保DS18B20在其有效变换期内得到足够的电源电流。第一种方法是发生温度变换时,在DQ线上提供一强的上拉,这期间单总线上不能有其它的动作发生。如图3.8所示,通过使用一个MOSFET把DQ线直接接到电源可实现这一点,这时DS18B20工作在寄生电源工作方式,在该方式下VDD引脚必须连接到地。图3.9DS18B20供电方式1另一种方法是DS18B20工作在外部电源工作方式,如图3.10所示。这种方法的优点是在DQ线上不要求强的上拉,总线上主机不需要连接其它的外围器件便在温度变换期间使总线保持高电平,这样也允许在变换期间其它数据在单总线上传送。此外,在单总线上可以并联多个DS18B20,而且如果它们全部采用外部电源工作方式,那么通过发出相应的命令便可以同时完成温度变换。图3.10DS18B20供电方式2(4)DS18B20设计中应注意的几个问题DS18B20具有测温系统简单、测温精度高、连接方便、占用接线口少等优点,但在实际应用中也应注意以下几方面的问题:较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送。因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在DS18B20有关资料中均未提及1Wire上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中则是不可以的。当1Wire上所挂DS18B20超过8个时,就需要考虑微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。连接DS18B20的总线电缆是有长度限制的。实际应用中,测温电缆线最好采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。本设计以广泛应用的数字温度传感器DS18B20为例,叙述了1Wire总线的操作过程和基本原理。事实上,基于1Wire总线的产品还有很多种,如1Wire总线的E2PROM、实时时钟、电子标签等。它们都具有节省I/O资源、结构简单、开发快捷、成本低廉、便于总线扩展等优点,因此有广阔的应用空间,具有较大的应用价值。本设计将温度传感器DS18B20与单片机TXD引脚相连,读取温度传感器的数值。DS18B20与单片机连接图如图所示3.11所示。VCCVCCEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U2AT80C51DQ2GND1VCC3U3DS1820VCCR154.7K图3.11DS18B20与单片机连接图3.1.5电源电路采用L7805稳压块,输出为5V。电子组件的正常运作都需要电源供电,一般常用的电源电压为+5V或+12V,因为数字IC(IngegratedCircuit:集成电路)所供给的电压为+5V,而CMOSIC所提供给的电压为+12V,7805是一个稳压块。7805稳压管把高电压转换成低电压,7805稳压管具有保护单片机的作用。L7805输出端要并联上一个电解电容,滤除交流电干扰,防止对单片机系统造成损坏。本系统采用两种供电方式,一种为DC7~18V直流稳压电源变换成5V的直流电;另一种为四节干电池共6V经二极管加压后得到的将近5V的直流电源,电源配以开关和指示灯,以方便使用。黄色发光二极管表示保温状态,红色的表示加热状态。图3.12系统电源设计图3.1.6报警电路设计可以在系统里设定温度上限值,考虑到加热停止后,加热管还有余热,当采集到的外界温度高于当前所设定温度上限值时,程序就会自动进入报警子程序,触发蜂鸣器进行报警。报警电路原理图如图3.13所示。图中三极管8550的功用是增加驱动能力,比9012的驱动电流还要大一些,因此选用8550较合适。当程序进入报警子程序时,把P2.7置0后,就会触发蜂鸣器,我们为了使报警声音效果更好,对P2.7进行取反,发出报警嘟噜的蜂鸣声音。

图3.13报警电路图3.1.7加热管控制电路设计继电器作为常用的输出控制接口,可以做交直流信号的输出切换。它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用在自动控制系统电路中,它本质上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。继电器控制接点操作说明如下: (1)COM:Common,共同点。输出控制接点的共同接点。(2)NC:NormalClose常闭点。以COM为共同点,NC与COM在平时是呈导通状态的。(3)NO:NormalOpen常开点。NO与COM在平时是呈开路状态的,当继电器动作时,NO与COM导通,NC与COM则呈开路状态。当89S52的P2.5输出高电平时,继电器是不导通的,反之当输出低电平时,继电器导通,这样便形成了连接回路。3.2系统硬件总图图3.14系统硬件总图3.3LED数码管显示电路LED显示器的工作情况有两种:一种是温度显示;另一种是ROM码显示。DS18B20的测温范围上限是150°C,因此温度的十进制显示需要用4位二进制数,还有一位用于显示单位,在这里我们设置了4位的LED。LED数码管是由发二极管作为显示字段组成的数码型显示器件。图3.15(a)为LED数码管的外形和引脚阁,其中7只发光二极管分别对应a〜g笔段,构成“8”字形,另一只发光二极管Dp作为小数点,所以这种LED显示器称为八段数码管。图3.15七段LEDM示器的结构原理LED数码管按电路中的连接方式,分为共阴极型和共阳极型:共阴极型是将各段发光二极管的负极连在一起,作为公共端COM接地,a〜g、Dp各笔段接控制端,某笔段接高电Y时发光,低电平时不发光,通过控制某几段笔段发光,就能显示出相应的数码或字符。如图3.16(b)所示。共阳极型是将各段发光二极管的正极连接在一起,作为公共端COM,某笔段接低电平时发光,接高电平时不发光,如图3.16(c)所示。本次设计选用的是共阳极LED数码管。LED数码管按其外形尺寸有多种形式,其中使用较多的有0.5英寸和0.8英寸;按显示颜色也有多种,主要是红色和蓝色;按亮度强弱又可分为超亮、高亮和普亮。为了能更好更清晰的显示被测水的温度,本设计中选用五位0.8英寸、高亮红色LED数码管显示温度。LED数码管的使用与发光二极管相同,根据其材料的不同,正向降压一般为1.5〜2V,额定电流为10mA,最大电流为40mA。静态显示时取10mA较为宜,动态扫描显示,可适当加大脉冲电流,但一般不超过40mA。因此在设计中要接入8个200Q的分压电阻。系统总设计系统软件设计是在完成了硬件系统的基础上,再编写相应的应用程序,下载到芯片里,通过执行程序指令来控制硬件,从而实现特定的功能。一般,软件的功能可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量、打印、计算、显示、输出控制等;而另一类是监控软件,它是专门协调执行模块和操作者之间的关系,在系统中充当组织协调的角色。软件设计是用计算机所能接受的形式把要解决问题步骤的描述出来。简单的说,软件设计就是编制计算机程序。一个好的程序应该完成规定的任务,而且层次清晰、易于阅读,并尽可能少占内存,缩短执行时间,但也不要一味地追求少占内存,缩短执行时间。因为这样做可能会使程序的可读性变差。随着大规模和超大规模集成电路的发展,芯片的内存容量不断的增加,计算机执行指令的时间也大大的缩短。程序的长短和执行时间,不再显得那么重要,而程序的易读性和程序的开发周期,显得越来越重要。另外,在较复杂的程序设计中,必须充分考虑程序的稳定性、可读性、可扩展性、兼容性以及容错性等,这也是衡量与评价程序的优劣的重要指标。由于用汇编语言编写的程序效率高,占用的内存单元和CPU资源少,执行速度快,还可直接访问存储器、输入/输出接口以及扩展的各种芯片,并可直接处理中断,直接管理和控制硬件设备,适用于实时控制系统,因此,本设计选用汇编语言来编写程序。4.1主程序流程图图4.1主程序流程图4.2各个模块的流程图4.2.1读取温度DS18B20模块的流程由于DS18B20采用的是一根数据线实现数据的双向传输,而对AT89S52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。DS18B20单线通信功能是分时完成的,它有严格的时隙概念。因此系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用接口线少等优点,DS18B20必须首先调用启动温度转换函数,根据数据手册上对应转换时间来超作,如为12位转换,则应该是最大750mS,另外在对DS18B20超作时,时序要求非常严格,因此最好禁止系统中断。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的读时序:(1)对于DS18B20的读时序分为读0时序和读1时序两个过程。(2)对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的写时序:(1)对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。(2)对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。系统程序设计主要包括三部分:读出温度子程序、温度转换命令子程序、显示温度子程序。图4.2读取温度DS18B20模块的流程图程序代码为:GET_TEMPER: SETB DQ ;读出转换后的温度值 LCALL INIT_1820 ;先复位DS18B20 JB FLAG1,TSS2 RET ;判断DS1820是否存在若DS18B20不存在则返回TSS2: MOV A,#0CCH ;DS18B20已经被检测到!跳过ROM匹配 LCALL WRITE_1820 MOV A,#44H;发出温度转换命令 LCALL WRITE_1820LCALLDISPLAY;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒 LCALL INIT_1820 ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ;发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 ;将读出的温度数据保存到35H/36H RET4.2.2键盘扫描处理流程该流程为键盘扫描处理,CPU通过检测各数据线的状态(0或1)就可以知道是否有按键闭合以及哪个按键闭合。键盘管理程序的功能是检测是否有按键闭合,如果有按键闭合,消除抖动,根据按键号转到相应的键处理程序,按键流程图如图4.3所示。图4.3键盘扫描子程序流程图运行程序后,温度传感器DS18B20即可对环境进行温度采集,并送LED数码管显示。我们可以在程序里设定温度上限值,当采集到的外界温度高于当前所设定温度上限值时,程序就会进入报警子程序,触发蜂鸣器进行报警。其程序流程图如图4.4所示。4.2.3报警处理流程图4.4报警子程序流程图4.3系统源代码EMPER_L EQU29H ;用于保存读出温度的低8位 TEMPER_H EQU28H ;用于保存读出温度的高8位 FLAG1 EQU38H ;是否检测到DS18B20标志位 A_BIT EQU20H ;数码管个位数存放内存位置 B_BIT EQU21H ;数码管十位数存放内存位置 B1 EQU70H ;温度小数点位 A1 EQU71H;设定温度值 DQ EQUP3.1;DQ为DS18B20数据位 BELLEQUP2.7;蜂鸣报警 ORG0000H;单片机内存分配申明 AJMPMAIN0;前面的都是定义MAIN: MOVR0,#10M1: CPLP2.3 ACALL DELAY125 DJNZR0,M1 ;此段为灯闪5次,无实际意义MAIN0: MOVA1,#80 ;默认加热为80度MAIN1:LCALL D1820;调用读温度子程序 LCALL DISPLAY;调用数码管显示子程序 MOVA,29H CLR C CJNE A,A1,MAIN1_1 SETB BELL;温度相等,关闭蜂鸣器 AJMP MAIN1_1_A;下等不用叫蜂鸣器MAIN1_1: JC MAIN1_2;为1转移,表示小于设定温度 CPL BELL;蜂鸣器断续鸣叫MAIN1_1_A: CLR P2.3;下面是表示没达到温度 SETB P2.5 AJMP MAIN2;主要是检测温度是否小于设定的温度,则开发热管CLRP2.3MAIN1_2: SETB BELL;关闭蜂鸣器 CLR P2.5;开发热管 SETB P2.3;上面的是大于,关发热管MAIN2: JB P1.0,MAIN1;看P1.0有否按下 ACALL DELAY125;延时防抖动,常用的手法,网上很多介绍 JB P1.0,MAIN1;再次查看 CLR P2.3 JNB P1.0,$;等按键完全松手才进入! SETB P2.3 SETB P2.5;检测到P1.0按键后后进入设定温度MAIN2_1:ACALL DISPLAY1 JB P1.2,MAIN2_2 ACALL DELAY125 JB P1.2,MAIN2_2 JNB P1.2,$ MOV A,#5 ADD A,A1 CLR C CJNE A,#100,MAIN2_1_1 MOV A,#99 AJMP MAIN2_1_3;上面这一段是+5度按键,按下+5度MAIN2_1_1: JC MAIN2_1_3MAIN2_1_2: CLR C MOV A,#99MAIN2_1_3: MOV A1,AMAIN2_2: JB P1.4,MAIN2_3 ACALL DELAY125 JB P1.4,MAIN2_3 JNB P1.4,$ MOV A,A1 CJNE A,#99,ZY1 MOV B,#4 AJMP ZY2ZY1: MOVB,#5ZY2: CLR C MOV A,A1 SUBB A,BMAIN2_2_1: JNC MAIN2_2_2 MOV A1,#0 AJMP MAIN2_3;上面这一段是-5度按键,按下-5度MAIN2_2_2: MOV A1,AMAIN2_3: JB P1.6,MAIN2_1 ACALL DELAY125 JB P1.6,MAIN2_1 CLR P2.3 JNB P1.6,$ SETB P2.3 AJMP MAIN1;上面这一段是退出的意思的D1820: LCALL GET_TEMPER ;调用读温度子程序 MOV B1,29H MOV A,29H MOV C,40H;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV 29H,A MOV A,B1 MOV B,#10H MUL AB MOV B,#10H DIV AB MOV B,#10 MUL AB MOV B,#10H DIV AB MOV B1,A RET;上面这一段是读取温度后进行转换的意思INIT_1820: SETB DQ;这是DS18B20复位初始化子程序 NOP CLR DQ;主机发出延时537微秒的复位低脉冲 MOV R1,#3TSR1: MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB DQ;然后拉高数据线 NOP NOP NOP NOP MOV R0,#25HTSR2: JNB DQ,TSR3;等待DS18B20回应 DJNZ R0,TSR2 LJMP TSR4;延时TSR3: SETB FLAG1;置标志位,表示DS1820存在 LJMP TSR5TSR4: CLR FLAG1;清标志位,表示DS1820不存在 LJMP TSR7TSR5: MOV R0,#117TSR6: DJNZ R0,TSR6;时序要求延时一段时间TSR7: SETB DQ RETGET_TEMPER: SETB DQ;读出转换后的温度值 LCALL INIT_1820;先复位DS18B20 JB FLAG1,TSS2 RET;判断DS1820是否存在?若DS18B20不存在则返回TSS2: MOV A,#0CCH;DS18B20;已经被检测到!!跳过ROM匹配 LCALL WRITE_1820 MOV A,#44H;发出温度转换命令 LCALL WRITE_1820 LCALL DISPLAY;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒 LCALL INIT_1820;准备读温度前先复位 MOV A,#0CCH;跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH;发出读温度命令 LCALL WRITE_1820 LCALL READ_18200;将读出的温度数据保存到35H/36H RETWRITE_1820: MOV R2,#8;一共8位数据 CLR C;写DS18B20的子程序(有具体的时序要求)WR1: CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RETREAD_18200: MOV R4,#2;将温度高位和低位从DS18B20中读出 MOV R1,#29H;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00: MOV R2,#8;数据一共有8位RE01: CLR C;读DS18B20的程序,从DS18B20中读出两个字节的温度数据 SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#9RE10: DJNZ R3,RE10 MOV C,DQ MOV R3,#23RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV @R1,A DEC R1 DJNZ R4,RE00 RET;上面的这些都是温度采集的!DISPLAY: MOV A,29H;将29H中的十六进制数转换成10进制 MOV B,#10;10进制/10=10进制 DIV AB;显示子程序 MOV A_BIT,A;十位在A MOV B_BIT,B;个位在B MOV DPTR,#NUMTAB;指定查表启始地址 MOV R0,#1DPL1: MOV R1,#25;显示1000次DPLOP: MOV A,B_BIT;取个位数 MOVC A,@A+DPTR;查个位数的7段代码 MOV P0,A;送出个位的7段代码 CLR P2.2;开个位显示 ACALL D1MS;显示1MS SETB P2.2 MOV A,A_BIT;取十位数 MOVC A,@A+DPTR;查十位数的7段代码 MOV P0,A;送出十位的7段代码 CLR P2.1;开十位显示 ACALL D1MS;显示1MS SETB P2.1 MOV P0,#0FFH DJNZ R1,DPLOP;100次没完循环 DJNZ R0,DPL1;4个100次没完循环 RET;上面这段显示实时温度DISPLAY1: MOV A,A1;将29H中的十六进制数转换成10进制 MOV B,#10;10进制/10=10进制 DIV AB;显示子程序 MOV A_BIT,A;十位在A MOV B_BIT,B;个位在B MOV DPTR,#NUMTAB;指定查表启始地址 MOV R0,#1DPL11: MOV R1,#25;显示1000次DPLOP1: MOV A,B_BIT;取个位数 MOVC A,@A+DPTR ;查个位数的7段代码 MOV P0,A;送出个位的7段代码 CLR P2.2;开个位显示 ACALL D1MS;显示1MS SETB P2.2 MOV A,A_BIT;取十位数 MOVC A,@A+DPTR;查十位数的7段代码 MOV P0,A;送出十位的7段代码 CLR P2.1;开十位显示 ACALL D1MS;显示1MS SETB P2.1 MOV P0,#0FFH DJNZ R1,DPLOP1;100次没完循环 DJNZ R0,DPL11;4个100次没完循环 RET;上面这段显示设置温度D1MS: MOV R7,#50 ;1MS延时 DJNZ R7,$ RETDELAY10: MOV R6,#20 ;10MS延时D3: MOV R5,#255 DJNZ R5,$ DJNZ R6,D3 RETDELAY125: MOV R6,#255;125MS延时D1: MOV R5,#255 DJNZ R5,$ DJNZ R6,D1 RETDELAY1S: MOV R7,#8;1S延时D2: LCALL DELAY125 DJNZ R7,D2 RETNUMTAB: DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H DB 80H,90H,88H,83H DB 0C6H,0A1H,86H,8EH;数码管的具体值 END第5章系统调试仔细检查所接电路,并按照硬件原理图接线,理论上是能实现的,如果数码管不显示,则应该检查线路是否正确,或是因为单片机没有工作,还有集电极和发射极是否接对。如果只显示两个八,则可能是DS18B20没有接正确,检查上拉电路是否接好。另外要注意的是,由单片机输出的控制信号比较小,需要进行放大才能驱动继电器工作,否则就不能实现升温过程,通常选用8550三极管来进行放大。还有220V交流电绿色接头和加热管黄色接头必须接正确,否则导致电路烧坏。蜂鸣器是低电平有效。如果能注意这些问题,电路基本不会出错。5.1软件调试5.1.1软件电路故障及解决方法设计软件部分出现这种错误的现象:1.当以断点或连续方式运行时,目标系统没有按规定的功能进行操作或什么结果也没有,这是由于程序转移到意外之处或在某处死循环所造成的。解决方法:这类错误的原因是程序中转移地址计算错误、堆栈溢出、工作寄存器冲突等。在采用实时多任务操作系统时,错误可能在操作系统中,没有完成正确的任务调度操作,也可能在高优先级任务程序中,该任务不释放处理器,使CPU在该任务中死循环。通过对错误程序的修改使其实现预期的功能。2.不响应中断CPU不响应中断或不响应某一个中断这种错误的现象是连续运行时不执行中断任务程序的规定操作,当断点设在中断入口或中断服务程序中时碰不到断点。错误的原因有:中断控制寄存器(IE,IP)的初值设置不正确,使CPU没有开放中断或不许某个中断源请求;或者对片内的定时器、串行口等特殊功能寄存器和扩展的I/O口编程有错误,造成中断没有被激活;或者某一中断服务程序不是以RETI指令作为返回主程序的指令,CPU虽已返回到主程序但内部中断状态寄存器没有被清除,从而不响应中断;或由于外部中断源的硬件故障使外部中断请求无效。解决方法:修改中断控制寄存器(IE,IP)的初值设置。3.结果不正确目标系统基本上已能正常操作,但控制有误动作或者输出的结果不正确。这类错误大多是由于计算程序中的错误引起的。错误原因没有查明,没有解决。5.1.2软件调试方法软件调试所使用的方法有:计算程序的调试方法、I/O处理程序的调试法、综合调试法等。1.计算程序的调试方法计算程序的错误是一种静态的固定的错误,因此主要用单拍或断点运行方式来调试。根据计算程序的功能,事先准备好一组测试数据。调试时,用防真器的写命令,将数据写入计算程序的参数缓冲单元,然后从计算程序开始运行到结束,运行的结果和正确数据比较,如果对有的测试数据进行测试,都没有发生错误,则该计算程序调试成功;如果发现结果不正确,改用单步运行方式,即可检查出错误所在。计算程序的修改视错误性质而定。若是算法错误,那是根本性错误,应重新设计该程序;若是局部的指令有错,修改即可。如果用于测试的数据没有全部覆盖实际计算的原始数据的类型,调试没有发现错误可能在系统运行过程中暴露出来。2.I/O处理程序的调试对于A/D转换一类的I/O处理程序是实时处理程序,因此一般用全速断点运行方式或连续运行方式进行调试。3.综合调试在完成了各个模块程序(或各个任务程序)的调试工作以后,便可进行系统的综合调试。综合调试一般采用全速断点运行方式,这个阶段的主要工作社排除系统中遗留的错误以提高系统的动态性能和精度。在综合调试的最后阶段,应在目标系统的晶振频率工作,使系统全速运行目标程序,实现了预定功能技术指标后,便可将软件固化,然后在运行固化的目标程序,成功后目标系统便可脱机运行。一般情况下,这样一个应用系统就算研制成功了。如果硬件电路检查后,没有问题却实现不了设计要求,则可能是软件编程的问题,首先应检查初始化程序,然后是读温度程序,显示程序,以及继电器控制程序,对这些分段程序,要注意逻辑顺序,调用关系,以及涉及到了标号,有时会因为一个标号而影响程序的执行,除此之外,还要熟悉各指令的用法,以免出错。还有一个容易忽略的问题就是,源程序生成的代码是否烧入到单片机中,如果这一过程出错,那不能实现设计要求也是情理之中的事。本人在设计的时候在伟福仿真软件进行调试,通过此软件进行调试可以很方便的观察单片机内部各个寄存器及内部存储器变化情况,以方便进行调试。图为单片机功能调试图:图5.1单片机功能调试图硬件与软件调试相结合,仔细检查各个模块的设计,旧能顺利完成任务,实现设计要求,在调试过程中必须认真耐心,不能有一点马虎,否则遗漏一个小的问题就会导致整个设计的失败。5.2系统操作说明本系统上电后数码管显示当前测量温度,此时加热指示灯和保温指示灯均不点亮;若此时按“自动加热”键,则单片机自动将预加热温度设置为80℃并开始加热,送出一个加热信号,并点亮加热指示灯;若按“温度设置”键,则进入预加热温度设置界面,此时数码管闪烁显示预设置温度,此时通过按键“+”和“-”进行设置温度,预设置温度按“5”递增或递减,设置好温度后再按一次“温度设置”键确定,单片机保存预设置温度,并开始加热。此时单片机通过数码管显示实时检测的温度并和预设置温度进行对比,如果实测温度大于或等于预设置温度,则单片机发出停止加热信号并熄灭加热指示灯,点亮保温指示灯,且当超过预设温度时发出报警;当温度下降到预设置温度以下5度时,单片机再次发出加热信号,同时熄灭保温指示灯,点亮加热指示灯,依次循环控制。5.3数据测试1.静态数据测试取一桶净水,改变它的温度,观察数码管上显示的温度值,并用温度计进行测温,记录两组数据,比较差异。记录表如下:表5-1静态温度数据测试表温度℃123456显示温度234763778490测量温度244763808491有测试数据可知,本系统测温结果与温度计测温基本一致,能满足设计,证明了设计的合理性。2.动态数据测试进行温度设定,通过设定温度值(75℃),观察加热管的加热情况,以及数码管的显示值,再用温度计测量水温,每隔一段时间记录一次数据,将两组值进行比较。记录表如下:设定前温度为25℃)表5-2静态温度数据测试表组数分组12345678910111213显示温度25293439424853586267707375测量温度25283438424953596367717475通过上表可看出在加热的过程中,显示的温度与实测的温度近似一样,说明系统的设计达到精度要求,但还是略有偏差,基本不影响设计结果。整个测试过程表明设计达到了任务书的要求,证明了该方案是合理可行的,顺利完成了设计,达到了预想结果。第6章总结与展望随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么单片机技术的出现则是给现代工业控制测控领域带来了一次新的革命。目前,单片机在工业控制系统诸多领域得到了极为广泛的应用。特别是其中的C51系列的单片机的出现,具有更好的稳定性,更快和更准确的运算精度,推动了工业生产,影响着人们的工作和学习。现代工业设计、工程建设及日常生活中常常需要用到温度控制,早期温度控制主要应用于工厂中,例如钢铁的水溶温度,不同等级的钢铁要通过不同温度的铁水来实现,这样就可能有效的利用温度控制来掌握所需要的产品了。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面,随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会。当前社会上的饮水机种类繁多,功能差异也很大,而人们的生活水平提高很快,生活中,人们的对饮水机功能的要求也越来越高,就目前来看,最先进的饮水机都具备温度控制系统的,而且都有自动控制功能,可以人为设定温度,具有这样功能的饮水机已经成为目前饮水机市场的主流产品,就这样的形式来看,市场对这类产品的要求数量还在不断增加,因此,开发本系统是很有市场前景的。本设计的特点是电路结构简单、功能强大,主要是利用单片机实现总体功能。由于考虑到成本的原因,设计从一开始就选择使用性价比最高的器件,因为所有的器件都是自己亲自去买,因此,整个系统的成本也很清楚,经过计算,硬件的成本大概在90元人民币左右,如果本系统大批量生产,加上包装等各项费用大概在100远左右。经过市场调研,在目前市面上,具有同等功能的饮水机的价格平均为180元左右。以非常有竞争力的零售价160元为基准,按照一般的市场规律厂家的出厂价定在120元。这样如果能够很好的宣传、推广的话,本产品将有很大的经济效益。近三个月的毕业设计即将结束,这意味着我们的大学生活也要结束了,但我们的学习没有结束,在本次设计中,我们所学过的理论知识接受了实践的检验,增强我的综合运用所学知识的能力及动手能力,为以后的学习和工作打下了良好的基础。本文以AT80C51系列单片机为核心,用AT80C51单片机作为控制器件,温度信号通过热敏电阻和放大器转换成电信号,再由ADC0809转换成为数字信号,测温电路采用桥式电路,温度设定采用独立按键的方式设定方法,温度控制加热和制冷装置,软件算法采用设定值和测量值相比较的算法。在单片机应用的基础上,实现了一种用带有E²PROM的AT80C51单片机控制传感器的自动化温度监控系统。通过本次的设计,使我们不仅对单片机这门课程有了更深刻的认识,懂得了如何运用课本知识结合实际来完成定时器的显示和编程方法以及数码显示电路的驱动方法,使我们能够很快的适应现代控制技术发展的需求,同时也提高了我们的思维能力和实际操作能力,为以后更好的走上工作岗位奠定了坚实的基础。另外,这次的设计还让我更进一步的认识了关于AT80C51等芯片的引脚功能以及使用方法,使我学会了应用不同的芯片来配合完成整个设计的操作。在做硬件电路的这段时间里,从思考设计到对电路的调试经过了许多困难。同样在对软件进行设计时,也可为一路坎坷。但是通过对软硬件不断撞墙,不断思考解决问题的过程中,我学会了很多东西,同时对单片机也有了更深的认识。在做设计的时候,很需要耐心和对事物的细心,很多时候一个简单问题的一个简单的疏忽就会导致整个电路的不工作,只有不断的检查不断的调试,才能真正完成一个设计的制作。只有不断的发现问题解决问题,才能从问题中改变自己,提升自己对单片机的能力。此设计虽然能够完成温度的显示和控制,但功能和精度有待于进一步提高。以后可以通过加入PID算法优化控制功能,并通过液晶显示屏实时显示温度。通过三个月的设计,我也有很深的感触:当今社会在飞速发展,科学技术发展的速度更是迅猛无比,尤其是单片机技术在未来社会发展中一定会起着十分重要的作用,而通过本次设计无论是从硬件实现还是到整个程序的完成,无不是对我个人专业能力的一次提高和体现。而本次设计主要是完成两方面工作,软件程序设计和硬件电路板设计。软件设计包括用单片机设计语言设计控制系统并仿真、实现。硬件设计包括绘制电路原理图,生成图后制作电路板、插件焊件、再做硬件测试。通过这些都使我对采用单片机设计方法有了更深的理解和掌握,同时也让我把所学的知识广泛的应用到了实践中,充分的做到了理论与实践相结合。无论从专业知识、动手能力,还是毅志品质,都使我受益非浅。大学生活虽然结束了,但我们的学习还没有结束,只有不断学习,用知识充实自己的头脑,才能在未来社会有一席之地,才能为社会的发展做出应有的贡献,一句话:学无止境。参考文献[1]金发庆等编.传感器技术与应用.北京机械工业出版社,2002。[2]马明建.数据采集与处理技术[M].西安交通大学出版社,2005。[3]王忠飞,胥芳.MCS-51单片机原理及嵌入式系统应用[M].西安:西安电子科技大学出版社,2007.P268-273。[4]曹巧媛主编.单片机原理及应用(第二版).北京:电子工业出版社,2002。[5]张毅刚.单片机原理及应用[M].高等教育出版社.2004年1月,第1版:137-156。[6]冯涛,秦永左主编.单片机原理及应用.国防工业出版社.138-177。[7]胡寿松.自动控制原理.北京:国防工业出版社,2000;103—124。[8]全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编(2001),北京:北京理工大学出版社,2003。[9]何力民编.单片机高级教程.北京:北京航空大学出版社,2000。[10]马江涛.单片机温度控制系统的设计及实现[J].计算机测量与控制,2004,(12).P1219—1229。[11]张开生,郭国法.MCS-51单片机温度控制系统的设计[J].微计算机信息,2005,(07).P68—69。[12]龚红军.单片机温度控制系统[J].电气时代,2002,(10).P17—18。[13]李萍.HYPERLINK"/kns50/detail.aspx?filename=GYS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论