您的当前位置:首页正文

温度控制系统论文

来源:个人技术集锦
单片机应用实训 数字电压表的设计

绵阳职业技术学院

单片机应用实训

题 目 数字电压表的设计与制作 专 业 机电一体化技术086(电气) 院 系 信 息 工 程 系 学 号 姓 名 指 导 教 师 彭 仁 明

单片机应用实训 数字电压表的设计

数字电压表的设计

学 生: 指导教师:彭仁明

摘 要:随着社会的发展,温度的测量及控制变得越来越重要,温度是生产过程和科学实验中普遍而且重要的物理参数。本文利用单片机结合传感器技术而开发设计了这一温度监控系统。本文详细地讲述了基于单片机AT89S51和温度传感器DS18B20的温度控制系统的设计方案与软硬件实现方案。系统采用数字温度传感器DS18B20采集温度数据,数码管同步显示温度设定值和当前测量值,可通过按键以1℃的步进改变温度设定值,系统复位后默认设定温度值为45℃。当温度低于设定值时,单片机控制继电器启动加热器加热,同时点亮红色发光二极管,当温度高于设定值时,加热器停止加热,从而实现了测量和控制温度的目的。系统稍微改装可以作为生物培养液温度监控系统,可以做热水器温度调节系统、实验室温度监控系统等等。系统具有控制方便、组态简单和灵活性大等优点,经过反复测试,系统能够稳定运行。

关键词:单片机 ADC0808 液晶显示 控制

单片机应用实训 数字电压表的设计

引言

在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。

单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。因此,单片机广泛用于现代工业控制中。

随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。

由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。温度传感器是其中重要的一类传感器。其发展速度之快,以及其应用之广,并且还有很大潜力。

为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本文利用单片机结合传感器技术而开发设计了这一温度监控系统。文中传感器理论与单片机实际应用有机结合,详细地讲述了基于单片机AT89S51和温度传感器DS18B20的温度控制系统的设计方案与软硬件实现方案。系统包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。文中对每个部分功能、实现过程作了详细介绍。本设计应用性比较强,系统稍微改装可以作为生物培养液温度监控系统,可以做热水器温度调节系统、实验室温度监控系统等等。设计后的系统具有操作方便,控制灵活等优点。

1

单片机应用实训 数字电压表的设计

1.概述

1.1课题研究的目的及意义

随着社会的发展,温度的测量及控制变得越来越重要。温度是生产过程和科学实验中普遍而且重要的物理参数。在工业生产过程中为了高效地进行生产,必须对生产工艺过程中的主要参数,如温度,压力,流量,速度等进行有效的控制。其中温度的控制在生产过程中占有相当大的比例。准确测量和有效控制温度是优质,高产,低耗和安全生产的重要条件。在工业的研制和生产中,为了保证生产过程的稳定运行并提高控制精度,采用微电子技术是重要的途径。它的作用主要是改善劳动条件,节约能源,防止生产和设备事故,以获得好的技术指标和经济效益。

本课题采用51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标。

作为控制系统中的一个典型实验设计,单片机温度控制系统综合运用了微机原理、自动控制原理、传感器原理、模拟电子技术、数字控制技术、键盘显示技术等诸多方面的知识,是对所学知识的一次综合测试。

1.2课题研究现状分析

由于现代工艺越来越多的需要对实时温度进行监测和控制,而且需要的精度越来越高。所以温度控制系统国内外许多有关人员的重视,得到了十分广泛的应用。温度控制系统发展迅速,而且成果显著。由于单片微处理器的性能日益提高、价格又不断降低,使其性能价格比的优势非常明显。因此,如何将单片微处理器应用到锅炉温度自动控制领域,为越来越多的生产厂家所重视。

目前先进国家各种炉窑自动化水平较高,装备有完善的检测仪表和计算机控制系统。其计算机控制系统已采用集散系统和分布式系统的形式,大部分配有先进的控制算法,能够获得较好的工艺性能指标。单片微型计算机是随着超大规模集成电路的技术的发展而诞生的。由于它具有体积小,功能强,性价比高等优点,所以广泛应用于电子仪表,家用电器,节能装置,军事装置,机器人,工业控制等诸多领域,使产品小型化,智能化,既提高了产品的功能和质量又降低了成本,简化了设计。

1.3技术指标

设计并制作一个基于单片机的温度控制系统,能够对炉温进行控制。炉温可以在一定范围内由人工设定,并能在炉温变化时实现自动控制。若测量值高于温度设定范围,由单片机发出控制信号,经过驱动电路使加热器停止工作。当温度低于设定值时,单片机发出一个控制信号,启动加热器。通过继电器的反复开启和关闭,使炉温保持在设定的温度范围内。

①温度设定范围为0~99℃,最小区分度为1℃,温度控制的误差≤1℃ ②能够用数码管精确显示当前实际温度值

2

单片机应用实训 数字电压表的设计

③按键控制:设置复位键、加一键、减一键 ④越限报警

2.总体设计

2.1系统设计方案论证

实现温度控制的方法主要有以下几种。

方案一:采用纯硬件的闭环控制系统。该系统的优点在于速度较快,但可靠性比较差控制精度比较低、灵活性小、线路复杂、调试、安装都不方便。且要实现题目所有的要求难度较大。

方案二:FPGA/CPLD或采用带有IP内核的FPGA/CPLD方式。即用FPGA/CPLD完成采集,存储,显示及A/D等功能,由IP核实现人机交互及信号测量分析等功能。这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;缺点是调试过程复杂,成本较高。

方案三:单片机与高精度温度传感器结合的方式。即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集与转换。这种方案克服了方案一、二的缺点,所以本课题任务是基于单片机和温度传感器实现对温度的控制。

2.2系统结构框图

系统主要包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。系统框图如图1所示。

温度传感器 显示电路 单 键盘控制 报警电路 片 机

复位电路 控制电路

图1 系统框图

其中数据采集模块负责实时采集温度数据,采集到的温度数据传输到单片机,由单片机处理后的数据送显示部分显示。设置模块可设置预定温度,当检测到的温度低于设定温度时,单片机控制驱动电路启动加热,并发出报警声;当检测温度高于设定温度时,停止加热。

3.硬件设计

3.1元器件的选择

3.1.1单片机选择

单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、

3

单片机应用实训 数字电压表的设计

价格便宜等要求,本课题选择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程序存储器; ③时钟频率为0~33MHz;

④128字节片内随机读写存储器(RAM);

⑤32个可编程输入/输出引脚; ⑥2个16位定时/计数器; ⑦6个中断源,2级优先级;

⑧全双工串行通信接口; ⑨监视定时器; ⑩2个数据指针。

AT89S51单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。

1.电源引脚Vcc和Vss Vcc(40脚):接+5V电源正端; Vss(20脚):接+5V电源正端。 2.外接晶振引脚XTAL1和XTAL2 XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。

XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。

3.控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。

RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。

当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。

ALE/ P (30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的地址信号。

4

单片机应用实训 数字电压表的设计

PSEN(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。

EA/Vpp(31脚):EA为访问外部程序储器控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB(MS—52子系列为8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。

4.输入/输出(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口使用。它的第二功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址。

P3口(10脚~17脚):P3.0~P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见表1。

表1 单片机P3口管脚第2功能

引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

第2功能

RXD(串行口输入端0) TXD(串行口输出端)

INT0(部中断0请求输入端,低电平有效) INT1(中断1请求输入端,低电平有效) T0(时器/计数器0计数脉冲端) T1(时器/计数器1数脉冲端)

WR(部数据存储器写选通信号输出端,低电平有效) RD(部数据存储器读选通信号输出端,低电平有效)

5

单片机应用实训 数字电压表的设计

AT89S51单片机引脚图如图2所示

图2 单片机引脚图

1T2EX23456789RXD10TXD11P3.212P3.313P3.414P3.515P3.616P3.717181920T2P10P11P12P13P14P15P16P17RESETRXDTXDINT0INT1T0T1WRRDX2X1VSSVCCP00P01P02P03P04P05P06P07EA/VPALE/PPSENP27P26P25P24P23P22P21P204039383736353433323130292827262524232221AT89S51AD0AD1AD2AD3AD4AD5AD6AD7A15A14A13A12A11A10A9A83.1.2传感器选择

本系统采用DALLAS半导体公司生产的一线式数字温度传感器DS18B20采集温度数据,DS18B20属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。

DS18B20的性能特点:①采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),②测温范围为-55℃-+125℃,测量分辨率为0.0625℃,③内含64位经过激光修正的只读存储器ROM,④适配各种单片机或系统机,⑤用户可分别设定各路温度的上、下限,⑥内含寄生电源。

DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图3所示。

图3 DS18B20引脚分布图

DS18B20高速暂存器共9个存存单元,如表2所示:

6

单片机应用实训 数字电压表的设计

表2 DS18B20高速暂存器

序号 0 1 2 3

寄存器名称 温度低字节 温度高字节

作 用

以16位补码形式存放 以16位补码形式存放

序号 4、5 6 7 8

寄存器名称 保留字节1、2 计数器余值 计数器/℃ CRC

作 用

TH/用户字节1 存放温度上限 HL/用户字节2 存放温度下限

以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。

表3 温度高低字节存放形式

高8位 S 低8位 23

S 22

S 21

S 20

S 2-1

26 2-2

25 2-3

24 2-4

在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。

DS18B20有六条控制命令,如表4所示:

表4 DS18B20控制命令

指 令 温度转换 读暂存器 写暂存器 复制暂存器 重新调ERAM 读电源供电方式

2

约定代码 44H BEH 4EH 48H B8H B4H

操 作 说 明

启动DS18B20进行温度转换 读暂存器9个字节内容

将数据写入暂存器的TH、TL字节 把暂存器的TH、TL字节写到ERAM中

把ERAM中的TH、TL字节写到暂存器TH、TL字节 启动DS18B20发送电源供电方式的信号给主CPU

2

2

CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。

3.2单片机控制模块

控制模块是整个设计方案的核心,它控制了温度的采集、处理与显示、温度值的设定与温度越限时控制电路的启动。本控制模块由单片机AT89S51及其外围电路组成,电路如图4所示。

7

单片机应用实训 数字电压表的设计

R3751SW-PBS2+5VC510uF+5VU19RSTVCCEAP3.0/RXDP3.1/TXDP0.0P3.4/T0P0.1P0.2XTAL2XTAL1GNDAT89S514031R388.2K10111439383P0.72C630PC730PY112M181920

图4 单片机控制模块电路

该电路采用按键加上电复位,S2为复位按键,复位按键按下后,复位端通过51Ω的小电阻与电源接通,迅速放电,使RST引脚为高电平,复位按键弹起后,电源通过8.2KΩ的电阻对10KμF的电容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构成显示电路,电路如图5

8

单片机应用实训 数字电压表的设计

所示。

aabcfbgdeecddpfgpdaabcfbgdeecddpfgpdaabcfbgdeecddpfgpd333aabcfbgdeecddpfgpdDPYDPYDPYDPY3LED1764211907642119055LED2764211905LED3764211905LED4R1R2R3R4R5R6R7R33220*8R8R9R10R11R12R13R14R34220*8R15R16R17R18R19R20R21R35220*8R22R23R24R25R26R27R28R36220*8345610111213345610111213345601111213QAAQBBQCCLKCLRQDQEQFGNDQVCCGQHQAAQBBQCCLKCLRQDQEQFGNDQGVCCQHQAAQBBQCCLKCLRQDQEQFGNDQVCCGQH174174174+5V+5V+5V1741289128912891289QAAQBBQCCLKCLRQDQEQFGNDQVCCGQHC174HC164C274HC164C374HC164345610111213C474HC164+5VP3.0P3.1R292K+5V 图5 显示模块电路

74HC164的逻辑功能介绍如下:

当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。 串行数据输入端(A,B)可控制数据。当 A、B 任意一个为低电平,则禁 止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下 Q0 为低电平。当 A、B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态。真值表如表5所示。

表5 74HC164真值表 Inputs

Clear Clock A B L H H H H

X L ↑ ↑ ↑

X X X X H H L X X L

Outputs

QA QB ………...QH L L ………….L QA0 QB0………….QH0 H QAN…………QGN L QAN…………QGN L QAN…………QGN

H-高电平 L-低电平 X-任意电平 ↑-低到高电平跳变 QA0,QB0,QH0 -规定的稳态条件建立前的电平 QAn,QGn -时钟最近的↑前的电平。

9

单片机应用实训 数字电压表的设计

图6 74HC164时序图

在单片机的TXD(P3.1)运行时钟信号,将显示数据由RXD(P3.0)口串行输出至74HC164的A、B端。

3.5温度设置模块

温度设置部分采用独立式按键,S4为温度值加1按键,与单片机的P0.0口相连;S3为温度值减1按键,与单片机的P0.1口相连。当没有键按下时,单片机与之相连的输入口线为高电平,当任何一个按键按下时,与之相连的 输入口线被置为低电平,产生外中断条件,在 中断服务程序中读取键盘值。温度设置电路如图7所示。

+5VR302KR312KP0.0P0.1S3DECS4ADD 图7 温度设置模块电路

10

单片机应用实训 数字电压表的设计

3.6控制电路

控制电路与单片机的P0.2口相连,由于单片机输出控制信号非常微弱,需要用三极管来驱动外围电路,三极管选用NPN型的 9014,当检测温度低于设定温度时,在单片机的P0.2口输出高电平控制信号,使三极管9014导通,使继电器两控制端产生压差,从而使继电器吸合,常开触点接通,控制外部电路对锅炉进行加热;当检测温度高于设定温度时,单片机输出低电平信号,三极管截止,继电器不吸合,外部电路停止加热。控制电路电路图如图8所示。

+5V+5VD1IN4007452Q231R391KP0.2R322KQ19014JDQ

图8 控制电路

4.软件设计

系统软件要实现的功能如下:

利用4只共阴数码管,LED1显示检测温度十位,LED2显示检测温度个位,LED3显示设定温度十位,LED4显示设定温度个位,显示分辨率为1℃。单片机复位后默认设定温度为40℃,当每按下一次设定温度上升按钮ADD时,设定温度增加1℃,最高为120℃,当每按下一次设定温度下降按钮DEC时,设定温度减少1℃,最低设定为0℃。当设定温度大于检测温度时加热输出,当设定温度小于检测温度时加热停止。

4.1主程序流程图

温度控制程序的设计应考虑如下: 1)键盘扫描、键码识别和温度显示; 2)炉温采样; 3)数据处理;

4)越限报警和处理。 系统流程图如图9所示。

11

单片机应用实训 数字电压表的设计

开始 初始化 停止加热 判断按键 检测温度 加减 设定值减 大于设定值加 显 示 与设定温度比较 小于显 示 启动加热

图9 系统流程图

4.2温度传感器DS18B20工作过程及时序

DS18B20工作过程中的协议如下:

(1)初始化——(2)ROM操作命令——(3)存储器操作命令——(4)处理数据

4.2.1初始化时序

时序如图10所示。主机总线发送复位脉冲(最短为480μS,最高时间为960μS的低电平信号),接着再释放总线(置总线为高电平)并进入接收状态。DS18B20在检测到总线的上升沿后等待15—60μS发出器件存在脉冲(低电平持续60—240μS)。初始化程序如下所示:

INIT: SETB P3.4

NOP CLR P3.4 MOV R0,#0FFH DJNZ R0,$ SETB P3.4 MOV R0,#100

LIU: JNB P3.4,IT3

DJNZ R0,LIU CLR 38H

12

单片机应用实训 数字电压表的设计

SJMP IT7 IT3: SETB 38H IT7: MOV R0,#240 DJNZ R0,$ SETB P3.4 RET

60-240μS 480-960μ15-60μS 单片机主动释放

图10 初始化时序图

此初始化程序功能为:检测DS18B20是否存在,如存在,将位地址38H置1;

如不存在,将位地址38H清零。

4.2.2写时序

单片机写DS18B20的时序如图11所示,当主机总线从高拉至低电平时就产生写时间隙,DS18B20在检测到下降沿后15μS时开始采样总线上的电平,所以15μS之内应将所需写的位送到总线上,DS18B20再15—60μS间对总线采样,每写一位总时间必须在60—120μS之间完成。若低电平写入的位是0,高电平写入的位是1,连续写时位间的间隙应大于1μS。程序如下所示:

WRITER: WR1:

写0 DS18B20检测到下15μS

MOV R0,#8 CLR P3.4

MOV R4,#6 DJNZ R4,$ RRC A MOV P3.4,C MOV R4,#40 DJNZ R4,$ SETB P3.4 NOP

DJNZ R0,WR1 SETB P3.4 RET

写1,DS18B20在检测到下降沿1515 μS后采样,采样时间为15-60μS 60-120μS 降沿15μS后采样 60-120μS 图11 单片机写DS18B20时序图

13

单片机应用实训 数字电压表的设计

4.2.3读时序

单片机读DS18B20的时序如图12所示,单片机主动产生一个下降沿的启动信号,并维持低电平大于1μS后释放总线,15μS后DS18B20占主动权,DS18B20会将数据按位放在总线上(低位在先,当读取两个字节的温度值时,低字节在先),这时单片机可读取信号,读取一位的时间应在60μS内完成。当需要读取下一位时再产生下降沿启动信号。

启动脉冲 单片机采样第一位 启动脉冲 单片机采样第二位 T<60μS T<60μS 图12 单片机读DS18B20的时序图

READ: RE1: RE2:

SETB RS0

MOV R4,#2 MOV R0,#36H MOV R5,#8 CLR C

SETB P3.4 NOP NOP CLR P3.4 NOP NOP NOP

SETB P3.4 MOV R6,#7 DJNZ R6,$ MOV C,P3.4 MOV R6,#20 DJNZ R6,$ RRC A

DJNZ R5,RE2 MOV @R0,A DEC R0

DJNZ R4,RE1 CLR RS0 NOP RET

此程序功能为:读取DS18B20 A/D转换后的温度值,转换后的二进制存入36H、35H单元,默认为12位转换,低8位存入36H单元,高8位存入35H单元

14

单片机应用实训 数字电压表的设计

(35H单元的高5位均为符号位,所以判断符号只需判断低12位数据的最高位即可)。1表示为零度以下,0表示零度以上,实际有效位为11位。

5.系统调试

5.1测试环境

环境温度为:23℃

测试仪器: 标准温度计、加热工具(此处选用烧热的电烙铁)、制冷工具(此处选用冰块)

5.2测量方法

1.系统温度测量的准确度。我们将标准温度计和温度控制系统的探头放在一起,选定若干不同温度点,记录下标准温度计的温度和温度控制系统测量显示的温度进行比较。

2.设定开启加热温度,改变环境温度,验证检测到的温度高于设定温度时是否停止加热,检测到的温度小于设定温度时是否启动加热。

5.3测试结果

1.本系统测量显示温度与标准温度计测量温度对比如表6所示。

表6 温度测量准确度

标准温度计测量温度(℃) 本系统测量显示温度(℃)

23 23 25 25 30 30 40 40 45 45 60 60

根据温度测量数据的对比可知,本系统能够准确地测量并显示环境温度。

2.设定不同的开启加热温度,改变环境温度,系统工作情况如表7所示。

表7 系统加热测量

设定温度(℃) 环境温度(℃) 发光二极管(亮/灭)

15 10 亮 15 15 灭 15 30 灭 25 20 亮 25 24 亮 25 25 灭 25 30 亮 40 30 亮 40 39 亮 40 40 灭 40 50 灭

发光二极管亮表示启动加热,灭表示停止加热。根据表7可知,系统可以自

15

单片机应用实训 数字电压表的设计

由设定不同的加热温度,温度设定当环境温度低于设定温度时系统启动加热,当环境温度高于或等于设定温度时,系统停止加热。

经过反复测试,系统温度设定范围为0~120℃,最小区分度为1℃,温度控制的误差≤1℃;能够测量并用数码管显示当前实际温度值;通过复位键可以使系统设定温度还原默认值,通过加一键和减一键可以以1℃步进设置预定温度;环境温度低于设定温度时,启动加热,红色发光二极管点亮,环境温度高于或等于设定温度时,停止加热,红色发光二极管灭。达到了课题要求的技术指标。

结论

本文详细介绍了基于单片机AT89S51的温度控制系统的设计方案与软硬件实现。系统包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。文中对每个部分功能、实现过程作了详细介绍。完成了课题既定的任务,达到了预期的目标。系统具有如下特点:

⑪.采用智能温度传感器DS18B20采集温度数据,简化了硬件电路设计,温度采集数据更加精准;

⑫.AT89S51单片机的采用,有利于功能扩展; ⑬.电路设计充分考虑了系统可靠性和安全性。 本系统没有增加外部存储器,设定温度不能保存,断电复位后必须重新设置温度;采用静态显示方式,从而使用了较多的驱动芯片,增加了硬件电路的复杂性;只使用两位显示,即显示温度的十位、个位,没有充分发挥DS18B20的特性。

本课题软件和硬件相结合,有相当大的难度,同时也有很大的实用性。在做毕业设计的过程中,我的理论和实践水平都有了较大的提高。在本课题的设计中,我熟练掌握了单片机硬件设计和接口技术,同时对温度传感器的原理及应用有了一定的了解,掌握了各种控制电路及其相关元器件的使用。通过这次毕业设计,我不仅学会如何将所学专业知识运用到实际生活中,还学会如何克服未知的困难,解决难题的方法。

16

单片机应用实训 数字电压表的设计

参考文献

[1] 童诗白,华成英.模拟电子技术基础[M]. 北京:高等教育出版社,2006 [2] 张齐,杜群贵.单片机应用系统设计技术[M]. 北京:电子工业出版社,2007 [3] 中国机械工业教育协会 组编.《单片机原理与应用》.机械工业出版社.2001

[4] 杨金岩等.8051单片机数据传输接口扩展技术与应用实例[M].北京:人民邮电出版社,

2005.

[5] 求是科技.单片机通信技术与工程实践[M].北京:人民邮电出版社,2005 [6] http://www.21ic.com/

[7] 杨金岩等.8051单片机数据传输接口扩展技术与应用实例[M].北京:人民邮电出版社,

2005.

[8] 郭永贞主编 数字电子技术[M] 西安电子科技大学出版社 2000 [9] 李广弟 单片机基础[M],北京:北京航空航天大学出版社,2001 [10] 张洪润 电子线路与电子技术[M].清华大学出版社[M],2005 [11] 张齐,杜群贵 单片机应用系统设计技术[M].电子工业出版社,2004 [12] http://www.123ic.cn/ [13] http://www.cndzz.com/

17

单片机应用实训 数字电压表的设计

附录

附录1 系统总原理图

LED1LED2LED3LED4aabcfbgdeecddpfgpdaabcfbgdeecddpfgpdaabcfbgdeecddpfgpd333aabcfbgdeecddpfgpdDPYDPYDPYDPY376421190764211907642119076421190555R1R2R3R4R5R6R7R33220*8R8R9R10R11R12R13R14R34220*8R15R16R17R18R19R20R21R35220*8R22R23R24R25R26R27R28R36220*8345610111213345610111213345610111213QAAQBBQCCLKCLRQDQEQFGNDQGVCCQHQAAQBBQCCLKCLRQDQEQFGNDQGVCCQHQAAQBBQCCLKCLRQDQEQFGNDQGVCCQH174174174+5V+5V+5V174TXDRXD1289128912891289QAAQBBQCCLKCLRQDQEQFGNDQGVCCQHC174LS164C274LS164C374LS1643456101112135C474LS164+5VR292K+5VS2SW-PBR3751+5VC510uF+5VJ112CON2+5VU19RXD10TXD11R388.2K+5VRSTGNDOUTVCCS1DS18B20C630P+5VC730P14VCCEAP3.0/RXDP3.1/TXDP0.0P3.4/T0P0.1P0.2XTAL2XTAL1GNDS514031R302KR312KS3DEC+5VS4ADD393837P0.2123Y112M181920+5VD1DIODE452Q231R391KP0.2R322KQ1C945JDQ

18

单片机应用实训 数字电压表的设计

附录2 系统PCB图

19

单片机应用实训 数字电压表的设计

附录3 源程序清单

//………………………..主程序及初始化程序……………………// KEY_ADD BIT P0.0 KEY_DEC BIT P0.1 OUTPUT BIT P0.2 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP,#60H

MOV 4AH,#15 ;单片机复位后默认设定温度为15℃ MOV 4BH,#0 CLR OUTPUT MAAI: LCALL TEMPER1 LCALL DISPLAY LCALL KEYSCAN LCALL OUT SJMP MAAI

//………………………DS18B20初始化程序………………………// TEMPER1:LCALL INIT JNB 38H,TEMPER1 MOV A,#0CCH LCALL WRITER MOV A,#44H LCALL WRITER TE3:LCALL INIT MOV A,#0CCH LCALL WRITER MOV A,#0BEH LCALL WRITER LCALL READ NOP RET INIT: SETB P3.4 ;置1 NOP CLR P3.4 ;清零 MOV R0,#0FFH DJNZ R0,$ SETB P3.4 MOV R0,#100 LIU: JNB P3.4,IT3 DJNZ R0,LIU CLR 38H SJMP IT7 IT3: SETB 38H

20

单片机应用实训 数字电压表的设计

IT7: MOV R0,#240 DJNZ R0,$ SETB P3.4 RET

//………………………DS18B20写数据………………………// WRITER:MOV R0,#8 WR1: CLR P3.4 MOV R4,#6 DJNZ R4,$ RRC A MOV P3.4,C MOV R4,#40 DJNZ R4,$ SETB P3.4 NOP DJNZ R0,WR1 SETB P3.4 RET

//………………………DS18B20读数据………………………// READ: SETB RS0 ;选择工作寄存器组1 MOV R4,#2 MOV R0,#36H ;从36H单元开始存 RE1: MOV R5,#8 RE2: CLR C SETB P3.4 NOP NOP CLR P3.4 NOP NOP NOP SETB P3.4 MOV R6,#7 DJNZ R6,$ MOV C,P3.4 MOV R6,#20 DJNZ R6,$ RRC A DJNZ R5,RE2 MOV @R0,A DEC R0 DJNZ R4,RE1 CLR RS0 NOP

21

单片机应用实训 数字电压表的设计

RET

//………………………显示程序………………………// DISPLAY:CLR 7FH CLR 7EH MOV A,36H ANL A,#0FH MOV 40H,A MOV A,36H SWAP A ANL MOV MOV SWAP ANL ORL JB MOV MOV DIV MOV MOV MOV DIV MOV MOV MOV CJNE MOV PD: JC MOV SJMP XIAO: MOV EXIT: AJMP FU: MOV MOV CPL ANL INC JB SJMP FU1: SETB ANL FU5: CJNE MOV

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 50H,#5 EXIT 50H,#0 EXIT1 41H,A A,40H A A,#0FH A ACC.4,FU1 FU5 7FH A,#0FH A,#8,FU2 50H,#5

22

单片机应用实训 数字电压表的设计

FU2: FU4: FU3: SJMP

JC MOV SJMP MOV MOV CPL MOV ADDC A FU3 FU4 50H,#5 FU3 50H,#0 A,41H

C,7FH A,#0 SETB MOV DIV MOV MOV EXIT1: MOV MOV DIV MOV MOV MOV DIV MOV MOV MOV MOV MOVC MOV JNB CLR MOV MOVC MOV JNB CLR MOV MOVC MOV JNB CLR MOV MOVC MOV JNB

CLR

7EH B,#10 AB

52H,A 51H,B A,4AH B,#100 AB 4FH,A A,B B,#10 AB

4EH,A 4CH,B DPTR,#TAB

A,4CH A,@A+DPTR SBUF,A TI,$

TI A,4EH A,@A+DPTR SBUF,A TI,$

TI A,51H A,@A+DPTR SBUF,A TI,$

TI A,52H A,@A+DPTR SBUF,A TI,$

TI

;取温度十位送52H ;取温度个位送51H ;取得设定温度十位送4EH单元 ;取得设定温度个位送4CH单元 ;取得设定温度个位段码并通过串口送出显示;取得设定温度十位段码并通过串口送出显示 ;取得检测温度个位段码并通过串口送出显示 ;取得检测温度十位段码并通过串口送出显示 23

单片机应用实训 数字电压表的设计

SJMP EXIT3 //EXIT2: MOV A,#40H //MOV SBUF,A //JNB TI,$ //CLR TI EXIT3: NOP ACALL DELAY RET

//………………………数字码表………………………// TAB: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,3EH,0E0H,0EFH,0E6H //………………………延时程序………………………// DELAY: MOV 58H,#150 ;延时约20ms DE: MOV 59H,#100 DJNZ 59H,$ DJNZ 58H,DE NOP RET

//………………………键盘扫描程序………………………// KEYSCAN:JB 7DH,SCAN1 JB KEY_ADD,SCAN2 DJNZ R0,$ JB KEY_ADD,SCAN2 SETB 7DH MOV A,4BH JNZ SCAN3 MOV 4BH,#5 SJMP SCAN2 SCAN3: MOV 4BH,#0 MOV A,4AH SCAN5: SCAN1: SCAN2:

CJNE

MOV SJMP INC JNB CLR JB JB DJNZ JB SETB MOV JZ MOV SJMP

A,#120,SCAN5 ;判断设置温度是否到上限120℃ 4AH,#120 SCAN2 4AH KEY_ADD,SCAN2 7DH 7CH,SCAN11 KEY_DEC,SCAN12 R0,$ KEY_DEC,SCAN12 7CH A,4BH SCAN13 4BH,#0 SCAN12

24

单片机应用实训 数字电压表的设计

SCAN13: MOV A,4AH

CJNE A,#0,SCAN14 ;判断设置温度是否到下限0℃ MOV 4AH,#10 MOV 4BH,#0 SJMP SCAN12 SCAN14: DEC 4AH MOV 4BH,#5 SCAN11: JNB KEY_DEC,SCAN12 CLR 7CH SCAN12: NOP RET

//………………………输出控制程序………………………// OUT: MOV A,41H JB ACC.7,OUT1 CJNE A,4AH,OUT2 MOV A,40H CJNE A,4BH,OUT3 CLR OUTPUT SJMP OUT4 OUT1: SETB OUTPUT SJMP OUT4 OUT2: JC OUT5 ;判断检测温度是否大于设定温度 CLR OUTPUT ;如果大于,就停止加热 SJMP OUT4 OUT3: JC OUT5 CLR OUTPUT SJMP OUT4 OUT5: SETB OUTPUT ;如果检测温度小于设定温度就启动加热 OUT4: NOP RET END

25

因篇幅问题不能全部显示,请点此查看更多更全内容