用单片机做温控系统
单片机恒温箱温度控制系统的设计说明
![单片机恒温箱温度控制系统的设计说明](https://img.taocdn.com/s3/m/6dc2d4c36394dd88d0d233d4b14e852458fb3968.png)
课程设计课题:单片机培养箱温控系统设计本课程设计要求:温度控制系统基于单片机,实现对温度的实时监控,实现控制的智能化。
设计了培养箱温度控制系统,配备温度传感器,采用DS18B20数字温度传感器,无需数模/数转换,可直接与单片机进行数字传输,采用PID控制技术,可保持温度在要求的恒定范围内,配备键盘输入设定温度;配备数码管L ED显示温度。
技术参数及设计任务:1、使用单片机AT89C2051控制温度,使培养箱保持最高温度110 ℃ 。
2、培养箱温度可预设,干燥过程恒温控制,控温误差小于± 2℃.3、预设时显示设定温度,恒温时显示实时温度。
采用PID控制算法,显示精确到0.1℃ 。
4、当温度超过预设温度±5℃时,会发出声音报警。
和冷却过程没有线性要求。
6、温度检测部分采用DS18B20数字温度传感器,无需数模/数转换,可直接与单片机进行数传7 、人机对话部分由键盘、显示器、报警三部分组成,实现温度显示和报警。
本课程设计系统概述一、系统原理选用AT89C2051单片机作为中央处理器,通过温度传感器DS18B20采集培养箱的温度,并将采集的信号传送给单片机。
驱动培养箱的加热或冷却。
2、系统整体结构总体设计应综合考虑系统的总体目标,进行初步的硬件选型,然后确定系统的草案,同时考虑软硬件实现的可行性。
经过反复推敲,总体方案确定以爱特梅尔公司推出的51系列单片机为温度智能控制系统核心,选用低功耗、低成本的存储器、数显等元器件。
总体规划如下:图1 系统总体框图2、硬件单元设计一、单片机最小系统电路Atmel公司的AT2051作为89C单片机,完全可以满足本系统所需的采集、控制和数据处理的需要。
单片机的选择在整个系统设计中非常重要。
该单片机具有与MCS-51系列单片机兼容性高、功耗低、可在接近零频率下工作等诸多优点。
广泛应用于各种计算机系统、工业控制、消费类产品中。
AT 89C2051 是 AT89 系列微控制器中的精简产品。
基于单片机的温度控制系统设计与应用
![基于单片机的温度控制系统设计与应用](https://img.taocdn.com/s3/m/0fac0da90875f46527d3240c844769eae009a32e.png)
基于单片机的温度控制系统设计与应用温度控制系统是一种常见的自动控制系统,用于维持设定温度范围内的温度稳定。
本文将介绍基于单片机的温度控制系统的设计与应用。
一、系统设计1.功能需求:(1)温度检测:获取环境温度数据。
(2)温度显示:将检测到的温度数据以数字方式显示。
(3)温度控制:通过控制输出信号,自动调节温度以维持设定温度范围内的稳定温度。
2.硬件设计:(1)单片机:选择适合的单片机,如51系列、AVR系列等,具有较强的计算和控制能力。
(2)温度传感器:选择适当的温度传感器,如DS18B20、LM35等,能够准确检测环境温度。
(3)显示屏:选择适当的数字显示屏,如LCD显示屏、数码管等,用于显示温度数据。
(4)执行机构:根据具体需求选择合适的执行机构,如继电器、风扇等,用于控制温度。
3.软件设计:(1)温度检测:通过单片机采集温度传感器的模拟信号,并通过数字转换获得温度数据。
(2)温度显示:将获取到的温度数据进行处理,通过数字显示屏显示。
(3)温度控制:通过控制执行机构,如继电器等,根据温度数据的变化进行调节,将温度维持在设定范围内。
二、系统应用1.家居温控系统:家庭中的空调、暖气等设备可以通过单片机温度控制系统实现智能控制。
通过温度传感器检测室内温度,并将温度数据显示在数字显示屏上。
通过设定温度阈值,当室内温度超出设定范围时,系统控制空调或暖气进行启停,从而实现室内温度的调节和稳定。
这不仅提高了居住舒适度,还能节约能源。
2.工业过程控制:在工业生产过程中,一些特定的应用需要严格控制温度,以确保产品质量或生产过程的稳定。
通过单片机温度控制系统,可以实时检测并控制生产环境的温度。
当温度超过或低于设定的阈值时,系统可以自动调整控制设备,如加热器、冷却器等,以实现温度的控制和稳定。
3.温室农业:温室农业需要确定性的环境温度来保证作物的生长。
通过单片机温度控制系统,可以监测温室内的温度,并根据预设的温度范围,自动启停加热或降温设备,以维持温室内的稳定温度。
单片机温度控制系统设计及实现
![单片机温度控制系统设计及实现](https://img.taocdn.com/s3/m/663caa5254270722192e453610661ed9ad51552f.png)
单片机温度控制系统设计及实现温度控制是很多自动化系统中的重要部分,可以应用于许多场景,如家用空调系统、工业加热系统等。
本文将介绍如何利用单片机设计和实现一个简单的温度控制系统。
一、系统设计1. 硬件设计首先,我们需要选择合适的硬件来搭建我们的温度控制系统。
一个基本的温度控制系统由以下几个组件组成:- 传感器:用于检测环境的温度。
常见的温度传感器有热敏电阻和温度传感器。
- 控制器:我们选择的是单片机,可以根据传感器的读数进行逻辑判断,并控制输出的信号。
- 执行器:用于根据控制器的指令执行具体的动作,例如开启或关闭空调。
2. 软件设计温度控制系统的软件部分主要包括,传感器读取、温度控制逻辑和执行器控制。
我们可以使用C语言来编写单片机的软件。
- 传感器读取:通过串口或者模拟输入端口来读取传感器的数据,可以利用类似的库函数或者自己编写读取传感器数据的函数。
- 温度控制逻辑:根据读取到的温度值,判断当前环境是否需要进行温度调节,并生成相应的控制信号。
- 执行器控制:将控制信号发送到执行器上,实现对温度的调节。
二、系统实施1. 硬件连接首先,将传感器连接到单片机的输入端口,这样单片机就可以读取传感器的数据。
然后,将执行器连接到单片机的输出端口,单片机可以通过控制输出端口的电平来控制执行器的开关。
2. 软件实现编写单片机的软件程序,根据前面设计的软件逻辑,实现温度的读取和控制。
首先,读取传感器的数据,可以定义一个函数来读取传感器的数据并返回温度值。
其次,根据读取到的温度值,编写逻辑判断代码,判断当前环境是否需要进行温度调节。
如果需要进行温度调节,可以根据温度的高低来控制执行器的开关。
最后,循环执行上述代码,实现实时的温度检测和控制。
三、系统测试和优化完成软硬件的实施之后,需要对温度控制系统进行测试和优化。
1. 测试通过模拟不同的温度情况,并观察控制器的输出是否能够正确地控制执行器的开关。
可以使用温度模拟器或者改变环境温度来进行测试。
基于单片机的智能温控系统设计
![基于单片机的智能温控系统设计](https://img.taocdn.com/s3/m/f6d30fb6cd22bcd126fff705cc17552707225e23.png)
基于单片机的智能温控系统设计随着科学技术的发展,人们需要更加便捷高效的生活方式。
智能家居作为一种新兴的科技应用,吸引了越来越多的人的关注。
其中,智能温控系统是人们更为关心的一部分,因为温度直接关系到人们的身体健康。
通过单片机技术的应用,可以设计出一种高效智能的温控系统。
一、智能温控系统的设计方案1. 系统硬件设计:主机采用单片机AT89S52和温度传感器DS18B20组成,温度控制功能通过智能继电器,整个系统实现了硬件基础框架。
2. 系统软件设计:主要涉及到单片机程序的编写和控制,具体涉及到诸如温度检测、温度控制、屏幕显示等功能。
3. 系统人机交互设计:通过显示屏幕和按键控制实现人机交互操作。
4. 系统通信设计:通过WiFi模块实现远程通信功能。
二、温度传感器DS18B20的原理及应用DS18B20是一款基于数字信号输出的温度传感器,原理是利用温度对半导体器件的电阻或电压的变化,来达到测量温度的目的。
它具有精度高、响应速度快、口径小的特点,因此常被应用于智能家居领域中的温控系统。
三、智能继电器的原理及应用智能继电器是利用单片机技术,将微处理器县的高低电平输出与继电器的通断控制相结合,达到了计算机智能化的效果。
它的最大优点就是可以通过计算机远程控制,从而实现智能化管理。
在温控系统中,可以根据温度的不同值,实现启动或关闭继电器,调节温度的稳定值。
四、智能温控系统的应用前景智能温控系统作为智能家居领域中的一部分,已经逐渐开始运用到人们的现实生活中。
随着人们对于生活品质的不断提高,智能家居的应用市场不断扩大,而温控系统作为其一部分也将得到更加广泛的应用。
尤其在一些高结构化的场所中,例如办公楼、酒店等场所,都需要通过温度的调节来实现舒适性的提升。
因此,智能温控系统的发展前途广阔。
总之,通过单片机技术的应用,可以实现智能温控系统的设计,这样的设计不仅降低了使用成本,提高使用效率,还具有自动化、智能化、人性化的特点,深受人们欢迎。
基于单片机的温度控制系统设计方案
![基于单片机的温度控制系统设计方案](https://img.taocdn.com/s3/m/937c7f6b443610661ed9ad51f01dc281e53a56f2.png)
基于单片机的温度控制系统设计方案设计方案:1. 系统概述:本温度控制系统采用单片机作为核心控制器,通过对温度传感器的采集并对温度进行处理,控制继电器的开关状态,实现对温度的精确控制。
系统可广泛应用于家庭、工业、医疗等领域中的温度控制需求。
2. 硬件设计:a. 单片机选择:根据系统需求,我们选择适用于温度控制的单片机,如8051、PIC、STM32等,具备较高的性能和稳定性。
b. 传感器:采用温度传感器(如DS18B20)进行温度的精确测量,传感器将温度值转化为数字信号进行输出,供单片机进行处理。
c. 屏幕显示:选用LCD液晶屏幕,实时显示当前温度值和设定的目标温度值。
3. 软件设计:a. 数据采集:单片机通过GPIO口连接温度传感器,采集传感器输出的数字信号,并进行AD转换,将模拟信号转化为数字信号。
b. 控制策略:单片机通过比较当前温度值和设定的目标温度值,根据控制算法判断是否需要开启或关闭继电器,从而实现对温度的控制。
c. 温度显示:单片机通过串口通信或I2C通信与LCD屏幕进行数据传输和显示,使用户能够随时了解当前温度和设定的目标温度。
4. 控制算法设计:a. ON/OFF控制:当当前温度值超过设定的目标温度值时,继电器闭合,使制冷或加热设备开始工作;当当前温度值低于设定的目标温度值时,继电器断开,使制冷或加热设备停止工作,实现温度的维持控制。
b. PID控制:根据温度的测量值和设定值,通过比例、积分、微分三个环节的控制,精确调节控制设备的工作状态,使温度尽可能接近设定值。
5. 系统实现和调试:a. 硬件连接:根据设计制作电路板,并连接单片机、温度传感器、继电器、液晶显示器等组件。
b. 程序编写:按照软件设计进行程序编写,并进行单片机的初始化设置、温度数据的采集和处理、继电器的控制等功能的实现。
c. 系统调试:通过实际应用场景中的温度测试数据,验证系统的稳定性和准确性,并根据实际情况进行调试和优化,确保系统达到要求的温度控制效果。
《2024年基于8051单片机的温度控制系统》范文
![《2024年基于8051单片机的温度控制系统》范文](https://img.taocdn.com/s3/m/8a02d1317f21af45b307e87101f69e314332face.png)
《基于8051单片机的温度控制系统》篇一一、引言随着科技的飞速发展,人们对各类生产与生活设备的智能性和精度要求不断提高。
其中,温度控制系统作为一种关键的工业和家庭自动化技术,已成为当今科学研究与技术应用的重点。
在众多的单片机技术中,基于8051单片机的温度控制系统因其实时性强、性价比高以及适应性强等优点而得到了广泛的应用。
本文旨在深入探讨基于8051单片机的温度控制系统的设计与实现过程。
二、系统概述基于8051单片机的温度控制系统是一种典型的自动化控制系统,该系统采用高精度的温度传感器进行实时检测,并将数据通过A/D转换器传输至8051单片机。
单片机根据预设的算法对数据进行处理,然后通过PWM(脉宽调制)或开关控制等方式对执行器进行控制,以达到调节温度的目的。
三、硬件设计1. 单片机选择:选用8051系列单片机作为核心控制单元,因其性能稳定、成本低、资源丰富等优点而成为行业内的主流选择。
2. 温度传感器:选择高精度的温度传感器进行实时检测,如DS18B20等。
3. A/D转换器:将传感器输出的模拟信号转换为单片机可以处理的数字信号。
4. 执行器:根据需要选择合适的执行器,如加热器、制冷器等。
四、软件设计软件设计是整个系统的核心部分,主要涉及单片机的编程和控制算法的实现。
1. 编程语言:采用C语言进行编程,因其具有代码可读性强、可移植性好等优点。
2. 控制算法:根据实际需求选择合适的控制算法,如PID (比例-积分-微分)控制算法等。
通过编程实现对温度的精确控制。
3. 人机交互:通过LCD显示屏等人机交互设备,实现对系统的实时监控和操作。
五、系统实现系统实现包括硬件连接、程序编写、调试与优化等步骤。
首先将硬件设备按照电路图进行连接,然后编写程序实现单片机的控制功能。
在调试过程中,需要不断优化控制算法和程序代码,以达到最佳的温控效果。
六、系统性能分析基于8051单片机的温度控制系统具有以下优点:1. 实时性强:能够实时检测温度并快速作出反应。
基于单片机的温控系统设计与实现
![基于单片机的温控系统设计与实现](https://img.taocdn.com/s3/m/6a24a4c4e43a580216fc700abb68a98271feac2e.png)
基于单片机的温控系统设计与实现温控系统是一种可以根据环境温度自动调节设备工作状态的系统。
基于单片机的温控系统是一种利用单片机计算能力、输入输出功能及控制能力,通过传感器获取环境温度信息并实现温度控制的系统。
下面将对基于单片机的温控系统的设计与实现进行详细介绍。
一、系统设计和功能需求:基于单片机的温控系统主要由以下组成部分构成:1.温度传感器:用于获取当前环境温度值。
2.控制器:使用单片机作为中央控制单元,负责接收温度传感器的数据并进行温度控制算法的计算。
3.执行器:负责根据控制器的指令控制设备工作状态,如电风扇、加热器等。
4.显示器:用于显示当前环境温度和控制状态等信息。
系统的功能需求主要包括:1.温度监测:通过温度传感器实时获取环境温度数据。
2.温度控制算法:根据温度数据进行算法计算,判断是否需要调节设备工作状态。
3.设备控制:根据控制算法的结果控制设备的工作状态,如打开或关闭电风扇、加热器等。
4.信息显示:将当前环境温度及控制状态等信息显示在显示器上。
二、系统实现的具体步骤:1.硬件设计:(1)选择适合的单片机:根据系统功能需求选择合适的单片机,通常选择具有较多输入输出引脚、计算能力较强的单片机。
(2)温度传感器的选择:选择合适的温度传感器,常见的有热敏电阻、热电偶、数字温度传感器等。
(3)执行器的选择:根据实际需求选择合适的执行器,如电风扇、加热器等。
(4)显示器的选择:选择适合的显示器以显示当前温度和控制状态等信息,如液晶显示屏等。
2.软件设计:(1)编写驱动程序:编写单片机与传感器、执行器、显示器等硬件的驱动程序,完成数据的读取和输出功能。
(2)设计温度控制算法:根据监测到的温度数据编写温度控制算法,根据不同的温度范围判断是否需要调节设备工作状态。
(3)控制设备的逻辑设计:根据温度控制算法的结果设计控制设备的逻辑,确定何时打开或关闭设备。
(4)设计用户界面:设计用户界面以显示当前温度和控制状态等信息,提示用户工作状态。
单片机实现的智能温控系统设计
![单片机实现的智能温控系统设计](https://img.taocdn.com/s3/m/ae94befe5ebfc77da26925c52cc58bd6318693e5.png)
单片机实现的智能温控系统设计随着科技的不断发展,越来越多的技术让我们的生活更加便利。
其中,智能家居技术越来越成熟,越来越普及。
以前需要人为控制的事情,现在可以通过智能控制设备来完成。
其中,温控系统作为智能家居的重要组成部分,也是很多家庭必备的设备。
单片机实现的智能温控系统设计,不仅可以实现更加精准、方便的温度控制,还可以通过程序实现更加灵活、智能的控制与调节。
一、单片机实现的智能温控系统设计原理智能温控系统的实现原理主要是通过传感器采集温度信号,传输到单片机,单片机通过程序进行处理,再通过对应的输出控制器进行输出控制,如开关继电器、控制阀门等。
其中,单片机作为核心部件,起着控制和调节的作用。
二、单片机实现的智能温控系统设计方案1. 硬件设计硬件方案是智能温控系统设计的重要部分,包括传感器模块、单片机模块、输出控制模块等。
传感器主要是采集温度信号,单片机模块主要是对采集的信号进行处理以及与输出进行控制连接,输出控制模块主要是驱动继电器、阀门等。
传感器模块可以选择DS18B20数字温度传感器或者NTC恒温电阻,其优点是使用方便、精确度高,缺点是需要额外连接上拉电阻或串联电路。
输出控制模块可以采用继电器、MOS三极管、场效应管等,其中继电器通用性强,但会产生电磁干扰。
MOS管和场效应管控制精度高,但需要外加稳压、保护电路。
2. 软件设计软件设计是智能温控系统的核心,其主要功能是根据温度信号进行智能控制,实现更加灵活、方便的调节和控制。
主要包括如下几个方面:(1)温度采集调试:对传感器的信号进行采集调试,如调节温度系数、校准温度信号等。
(2)PID控制算法实现:PID控制算法是广泛应用于控制系统的一种算法,其主要作用是实现对温度的精确控制。
(3)输出控制:对输出控制进行调试,如控制继电器的开关、控制阀门的开关、控制风扇等。
三、单片机实现的智能温控系统优缺点1. 优点单片机实现的智能温控系统具有很多优点:(1)精度高:由于采用PID控制算法,可以实现对温度的精确控制。
用单片机做温控系统
![用单片机做温控系统](https://img.taocdn.com/s3/m/c797179fcc22bcd126ff0c88.png)
用单片机做温控系统的程序谁懂?我去年做了一个差不多的,也是报警控制的,你借鉴一下吧:软件设计:有两个文件,DS18B20.c和DS18B20.h,将这两个文件添加到工程里即可。
DS18B20.c:/******************************************************************程序名称:DS18B20温度测量、报警系统简要说明:DS18B20温度计,温度测量范围0~99.9摄氏度可设置上限报警温度、下限报警温度即高于上限值或者低于下限值时蜂鸣器报警默认上限报警温度为32℃、默认下限报警温度为10℃报警值可设置范围:最低上限报警值等于当前下限报警值最高下限报警值等于当前上限报警值将下限报警值调为0时为关闭下限报警功能******************************************************************/#include#include "DS18B20.h"#define uint unsigned int#define uchar unsigned char //宏定义#define SET P3_1 //定义调整键#define DEC P3_2 //定义减少键#define ADD P3_3 //定义增加键#define BEEP P3_7 //定义蜂鸣器#define J DQ P3_5bit shanshuo_st; //闪烁间隔标志bitbeep_st; //蜂鸣器间隔标志s bit DIAN = P2^7; //小数点uchar x=0; //计数器signed char m; //温度值全局变量uchar n; //温度值全局变量ucharset_st=0; //状态标志signed char shangxian=70; //上限报警温度,默认值为70signed char xiaxian=0; //下限报警温度,默认值为0uchar code LEDData[]=;/*****延时子程序*****/void Delay(uintnum){while( --num );}void short delay(void) //误差0us{unsigned char a,b,c;for(c=165;c>0;c--)for(b=100;b>0;b--)for(a=150;a>0;a--);_nop_; //if Keil,require use intrins.h_nop_; //if Keil,require use intrins.h }/*****初始化定时器0*****/void InitTimer(void){TMOD=0x1;TH0=0x3c;TL0=0xb0; //50ms(晶振12M)}/*****定时器0中断服务程序*****/void timer0(void) interrupt 1{TH0=0x3c;TL0=0xb0;x++;}/*****外部中断0服务程序*****/void int0(void) interrupt 0{EX0=0; //关外部中断0if(DEC==0&&set_st==1){shangxian--;if(shangxian}else if(DEC==0&&set_st==2){xiaxian--;if(xiaxian<0)xiaxian=0;}}/*****外部中断1服务程序*****/void int1(void) interrupt 2{EX1=0; //关外部中断1if(ADD==0&&set_st==1){shangxian++;if(shangxian>99)shangxian=99;}else if(ADD==0&&set_st==2){xiaxian++;if(xiaxian>shangxian)xiaxian=shangxian;}}/*****读取温度*****/void check_w end u(void){uinta,b,c;c=R ea dTemperature()-5; //获取温度值并减去DS18B20的温漂误差a=c/100; //计算得到十位数字b=c/10-a*10; //计算得到个位数字m=c/10; //计算得到整数位n=c-a*100-b*10; //计算得到小数位if(m<0) //设置温度显示上限if(m>99) //设置温度显示上限}/*****显示开机初始化等待画面*****/ Disp_init(){P2 = 0xbf; //显示-P1 = 0xf7;Delay(200);P1 = 0xfb;Delay(200);P1 = 0xfd;Delay(200);P1 = 0xfe;Delay(200);P1 = 0xff; //关闭显示}/*****显示温度子程序*****/Disp_Temperature() //显示温度{P2 =0xc6; //显示CP1 = 0xf7;Delay(300);P2 =LEDData[n]; //显示个位P1 = 0xfb;Delay(300);P2 =LEDData[m%10]; //显示十位DIAN = 0; //显示小数点P1 = 0xfd;Delay(300);P2 =LEDData[m/10]; //显示百位P1 = 0xfe;Delay(300);P1 = 0xff; //关闭显示}/*****显示报警温度子程序*****/Disp_alarm(ucharbaojing){P2 =0xc6; //显示CP1 = 0xf7;Delay(200);P2 =LEDData[baojing%10]; //显示十位P1 = 0xfb;Delay(200);P2 =LEDData[baojing/10]; //显示百位P1 = 0xfd;Delay(200);if(set_st==1)P2 =0x89;else if(set_st==2)P2 =0xc7; //上限H、下限L标示P1 = 0xfe;Delay(200);P1 = 0xff; //关闭显示}/*****报警子程序*****/void Alarm(){if(x>=10)if((m>=shangxian beep_st==1)||(melse BEEP=1;if((m>=shangxian)||(m{shortdelay();J DQ=0;}else J DQ=1;}/*****主函数*****/void main(void){uint z;InitTimer(); //初始化定时器EA=1; //全局中断开关TR0=1;ET0=1; //开启定时器0 IT0=1;IT1=1;check_w end u();check_w end u();for(z=0;z<300;z++){Disp_init();}while(1){if(SET==0){Delay(2000);do{}while(SET==0);set_st++;x=0;shanshuo_st=1;if(set_st>2)set_st=0;}if(set_st==0){EX0=0; //关闭外部中断0EX1=0; //关闭外部中断1 check_wendu();Disp_Temperature();Alarm(); //报警检测}else if(set_st==1){BEEP=1; //关闭蜂鸣器EX0=1; //开启外部中断0EX1=1; //开启外部中断1if(x>=10)if(shanshuo_st)}else if(set_st==2){BEEP=1; //关闭蜂鸣器EX0=1; //开启外部中断0EX1=1; //开启外部中断1if(x>=10)if(shanshuo_st)}}}/*****END*****/DS18B20.h:#include#define DQ P3_6 //定义DS18B20总线I/O/*****延时子程序*****/void Delay_DS18B20(intnum){while(num--) ;}/*****初始化DS18B20*****/void Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位Delay_DS18B20(8); //稍做延时DQ = 0; //单片机将DQ拉低Delay_DS18B20(80); //精确延时,大于480us DQ = 1; //拉高总线Delay_DS18B20(14);x = DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay_DS18B20(20);}/*****读一个字节*****/unsigned char R ea dOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;Delay_DS18B20(4);}return(dat);}/*****写一个字节*****/void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;Delay_DS18B20(5);DQ = 1;dat>>=1;}}/*****读取温度*****/unsigned intReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0x44); //启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器a=ReadOneChar(); //读低8位b=ReadOneChar(); //读高8位t=b;t<<=8;t=t|a;tt=t*0.0625;t= tt*10+0.5; //放大10倍输出并四舍五入return(t);}/*****END*****/其中控制部分我用的是5V继电器,可以直接控制你的电机了。
基于STM32智能温控箱控制系统的设计
![基于STM32智能温控箱控制系统的设计](https://img.taocdn.com/s3/m/1fe390f0a0c7aa00b52acfc789eb172ded63998d.png)
基于STM32智能温控箱控制系统的设计智能温控箱控制系统是一种常见的应用于工业控制领域的智能化控制系统。
本文基于STM32单片机,对智能温控箱控制系统进行设计和实现。
一、系统需求分析智能温控箱控制系统需要实现以下功能:1.对温度进行精确测量和控制;2.实时监测温度,并显示在控制面板上;3.能够根据设定的温度进行自动控制,实现温度稳定在设定值附近;4.通过人机界面(HMI)使用者可以对温度设定值、报警温度等进行设置和调整;5.当温度超过设定的报警温度时,能够及时报警;6.提供通讯接口,与上位机或其他设备进行通信,实现远程监控和控制。
二、系统硬件设计1.采用STM32单片机作为主控芯片,具有强大的计算和处理能力;2.温度传感器使用DS18B20数字温度传感器,可以实现对温度的高精度测量;3.控制面板采用LCD显示屏,用于显示温度和参数设置,并提供操作按键;4.报警部分使用蜂鸣器进行报警,并可以通过控制面板上的开关进行开启或关闭。
三、系统软件设计1.硬件初始化:初始化STM32芯片、温度传感器和控制面板;2.温度测量:通过DS18B20传感器读取温度值,并进行数字转换,得到实际温度值;3.温度控制:根据设定的温度值进行控制,通过PID算法控制温度稳定在设定范围内;4.参数设置:通过控制面板上的键盘输入,可以设置温度设定值、报警温度等参数;5.报警检测:检测当前温度是否超过设定的报警温度,若超过则触发报警;6.通讯接口:通过串口或其他通讯方式,实现与上位机或其他设备的数据传输和控制。
四、系统测试和验证搭建好硬件系统后,使用示波器等设备对系统进行测试和验证。
首先测试温度测量功能,将温度传感器放置在不同温度环境下,通过控制面板上的显示屏观察温度值是否准确。
然后测试温度控制功能,设定不同的温度值,观察系统是否能够控制温度稳定在设定范围内。
接着测试参数设置功能,通过控制面板上的键盘输入不同的参数值,并观察系统是否能够正确设置参数。
基于STC单片机的无线温控系统设计
![基于STC单片机的无线温控系统设计](https://img.taocdn.com/s3/m/6632efd4bb4cf7ec4afed017.png)
接口实验报告题目:基于STC单片机的无线温控系统设计院(系):电子工程与自动化学院专业:仪器仪表工程学生姓名:学号:指导老师:职称:教授2015年7月22日一实验目的1 本实验通过利用STC89C52单片机和nRF24L01模块来控制DS18B20实现的无线温度控制系统。
控制通过简单的无线通信协议,实现可靠性与功耗平衡。
该系统能实现对温度的测量,同时还可以进行温度的设定,是可以实现远程控制的无线温度控制系统。
2 掌握用Altium Designer软件绘制原理图和PCB电路,以及电路板的制作过程(包括腐蚀,焊接,下载与调试),熟练Keil软件环境以及单片机C代码的编写、调试和hex文件的生成并下载到单片机芯片内,掌握软硬联调技巧与方法。
二系统分析1、系统的概述本实验研究基于51单片机的无线温度控制系统设计,以STC89C52单片机为控制核心,以DS18B20为测试器件,以LCD1602和LCD12864为显示器件,以nRF24L01模块为无线传输模块,以直流电机和继电器为控制温度的器件。
系统利用单总线数字温度传感器DS18B20采集温度数据,由单片机进行内部分析处理,由LCD1602和LCD12864显示数据(如果温度大于设定值则驱动直流电机模拟降温环境,如果温度低于设定温度则启动继电器),从机采集到的温度数据和控制状态可以通过nRF24L01模块发送到主机显示出来,主机可以通过按键来控制温度情况。
2、STC89C52单片机介绍2.1 芯片简介STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory)的低电压高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。
STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
基于单片机的智能温度控制系统设计
![基于单片机的智能温度控制系统设计](https://img.taocdn.com/s3/m/4da3bbcdd1d233d4b14e852458fb770bf78a3b2d.png)
基于单片机的智能温度控制系统设计智能温度控制系统设计是一种基于单片机的物联网应用,旨在实现对温度的自动感知和调控。
本文将对这一任务进行详细的内容描述和设计实现思路。
一、任务概述智能温度控制系统是一种自动化控制系统,通过感知环境温度并与用户设定的温度阈值进行比较,实现对温度的自动调节。
它经常应用于室内温度调控、温室环境控制、电子设备散热等场景。
本系统基于单片机进行设计,具有实时监测、精确定时和高效控制的特点。
二、设计方案1. 单片机选择为了实现智能温度控制系统,我们选择一款适合高性能、低功耗的单片机作为核心控制器。
例如,我们可以选择常见的STM32系列或者Arduino等开源硬件平台。
2. 温度感知系统需要具备温度感知的能力,以实时获取环境温度数据。
可选用温度传感器(如DS18B20)通过单片机的GPIO接口进行连线,并通过相应的驱动程序获取温度数据。
3. 温度控制算法智能温度控制系统的关键在于控制算法的设计。
可以采用PID(Proportional-Integral-Derivative)控制算法,根据温度的实际情况和设定值进行比较,通过调整控制器输出控制执行器(如加热器或制冷器)的工作状态。
4. 控制执行器根据温度控制算法的输出,系统需要实现对执行器(如加热器或制冷器)的控制。
通过合适的驱动电路和接口实现对执行器的实时控制,以实现温度的精确调节。
5. 用户界面为了用户方便地设定温度阈值和实时查看环境温度,系统需要设计一个用户界面。
可以通过液晶显示屏或者OLED屏幕来展示温度信息,并提供物理按键或者触摸界面进行温度设定。
6. 数据存储与远程访问系统还可以考虑将温度数据通过网络传输至云端服务器进行存储和分析,以实现温度数据的长期保存和远程监控。
可以选择WiFi或者蓝牙等无线通信方式来实现数据传输。
7. 辅助功能除了基本的温度控制外,系统还可以增加一些辅助功能,如温度数据的图表绘制、报警功能、定时开关机功能等。
基于单片机的温度控制系统设计
![基于单片机的温度控制系统设计](https://img.taocdn.com/s3/m/c57d5d860d22590102020740be1e650e52eacf92.png)
基于单片机的温度控制系统设计引言:随着技术的不断发展,人们对于生活质量的要求也越来越高。
在许多领域中,温度控制是一项非常重要的任务。
例如,室内温度控制、工业过程中的温度控制等等。
基于单片机的温度控制系统能够实现智能控制,提高控制精度,降低能耗,提高生产效率。
一、系统设计原理系统设计的原理是通过传感器检测环境温度,并将温度值传递给单片机。
单片机根据设定的温度值和当前的温度值进行比较,然后根据比较结果控制执行器实现温度控制。
二、硬件设计1.传感器:常见的温度传感器有NTC热敏电阻和DS18B20数字温度传感器。
可以根据具体需求选择适合的传感器。
2. 单片机:常见的单片机有ATmega、PIC等。
选择单片机时需要考虑性能和接口的需求。
3.执行器:执行器可以是继电器、电机、气动元件等。
根据具体需求选择合适的执行器。
三、软件设计1.初始化:设置单片机的工作频率、引脚输入输出等。
2.温度读取:通过传感器读取环境温度,并将温度值存储到变量中。
3.设定温度:在系统中设置一个目标温度值,可以通过按键输入或者通过串口通信等方式进行设置。
4.温度控制:将设定温度和实际温度进行比较,根据比较结果控制执行器的开关状态。
如果实际温度高于设定温度,执行器关闭,反之打开。
5.显示:将实时温度和设定温度通过LCD或者LED等显示出来,方便用户直观判断当前状态。
四、系统优化1.控制算法优化:可以采用PID控制算法对温度进行控制,通过调节KP、KI、KD等参数来提高控制精度和稳定性。
2.能耗优化:根据实际需求,通过设置合理的控制策略来降低能耗。
例如,在温度达到目标设定值之后,可以将执行器关闭,避免过多能量的消耗。
3.系统可靠性:在系统设计中可以考虑加入故障检测和自动切换等功能,以提高系统的可靠性。
总结:基于单片机的温度控制系统设计可以实现智能温度控制,提高生活质量和工作效率。
设计过程中需要考虑硬件和软件的设计,通过合理的算法和控制策略来优化系统性能,提高控制精度和稳定性。
基于51单片机的温控系统设计
![基于51单片机的温控系统设计](https://img.taocdn.com/s3/m/a37a440af6ec4afe04a1b0717fd5360cbb1a8d54.png)
基于51单片机的温控系统设计1.引言1.1 概述概述部分的内容可以包括以下几个方面:温控系统是一种广泛应用于各个领域的实时温度控制系统。
随着科技的发展和人们对生活质量的要求提高,温控系统在工业、家居、医疗、农业等领域得到了广泛应用。
温度作为一个重要的物理量,对于许多过程和设备的稳定运行至关重要。
因此,设计一种高效可靠的温控系统对于提高工作效率和产品质量具有重要意义。
本文将基于51单片机设计一个温控系统,通过对系统的整体结构和工作原理的介绍,可以深入了解温控系统在实际应用中的工作机制。
以及本文重点研究的51单片机在温控系统中的应用。
首先,本文将介绍温控系统的原理。
温控系统的核心是温度传感器、控制器和执行器三部分组成。
温度传感器用于实时检测环境温度,通过控制器对温度数据进行处理,并通过执行器对环境温度进行调节。
本文将详细介绍这三个组成部分的工作原理及其在温控系统中的作用。
其次,本文将重点介绍51单片机在温控系统中的应用。
51单片机作为一种经典的微控制器,具有体积小、功耗低、性能稳定等优点,广泛应用于各种嵌入式应用中。
本文将分析51单片机的特点,并介绍其在温控系统中的具体应用,包括温度传感器的数据采集、控制器的数据处理以及执行器的控制等方面。
最后,本文将对设计的可行性进行分析,并总结本文的研究结果。
通过对温控系统的设计和实现,将验证51单片机在温控系统中的应用效果,并对未来的研究方向和发展趋势进行展望。
通过本文的研究,可以为温控系统的设计与应用提供一定的参考和指导,同时也为利用51单片机进行嵌入式系统设计的工程师和研究人员提供一定的技术支持。
1.2文章结构文章结构部分的内容可以包含以下内容:文章结构部分旨在介绍整篇文章的组织结构和各个部分的内容。
本篇文章基于51单片机的温控系统设计,总共分为引言、正文和结论三部分。
引言部分主要包括概述、文章结构和目的三个小节。
首先,概述部分介绍了本文的主题,即基于51单片机的温控系统设计。
单片机 温控
![单片机 温控](https://img.taocdn.com/s3/m/69f39f66580102020740be1e650e52ea5518ce24.png)
需要根据具体的单片机型号和开发环境来选择相应的编程语言和开发工具,如C语言和 KeБайду номын сангаасl、Arduino IDE等。同时,还需要根据具体的硬件和传感器接口进行相应的配置和编程。
以上是一个基本的温控系统的实现步骤,具体的实现方式和细节可能会因应用场景和需求 的不同而有所差异。
单片机 温控
在单片机中实现温控功能,通常需要以下步骤:
1. 传感器读取温度:连接温度传感器(如LM35或DS18B20)到单片机的GPIO引脚上, 通过相应的接口(如ADC或串口)读取传感器的温度值。
2. 温度控制算法:根据读取到的温度值,使用控制算法(如PID控制)来计算控制信号。 控制算法的目标是使温度保持在设定值附近。
3. 控制输出:根据控制信号,通过相应的输出接口(如PWM、DAC或GPIO)控制温度 调节装置(如加热器或风扇)的工作状态。根据控制算法的输出,调整控制信号的幅度或频 率,以达到温度控制的目标。
单片机 温控
4. 反馈调整:通过反馈机制,实时监测温度变化,并根据实际温度与设定温度之间的差异 ,调整控制算法的参数或输出信号,使温度保持稳定。
基于单片机的温控系统设计
![基于单片机的温控系统设计](https://img.taocdn.com/s3/m/8110735d26d3240c844769eae009581b6bd9bdcf.png)
基于单片机的温控系统设计随着科技的不断发展,各种智能化设备已经进入了我们的生活中,而温控系统也是其中的一种重要设备。
温控系统可以在不断变化的环境温度下,控制被控物体的温度,使其在一定范围内保持稳定。
本文将介绍一种基于单片机的温控系统的设计方法。
一、概述基于单片机的温控系统是一种将单片机、温度传感器、继电器等组件相结合的温度控制系统。
在实现的过程中,我们需要预先设定温度范围和控制方式,然后通过单片机实时检测温度,并根据设定的温度范围决定启停继电器来改变被控物体的温度。
基于单片机的温控系统能够实现高精度及高稳定性的温度控制,是目前应用最为广泛的温控系统之一。
二、设计流程基于单片机的温控系统的设计流程分为软硬件部分。
在软件部分,我们需要设计程序流程图和编写程序代码,实现温度检测和控制继电器的功能。
在硬件部分,我们需要设计电路图并将电路部件进行连接。
1、硬件设计部分硬件设计部分主要包括电路部件的选择和电路连接的设计。
在选择电路部件时,根据系统需要我们需要选择合适的温度传感器和继电器作为电路的核心部件。
常用的温度传感器有PT100、DS18B20等,而继电器常用的品牌有OMRON、松下等。
在电路的连接设计上,我们需要按照系统的需要依次连接电路部件。
温度传感器需要与单片机的ADC引脚相连接,以实时检测温度变化;而控制继电器需要按照系统需要连接到单片机的相应I/O口,并与被控物体相连,以实现对于被控物体的控制。
2、软件设计部分软件设计部分主要包括程序流程图的设计和程序代码的编写。
程序流程图的设计是程序编写的基础,我们需要根据系统需要画出系统的流程图,以便于后期程序的编写与调试。
程序代码的编写则需要按照程序流程图,依次实现对于系统的温度检测及控制继电器的功能。
三、系统测试在完成软硬件的设计部分之后,我们需要对于整个系统进行测试。
测试时需要将整个系统连接好并对于系统的温度范围和控制方式进行设置。
接着我们需要分别检测系统在不同温度下的温度变化及继电器的控制功能,以确保整个系统的稳定性和可靠性。
基于单片机温度控制系统设计
![基于单片机温度控制系统设计](https://img.taocdn.com/s3/m/94ea503e2f60ddccda38a0dd.png)
基于单片机的温度控制系统设计摘要:这次综合设计,主要是设计一个温度控制系统,用STC89C52单片机控制,用智能温度传感器DS18B20对温度进行采集,用LCD1602液晶显示屏将采集到的温度显示出来。
系统可以有效的将温度控制在设定的范围内。
如果实际温度超出了控制范围,则系统会有自动的提示信号,并且相应的继电器会动作。
我们的实际生活离不开对温度的控制,在很多情况下我们都要对我们所处的环境进行温度检测,然后通过一定的措施进行调节,从而达到我们自己想要的温度,使我们的生活环境更加适宜。
关键字:单片机;液晶显示屏;温度传感器;继电器;提示信号Abstract:This integrated design is the design of a temperature control system. A smart temperature sensor DS18B20 is used to collect temperature and a LCD1602 Liquid Screen is used to display the collected temperature. The system controlled by STC89C52 can effectively control the temperature within the setting limits. If the actual temperature exceeds the setting range, the system will automatically give signal, and the corresponding Relay will take related actions. It is necessary for us to control the temperature because in many situations the temperature around us is not proper for us. So we need to detect it and take some actions to adjust it to the temperature we want to make the environment around us better.Key Words:DS18B20;LCD1602;STC89C52;Relay;Signal引言目前,测控系统在工业生产中起着把关者和指导者的作用,它从生产现场到各种参数的获取,运用科学规律和系统工程的做法,综合有效地利用各种先进技术,通过自动手段和装备,使每个生产环节得到优化,进而保证生产规范化,提高产品质量,降低成本,满足需要,保证安全生产。
基于单片机的温度控制系统设计
![基于单片机的温度控制系统设计](https://img.taocdn.com/s3/m/3864e3e6370cba1aa8114431b90d6c85ec3a8818.png)
基于单片机的温度控制系统设计温度控制系统是现代生活中不可或缺的一部分,常见于家庭的的空调、电饭煲、烤箱等家用电器,以及工业生产中的各种自动化设备。
本文基于单片机设计针对室内温度控制系统的实现方法进行说明,包括温度采集、温度控制器的实现和人机交互等方面。
一、温度采集温度采集是温度控制系统的核心部分。
目前比较常见的温度采集器主要有热电偶、热敏电阻和半导体温度传感器。
在本文中我们以半导体温度传感器为例进行说明。
常见的半导体温度传感器有DS18B20、LM35等,本次实验中采用DS18B20进行温度采集。
DS18B20是一种数字温度传感器,可以直接与单片机通信,通常使用仅三根导线连接。
其中VCC为控制器的电源正极,GND为电源负极,DATA为数据传输引脚。
DS18B20通过快速菲涅耳射线(FSR)读取芯片内部的温度数据并将其转换为数字信号。
传感器能够感知的温度范围通常为-55℃至125℃,精度通常为±0.5℃。
为了方便使用,DS18B20可以通过单片机内部的1-Wire总线进行控制和数据传输。
具体实现方法如下:1.首先需要引入相关库文件,如:#include <OneWire.h> //引用1-Wire库#include <DallasTemperature.h> //引用温度传感器库2.创建实例对象,其中参数10代表连接传感器的数字I/O引脚:OneWire oneWire(10); //实例化一个1-Wire示例DallasTemperature sensors(&oneWire); //实例化一个显示温度传感器示例3.在setup中初始化模块:sensors.begin(); // 初始化DS18B204.在主循环中,读取传感器数据并将温度值输出到串口监视器:sensors.requestTemperatures(); //请求温度值float tempC = sensors.getTempCByIndex(0); // 读取温度值Serial.println(tempC); //输出温度值二、温度控制器的实现温度控制器是本次实验的关键部件,主要实现对温度的控制和调节,其基本原理是根据温度变化情况来控制输出电压或模拟脚电平,驱动继电器控制电器设备工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用单片机做温控系统的程序谁懂?我去年做了一个差不多的,也是报警控制的,你借鉴一下吧:软件设计:有两个文件,DS18B20.c和DS18B20.h,将这两个文件添加到工程里即可。
DS18B20.c:/******************************************************************程序名称:DS18B20温度测量、报警系统简要说明:DS18B20温度计,温度测量范围0~99.9摄氏度可设置上限报警温度、下限报警温度即高于上限值或者低于下限值时蜂鸣器报警默认上限报警温度为32℃、默认下限报警温度为10℃报警值可设置范围:最低上限报警值等于当前下限报警值最高下限报警值等于当前上限报警值将下限报警值调为0时为关闭下限报警功能******************************************************************/#include#include "DS18B20.h"#define uint unsigned int#define uchar unsigned char //宏定义#define SET P3_1 //定义调整键#define DEC P3_2 //定义减少键#define ADD P3_3 //定义增加键#define BEEP P3_7 //定义蜂鸣器#define J DQ P3_5bit shanshuo_st; //闪烁间隔标志bit beep_st; //蜂鸣器间隔标志s bit DIAN = P2^7; //小数点uchar x=0; //计数器signed char m; //温度值全局变量uchar n; //温度值全局变量uchar set_st=0; //状态标志signed char shangxian=70; //上限报警温度,默认值为70signed char xiaxian=0; //下限报警温度,默认值为0 uchar code LEDData[]=;/*****延时子程序*****/void Delay(uint num){while( --num );}void short delay(void) //误差0us{unsigned char a,b,c;for(c=165;c>0;c--)for(b=100;b>0;b--)for(a=150;a>0;a--);_nop_; //if Keil,require use intrins.h_nop_; //if Keil,require use intrins.h}/*****初始化定时器0*****/void InitTimer(void){TMOD=0x1;TH0=0x3c;TL0=0xb0; //50ms(晶振12M)}/*****定时器0中断服务程序*****/void timer0(void) interrupt 1{TH0=0x3c;TL0=0xb0;x++;}/*****外部中断0服务程序*****/void int0(void) interrupt 0{EX0=0; //关外部中断0if(DEC==0&&set_st==1){shangxian--;if(shangxian}else if(DEC==0&&set_st==2){xiaxian--;if(xiaxian<0)xiaxian=0;}}/*****外部中断1服务程序*****/void int1(void) interrupt 2{EX1=0; //关外部中断1if(ADD==0&&set_st==1){shangxian++;if(shangxian>99)shangxian=99;}else if(ADD==0&&set_st==2){xiaxian++;if(xiaxian>shangxian)xiaxian=shangxian;}}/*****读取温度*****/void check_w end u(void){uint a,b,c;c=R ea dTemperature()-5; //获取温度值并减去DS18B20的温漂误差a=c/100; //计算得到十位数字b=c/10-a*10; //计算得到个位数字m=c/10; //计算得到整数位n=c-a*100-b*10; //计算得到小数位if(m<0) //设置温度显示上限if(m>99) //设置温度显示上限}/*****显示开机初始化等待画面*****/ Disp_init(){P2 = 0xbf; //显示-P1 = 0xf7;Delay(200);P1 = 0xfb;Delay(200);P1 = 0xfd;Delay(200);P1 = 0xfe;Delay(200);P1 = 0xff; //关闭显示}/*****显示温度子程序*****/Disp_Temperature() //显示温度{P2 =0xc6; //显示CP1 = 0xf7;Delay(300);P2 =LEDData[n]; //显示个位P1 = 0xfb;Delay(300);P2 =LEDData[m%10]; //显示十位DIAN = 0; //显示小数点P1 = 0xfd;Delay(300);P2 =LEDData[m/10]; //显示百位P1 = 0xfe;Delay(300);P1 = 0xff; //关闭显示}/*****显示报警温度子程序*****/Disp_alarm(uchar baojing){P2 =0xc6; //显示CP1 = 0xf7;Delay(200);P2 =LEDData[baojing%10]; //显示十位P1 = 0xfb;Delay(200);P2 =LEDData[baojing/10]; //显示百位P1 = 0xfd;Delay(200);if(set_st==1)P2 =0x89;else if(set_st==2)P2 =0xc7; //上限H、下限L标示P1 = 0xfe;Delay(200);P1 = 0xff; //关闭显示}/*****报警子程序*****/void Alarm(){if(x>=10)if((m>=shangxian beep_st==1)||(melse BEEP=1;if((m>=shangxian)||(m{shortdelay();J DQ=0;}else J DQ=1;}/*****主函数*****/void main(void){uint z;InitTimer(); //初始化定时器EA=1; //全局中断开关TR0=1;ET0=1; //开启定时器0IT0=1;IT1=1;check_w end u();check_w end u();for(z=0;z<300;z++){Disp_init();}while(1){if(SET==0){Delay(2000);do{}while(SET==0);set_st++;x=0;shanshuo_st=1;if(set_st>2)set_st=0;}if(set_st==0){EX0=0; //关闭外部中断0EX1=0; //关闭外部中断1check_wendu();Disp_Temperature();Alarm(); //报警检测}else if(set_st==1){BEEP=1; //关闭蜂鸣器EX0=1; //开启外部中断0EX1=1; //开启外部中断1if(x>=10)if(shanshuo_st)}else if(set_st==2){BEEP=1; //关闭蜂鸣器EX0=1; //开启外部中断0EX1=1; //开启外部中断1if(x>=10)if(shanshuo_st)}}}/*****END*****/DS18B20.h:#include#define DQ P3_6 //定义DS18B20总线I/O/*****延时子程序*****/void Delay_DS18B20(int num){while(num--) ;}/*****初始化DS18B20*****/void Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位Delay_DS18B20(8); //稍做延时DQ = 0; //单片机将DQ拉低Delay_DS18B20(80); //精确延时,大于480us DQ = 1; //拉高总线Delay_DS18B20(14);x = DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay_DS18B20(20);}/*****读一个字节*****/unsigned char R ea dOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;Delay_DS18B20(4);}return(dat);}/*****写一个字节*****/void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;Delay_DS18B20(5);DQ = 1;dat>>=1;}}/*****读取温度*****/unsigned int ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0x44); //启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器a=ReadOneChar(); //读低8位b=ReadOneChar(); //读高8位t=b;t<<=8;t=t|a;tt=t*0.0625;t= tt*10+0.5; //放大10倍输出并四舍五入return(t);}/*****END*****/其中控制部分我用的是5V继电器,可以直接控制你的电机了。