基于单片机的太阳能热水器控制系统显示的设计.doc_第1页
基于单片机的太阳能热水器控制系统显示的设计.doc_第2页
基于单片机的太阳能热水器控制系统显示的设计.doc_第3页
基于单片机的太阳能热水器控制系统显示的设计.doc_第4页
基于单片机的太阳能热水器控制系统显示的设计.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、电子与信息工程学院 本本 科科 毕毕 业业 论论 文文 论文题目 基于单片机的太阳能热水器控制系 统显示的设计 学生姓名 胡大 学 号 063722048 专 业 电气工程及其自动化 班 级 06 电气(2) 指导教师 刘宏章 2010 年 5 月 摘摘 要要 该设计以单片机 at89s52 为核心,结合单线数字温度传感器 ds18b20 与数码管 7seg 设计一种数字化、智能化的太阳能热水器控制系统。该系统由主控芯片模块、 ds18b20 温度检测模块、led 显示模块、水位检测模块、报警模块和电磁阀控制模块 组成。给出了各个模块地结构及其工作原理、系统硬件原理图、程序流程图和部分 源程序

2、,并结合理论设计进行实物制作。此系统解除了热水器上水时需人工守候和 过量溢水的问题,达到了省时、环保、节水的目的。该系统与传统的机械式控制系 统相比较,具有结构简单,抗干扰能力强,使用方便等特点。 关键词关键词:单片机 at89s52; 温度传感器 ds18b20; 智能控制;led 显示 abstract this design takes monolithic integrated circuit at89s52 as the core, combining the single digital temperature sensor ds18b20 and led 7seg to desi

3、gn a kind of digital, intelligent control system of solar energy water heater.the system consists of main chip module, ds18b20 temperature detection module, led display module, the water level detection module, alarm module and solenoid valve control module. given to the structure of each module and

4、 its working principle, system hardware, schematics, process flow charts, and some source code, and theoretical design of physical production. the system needs to lift the water heater in sheung shui and excessive artificial overflow problem waiting to reach a time-saving, environmental protection,

5、water conservation purposes. the system with the traditional mechanical control systems compared to simple structure, strong anti-interference ability, easy to use and so on. keywords: microcontroller; at89s52; transducer; ds18b20; intelligence control;leddisplay 目目 录录 1 绪论.1 2 系统设计要求和方案论证.2 2.1 系统的

6、设计要求.2 2.2 系统设计方案与比较.2 3 系统硬件电路设计.4 3.1 主控芯片 at89s52 单片机.4 3.2 温度检测模块.6 3.3 led 显示模块.9 3.4 水位检测模块.10 3.4.1 a/d 转换 adc0832 转换器.11 3.4.2 lm339 放大器.12 3.4.3 水位接口电路.12 3.5 电磁阀控制模块.13 3.6 整体电路图.14 4 系统软件设计.15 4.1 ds18b20 工作过成及时序.15 4.2 串行 ad 转换器 adc0832 程序设计 .17 4.3 led 数码管显示程序设计 .18 5 系统硬件调试.20 5.1 温度显示

7、仿真.20 5.2 水位显示仿真.21 5.3 水位控制仿真.23 5.4 仿真结果分析 .25 6 结论与展望.26 致 谢.27 参考文献.28 附录 系统总原理图.29 附录 系统源程序.30 1 1 绪绪 论论 由于近年来常规能源的紧缺,开发和利用太阳能这样的绿色能源有着重要的意 义,它既是可再生能源,也不会污染环境。太阳能热水器也是其中的一大产业。 目前,中国已成为世界上最大的太阳能热水器生产国,年产量约为世界各国之 和,已有一百多家太阳能热水器生产厂。太阳能热水器是太阳能利用中最常见的一 种装置,经济效益明显,正在迅速的推广应用,太阳能热水器能够将太阳辐射能转 换热能,供生产和生活

8、使用。太阳能热水器是环保、无污染,人们用着安全放心。 利用太阳的能源,大量节约现有的能源,是以后能源发展的趋势。 在太阳能热利用技术中,太阳能热水器是技术上比较成熟、造价比较低廉的产 品,同时给人民提供低耗能源、保护环境、绝对安全的热水而受到人们的欢迎。世 界各国的太阳能热水器生产发展也很快。例如:澳大利亚政府规定,在北区新建房 屋一定要设置太阳能热水器,已经有 25的新住宅安装了太阳能热水器。日本现在 每年安装太阳能热水器近 50 万台,计划今后普及率更高。有些国家法令规定所有新 建筑物必须配备太阳能热水器。 太阳能热水器时存在的问题:不可缺水,空晒情况下上水会爆炸;春、秋天, 水温升高蒸发

9、,造成热能损失;冬天水温不够,须用电等等。现在人们对家用电器 的要求越来 趋向数字化、自动化、智能化。采用太阳能热水器水温水位测控系统 12,能解决上述问题,使用户省心,使用方便,智能操控,用户不必作任何操作。 本系统是针对上述问题设计的温度控制系统,由 at89s52 单片机和一些外围设 备,充分运用软件和硬件结合的方法实现了当前水位高度显示、水箱温度显示,以 及当水位下降到最低刻度线时自动上水三种主要功能。本系统可使用在水池,锅炉, 水塔等装置上,当水位下降到最低设置水位时,系统可通过自动上水使水位保持在 一定的水位高度。上水过程的自动控制省去人工守候环节,节省了大量的人力,带 来了工作效

10、益。所以该控制器具有使用方便、性价比高、工作可靠、精度高等特点, 为太阳能热水器的进一步推广具有积极的推动作用。 从未来的发展来看,以投资少、无污染、节约能源、多功能、智能化为设计目标, 将会带来客观的经济效益。 2 2 系统设计要求和方案论证系统设计要求和方案论证 设计要求是一个设计必须要求达到的目标或完成的目标,而设计方案是一个设 计实现的重要途径,同样必不可少。 2.12.1 系统的设计要求系统的设计要求 设计的系统可以实现当前水位高度、水箱温度的显示,以及当水位下降到最低 设置水位时,系统可通过自动上水使水位保持在一定的水位高度。 2.22.2 系统设计方案与比较系统设计方案与比较 方

11、案一:采用半导体逻辑器件构成的控制器,主要应用定时器构成。在此控制 方案里,定时器和加减计数器共同构成水位显示器。由于水温的变化具有未知性, 在水温检测电路里,利用热敏电阻测量的水温信号是模拟量,需要经过模/数转换成 半导体逻辑器件能够识别的数字信号。这类控制电路过于庞大复杂,操作也不方便, 成本也较高。 方案二:采用可编程逻辑器件。结果简单的 plc 控制成为首选。由于控制电路 简单,检测电路要求也不高,所以必然造成接口资源和内部资源的浪费,显然不够 经济。 方案三:采用单片机为核心控制器的电路。单片机电路结构简单、成本低廉, 可靠性高,便于实现各个控制功能。水位由设置在水箱内的四个浮子式微

12、动开关获 得的电信号检测,通过单片机处理送达显示电路显示当前水位。由于实际操作的原 因,本设计水位检测用滑动变阻器来代替,通过阻值的改变来实现水位的改变。然 后通过模/数转换把信号输入到单片机,获得当前水位显示。水温检测由单片机根据 温度传感器(ds18b20)的操作指令和时序,读取温度,并送达显示电路显示当前水 温。 从结构、经济、可操作性等方面来看,方案三都是最佳选择。方案三以单片机 at89s52 为核心控制器件,结合单线数字温度传感器 ds18b20 与 7 段数码管 led 和 dac0832 等芯片,设计一种太阳能热水器智能控制系统13。该系统原理框图如图 2- 1 所示。 单片机

13、 at89s52 led 显 示模块 电磁阀控 制模块 温度检 测模块 水位检 测模块 图 2-1 系统原理框图 用户在使用热水器后,当水位下降到低于最低设置水位时,单片机接受此信号 并开始执行指令,电磁阀打开,水位不断升高,当达到最高设置水位时便给单片机 发出中断请求,此时电磁阀关闭,停止工作。在上水过程中,led2 显示水箱的水位 值,led1 水箱内水的当前温度,不仅直观方便,而且精确度高,实用性强。此系统 解决了热水器上水时需人工守候和过量溢水的问题,达到了省时、环保、节水的目 的。 3 3 系统硬件电路设计系统硬件电路设计 该系统由主控芯片模块 at89s52、ds18b20 温度检

14、测模块、led 显示模块、水位 检测模块、报警模块和电磁阀开关模块组成。下面分别对各个模块作具体介绍。 3.13.1 主控芯片主控芯片 at89s52at89s52 单片机单片机2 21111 at89s52 是一种低功耗、高性能 cmos 8 位微控制器,具有 8k 在系统可编程 flash 存储器。at89s52 单片机采用 40 条引脚,双列直排的封装形式。在单片机的 40 条引脚中,有 2 条专用于主电源的引脚,2 条外接晶振的引脚,4 条控制和其它 电源复用的引脚,32 条 i/o 引脚。图 3-2 是 at89s52 引脚图。 图 3-2 at89s52 单片机引脚图 下面分别简要

15、说明这些引脚的名称和功能。 (1) 主电源引脚 vcc 和 gnd vcc:接+5v 电源。 gnd:接地。 (2) 时钟电路引脚 xtal1 和 xtal2 xtal1:接外部晶振的一端。在单片机内部,它是反相放大器的输入端。该放 大器构成了片内振荡器。 xtal2:接外部晶振的另一端。在单片机内部,接至上述振荡器的反相放大器 的输出端,振荡器的频率是晶体振荡频率。 在本设计中,xtal1 和 xtal2 端外接石英晶体作为定时元件,内部反相放大 器自激振荡,产生时钟。石英晶体的振荡频率为 12mhz,其原理图如图 3-3 所示: 图 3-3 晶体振荡电路 (3) 控制信号引脚 rst、/、

16、和/vppaleprogpsenea rst:单片机上电后,只要在该引脚输入 24 个振荡周期宽度以上的高电平就会 使单片机复位。图 3-4 是复位电路图。在通电瞬间,电容 c 通过电阻 r 充电,rst 端出现正脉冲,用以复位。关于参数的选定,应保证复位高电平持续时间大于 2 个 机器周期。当采用晶振为 12mhz 时,可取 c=10uf,r=10k。 vcc c 10u r 10k 图 3-4 复位电路图 /:地址锁存使能输出/编程脉冲输入端。当 cpu 在访问外部程序存aleprog 储器时,ale 的输出作为外部锁存地址的低位字节的控制信号;当不访问外部存储 器程序期间,ale 端仍以

17、 1/6 的时钟振荡频率固定地输出脉冲。因此,它可用作对 外输出地时钟或用于定时。 :外部程序存储器读选通信号。cpu 在访问外部程序存储器期间,每个psen 机器周期中,信号两次有效。但在此期间,每当访问外部数据存储器时,这psen 两次有效的信号不出现。端可以驱动 8 个负载 lsttl。psenpsen /vpp:外部访问允许/编程电源输入端。当输入高电平时,cpu 执行程eaea 序,在低 4kb(0000h0fffh)地址范围内,访问片内程序存储器;在程序计数 器 pc 的值超过 4kb 地址时,将自动转向执行片外程序存储器的程序。当输入ea 低电平时,cpu 仅访问片外程序存储器。

18、 (4) 输入/输出(i/o)引脚 p0、p1、p2 和 p3 p0.0p0.7:p0 口是一个 8 位漏极开路的双向 i/o 口。作为输出口,每位能驱 动 8 个 ttl 逻辑电平。 p1.0p1.7:p1 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p1 输出缓冲 器能驱动 4 个 ttl 逻辑电平。 p2.0p2.7:p2 口是一个 8 位准双向 i/o 口。 p3.0p3.7:p3 口是一个 8 位准双向 i/o 口。它是一个复用功能口。作为第一 功能使用时,为普通 i/o 口,其功能和操作方法与 p1 口相同。作为第二功能使用时, 各引脚的定义如表 1 所示。 表 1 p3

19、各口线的第二功能表 口线 第二功能 p3.0 rxd(串行输入) p3.1 txd(串行输出) p3.2 int0(外部中断 0) p3.3 int1(外部中断 1) p3.4 t0(定时器 0 的外部输入) p3.5 t1(定时器 1 的外部输入) p3.6 wr(外部数据存储器写选通道) p3.7 rd(外部数据存储器读选通道) 3.23.2 温度检测模块温度检测模块 传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生 产、科学研究和生活等领域,数量高居各种传感器之首。近百年来,温度传感器的 发展大致经历了以下三个阶段:(1)传统的分立式温度传感器(含敏感元件) ; (2

20、)模拟集成温度传感器/控制器;(3)智能温度传感器。目前,国际上新型 温度传感器正从模拟式向数字式、由集成式向智能化、网络化的方向发展。温度传 感器的主要特点是功能单一、测温误差小、价格低廉、响应速度快、传输距离远、 体积小、微功耗等,适合远距离测温、控制,不需要进行非线性校准,外围电路简 单。太阳能热水器温度传感器有很多种,本设计可选用具有负温度系数的热敏电阻 来测水温,热敏电阻与普通电阻不同,它具有负的温度特性,当温度升高时,电阻 值减小,它的应用是为了感知温度。由于取材原因,本设计选用了型号为 ds18b20 的温度传感器,因为它独特的单线接口,且具有精准度高、抗干扰能力强等优点, 实验

21、中用它来代替温度传感器。 ds18b20 的简介1015 dallas 半导体公司的数字化温度传感器 ds18b20 是世界上第一片支持“一线总 线”接口的温度传感器,在其内部使用了在板(on-board)专利技术。全部传感元 件及转换电路集成在形如一只三级管的集成电路内。ds18b20 具有微型化、低功耗、 高性能、抗干扰能力强、可组网等优点,测温分辨率高,为 912 位,精度为 0.5。ds18b20 可直接将温度转化成串行数字信号,因此特别适合和单片机配合使 用,直接读取温度数据。 (1) ds18b20 的引脚图和封装如图 3-5 所示 图 3-5 ds18b20 的引脚图和封装 (2

22、) ds18b20 的引脚介绍: dq 为数字信号输入/输入端 gnd 为电源地 vdd 为外接供电电源输入端(在寄生电源接线方式时接地) (3) ds18b20 的主要特性: 独特的单线接口仅需一个端口引脚 进行通讯 每个器件有唯一的 64 位的序列号存 储在内部存储器中 简单的多点分布式测温应用 可通过数据线供电。供电范围为 3.0v5.5v 测温范围为-55125(67257) ,在1085范围内精确度 为5 温度计分辨率可以被使用者选择为 912 位 最多在 750ms 内将温度转换为 12 位数字 用户可定义的非易失性温度报警设置 报警搜索命令识别并标志超过程序限定温度(温度报警条件

23、)的器件 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统 (4) ds18b20 内部结构主要由四部分组成:64 位光刻 rom、温度传感器、非 挥发的温度报警触发器 th 和 tl、配置寄存器。ds18b20 的内部结构如图 3-6 所示。 图 3-6 ds18b20 的内部结构框图 ds18b20 使用一根单线端口进行通讯。在单线端口的条件下,要先建立 rom 操 作协议,才能进行存储和控制操作。光刻 rom 中的 64 位序列号是出厂前就被光刻好 的,是 ds18b20 的地址序列号,使每个 ds18b20 都有各不相同,这样就可以在一根 总线上挂多个 ds18b20 了。其

24、中的温度传感器完成对温度的测量。内部的存储器, 包括一个高速暂存 ram 和一个非易失性的可电擦除的 eepram,后者存放高温度和低 温度触发器 th,tl 和结构寄存器。配置存储器则主要用来设置它的工作模式和分辨 率。 ds18b20 测温原理如图 7 所示。图中低温度系数晶振的振荡频率受温度影响很 小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振随温度变化其振 荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被 预置在55所对应的一个基数值。计数器 1 对低温度系数晶振产生的脉冲信号进 行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的

25、值将加 1,计数器 1 的 预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数, 如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中 的数值即为所测温度。图 3-7 中的斜率累加器用于补偿和修正测温过程中的非线性, 其输出用于修正计数器 1 的预置值。 斜率 累加器 预 置 比 较 计数器 1低温度系 数晶振 预 置 =0 温度寄 存器 计数器 2高温度系 数晶振 =0 图 3-7 ds18b20 的工作原理 ds18b20 单线通信功能是分时完成的,它有严格的时隙概念。因此系统对 ds18b20 的各种操作必须按协议进行。操作协议为:初

26、始化 ds18b20(发复位脉冲) 发 rom 功能命令发存储器作命令处理数据。 ds18b20 可编程温度传感器采用 3 脚 pr-35 封装,其中 gnd 为接地线,dq 为数 据输入输出接口,通过一个较小阻值的上拉电阻与单片机相连。vcc 为电源接口, 既可由数据线提供电源,又可由外部提供电源,范围可为 3.05.5v,本系统使用 外部电源供电。 3.33.3 ledled 显示模块显示模块 7 段 led 数码管是利用 7 个 led(发光二极管)外加一个小数 点的 led 组合 而成的显示设备,可以显示 09 等 10 个数字和小数点,这类数码管可以分为 公阴极与共阳极两种,共阳极就

27、是把所有led 的阳极连接到共同的结点,而每 个 led 的阴极分别为 a,b,c,d,e,f,g 及 dp(小数点) ;共阴极就是把所有 led 的阳极连接到共同的结点,而每 个 led 的阳极分别为 a,b,c,d,e,f,g 及 dp(小数点) ,如 38 示: 根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示 驱动:每个数码管的每个段都由一个单片机的i/o 端口进行驱动,或者使用如 bcd 码的二十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示 亮度高,缺点是占用 i/o 端口多。动态显示驱动:动态驱动是将所有数码管的 8 个 显示笔划“a,b,c,d,e,f

28、,g,dp”的同名端连在一起,位选通由各自独立的 i/o 线控 制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数 码管会显示出字形,取决于单片机对位选通控制,所以我们只要将需要显示的数码 管的选通控制打开,该位就显示出字形。 图 3-9 单片机与数码管连接电路 3.43.4 水位检测模块水位检测模块 水位检测模块中需要水位传感器将水位的变化信号传递给单片机,通过单片机 来控制电磁阀上水还是不上水14。由于各种原因,本设计用滑动变阻器来代替水位 检测器,通过阻值的变化来形象的代替水位的变化。因为阻值的变化是模拟信号, 而输入单片机的信号是数字信号,因此就要用到 a/d 转

29、换,将模拟信号转换为数字 信号输入到单片机中,实现水位的控制。 3 3. .4 4. .1 1 a a/ /d d 转转换换 a ad dc c0 08 83 32 2 转转换换器器 adc0832 引脚图(图 3-10)adc0832 国家半导体公司生产的一种 8 位分辨率 a/d 转换芯片,其最高分辨可达 256 级,可以适应一般的模拟量转换要求。其内部电源 输入与参考电压的复用,使得芯片的模拟电压输入在 05v 之间。芯片转换时间仅为 32s,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能 强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过 di 数

30、据输入端,可以轻易的实现通道功能的选择。 adc0832 具有以下特点: 8 位分辨率; 双通道 a/d 转换; 输入输出电平与 ttl/cmos 相兼容; 5v 电源供电时输入电压在 05v 之间; 工作频率为 250khz,转换时间为 32s; 一般功耗仅为 15mw; 8p、14pdip(双列直插)、picc 多种封装; 商用级芯片温宽为 0c to +70c,工业级芯片温宽为40c to +85c; 图 3-10 adc0832 引脚 芯片各引脚说明: 1) cs_ 片选使能,低电平芯片使能。 2) ch0 模拟输入通道 0,或作为 in+/-使用。 3) ch1 模拟输入通道 1,或

31、作为 in+/-使用。 4) gnd 芯片参考 0 电位(地) 。 5) di 数据信号输入,选择通道控制。 6) do 数据信号输出,转换数据输出。 7) clk 芯片时钟输入。 8) vcc/ref 电源输入及参考电压输入(复用) 。 3.4.23.4.2 lm339lm339 放大器放大器 lm339 类似于增益不可调的运算放大器。每个比较器有两个输入端和一个输出端。 两个输入端一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-” 表示。用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为 门限电平,它可选择 lm339 输入共模范围的任何一点),另一端加一个待

32、比较的信 号电压。当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。当“-” 端电压高于“+”端时,输出管饱和,相当于输出端接低电位。两个输入端电压差别 大于 10mv 就能确保输出能从一种状态可靠地转换到另一种状态,因此,把 lm339 用 在弱信号检测等场合是比较理想的。 3.4.33.4.3 水位接口电路水位接口电路 力学传感器的种类繁多,如电阻应变片压力传感器、半导体应变片压力传感器、 电感式压力传感器、压阻式压力传感器、电容式压力传感器、谐振式压力传感器及 电容式加速度传感器等。但应用最为广泛的是压阻式压力传感器,它具有极低的价 格和较高的精度以及较好的线性特性。其工作原理

33、是传感器的压力直接作用在传感 器的膜片上,使膜片产生与介质压力成正比的微位移,使传感器的电阻发生变化, 用电子线路检测这一变化,并转换输出一个对应于这个压力的标准信号。在水箱的 最底部安装压力传感器,水位的不同,传感器检测到的压力值就不同,采集到的模 拟量信号经过处理和计算,就能换算成水位的高低,经过单片机显示3。 水位传感器 r2 输出的信号为模拟信号,由于输出量微弱,要经过 lm339 放大器 的放大转化为 05v 的电压信号,才能送入 adc0832 中进行转换,输出为串行数字 数据,送入单片机 89s52 处理。由于在仿真软件中无法对真实水位进行仿真。所以 本设计用一个滑动变阻器 r2

34、 来代替水位传感器,阻值的变化代表水位的变化。水位 接口电路如图 3-11 所示14。 gnd do clk ch1 ch0 vcc/ref adc0832 gnd +5v 10k gnd +5v p2.1 p2.2 p2.3 12 3 lm339 图 3-11 水位接口电路 3.53.5 电磁阀控制模块电磁阀控制模块 电磁阀是用来控制流体的自动化基础元件,属于执行器;并不限于液压,气动。 电磁阀包括:线圈、磁铁和顶杆。 当线圈通电时,便产生磁性,跟磁铁相互吸引,磁铁就会拉动顶杆。关闭电源, 磁铁和顶杆就复位了,这样电磁阀就完成了作功过程。这就是电磁阀的工作原理。 电磁阀一般用于液压系统,来关

35、闭和开通油路。实际上,根据流过介质的温度, 压力等情况,比如管道有压力和自流状态无压力。电磁阀的工作原理是不同的。 比如在自流状态下需要零压启动的,就是通电后,线圈整个把闸体吸起来。 而 有压力状态的电磁阀,则是线圈通电后吸出插在闸体上的一个销子,用流体自身的 压力把闸体顶起来。 这两种方式的不同之处是,自流状态的电磁阀,因为线圈要吸起整个闸体,所 以体积较大,而带压状态的电磁阀,只需要吸起销子,所以体积可以做得比较小。 本设计的电磁阀起控制是否上水,其电路如图 3-12 所示7。在系统中用晶体 管来驱动电磁阀,当晶体管基极输入高电平时,晶体管饱和导通,集电极变为低电 平,因此电磁阀闭合,开始

36、工作;当晶体管基极输入低电平时,晶体管截止,电磁 阀断开,停止工作。其中二极管并联在线圈的两端,起保护作用。后接发光二极管, 显示电磁阀是否工作。 由于实际做实物中的各种原因,本设计用发光二极管来代替电磁阀的工作状态, 灯亮就表明电磁阀打开,水箱上水中;灯灭就表明电磁阀关闭,水箱停止上水。 图 3-12 电磁阀控制电路 3.63.6 整体电路图整体电路图 根据系统的各模块电路而设计的整体电路如图 3-13 所示: 图 3-13 系统整体电路图 4 4 系统软件设计系统软件设计 主程序设计思想:软件采用模块化设计方式,将各个功能分成独立模块,有系 统和监控程序一起管理执行。本设计的软件包括主程序

37、,显示子程序,水位值设定 子程序以及有关的 ds18b20 的程序。 主程序完成功能:系统对传感器 ds18b20、显示器 12864 进行初始化,并且读 取设置的水位信息,随之系统自动读取当前水位并将当前水位与设置的水位进行比 较,最后系统执行相应功能,完成后等待下一次的启动命令。当检测到水位低于设 置水位时,系统会自动上水至最大设置水位。程序清单见附录 1 本设计的系统整体流程图如图 4-1 所示: 图 4-1 系统总体流程图 4.14.1 ds18b20ds18b20 工作过程及时序工作过程及时序 ds18b20工作过程中的协议如下: 1. 初始化 单总线上的所有处理均从初始化开始。 2

38、. rom 操作指令 主机检测到 ds18b20 的存在,便可以发出 rom 操作命令之一,这些命令如指令 代码 read rom(读 rom) 33h match rom(匹配 rom) 55h skip rom(跳过 rom cch search rom(搜索 rom) f0h alarm search(告警搜索) ech 3. 存储器操作命令 指令 代码 write scratchpad(写暂存存储器) 4eh read scratchpad(读暂存存储器) beh copy scratchpad(复制暂存存储器) 48h convert temperature(温度变换) 44h re

39、call eprom(重新调出) b8h read power supply(读电源) b4h 4. 时序 主机使用时间隙(time slots)来读写 dsl820 的数据位和写命令字的位9。 (1)初始化 时序见图 4-2 主机总线 to 时刻发送一个复位脉冲(最短为 480us 的低电平信号), 接着在 tl 时刻释放总线并进入接收状态,dsl8b20 在检测到总线的上升沿之后,等 待 15-60us 接着 ds1820 在 t2 时刻发出存在脉冲(低电平持续 60-240 us)如图中虚 线所示 图 42 初始化时序图 (2)写时间隙 当主机总线 to 时刻从高拉至低电平时就产生写时间

40、隙见图,从 to 时刻开始 15us 之内应将所需写的位送到总线上 dsl8b20 在 t 后 15-60us 间对总线采样若低电 平写入的位是 0 见图,若高电平写入的位是 1 见图,连续写 2 位间的间隙应大于 1us。 图 43 写 0 时序图 图 44 写 1 时序图 (3)读时间隙 主机总线 to 时刻从高拉至低电平时,总线只须保持低电平 l 7ts,之后在 t1 时刻将总线拉高,产生读时间隙,读时间隙在 t1 时刻后 t2 时刻前有效。t2 距 to 为 15u,s 也就是说,t2 时刻前主机必须完成读位,并在 to 后的 60us 一 120 us 内 释放总线。读位子程序(读得

41、的位到 c 中)10。 图 4-5 读时序图 5.ds18b20 工作流程图 开 始 ds18b2 0 复位 读取温 度 数据转 换 显示 结 束 图 4-6 ds18b20 工作流程图 4.24.2 串行串行 adad 转换器转换器 adc0832adc0832 程序设计程序设计 adc0832 有 8 只引脚,ch0 和 ch1 为模拟输入端,cs 为片选引脚,只有 cs 置 0 才能对 adc0832 进行配置和启动转换。clk 为 adc0832 的时钟输入端。cs 在整个转 换过程中都必须为低,当 cs 为低时,在数据输入端 di(数据输入端)加一个高电 平(这个高电平是算在送到 d

42、i 的一位之中,那么后面就只要再送两位。这个高电平 是作为起始标志) ,接着在 clk 上加一个时钟,di 上的逻辑 1 就会使 adc0832 的 di 脱离高阻态,然后通道配置数据伴随着时钟通过 di 端移入多路器,当最后一位数据 移入多路器时(数据是三位,前一位标志输入开始,后两位是用来作通道设置和选 择) ,di 变为高阻态,在这以前 do(数据输出端)都为高阻态(就是 cs 从高跳到低 到现在) 。在经过一个时钟(是指在最后一个数据从 di 移入后,还要再经过一个时 钟,当最后一位数据移入 di,需要再加一个时钟使 do 脱离高阻态) ,do 脱离高阻状 态并启动转换。接着从处理器接

43、收时钟信号,每经过一个时钟,转换后的数据就会 从高位到低位逐次从 do 移出,经过 8 个时钟后,数据又以从低位到高位的形式从 do 移出(也是每个时钟移一位) 。当最后一位数据移出时转换完成。当 cs 从低变为 高时,adc0832 内部所有寄存器清零。如想要进行下一次转换,cs 必须做一个从高 到低的跳变,后跟着地此配置数据重复上面的过程6。 根据上述 adc0832 的相关转换时序,进行单片机和 adc0832 的连接时,因为 di 和 do 并不是同时使用,所以 di 和 do 可以共用单片机的一条 i/o 线,再加上一条时 钟线和一条片选线就可以实现单片机和 adc0832 的连接,

44、流程图如图 47 所示。 开始 结束 使能芯片 产生时钟信号 输入通道控制字 读取两字节数据 字节数据校验 数值送入指定寄存器 图 47 adc0832 工作流程图 4.34.3 ledled 数码管显示程序设计数码管显示程序设计 将所得到的结果用 led 数码管显示出来,给人直观的了解当前系统的状态,数 码管要显示当前系统的值,就要有一定的端口往数码管送入数据,还要有点亮数码管 的信号为,我们要将 09 这十个数字的码字定义成一个数组14,通过检验输出的 数据查断码表,就能显示相应的数字。 表 4-1 7 段 led 的字型码 显 示字符 共阳极 字型码 共阴极 字型码 显示字 符 共阳极

45、字型码 共阴极 字型码 03fhc0h56dh92h 106hf9h67dh82h 25bha4h707hf8h 34fhb0h87fh80h 466h99h96fh90h 由于在硬件电路中,是将 p0 口和数码管的段码位相连,位选信号 p2 口与数码 管亮灭有关,掌握着是哪个数码管亮,接下来程序就要定义相关端口: (1)定义字位和字型口 #define sled_dm_port p0 /*定义数码管段码的控制脚*/ #define sled_wm_port p2 /*定义数码管位码的控制脚*/ (2)定义字型编码表(数字 09) uchar code du_char=0 xc0,0 xf9,

46、0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,; (3)显示:得到字型和字位口的地址后,向不同的字位送数据,进行显示。 (4)动态扫描:由于使用动态显示法,在 led 显示程序中,需要不停地进行扫 描字位口,从而实现不同字位的数据的动态扫描结果。 开始 显示缓冲区初始化 指定字型口 查表得到字型码 送指定字位码 延时10ms 图 411 led 显示程序流程图 5 5 系统硬件调试系统硬件调试 硬件电路设计中我用到了 2 个 7 段数码管,其中 led1 表示温度显示,led2 表 示水位显示。要对电路进行仿真,一方面要用 protus 画出总

47、电路图,另一方面要用 keil 软件对程序进行编译,使程序生成.hex 文件,再把.hex 文件传送到 protus 电 路图中的 at89c52 单片机中,点击 protus“调试”按钮中的“执行” ,就开始仿真。 由于各方面条件有限,在用仿真时,我用发光二级管来模拟电磁阀,用滑动变阻器 来模拟水位的变化。发光二级管变亮表示电磁阀打开,表示水箱上水;发光二级管 变暗表示电磁阀关闭,表示水箱停止上水。 5.15.1 温度显示仿真温度显示仿真 仿真结果表明,显示的温度和数字温度传感器 ds18b20 上显示的数据相同,表 明程序将温度传感器 ds18b20 中的温度数据正确的读出,达到了读取温度

48、和显示温 度的目的。 图 5-1 当前温度显示 图5-2 当前温度显示 5.25.2 水位显示仿真水位显示仿真 水位显示是将传感器检测到的 05v 模拟信号经过 adc0832 转换成为 8 为二进 制数(0255) ,经过计算让水位显示在 0100 之间,通过单片机的处理让数据显 示在 led 数码管上。当调节滑动变阻器时,可看到显示器上显示水位在不断变化, 从最低变到最高,即表示系统可正常显示水位的变化。 图 5-3 当前水位显示 图 5-4 当前水位显示 5.35.3 水位控制仿真水位控制仿真 水位控制就是实现自动上水,保持水箱中一直有水,自动上水功能的实现就要 设定控制水位的上限和下限

49、,当水位低于 20时,开关就会闭合,合向左边启动电 机上水,同时发光二级管变亮。而当水位高于 90时,开关就会断开,合向右边关 闭电机上水,发光二级管变暗,停止上水。达到自动控制水位的功能。控制仿真结 果如下图所示: 图5-5 当前水位高于设定水位 图5-6 当前水位低于设定水位 5.45.4 仿真结果分析仿真结果分析 根据仿真结构来看,硬件和软件都基本达到了设计要求,实现了通过数字温度 传感器检测当前水的温度,通过单片机的处理在 led 数码管上显示当前的温度值。 水压传感器输出的是 05v 的模拟量,经过 a/d 转换成为数字量送入单片机进行处 理,在 led 数码管上显示水位值。自动上水

50、是设置水位的上下限,水位小于下限时 就会闭合电磁开关,就会开始上水,水位到达上线时就会自动断开电磁开关,停止 上水。 6 6 结论与展望结论与展望 本课题基本上实现了太阳能热水器控制系统显示功能:对测量的温度和水位进 行跟踪显示,并对水位的调节实现了自动控制。但由于时间和能力等各方面的原因, 设计结果与预期目标有一定差距。在预期目标中,温度控制采用模糊控制,用键盘 对温度进行设定,当由于天气原因而光强不足时,温度控制器可以利用辅助加热装 置使蓄水箱内的水温在设定时间达到预先设定的温度,从而达到 24 小时供应热水的 目的。但是在实际设计中,没有采用键盘设定温度功能,从而不能达到对温度进行 控制

51、,这是本次设计中的缺陷,也是本次设计中的遗憾之处。但本设计也可进一步 改进,提高系统的功能,例如: (1)加热控制功能。冬天可以使用,定时加热、温控加热等。 (2) 温控上水。水箱水温超过设定温度而水箱未满时,自动进行上水,直到 水温降到设定水温或水箱水满时停止上水。 虽然本次设计并没有达到预期的完美效果,但最基本的要求还是达到了,最重 要的是在本次设计的过程中,我真正的学到了那些本该在课堂上学到却因自己的不 努力而没学到的知识和一些课外知识,锻炼了自己的动手能力、独立思考的能力以 及解决问题的能力,所以虽然存在缺陷和遗憾,我依然感觉自己收获颇丰,我相信 在以后的学习中我一定会表现的更加出色,

52、设计出更加完美的作品。 致致 谢谢 通过几个月的亲手实践,查阅资料,我所做的毕业设计任务顺利完成。在此过 程中,我学到了做任何事情自己都要认真对待,不能马虎,要有始有终。在自己有 困难的时候请求老师和同学的帮助,在老师和同学的帮助下,自己克服了毕业设计 中遇到的一些困难。通过这次毕业实际人认清了自己,但是没有老师和同学的帮助, 我想我也难以完成这次的毕业设计任务,因此我要感谢那些在我困难时对我知识和 精神上帮助的朋友、老师和同学们,我的生活因你们而精彩和充实。 首先,刘宏章老师以渊博的知识教诲我、严谨的治学态度督促我、踏实的专研 精神感染我,使我学习到更多的专业知识和懂得更多的人生道理,这些都

53、将会在以 后的学习工作中让我受益匪浅。老师的帮助是最重要的,刘老师经常提醒我要好好 做,不会就去找他,他那种认真让我感到倾佩,非常感谢刘老师的谆谆教诲。 其次,在此过程中,同窗好友相互支持、相互抚慰、情同手足,我的舍友也给 了我很大的支持,我在碰到问题解决不了时,就觉得烦躁,他们就过来帮我解决问 题,有时一个问题要花好长时间来解决,他们都一直认真的帮助我,使我非常感激 有这么一些好舍友。 最后,衷心感谢所有老师对我的栽培、支持和鼓励,感谢所有朋友的关心和帮 助。向在百忙中抽出时间来帮助我,没有他们的帮助和支持,完成毕业设计任务就 是一个很大的难题,就不能这么顺利完成。 参考文献参考文献 1沙占

54、友,王彦朋,孟志永等.单片机外围电路设计m.北京:电子工业出版社,2003. 2胡乾斌,李光斌,李玲等.单片机微型计算机原理与应用m.武汉:华中科技大学出版社, 2005. 3康华光主编.电子技术基础模拟部分m.第四版.北京:高等教育出版社,1999. 4曹汉芳主编.数字电路与逻辑设计m.第四版.武汉:华中科技大学出版社,2004. 5蔺金元,车进单片机智能控制在太阳能热水器中的应用j 河西学院学报第 25 卷第 2 期.2009:2123 6杨新华,郝晓弘,邵辉基于 89c51 智能型太阳热水器的控制系统j甘肃科学学 报.2001(9):8891 7王俊杰基于 89c51 单片机的太阳能热水

55、器智能控制器的设计j 郑州轻工业学院 学报( 自然科学版) 第 20 卷第 3 期.2005:6768 8梅丽凤,王艳秋等.单片机原理及接口技术m.北京:清华大学出版社,2004. 9陈明荧.8051 单片机课程设计实例教材m.北京:清华大学出版社,2007. 10张景文,王震宏.基于单片机的太阳能热水器智能控制系统j. 西华大学学报( 自 然科学版) 第 27 卷第 5 期.2008.2528 11蔡美琴等.mcs-51 系列单片机系统及其应用m.北京:高等教育出版社,1992. 12殷为民.太阳能水温水位仪j .家用电子. 1999 : 372381 13邹灿,红李斌. 太阳能热水器智能控

56、制系统j.电子科学.4243 14齐剑玲,曾玉红. 智能水位控制系统j. 海淀走读大学学报 2003 年第一期. 2003:8791 15张学峰.基于单片机控制的太阳能热水器全自动电路j. 现代电子技术 2005 年第 4 期总第 195 期.2005:57 16陈柄和.c 语言与 c+语言程序设计m.北京:北京航空航天大学出版社,2004. 附录附录 系统总原理图系统总原理图 附录附录 系统源程序系统源程序 #include #include #define uint unsigned int #define uchar unsigned char #define sled_ad_port

57、p0 #define sled_wd_port p1 #define sled_dm_port p1 #define sled_wm_port p2 sbit dq =p35; sbit adcs =p32; sbit adclk =p33; sbit addi =p34; sbit addo =p34; sbit kai=p30; uchar code du_char=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,; uchar code we_table=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80; uchar data sled_data8=0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff,0 xff; uchar data led_lighten_bit=0 ; void delay_1ms(uchar z) uchar x,y; for(x=z;x0;x-) for(y=110;

温馨提示

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

评论

0/150

提交评论