基于单片机的多点无线温度监控系统设计毕业设计样本.doc
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。基于单片机的多点无线温度监控系统设计前言 在工业生产中, 电流、 电压、 温度、 压力、 流量、 流速和开关量都是常见的主要被控参数。其中, 温度控制也越来越重要。在工业生产的很多领域中, 人们都需要对各类加热炉、 热处理炉、 反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不但具有控制方便、 简单和灵活性大等优点, 而且能够大幅度提高被控温度的技术指标, 从而能够大大的提高产品的质量和数量。因此, 单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。 单片机是一种集CPU、 RAM、 ROM、 I/O接口和中断系统等部分于一体的器件, 只需要外加电源和晶振就可实现对数字信息的处理和控制。因此, 单片机广泛用于现代工业控制中。随着”信息时代”的到来, 作为获取信息的手段传感器技术得到了显著的进步, 其应用领域越来越广泛, 对其要求越来越高, 需求越来越迫切。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此, 了解并掌握各类传感器的基本结构、 工作原理及特性是非常重要的。由于传感器能将各种物理量、 化学量和生物量等信号转变为电信号, 使得人们能够利用计算机实现自动测量、 信息处理和自动控制, 可是它们都不同程度地存在温漂和非线性等影响因素。传感器主要用于测量和控制系统, 它的性能好坏直接影响系统的性能。因此, 不但必须掌握各类传感器的结构、 原理及其性能指标, 还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、 显示和控制的要求, 而且只有经过对传感器应用实例的原理和智能传感器实例的分析了解, 才能将传感器和信息通信和信息处理结合起来, 适应传感器的生产、 研制、 开发和应用。另一方面, 传感器的被测信号来自于各个应用领域, 每个领域都为了改革生产力、 提高工效和时效, 各自都在开发研制适合应用的传感器, 于是种类繁多的新型传感器及传感器系统不断涌现。温度传感器是其中重要的一类传感器。其发展速度之快, 以及其应用之广, 而且还有很大潜力。为了提高对传感器的认识和了解, 特别是对温度传感器的深入研究以及其用法与用途, 基于实用、 广泛和典型的原则而设计了本系统。本文利用单片机结合传感器技术而开发设计了这一温度监控系统。文中传感器理论与单片机实际应用有机结合, 详细地讲述了基于单片机AT89S51和温度传感器DS18B20的温度控制系统的设计方案与软硬件实现方案。系统包括数据采集模块, 单片机控制模块, 显示模块和温度设置模块, 驱动电路五个部分。文中对每个部分功能、 实现过程作了详细介绍。本设计应用性比较强, 系统稍微改装能够作为生物培养液温度监控系统, 能够做热水器温度调节系统、 实验室温度监控系统等等。设计后的系统具有操作方便, 控制灵活等优点。 1 概述1.1 课题研究的目的及意义随着社会的发展, 温度的测量及控制变得越来越重要。温度是生产过程和科学实验中普遍而且重要的物理参数。在工业生产过程中为了高效地进行生产, 必须对生产工艺过程中的主要参数, 如温度, 压力, 流量, 速度等进行有效的控制。其中温度的控制在生产过程中占有相当大的比例。准确测量和有效控制温度是优质, 高产, 低耗和安全生产的重要条件。在工业的研制和生产中, 为了保证生产过程的稳定运行并提高控制精度, 采用微电子技术是重要的途径。它的作用主要是改进劳动条件, 节约能源, 防止生产和设备事故, 以获得好的技术指标和经济效益。本课题采用51单片机来对温度进行控制, 不但具有控制方便、 组态简单和灵活性大等优点, 而且能够大幅度提高被控温度的技术指标。作为控制系统中的一个典型实验设计, 单片机温度控制系统综合运用了微机原理、 自动控制原理、 传感器原理、 模拟电子技术、 数字控制技术、 键盘显示技术等诸多方面的知识, 是对所学知识的一次综合测试。1.2 课题研究现状分析由于现代工艺越来越多的需要对实时温度进行监测和控制, 而且需要的精度越来越高。因此温度控制系统国内外许多有关人员的重视, 得到了十分广泛的应用。温度控制系统发展迅速, 而且成果显著。由于单片微处理器的性能日益提高、 价格又不断降低, 使其性能价格比的优势非常明显。因此, 如何将单片微处理器应用到锅炉温度自动控制领域, 为越来越多的生产厂家所重视。当前先进国家各种炉窑自动化水平较高, 装备有完善的检测仪表和计算机控制系统。其计算机控制系统已采用集散系统和分布式系统的形式, 大部分配有先进的控制算法, 能够获得较好的工艺性能指标。单片微型计算机是随着超大规模集成电路的技术的发展而诞生的。由于它具有体积小, 功能强, 性价比高等优点, 因此广泛应用于电子仪表, 家用电器, 节能装置, 军事装置, 机器人, 工业控制等诸多领域, 使产品小型化, 智能化, 既提高了产品的功能和质量又降低了成本, 简化了设计。1.3 技术指标设计并制作一个基于单片机的温度控制系统, 能够对炉温进行控制。炉温能够在一定范围内由人工设定, 并能在炉温变化时实现自动控制。若测量值高于温度设定范围, 由单片机发出控制信号, 经过驱动电路使加热器停止工作。当温度低于设定值时, 单片机发出一个控制信号, 启动加热器。经过继电器的重复开启和关闭, 使炉温保持在设定的温度范围内。温度设定范围为099, 最小区分度为1, 温度控制的误差1能够用数码管精确显示当前实际温度值按键控制: 设置复位键、 加一键、 减一键越限报警2 总体设计 2.1 系统设计方案论证实现温度控制的方法主要有以下几种。方案一: 采用纯硬件的闭环控制系统。该系统的优点在于速度较快, 但可靠性比较差控制精度比较低、 灵活性小、 线路复杂、 调试、 安装都不方便。且要实现题目所有的要求难度较大。方案二: FPGA/CPLD或采用带有IP内核的FPGA/CPLD方式。即用FPGA/CPLD完成采集, 存储, 显示及A/D等功能, 由IP核实现人机交互及信号测量分析等功能。这种方案的优点在于系统结构紧凑, 能够实现复杂的测量与与控制, 操作方便; 缺点是调试过程复杂, 成本较高。方案三: 单片机与高精度温度传感器结合的方式。即用单片机完成人机界面, 系统控制, 信号分析处理, 由前端温度传感器完成信号的采集与转换。这种方案克服了方案一、 二的缺点, 因此本课题任务是基于单片机和温度传感器实现对温度的控制。2.2 系统结构框图系统主要包括数据采集模块, 单片机控制模块, 显示模块和温度设置模块, 驱动电路五个部分。系统框图如图2.2-1所示温度传感器单片机键盘控制复位电路显示电路报警电路控制电路图2.2-1 系统框图 其中数据采集模块负责实时采集温度数据, 采集到的温度数据传输到单片机, 由单片机处理后的数据送显示部分显示。设置模块可设置预定温度, 当检测到的温度低于设定温度时, 单片机控制驱动电路启动加热, 并发出报警声; 当检测温度高于设定温度时, 停止加热。3 硬件设计3.1 元器件的选择3.1.1 单片机选择单片机的选择在整个系统设计中至关重要, 要满足大内存、 高速率、 通用性、 价格便宜等要求, 本课题选择AT89S51作为主控芯片。AT89S51是一个低功耗, 高性能CMOS 8位单片机, 片内含4k Bytes ISP(In-system programmable)的可重复擦写1000次的Flash只读程序存储器, 器件采用ATMEL公司的高密度、 非易失性存储技术制造, 兼容标准MCS-51指令系统及80C51引脚结构, 芯片内集成了通用8位中央处理器和ISP Flash存储单元, 功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51芯片具有以下特性: 指令集和芯片引脚与Intel公司的8051兼容; 4KB片内在系统可编程Flash程序存储器; 时钟频率为033MHz; 128字节片内随机读写存储器( RAM) ; 32个可编程输入/输出引脚; 2个16位定时/计数器; 6个中断源, 2级优先级; 全双工串行通信接口; 监视定时器; 2个数据指针。AT89S51单片机的40个引脚中有2个专用于主电源引脚, 2个外接晶振的引脚, 4个控制或与其它电源复用的引脚, 以及32条输入输出I/O引脚。电源引脚Vcc和VssVcc( 40脚) : 接+5V电源正端; Vss( 20脚) : 接+5V电源正端。外接晶振引脚XTAL1和XTAL2XTAL1( 19脚) : 接外部石英晶体的一端。在单片机内部, 它是一个反相放大器的输入端, 这个放大器构成采用外部时钟时, 对于HMOS单片机, 该引脚接地; 对于CHOMS单片机, 该引脚作为外部振荡信号的输入端。XTAL2( 18脚) : 接外部晶体的另一端。在单片机内部, 接至片内振荡器的反相放大器的输出端。当采用外部时钟时, 对于HMOS单片机, 该引脚作为外部振荡信号的输入端。对于CHMOS芯片, 该引脚悬空不接。控制信号或与其它电源复用引脚有RST/VPD、 ALE/P、 PSE等4种形式。RST/VPD( 9脚) : RST即为RESET, VPD为备用电源, 因此该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时, 该引脚上出现持续两个机器周期的高电平, 就可实现复位操作, 使单片机复位到初始状态。当VCC发生故障, 降低到低电平规定值或掉电时, 该引脚可接上备用电源VPD( +5V) 为内部RAM供电, 以保证RAM中的数据不丢失。ALE/ P ( 30脚) : 当访问外部存储器时, ALE( 允许地址锁存信号) 以每机器周期两次的信号输出, 用于锁存出现在P0口的地址信号。PSEN(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间, 每个机器周期PESN两次有效, 以经过数据总线口读回指令或常数。当访问外部数据存储器期间, PESN信号将不出现。EA/Vpp( 31脚) : EA为访问外部程序储器控制信号, 低电平有效。当EA端保持高电平时, 单片机访问片内程序存储器4KB( MS52子系列为8KB) 。若超出该范围时, 自动转去执行外部程序存储器的程序。当EA端保持低电平时, 无论片内有无程序存储器, 均只访问外部程序存储器。对于片内含有EPROM的单片机, 在EPROM编程期间, 该引脚用于接21V的编程电源Vpp。输入/输出( I/O) 引脚P0口、 P1口、 P2口及P3口P0口( 39脚22脚) : 这8条引脚有两种不同功能, 分别适用于两种不同情况。第一种情况是89S51不带片外存储器, P0口能够作为通用I/O口使用, P0.0-P0.7用于传送CPU的输入/输出数据。第二种情况是89S51带片外存储器, P0.0-P0.7在CPU访问片外存储器时用于传送片外存储器的低8位地址, 然后传送CPU对片外存储器的读写数据。 P1口( 1脚8脚) : 这8条引脚和P0口的8条引脚类似, P1.7为最高位, P1.0为最低位。当P1口作为通用I/O口使用时, P1.0-P1.7的功能和P0口的第一功能相同, 也用于传送用户的输入和输出数据。 P2口( 21脚28脚) : 这组引脚的第一功能和上述两组引脚的第一功能相同, 既它能够作为通用I/O口使用。 P3口( 10脚17脚) : P3.0P3.7统称为P3口。而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见表3.1.1-1。表3.1.1-1 单片机P3口管脚第2功能引脚第2功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXD( 串行口输入端0) TXD( 串行口输出端) INT0( 部中断0请求输入端, 低电平有效) INT1( 中断1请求输入端, 低电平有效) T0( 时器/计数器0计数脉冲端) T1( 时器/计数器1数脉冲端) WR( 部数据存储器写选通信号输出端, 低电平有效) RD( 部数据存储器读选通信号输出端, 低电平有效) AT89S51单片机引脚图如图3.1.1-1所示 图3.1.1-1 单片机引脚图3.1.2 传感器选择本系统采用DALLAS半导体公司生产的一线式数字温度传感器DS18B20采集温度数据、 测控系统和大型设备中。它具有体积小, 接口方便, 传输距离远等特点。 DS18B20的性能特点: 采用单总线专用技术, 直接输出被测温度值( 9位二进制数, 含符号位) , 测温范围为-55-+125, 测量分辨率为0.0625。DS18B20内部结构主要由四部分组成: 64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图3.1.2-2所示。 图3.1.2-2 DS18B20引脚分布图DS18B20高速暂存器共9个存存单元, 如表3.1.2-1所示: 表3.1.2-1 DS18B20高速暂存器序号寄存器名称作 用序号寄存器名称作 用0123温度低字节温度高字节TH/用户字节1HL/用户字节2以16位补码形式存放以16位补码形式存放存放温度上限存放温度下限4、 5678保留字节1、 2计数器余值计数器/CRC以12位转化为例说明温度高低字节存放形式及计算: 12位转化后得到的12位数据, 存储在18B20的两个高低两个8位的RAM中, 二进制中的前面5位是符号位。如果测得的温度大于0, 这5位为0, 只要将测到的数值乘于0.0625即可得到实际温度; 如果温度小于0, 这5位为1, 测到的数值需要取反加1再乘于0.0625才能得到实际温度。温度由DALLAS 公司生产的一线式数字温度传感器DS18B20 采集。DS18B20 测温范围为-55°C+125°C, 测温分辨率可达0.0625°C, 被测温度用符号扩展的16 位补码形式串行输出。CPU 只需一根端口线就能与诸多DS18B20 通信。公司生产的一线式数字温度传感器DS18B20 采集。DS18B20 测温范围为-55°C+125°C, 测温分辨率可达0.0625°C, 被测温度用符号扩展的16 位补码形式串行输出。在硬件上, DS18B20与单片机的连接有两种方法, 一种是Vcc接外部电源, GND接地, I/O与单片机的I/O线相连; 另一种是用寄生电源供电, 此时UDD、 GND接地, I/O接单片机I/O。无论是内部寄生电源还是外部供电, I/O口线要接5K左右的上拉电阻。 DS18B20有六条控制命令, 如表3.1.2-3所示: 表3.1.2-3 DS18B20控制命令指 令约定代码操 作 说 明温度转换读暂存器写暂存器复制暂存器重新调E2RAM读电源供电方式44HBEH4EH48HB8HB4H启动DS18B20进行温度转换读暂存器9个字节内容将数据写入暂存器的TH、 TL字节把暂存器的TH、 TL字节写到E2RAM中把E2RAM中的TH、 TL字节写到暂存器TH、 TL字节启动DS18B20发送电源供电方式的信号给主CPUCPU对DS18B20的访问流程是: 先对DS18B20初始化, 再进行ROM操作命令, 最后才能对存储器操作, 数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B, 须经三个步骤: 每一次读写之前都要对DS18B20进行复位, 复位成功后发送一条ROM指令, 最后发送RAM指令, 这样才能对DS18B20进行预定的操作。3.2 单片机控制模块控制模块是整个设计方案的核心, 它控制了温度的采集、 处理与显示、 温度值的设定与温度越限时控制电路的启动。本控制模块由单片机AT89S51及其外围电路组成, 电路如图3.2-1所示。图3.2-1 单片机控制模块电路该电路采用按键加上电复位, S2为复位按键, 复位按键按下后, 复位端经过51的小电阻与电源接通,迅速放电,使RST引脚为高电平,复位按键弹起后,电源经过8.2K的电阻对10KF的电容C5重新充电,RST引脚端出现复位正脉冲.AT89S51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路,本设计采用内部时钟方式,利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体振荡器,就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路,C6和C7的值一般选择为30pF左右,晶振Y1选择12MHz.为了减小寄生电容,更好地保证振荡器稳定、 可靠地工作, 振荡器电容应尽可能安装得与单片机引脚XTAL1和XTAL2靠近。单片机的31脚( EA) 接+5V电源, 表示允许使用片内ROM。3.3 温度数据采集模块温度由DALLAS 公司生产的一线式数字温度传感器DS18B20 采集。DS18B20 测温范围为-55°C+125°C, 测温分辨率可达0.0625°C, 被测温度用符号扩展的16 位补码形式串行输出。CPU 只需一根端口线就能与诸多DS18B20 通信, 占用微处理器的端口较少, 可节省大量的引线和逻辑电路。本设计采用三引脚PR-35封装的DS18B20, 其引脚图见图3。Vcc接外部+5V电源, GND接地, I/O与单片机的P3.4( T0) 引脚相连。3.4 显示模块显示部分采用LED静态显示方式, 共阴极的数码管的公共端COM连接在一起接地, 每位的段选线与74HC164的8位并口相连, 只要在该位的段选线上保持段选码电平, 该位就能保持相应的显示字符, 考虑到节约单片机的I/O资源, 因而采用串行接口方式, 外接8位移位寄存器74HC164构成显示电路, 电路如图3.4-1所示。图3.4-1 显示模块电路 74HC164的逻辑功能介绍如下: 当清除端( CLEAR) 为低电平时, 输出端( QAQH) 均为低电平。 串行数据输入端( A, B) 可控制数据当 A、 B 有一个为高电平, 则另一个就允许输入数据, 并在 CLOCK 上升沿作用下决定 Q0 的状态。H高电平 L低电平 X任意电平 低到高电平跳变 QA0,QB0,QH0 规定的稳态条件建立前的电平 QAn,QGn 时钟最近的前的电平。图3.4-2 74HC164时序图在单片机的TXD( P3.1) 运行时钟信号, 将显示数据由RXD( P3.0) 口串行输出至74HC164的A、 B端。3.5 温度设置模块温度设置部分采用独立式按键, S4为温度值加1按键, 与单片机的P0.0口相连; S3为温度值减1按键, 与单片机的P0.1口相连。当没有键按下时, 单片机与之相连的输入口线为高电平, 当任何一个按键按下时, 与之相连的 输入口线被置为低电平, 产生外中断条件, 在 中断服务程序中读取键盘值。温度设置电路如图3.5-1所示。 图3.5-1 温度设置模块电路3.6 控制电路控制电路与单片机的P0.2口相连, 由于单片机输出控制信号非常微弱, 需要用三极管来驱动外围电路, 三极管选用NPN型的 9014, 当检测温度低于设定温度时, 在单片机的P0.2口输出高电平控制信号, 使三极管9014导通, 使继电器两控制端产生压差, 从而使继电器吸合, 常开触点接通, 控制外部电路对锅炉进行加热; 当检测温度高于设定温度时, 单片机输出低电平信号, 三极管截止, 继电器不吸合, 外部电路停止加热。控制电路电路图如图3.6-1所示。图3.6-1 控制电路4 软件设计系统软件要实现的功能如下: 利用4只共阴数码管, LED1显示检测温度十位, LED2显示检测温度个位, LED3显示设定温度十位, LED4显示设定温度个位, 显示分辨率为1。单片机复位后默认设定温度为40, 当每按下一次设定温度上升按钮ADD时, 设定温度增加1, 最高为120, 当每按下一次设定温度下降按钮DEC时, 设定温度减少1, 最低设定为0。当设定温度大于检测温度时加热输出, 当设定温度小于检测温度时加热停止。4.1 主程序流程图温度控制程序的设计应考虑如下: 键盘扫描、 键码识别和温度显示; 炉温采样; 数据处理; 越限报警和处理。系统流程图如图4.1-1所示。减加小于与设定温度比较开始初始化停止加热检测温度显 示判断按键设定值加设定值减显 示大于启动加热图4.1-1 系统流程图4.2 温度传感器DS18B20工作过程及时序DS18B20工作过程中的协议如下: 初始化ROM操作命令存储器操作命令处理数据4.2.1 初始化时序时序如图4.2.1-1所示。主机总线发送复位脉冲( 最短为480S, 最高时间为960S的低电平信号) , 接着再释放总线( 置总线为高电平) 并进入接收状态。DS18B20在检测到总线的上升沿后等待1560S发出器件存在脉冲( 低电平持续60240S) 。初始化程序如下所示: INIT:SETBP3.4 NOP CLRP3.4 MOVR0,#0FFH DJNZR0,$ SETBP3.4 MOVR0,#100LIU:JNBP3.4,IT3DJNZR0,LIUCLR38HSJMPIT7IT3: SETB38HIT7: MOV R0,#240DJNZR0,$SETBP3.4RET 单片机主动释放60-240S15-60S480-960S图4.2.1-1 初始化时序图此初始化程序功能为: 检测DS18B20是否存在, 如存在, 将位地址38H置1; 如不存在, 将位地址38H清零。4.2.2写时序单片机写DS18B20的时序如图4.2.2-2所示, 当主机总线从高拉至低电平时就产生写时间隙, DS18B20在检测到下降沿后15S时开始采样总线上的电平, 因此15S之内应将所需写的位送到总线上, DS18B20再1560S间对总线采样, 每写一位总时间必须在60120S之间完成。若低电平写入的位是0, 高电平写入的位是1, 连续写时位间的间隙应大于1S。程序如下所示: WRITER:MOVR0,#8WR1:CLRP3.4MOVR4,#6DJNZR4,$RRCAMOVP3.4,CMOVR4,#40DJNZR4,$SETBP3.4NOPDJNZR0,WR1SETBP3.4RET写060-120S写1, DS18B20在检测到下降沿15S后采样, 采样时间为15-60S1560-120SDS18B20检测到下降沿15S后采样15S图4.2.2-1 单片机写DS18B20时序图4.2.3读时序单片机读DS18B20的时序如图4.2.3-1所示, 单片机主动产生一个下降沿的启动信号, 并维持低电平大于1S后释放总线, 15S后DS18B20占主动权, DS18B20会将数据按位放在总线上( 低位在先, 当读取两个字节的温度值时, 低字节在先) , 这时单片机可读取信号, 读取一位的时间应在60S内完成。当需要读取下一位时再产生下降沿启动信号。T<60S单片机采样第二位启动脉冲T<60S单片机采样第一位启动脉冲图4.2.3-1 单片机读DS18B20的时序图READ:SETBRS0MOVR4,#2MOVR0,#36HRE1:MOVR5,#8RE2:CLRCSETBP3.4NOPNOPCLRP3.4NOPNOPNOPSETBP3.4MOVR6,#7DJNZR6,$MOVC,P3.4MOVR6,#20DJNZR6,$RRCADJNZR5,RE2MOVR0,ADECR0DJNZR4,RE1CLRRS0NOPRET此程序功能为: 读取DS18B20 A/D转换后的温度值, 转换后的二进制存入36H、 35H单元, 默认为12位转换, 低8位存入36H单元, 高8位存入35H单元( 35H单元的高5位均为符号位, 因此判断符号只需判断低12位数据的最高位即可) 。1表示为零度以下, 0表示零度以上, 实际有效位为11位。5 系统调试5.1 测试环境 环境温度为: 23测试仪器: 标准温度计、 加热工具( 此处选用烧热的电烙铁) 、 制冷工具( 此处选用冰块) 5.2 测量方法系统温度测量的准确度。我们将标准温度计和温度控制系统的探头放在一起, 选定若干不同温度点, 记录下标准温度计的温度和温度控制系统测量显示的温度进行比较。设定开启加热温度, 改变环境温度, 验证检测到的温度高于设定温度时是否停止加热, 检测到的温度小于设定温度时是否启动加热。5.3 测试结果本系统测量显示温度与标准温度计测量温度对比如表5.3-1所示。表5.3-1 温度测量准确度标准温度计测量温度( ) 本系统测量显示温度( ) 232530404560232530404560根据温度测量数据的对比可知, 本系统能够准确地测量并显示环境温度。设定不同的开启加热温度, 改变温度, 系统工作情况如表5.3-2所示。表5.3-2 系统加热测量设定温度( ) 环境温度( ) 发光二极管( 亮/灭) 15151525252525404040401015302024253030394050亮灭灭亮亮灭亮亮亮灭灭发光二极管亮表示启动加热, 灭表示停止加热。根据表5.3-2可知, 系统能够自由设定不同的加热温度, 温度设定当环境温度低于设定温度时系统启动加热, 当环境温度高于或等于设定温度时, 系统停止加热。经过重复测试, 系统温度设定范围为0120, 最小区分度为1, 温度控制的误差1; 能够测量并用数码管显示当前实际温度值; 经过复位键能够使系统设定温度还原默认值, 经过加一键和减一键能够以1步进设置预定温度; 环境温度低于设定温度时, 启动加热, 红色发光二极管点亮, 环境温度高于或等于设定温度时, 停止加热, 红色发光二极管灭。达到了课题要求的技术指标。5 结束语本设计详细介绍了基于单片机AT89S51的温度控制系统的设计方案与软硬件实现。系统包括数据采集模块, 单片机控制模块, 显示模块和温度设置模块, 驱动电路五个部分。文中对每个部分功能、 实现过程作了详细介绍。完成了课题既定的任务, 达到了预期的目标。系统具有如下特点: 采用智能温度传感器DS18B20采集温度数据, 简化了硬件电路设计, 温度采集数据更加精准; AT89S51单片机的采用, 有利于功能扩展; 电路设计充分考虑了系统可靠性和安全性。本系统没有增加外部存储器, 设定温度不能保存, 断电复位后必须重新设置温度; 采用静态显示方式, 从而使用了较多的驱动芯片, 增加了硬件电路的复杂性; 只使用两位显示, 即显示温度的十位、 个位, 没有充分发挥DS18B20的特性。本设计软件和硬件相结合, 有相当大的难度, 同时也有很大的实用性。在做毕业设计的过程中, 我的理论和实践水平都有了较大的提高。在本课题的设计中, 我熟练掌握了单片机硬件设计和接口技术, 同时对温度传感器的原理及应用有了一定的了解, 掌握了各种控制电路及其相关元器件的使用。经过这次毕业设计, 我不但学会如何将所学专业知识运用到实际生活中, 还学会如何克服未知的困难, 解决难题的方法。四年的本科学习生涯即将结束,在本人做毕业设计中, 得到了我的导师XX的悉心指导和无私帮助。她严谨的治学态度和谦和的为人给我留下了深刻的印象。虽然××老师公务繁忙, 教学任务重, 但在我做毕业设计的每个阶段, 从查阅资料到设计草案的确定和修改, 中期检查, 后期详细设计, 实物制作等整个过程中都给予了我悉心的指导。在课题实施阶段, 感谢实验室的老师XX对我的帮助和实验器材、 场地的支持。其次要感谢大学四年来所有的授课老师, 为我们打下电子专业知识的基础; 同时还要感谢所有的同学们, 正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。最后我要深深地感谢我的家人, 正是她们含辛茹苦地把我养育成人, 在生活和学习上给予我无尽的爱、 理解和支持, 才使我时刻充满信心和勇气, 克服成长路上的种种困难, 顺利的完成大学学习。还有许许多多给予我学业上鼓励和帮助的师长、 朋友, 在此无法一一列举, 在此也表示忠心地感谢! 大学生活的结束, 也是我人生新的生活起点, 我将谨记老师们的教诲, 将自己的所学奉献给社会。附录附录1: 系统总原理附录2: 系统PCB图附录3: 源程序清单/.主程序及初始化程序/KEY_ADDBITP0.0KEY_DECBITP0.1OUTPUTBITP0.2ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#60HMOV4AH,#15 ; 单片机复位后默认设定温度为15MOV4BH,#0CLROUTPUTMAAI:LCALLTEMPER1LCALLDISPLAYLCALLKEYSCANLCALLOUTSJMPMAAI/DS18B20初始化程序/TEMPER1:LCALLINITJNB38H,TEMPER1MOVA,#0CCHLCALLWRITERMOVA,#44HLCALLWRITERTE3:LCALLINITMOVA,#0CCHLCALLWRITERMOVA,#0BEHLCALLWRITERLCALLREADNOPRETINIT:SETBP3.4 ; 置1NOPCLRP3.4 ; 清零MOVR0,#0FFHDJNZR0,$SETBP3.4MOVR0,#100LIU:JNBP3.4,IT3DJNZR0,LIUCLR38HSJMPIT7IT3:SETB38HIT7:MOVR0,#240DJNZR0,$SETBP3.4RET/DS18B20写数据/WRITER:MOVR0,#8 WR1:CLRP3.4MOVR4,#6DJNZR4,$RRCAMOVP3.4,CMOVR4,#40DJNZR4,$SETBP3.4NOPDJNZR0,WR1SETBP3.4RET/DS18B20读数据/READ:SETBRS0 ; 选择工作寄存器组1MOVR4,#2MOVR0,#36H ; 从36H单元开始存RE1:MOVR5,#8RE2:CLRCSETBP3.4NOPNOPCLRP3.4NOPNOPNOPSETBP3.4MOVR6,#7DJNZR6,$MOVC,P3.4MOVR6,#20DJNZR6,$RRCADJNZR5,RE2MOVR0,ADECR0DJNZR4,RE1CLRRS0NOPRET/显示程序/DISPLAY:CLR7FHCLR7EHMOVA,36HANLA,#0FHMOV40H,AMOVA,36HSWAPAANLA,#0FHM