基于单片机的多点无线温度监控系统设计
前言
在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。
单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。因此,单片机广泛用于现代工业控制中。
随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。
由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。温度传感器是其中重要的一类传感器。其发展速度之快,以及其应用之广,并且还有很大潜力。
为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本文利用单片机结合传感器技术而开发设计了这一温度监控系统。文中传感器理论与单片机实际应用有机结合,详细地讲述了基于单片机ATS51和温度传感器DS18B20的温度控制系统的设计方案与软硬件实现方案。系统包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。文中对每个部分功能、实现过程作了详细介绍。本设计应用性比较强,
1
系统稍微改装可以作为生物培养液温度监控系统,可以做热水器温度调节系统、实验室温度监控系统等等。设计后的系统具有操作方便,控制灵活等优点。
1 概述
1.1 课题研究的目的及意义
随着社会的发展,温度的测量及控制变得越来越重要。温度是生产过程和科学实验中普遍而且重要的物理参数。在工业生产过程中为了高效地进行生产,必须对生产工艺过程中的主要参数,如温度,压力,流量,速度等进行有效的控制。其中温度的控制在生产过程中占有相当大的比例。准确测量和有效控制温度是优质,高产,低耗和安全生产的重要条件。在工业的研制和生产中,为了保证生产过程的稳定运行并提高控制精度,采用微电子技术是重要的途径。它的作用主要是改善劳动条件,节约能源,防止生产和设备事故,以获得好的技术指标和经济效益。
本课题采用51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标。
作为控制系统中的一个典型实验设计,单片机温度控制系统综合运用了微机原理、自动控制原理、传感器原理、模拟电子技术、数字控制技术、键盘显示技术等诸多方面的知识,是对所学知识的一次综合测试。 1.2 课题研究现状分析
由于现代工艺越来越多的需要对实时温度进行监测和控制,而且需要的精度越来越高。所以温度控制系统国内外许多有关人员的重视,得到了十分广泛的应用。温度控制系统发展迅速,而且成果显著。由于单片微处理器的性能日益提高、价格又不断降低,使其性能价格比的优势非常明显。因此,如何将单片微处理器应用到锅炉温度自动控制领域,为越来越多的生产厂家所重视。
目前先进国家各种炉窑自动化水平较高,装备有完善的检测仪表和计算机控制系统。其计算机控制系统已采用集散系统和分布式系统的形式,大部分配有先进的控制算法,能够获得较好的工艺性能指标。单片微型计算机是随着超大规模集成电路的技术的发展而诞生的。由于它具有体积小,功能强,性价比高等优点,所以广泛应用于电子仪表,家用电器,节能装置,军事装置,机器人,工业控制等诸多领域,使产品小型化,智能化,既提高了产品的功能和质量又降低了成本,简化了设计。
1.3 技术指标
设计并制作一个基于单片机的温度控制系统,能够对炉温进行控制。炉温可以在一
2
定范围内由人工设定,并能在炉温变化时实现自动控制。若测量值高于温度设定范围,由单片机发出控制信号,经过驱动电路使加热器停止工作。当温度低于设定值时,单片机发出一个控制信号,启动加热器。通过继电器的反复开启和关闭,使炉温保持在设定的温度范围内。
◆温度设定范围为0~99℃,最小区分度为1℃,温度控制的误差≤1℃ ◆能够用数码管精确显示当前实际温度值 ◆按键控制:设置复位键、加一键、减一键 ◆越限报警
2 总体设计
2.1 系统设计方案论证
实现温度控制的方法主要有以下几种。
方案一:采用纯硬件的闭环控制系统。该系统的优点在于速度较快,但可靠性比较差控制精度比较低、灵活性小、线路复杂、调试、安装都不方便。且要实现题目所有的要求难度较大。
方案二:FPGA/CPLD或采用带有IP内核的FPGA/CPLD方式。即用FPGA/CPLD完成采集,存储,显示及A/D等功能,由IP核实现人机交互及信号测量分析等功能。这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;缺点是调试过程复杂,成本较高。
方案三:单片机与高精度温度传感器结合的方式。即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集与转换。这种方案克服了方案一、二的缺点,所以本课题任务是基于单片机和温度传感器实现对温度的控制。
2.2 系统结构框图
系统主要包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。系统框图如图2.2-1所示
3
复位电路 温度传感器 键盘控制 单片机 显示电路 报警电路 控制电路 图2.2-1 系统框图
其中数据采集模块负责实时采集温度数据,采集到的温度数据传输到单片机,由单片机处理后的数据送显示部分显示。设置模块可设置预定温度,当检测到的温度低于设定温度时,单片机控制驱动电路启动加热,并发出报警声;当检测温度高于设定温度时,停止加热。
3 硬件设计
3.1 元器件的选择 3.1.1 单片机选择
单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,本课题选择ATS51作为主控芯片。
ATS51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位处理器和ISP Flash存储单元,功能强大的微型计算机的ATS51可为许多嵌入式控制应用系统提供高性价比的解决方案。ATS51芯片具有以下特性:
◆指令集和芯片引脚与Intel公司的8051兼容; ◆4KB片内在系统可编程Flash程序存储器; ◆时钟频率为0~33MHz;
◆128字节片内随机读写存储器(RAM); ◆32个可编程输入/输出引脚; ◆2个16位定时/计数器; ◆6个中断源,2级优先级; ◆全双工串行通信接口;
4
◆监视定时器; ◆2个数据指针。
ATS51单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。
◆电源引脚Vcc和Vss Vcc(40脚):接+5V电源正端; Vss(20脚):接+5V电源正端。
◆外接晶振引脚XTAL1和XTAL2
XTAL1(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(MS—52子系列为8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。
◆输入/输出(I/O)引脚P0口、P1口、P2口及P3口
5
P0口(39脚~22脚):这引脚有两种不同功能,分别适用于两种不同情况。第一种情况是S51不带片外存储器,P0口可以作为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据。第二种情况是S51带片外存储器,P0.0-P0.7在CPU访问片外存储器时用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。
P1口(1脚~8脚):这引脚和P0口的引脚类似,P1.7为最高位,P1.0为最低位。当P1口作为通用I/O口使用时,P1.0-P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。
P2口(21脚~28脚):这组引脚的第一功能和上述两组引脚的第一功能相同,既它可以作为通用I/O口使用。
P3口(10脚~17脚):P3.0~P3.7统称为P3口。而且P3口的每一条引脚均可定义为第1功能的输入输出或第2功能。P3口的第2功能见表3.1.1-1。
表3.1.1-1 单片机P3口管脚第2功能
ATS51单片机引 T2T2EX12345671011121314151617181920P10P11P12P13P14P15P16P17RESETRXDTXDINT0INT1T0T1WRRDX2X1VSSVCCP00P01P02P03P04P05P06P07EA/VPALE/PPSENP27P26P25P24P23P22P21P204039383736353433323130292827262524232221AD0AD1AD2AD3AD4AD5AD6AD7引脚 第2功能 RXD(串行口输入端0) P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 TXD(串行口输出端) INT0(部中断0请求输入端,低电平有效) INT1(中断1请求输入端,低电平有效) T0(时器/计数器0计数脉冲端) T1(时器/计数器1数脉冲端) WR(部数据存储器写选通信号输出端,低电平有P3.6 效) P3.7 RD(部数据存储器读选通信号输出端,低电平有效) RXDTXDP3.2P3.3P3.4P3.5P3.6P3.7ATS51脚图如图3.1.1-1所示 6 A15A14A13A12A11A10A9A8
图3.1.1-1 单片机引脚图
3.1.2 传感器选择
本系统采用DALLAS半导体公司生产的一线式数字温度传感器DS18B20采集温度数据、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。
DS18B20的性能特点:采用单总线专用技术,直接输出被测温度值(9位二进制数,含符号位),测温范围为-55℃-+125℃,测量分辨率为0.0625℃。
DS18B20内部结构主要由四部分组成:位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图3.1.2-2所示。
图3.1.2-2 DS18B20引脚分布图
DS18B20高速暂存器共9个存存单元,如表3.1.2-1所示:
表3.1.2-1 DS18B20高速暂存器
7
序号 0 1 2 3 寄存器名称 作 用 序号 寄存器名称 作 用 温度低字节 温度高字节 以16位补码形式存放 4、5 保留字节1、2 6 7 8 计数器余值 计数器/℃ CRC TH/用户字节以16位补码形式存1 放 HL/用户字节存放温度上限 2
以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 44H BEH 4EH 48H B8H 启动DS18B20进行温度转换 读暂存器9个字节内容 将数据写入暂存器的TH、TL字节 把暂存器的TH、TL字节写到E2RAM中 把E2RAM中的TH、TL字节写到暂存器TH、TL8
读电源供电方式 B4H 字节 启动DS18B20发送电源供电方式的信号给主CPU
CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。 3.2 单片机控制模块
控制模块是整个设计方案的核心,它控制了温度的采集、处理与显示、温度值的设定与温度越限时控制电路的启动。本控制模块由单片机ATS51及其外围电路组成,电路如图3.2-1所示。
SW-PBS2+5VC510uF+5VU19R388.2K101114RSTVCCEAP3.0/RXDP3.1/TXDP0.0P3.4/T0P0.1P0.2XTAL2XTAL1GNDATS514031R375139383P0.72C630PC730PY112M181920
图3.2-1 单片机控制模块电路
该电路采用按键加上电复位,S2为复位按键,复位按键按下后,复位端通过51Ω的小电阻与电源接通,迅速放电,使RST引脚为高电平,复位按键弹起后,电源通过8.2KΩ的电阻对10KμF的电容C5重新充电,RST引脚端出现复位正脉冲.
ATS51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路,本设计采用内部时钟方式,利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体振荡器,就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路,C6和C7的值通常选择为30pF左右,晶振Y1选择12MHz.为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器电容应尽可能安装得与单片机引脚XTAL1和
9
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连接在一起接地,每位的段选线与74HC1的8位并口相连,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符,考虑到节约单片机的I/O资源,因而采用串行接口方式,外接8位移位寄存器74HC1构成显示电路,电路如图3.4-1所示。
10
aabcfbgdeecddpfgpdaabcfbgdeecddpfgpdaabcfbgdeecddpfgpd333aabcfbgdeecddpfgpdDPYDPYDPYDPY3LED1LED2LED3LED4721190721190721190721190C374HC1555R1R2R3R4R5R6R7R33220*8R8R9R10R11R12R13R14R34220*8R15R16R17R18R19R20R21R35220*8R22R23R24R25R26R27R28R36220*8345610111213345601111213345601111213QAAQBBQCCLKQDCLRQEQFGNDQVCCGQHQAAQBBQCCLKQDCLRQEQFGNDQVCCGQHQAAQBBQCCLKQDCLRQEQFGNDQGVCCQH174174174+5V+5V+5V174P3.112121212QAAQBBQCCLKQDCLRQEQFGNDQGVCCQHC174HC1C274HC1345610111213C474HC1+5VP3.0R292K5+5V
图3.4-1 显示模块电路
74HC1的逻辑功能介绍如下:
当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。 串行数据输入端(A,B)可控制数据当 A、B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态。
H-高电平 L-低电平 X-任意电平 ↑-低到高电平跳变 QA0,QB0,QH0 -规定的稳态条件建立前的电平 QAn,QGn -时钟最近的↑前的电平。
。 11
图3.4-2 74HC1时序图
在单片机的TXD(P3.1)运行时钟信号,将显示数据由RXD(P3.0)口串行输出至74HC1的A、B端。 3.5 温度设置模块
温度设置部分采用式按键,S4为温度值加1按键,与单片机的P0.0口相连;S3为温度值减1按键,与单片机的P0.1口相连。当没有键按下时,单片机与之相连的输入口线为高电平,当任何一个按键按下时,与之相连的 输入口线被置为低电平,产生外中断条件,在 中断服务程序中读取键盘值。温度设置电路如图3.5-1所示。
12
+5VR302KR312KP0.0P0.1S3DECS4ADD
图3.5-1 温度设置模块电路
3.6 控制电路
控制电路与单片机的P0.2口相连,由于单片机输出控制信号非常微弱,需要用三极管来驱动外围电路,三极管选用NPN型的 9014,当检测温度低于设定温度时,在单片机的P0.2口输出高电平控制信号,使三极管9014导通,使继电器两控制端产生压差,从而使继电器吸合,常开触点接通,控制外部电路对锅炉进行加热;当检测温度高于设定温度时,单片机输出低电平信号,三极管截止,继电器不吸合,外部电路停止加热。控制电路电路图如图3.6-1所示。
+5V+5VD1IN4007452Q231R391KP0.2R322KQ19014JDQ
图3.6-1 控制电路
4 软件设计
系统软件要实现的功能如下:
13
利用4只共阴数码管,LED1显示检测温度十位,LED2显示检测温度个位,LED3显示设定温度十位,LED4显示设定温度个位,显示分辨率为1℃。单片机复位后默认设定温度为40℃,当每按下一次设定温度上升按钮ADD时,设定温度增加1℃,最高为120℃,当每按下一次设定温度下降按钮DEC时,设定温度减少1℃,最低设定为0℃。当设定温度大于检测温度时加热输出,当设定温度小于检测温度时加热停止。 4.1 主程序流程图
温度控制程序的设计应考虑如下:
◆键盘扫描、键码识别和温度显示; ◆炉温采样; ◆数据处理; ◆越限报警和处理。 系统流程图如图4.1-1所示。
开始 初始化 停止加热 判断按键 检测温度 加 减 设定值减 大于设定值加 显 示 与设定温度比较 小于显 示 启动加热 4.2 温度传感器DS18B20工作过程及时序 DS18B20工作过程中的协议如下:
14
图4.1-1 系统流程图
初始化——ROM操作命令——存储器操作命令——处理数据 4.2.1 初始化时序
时序如图4.2.1-1所示。主机总线发送复位脉冲(最短为480μS,最高时间为960μS的低电平信号),接着再释放总线(置总线为高电平)并进入接收状态。DS18B20在检测到总线的上升沿后等待15—60μS发出器件存在脉冲(低电平持续60—240μS)。初始化程序如下所示:
INIT: SETB
NOP CLR P3.4 MOV R0,#0FFH DJNZ SETB
R0,$ P3.4 P3.4
LIU:
MOV R0,#100 JNB DJNZ
P3.4,IT3 R0,LIU
CLR 38H SJMP
IT7
IT3: IT7:
SETB 38H MOV R0,#240 DJNZ SETB RET
R0,$ P3.4
15
60-240μS 480-960μ15-60μS 单片机主动释放
图4.2.1-1 初始化时序图
此初始化程序功能为:检测DS18B20是否存在,如存在,将位地址38H置1;如不存在,将位地址38H清零。
4.2.2写时序
单片机写DS18B20的时序如图4.2.2-2所示,当主机总线从高拉至低电平时就产生写时间隙,DS18B20在检测到下降沿后15μS时开始采样总线上的电平,所以15μS之内应将所需写的位送到总线上,DS18B20再15—60μS间对总线采样,每写一位总时间必须在60—120μS之间完成。若低电平写入的位是0,高电平写入的位是1,连续写时位间的间隙应大于1μS。程序如下所示:
WRITER: WR1:
MOV R0,#8 CLR P3.4 MOV R4,#6 DJNZ RRC A MOV P3.4,C MOV R4,#40 DJNZ SETB NOP DJNZ SETB RET
R0,WR1 P3.4 R4,$ P3.4 R4,$
16
写0 DS18B20检测到下降沿15μS后采样 写1,DS18B20在检测到下降沿1515μS 15 μS后采样,采样时间为15-60μS 60-120μS 60-120μS
图4.2.2-1 单片机写DS18B20时序图
4.2.3读时序
单片机读DS18B20的时序如图4.2.3-1所示,单片机主动产生一个下降沿的启动信号,并维持低电平大于1μS后释放总线,15μS后DS18B20占主动权,DS18B20会将数据按位放在总线上(低位在先,当读取两个字节的温度值时,低字节在先),这时单片机可读取信号,读取一位的时间应在60μS内完成。当需要读取下一位时再产生下降沿启动信号。
启动脉冲 单片机采样第一位 启动脉冲 单片机采样第二位
T<60μS T<60μS
图4.2.3-1 单片机读DS18B20的时序图
READ: SETB
RS0
MOV R4,#2 MOV R0,#36H MOV R5,#8 CLR C SETB NOP NOP CLR P3.4 NOP
17
RE1: RE2:
P3.4
NOP NOP SETB
P3.4
MOV R6,#7 DJNZ
R6,$
MOV C,P3.4 MOV R6,#20 DJNZ RRC A DJNZ
R5,RE2 R6,$
MOV @R0,A DEC R0 DJNZ
R4,RE1
CLR RS0 NOP RET
此程序功能为:读取DS18B20 A/D转换后的温度值,转换后的二进制存入36H、35H单元,默认为12位转换,低8位存入36H单元,高8位存入35H单元(35H单元的高5位均为符号位,所以判断符号只需判断低12位数据的最高位即可)。1表示为零度以下,0表示零度以上,实际有效位为11位。
5 系统调试
5.1 测试环境 环境温度为:23℃
测试仪器: 标准温度计、加热工具(此处选用烧热的电烙铁)、制冷工具(此处选用冰块) 5.2 测量方法
系统温度测量的准确度。我们将标准温度计和温度控制系统的探头放在一起,选定若干不同温度点,记录下标准温度计的温度和温度控制系统测量显示的温度进行比较。
设定开启加热温度,改变环境温度,验证检测到的温度高于设定温度时是否停止加热,检测到的温度小于设定温度时是否启动加热。
18
5.3 测试结果
◆本系统测量显示温度与标准温度计测量温度对比如表5.3-1所示。
表5.3-1 温度测量准确度
标准温度计测量温度(℃) 23 25 30 40 45 60
本系统测量显示温度(℃) 23 25 30 40 45 60 根据温度测量数据的对比可知,本系统能够准确地测量并显示环境温度。
◆设定不同的开启加热温度,改变温度,系统工作情况如表5.3-2所示。
表5.3-2 系统加热测量
设定温度(℃) 环境温度(℃) 发光二极管(亮/灭) 亮 灭 灭 亮 亮 灭 亮 亮 亮 灭 灭 15 15 15 25 25 25 25 40 40 40 40
10 15 30 20 24 25 30 30 39 40 50 19
发光二极管亮表示启动加热,灭表示停止加热。根据表5.3-2可知,系统可以自由设定不同的加热温度,温度设定当环境温度低于设定温度时系统启动加热,当环境温度高于或等于设定温度时,系统停止加热。
经过反复测试,系统温度设定范围为0~120℃,最小区分度为1℃,温度控制的误差≤1℃;能够测量并用数码管显示当前实际温度值;通过复位键可以使系统设定温度还原默认值,通过加一键和减一键可以以1℃步进设置预定温度;环境温度低于设定温度时,启动加热,红色发光二极管点亮,环境温度高于或等于设定温度时,停止加热,红色发光二极管灭。达到了课题要求的技术指标。
5 结束语
本设计详细介绍了基于单片机ATS51的温度控制系统的设计方案与软硬件实现。系统包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。文中对每个部分功能、实现过程作了详细介绍。完成了课题既定的任务,达到了预期的目标。系统具有如下特点:
采用智能温度传感器DS18B20采集温度数据,简化了硬件电路设计,温度采集数据更加精准;
ATS51单片机的采用,有利于功能扩展; 电路设计充分考虑了系统可靠性和安全性。
本系统没有增加外部存储器,设定温度不能保存,断电复位后必须重新设置温度;采用静态显示方式,从而使用了较多的驱动芯片,增加了硬件电路的复杂性;只使用两位显示,即显示温度的十位、个位,没有充分发挥DS18B20的特性。
本设计软件和硬件相结合,有相当大的难度,同时也有很大的实用性。在做毕业设计的过程中,我的理论和实践水平都有了较大的提高。在本课题的设计中,我熟练掌握了单片机硬件设计和接口技术,同时对温度传感器的原理及应用有了一定的了解,掌握了各种控制电路及其相关元器件的使用。通过这次毕业设计,我不仅学会如何将所学专业知识运用到实际生活中,还学会如何克服未知的困难,解决难题的方法。
四年的本科学习生涯即将结束,在本人做毕业设计中,得到了我的导师XX的悉心指导和无私帮助。他严谨的治学态度和谦和的为人给我留下了深刻的印象。
虽然××老师公务繁忙,教学任务重,但在我做毕业设计的每个阶段,从查阅资料到设计草案的确定和修改,中期检查,后期详细设计,实物制作等整个过程中都给予了我悉心的指导。在课题实施阶段,感谢实验室的老师XX对我的帮助和实验器材、场地
20
的支持。
其次要感谢大学四年来所有的授课老师,为我们打下电子专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。
最后我要深深地感谢我的家人,正是他们含辛茹苦地把我养育成人,在生活和学习上给予我无尽的爱、理解和支持,才使我时刻充满信心和勇气,克服成长路上的种种困难,顺利的完成大学学习。
还有许许多多给予我学业上鼓励和帮助的师长、朋友,在此无法一一列举,在此也表示忠心地感谢!
大学生活的结束,也是我人生新的生活起点,我将谨记老师们的教诲,将自己的所学奉献给社会。
21
附录
附录1:系统总原理
LED1LED2LED3LED4aabcfbgdeecddpfgpdaabcfbgdeecddpfgpdaabcfbgdeecddpfgpd333aabcfbgdeecddpfgpdDPYDPYDPYDPY3721190721190721190721190C374LS1555R1R2R3R4R5R6R7R33220*8R8R9R10R11R12R13R14R34220*8R15R16R17R18R19R20R21R35220*8R22R23R24R25R26R27R28R36220*8345601111213345601111213345601111213QAAQBBQCCLKQDCLRQEQFGNDQVCCGQHQAAQBBQCCLKQDCLRQEQFGNDQVCCGQHQAAQBBQCCLKQDCLRQEQFGNDQVCCGQH174174174+5V+5V+5V174TXDRXD12121212QAAQBBQCCLKQDCLRQEQFGNDQVCCGQH+5VJ112CON2+5VD1DIODE452C174LS1C274LS1345601111213C474LS1+5VS4ADD+5VR292K+5VS2SW-PBR3751+5VC510uFR388.2K+5VU19RXD10TXD11+5VRSTGNDOUTVCCS1DS18B20C630P+5VC730P14VCCEAP3.0/RXDP3.1/TXDP0.0P3.4/T0P0.1P0.2XTAL2XTAL1GNDS514031R302KR312KS3DEC393837P0.2123Y112M1819205Q231R391KP0.2R322KQ1C945JDQ
22
附录2:系统PCB图
23
附录3:源程序清单
//………………………..主程序及初始化程序……………………//
KEY_ADD KEY_DEC
BIT P0.0 BIT P0.1
OUTPUT BIT P0.2 ORG LJMP ORG
0000H
MAIN
0100H SP,#60H
4AH,#15 ;单片机复位后默认设定温度为15℃ 4BH,#0 OUTPUT
TEMPER1 DISPLAY KEYSCAN OUT MAAI
MAIN: MOV
MOV MOV CLR
MAAI: LCALL
LCALL LCALL LCALL SJMP
//………………………DS18B20初始化程序………………………// TEMPER1:LCALL INIT
JNB MOV
38H,TEMPER1
A,#0CCH
WRITER
LCALL MOV
A,#44H
WRITER INIT
LCALL LCALL MOV
TE3:
A,#0CCH
WRITER
LCALL MOV
A,#0BEH
WRITER READ
LCALL LCALL NOP
24
RET
P3.4 ;置1
INIT: SETB
NOP CLR MOV DJNZ SETB MOV JNB DJNZ CLR SJMP
P3.4 ;清零 R0,#0FFH
R0,$ P3.4
R0,#100
P3.4,IT3 R0,LIU
LIU:
38H
IT7
38H
IT3: IT7:
SETB MOV
R0,#240 R0,$ P3.4
DJNZ SETB RET
//………………………DS18B20写数据………………………// WRITER:MOV WR1:
CLR MOV DJNZ RRC MOV MOV DJNZ SETB NOP DJNZ SETB RET
25
R0,#8 P3.4 R4,#6 A P3.4,C R4,#40
R4,$ P3.4 R4,$
R0,WR1 P3.4
//………………………DS18B20读数据………………………// READ: SETB
MOV MOV MOV CLR SETB NOP NOP CLR NOP NOP NOP SETB MOV DJNZ MOV MOV DJNZ RRC DJNZ MOV DEC DJNZ CLR NOP RET
P3.4 P3.4
RS0 ;选择工作寄存器组1
R4,#2
R0,#36H ;从36H单元开始存 R5,#8 C
P3.4
RE1: RE2:
R6,#7
R6,$
C,P3.4 R6,#20 A
R5,RE2 R6,$
@R0,A R0
R4,RE1
RS0
//………………………显示程序………………………// DISPLAY:CLR
CLR MOV
7FH
7EH A,36H
26
ANL MOV MOV SWAP ANL MOV MOV SWAP ANL ORL JB MOV MOV DIV MOV MOV MOV DIV MOV MOV MOV CJNE MOV JC MOV SJMP
A,#0FH 40H,A A,36H
A
A,#0FH 41H,A A,35H
A
A,#0F0H A,41H
ACC.7,FU
41H,A B,#100
AB
53H,A A,B B,#10
AB
52H,A 51H,B A,40H
A,#8,PD
50H,#5
XIAO
PD:
50H,#5
EXIT
XIAO: MOV EXIT: AJMP FU:
MOV MOV CPL
50H,#0
EXIT1
41H,A A,40H A
27
ANL INC JB SJMP SETB ANL CJNE MOV SJMP JC MOV SJMP MOV MOV CPL MOV ADDC SETB MOV DIV MOV MOV
A,#0FH
A ACC.4,FU1 FU5 7FH
FU1:
A,#0FH
A,#8,FU2
FU5:
50H,#5
FU3 FU4
FU2:
50H,#5
FU3
FU4: FU3:
50H,#0 A,41H A C,7FH
A,#0 7EH
B,#10
AB
52H,A ;取温度十位送52H 51H,B ;取温度个位送51H A,4AH B,#100
AB
EXIT1: MOV
MOV DIV MOV MOV MOV DIV MOV MOV
4FH,A A,B B,#10
AB
4EH,A ;取得设定温度十位送4EH单元 4CH,B ;取得设定温度个位送4CH单元
28
MOV MOV MOVC MOV JNB CLR MOV MOVC MOV JNB CLR MOV MOVC MOV JNB CLR MOV MOVC MOV JNB CLR SJMP
DPTR,#TAB
A,4CH ;取得设定温度个位段码并通过串口送出显示
A,@A+DPTR
SBUF,A TI
A,4EH ;取得设定温度十位段码并通过串口送出显示
A,@A+DPTR TI,$
SBUF,A TI
A,51H ;取得检测温度个位段码并通过串口送出显示
A,@A+DPTR TI,$
SBUF,A TI
A,52H ;取得检测温度十位段码并通过串口送出显示
A,@A+DPTR TI,$
SBUF,A TI
EXIT3 A,#40H SBUF,A TI,$ TI TI,$
//EXIT2: MOV
//MOV //JNB //CLR
EXIT3: NOP
ACALL RET
DELAY
//………………………数字码表………………………// TAB:
DB 0FCH,60H,0DAH,0F2H,66H,0B6H,3EH,0E0H,0EFH,0E6H
29
//………………………延时程序………………………// DELAY: MOV DE:
MOV DJNZ DJNZ NOP RET
58H,#150 ;延时约20ms 59H,#100
59H,$ 58H,DE
//………………………键盘扫描程序………………………// KEYSCAN:JB
JB DJNZ JB SETB MOV JNZ MOV SJMP
7DH,SCAN1
KEY_ADD,SCAN2 R0,$
KEY_ADD,SCAN2 7DH
A,4BH
SCAN3
4BH,#5
SCAN2
SCAN3: MOV
MOV CJNE MOV SJMP
4BH,#0 A,4AH
A,#120,SCAN5 ;判断设置温度是否到上限120℃
4AH,#120
SCAN2 4AH
KEY_ADD,SCAN2
SCAN5: INC SCAN1: JNB
CLR
7DH
7CH,SCAN11 KEY_DEC,SCAN12 R0,$
KEY_DEC,SCAN12 7CH
SCAN2: JB
JB DJNZ JB SETB MOV
A,4BH
30
JZ MOV SJMP
SCAN13
4BH,#0
SCAN12 A,4AH
A,#0,SCAN14 ;判断设置温度是否到下限0℃
SCAN13:
MOV CJNE MOV MOV SJMP DEC MOV JNB CLR NOP RET
4AH,#10 4BH,#0
SCAN12
SCAN14:
4AH 4BH,#5
KEY_DEC,SCAN12
SCAN11:
7CH
SCAN12:
//………………………输出控制程序………………………// OUT:
MOV JB CJNE MOV CJNE SJMP
A,41H
ACC.7,OUT1 A,4AH,OUT2
A,40H
A,4BH,OUT3 OUT4
OUTPUT ;如果大于,就停止加热
SJMP
CLR
OUT4 OUT5
OUT3: JC
CLR SJMP
OUTPUT
OUT4
OUTPUT ;如果检测温度小于设定温度就启动加热
OUT5: SETB OUT4: NOP
RET
END
31
参考文献:
[1]孙育才:MCS-51系列单片微型计算机及其应用,第4版,东南大学出版社,2006.2,P43-P72
[2]王庆:Protel 99 SE&DXP电路设计教程,电子工业出版社,2008.6,P52-P109 [3]康华光:电子技术基础模拟部分,第4版,高等教育出版社,2006.8,P25-P85 [4]刘军:单片机原理与接口技术,华东理工大学出版社,2006.5,P61-P106 [5]赖寿宏:微型计算机控制技术,机械工业出版社,2009.6,P36-P87 [6]李中望:一种智能火灾报警系统的设计方案,安防科技,2008.3,P72-P126 [7]王忠:基于单片机的语音数字联网火灾报警器设计,现代电子技术,2004.10,P19-P
[8]程 周:可编程序控制器原理与应用,高等教育出版社,2006.4,P76-P136 [9]王永华:现代电气控制及PLC 应用,北京航空航天大学出版社,2007.6,P56-P98 [10]吴中俊、黄永红:可编程序控制器原理及应用,机械工业出版社,2008.8,P26-P83
[11]张万忠、刘明芹:电器与PLC控制技术,化学工业出版社,2009.6,P57-P132 [12]王兆义:实时服务可编程序控制器教程,机械工业出版社,2007.7 ,P-P146 [13]谢正友:PLC的梯形图程序设计,计算机应用技术,2008.2,P42-P53 [14]周志敏,周纪海等 现关电源控制电路及应用 2003.2,P177-P213
[15]张占松,蔡宣三 开关电源的设计与应用 北京:电子工业出版社2001,1,P42-P53 [16]张占松 高频开关稳压电源 广东科技出版社 2006.7,P155-P176 [17]陈伯时 自动控制系统 广播电视大学出版社 2001.8,P200-P252 [18]常敏慧 开关电源应用、设计与维修 2002.7,P188-P231 [17]阎石:数字电子技术基础,高等教育出版社,1998.7,P33-PP81 [18]童诗白:模拟电子技术基础,高等教育出版涉,1998.11,P61-P129 [19]候振鹏:嵌入式C语言程序设计,北京人民邮电出版社,2006.1,P11-P36 [20]徐士良:C语言程序设计教程,北京人民邮电出版社,2001.3,P88-P156
32
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务