您的当前位置:首页正文

51单片机温度测量与控制系统毕业论文

2021-04-04 来源:小奈知识网
51单片机温度测量与控制系统

摘 要

随着现代信息技术和工农业的快速发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也进行了介绍,该系统可以方便的实现实时温度采集和显示,并可根据需要设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与51单片机结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。

关键字: 51单片机、温度、DS18B20、数码管、 C51

Abstract

With the rapid development of modern information technology and industry and agriculture, microcontroller technology has spread to our life, work, scientific research, each domain, has become a relatively mature technology, this paper introduces a temperature measurement system based on 51 single chip, detailed description of the use of digital temperature sensor DS18B20 temperature measurement system development, key the connection to the sensor under the SCM hardware, software programming and system flow of each module are analyzed in detail, on the part of the circuit are introduced, the system can easily achieve the real-time temperature acquisition and display, and can according to need to set the alarm temperature, it is very convenient to use, has high accuracy, Liang Chengkuan, high sensitivity, small volume, low power consumption, suitable for our daily lives and industrial, agricultural production in the temperature measurement, which can also be used as a temperature processing module embedded in other systems, as other auxiliary system. DS18B20 and 51 microcontroller with temperature detection system to achieve the most simple, the system has the advantages of simple structure, strong anti-interference ability, suitable for on-site temperature measurements in harsh environment, has the widespread application prospect.

Key words:The 51 single chip microcomputer、Temperature、DS18B20、Digital tube、C51

目 录

第1章 概论„„„„„„„„„„„„„„„„„„„„„„1 1.1 设计背景„„„„„„„„„„„„„„„„„„„„1 1.2 总体设计„„„„„„„„„„„„„„„„„„„„2 1.3 设计要求„„„„„„„„„„„„„„„„„„„„3 第2章 设计理论基础„„„„„„„„„„„„„„„„„„4 2.1 51单片机„„„„„„„„„„„„„„„„„„„„4 2.2 温度传感器 DS18B20„„„„„„„„„„„„„„„7 2.3 锁存器 74HC573„„„„„„„„„„„„„„„„„10 2.4 LED 数码管„„„„„„„„„„„„„„„„„„„11 第3章 硬件电路设计„„„„„„„„„„„„„„„„„„13 3.1 单片机最小的系统„„„„„„„„„„„„„„„„13 3.2 温度采集电路„„„„„„„„„„„„„„„„„„14 3.3 温度控制电路„„„„„„„„„„„„„„„„„„16 3.4 键盘电路„„„„„„„„„„„„„„„„„„„„17 3.5 显示电路„„„„„„„„„„„„„„„„„„„„18 第4章 软件程序设计„„„„„„„„„„„„„„„„„„19 4.1 程序初始化„„„„„„„„„„„„„„„„„„„19 4.2 延时子函数„„„„„„„„„„„„„„„„„„„19 4.3 按键设定子函数„„„„„„„„„„„„„„„„„20 4.4 温度显示子函数„„„„„„„„„„„„„„„„„21 4.5 温度采集子函数„„„„„„„„„„„„„„„„„21 4.6 温度控制子函数„„„„„„„„„„„„„„„„„23 4.7 主函数„„„„„„„„„„„„„„„„„„„„„24 第5章 总结全文„„„„„„„„„„„„„„„„„„„„25 5.1 结束语„„„„„„„„„„„„„„„„„„„„„25 5.2 致谢词„„„„„„„„„„„„„„„„„„„„„25 参考文献„„„„„„„„„„„„„„„„„„„„26 附录„„„„„„„„„„„„„„„„„„„„„„27

第1章 概 论

1.1 设计背景

温度是表征物体冷热程度的物理量,温度是工农业生产、科学试验以及日常生活中需要普遍进行测量和控制的一个重要物理量,由此对温度进行检测的意义就越来越大。温度采集控制系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。在工业生产过程中,很多时候都需要对温度进行严格的监控,以使得生产能够顺利的进行,产品的质量才能够得到充分的保证。使用自动温度控制系统可以对生产环境的温度进行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率,所以温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。

温度采集控制系统是在嵌入式系统设计的基础上发展起来的。嵌入式系统虽然起源于微型计算机时代,但是微型计算机的体积、价位、可靠性,都无法满足广大对象对嵌入式系统的要求,因此,嵌入式系统必须走独立发展道路。这条道路就是芯片化。将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。自从70年代Intel公司推出第一批单片机以来,80年代单片机技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展,从4位、8位单片机发展到16位、32位单片机。单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。

单片机是将微处理器、存储器、定时/计数器、I/O接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机的应用非常广泛。同时,单片机具有较强的治理功能。采用单片机对整个测量电路进行治理和

控制,使得整个系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制造、安装、调试及维修方便。 因此将单片机与温度测量技术相结合,利用单片机强大的数据处理和过程控制能力,实现一定的功能不但有重要的实际意义,而且已经成为一种趋势。

1.2 总体设计

本论文设计是基于单片机的温度控制系统,系统框图如图1.2所示 ,包括6部分:主机单片机系统、温度采集电路、显示电路、报警电路、键盘电路、温度控制电路。采用STC89C51为主机芯片,由数字温度传感器DS18B20采集数据经过I/O口读入CPU处理,把CPU处理的一组温度数据送到LED数码管显示,另一组数据与按键设定的温度值进行比较判断,当温度高于或低于设定温度时,开始报警并启动相应控制程序(温度高于设定温度时,启动冷却模块;当温度低于设定温度时,启动加热模块),达到自动控制温度的目的。 温度控制电路

CPU 温度采集电路 STC89C51

盘报警电路

电 路 显示电路

图1.2 系统框图

1.3 设计要求

要求单片机温度测控系统完成以下功能: 1.3.1 基本功能 (1) 测量温度实时显示。 (2) 设定目标温度值。 (3) 超过上下限温度报警。 (4) 温度自动控制。 1.3.2 参数要求 (1) 温度测量范围0-99℃。 (2) 温度测量误差<±1℃。 (3) 温度控制误差<±3℃。

第2章 设计理论基础

本设计的主要任务是能对温度自动检测和控制,而设计中是采用单片机来控制,因此要有温度的采集电路、温度显示控制电路、键盘电路、报警电路等。要实现系统设计要用到的知识点有单片机的原理及其应用,温度传感器的原理及其应用,键盘和显示电路设计等,本章将做主要介绍。 2.1 51单片机 2.1.1 51单片机概述

51系列单片机无论是在片内容量、I∕O口功能、系统扩展能力方面,还是在指令系统和CPU的处理功能方面,都比其前辈要强得多。尤其是它所特有的布尔处理机,在逻辑处理和控制方面具有突出的优势。

AT89C51是ATMEL公司MCS—51系列兼容单片中的代表作品,它内部集成了功能强大的中央处理器、21个专用控制寄存器、4KB的程序存储器、128字节的数据存储器、4组8位的并行I∕O口、两个16位的可编程定时∕计数器、一个全双工的串行口和布尔处理器。

MCS—51系列中最典型的代表是8051、8031和8751,它们的指令系统完全兼容,仅在内部结构和应用特性方面稍有差异。8051内部的程序存储器为掩膜ROM,可根据特殊要求和用途在制造芯片时就将专用程序固化进去,成为专用单片机。8031内部没有ROM,使用时需要外接EPROM芯片,其他与8051完全相同。而8751是片内ROM采用EPROM形式的8051,能方便地改写程序。可见,8051和8751本身即可构成一个小而完整的微机系统,而8031还需要外加一片EPROM才能构成系统。本设计采用的国产宏晶STC单片机及其低功耗、廉价、稳定性能,占据着国内51单片机较大市场。

2.1.2 8051单片机内部结构

MCS—51是51系列单片机的典型代表。Intel的MCS—51和Atmel的AT89C51采用的均是哈佛结构的形式。

51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、

定时计数器、并行接口、串行接口和中断系统等若干单元,片外扩展能力通过数据总线、地址总线和控制总线实现。其特点如下:

(1)面向控制的8位中央处理器(CPU) (2)具有布尔处理能力 (3)64KB程序存储器空间 (4)64KB数据存储器空间

(5)4KB片内程序存储器(ROM) (6)128B内部数据存储器(RAM) (7)一组特殊功能寄存器(SFR)

(8) 32根双向并可按位寻址的I∕O口线 (9)2个16位定时器∕计数器

(10) 5个中断源,具有2个优先级 (11)一个全双工异步串行口 (12)片内振荡器和时钟电路 2.1.3 51单片机引脚特性

在外形上51系列单片机有多种封装,比较常用的是DIP封装方式,如图2.1.1所示。

其中,XTAL1(18脚)和XTAL2(19脚)为时钟引脚,并且51单片机的时钟可由内部方式或外部方式产生。如图2.1.2所示为两种时钟产生方式。

对于8051系列的单片机来说,控制引脚通常包括复位引脚、ALE∕PROG引脚、PSEN引脚、EA∕VPP引脚、以及WR和RD引脚。

51系列单片机有四个双向8位I∕O口P0—P3,其中P0为三态双向口,负载能力位8个LSTTL门电路,既可以作地址∕数据复用总线使用,也可以作通用I∕O口,P1—P3为准双向口,负载能力为4个LSTTL门电路。同时P1口在Flash编程和验证程序时,它输入低八位地址。P2口既可以作地址总线口使用,又可以作通用I∕O口使用。P3口是双功能口,作通用I/O口使用时,其结构与操作与P1口相同,作第二功能口使用时,每一位都有其特殊的功能。

图2.1.1 DIP 封装引脚排列

图2.1.2 51单片机的时钟连接方式

2.1.4 51单片机存储器组织

单片机在存储系统的设计上普遍采用哈佛结构,将程序存储器和数据存储器分开,有不同的寻址机构和寻址方式。以AT89C51为例,它的片内集成了4KB的Flash程序存储器和128B的RAM数据存储器,当系统存储空间不足时,可以通过片上总线引脚扩展外部存储器。

从物理上看,AT89C51可分为4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。从逻辑上,可分为3个逻辑空间:片内外统一编址的64KB程序存储器地址空间、256B的片内数据存储器地址空间和64KB外部数据存储器地址空间。通过不同的指令形式和寻址方式,可以实现对三个不同的逻辑空间的访问。

程序存储器以程序计数器PC作地址指针,是控制器的一部分。

AT89C51内部的程序存储器地址为0000H~0FFFH,外部最大可扩展64KB的程序存储器。正常工作时,程序从内部Flash开始运行,当PC值超过0x0FFFH时,自动转到外部扩展的存储区0x1000H~0xFFFFH地址空间去执行程序。

数据存储器分为片内和片外两种,两者无论在物理上还是在逻辑上,其地址空间是彼此独立的。片内数据存储器地址范围为00H~FFH,片外数据存储器地址空间为0000H~FFFFH,其中00H~FFH这部分地址是冲突的。所以要通过不同的指令来分别访问片内和片外的数据存储器。

2.2 温度传感器DS18B20

DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 2.2.1 DS18B20的引脚介绍

TO-92封装的DS18B20的引脚排列见图2.2,其引脚功能描述见表2.2。

图2.2( DS18B20底视图)

表2.2 DS18B20详细引脚功能描述

序号 名称 引脚功能描述 1 GND 地信号 2 DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 3 VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。

2.2.2 DS18B20的使用方法

由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

DS18B20的复位时序

DS18B20的读时序

对于DS18B20的读时序分为读0时序和读1时序两个过程。 对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。

DS18B20的写时序

对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。 对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。

2.2.3 DS18B20工作过程

DS18B20工作过程一般遵循以下协议:初始化——ROM操作命

令——存储器操作命令——处理数据。

2.3 锁存器74HC573

74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。

图2.3.1 74HC573

图2.3.2 74HC573引脚功能图 PIN No 引脚号 1 2, 3, 4, 5, 6, 7, 8, 9 12,13,14,15,16,17,18,19 11 10 20 SYMBOL符号 OE D0 to D7 Q0 to Q7 LE GND VCC NAME AND FUNCTION名称及功能 3 State output Enable Input (Active LOW)3态输出使能输入(低电平) Data Inputs数据输入 3 State Latch Outputs 3态锁存输出 Latch Enable Input 锁存使能输入 Ground接地(0V) Positive Supply Voltage电源电压

2.4 LED数码管

LED数码管由7个发光二极管组成,此外,还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。LED数码管中的发光二极管共有两种连接方法:

(1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。本设计采用的LED显示器为共阴极接法

共阴极接法 图2.4.1

共阳极接法

(2)共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。

为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。若a、b、c、d、e、f、g、dp 8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7。LED数码管显示十六进制数时所需的字形代码如图2.4.2所示

显示字符 0 1 2 3 4 5 6 7 8 9 A B 共阳极段码 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H 83H 共阴极段码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 显示字符 C D E F P U r Y H L 全亮 全灭 共阳极段码 C6H A1H 86H 8EH 8CH C1H CEH 91H 89H C7H 00H FFH 共阴极段码 39H 5EH 79H 71H 73H 3EH 31H 6EH 76H 38H FFH 00H 图2.4.2 7段LED显示字符及段码表 LED显示器是单片机应用系统中常见的输出器件,而在单片机的应用上也是被广泛运用的。如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。

第3章 硬件电路设计

3.1 单片机最小的系统

目前的单片机开发系统只能够仿真单片机,却没有给用户提供一个通用的最小系统。由设计的要求,只要做很小集成度的最小系统应用在一些小的控制单元。其应用特点是:

(1)全部I/O口线均可供用户使用。

(2)内部存储器容量有限(只有4KB地址空间)。 (3)应用系统开发具有特殊性

图 3.1 单片机最小系统图

单片机最小系统如图3.1所示,其中有4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,都可以用于数据的输出和输入,P3口具有第二功能为系统提供一些控制信号。时钟电路用于产生MCS-51单片机工作所必须的时钟控制信号,内部电路在时钟信号的控制下,严格地按时序指令工作。MCS-51内部有一个用于构成振荡器的高增益反向放大器,该高增益反向放大器的输入端为芯片的引脚XTAL1,输出端为XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器。电路中的微调电容通常选择为30pF左右,该电容的大小会影响到振荡器频率的高低、振荡器的稳

定性和起振的快速性。晶体的振荡频率为12MHz。

3.2 温度采集电路

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

在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接10KΩ左右的上拉电阻.我们采用的是第一种连接方法,如图3.2.1所示:把DS18B20的数据线与单片机的P23脚连接,再加上上拉电阻。

图 3.2.1 温度采集电路图

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

表3-2 DS18B20控制命令

指 令 温度转换 读暂存器 写暂存器 复制暂存器 重新调E2RAM 读电源供电方式 约定代码 44H BEH 4EH 48H B8H B4H 操 作 说 明 启动DS18B20进行温度转换 读暂存器9个字节内容 将数据写入暂存器的TH、TL字节 把暂存器的TH、TL字节写到E2RAM中 把E2RAM中的TH、TL字节写到暂存器TH、TL字节 启动DS18B20发送电源供电方式的信号给主CPU CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。

3.3 温度控制电路

图 3.3 温度控制电路

温度控制电路如图3.3所示,先通过键盘设定温度,再把实际测量的温度和设定的温度进行比较,来控制P1.0、P1.1、P1.2端口的高低电平。把P1.0、P1.1、P1.2端口与ULN2003的连接来控制温度和报警。当测量的温度超过了设定的最高温度, P1.0、P1.1、P1.2由低电平变成高电平,启东温度控制电路模块和报警,反之, P1.0、P1.1、P1.2由高电平变成低电平,就停止温度控制电路模块和报警。只要控制单片机的P1.0、P1.1、P1.2口的高低电平就可以控制温度。

3.4 键盘电路

按键有矩阵键盘和独立式键盘两种形式。由于本设计中所需要的按键并不多,所以采用独立键盘就能够满足本次设计所需,而且节约硬件电路、操作方便。根据选用原则:以最少的按键,实现尽可能多的功能。系统需要设定温度值,因此根据所需功能和要求,系统采用的是3个独立式按键,分别为S1键、S2键和S3键,S3键为温度设定键,S1键起数字加功能,S2起数字减功能。键盘电路图如3.4所示

图3.4 键盘电路图

3.5 显示电路

通过74HC573和74HC138芯片将主机处理的温度信息显示在LED数码管上。图3.5则为温度控制系统的单片机显示部分。而显示部分在整个的设计过程中的作用也是很大的。

图3.5 温度显示电路图

第4章 软件程序设计

本温度控制系统软件最基本要求是:软件结构清晰、简洁、流程合理;各功能程序实现模块化,这样便于调试、链接,又便于移植、修改。此外,还应考虑系统的控制要求,做到采样时间短,控制精度高。本文采用C语言编写,全部程序如下,相关功能有文字介绍。 4.1 程序初始化 #include

#define uchar unsigned char #define uint unsigned int #define jump_ROM 0xCC #define start 0x44

#define read_EEROM 0xBE

sbit DQ = P2^3; //DS18B20数据口 sbit KEY1 = P3^2; sbit KEY2 = P3^3;

sbit KEY3 = P3^4; //3个按键 sbit qdjr = P1^0 //加热信号 sbit QDZL = P1^1 //制冷信号 Sbit bjmk = P1^2 //报警信号 unsigned char TMPH,TMPL;

unsigned int cltemp; //温度数据 unsigned char mbtemp; //设定温度数据

ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

4.2.1延时子函数,延时时间Nus void delay(uint N) {

int i;

for(i=0; i4.2.2延时子函数,延时时间为 1ms * x void Delay_1ms(uint i)//1ms延时 {

uchar x,j;

for(j=0;jfor(x=0;x<=148;x++); }

4.3 按键设定子函数,设定温度 void KEY() {

if(KEY1==0 || KEY2==0 || KEY3==0) {

Delay_1ms(20);

if(KEY1==0 || KEY2==0 || KEY3==0) {

if(KEY1 == 0) {

mbtemp = mbtemp++; //设定温度加 if(mbtemp == 100) {

mbtemp=0 } }

else if(KEY2 == 0) {

mbtemp = mbtemp--; //设定温度减 if(mbtemp == 0) {

mbtemp=99 } }

else {

mbtemp = mbtemp; } }

Delay_1ms(50); } } }

4.4 温度显示子函数,数码管显示 void display() {

P0 = table[mbtemp/10%10]; P2 = 4;

Delay_1ms(1);

P0 = table[mbtemp%10]; P2 = 5;

Delay_1ms(1);

P0 = table[cltemp/10%10]; P2 = 6;

Delay_1ms(1);

P0 = table[cltemp%10]; P2 = 7;

Delay_1ms(1); P0 = 0x00; P2 = 0; }

4.5.1 温度采集相关子函数,复位DS18B20 uchar Reset(void) {

uchar deceive_ready; DQ = 0; delay(29); DQ = 1;

delay(3);

deceive_ready = DQ; delay(25);

return(deceive_ready); }

4.5.2 温度采集相关子函数,从DS18B20读一个位值 uchar read_bit(void) {

uchar i; DQ = 0; DQ = 1;

for(i=0; i<3; i++); return(DQ); }

4.5.3 温度采集相关子函数,向DS18B20写一位 void write_bit(uchar bitval) {

DQ=0;if(bitval==1) DQ=1; delay(5); DQ=1; }

4.5.4 温度采集相关子函数,从DS18B20读一个字节 uchar read_byte(void) {

uchar i,m,receive_data; m = 1;

receive_data = 0; for(i=0; i<8; i++) {

if(read_bit())

{

receive_data = receive_data + (m << i); }

delay(6); }

return(receive_data); }

4.5.5 温度采集相关子函数,向DS18B20写一个字节 void write_byte(uchar val) {

uchar i,temp;

for(i=0; i<8; i++) {

temp = val >> i; temp = temp & 0x01; write_bit(temp); delay(5); } }

4.6 温度控制子函数,温度自动控制功能 void zdkz() {

if(cltemp>50||cltemp<5) {

Bjmk=1; //超过上下限报警

}

if(cltemp>mbtemb||cltemp<=50) {

qdjr=1; //启动加热模块 qdzl=0; }

If(cltemp=5)

{

Qdzl=1; //启动制冷模块 qdjr=0; } }

4.7 主函数,循环调用子函数 void main() {

mbtemp = 20;

P3=0xff;

P1=0x00; //初始化

while(1) //子涵数反复调用 {

Reset();

write_byte(jump_ROM); write_byte(start); Reset();

write_byte(jump_ROM); write_byte(read_EEROM); TMPL = read_byte(); TMPH = read_byte();

cltemp = TMPL / 16 + TMPH * 16; //调用温度采集子函数

zdkz(); //调用温度控制子函数 display(); //调用温度显示子函数 KEY(); //调用按键设定子函数 } }

第5章 总结全文

5.1 结束语

在本次设计中,我们所学过的理论知识接受了实践的检验,增强我的综合运用所学知识的能力及动手能力,为以后的学习和工作打下了良好的基础。本文以AT89C51系列单片机为核心,用51单片机作为控制器件,基本上实现了温度的自动控制,通过本次的设计,我感觉到单片机的应用将来会越来越广泛,学习并使用单片机为核心进行设计,将为我们电子工作者打开一扇通往电子设计新出路的大门。

通过几个月的设计,我也有很深的感触:当今社会在飞速发展,科学技术发展的速度更是迅猛无比,尤其是单片机技术在未来社会发展中一定会起着十分重要的作用,而通过本次设计无论是从硬件实现还是到整个程序的完成,无不是对我个人专业能力的一次提高和体现。而本次设计主要是完成两方面工作,软件程序设计和硬件电路板设计。软件设计包括用单片机设计语言设计控制系统并仿真、实现。硬件设计包括绘制电路原理图,生成图后制作电路板、插件焊件、再做硬件测试。通过这些都使我对采用单片机设计方法有了更深的理解和掌握,同时也让我把所学的知识广泛的应用到了实践中,充分的做到了理论与实践相结合。无论从专业知识、动手能力,还是毅志品质,都使我受益非浅。

5.2 致谢词

最后对在本次毕业设计中给予过我帮助的老师和同学至上我最真挚的谢意。

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