基于AT89C52单片机的温度控制恒温箱设计

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/89236166?spm=1001.2014.3001.5503
在这里插入图片描述
C 源码+仿真图+毕业设计+实物制作步骤+04

在这里插入图片描述

摘要

在人类的生活环境中,温度扮演着极其重要的角色。温度是工业生产和生活中常见的参数之一,任何物理变化和化学反应过程都与温度密相关,因此温度检测和监控是生产自动化的重要任务。随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化是现代温度控制系统发展的主流方向。特别是近几年来,温度控制系统早已应用到人们生活的各个方面。
温度测量是温度控制的基础,技术已经比较成熟。传统的测温元件有热电偶和热敏电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量,采用美国DALLAS半导体公司推出的一种改进型智能温度传感器DS18B20作为检测元件,温度范围为-55~125ºC,最高分辨率可达0.0625ºC。DS18B20可以直接读出被测物体的温度值,而且采用单总线与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
本文介绍一种基于AT89C52单片机的温度测量及报警系统,该电路采用DS18B20作为温度监测元件,使用LED数码管作为模块显示,能设置温度报警上下限。当超出报警值时,会有LED等和蜂鸣器的声光报警提示,同时还有升温和降温装置工作,使得温度恒定在一个范围之内。

关键词:单片机;温度;DS18B20传感器

Abstract

Temperature plays an extremely important role in human life. Temperature is one of the common parameters in industrial production and life. Any physical change and chemical reaction process is closely related to temperature. Therefore, temperature detection and monitoring is an important task of production automation. With the development of society, the progress of science and technology, as well as the application of temperature measuring instruments in various fields, intelligent is the main direction of the development of modern temperature control system. Especially in the last few years, the temperature control system has been applied to all aspects of people’s life.
Temperature measurement is the basis of temperature control, technology has been more mature. The traditional temperature measurement elements have thermocouple and thermal resistance. And thermocouple and thermal resistance are generally measured voltage, and then converted into the corresponding temperature, these methods are relatively complex, need more external hardware support. We use a relatively simple way to measure the American Dallas Semiconductor Company launched an advanced intelligent temperature sensor DS18B20 as the detecting element, the temperature range is -55~125 ºC, up to a maximum resolution of 0.0625 degrees. DS18B20 can be directly read out the temperature of the measured object, and the use of a single bus and single chip connected to reduce the external hardware circuit, with low cost and easy to use features.
This paper introduces a AT89C52 microcontroller based temperature measurement and alarm system, the circuit uses DS18B20 as temperature monitoring element, the use of LED digital tube as the module display, can set the upper and lower limits of temperature alarm. When beyond the alarm value, there will be LED and buzzer sound and light alarm, while there is a heating and cooling device to work, so that the temperature is constant in a range of.

Keywords: Single Chip Microcompute; Temperature ; DS18B20 sensor

第1章 绪论
1.1 概述
二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度测量和控制也成为了生活生产中频繁使用的词语,同时它们在各行各业中也发挥着重要的作用。如在日趋发达的工业之中,利用测量与控制温度来保证生产的正常运行。在农业中,用于保证蔬菜大棚的恒温保产等。
温度是表征物体冷热程度的物理量,温度测量则是工农业生产过程中一个很重要而普遍的参数。温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。
单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业、农业等重要领域中担负着重要的测量任务。在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。

1.2 国内外发展现状
1.2.1 国外研究现状
国外对温度控制技术研究较早,始于20世纪70年代。先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制。80年代末出现了分布式控制系统。目前正开发和研制计算机数据采集控制系统的多因子综合控制系统。90年代中期,智能温控仪问世,它是微电子技术、计算机技术和自动测试技术的结晶。目前,国际上已开发出多种智能温控产品系列,智能温控器内部包含温度传感器、AD转换器、信号处理器和接口电路,有的产品还有多路选择器、中央控制器、随机存储器和只读存储器等。现在世界各国的温度测控技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展。
1.2.2 国内研究现状
我国对于温度测控技术的研究较晚,始于20世纪80年代。我国工程技术人员在吸收发达国家温度测控技术的基础上,才掌握了温度室内微机控制技术,该技术仅限于对温度的单项环境因子的控制。我国温度测控设施计算机应用,在总体上正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展。在技术上,以单片机控制的单参数单回路系统居多,尚无真正意义上的多参数综合控制系统,与发达国家相比,存在较大差距。我国温度测量控制现状还远远没有达到工厂化的程度,生产实际中仍然有许多问题困扰着我们,存在着装备配套能力差,产业化程度低,环境控制水平落后,软硬件资源不能共享和可靠性差等缺点。

第2章 系统总体方案设计
2.1 设计要求
1)可进行温度值的实时显示,精度为0.1摄氏度。
2)使用数码管作为显示设备。
3)可通过按键设置温度的报警范围
4)一旦温度过低,绿色指示灯亮,蜂鸣器响,加热膜开始加热,模拟升温装置。
5)一旦温度过高,红色指示灯亮,蜂鸣器响,风扇开始转动,模拟降温装置。

2.2 方案选择
2.2.1 传感器的选择
方案一:采用模拟集成温度传感器,模拟集成传感器是采用硅半导体集成工艺而制成的,因此亦称硅传感器或单片集成温度传感器。典型代表是AD590。AD590是温度-电流传感器,对于提高系统抗干扰能力有很大的帮助。但需要放大电路和A/D转换电路,电路设计较为繁琐。由于AD590的增益有偏差,因此应对采集电路进行调整,增加设计难度。
方案二:采用数字单片智能温度传感器,数字温度传感器包含A/D转换器、温度传感器、信号处理器、存储器(或寄存器)和接口电路等模块。其典型产品有DS18B20。DS18B20是美国DALLAS公司生产的一线式数字温度传感器,其温度测量范围为-55℃~125℃,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式并以串行形式输出,其工作电源既可采用寄生电源方式产生,也可在远端引入。多个DS18B20还可以将数据线并联到CPU的同一根数据线上,CPU只需一个IO口就能与多个DS18B20进行通信,占用CPU的端口较少,并且制作简单,外接电路简单。
比较以上方案,由于DS18B20将温度传感器、信号放大调理、A/D转换、接口全部集成于一芯片,与单片机连接简单、方便。与AD590相比是更新一代的温度传感器,所以温度传感器采用DS18B20。
2.2.2 单片机的选择
方案一:采用DSP作为系统控制器。DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。DSP具有对元件值的容限不敏感,受温度、环境等外部因素影响小,容易实现集成,可分时复用,共享处理器,方便调整处理器的系数实现自适应,可用于频率非常低的信号等优点。但DSP硬件电路比较复杂,且价格昂贵,数字系统由耗电的有源器件构成,没有无源设备可靠。
方案二:采用单片机作为系统控制器。单片机具有可靠性强、性价比搞、电压低、功耗低等优点得到迅猛发展和大范围推广,单片机算术运算功能强,软件编程灵活,自由度大,可用软件编程实现各种逻辑功能,本身带有定时器、计数器,可以用来定时和计数,并且其功耗低,体积小,计数成熟和成本低等优点。
通过以上两种方案论证和比较,从设计的实用性,方便性和成本出发,选择了以AT89C52单片机作为中央处理单元进行温度计的设计。

第3章 系统硬件设计
3.1 整体方案设计
3.1.1 系统概述
整个系统以AT89C52单片机为核心器件,配合电阻电容晶振等器件,构成单片机的最小系统。其它个模块围绕着单片机最小系统展开。其中包括,传感器采用DS18B20,负责采集温度数据后发给单片机。显示设备采用4位共阴数码管,显示检测到的温度值。按键模块,主要是进行报警值的设置。报警模块采用蜂鸣器+LED的模式,超出报警范围则进行声光报警,同时还有升温和降温装置工作,使得温度恒定在一个范围之内。
3.1.2 系统框图

  3-1 系统框图

3.2 最小系统模块
3.2.1 AT89C52简介
(1)概述
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
(2)主要功能特性
 ◆兼容MCS52指令系统;
 ◆8k可反复擦写(>1000次)Flash ROM;
 ◆32个双向I/O口;
◆256x8bit内部RAM ;
 ◆3个16位可编程定时/计数器中断;
◆时钟频率0-24MHz;
 ◆2个串行中断;
 ◆可编程UART串行通道;
 ◆2个外部中断源;
 ◆共8个中断源;
 ◆2个读写中断口线;
 ◆3级加密位;
 ◆低功耗空闲和掉电模式;
◆软件设置睡眠和唤醒功能;
(3)8052单片机的引脚功能
MCS-52系列单片机一般采用40个引脚,双列直插式封装,用HMOS工艺制造,其外部引脚排列如图3-2所示。其中,各引脚的功能为:

                            图3-2 AT89C52引脚图

① 主电源引脚
VCC(40脚),接+5V电源正端;
GND(20脚),接+5V电源地端;
② 外接晶体或外部振荡器引脚
XTAL1(19脚),接外部晶振的一个引脚。在单片机内部,它是一个反相放大器 的输入端。当采用外部振荡器时,此引脚应接 地。
XTAL2(18脚),接外部晶振的另一个引脚。在片内接至反相放大器的输出端和 内部时钟电路的输入端。当采用外部振荡器时,此脚接外部振荡器的输出端。
③ 控制信号线
RESET(9脚),复位信号输入端,复位/掉电时内部RAM的备用电源输入端。
ALE(30脚),地址锁存允许/编程脉冲输入,用ALE锁存从P0口输出的低8位地址。在对片内EPROM编程时,编程脉冲由此输入。
PSEN(29脚),外部程序存储器读选通信号,低电平有效。
EA(31脚),访问外部存储器允许/编程电压输入。EA为高电平时,访问内部存 储器;低电平时,访问外部存储器。
④ 多功能I/O口引脚
8052单片机设有4个双向I/O口(P0、P1、P2、P3),每一组I/O口线都可以独立地用作输入或输出口,其中:
P0口(32~39脚)——双向口(三态),可作为输入/输出口,可驱动8个LSTTL门电路。实际应用中常作为分时使用的地址/数据总线口,对外部程序或数据存储器寻址时低8位地址与数据总线分时使用P0口:先送低8位地址信号到P0口,由地址锁存信号ALE的下降沿将地址信号锁存到地址锁存器后,再作为数据总线的口线对数据进行输入或输出。
P1口(1~8脚)——准双向口(三态),可驱动4个LSTTL门电路。用作 输入线时,口锁存器必须由单片机先写入“1”,每一位都可编程为输入或输出 线。
P2口(21~28)——准双向口(三态),可驱动4个LSTTL门电路。可作 为输入/输出口,实际应用中一般作为地址总线的高8位,与P0口一起组成16 位地址总线,用于对外部存储器的接口电路进行寻址。
P3口(10~17脚)——准双向口(三态),可驱动4个LSTTL门电路。双 功能口,作为第一功能使用时,与P1口一样;作为第二功能使用时,每一 位都有特定用途,其特殊用途如表3.1所示:
表3.1 P3口第二用途
端口引脚 第二功能 注 释
P3.0 RXD 串行口数据接收端
P3.1 TXD 串行口数据发送端
P3.2 /INT0 外中断请求0
P3.3 /INT1 外中断请求1
P3.4 T0 定时/计数器0外部计数信号输入
P3.5 T1 定时/计数器1外部计数信号输入
P3.6 /WR 外部RAM写选通信号输出
P3.7 /RD 外部RAM读选通信号输出

3.2.2 最小系统电路
AT89C52的最小系统如图3-3所示,整个最小系统由三个部分组成,晶振电路部分、复位电路部分、电源电路等三个部分组成。
晶振电路包括2个30pF的电容C2和C3,以及12M的晶振X1。电容的作用在这里是起振作用,帮助晶振更容易的起振,取值范围是15-33pF。晶振的取值也可以是24M,晶振的取值越高,单片机的执行速度越快。在进行电路设计的时候,晶振部分越靠近单片机越好。
单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。
复位电路由10uF的极性电容C1和10K的电阻R2构成。利用电容电压不能突变的性质,可以知道,当系统一上电,RESET脚将会出现高电平,并且这个高电平持续的时间由电路的RC值来决定。典型的52单片机当RESET脚的高电平持续两个机器周期以上就将复位,所以适当组合RC的取值就可以保证可靠的复位。
最后一个是电源部分,采用5V的USB直接供电,可采用手机充电器、电脑USB口、移动电源等设备进行供电。
此外,除了单片机最小系统的3个部分之外,这里还多了一些外部电路。
由于AT89C52的P0口是漏极开路输出,因此在P0口接了一个1K的排阻R1,使得P0口可以作为普通的I/O口使用,本设计用P0口来做数码管的数据口。
特别注意的是,对于31脚(EA),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。由于我们的程序存储在了单片机内部,所以EA要接高电平,保证单片机是从内部读取程序去执行的。

图3-3 单片机最小系统
3.3 DS18B20传感器电路
3.3.1 DS18B20简介
(1)概述
DS18B20(图3-4)是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化,低功耗,高性能,抗干扰能力强,易配微处理器等优点,可直接将温度转化成数字信号处理器处理。测量的温度范围是-55125℃,测温误差0.5℃。可编程分辨率912位,对应的可分辨温度分别为0.5℃,0.25℃,0.125℃和0.0625℃。相较热电偶传感器而言可实现高精度测温。

图3-4 DS18B20图
(2)特性
独特的1-Wire总线接口仅需要一个管脚来通信;
每个设备的内部ROM上都烧写了一个独一无二的64位序列号;
多路采集能力使得分布式温度采集应用更加简单;
无需外围元件;
供电范围为3.0V至5.5V;
温度可测量范围为:-55℃至+125℃(-67℉至+257℉);
温度范围超过-10℃至85℃之外时具有±0.5℃的精度;
内部温度采集精度可以由用户自定义为9-Bits至12-Bits;
温度转换时间在转换精度为12-Bits时达到最大值750ms;
用户自定义非易失性的的温度报警设置;
定义了温度报警搜索命令和当温度超过用户自定义的设定值时;
与DS1822程序兼容。
(3)管脚定义
Pin1:(VDD),可选的电源引脚;
Pin2:(DQ),单线运用的数据输入/输出引脚;
Pin3:(VDD),接地端,电源负极;
(4)应用领域
该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等。
轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。
汽车空调、冰箱、冷柜、以及中低温干燥箱等。
供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制。
3.3.2 时序说明
单总线信号 DS18B20需要严格的单总线协议以确保数据的完整性。协议包括集中单总线信号类型:复位脉冲、存在脉冲、写0、写1、读0和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。
复位序列,和DS18B20间的任何通讯都需要以初始化序列开始,初始化序列见图3-5。一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据。
在初始化序列期间,总线控制器拉低总线并保持480us以发出(TX)一个复位脉冲,然后释放总线,进入接收状态(RX)。单总线由5K上拉电阻拉到高电平。当DS18B20探测到I/O引脚上的上升沿后,等待15-60us,然后发出一个由60-240us低电平信号构成的存在脉冲。

图3-5 DS18B20初始化时序图
写时序由两种写时序:写1时序和写0时序。总线控制器通过写1时序写逻辑1到DS18B20,写0时序写逻辑0到DS18B20。所有写时序必须最少持续60us,包括两个写周期之间至少1us的恢复时间。当总线控制器把数据线从逻辑高电平拉到低电平的时候,写时序开始(3-6)。
总线控制器要生产一个写时序,必须把数据线拉到低电平然后释放,在写时序开始后的15us释放总线。当总线被释放的时候,5K的上拉电阻将拉高总线。总控制器要生成一个写0时序,必须把数据线拉到低电平并持续保持(至少60us)。
总线控制器初始化写时序后,DS18B20在一个15us到60us的窗口内对I/O线采样。如果线上是高电平,就是写1。如果线上是低电平,就是写0。

3-6 读/写时序图
读时序,总线控制器发起读时序时,DS18B20仅被用来传输数据给控制器。因此,总线控制器在发出读暂存器指令[BEh]或读电源模式指令[B4H]后必须立刻开始读时序,DS18B20可以提供请求信息。除此之外,总线控制器在发出发送温度转换指令[44h]或召回EEPROM指令[B8h]之后读时序。
所有读时序必须最少60us,包括两个读周期间至少1us的恢复时间。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放。在总线控制器发出读时序后,DS18B20通过拉高或拉低总线上来传输1或0。当传输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态。从DS18B20输出的数据在读时序的下降沿出现后15us内有效。因此,总线控制器在读时序开始后必须停止把I/O脚驱动为低电平15us,以读取I/O脚状态。
3.3.3 DS18B20模块电路图
DS18B20的模块电路图如右图所示:

                    图3-7 DS18B20模块连接图

3.4 数码管显示模块
3.4.1 数码管简介
数码管是一类价格便宜 使用简单,通过对其不同的管脚输入相对的电流,使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数的器件。在电器特别是家电领域应用极为广泛,如显示屏、空调、热水器、冰箱等等。LED数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。数码管的外形如图3-8所示。

图3-8 数码管封装图
LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管(图3-9),发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管(图3-10)。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

  图3-9 共阳数码管内部原理图           图3-10 共阴数码管内部原理图

3.4.2 数码管驱动方式的分类
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S52单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
动态显示,LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
3.4.3 数码管驱动电路
本设计由于采用了4位数码管,如果采用静态驱动的话,将会占用单片机32个IO口,导致单片机IO口不够用,因此采用数码管的动态驱动方式,电路如下图(图3-11)所示,把数码管的数据口接到单片机的PO口上,位选端则由单片机的P27、P26、P25、P24进行控制。只需12个IO口,就可以控制4位数码管的显示。在程序中需要轮流点亮每位数码管,并且保持一定的点亮时间,由于人眼存在短暂的视觉停留,所以最终看起来的效果就好像是数码管同时发亮显示。

图3-11 数码管驱动电路
3.5 蜂鸣器模块
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。当接通电源后多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。本设计使用的是电磁式蜂鸣器。
此外,蜂鸣器还有有源蜂鸣器与无源蜂鸣器的区别。注意这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用2K-5K的方波去驱动它。本设计使用的是有源蜂鸣器。
由于蜂鸣器工作时,需要的电流比较大,单片机的IO口输出的电流又比较小,所以这里利用三极管的开关管功能来控制蜂鸣器发音,本设计选用的三极管型号是PNP三极管S8550,而且本设计选用的蜂鸣器属于有源蜂鸣器,即在蜂鸣器内部已经内置了震荡电路,单片机无需连续发出高低电平来驱动它,而只要输出高(或低)电平即可,这大大简化了单片机程序的设计。由于选用的是PNP型而单片机上电IO口默认是高电平的,所以上电时蜂鸣器是不会发出鸣叫的。蜂鸣器电路如图3-12所示。

图3-12 蜂鸣器电路
3.6 按键输入模块
键盘是人与单片机打交道的主要设备。站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。其次就是消除在按键过程中产生的“毛刺”现象。这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。
本设计中由于采用的按键数量较少,只有3个按键,分别是“设置”、“减”、“加”,故采用了独立键盘的方式。按键的连接图3-13所示:

  图3-13 按键电路

3.7 LED显示电路
发光二极管简称为LED。由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。
它是半导体二极管的一种,可以把电能转化成光能。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光,氮化镓二极管发蓝光。
发光二极管的反向击穿电压大于5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过二极管的电流。
本设计中采用了2颗LED灯,分别为红色和绿色,红色代表温度过高,绿色则代表温度过低。

                             图3-14 LED电路

3.8 继电器电路
继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
按继电器的工作原理或结构特征分类的不同,大致可将继电器分为电磁继电器、固体继电器、温度继电器、舌簧继电器、时间继电器、高频继电器、极化继电器、光继电器、声继电器、热继电器、仪表式继电器、霍尔效应继电器、差动继电器等。
本设计中采用的继电器属于电磁式继电器。电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。继电器一般有两股电路,为低压控制电路和高压工作电路。
继电器模块的电路如下图(图3-15)所示。继电器使用的是5V电压触发的。由于继电器由导通到关断瞬间,由于工作线圈有电感的性质,所以会在继电器的线圈的低电压端产生一个瞬间电压尖峰,通常能高达数十倍的线圈额定工作电压。所以这里接入一个二极管在继电器两端,因为二极管的负端通常接到VCC,因此电压尖峰将被抑制。保护了板上的电子元件。当单片机的IO口给PNP三极管一个低电平后后,三极管导通,继电器供电,因此继电器从断开变为闭合,最终将小风扇或加热膜接入5V电压,这样就实现了单片机控制加温或降温的效果。

图3-15 继电器电路

第4章 软件设计
4.1 程序语言及开发环境
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔实验室的Dennis M. Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件、三维、二维图形和动画,具体应用例如单片机以及嵌入式系统开发。
Keil C52是美国Keil Software公司出品的52系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
4.2 程序流程图设计
4.2.1 总体程序流程图设计
本系统的软件流程图如图4-1所示。最开始先进行定时器的初始化,本设计利用定时器实现数码管的动态扫描。接着就进入一个死循环,死循环执行以下内容:1读取当前的温度值;2显示检测到的温度值;3判断检测到的温度是否超出设置的上下限,是的话则启动声光报警,还有模拟恒温装置;4延时并进行按键扫描,若检测到按键按下,则进入温度上下限设置的状态。

                           图4-1 程序流程图

4.2.2 温度传感器程序设计
读取温度值的流程图如图4-2所示,首先是初始化传感器,相当于是一次复位的过程,由于本设计只接了一个传感器,因此无需区别传感器的序列号,直接发一个指令0xcc跳过ROM寻找,接着发一个0x44的指令给传感器,让传感器启动温度转换。然后再次复位传感器,接着还是一样的跳过ROM指令0xcc,再往下就是发0xbe给传感器准备读取传感器的检测结果,最后就是读取传感器返回的检测结果。

     图4-2 温度传感器程序流程图

4.2.3 数码管动态扫描程序设计
为了简化程序,合理利用单片机的内部资源,所以将数码管的显示利用单片机的定时器来实现,本设计使用的是数码管的动态扫描法。所谓动态扫描,就是轮流依次的点亮每位数码管管,并进行短暂延时,由于切换显示的速度很快,每位数码管只点亮两毫秒的时间,利用人眼的余辉效应,使得看起来像是四位数码管同时被点亮了。数码管的显示流程图如图4-3所示。

       4-3 数码管动态扫描流程图

第5章 硬件组装与调试
5.1 元器件的选择与测量
本次设计的元器件主要有:AT89C52单片机、晶振、电阻、电容、按键、开关、电源座、三极管、发光二极管、蜂鸣器、传感器、数码管、继电器等。这些元器件的引脚需要我们认真查找资料,了解每个器件的特性再进行焊接。这些元器件直接根据型号到电子元器件市场就很容易买到。其中焊接时要注意元件正负极性,电阻电容大小、芯片引脚顺序等细节。一般电阻的大小可以通过色环读取,或直接用万用表进行测量;电容和晶振等的大小会标准在元件本身;元件的正负可以遵循长正短负的原则,一些特殊元件可以通过查找资料获知正负极。
5.2 元件的焊接与组装
组装电路通常采用焊接和在面包板上插接两种方法,无论采用哪种方法均应注意以下几方面。
(1)所有元器件在组装前应尽可能全部测试一遍,以保证所用元器件均合格。
(2)所有集成电路的组装方向要保持一致,以便于正确进行焊接合理安排布线。
(3)分立元件时应仔细辨明器件的正反向,标志应处于比较容易观察的位置方便检查和调试。对于有正负极性的元件,例如电解电容器、晶体二极管等,组装时一定要特别注意极性,否则将会造成实验失败。
(4)为了便于焊接查线以及后期的检查电路,可根据电路中接线的不同作用选择不同颜色的导线。一般习惯是正电源用红色线、负电源用蓝色线、地线用黑色线、信号线用黄色线等。当然使用一种颜色也是可以的。
(5) 在实际焊接中连线需要尽量做到排版简洁连线方便。连线不跨接集成电路芯片上,必须从其周围通过。同时应尽可能做到连线不相互穿插重叠、尽量不从电路中元器件上方通过。
(6)为使电路能够正常工作与调测,所有地线必须连接在一起,形成一个公共参考点。 正确的组装方法和合理的布局,不仅可使电路整齐美观、工作可靠,而且便于检查、调试和排除故障。如果能在组装前先拟订出组装草图,则可获得事半功倍之效果,使组装既快又好。
5.3 电路的调试
调试是指系统的调整、改进与测试。测试是在电路组装后对电路的参数与工作状态进行测量,调整则是在测试的基础上对电路的某些参数进行修正,使满足设计要求。在进行调试前应拟订出测试项目、测试步骤、调试方法和所用仪器等,做到心中有数,保证调试工作圆满完成。
5.3.1 调试方法
调试方法原则有两种。第一种是边安装边调试的方法。它是把复杂的电路按原理框图上的功能分成单元进行安装和调试,在单元调试的基础上逐步扩大安装和调试的范围,最后完成整机调试。这种方法在新设计的电路中比较常用。第二种方法是在整个电路系统全部焊接完毕后,实行一次性调试。这种方法比较适用于电路相对来说比较简单,系统不复杂的电路调试。
5.3.2 调试步骤
(1)通电前检查
电路焊接完毕后, 不要急于通电,首先要根据原理电路认真对照检查电路中的接接线是否正确,包括错线(连线一端正确、另一端错误),少线(安装时漏掉的线),多线(连线的两端在电路图上都是不存在的)和短路(特别是间距很小的引脚及焊点间),并且还要检查每个元件引脚的使用端数是否与图纸相符。查线时最好用指针式万用表“Ω×1”档进行检查, 或是用数字万用表“Ω”档的蜂鸣器来测量,而且要尽可能直接测量元器件引脚,这样同时可以发现接触不良的地方。
(2)通电观察
在电路安装没有错误的情况下接通电源(先关断电源开关,待接通电源连线之后再打开电路的电源开关)。但接通电源后不要立即进行电路功能的测试,首先要充观察整个电路有无异常现象,电路中元器件是否有发热烧坏等现象,是否有漏电现象,电源是否有短路和开路现象等。如果电路在测试过程中出现异常,首先应该立即关闭电源,检查后排除故障再重新通电测试。然后再按要求测量各元器件引脚电源的电压,而不只是测量各路总电源电压,以保证元器件正常工作。
(3)单元电路调试
在调试单元电路时应明确本部分的调试要求。调试顺序应按照电路原理图中信号流向进行,这样可以把整个电路进行分步调试,把前面调试好的电路的输出信号作为后一级电路的输入信号。从而保证电路的调试更加顺利方便。
单元调试包括静态和动态调试。静态调试一般是指在没有外加信号的条件下测试电路各点的电位,特别是有源器件的静态工作点。通过它可以及时发现已经损坏和处于临界状态的元器件。动态调试是用前级的输出信号或自身的信号测试单元的各种指标是否符合设计要求,包括信号幅值、波形形状、相位关系、放大倍数和频率等。对于信号产生电路一般只看动态指标。把静态和动态测试的结果与设计的指标加以比较,经深入分析后对电路与参数提出合理的修正。在调试过程中应有详尽记录。
(4)整机联调
各单元电路调试好以后,并不见得由它们组成的整体电路性能一定会好,因此还要进行整体电路调试。整体电路调试主要是观察和测量动态性能,把测量的结果与设计指标逐一对比,找出问题及解决办法,然后对电路及其参数进行修正,直到全部电路的性能完全符合设计要求为止。

第6章 总结
经过三个多月的努力,本次毕业设计的任务——基于单片机的温湿度设计已经完成。这个设计题目并不是新的,但从中能体现到一个系统开发设计的过程,足于让我们受益。能够从设计、论证、制板、编程到最终的调试成功。完成整个系统的设计,这是一次难得的实践机会。
本文研究设计的温度控制系统采用了单片机+DS18B20温度传感器+数码管+继电器的组合方式,整机设计合理,元件价格合理,采购方便,很适合大批量生产。利用AT89C52单片机及外围接口实现强大系统,及其本身的定时器、计数器定时和计数的原理,将软硬件有机的结合起来。
理论联系实践,体现出大学生的动手能力。通过查资料和收集有关的文献,培养了自学能力和动手能力。并且由原先的被动接受知识转换为主动寻求知识,这可以说是学习方法上的一个很大突破。在以往的传统学习模式下,我们可能会记住很多书本知识,但是通过毕业设计,我们学会了如何将学到的知识化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题,把握重点,攻克难关,活学活用。
设计论证和完成本次设计的过程,将单片机原理、C语言程序、模拟电路基础与数字电路基础等多门课程的内容有机地结合应用在了一起。通过实际的分析与应用深化了对这UU些主干知识的认识。此外掌握了从系统的需求、方案论证、功能模块的划分、原理图的设计和绘制、PCB板制作、程序设计到软硬件调试的设计流程,积累了硬件设计的经验。单片机的功能日益强大,但其基本原理是相对不变的。因此虽然本次设计任务的功能较为简单,但是能够较全面的涉及单片机各项基本知识,提高了自己的单片机设计能力,是一次将理论能力向实践能力转化的好机会。
通过这次毕业设计,我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学四年的学习成果。虽然在这次设计中对知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这三个月的设计是对过去所学知识的系统提高和扩充的过程,今后我将不断加深理论基础和实践能力,在以后的工作学习中取得更大的进步。
在设计过程中由于时间仓促有很多地方难免存在不足之,但在以后的工作中,我们会严格要求自己最求完美。
回头再看看该设计,还可以将设计的扩展功能增强:1可添加多个采集点。2可将采集到的数据通过串口传给上位机,方便记录温度数据。

鸣 谢
本设计的研究工作是在我的导师的精心指导和悉心关怀下完成的。从开题报告到论文结束,我所取得的每一个进步、编写的每一段程序都无不倾注着导师辛勤的汗水和心血。导师严谨的治学态度、渊博的各科知识、无私的奉献精神使我深受启迪,从尊敬的导师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理。在今后的学习工作中,我将铭记恩师对我的教诲和鼓励,尽自己最大的努力取得更好的成绩。
在此我要向我的导师致以最衷心的感谢和深深的敬意!
在四年的大学学习期间,每位老师对我的学习、生活和工作都给予了热情的关心和帮助,使我的水平得到了很大的提高,取得了长足的进步。 在此,向所有关心和帮助过我的老师、同学和朋友表示由衷的谢意!
最后,衷心感谢在百忙之中评阅论文和参加答辩的各位专家、教授。

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柒月玖.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值