为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

太阳能热水器温度控制系统设计最终

2012-05-19 36页 doc 668KB 32阅读

用户头像

is_815942

暂无简介

举报
太阳能热水器温度控制系统设计最终毕业设计说明书 目 录 21绪 论 21.1 课题背景 21.2太阳能热水器 21.3设计要求 21.3.1控制要求 31.3.2受控对象的数学模型 42 对硬件电路的研究与设计 42.1 单片机核心简介 42.1.1 组成框图及内部总体结构 52.1.2 寄存器和存储器 62.1.3 单片机各口及其负载能力、接口要求 82.1.4 MCS—51单片机的引脚功能 122.2 对温度传感器的选择 122.2.1 温度传感器的作用 122.2.2 常用的温度传感器...
太阳能热水器温度控制系统设计最终
毕业设计说明书 目 录 21绪 论 21.1 课题背景 21.2太阳能热水器 21.3设计要求 21.3.1控制要求 31.3.2受控对象的数学模型 42 对硬件电路的研究与设计 42.1 单片机核心简介 42.1.1 组成框图及内部总体结构 52.1.2 寄存器和存储器 62.1.3 单片机各口及其负载能力、接口要求 82.1.4 MCS—51单片机的引脚功能 122.2 对温度传感器的选择 122.2.1 温度传感器的作用 122.2.2 常用的温度传感器类型 142.2.3 温度传感器的选择 152.2.4 DS18B20 详解 222.3对显示模块的设计 222.3.1 1602液晶的硬件 252.3.2 1602指令集 262.4 时钟电路设计 262.4.1时钟电路方案研究 262.4.2 DS1302硬件研究 292.5 系统的输入设备 292.5.1 键盘的设计 302.5.2 电源的设计 312.5.3 电源方案的确定 312.5.4 电源的设计原理 322.5.5 电源的性能要求 332.6 外部驱动电路的设计 342.7 水位监测电路的设计 352.7.1 水位监测的方案对比 373 软件设计 373.1图 373.2程序 附录一电路原理图: 38 附录二PROTEUS效果图: 39 1绪 论 1.1 课题背景 太阳能作为一种新能源,它与常规能源相比有三大特点:第一:它是人类可以利用的最丰富的能源。据估计,在过去漫长的11亿年中,太阳消耗了它本身能量的2%。今后足以供给地球人类,使用几十亿年,真是取之不尽,用之不竭。第二:地球上,无论何处都有太阳能,可以就地开发利用,不存在运输问题,尤其对交通不发达的农村、海岛和边远地区更具有利用的价值。第三:太阳能是一种洁净的能源。在开发利用时,不会产生废渣、废水、废气、也没有噪音,更不会影响生态平衡。绝对不会造成污染和公害。 1.2太阳能热水器 基于太阳能各种优点,我们应该对其进行充分的利用,在以太阳能为主要能源的家用电器中,与我们日常生活密切相关的产品就是太阳能热水器。随着太阳能热水器市场竞争的日益激烈,品牌集中度将越来越高,消费者购买时的品牌意识也逐步增强,因此太阳能市场的前景还是一片大好。在本中,我主要阐述我对太阳能热水器的一种设计理念。本系统会具有时间、温度和水位三种参数实时显示和控制功能,而且具有时间设定、温度设定与控制功能。 针对我对太阳能热水器的设计理念,首先我要解决的问题是寻求一款性能优良的温度传感器来实时对太阳能热水器中的水温进行检测,毕竟消费者所买来的太阳能热水器是用来洗澡的,因此对于能否放出适宜的温度时至关重要的。其次,要做较好的安全措施,要对消费者的人身安全负责,这样,我便需要对热水器进行一定的漏电保护及防止电热丝干烧的措施。对于以上我所提出的问题,我将进行详细的论述与严谨的思考。 1.3 设计要求 1.3.1 控制要求 (1)要求太阳能热水器温度控制系统具有时间、温度和水位三种参数实时显示和控制。功能,而且具有时间设定、温度设定与控制功能。 (2)设计和实现太阳能热水器温度控制器的硬件电路,其中包括数据采集电路、控制执行电路、显示电路等。 (3)用PROTEL2004软件对本系统的硬件电路进行绘制和设计。同时做出本控制系统的PROTEUS仿真。 1.3.2 受控对象的数学模型 在太阳能热水器系统中,最重要的环节便是温度控制环节,我们首先手动设置适合人类淋浴的水温,我们对水问控制包括两个方面,即:水温太热,我们需要多加入凉水进行温度的调节;另一方面是水温太高,而外界的太阳能亮又不能使水温迅速达到我们的要求,那么就是控制系统自动启动电热丝,对水温进行加热,因此我们的控制对象有两个,那就是加水和加热。 2 对硬件电路的研究与设计 2.1 单片机核心简介 2.1.1 组成框图及内部总体结构 80C5l内部组成方框图如图1所示,内部总体结构框图如图2所示。 图2-1 80C51单片机组成方框图 图2-2 80C51总体结构框图 80C51主要包括算术/逻辑部件ALU、累加器A(有时也称ACC)、只读存储器ROM、随机存储器RAM、指令寄存器IR、程序计数据PC、定时器/计数据、 I/O接口电路、程序状态寄存器PSW、寄存器组,此外,还有堆栈寄存器SP、数据指针寄存器DPTR等部件。这些部件集成在一块芯片上,通过内部总线连接,构成完整的微型计算机。下面按其部件功能分类予以介绍。 2.1.2 寄存器和存储器 微处理器中的寄存器是学习指令系统和程序设计中常会接触到的、寄存器是由触发器组成的,8位寄存器由8个触发器组成,16位寄存器由16个触发器组成。MCS—51中的寄存器较多,大体可分为通用寄存器和专用寄存器两类。 图2-3 微处理器存储器结构 MCS—51存储器配置:微型计算机必须配置一定数量的存储器,但不同的微型计算机存储器的配置不同。一种是程序与数据共用一个存储器,如图3(a)所示。一般的通用计算机都采用此种形式。另一种是将程序与数据分别放在两个存储器内,一个称程序存储器,另一个称数据存储器,如图3(b)所示。MCS—5l单片机属于此类。这是由单片机的应用特点所决定的,因为单片机往往是为某个特定对象服务的,这是与通用计算机不同的一个显著特点。它的程序设计调试成功后,一般是固定不变的,因而程序(包括常数)可以而且也应该一次性地永久放到单片机内。这样不仅省去了每次开机后台程序重新装入步骤,还可以有效地防止围掉电和其它干扰而引起的程序丢失的错误。MCS—51片内集成有一定容量的程序存储器(8031/80c31/8032除外)和数据存储器并具有较大的外部存储器扩展能力。物理上,MCS—51有4个存储器空间:片内程序存储器、片外程序存储器,片内数据存储器、片外数据存储器。 图4给出了访问程序存储器时,程序取指所涉及到的信号和时序。如果程序存储器是外部的,则程序存储器读选PSEN一般是每个 图2-4 MCS-51 执引外部程序存储器中指令码时的总线周期 机器周期两次有效,如图4(a)所示,如果是访问外部数据存储器,如图4(b)所示,则要跳过两个PSEN,因为地址和数据总线正在用于访问数据存储器。应该注意的是,数据存储器总线周期为程序存储器总线周期的2倍,图5给出了端口0和端口2所发送的地址ALE和PSEN的相对时序。ALE用于将P0的低位地址字节锁存到地址锁存器中。 2.1.3 单片机各口及其负载能力、接口要求 MCS—51单片机有4个口,共32根I/O线。所有4个端口都是双向口,每口都包含一个锁存器,即专用寄存器P0--P3,一个输出驱动器和输入缓冲器。为了方便起见,我们把4个端口和其中的锁存器(即专用寄存器)都笼统地表示为P0—P3。 MCS-51在访问外部存储器时,地址由P0、P2口送出,数据则通过P1口传送,这时P0口是分时多路转换的双向总线。无外部存储器的系统中,所有4个端口都可以作为准双向口使用。 P0口是8位双向三态输入/输出接口,如图5(a)所示。P0口既可作地址/数据总线使用.又可作通用I/O口用。连接外部存储器时,P0口一方面作为8位数据输入/输出口,另一方面用来输出外部存储器的低8位地址。作输出口时,输出漏极开路,驱动NMOS电路时应外接上拉电阻;作输人口之前,应先向锁存器写1,使输出的两个场效应管均关断,引脚处于“浮空”状态,这样才能做到高阻输入,以保证输人数据的正确。正是由于该端口用作I/O口,输入时应先写l,故称为准双向口。当P0口作地址/数据总线使用时,就不能再把它当通用I/O口使用。 P1口是8位准双向口,作通用输入/输出口使用,如图5(b)所示。在输出驱动器部分,Pl口有别于P0口,它接有内部上拉电阻。P1口的每以一位可以独立地定义为输人或者输出,因此,P1口既可作为8位并行输入/输出口,又可作为8位输入/输出端。CPU既可以对P1口进行字节操作,又可以进行位操作。当作输入方式时,该位的锁存器必须顶写1。 P2口是8位准双向输入/输出接口,如图5(c)所示。P2口可作通用I/0口使用与P1口相同。当外接程序存储据时,P2口给出地址的高8位,此时不能用作通用,I/O口。当外按数据存储器时,若RAM小于256KB,用R0、R1作间址寄存器,只需要P0口送出地址低8位,P2口可以用作通用I/O ;若RAM大于256KB,必须用16位寄存器DPTR作间址寄存器.则P2口只能在一定限度内作一股I/O 口使用。 P3口也是一个8位的准双向输入/输出接口,如图5(d)所示。它具有多种功能。一方面与P1口一样作为一般准双向输入/输出接口,具有字节操作和位操作二种工作方式;另一方面8条闲人/输出线可以独立地作为串行输入/输出口和其它控制信号线。 图2-5 I/O一位锁存器和缓冲器结构 P0—P3端口的负载能力及接口要求 P0口的输出级与P1-P3口的输出级在结构上是不同的,因此它们的负载能力和接口要求也各不相同。P0口的每一位输出可驱动8个LSTTL输入,但把它当通用口使用时,输出级是开漏电路,故用它驱动NM0S输入时需外接上拉电阻;把它当地址/数据总线时,则需接外部上拉电阻。P1—P3口的输出级接有内部上拉电阻,它们的每一位输出可驱动4个LSTTL输入。CHMOS端口只能提供几毫安的输出电流,故当作为输出口去驱动一个普通晶体管的基极时,应在端口与晶体管基极间串联一个电阻,以限制高电平输出时的电流。 I/O口的读一修改一写特性由图5可见,每个I/O端口均有两种读人方法,读锁存器和读引脚,并有相应的指令,那么如何区分读端口的指令是读锁存器还是读引脚呢?读锁存器指令是从锁存器中读取数据,进行处理,并把处理以后的数据重新写入锁存器中这类指令称为“读一修改一写”指令。当目的操作数是一个I/O端口或I/O端口的某一位时,这些指令是读锁存器而不是读引脚,即为“读一修改一写”指令,下面是一些“读一修改一写”指令。 ANL (逻辑与,例如 ANL P1,A) ORL (逻辑或,例如 ORL P2,A) XRL (逻辑异或,例如 XRL P3,A) JBC (若位=1,则转移并清零,例如 JBC P1.1,LABEL) CPL (取反位,例如CPL,P3.0) INC (递增,例如INC P2) DEC (递减,例如DEC P2) DJNZ (递减,若不等于0则转移,例如DJNZ P3,LABEL) MOV P1.7 C(进位位送到端口P1的位7) CLR P1.4 (清零端口P1的位4) SETB P1.2 (置位端口P1的位2) 读引脚指令一般都是以I/O端口为原操作数的指令,执行读引脚指令时,打开三态门,输人口状态。例如,读P1口的输入状态时,读引用指令为;MOV A,P1。"读一修改一写"指令指向锁存器而不是引脚,其理由是为了避免可能误解引脚上的电平。例如,端口位可能用于驱动晶体管的基极,在写1至该位时,晶体管导通,若CPU随后在引脚处而不是在锁存器处读端口位,则它将读回晶体管的基极电压,将其解释为逻辑0。读该锁存器而不是引脚将返回正确值逻辑1。 2.1.4 MCS—51单片机的引脚功能 MSC-51单片机采用40引脚的双列直插封装(DIP)方式。图6为其引脚及逻辑符号图。 在40条引脚中,有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制引脚,3I/O引脚。下面分别叙述各引脚的功能。 1、主电源引脚Vss和Vcc Vss(20):接地;Vcc(40):正常操作时接十5V电源 2 、外接晶体引脚XTAL1和XTAL2 当外接晶体振荡器时,XTAL1和XTAL2分别接在外接晶体两端,当采用外部时钟方式时,XTAL1接地,XTAL2接外来振荡信号。 图2-6 MCS—51单片机引脚图及逻辑符号图 3、控制引脚 RST/Vpp(9):当振荡器正常运行时,在此引脚上出现二个机器周期以上的高电平使单片机复位。Vcc掉电期间,此引脚可接备用电源,以保持内部RAM的数据。当Vcc下降掉到低于规定的水平,而VPD在其规定的电压范围内,VPD就向内部RAM提供备用电源。 ALE(30):当访问外部存储器时,由单片机的P2口送出地址的高8位,P0口送出地址的低8位,数据也是通过P0口传送。作为P0口某时选出的信息到底是低8位地址还是传送的数据,需要有一信号同步地进行分别。当ALE信号(允许地址锁存)为高电平(有效).P0口送出低8位地址,通过ALE信号锁存低8位地址。即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6,因此可用作对外输出的时钟。但需注意:当访问外部数据存储器(执行MOVX指令)时,将跳过一个ALE脉冲。ALE端可驱动8个LSTTL输入。 PSEN(29):程序存储器读选通信号,低电平有效。 MCS—51单片机可以外接程序存储器及数据存储器,它们的地址可以是重合的。MCS—5l单片机是通过相应的控制信号来区别到底P2口和P0口送出的是程序存储器还是数据存储器地址。从外部程序存储器取指令(或常数)期间,每个机器周期两次 有效,此时地址总线上送出地址为程序存储器地址;如果访问外部数据存储器,这两次有效的P5EN信号将不出现。外部数据存储器是靠 (读)及 (写)信号控制的。同样可以驱动8个LSTTL输入。 EA/Vpp(31):当EA保持高电平时,访问内部程序存储器(4K8),但当PC(程序计数器)值超过OFFFH时,将自动转向执行外部程序存储器内的程序当EA保持低电平时,则只访问外部程序存储器(从0000H地址开始),不管单片机内部是否有程序存储器。 对于EPROM型单片机,在EPROM编程期间,此引脚用于施加21V的编程电源(Vpp)。 输入输出引脚 P0.0—P0.7(39—32):P0口是一个漏极开路型准双向I/O口。在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。在E—PROM编程时,它接收指令字节,而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。 P1.0—P1.7(1—8):P1口是带内部上拉电阻的8位双向I/O口。在EPROM编程和程序验证时,它接收低8位地址。 P2.0—P2.7(21—28):P2口是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。 P 3.0—P3.7(10—17):P3口是一个带内部上拉电阻的8位 双向I/O口。在MCS—5l中,这8个引脚还兼有专用功能,这些功能见表1。 这些专用功能的口线,在与外部设备接口、外接数据存储器等方面具有非常重要的作用。 表1 P3 各口线与专用功能 下图是设计的单片机最小系统图: 下图是在仿真中的单片机系统图: 2.2 对温度传感器的选择 2.2.1 温度传感器的作用 在太阳能热水器系统中,我们要对水温进行检测,因此我们需要把水温这个非电量,通过适宜的温度传感器转换成一个电量,从而我们对温度值所对应的电信号进行处理,最终达到我们的控制要求。因此,温度传感器在本系统中起到了非常重要的作用。 2.2.2 常用的温度传感器类型 (1) 热电偶温度传感器 对于热电偶温度传感器,其工作原理是将两种不同材料的导体或半导体A和B焊接起来,构成一个闭合回路,如图2-1-1所示。当导体A和B的两个执着点1和2之间存在温差时,两者之间便产生电动势,因而在回路中形成一个大小的电流,这种现象称为热电效应。温度传感器热电偶就是利用这一效应来工作的。同时,热电偶温度传感器还具有一些优点,即:测量精度高。因温度传感器热电偶直接与被测对象接触,不受中间介质的影响。测量范围广。常用的温度传感器热电偶从-50~+1600℃均可边续测量,某些特殊温度传感器热电偶最低可测到-269℃(如金铁镍铬),最高可达+2800℃(如钨-铼)。构造简单,使用方便。温度传感器热电偶通常是由两种不同的金属丝组成,而且不受大小和开头的限制,外有保护套管,用起来非常方便。 但是,由于热电偶温度传感器客观的结构形式,为了保证温度传感器热电偶可靠、稳定地工作,我们要求组成温度传感器热电偶的两个热电极的焊接必须牢固;两个热电极彼此之间应很好地绝缘,以防短路;补偿导线与温度传感器热电偶自由端的连接要方便可靠;保护套管应能保证热电极与有害介质充分隔离。 (2)热敏电阻温度传感器 热电阻温度传感器测温是基于金属导体的电阻值随温度的增加而增加这一特性来进行温度测量的。温度传感器热电阻大都由纯金属材料制成,目前应用最多的是铂和铜,此外,现在已开始采用甸、镍、锰和铑等材料制造温度传感器热电阻。其主要有精通型温度传感器热电阻、铠装温度传感器热电阻、端面温度传感器热电阻、隔爆型温度传感器热电阻等集中类型。对于温度传感器热电阻测温系统,一般由温度传感器热电阻、连接导线和显示仪表等组成。必须注意:温度传感器热电阻和显示仪表的分度号必须一致;为了消除连接导线电阻变化的影响,必须采用三线制接法。 (3)红外线测温技术. 红外检测器将吸收的辐射转化为热能,因此提高检测器的温度。并把温度变化数据转化成电子信号,放大显示出来。红外线是占据在可见光之间电磁波谱的一部分。电磁波谱是一组不同类型的辐射。它包括伽马射线、X射线、紫外线、可见红外辐射、微波、和无线电波。红外线的波长大于可见光的波长。因此红外线是一种不可见光。“红外”的意思就是“在红线以下”,表明这种光只有在电磁波谱的红光以下才能被看到。红外非接触温度感测器可以测量所有目标物体释放的红外能量,具有响应快的特点。通常被用于测量移动和间歇性目标,真空状态下的目标,由于恶劣环境空间限制以及安全威胁无法由人接触的目标。尽管在有些情况下使用其它设备也可以完成,但成本相对较高。 (4) DS18B20数字式温度传感器 DS18B20数字式温度传感器采用独特的单线接口方式,该温度传感器在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。其测温范围在-55℃~+125℃之间,采用独特的一线接口,只需要一根数据线即可完成通信任务。电压范围为3.0 V至5.5 V,无需备用电源。该传感器由于体积小巧,测量温度转却,因此应用范围很广,该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域等等。该温度传感器可编程的分辨率为9 ~ 12位 温度转换为12位数字格式最大值为750毫秒 用户可定义的非易失性温度报警设置 应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。由于每一个DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。 2.2.3 温度传感器的选择 通过我对市场上现存的各种各样的温度传感器进行比对调查,我发现DS18B20数字型温度传感器最适合应用到我所设计的太阳能热水器系统中。对于热电偶温度传感器来说,虽然其测温范围非常广,甚至最高能测数千摄氏度的高温,但是在我们的太阳能热水器中,其水温最高也超不过100摄氏度,因此要那么高的量程是没有任何实际意义的,同时,在使用热电偶温度传感器时有很多的不便之处,例如需要温度校正、温度补偿等等细节问题,都太繁琐,这样不利于简化产品生产工艺和降低生产成本,同时,热电偶温度传感器虽然能够将温度信号转换成电信号,但是这样的电信号只是一个模拟信号,我们无法将这样的模拟信号直接传送给单片机进行处理,因为我们的51单片机只能够处理数字量,因此假如要对热电偶温度传感器输出地模拟信号进行处理,我们只能通过一定的放大电路,将微弱的电信号进行放大,再通过模数转换电路,将模拟信号转换成数字信号,只有这样,我们才能用51单片机进行数字运算,在这过程中,我们还必须用到一个模数转换器件,这样无疑又增加了成本,这是不理智的。因此,把热电偶温度传感器运用到我们的太阳能热水器系统中来,这是不合适的。 对于热敏电阻传感器来说,其具有如同热电偶温度传感器相同的弊端,那就是转换出来的温度信号也是个非常微弱模拟量,也需要对这个微弱的模拟信号进行放大,最终经过模数转换电路才能传送给单片机进行处理运算,因此,采用热电阻温度传感器作为本太阳能热水器的测温器件也是不合理的。 综合以上,我发现只有DS18B20温度传感器才是能够运用到太阳能热水器中的最佳选择。因为DS1B820具有合适的量程,即:-55-+125。这个量程能够完全满足对太阳能热水器中的水温进行测量,同时具有较高的灵敏度,除此之外,该温度传感器还具有其他形式的温度传感器最大的优势,那就是该温度传感器是一个数字式的温度传感器,它能够在非常短的时间内,将外界的非电量的温度信号转换成一串二进制数,我们对这一串二进制数进行运算就可以得到准确的温度值,这样,我们不仅可以测量出精确地温度值,我们还省却了复杂的信号放大电路及模数转换电路,这样便极大地降低了生产成本和简化了生产工艺,因此我最终选择了DS18B20温度传感器作为该太阳能热水器的测温元件。 2.2.4 DS18B20 详解 2.2.4.1 DS18B20的主要特性    (1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电    (2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯    (3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温    (4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内    (5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃    (6)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温    (7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快    (8)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力    (9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 2.2.4.2 DS18B20的外形和内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如图: 图 DS18B20的外形及管脚 2.2.4.3 DS18B20工作原理       DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。 DS18B20有4个主要的数据部件:  (1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 (2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。    例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。 (3)DS18B20温度传感器的存储器     DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 (4)配置寄存器 该字节各位的意义如下: 低五位一直都是"1",TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位) 2.2.4.4高速暂存存储器    高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表?2是对应的一部分温度值。第九个字节是冗余检验字节。 根据DS18B20的通讯,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 2.2.4.5 DS18B20的应用电路 DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。下面就是DS18B20几个不同应用方式下的测温电路图: [1]、DS18B20寄生电源供电方式 在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。     独特的寄生电源方式有三个好处:     1)进行远距离测温时,无需本地电源     2)可以在没有常规电源的条件下读取ROM     3)电路更加简洁,仅用一根I/O口实现测温   要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。   因此,图2-3电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。     [2]、DS18B20寄生电源强上拉供电方式     改进的寄生电源供电方,为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到E2存储器操作时,用MOSFET把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最多10μS内把I/O线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。                 注意:在寄生电源供电方式中,DS18B20的VDD引脚必须接地 [3]、DS18B20的外部电源供电方式 在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85℃。 外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。站长推荐大家在开发中使用外部电源供电方式,毕竟比寄生电源方式只多接一根VCC引线。在外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V时,依然能够保证温度量精度。 下图是本系统中的DS18B20的原理图及仿真效果图: 2.3 对显示模块的设计 2.3.1 1602液晶的硬件 通过对本太阳能热水器系统的功能要求进行分析,在正常使用时需要显示的信息分别是时间、温度、水位三个量,基于现实的数据量不是太大,同时为了简化将来的生产工艺和降低生产成本,我选用了较为常用且价格低廉的1602液晶屏作为本太阳能温度控制系统的现实器件。 1602是工业字符型液晶,能够同时显示16x02即32个字符能显示16列2行字符。1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线 VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,以下是各个口线的功能定义: 下图是在protel2004中设计的液晶显示电路: 以下是在PROTEUS仿真中的液晶显示效果图: 在系统正常运行时,在液晶屏幕的左上角显示从0-4的数值,分别对应五个档位的水位指,当水位为0时,说明缺水,水位为4时,说明水充足。 在液晶的第一行靠右边显示的是系统的时间,包括小时、分钟和秒。 在液晶的第二行左边显示的数值是当前温度传感器所检测到得水温值,右边显示的是我们认为设定的温度值。 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。 2.3.2 1602指令集 1602通过D0~D7的8位数据端传输数据和指令。 显示模式设置: (初始化) 0011 0000 [0x38] 设置16×2显示,5×7点阵,8位数据接口; 显示开关及光标设置: (初始化) 0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效) 0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1), N=0(读或写一个字符后地址指针减1 &光标减1), S=1 且 N=1 (当写一个字符后,整屏显示左移) S=0 当写一个字符后,整屏显示不移动 数据指针设置: 数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H) 其他设置: 01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。 通常推荐的初始化过程:   延时15ms   写指令38H   延时5ms   写指令38H   延时5ms   写指令38H   延时5ms   (以上都不检测忙信号)   (以下都要检测忙信号)   写指令38H   写指令08H 关闭显示   写指令01H 显示清屏   写指令06H 光标移动设置   写指令0cH 显示开及光标设置 2.4 时钟电路设计 2.4.1 时钟电路方案研究 由于本系统需要显示时间,根据以往的经验,在单片机系统中进行时钟的显示,通常用两种方法。第一种方法是利用单片机的定时器进行定时,例如,通过一个定时器定时10毫秒,每当是毫秒到后就对一个变量进行累加,当这个变量累加到100的时候,也就产生了一秒的定时。利用这种方法来做时钟功能具有节约成本,简化电路的优点,但是也具有很大的缺点,一方面,通过自身的定时器来产生一秒的定时,会产生误差,经过一段时间后,误差累计,从而导致时间会不准,令一个缺点就是在系统断电后重新工作时,由于单片机掉电后内存中的数据全部不能保存,因此时间会重置,增加了设备的不稳定因素。基于以上考虑,我没有利用定时器来做时钟功能,而是引入市场上技术较成熟且廉价的DS1302时钟芯片来完成时钟功能的设计。 2.4.2 DS1302硬件研究 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。                 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 下图为DS1302的引脚功能图: 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。 下图是在PROTEUS仿真中DS1302的图片: 下图是利用PROTEL2004绘制的原理图总的DS1302接线电路: 2.5 系统的输入设备 2.5.1 键盘的设计 在本太阳能热水器系统中,在使用时,我们需要对水位、时间以及温度进行设定,因此必须要有输入设备,考虑到输入的数据量不是太大,因此我只设计了四个按键,分别是功能键、增大键、减小键和退出键。由于按键数量少,因此占用口线也少,为了简化程序和电路,我直接将四个按键接到单片机的四个I/O口上,并且在四个口线都加上10K的上拉电阻,这样可以保证在按键不按下的情况下,单片机的引脚上会产生一个稳定的高电平,以此来增强系统的稳定性,避免不必要的误动作。按键的另一端全部都接地,这样,在某个按键按下的时候,会将对应口线的点位拉低位0;因此我只要通过程序,时刻对四个接有按键的引脚的电平进行扫描,我便可以得知是哪个按键被按下,然后再通过程序进行相应的预算即可。 以下是四个独立案件分别在PROTEL以及PROTEUS中的截图: 2.5.2 电源的设计 2.5.3 电源方案的确定 为了让系统能够稳定可靠的工作,首先必须为系统提供可靠的电源,不稳定的供电系统不仅会让系统工作不稳定,甚至会对一些敏感器件造成不可逆的毁坏。假如输出功率不够大,系统在工作时,如瞬间需要高电流,这样可能会拉低电源电压,使单片机产生复位动作,造成一些不可控的局面。假如对电源滤波工作没做好,同样也会干扰单片机的稳定工作,出现复位或者一些匪夷所思的故障,让人不好检修。因此,经过仔细查阅资料后,总结之前的一些经验教训,设计出一个稳定的5V电源电路,单独只为控制系统,也就是单片机提供电源。 2.5.4 电源的设计原理 电网供电电压交流220V(有效值)50Hz,要获得低压直流输出,首先必须采用电源变压器将电网电压降低获得所需要交流电压。降压后的交流电压,通过整流电路变成单向直流电,但其幅度变化大(即脉动大)。脉动大的直流电压须经过滤波电路变成平滑,脉动小的直流电,即将交流成份滤掉,保留其直流成份。滤波后的直流电压,再通过稳压电路稳压,便可得到基本不受外界影响的稳定直流电压输出,供给负载RL。 直流稳压电源原理 直流稳压电源是一种将220V工频交流电转换成稳压输出的直流电压的装置,它需要变压、整流、滤波、稳压四个环节才能完成,其中,电源变压器:是降压变压器,它将电网220V交流电压变换成符合需要的交流电压,并送给整流电路,变压器的变比由变压器的副边电压确定;整流电路:利用单向导电元件,把50Hz的正弦交流电变换成脉动的直流电;滤波电路:可以将整流电路输出电压中的交流成分大部分加以滤除,从而得到比较平滑的直流电压;稳压电路:稳压电路的功能是使输出的直流电压稳定,不随交流电网电压和负载的变化而变化。整流电路常采用二极管单相全波整流电路,在桥式整流电路中,每个二极管都只在半个周期内导电,所以流过每个二极管的平均电流等于输出电流的平均值的一半 。在设计中,常利用电容器两端的电压不能突变和流过电感器的电流不能突变的特点,将电容器和负载电容并联或电容器与负载电阻串联,以达到使输出波形基本平滑的目的。选择电容滤波电路后,直流输出电压:Uo1=(1.1~1.2)U2,直流输出电流: (I2是变压器副边电流的有效值。),稳压电路可选集成三端稳压器电路。 经整流滤波输出的电压通常是不稳定的,不能直接对系统供电,因此需要经过稳压电路将电压稳定到单片机系统所需的要求。 对任何稳压电路都应从两个方面考察其稳压特性,一是设电网电压波动,研究起输出电压是否稳定;二是设负载变化,研究其输出电压是否稳定。 直流稳压电路分为串联型稳压电路和开关型稳压电路,本设计采用串联型稳压电路。稳压器一般包括单管稳压器和集成稳压器。常用的集成稳压器有固定式三端稳压器和可调式三端稳压器,本设计使用固定式三端稳压器W7805输出5V电压。 稳压电源的技术指标可以分为两大类:一类是特性指标,如输出电压、输出电流及电压调节范围;另一类是质量指标,反映一个稳压电源的优劣,包括稳定度、等效内阻(输出电阻)、波纹电压及温度系数等。 2.5.5 电源的性能要求 对稳压电源的性能,主要有以下四个方面的要求: 1、稳定性好 当输入电压Usr(整流、滤波输出电压)在规定范围内变动时,输出电压Usc的变化一般要求很小。 由于输入电压变化而引起输出电压变化的程度,称为稳定度指标,长用稳压系数S来表示:S的大小,反映一个稳压电源克服输入电压变化的能力。在同样的输入电压变化条件下,S越小,输出电压的变化越小,电源的稳定度越高。通常S约为10-2~10-4。 2、输出电阻小负载变化时(从空载到满载),输出电压Usr应基本保持不变,其这方面的性能可用输出电阻表征。输出电阻(又称等效内阻)用rn表示,他等于输出电压变化量和负载电流变化量之比,即rn反映负载变动时,输出电压维持恒定的能力,rn越小,则Ifz变化时输出电压的变化也越小。性能优良的稳压电源,输出电阻可小到1Ω,甚至0.01Ω。 3、电压温度系数小 当环境温度变化时,会引起输出电压的漂移。良好的稳压电源,应在环境温度变化时,有效地抑制输出电压的漂移,保持输出电压稳定,输出电压的漂移用温度系数KT来表示。 4、输出电压纹波小 所谓纹波电压,是指输出电压中50Hz或100Hz的交流分量,通常用有效值或峰值表示。经过稳压作用,可以使整流滤波后的纹波电压大大降低,降低的倍数反比于稳压系数S。 以下是电源电路的原理图: 2.6 外部驱动电路的设计 由于太阳能热水器的控制系统需要对水温进行控制,因此单片机对温度值进行处理运算后,就要驱动外围的一些器件进行相应的动作。当实际水温高于设定值时,为了降低水温,单片机进行运算后,便要打开电磁阀,往热水器中充入一定量的冷水,从而使温度降低到合适的数值。当实际水温低于设定的温度值时,为了达到设定的温度值,因此单片机经过运算后会启动功率型加热器件对水进行加热,从而使水温达到设定值。 在这里我采用单片机控制三极管来驱动继电器,用继电器来控制后续设备的工作。在这里我选用PNP型三极管,三极管的基极串联一个4.7K的电阻,接到单片机的一个I/O口线上,发射极接到+5V,集电极接到继电器的线圈,线圈的另一端接地,这样三极管会工作在饱和开关状态。当单片机I/O口输出低电平时,三极管的基极为低电平,三级管饱和导通,继电器的线圈得点,从而使继电器的常开触点闭合,常闭触点断开,在这里我们用继电器的常开触点,来为后面的功率型加热器件和电磁阀供电,从而实现对水的加热和充水工作。 以下是外部驱动电路的原理图: 2.7 水位监测电路的设计 2.7.1 水位监测的方案对比 一种水位检测仪,所述的检测仪包括探头、恒流源、单片机,所述的探头包括垂直绝缘管、接地线,所述的绝缘管内壁设有金属膜,所述的绝缘管、接地线分别放置在待测水域中,所述的绝缘管中的金属膜为电容的一极,所述的接地线为电容的另一极;所述的恒流源通过接通开关连接探头,所述的探头通过电压比较电路连接单片机;所述的单片机包括启动检测模块、充电时间计算模块、水位检测模块;所述的启动检测模块的输出端连接接通开关,所述的启动检测模块、电压比较电路的输出端连接充电时间计算模块的输入端,所述充电时间计算模块的输出端连接水位检测模块。本实用新型提供一种测量精度高、成本低、安装简单的水位检测仪。 超声波液位计测量水位的原理以及安装要求 超声波液位计工作时,高频脉冲声波由换能器(探头)发出,遇被测物体(水面)表面被反射,折回的反射回波被同一换能器(探头)接收,转换成电信号。脉冲发送和接收之间的时间(声波的运动时间)与换能器到物体表面的距离成正比,声波传输的距离S与声速C和传输时间T之间的关系可以用公式表示:S= CⅹT/2 安装超声波液位计时必须考虑超声波液位计的盲区问题。当液位进入盲区后,超声波变送器就无法测量液位了,所以在确定超声波液位计的量程时,必须留出50公分的余量,安装时,变送器探头必须高出最高液位50公分左右。这样才能保证对液位的准确监测及保证超声波液位计的安全。 为了了解太阳能热水器中的水位变化,基于我们对太阳能热水器的水位精确度要求不高,我们只要大约知道有多少水,需不需要上水的信息即可。因此在这里我采用最简便的浮子式水位传感器对水位进行检测。 通过电子式水位开关(BZ2401或BZ0501)和搭配的水位控制器(BZ201、BZ202)来控制。电子式水位开关原理是通过电子探头对水位进行检测,再由水位检测专用芯片对检测到的信号进行处理,当被测液体到达动作点时,芯片输出高或低电平信号,再配合水位控制器,从而实现对液位的控制。不需浮球和干簧管,外部无机械动作,耐污耐用,不怕漂浮物影响,任意角度安装,竖向安装有一定的防波浪功能,适宜长时间浸在水中,工作电压是电子式水位开关在污水中的应用直流5-24V,很安全。举例:把一个水位开关放在高水位A位置,另一个水位开关放在低水位B位置。当水到达B位置时,继电器闭合,此时可控制水泵或电磁阀的启动,开始进水;当水上升到达高水位A位置时,继电器断开,水泵或电磁阀断电。然后水又到低水位B位置,不断往复循环...... 这种方式较实用,耐污,寿命长,安全。 下图为我选用的浮子式传感器: 在这里我用四个浮子水位传感器,这样的传感器就相当于一个常开的开关,当有谁浸没时,由于水的浮力加上浮子本身的磁力,会使常开触点闭合,将单片机的对应引脚的点评拉低,因此我们只要去读取单片机引脚的电平值即可知道水位。我们将四个浮子传感器平均防止在太阳能热水器出水器中,这样便可以将水位分成四部分。 3 软件设计 附录一电路原理图: 附录二PROTEUS效果图: 系统初始化 初始化 1602 初始化 1302 显示当前时间 读取温度值 扫描按键 检测水位 8
/
本文档为【太阳能热水器温度控制系统设计最终】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索