基于单片机水温控制系统_第1页
基于单片机水温控制系统_第2页
基于单片机水温控制系统_第3页
基于单片机水温控制系统_第4页
基于单片机水温控制系统_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、河南城建学院本科毕业设计(论文) 摘要 毕 业 设 计 论 文题 目: 基于单片机的自动水温控制系统 学 院: 电气与信息工程学院 专 业: 电子信息工程 姓 名: 学 号: 指导老师: 完成时间: 2013年5月20日 I河南城建学院本科毕业设计(论文) 摘要 摘要本文介绍了基于AT89C51单片机水温测量及控制系统的设计。系统硬件部分由单片机电路、温度采集电路、键盘电路、LED显示电路、继电器控制电路等组成。软件从设计思路、软件系统框图出发,逐一分析各模块程序算法的实现,通过C语言编写出满足任务需求的程序。本系统采用数字式温度传感器DS18B20作为温度传感器,简易实用,方便拓展。单片机以

2、此对水的温度进行有效检测与报警,并以此进行水温的控制。基于单片机水温控制系统采用多电源供电,降低了系统各个模块间的干扰,还保证了电源能为各部分提供足够的工作电流,提高系统的可靠性。关键词:水温控制 AT89C51 DS18B2011河南城建学院本科毕业设计(论文) ABSTRACT ABSTRACTThis paper introduces the water temperature measurement based on AT89C51 SCM and the design of control system. The system hardware part of microcomput

3、er circuit, temperature acquisition circuit, keyboard circuit, the LED display circuit, relay control circuit etc. Software from design idea, software system of block diagram, by analyzing the module program implementation of algorithm is, through the written in C language to meet the demand of the

4、task program. The system USES the digital temperature sensor DS18B20 as temperature sensor, simple, practical, and convenient development. SCM in order to the temperature of the water carries on the effective detection and alarm, and based on which the water temperature control. Water temperature co

5、ntrol system based on single chip by power supply, reduce the system between each module of the interference, ensures the power supply for the part provide enough work current,Keywords: Water temperature control AT89C51 DS18B20河南城建学院本科毕业设计(论文) 目录目录摘要IABSTRACTII前言IV1 绪论11.1水温控制系统设计的背景11.2水温控制系统设计的意义1

6、1.3水温控制系统完成的功能22 系统设计方案选择32.1单片机及水温控制方案32.2水温传感器方案32.3电源设计方案42.4控制系统总体设计43 硬件设计部分53.1单片机电路53.2温度检测电路83.3辅助直流稳压电源设计113.4其它部分硬件电路134 软件设计部分174.1程序设计方案174.2各模块子程序设计185 系统调试部分22结论23参考文献24致谢26附录27河南城建学院本科毕业设计(论文) 前言前言水温控制无论是在工业生产中,还是在日常生活中都起着非常重要的作用,过低的温度或过高的温度都会使水资源失去应有的作用,从而造成水资源的巨大浪费。为了保证生产过程正常安全地进行,提

7、高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对水温进监测、显示、控制,使之达到工艺标准,满足需要。由于电子行业的迅猛发展,计算机技术和传感器技术的不断改进,而且计算机和传感器的价格也日益降低,可靠性逐步提高,用信息技术来实现水温控制并提高控制的精确度不仅是可以达到的而且是容易实现的。其发展必将带来新一轮的工业化的革命和社会发展的飞跃。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机具有体积小、功耗低、编程灵活,控制简单、扩展功能强、微型化和使用方便等优点,结合不同类型的传感器,可实现诸多功能。用单片机可以构成形式多样的控制系统、数据采集系统。通过单

8、片机使系统能简单的实现温度的控制及显示,并且通过软件编程能实现各种控制算法使系统还具有控制精度高的特点。目前国内外各大电气公司,大的半导体厂商正在不断的开发、使用单片机,使其无论在控制能力,减小体积,降低成本,还是开发环境的改善等方面,都得到空前迅速的发展。本设计以AT89C51单片机系统进行温度采集与控制。温度信号由模拟温度传感器DS18B20采集输入AT89C51,利用温度传感器采集到当前的温度,通过AT89C51单片机进行控制,最后通过LED数码管以串行口传送数据实现温度显示。可以通过按键任意设定一个恒定的温度。将水环境数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加

9、热;当水温高于设定温度时,停止加热,从而实现对水温的自动控制。当系统出现故障,超出控制温度范围时,自动蜂鸣报警。用单片机控制水温可以在一定范围内设定,并能在环境温度变化时保持温度不变。河南城建学院本科毕业设计(论文) 绪论 1 绪论1.1水温控制系统设计的背景测量控制的作用是从生产现场中获取各种参数,运用科学计算的方法,综合各种先进技术,使每个生产环节都能够得到有效的控制,不但保证了生产的规范化、提高产品质量、降低成本,还确保了生产安全。所以,测量控制技术已经被广泛应用于炼油、化工、冶金、电力、电子、轻工和纺织等行业。单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等优势,在过程控制

10、、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到了广泛的应用,特别是单片机技术的开发与应用,标志着计算机发展史上又一个新的里程碑。作为计算机两大发展方向之一的单片机,以面向对象的实时控制为己任,嵌入到如家用电器、汽车、机器人、仪器仪表等设备中,使其智能化。水温检测控制系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。在工业生产过程中,很多时候都需要对水温进行严格的监控,以使得生产能够顺利的进行,产品的质量才能够得到充分的保证。使用水温控制系统可以对生产环境的温度进行有效控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。水温控制系统应用十分广阔

11、。1.2水温控制系统设计的意义随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。温度测试控制系统,控制对象是温度。温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。特别是近年来,温度控制系统已应用到人们生活的各个方面,温度控制的开发与人们工作生活息息相关。水是一种我们赖以生存的重要资

12、源,无论是在工农业生产还是我们的日常生活处处离不开水。控制水的温度可以极大提高生产效率,节约资源,提升我们的生活质量。在水资源日益匮乏的今天,拥有并推广简易完善的水温控制系统对于我们社会的可持续发展,有着极大的实际意义。1.3水温控制系统完成的功能本器件以AT89C51单片机系统进行温度采集与控制温度信号由模拟温度传感器DS18B20采集输入AT89C51,主控器能对各温度检测器通过LED进行显示。1、本机实现的功能:(1)利用温度传感器采集到当前的温度,通过AT89C51单片机进行控制,最后通过LED数码管以串行口传送数据实现温度显示。(2)可以通过按键任意设定一个恒定的温度。(3)将水环境

13、数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热,从而实现对水温的自动控制。(4)当系统出现故障,超出控制温度范围时,自动蜂鸣报警。2、基本设计参数要求有:一升水由800W的电热设备加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。(1)温度测量范围:2060,最小区分度不大于0.1。(2)控制精度在0.5以内,温度控制的静态误差小于1。(3)用十进制数码管显示实际水温。3、扩展功能:(1)具有通信能力,可接收其他数据设备发来的命令,或将结果传送到其他数据设备。(2)采用适当的控制方法实现

14、当设定温度或环境温度突变时,减小系统的调节时间和超调量。(3)温度控制的静态误差。河南城建学院本科毕业设计(论文) 系统设计方案选择2 系统设计方案选择2.1单片机及水温控制 建立单片机水温控制系统可以采用AT89C51作为控制核心,以使用最为普遍的器件ADC0804作模数转换,控制上使用对电阻丝加电使其升温。此方案简易可行,器件的价格便宜。但AT89C51内部没有程序存储器,需要扩展,增加了电路的复杂性。但此方案在硬件、软件上的成本都比较高,而且易受外部环境的影响和限制,系统工作相对不稳定。单片机种类繁多,经过比较。此次设计方案采用AT89C51单片机实现,该单片机软件编程自由度大,可用编程

15、实现各种控制算法和逻辑控制。进行数据转换,控制电路部分采用继电器控制,此方案电路简单并且可以满足题目中的各项要求的数据。2.2水温传感器水温传感器可以采用极为普遍的晶体管3DG6作为温度传感器,廉价的电压/频率转换器(V/F)LM331与AT89C51单片机组成的温度测量仪。但抗干扰性差,数据处理复杂,数据存放空间大,受市场限制。设计中广泛采用热电阻传感器,铂电阻温度传感器是利用其电阻和温度成一定函数关系而制成的温度传感器,由于其测量准确度高、测量范围大、稳定性好等特点,被广泛用于中温(-200+650)范围的温度测量中。但铂电阻的电阻值与温度成非线性关系,所以需要进行非线性较正。校正分为模拟

16、电路校正和微处理器数字化校正,模拟校正有很多现成的电路,其精度不高且易受温漂等干扰因素影响,数字化校正则需要在微处理系统中使用,将Pt电阻的电阻值和温度对应起来后存入EEPROM中,根据电路中实测的AD值以查表方式计算相应温度值。采用数字可编程温度传感器DS18B20作为温度检测元件。数字可编程温度传感器可以直接读出被测温度值。不需要将温度传感器的输出信号接到A/D转换器上,减少了系统的硬件电路的成本和整个系统的体积进行数据转换,控制电路部分采用继电器控制,此方案电路简单并且可以满足题目中的各项要求的数据。由于采用具有一总线特点的温度传感器,所以电路连接简单;而且该传感器拥有强大的通信协议,同

17、过几个简单的操作就可以实现传感器与单片机的交互,包括复位传感器、对传感器读写数据、对传感器写命令。软件、硬件易于调试,制作成本较低。也使得系统所测结果精度大大提高。综合多方考虑,经过对各种温度传单器的比较,本设计决定采用DS18B20建立温度检测电路。2.3电源设计采用单一电源供电,各个部分很可能造成干扰,系统无法正确工作,还可能因为负载过大,电源无法提供足够的工作电流。特别是压机启动瞬间电流很大,而且逆变电路负载电流波动较大会造成电压不稳,有毛刺等干扰,严重时可能造成弱电部分电路掉电。所以采用双电源,即电源负载驱动电路等强电部分用一个电源,数字电路等弱电部分用一个电源。但是电路间还是可能会产

18、生干扰,造成系统不正常,而且还可能会对单片机的工作产生干扰,影响单片机的正常工作。最终我们采用多电源供电方式,即对数字电路、驱动电路分别供电,这种方案即降低了系统各个模块间的干扰,还保证了电源能为各部分提供足够的工作电流,提高系统的可靠性。2.4控制系统总体设计本次设计采用采样值和键盘设定值进行比较运算的方法来简单精确地控制温度。先通过键盘输入设定温度,保存在AT89C51单片机的指定单元中,再利用温度传感器DS18B20进行信号的采集,送入单片机中,保存在采样值单元。然后把采样值与设定值进行比较运算,得出控制量,从而调节继电器触发端的通断,来实现将水温控制在一定的范围内。当水温超出单片机预存

19、温度时,蜂鸣器进行报警。单片机控制系统是一个完整的智能化的集数据采集、显示、处理、控制于一体的系统。由传感器、LED显示单片机及执行机构控制部分等组成。系统结构框图如图1所示:DS18B20温度传感器LED显示指示灯蜂鸣器AT89C51单片机加热继电器按键图1 系统结构框图河南城建学院本科毕业设计(论文) 硬件设计部分3 硬件设计部分3.1单片机电路本设计采用的AT89C51是一种低功耗、高性能CMOS8位微控制器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上8K字节Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8

20、位CPU和在系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C51单片机主要功能特点有:与MCS-51单片机产品兼容;8K字节在系统可编程Flash存储器;256字节RAM;1000次擦写周期;全静态操作:三级加密程序存储器;32位可编程I/O口线;双数据指针;三个16位定时器/计数器;八个中断源(一个6向量2级中断结构);全双工UART串行通道;片内晶振及时钟电路;看门狗定时器;掉电标识符;0Hz33Hz,AT89C51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、

21、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止,掉电后中断可唤醒。3.1.1 AT89C51引脚功能图2 AT89S52单片机引脚结构示意图VCC:电源(+5V)。GND:地。P0口:本次设计中P0口与P2口共同实现LED显示功能。P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序

22、校验时,需要外部上拉电阻。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P1口:本次设计P1口中P1

23、.0将用于控制继电器;P1.1和P1.4用于报警系统。P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。P1口第二功能有:P1.0:T2(定时器/计数器T2的外部计数输入,时钟输出)P1.1:T2EX(定时器/计数器T2的捕捉/重载触发信号

24、和方向控制)P1.5:MOSI(在系统编程用)P1.6:MISO(在系统编程用)P1.7:SCK(在系统编程用)P3口:本设计中P3口将用于接收水温信号和按键信息。P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。本次设计P3口中P3.4将用于接收发送温度型号。P3引脚号第二功能有:P3.0:RXD(

25、串行输入)P3.1:TXD(串行输出)P3.2:INT0(外部中断0)P3.3:INT0(外部中断0)P3.4:T0(定时器0外部输入)P3.5:T1(定时器1外部输入)P3.6:WR(外部数据存储器写选通)P3.7:RD(外部数据存储器写选通)RESET:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时

26、,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX 或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问

27、外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接Vcc。在flash编程期间,EA也接收12伏Vpp电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.1.2时钟电路时钟电路是用来产生AT89C51单片机工作时所必须的时钟信号,AT89C51本身就是一个复杂的同步时序电路,为保证工作方式的实现,AT89C51在唯一的时钟信号的控制下严格的按时序执行指令进行工作,时钟的频率影响单片机的速度和稳定性。通常时钟由

28、于两种形式:内部时钟和外部时钟。我们系统采用内部时钟方式来为系统提供时钟信号。AT89C51内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器。电路中的C1、C2的选择在30pF左右,但电容太小会影响振荡的频率、稳定性和快速性。晶振频率为在1.2MHZ12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。为了提高稳定性我们采用温度稳定性好的NPO电容,采用的晶振频率为12MHZ。3.1.3复位电路AT89C51的复位输入引脚RST为单片机提供了初始化的手段,可以使程序从指定处开

29、始执行,在AT89C51的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作,只要RST保持高电平,则AT89C51循环复位,只有当RST由高电平变成低电平以后,AT89C51才从0000H地址开始执行程序,本系统采用按键复位方式的复位电路。图3 时钟电路复位电路与单片机的连接图3.2温度检测电路3.2.1 DS18B20数字温度计本次设计所采用的温度传感器为达拉斯DS18B20半导体可编程分辨率的单总线数字温度计。DS18B20无需外部器件。它的测温范围为-55125,并且在-1085精度为±0.5。DS18B20数字温度计提供9-12位摄氏温度

30、测量。最多在750ms 内将温度转换为12位数字。报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件DS18B20有一个由高低电平触发的可编程的不因电源消失而改变的报警功能。DS18B20通过一个单线接口发送或接受信息,因此在中央处理器和DS18B20之间仅需一条连接线(加上地线)。除此之外,DS18B20能直接从单线通讯线上汲取能量,除去了对外部电源的需求,供电范围为3.0V到5.5V。DS18B20与DS1822兼容的软件。每个DS18B20都有一个独特的64位序列号,从而允许多只DS18B20同时连在一根单线总线上。因此,很简单就可以用一个微控制器去控制很多覆盖在一大片区域的D

31、S18B20。这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。DS18B20应用包括温度控制、工业系统、消费品、温度计或任何热感测系统。 本设计采用的TO92封装的DS18B20引脚功能描述见表1: 表1 DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。3.2.2 DS18B20操作原理DS18B20 的核心功能是它的直接读数字的温度传感器。温度传感器的精度为用户可编程的9,10,11

32、或12位,分别以0.5,0.25,0.125和0.0625增量递增。在上电状态下默认的精度为12位。DS18B20启动后保持低功耗等待状态;当需要执行温度测量和AD转换时,总线控制器必须发出44h命令。在那之后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。当DS18B20由外部电源供电时,总线控制器在温度转换指令之后发起“读时序”,DS18B20正在温度转换中返回0,转换结束返回1。DS18B20中的温度传感器完成对温度的测量,用16位二进制形式提供,形式表达,其中头五位S为符号位。如:25.0625的数字输出为0000 0001 1110

33、0001(正温度直接把二进制数转成十进制乘以单位温度即得到温度值,对于负温度则取反加1后把二进制数转成十进制)。DS18B20的存储器有一个暂存SRAM和一个存储高低报警触发值TH和TL的非易失性电可擦除EEPROM组成。注意当报警功能不使用时,TH和TL寄存器可以被当作普通寄存器使用。所有的存储器指令被详述于DS18B20功能指令节。位0和位1为测得温度信息的LSB和MSB。这两个字节是只读的。第2和第3字节是TH和TL的拷贝。位4包含配置寄存器数据,其被详述于配置寄存器节。位5,6和7被器件保留,禁止写入;这些数据在读回时全部表现为逻辑1。EPROM寄存器中的数据在器件掉电时仍然保存;上电

34、时,数据被载入暂存器。数据也可以通过召回EEPROM命令从暂存器载入EEPROM。总线控制器在发出这条命令后发出读时序,DS18B20返回0表示正在召回中,返回1表示操作结束。存储器的第4位为配置寄存器。上电默认设置位6:R0=1:位5:R1=1。精度和转换时间之间有直接的关系。暂存器的位7(为0)和位04(为1)被器件保留,禁止写入。即12位精度时存储器状态为0111 1111在读回数据时,它们全部表现为逻辑1。64位ROM和单总线端口存储器和控制逻辑存储器温度传感器上触发TH下触发LH高速暂存器8位CRC产生器DQ内部VddVdd电源检测图4 DS18B20内部结构示意图DS18B20完成

35、一次温度转换后,就拿温度值与和存储在TH和TL中一个字节的用户自定义的报警预置值进行比较。标志位(S)指出温度值的正负:正数S=0,负数S=1。TH和TL寄存器是非易失性的,所以它们在掉电时仍然保存数据。当TH和TL为8位寄存器时,4位温度寄存器中的11个位用来和TH、TL进行比较。如果测得的温度高于TH或低于TL,报警条件成立,DS18B20内部就会置位一个报警标识。每进行一次测温就对这个标识进行一次更新;因此,如果报警条件不成立了,在下一次温度转换后报警标识将被移去。总线控制器通过发出报警搜索命令ECh检测总线上所有的DS18B20报警标识。任何置位报警标识的DS18B20将响应这条命令,

36、所以总线控制器能精确定位每一个满足报警条件的DS18B20。如果报警条件成立,而TH或TL的设置已经改变,另一个温度转换将重新确认报警条件。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先DS18B20提供以下功能命令之一:读ROM,ROM匹配,搜索ROM,跳过ROM,报警检查。若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM的数据。如果DS18B20

37、不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。所有的数据的读、写都是从最低位开始。读/写时序DS18B20的数据读写是通过时序处理位来确认信息交换的。图5 DS18B20数字温度计与AT89S52单片机的连接3.3直流稳压电源设计本系统采用多电源供电方式,即对数字电路、驱动电路分别供电,这种方案即降低了系统各个模块间的干扰,还保证了电源能为各部分提供足够的工作电流,提高系统的可靠性。单片机水温控制系统设计外接220V交流电源为继电加热器供电,并通过变压器和整流电路等组成的辅助直流稳压

38、电源向系统提供+12V、+5V直流电。3.3.1三端固定稳压器78××为固定式三端稳压集成器,它只能输出一个稳定电压。固定式三端稳压器的常见产品如图14所示。图6 78××系列稳压器及其典型电路78××系列稳压器输出固定的正电压,如7805输出为5V;79××系列稳压器输出固定的负电压,如7912输出为12V。输入端接电容可以进一步滤除纹波,输出端接电容能改善负载的瞬态影响,使电路稳定工作。、最好采用漏电流小的钽电容,一般不得小于0.1µF,如采用电解电容,则电容量要比图中数值增加10倍。3.3.2本次设

39、计用的电源图16所示电路为+12V输出的直流稳压电源,从图可见,该直流稳压电是由变压器、二极管整流桥、滤波器和集成稳压等环节组成。集成稳压器7805则稳压电源变为输出+5V的单路直流稳压电源,供给AT89C51等芯片工作。图7 +5V和+12V稳压电源使用中应注意:(1)整流桥输出地端应接在大电解电容上,以利于降噪。电解电容应大于1000F,以为7812三端稳压模块提供较稳定的直流输入。(2)为消除三端稳压模块内部产生的高次谐波,抑制稳压电路的自激震荡,实现频率补偿,应在模块两端分别并联一小电容。3.3.3元器件选择及参数计算(1)三端稳压器根据电路中所需要的电源,选择7805、7812分别输

40、出+5V、+12V,其输出电压和输出电流均满足指标要求。(2)输入输出电容输入输出电容的取值主要根据工程经验而得到,一般为瓷片电容。(3)变压器二次侧电压有效值和输入电压这两个值的取定决定了相关元器件及参数的选择。一般情况下,输入电压应比输出电压高3V左右(太小影响稳压;太大稳压器功耗大,易受热损坏)。假设+5V的输入为V11,输出为Vo1;+12V的输入为V12,输出为Vo2;而它们所对应的变压器二次侧电压有效值分别为V21、V22则有,V11=8V,V12=15V,考虑电网电压10%的波动,最终可取V11=9V,V12=16.5V。由式V1(1.11.2)V2可取变压器二次侧电压有效值V2

41、1=V11/1.1=8.18V, V22=V12/1.1=15V鉴于变压器规格的限制,实际应选V21=10V,V22=15V。(4)滤波电容滤波电容选择时应注意:电容对地滤波,需要一个较小的电容并联对地,对高频信号提供了一个对地通路。电源滤波中电容对地脚要尽可能靠近地。理论上说电源滤波用电容越大越好,一般大电容滤低频波,小电容滤高频波。可靠的做法是将一大一小两个电容并联,一般要求相差两个数量级以上,以获得更大的滤波频段。(5)整流二极管整流二极管的参数应满足最大整流电流IF>Iomax(暂定);最大反向电压VR>V2,其中V2为变压器二次侧电压有效值。桥式的所有整流二极管可选IN4

42、001小功率二极管。3.4其它部分硬件电路3.4.1 LED显示电路LED数码管是一种半导体发光器件,其基本单元是发光二极管,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字。可以显示:时间、日期、温度等可以用数字代替的参数。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳极数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的

43、阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,通过由各自独立的I/O线控制,当单片机的P0口输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对P2.0-P2.3位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在本设计中

44、采用了四位八段数码管,用动态驱动来显示温度的值,如图8所示: 图8 LED显示电路图3.4.2按键电路除去复位按键及继电器外,系统的键盘共有三个按键,判断K3K5键是否按下,可采用软件查询和中断的方法,当某个键按下时,低电平有效。3个键K3K5的功能定义如表所示:表2 K3K5键的定义按键键名功能K3功能转换键地信号此键按下,显示温度设定值,按键松开,显示当前温度开漏单总线接口引脚。K4加1键设定温度值加1K5减1键设定温度值减1图9 按键电路3.4.3报警与控制电路在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施

45、。其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波、标度变换之后,与该参数设定值进行比较。如果高于设置值1度则进行报警,否则就作为采样的正常值,进行显示和控制。同样水箱内的温度超出低高设定的温度范围内时P1.4输出高电平“0”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫,出报警声音;单片机的P1.1输出低电平,此时红色指示灯灭,直到低于设定的最高温度时,P1.4输出高时,三极管截止,蜂鸣器停止发声,P1.1输出电平高电平,发光二极管亮。低于设置数1度时,具体操作类似。报警和控制电路如图10所示:图10 报警与控制电路与单片机的连接3.4.4继电器控制电路控制P10的高低电

46、平来控制继电器的断开和闭合,当P10口为低电平时,三极管导通,控制继电器开始加热,当P10为高电平时,三极管截止,继电器断开,停止加热,绿灯亮。光电耦合器以光为媒介来传输电信号的器件,受光器接受光线之后就产生光电流,从输出端流出,从而实现了“电光电”转换。本设计采用TOSHIBA公司生产的TLP627-1。它包含一个砷化镓红外发光二极管,该二极管光耦合到一个达林顿光电晶体管。晶体管集成了基极-集电极内阻,使TLP627系列的转换速度和高温特性得到优化。加热器由继电器控制,连接220V电源,用于对水温的控制,即对进行水温加热或不加热。图11 继电器控制电路 河南城建学院本科毕业设计(论文) 软件

47、设计部分4 软件设计部分4.1程序设计方案根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。本部分详细介绍了基于AT89C51单片机的多路温度采集控制系统的软件设计。根据系统功能,可以将系统设计分为若干个子程序进行设计,如温度采集子程序,数据处理子程序、显示子程序、执行子程序。采用Keil uVision3集成编译环境和C语言来进行系统软件的设计。本章从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序。采集到当前的温度,通过LED数码管实现温度显示。通过按键任

48、意设定一个恒定的温度将水环境数据与所设置的数据进行比较。当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热。当系统出现故障,超出控制温度范围时,自动蜂鸣报警并对温度进行实时显示。采用C语言编写代码,鉴于篇幅限制及DS18B20的应用已经规范和成熟,本文仅就主程序流程图和显示子程序流程图及其代码进行说明。通过定时器T0 P3.4口的定时来实现,在此不再赘述。有关DS18B20的读写程序,编程时序分析等请见附录三。功能主程序流程图主程序通过调用温度采集子程序完成温度数据采集,然后调用温度转换子程序转换读取温度数据,调用显示子程序进行温度显示和判断温度数据。主程序(见附录二)

49、调用四个子程序,分别是温度采集程序、数码管显示程序、温度处理程序和数据存储程序。温度采集程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码的显示送数,控制系统的显示部分。温度处理程序:对采集到的温度和设置的上、下限进行比较,做出判断,向继电器输出关断或闭合指令。数据存储程序:对键盘的设置的数据进行存储。设定温度值显示当前温度判断当前温度值超过设定1低于设定1报警报警是否否是图12 系统总流程图4.2各模块子程序设计4.2.1主程序设计主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测

50、温度,其程序流程见图13所示。通过调用读温度子程序把存入内存储中的整数部分与小数部分分开存放在不同的两个单元中,然后通过调用显示子程序显示出来。开始调用读温度子程序数字变换程序显示子程序图13 主程序流程图4.2.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。DS18B20的各个命令对时序的要求特别严格,所以必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高位在后低位在前,共有12位数,小数4位,整数7位,还有一位符号位。DS18B20的数据读写是通过时序处理位来确认信息交换的。当总线控制器发起读时序时,

51、DS18B20仅被用来传输数据给控制器。因此,总线控制器在发出读暂存器指令BEh或读电源模式指令B4H后必须立刻开始读时序,DS18B20可以提供请求信息。所有读时序必须最少60us,包括两个读周期间至少1us的恢复时间。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放在总线控制器发出读时序后,DS18B20通过拉高或拉低总线上来传输1或0。当传输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态。从DS18B20输出的数据在读时序的下降沿出现后15us内有效。因此,总线控制器在读时序开始后必须停止把I/O脚驱动为低电平15us,以读取I/O脚

52、状态。DS18B20复位、应答子程序跳过ROM匹配命令写入子程序温度转移命令写入子程序延时显示子程序DS18B20复位、应答子程序跳过ROM匹配命令写入子程序读温度命令子程序终止图14 读出温度子程序4.2.3数码管显示模块 本系统采用八位共阳极数码管,用模拟串口的动态显示数据。其流程图如图16所示:子程序入口初始化查表取段码位码送译码器选通低位数码管数字是否显示亮关显示返回段码送驱动显示显示缓冲区左移YN图15 数码管显示流程图4.2.4温度处理程序基于单片机水温控制系统通过DS18B20温度传感器采集到的温度和设置的温度上、下限进行比较得出结果。如果低于下限温度或是高于上限温度,则报警器进

53、行进行报警。河南城建学院本科毕业设计(论文) 系统调试部分5 系统调试部分1、测试环境:测试时如不能外设小型制冷设备,则室温不应超过40。2、测试注意事项:(1)应保证DS18B20传感器位于容器内水的中央部位且不能与加热器接触,否则会造成温度测量不准确甚至元器件的损害。(2)系统复位初始设定写入温度为上限H30,下限L10。(3)测试不同温度时,所测试温度应由低到高。3、测试温度范围:2060之间(模拟设计要求范围内的不同温度值环境)。4、测试仪器:数字万用表、温度计(可测量0.0100.0)、盛有清水的器皿、220V电源,秒表等。5、测试方法:(1)使系统运行,观察系统硬件检测是否正常(包

54、括单片机控制系统,键盘电路,显示电路,温度测试电路等)。(2)接通电后,系统可实时显示当前水温温度。可分别通过按键设定系统上限温度为20、25、30、35、40、45,50、55、60、等不同温度,测试下限温度时方法同上。(3)利用测试表格数据,观察显示数据是否相符合即可。采用温度传感器和温度计同时测量水温变化情况,目测显示电路是否正常。(4)待温度稳定后,在单位时间内采样记录显示屏温度值,与温度计实际温度值比较,计算出选定度数的误差百分比精确度,得出系统的温度指标。6、测试结果分析:系统自检正常,温度显示正常。因为芯片是塑料封装,所以对温度的感应灵敏度不是相当高,需要一个很短的时间达到稳定。经反复测试验证,本系统满足要求。用单片机控制水温可以在一定范围内设定,并能在环境温度变化时保持温度不变。河南城建学院本科毕业设计(论文) 结论结论本设计叙述了基于单片机单片机水温控制系统,包括硬件组成和软件的设计。该系统在硬件设计上主要是通过DS18B20温度传感器对温度进行采集。硬件设计中最核心的器件是单片机AT89C51。一方面,将采集到的数字温度信号经数据处理得到相应的温度值,送至LED显

温馨提示

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

评论

0/150

提交评论