基于89C51单片机太阳能水温水位控制系统.._第1页
基于89C51单片机太阳能水温水位控制系统.._第2页
基于89C51单片机太阳能水温水位控制系统.._第3页
基于89C51单片机太阳能水温水位控制系统.._第4页
基于89C51单片机太阳能水温水位控制系统.._第5页
已阅读5页,还剩37页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、本温度设计采用现常见的89C51单片机,配以DS18B20数字温度 传感器,该温度传感器可自行设置温度上下限。 单片机将检测到的温度 信号与输入的温度上、下限进行比较,由此作出判断是否启动继电器以 开启设备。系统包括单片机模块、温度检测模块、水位检测模块和驱动 电路设计四个部分。文中对每个部分功能、实现过程作了详细介绍。关键词:DS18B20数字温度传感器 89C51水温水位目录一. 概述31.1课题研究的目的及意义31.2技术指标3二. 总体设计方案3三. 详细设计方案41.1温度检测系统41.2水位检测系统6四. 元件说明61.1工作原理61.2单片机的选择71.3温度传感器91.4水位传

2、感器121.5显示元件13五. 硬件模块设计 151.1单片机模块设计151.2温度检测模块161.3水位检测模块 171.4控制模块191.5驱动电路设计20六. 软件设计201.2温度检测系统211.3水位检测系统221.4 DS18B20 主程序25七. 结论25八. 参考文献25附 录26单片机与显示器件连接图27系统软件源代码27一. 概述1.1课题研究的目的及意义目前市场上太阳能热水器的控制系统大多存在功能单一、操作复杂、控制不方 便登问题,很多控制器只具有温度和水位显示功能,不具有温度控制功能。即使热 水器具有辅助加热功能,也可能由于加热时间不能控制而产生过烧, 从而浪费电能。

3、鉴于此,我以89C51单片机为检测控制核心,采用 LED12864显示温度和时间,设 计了一种太阳能热水器微控制器,不仅实现了时间、温度和水位参数的实时显示, 而且具有时间设定、温度设定、水位设定与控制功能,停电后再来电时也不用重新 设定。1.2技术指标设计并制作一个基于单片机的温度控制系统,能够对炉温进行控制。炉温可以在一定范围内由人工设定,并能在炉温变化时实现自动控制。 若测量值高于温度设 定范围,由单片机发出控制信号,经过驱动电路使加热器停止工作。当温度低于设 定值时,单片机发出一个控制信号,启动加热器。通过继电器的反复开启和关闭, 使炉温保持在设定的温度范围内。温度设定范围为099C,

4、最小区分度为C,温度控制的误差W 1C能够用数码管精确显示当前实际温度值按键控制:设置复位键、加一键、减一键二. 总体设计方案以89C51为主控制芯片,温度采集采用 DS18B20温度传感器,通过外围电路来 采集水位,用液晶LED12864显示当前的水位、水温和时间,并且通过键盘来输入 日期数据以及所需控制的水位水温。 并且当水温水位超于限制时启动报警系统。如图2.1总体设计方案图所示。温度补偿图2.1总体设计方案图.详细设计方案3.1总体结构设计方案一:测温电路的设计,可以使用 DS18B20温度传感器利用其感温效应, 在将随被测温度变化的电压或电流采集后,把采样得到的模拟信号送入ADC08

5、09进行A/D转换读入单片机进行A/D转换后,通过串行口输入,就可以用单片机进 行数据的处理,同时在显示电路上,就可以将被测温度显示出来。方案二:考虑使用温度传感器,结合单片机电路设计,采用一只DS18B20温度传感器,直接读取被测温度值,之后进行 A/D转换,依次完成设计要求。比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易 实现,故实际设计中拟采用方案二。在本系统的电路设计方框图如图 3.1.1.2所示,它由三部分组成:主控芯片89C51;数据显示部分;传感器部分。图3.1.1温度计电路总体设计方案(1) 控制部分采用传统的数字模似电路,功能可以实现,但电路复杂,温度误

6、差大,成本高,可靠性也比较差;于是我选择采用单片机 89C51控制,它结构简单,可以减少外围 电路的搭接,并且89C51使用方便,成本比较低,性能稳定,还可以控制各模块输 入输出。但是由于其不能直接进行模数转换,因此要做外围电路设计中加AD0809-H- UL心片。(2) 显示部分TC1602的液晶字符性显示器也适合运用于此控制系统当中的,并且功能特性也适用于此设计系统的功能要求。但我还希望此显示系统中能同时显示时间(年月 日),所以1602可能就显得力不从心了,于是我选择了液晶LED 12864,它的显示特性很适用此设计系统的功能要求,也不会造成资源浪费。(3) 传感器部分DS18B20温度

7、传感器是美国DALLAS导体公司最新推出的一种改进型智能温 度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。这一部分主 要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的 接口部分组成。数字温度传感器DS18B20把采集到的温度经数模转换后通过数据引 脚传到单片机的P1 口,单片机接受温度并存储。此部分只用到 DS18B20 AD0809 和单片机,硬件很简单。3.2水位检测系统对于水位进行控制的方式有很多,而应用较多的主要有3种,三种方式的实 现如下:方案一:简单的机械式控制方式。其常用形式有浮标式、电极式等,这种控制形式 的优点是结构简单,成本低廉

8、。存在问题是精度不高,不能进行数值显示,另外很容 易引起误动作,且只能单独控制,与计算机进行通信较难实现。方案二:利用单片机进行水位检测和控制,基于数字电路的全自动控制,其工作过 程是被测水位经过模拟信号采集模块进行采样,然后把采样得到的模拟信号送入 ADC0809进行A/D转换读入单片机,再由单片机进行处理,得出结果是否启动/停止控制电路执行信号以达到水位的控制,具体硬件流程框图入图321所示。图3.2.1方案二具体流程框图方案三:采用89C51单片机为核心控制器的电路。因为单片机电路结构简单成本 低廉、可靠性高,便于实现各个控制功能能很好的完成设计任务。水位检测由本设 计使用的RC充放电水

9、位传感器通过检测来实现水位的改变。 然后通过A/D转换把 信号输入到单片机,获得当前水位显示。综合以上三种方案,方案一和方案二由于缺少温度检测模块,而水温也是影响 太阳能热水器很重要的一方面:比如说水箱中水温度过高导致水沸腾这时候虽然水 所在刻度不是满的,实际上已经溢出,这样说来方案一和方案二的设计算不上智能。 方案三是在方案二的基础上完善和加强的,采用单片机键的双边通信,比起方案二 更加方便,也更加合理。四. 元件说明4.1工作原理本文阐述了基于单片机的水温水位控制系统的设计方法,此种方法是以89C51单片机为主控制单元,对水温水位参数进行控制,从而提高了电器的工作稳定性。 以DS18B2C

10、为温度传感器的对水温进行数据采集并实现温度控制。该控制系统还可以实时存储相关的温度数据以及水位高度并能记录当前的时间。为了实现功能本系统设计了相关的硬件电路和相关应用程序。 硬件电路主要包括89C51单片机最小系 统,测温电路、测水位电路、LCD12864液晶显示电路以及报警电路、键盘输入参 数等。系统程序主要包括主程序,读出温度子程序,计算温度子程序、水位显示子 程序、按键处理程序、12864液晶显示程序以及数据存储程序以及时间显示程序等4.2单片机的选择单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、 价格便宜等要求,本课题选择 89C51作为主控芯片。89C51是一种

11、带4K字节闪烁可编程可擦除只读存储器的低电压,高性能 CMOS8 位微处理器,俗称单片机。它是美国ATME公司的低电压,高性能CMOS位单片机。 89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦 除只读存储器可以反复擦除100次。该器件采用ATMEI高密度非易失存储器制造技 术制造,与工业标准的MCS-51旨令集和输出管脚相兼容。由于将多功能 8位CPU 和闪烁存储器组合在单个芯片中, ATMEL勺89C51是一种高效微控制器,89C2051 是它的一种精简版本。89C51单片机为很多嵌入式控制系统提供了一种灵活性高且 价廉的方案。实物图如图4.1.2所示。图4.

12、1.2所示实物图1.2.1主要特性:与MCS-51兼容4K字节可编程闪烁存储器寿命:1000写/擦循环 数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定(5)128*8 位内部 RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式(11)片内振荡器和时钟电路1.2.2管脚说明:VCC供电电压。GND接地。P0 口: P0 口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL门电流。当 P1 口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器, 它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码

13、输入口,当 FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1 口: P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲器能接收 输出4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用作输入,P1 口被外 部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASHS程和校验 时,P1 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可接收,输 出4个TTL门电流,当P2 口被写“ T时,其管脚被内部上拉电阻拉高,且作为输 入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上 拉的

14、缘故。P2 口当用于外部程序存储器或16位地址外部数据存储器进行存取时, P2 口输出地址的高八位。在给出地址“ 1”时,它利用内部上拉优势,当对外部八 位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口: P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出4个TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入, 由于外部下拉为低电平,P3 口将输出电流(ILL )这是由于上拉的缘故。P3 口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0

15、 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 (外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地 位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡

16、器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一 个ALE脉冲。如想禁止 ALE的输出可在SFR8E!地址上置0。此时,ALE只有在执 行MOV,MOV指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在 外部执行状态ALE禁止,置位无效。弓|脚图如下图 4.122所示F1. 0 E1VccPl. 1 Lz39J PO. o/adoFl E338FO.1/AB1Pl. 3 437P0. 2/AD2Pl. 4 r53BPO. 3/AD3Fl. 5 L635PD.4/iD4P1.& L734PO. 5/ADSPl. 7 e33P

17、O 6/AD6RESET 【932PO. 7/ADTEXD/P3.0 10311 EA/VddTXD/F3. 1 1130ALE/PROtIHT0/P3. 2 1229J PEEKIHT1/F3. 3 C1328F2.7/AD15T0/F8.4 1427P2.6/AD14T1/F3. 5 1526F2. 5/AB13WF3 & LIE25P2.4/AD12WF8- TIT241 P2.3/AE1LKULZ IS23P2. 2/1D10KTAL1 匚1922】P2. 1/AD9PDIPVee E2D21FZ 0/AD6图4.122 引1.3温度传感器美国Dallas半导体公司的数字化温度传感器

18、DS18B20是世界上第一片支持 一线总线接口的温度传感器,在其内部使用了在板(ON-B0ARD专利技术。1.3.1 DS18B20性能及结构DS18B2原理与特性本系统采用了 DS18B2单总线可编程温度传感器,来实现对 温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。首先先来介绍一 下DS18B20这块传感器的特性及其功能:DSI8B20的管脚及特点DS18B20可编程温 度传感器有3个管脚。内部结构主要由四部分组成:64位光刻ROM温度传感器、 非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20勺外形及管脚排列如下 图 4.131DA1LLA912 3E E E3 E

19、lNCDq-s引脚图说明DQ为樂字信号输入/输出端CJiD为电源地VDD为外按供电电鯨渝入湍图4.131 DS18B20的外形及管脚图GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3. O-5. 5 V。本文使用外部电源供电。主要特点有:1.用户可自设定报警上下限温度值。2.不需要外部组件,能 测量55+125C范围内的温度。3. 10C+85C范围内的测温准确度为 0. 5C 。 4.通过编程可实现912位的数字读数方式,可在至多 750 ms内将 温度转换成12位的数字,测温分辨率可达0. 062

20、5E 。 5.独特的单总线接口方 式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。6.测量结果直接输出数字温度信号,以一线总线串行传送给CPU同时可传送CRC校验码, 具有极强的抗干扰纠错能力。7.负压特性:电源极性接反时,芯片不会因发热而 烧毁,但不能正常工作。8. DS18B20支持多点组网功能,多个 DS18B2C可以并联 在唯一的三线上,实现组网多点测温。图4.1.3.2 DS18B20 内部功能模块1.3.2 DS18B20工作原理DS18B20勺读写时序和测温原理与DS1820相同,只是得到的温度值的位数因 分辨率不同DS18B20为9位12位A/D转换精度,而 DS1

21、820为9位A/D转换,虽 然我们采用了高精度的芯片,但在实际情况上由于技术问题比较难实现,而实际精 度此时温度寄存器中的数值即为所测温度。 斜率累加器用于补偿和修正测温过程中 的非线性,其输出用于修正计数器1的预置值。如下图的测温原理图不同,且温度 转换时的延时时间由2s减为750ms DS18B20测温原理如图4.1.3.3所示。图中低 温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数 器1。则高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器 2的脉冲输入。计数器1和温度寄存器被预置在-55C所对应的一个基数值时。计 数器1对低温度系数晶振产生的脉冲

22、信号进行减法计数,当计数器1的预置值减到 0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始 对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值。计数器谆止图4.133 DS18B20 原理图1.3.3 DS18B20使用中注意事项DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点, 但在实际应用中也应注意以下几方面的问题:较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对 DS18B20进行读写编程时,必须严格的保证读 写时序,否则将无法读取测温结果。在使用

23、PL/M、C等高级语言进行系统程序设计 时,对DS18B2C操作部分最好采用汇编语言实现。在DS18B20勺有关资料中均未提及单总线上所挂 DS18B2C数量问题,容 易使人误认为可以挂任意多个 DS18B20在实际应用中并非如此。当单总线上所挂 DS18B2C超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测 温系统设计时要加以注意。连接DS18B20勺总线电缆是有长度限制的。试验中,当采用普通信号电 缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带 屏蔽电缆时,正常通讯距离可达150m当采用每米绞合次数更多的双绞线带屏蔽 电缆时,正常通讯距离进一步加

24、长。这种情况主要是由总线分布电容使信号波形产 生畸变造成的。因此,在用DS18B2C进行长距离测温系统设计时要充分考虑总线分 布电容和阻抗匹配问题。在DS18B2C测温程序设计中,向DS18B2C发出温度转换命令后,程序要 等待DS18B20勺返回信号,一旦某个DS18B2C接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏蔽 4芯双绞线,其中一对线接地线与信号线,另一组接 VCC和地线,屏蔽层在源端单点接地。1.4水位传感器ADC0809是美国国家半导体公司生产的 CMO工艺8通道

25、,8位逐次逼近式A/D 模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号, 只选通8路模拟输入信号中的一个进行 A/D转换。目前仅在单片机初学应用设计中 较为常见。1.4.1 主要特性1)8路输入通道,8位A/D转换器,即分辨率为8位。2)具有转换起停控制端。3)转换时间为100卩s(时钟为640kHz时),130卩s (时钟为500kHz时)4)单个+5V电源供电5)模拟输入电压范围0+5V,不需零点和满刻度校准。6)工作温度范围为-40+85摄氏度7)低功耗,约15mW/1.4.2 内部结构ADC0809是 CMO单片型逐次逼近式A/D转换器,内部结构如图所示,它由

26、 8路模 拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、 逻辑控制和定时电路组成。外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。下面说明各引脚功 能。IN0IN7: 8路模拟量输入端。2-12-8 : 8位数字量输出端。ADDA ADDB ADDC 3位地址输入线,用于选通8路模拟输入中的一路ALE地址锁存允许信号,输入,高电平有效。START A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉 冲上升沿使0809复位,下降沿启动A/D转换)。EOC A/D转换结束信号,输出,当A/D转换结束时,此端输出一

27、个高电平(转换 期间一直为低电平)。OE数据输出允许信号,输入,高电平有效。当 A/D转换结束时,此端输入一个高 电平,才能打开输出三态门,输出数字量。CLK时钟脉冲输入端。要求时钟频率不高于 640KHZREF( +)、REF(-):基准电压。Vcc:电源,单一 +5V。GND 地。1.5显示元件TC1602的液晶字符性显示器也适合运用于此控制系统当中的,并且功能特性 也适用于此设计系统的功能要求。 但我还希望此显示系统中能同时显示时间(年月日),所以1602可能就显得力不从心了,于是我选择了液晶LED 12864,它的显示特性很适用此设计系统的功能要求,也不会造成资源浪费。表4.1.6液晶

28、12864管脚说明管脚符号功能1GND接地2VDD接入+5V电源电3 , 16, 18NC压4RS空5W / R高:数据(低:指6E令)7DB0 DB7高:读(低:写)8PSB使能端9RST数据线10LED+控制模式11LED-系统复位背光电源,+5V背光电源,0V12864液晶的具体指令介绍DR为数据寄存器:简称DR它们负责存储微机要写到 CGRA或DDRA的数据, 或者存储MCI要从CGRA或DDRA读出的数据。因此,可将 DR视为一个数据缓冲 区,当RS及R/W引脚信号为1且Enable引脚信号由1变为0时,读取数据;当 RS引脚信号为1,R/ W引脚信号为0且Enable引脚信号由1变

29、为0时,存入数据。AC为地址计数器:简称AC负责计数写/读CGRA或DDRAI的数据地址,AC 依照MCU寸LCD的设置值而自动修改它本身的内容。IR为指令寄存器:简称IR,负责存储MCI要写给LCD的指令码,当RS及 R/ W引脚信号为0且Enable引脚信号由1变为0时,D旷D7引脚上的数据便会存入 到IR寄存器中。BF为忙碌信号:简称BF,当BF为1时,不接收微机送来的数据或指令;当 BR为0时,接收外部数据或指令,所以,在写数据或指令到LCD之前,必须查看BF是否为0。只要把数据写到文本显示 RAh中,就能显示文本内容,具体流程如下:先设定 工作模式,接着信号的检测,再数据的传送。ST

30、7920的显示RAM中提供了 8个乘以4行的汉字空间, 当RAM1行写入显示 在文本时,CGROMHCGRC与CGRAI的字型就会显示出。ST7920A可以显示三种字 型,分别是显示半宽的HC-GRO字型、中文CGRAI字型和CGRAI字型,在DDRA中 写入编码来进行设定选择哪种字型,各个字型的详细编码如下:半宽字型显示:只将一位字节写入 DDRAI中,编码范围为02-7FH。显示中文字形:将两字节编码写入 DDRAM编码范围为A1A0H-F7FEH GB或 编码为 A140H-D75FH BIG5勺码。显示CGRAI字型:需两个字节的编码写入DDRA中来实现这种字型,总共有四 种编码方式它

31、们分别是 0000H 0002H 0004H 0006H液晶显示器与单片机连接基本要注意以下三点:1. 若以CMO芯片为单片机时不需要电平转换电路来转换;若其单片机为TTL芯片则必须配备电平转换电路。2. 模块读或者写控制线为单选,必须加读或者写信号转换电路(对读、写控制 线分开的单片机)。3. 对于模块确定的编码地址,应选择相对应的译码电路。本设计用的液晶4行汉字第一行为温度,第二行为水位,第三行、第四行空缺, 在GB2312编码中查询“温度”和“水位”的四个字得到的16位编码分别为:#CEC2 #B6C8 #CBAE#CEBB每个字的编码分为高8位和低8位,写入时先写入高8位,再写入低 8

32、位即可。五. 硬件模块设计1.1单片机模块设计控制模块是整个设计方案的核心,它控制了温度的采集、处理与显示、温度值 的设定与温度越限时控制电路的启动。本控制模块由单片机89C51及其外围电成,电路如图5.1.1所示。图5.1.1单片机控制模块电路R3751SW-PB+5VC51 OuFS2+ 5Vll1 11 41 81920U1RST VCCEAP3. 0/RXDP3. 1/TXDP0. 0P3. 4/T0 P0. 1P0. 2XTAL2XTAL1GND39383P0. 2AT89 S51该电路采用按键加上电复位,S2为复位按键,复位按键按下后,复位端通过 51 Q的小电阻与电源接通,迅速放

33、电,使RST引脚为高电平,复位按键弹起后,电源 通过8.2K Q的电阻对10 F的电容C5重新充电,RST引脚端出现复位正脉冲.AT89S51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲, 外部还需附加电路,本设计采用内部时钟方式,利用芯片内部的振荡器,然后在引脚 XTAL1和 XTAL2两端跨接晶体振荡器,就构成了稳定的自激振荡器,发出的脉冲直接 送入内部时钟电路,C6和C7的值通常选择为30pF左右,晶振丫1选择12MHz为了减 小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器电容应尽可能安装得与 单片机引脚XTAL1和 XTAL2靠近。单片机的31脚(EA接+5V电源

34、,表示允许使用片内ROM1.2温度检测模块温度由DALLAS公司生产的一线式数字温度传感器DS18B20采集。DS18B20测温范围为-55 C+125 C,测温分辨率可达 0.0625 C,被测温度用符号扩展 的16位补码形式串行输出。CPU只需一根端口线就能与诸多 DS18B20通信,占用 微处理器的端口较少,可节省大量的引线和逻辑电路。本设计采用三引脚PR-35封装的DS18B20,其引脚图见图5.1.2。Vcc接外部 +5V电源,GND接地,I/O与单片机的P3.4 (T0)引脚相连。U2VCCVCCDQ GNDPL0DS18B20图5.1.2温度传感器电路引脚图1.3水位检测模块1.

35、3.1传感器电路系统选用B2119压阻式压力传感器,压阻式压力传感器是利用单晶硅的 压阻效应制成的器件。这种传感器精度高、工作可靠,容易实现数字化,比应变式 压力传感器体积小而输出信号大。 它是目前压力测试中使用最多的一种传感器。压阻式压力传感器使用集成电路工艺技术, 在硅片上制造出四个等值的薄膜电阻, 并 组成电桥电路,当不受到压力作用时,电桥处于平衡状态,无电压输出;当受到压 力作用时,电桥失去平衡,电桥输出电压。电桥输出的电压与压力成正比例。其工 作原理图如5.131所示图5.1.3.1压阻式压力传感器原理图1.3.2时钟电路与复位电路要使单片机按照设计要求正常工作,完整单片机最基本的工

36、作要求,考虑到系统无需精确地定时功能,且为了方便串口通信波特率的计算,采用11.0592MHz的晶振提供系统时钟。并附加复位电路,组成单片机最小系统。复位操作有上电自动 复位和按键手动复位两种方式。我们采用上电自动复位,其是通过外部复位电路的 电容充电来实现的。其电路图如图2-16(a)所示。这样,只要电源Vcc的上升时间不 超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。关2个机器周期于参数的选定,在振荡稳定后应保证复位信号高电平持续时间大于 当采用的晶体频率为6 MHz时,可采用C=22F, R=1kQ;当采用的晶体频率为12MHz 时,可采用 C=10F, R=8

37、.2kQ。VccC89C51-10uFRSTr、R1L82K*1VssVcc(a)上电复位电路图2-16复位电路如果上述电路复位不仅要使单片机复位,而且还要使单片机的一些外围芯片也 同时复位,那么上述电阻、电容参考值应作少许调整。对于CMOS型的89C51,由于在RST端内部有一个下拉电阻,故可将外部电 阻去掉,而将外接电容减至1pFo1.3.3 A /D采集转换电路本系统A/D芯片所选用的是ADC0809该大规模集成电路芯片是一种由单一 +5V 电源供电,采用逐次逼近转换原理,能够对 8路0 +5V输入模拟电压进行分时转 换的八位并行通用型可编程模数转换器。ADC080抽单片机控制驱动,对传

38、感器进 行定式循环采集,然后单片机将各测量参数传至PC机,进行后台数据处理。电路连接如图5.1.3.3 o图5.133 A/D转换电路图1.3.4按键设计键盘在单片机应用系统中是一个很关键的部件,它能实现向单片机系统输入数 据、发送命令等功能,是人工干预单片机的主要手段。考虑到本设计实际需要的按 键较少,故采用独立式键盘接口电路。在程序查询方式下,通过I/O端口读入按键状态,当有按键按下时,相应的I/O端口变为低电平,而未被按下的按键在上拉电 阻作用下为高电平,这样通过读I/O 口的状态判断是否有按键按下。+ 5V1.4控制模块R3 91 K+5V统按键电路Q245231Rlt5 WK.Ell

39、 7 1OK.FtlSme?1DM.控制电路与单片机的P0.2 口相连, 三极管来驱动外围电路2三极!管选用 在单片机的P0.2 口输出高电平控制信号,制电路电路图如图5.1.4所示KL1:21-IHEK275ns* * -Hiv图5.1.4控制电路1R3 2机输出控制信号非常微弱,需要用勺9014:当检测温度低于设定温度时, 使三极管9014导通,使继电器两控制端 产生压差,从而使继电器吸合,常开触点接通,控制外部电路对锅炉进行加热。控1.5驱动电路设计在单片机控制系统中,需要用开关量去控制和驱动一些执行元件,如发光二极 管、继电器等。但89C51单片机驱动能力有限,且高电平比低电平驱动低。

40、一般情 况下,需要加驱动接口电路,且用低电平驱动。如图5. 1.5所示图5.1.5驱动电路六. 软件设计1.1系统软件设计整体思路程序设计语言有三种:机器语言、汇编语言和高级语言。机器语言是机器唯一 能“懂”的语言,用汇编语言或高级语言编写的程序(称为源程序)最终都必须翻 译成机器语言的程序(成为目标程序),计算机才能“看懂”,然后逐一执行。高级语言是面向问题和计算过程的语言, 它可通过于各种不同的计算机,用户 编程时不必仔细了解所用的计算机的具体性能与指令系统,而且语句的功能强,常常一个语句已相当于很多条计算机指令,于是用高级语言编制程序的速度比较快, 也便于学习和交流,但是本系统却选用了汇

41、编语言。原因在于,本系统是编制程序 工作量不大、规模较小的单片机微控制系统,使用汇编语言可以不用像高级语言那 样占用较多的存储空间,适合于存储容量较小的系统。同时,本系统对位处理要求很高,需要解决大量的逻辑控制问题1.2温度检测系统1.2.1系统流程图厂1开J1CPU初f参数是否V否采样V显示实时1数据处理子1r控制电机启图6.121系统流程图1.2.2程序编写程序的功能是:启动DS18B20测量温度,将测量值与给定值进行比较,若测 得温度小于设定值,则进入加热阶段,置P1.1为低电平,这期间继续对温度进行监测,直到温度在设定范围内,置 P1.1为高电平断开可控硅,关闭加热器,等待下一次的启动

42、命令。当测得温度大于设定值,则进入降温阶段,则置P1.2为低电平,这期间继续对温度进行监测,直到温度在设定范围内,置P1.2为高电平断开,关闭风扇,等待下一次的启动命令。WR1:CLR P1.0MOV R3,#6DJNZ R3,$RRC AMOV P1.0,CMOV R3,#23DJNZ R3,$SETB P1.0NOPDJNZ R2,WR1RET;读 DS18B21.3水位检测系统1.3.1系统主程序流程图系统主程序的功能主要是完成对单片机的初始化,设置警戒液位的上下限,实时显示液位值以及键盘扫描如图6.1.3.1所示图6.1.3.1主程序流程图1.3.2显示与A/D转换的数据处理系统中,显

43、示输出的要求为压缩BCD5,而A/D转换输入的数据是8位16进制码, 因此在实现显示之前需要编码的转换。对8位A/D转换器而言,其十六进制、相对满 偏电压比率、相对电压幅值的关系对应如表 6.1.3.2 :十六进制二进制满刻度比率相对电压幅值Vref=2.5V咼四位低四位咼四位电压低四位电压F111115/1615/2564.8000.320E111014/1614/2564.4800.280D110113/1613/2564.1600.260C110012/1612/2563.8400.240B101111/1611/2563.5200.220A101010/1610/2563.2000.2

44、00910019/169/2562.8800.180010008/168/2562.5600.160701117/167/2562.2400.140601106/166/2561.9200.120501015/165/2561.6000.100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011/161/2560.3200.020000000/160/2560.0000.000表6.1.3.2 A/D转换幅值数据关系对照表显示转换部分程序简略如下:uchar dis_tra nsform(u

45、char num) uchar ac, quotie nt, play, mid ;ac = nu m%5;quotie nt = (nu m-ac)/5;if(ac2)quotie nt+;ac=quotie nt%10;mid=(quotie nt-ac)/10;play=ac+mid*16;return play;1.3.3系统主程序ORG 0000HAJMP MAINORG 0060HMAIN: MOV P1, #FFH ;P1 P3口初始化置1MOV P3 #FFHJNB P1.3 , AVT;若手动在自动位置,跳到自动模式程序AJMP MEN;否则转到手动模式子程序ENDAUT N

46、OP (空命令)JNB P1.2 , LG;水位高一LGJB P1.1 LD ,;水位没低-LDCLR P3.1;水位低报警JB P1.0, LDD;水位未低低-LDDCLR P3.0;水位低低报警JNB 3.1 P1.6, Y1;M1已启动一Y1CLR P1.4;否则启动M1Y1:JNB P1.7,丫2;M2已启动-Y2CLR P1.5;否则启动M2Y2:ACALL DELAY;延时1分钟AJMP AUT ;返回自动模式LDD: JNB P1.6 ,Y3;单独运行 M1( LDD水位LD)CLR P1.4Y3:JBP1.7 Y2SETBP1.5AJMP Y2LG:CLR P3.2;水位咼报警

47、LD:AJMP MAIN ;返回主程序1.4 DS18B20 主程序#in clude#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit DQ=P3A7;/ds18b20 与单片机连接口sbit RS=P3A0;sbit RW=P3A1;sbit EN=P3A2;un sig ned char code str1=;un sig ned char code str2=;uchar fCode8;uchar data disdata5;uint tvalue;/温度值uchar tflag;/温度正负标志七. 结论本文详细

48、介绍了基于单片机89C51的温度控制系统的设计方案与软硬件实现。 系统包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五 个部分。文中对每个部分功能、实现过程作了详细介绍。完成了课题既定的任务, 达到了预期的目标。系统具有如下特点:.采用智能温度传感器DS18B20采集温度数据,简化了硬件电路设计,温度 采集数据更加精准;.89C51单片机的采用,有利于功能扩展;.电路设计充分考虑了系统可靠性和安全性。本课题软件和硬件相结合,有相当的难度,同时也有很大的实用性。八. 参考文献1 马忠梅.单片机的C语言应用程序设计M.北京:北京航空航天大学出版 社,19982 李晓荃.单片机原

49、理与应用M.北京:电子工业出版社,2000年8月3 何立民AVR单片机原理与接口技术M.北京:北京航空航天大学出版社,20024 杨帮文 新型继电器实用手册M.北京:北京人民邮电出版社.2004附录单片机与显示器件连接图系统软件源代码1dilHHPWQrpxD PU.-WTXIP pu炖JiW pw址云n S.i3 jpasnrn pu.HmF3 电二F3 电FZ7窑 s-IQNFI 丰迅#in elude #in elude vintrin s.h延迟子程序*#defi ne uchar un sig ned charuchar hostmark;uchar idatasec, min ,h

50、r,date,m on, day,year; uchar idatauplq,dow nlq, num m,prelq,xdat,key; uchar xdata * idata nu mtab; uchar xdata * idata xmark; uchar idata nu ml, nu m2; int tab;uchar bdata iodat; uchar bdata ddat; sbit iodat7=iodatA7; sbit ddat0=ddatA0;sbit SCLK=P1A0;sbit IO_DATA=P1A1;sbit RST=P1A2;sbit adRD=P1A3;sbit adWR=PM4;sbit E=P1A5;sbit DIS=P1A6;sbit RELAY=P1A7;yan shi()int i,j;for(i=0;i120;i+)for(j=0;j2)quotie nt+;ac=quotie nt%10;mid=(quotie nt-ac)/10; play=ac+mid*16; return play;液位显示*display()DIS=0;_nop_();_nop_();_nop_();_nop_();_nop_();P0=dis_tra nsform(prelq);_nop_();_

温馨提示

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

评论

0/150

提交评论