温度监测控制系统
温度控制工作原理

温度控制工作原理
温度控制是一种常见的自动控制系统,其工作原理主要包括传感器测量、信号处理和执行器控制三个步骤。
在温度控制系统中,首先需要使用温度传感器来测量环境的温度。
这些传感器可以是热敏电阻、热电偶、热电阻等。
传感器将温度转化为电信号,并将其发送给信号处理部分。
接下来,信号处理部分将接收到的电信号进行处理和转换,以便后续的控制和操作。
这个过程通常包括放大、滤波、线性化和数字化等步骤。
信号处理的目的是将传感器测得的温度信号转换为适合后续控制器处理的信号。
最后,控制器接收到经过信号处理的温度信号,并根据预设的温度设定值和算法进行计算和决策,以确定是否需要采取控制措施。
控制器可以是PID控制器、模糊控制器或者其他类型的控制器。
根据计算结果,控制器将信号发送给执行器。
执行器负责根据控制器的指令来控制环境条件,以实现温度的调节。
执行器可以是加热器、冷却器、风扇等。
通过控制执行器的工作状态和功率,温度可以被保持在预设的设定值附近。
整个温度控制的过程是一个反馈循环,温度测量值不断地被传感器测量、信号处理和控制器计算,然后再通过执行器进行调节,以实现温度控制的精确度和稳定性。
温度控制系统工作原理

温度控制系统工作原理温度控制系统工作原理温度控制系统是一种用于控制温度的自动化设备,它能够根据输入信号对环境温度进行调节,以实现期望的空间温度。
温度控制系统具有自动控制、节能、节约、方便等特点,可用于家庭、厂房、机房和其他场所的温度控制。
下面我们就一起来了解一下温度控制系统的工作原理及控制系统的结构与功能。
一、温度控制系统的工作原理1、环境温度检测:温度控制系统首先必须要到采集环境温度,一般使用温度传感器来采集环境温度值,经过温度控制系统的控制器处理,将采集到的温度值发送给控制系统以实现温度控制系统的控制。
2、控制输出:根据温度控制系统的设定值和环境温度值,温度控制系统的控制器能够做出正确的控制决策,控制系统控制器就会根据其决策通过开关来控制负载,实现对负载的控制,使得环境温度满足控制系统的设定值。
3、温度控制系统调节:温度控制系统的调节是持续进行的,当环境温度大于或小于控制系统设定的温度值时,控制器就会持续进行控制,以维持环境温度等于或接近控制系统的设定值。
二、温度控制系统的结构与功能1、温度控制系统的主要组成部分:温度控制系统由温度传感器、控制器、显示装置、开关、负载等部分组成。
2、温度传感器:温度传感器的作用是采集环境温度,然后将采集到的温度值发送给控制器。
3、控制器:控制器的功能是根据温度控制系统的设定值和环境温度值,做出控制输出决策,控制负载,以实现温度控制的目的。
4、显示装置:显示装置的作用是实时显示环境温度值和控制系统的设定值,以便于温度控制系统的调整和监控。
5、开关:温度控制系统的开关的作用是根据控制器的控制输出决策控制负载,以实现温度控制的目的。
6、负载:负载的作用是根据控制器的决策控制负载,以实现温度控制系统控制的目的。
以上就是温度控制系统的工作原理及控制系统的结构与功能介绍,温度控制系统的优点在于它具有自动控制、节能、节约、方便等特点,可用于家庭、厂房、机房和其他场所的温度控制,是大家非常理想的温度控制设备。
温度控制系统设计

温度控制系统设计概述温度控制系统是一种广泛应用于工业生产、实验室环境以及家庭生活中的系统。
它通过感知环境温度并根据设定的温度范围来控制加热或制冷设备,以维持特定温度水平。
本文将介绍温度控制系统的设计原理、硬件组成和软件实现。
设计原理温度控制系统的设计基于负反馈原理,即通过对环境温度进行实时监测,并将监测结果与目标温度进行比较,从而确定加热或制冷设备的控制量。
当环境温度偏离目标温度时,控制系统会调节加热或制冷设备的工作状态,使环境温度逐渐趋向目标温度。
硬件组成1. 传感器传感器是温度控制系统的核心组成部分,用于感知环境温度。
常见的温度传感器包括热敏电阻(Thermistor)、温度传感器芯片(Temperature Sensor Chip)和红外温度传感器(Infrared Temperature Sensor)等。
传感器将环境温度转换为电信号,并输出给微控制器进行处理。
微控制器是温度控制系统的中央处理单元,用于接收传感器输入的温度信号,并进行数据处理和控制逻辑的执行。
常见的微控制器包括Arduino、Raspberry Pi 和STM32等。
微控制器可以通过GPIO(General Purpose Input/Output)口实现与其他硬件模块的连接。
3. 控制器控制器是温度控制系统的核心部件,用于根据目标温度和实际温度之间的差异来调节加热或制冷设备的运行状态。
常见的控制器包括PID控制器(Proportional-Integral-Derivative Controller)和模糊控制器(Fuzzy Controller)等。
控制器通过电压或电流输出信号,控制加热或制冷设备的开关状态。
4. 加热或制冷设备加热或制冷设备是温度控制系统的输出组件,用于增加或降低环境温度。
根据具体应用需求,常见的加热设备包括电炉、电热丝和电热器等;常见的制冷设备包括压缩机和热泵等。
软件实现温度控制系统的软件实现主要涉及以下几个方面:1. 温度采集软件需要通过与传感器的接口读取环境温度值。
温度控制系统原理

温度控制系统原理一、温度控制系统概述温度控制系统是一种用于控制和调节温度的技术系统,广泛应用于工业生产、科研实验、家电家居等领域。
二、温度感知技术温度感知技术是温度控制系统的基础,用于实时监测当前温度值。
常见的温度感知技术包括热电阻、热敏电阻、铂电阻等,通过测量材料的电阻随温度变化的特性,可以得到温度值的反馈。
三、温度控制算法温度控制系统的关键是设计合理的控制算法,以实现温度的精确控制和稳定调节。
常用的温度控制算法有比例控制、比例-积分控制、比例-积分-微分控制等。
控制算法根据温度偏差与设定值的关系,调节控制执行器的输出信号,使温度保持在设定值附近。
四、温度调节执行器温度调节执行器是温度控制系统中的关键组成部分,用于根据控制算法的输出信号,调节恒温器、加热器、制冷器等设备。
温度调节执行器可通过控制阀门、电磁阀、电器元件等方式,实现温度的精确调节和控制。
五、温度控制系统的应用温度控制系统广泛应用于各个领域。
在工业生产中,温度控制系统用于控制炉温、温度梯度,保证工业生产的质量和效率。
在科研实验中,温度控制系统用于模拟实验环境、控制反应温度,以便于研究人员的实验操作和观察。
在家电家居中,温度控制系统用于家庭空调、恒温器、温度报警器等,提供舒适的居住环境和保障家庭安全。
六、温度控制系统的优势与发展趋势温度控制系统具有精准度高、稳定性好、可靠性强等优势。
随着科技的发展,温度控制系统的智能化程度不断提高,采用了先进的控制算法和感知技术,实现更加精确的温度控制和调节。
未来,温度控制系统有望在能源节约、环境保护等方面发挥更大的作用,为人们的生活和工作带来便利与舒适。
温度控制系统的设计与实现

温度控制系统的设计与实现汇报人:2023-12-26•引言•温度控制系统基础知识•温度控制系统设计目录•温度控制系统实现•温度控制系统应用与优化01引言目的和背景研究温度控制系统的设计和实现方法,以满足特定应用场景的需求。
随着工业自动化和智能制造的快速发展,温度控制系统的性能和稳定性对于产品质量、生产效率和能源消耗等方面具有重要影响。
03高效、节能的温度控制系统有助于降低生产成本、减少能源浪费,并提高企业的竞争力。
01温度是工业生产过程中最常见的参数之一,对产品的质量和性能具有关键作用。
02温度控制系统的稳定性、准确性和可靠性直接关系到生产过程的稳定性和产品质量。
温度控制系统的重要性02温度控制系统基础知识温度控制系统的性能指标包括控制精度、响应速度、稳定性和可靠性等,这些指标直接影响着系统的性能和效果。
温度控制原理是利用温度传感器检测当前温度,并将该信号传输到控制器。
控制器根据预设的温度值与实际温度值的差异,通过调节加热元件的功率来控制温度。
温度控制系统通常由温度传感器、控制器和加热元件组成,其中温度传感器负责检测温度,控制器负责控制加热元件的开关和功率,加热元件则是实现温度升高的设备。
温度控制原理温度传感器是温度控制系统中非常重要的组成部分,其工作原理是将温度信号转换为电信号或数字信号,以便控制器能够接收和处理。
常见的温度传感器有热敏电阻、热电偶、集成温度传感器等,它们具有不同的特点和适用范围。
选择合适的温度传感器对于温度控制系统的性能和稳定性至关重要。
温度传感器的工作原理加热元件的工作原理加热元件是温度控制系统中实现温度升高的设备,其工作原理是通过电流或电阻加热产生热量,从而升高环境温度。
常见的加热元件有电热丝、红外线灯等,它们具有不同的特点和适用范围。
选择合适的加热元件对于温度控制系统的性能和安全性至关重要。
控制算法是温度控制系统的核心部分,其作用是根据预设的温度值和实际温度值的差异,计算出加热元件的功率调节量,以实现温度的精确控制。
智能温湿度监测与控制系统设计与实现

智能温湿度监测与控制系统设计与实现近年来,人们对于室内空气质量的关注度越来越高。
不仅是因为随着现代生活的快节奏,大部分时间都在室内,健康的室内环境对人们的身体健康非常重要,而且也因为人们越来越意识到,空气污染不只在室外,也存在于室内。
为了解决室内环境的问题,智能温湿度监测与控制系统得以应运而生。
该系统主要包括传感器、控制器和执行器三个部分。
传感器采集室内温湿度等参数,将数据传递给控制器,控制器通过分析数据,自动启动或停止执行器,以达到调节室内环境的效果。
在本文中,我们将探讨智能温湿度监测与控制系统的设计与实现,具体包括系统结构、传感器的选择、控制器的程序设计和执行器的选择等方面。
1. 系统结构智能温湿度监测与控制系统主要包括以下部分:1.1 传感器常见的温湿度传感器有电阻式、电容式和半导体式传感器。
其中,半导体式传感器是最为常见的,因为它精度高、响应速度快、价格便宜。
此外,还可以考虑使用一些辅助传感器,如二氧化碳传感器、PM2.5传感器等,以对室内环境进行更全面的监测。
1.2 控制器控制器是智能温湿度监测与控制系统的核心部分,其作用是根据传感器采集到的数据,控制执行器的启停。
可以使用单片机、微处理器、PLC等现有的控制器来完成这个任务。
1.3 执行器算,可以选择不同品牌和型号的空调或新风系统。
2. 传感器的选择如上所述,半导体式传感器是一种比较常用的温湿度传感器。
其原理是,当传感器表面的薄膜吸收水分,会改变薄膜材料的电阻,从而反映出相对湿度的变化。
另外,需要注意的是,传感器要具有一定的线性和温度补偿能力,以保证数据的准确性。
3. 控制器的程序设计控制器的程序设计需要考虑的因素也比较多。
一般而言,控制程序的设计应该具备以下特点:3.1 安全性室内环境对人类的健康有着直接的影响,控制程序在运行过程中需要考虑到人体的安全。
例如,在设定温湿度范围时,应该避免出现极端的设定值,以保证人员的舒适度和安全性。
温度控制系统课程设计

温度控制系统课程设计一、引言温度控制系统是一种常见的自动化控制系统,广泛应用于工业生产、农业生产、医疗保健等领域。
本课程设计旨在通过设计一个基于单片机的温度控制系统,让学生了解自动化控制系统的基本原理和实现方法。
二、设计目标本课程设计的主要目标是设计一个基于单片机的温度控制系统,具体包括以下方面:1. 实现温度测量功能:通过传感器获取环境温度,并将数据转换为数字信号,供单片机处理。
2. 实现温度调节功能:根据设定温度和当前环境温度,通过单片机输出PWM信号调节加热器功率,从而实现对环境温度的调节。
3. 实现显示功能:将当前环境温度和设定温度以数字形式显示在LCD 屏幕上。
4. 实现报警功能:当环境温度超过设定范围时,通过蜂鸣器发出警报提示操作者。
三、硬件系统设计1. 硬件平台选择本课程设计采用STM32F103C8T6单片机作为控制核心,具有较高的性价比和丰富的外设资源,适合用于中小规模的自动化控制系统。
2. 温度传感器选择本课程设计采用DS18B20数字温度传感器,具有精度高、响应速度快、可靠性强等优点,适合用于工业自动化控制系统。
3. LCD显示屏选择本课程设计采用1602A型液晶显示屏,具有低功耗、易于控制等优点,适合用于小型自动化控制系统。
4. 其他外设选择本课程设计还需要使用继电器、蜂鸣器、电阻等外设实现各项功能。
四、软件系统设计1. 系统架构设计本课程设计采用分层结构设计,将整个软件系统分为数据采集层、控制层和用户界面层三个部分。
其中数据采集层负责获取环境温度数据;控制层根据设定温度和当前环境温度输出PWM信号调节加热器功率;用户界面层负责显示当前环境温度和设定温度,并实现报警功能。
2. 数据采集层设计数据采集层主要负责获取环境温度数据,并将其转换为数字信号供单片机处理。
本课程设计采用DS18B20数字温度传感器实现温度测量功能,具体实现步骤如下:(1)初始化DS18B20传感器。
(2)发送读取温度命令。
温湿度监控系统

温湿度监控系统温湿度监控系统是一种广泛应用于各种场所的设备,可以帮助人们实时监测和控制环境中的温度和湿度。
它在室内的空调系统、温室农业、医疗仓库、实验室等领域起着重要作用。
本文将介绍温湿度监控系统的原理、应用以及优势等方面。
一、原理及工作方式温湿度监控系统是由传感器、数据采集器、数据传输设备以及数据处理和显示系统组成的。
传感器可以实时检测环境的温度和湿度,并将数据传输给数据采集器。
数据采集器将数据通过无线或有线方式传输给数据处理和显示系统,用户可以通过该系统查看和控制环境状态。
二、应用领域1. 室内空调系统:温湿度监控系统可与空调系统结合使用,实现自动调节室内环境,提供人们舒适的工作和生活条件。
系统会根据设定的温湿度范围自动开启或关闭空调设备,提高能源利用效率。
2. 温室农业:温湿度监控系统在农业领域的应用十分广泛。
通过监控和控制温室内的温度和湿度,农民可以及时调整温室的气候,提供适宜的生长环境,促进农作物的生长和发育。
3. 医疗仓库:在医疗领域,温湿度监控系统被广泛应用于药品和医疗器械的储存和运输过程中。
通过及时监测仓库内部环境的温度和湿度,并进行报警和控制,可以保障药品和器械的质量和安全性。
4. 实验室:实验室通常有严格的温湿度要求,例如化学实验需要在特定的温湿度条件下进行。
温湿度监控系统可以帮助实验室工作人员实时监测环境参数,确保实验的准确性和可重复性。
三、优势1. 提高生产效率:在工业生产中,温湿度监控系统可以实现环境参数的自动调节,提高生产过程的稳定性和效率,减少产品质量问题。
2. 节能减排:通过温湿度监控系统,人们可以合理控制室内环境的温度和湿度,避免过度能耗,降低对环境的影响。
3. 数据记录与分析:温湿度监控系统可以记录和存储环境参数的历史数据,为用户提供数据分析和报告生成,帮助用户优化环境管理。
4. 预警功能:系统可以设置温湿度的上下限,并在超出范围时及时发出警报通知用户,防止温湿度异常导致的损失。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于51单片机酒糟发酵槽的温度监测控制系统目录一. 概述 (1)1.1前言 (1)1.2基本功能与参数 (1)二. 系统总体设计 (1)三. 系统硬件电路设计 (2)3.1 最小系统模块 (2)3.1.1 电源模块 (2)3.1.2 振荡电路与复位电路 (2)3.2 DS18B20与单片机的接口电路 (3)3.3 独立键盘模块 (3)3.4 报警模块 (3)3.5 数码管显示模块 (4)3.6 proteus仿真图 (4)3.7 DS18B20简单介绍 (5)四. 系统程序设计 (6)4.1 系统主程序流程图 (6)4.2 读出温度子程序流程图 (7)4.3 温度转换命令子程序 (7)4.4 计算温度子程序 (8)4.5 按键扫描处理子程序 (8)五. 总结 (9)参考文献 (9)附录 (10)一.概述1.1前言传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。
这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。
本设计选用STC89C52型单片机作为主控制器件,DS18B20作为测温传感器,通过LED数码管实现温度显示。
通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.01℃。
该器件可直接向单片机传输数字信号,便于单片机处理及控制。
另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
1.2 基本功能与参数(1)系统基本功能a.实现温度的实时测量与显示。
b.可手动设置监测温度范围的上限和下限。
c.超出温度监测范围,可进行声光报警或执行预定操作。
(2)参数a.DS18B20 的温度测量范围为 -55°C~+125°C,在-10°C~+85°C 范围内,精度为±0.5°Cb.显示温度值精确到0.1°C,监测温度精确到1°Cc.精度误差小于0.5℃二.系统总体设计本设计的温度测量报警系统以STC89C52 单片机为核心部件,外加温度采集电路、键盘及显示电路、越限报警等电路。
采用数字温度芯片DS18B20 测量温度,输出信号全数字化。
由数字温度计DS18B20和STC89C52单片机构成的温度测量装置,它直接输出温度的数字信号。
利用STC89S52芯片控制温度传感器DS18B20进行实时温度检测并显示,快速测量环境温度,并可以根据需要设定上下限温度。
系统框图如图1所示。
图1 DS18B20温度测温系统框图三、硬件设计3.1 单片机最小系统设计3.1.1 电源电路图2 电源电路3.1.2 振荡电路与复位电路晶振采用12MHZ。
复位电路采用上电加按钮复位。
图3 振荡电路图4 复位电路3.2 DS18B20与单片机的接口电路图5 DS18B20与单片机的接口电路3.3独立式键盘电路图6 独立式键盘电路3.4报警模块图7 报警电路3.5 数码管显示模块显示电路采用4位共阴极LED数码管,P0口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。
P2口的低四位作为数码管的位选端。
采用动态扫描的方式显示。
图8 数码管显示电路3.6 proteus仿真图图9 proteus仿真图3.7 DS18B20简单介绍DS18B20 的性能特点如下●独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯●DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温●DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内●适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电●温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃●零待机功耗●可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温●在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快●用户可定义报警设置●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件●测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列、各种封装形式如图11所示,DQ 为数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
图10 外部封装形式四软件设计系统程序主要包括主程序、读取温度子程序、温度转换命令子程序、计算温度子程序、按键扫描处理子程序、显示数据子程序等。
4.1 主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度,其程序流程见图图11 主程序流程图4.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图12所示。
4.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
温度转换命令子程序流程图如上图,图13所示。
图13 温度转换流程图图12 读温度流程图4.4计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图14所示。
图14计算温度流程图4.5按键扫描处理子程序按键采用扫描查询方式,设置标志位,当标志位为1时,显示设置温度,否则显示当前温度。
如下图15示。
图15 按键扫描处理子程序五、心得及体会:此次实习我用单片机做一个完整的系统,在完成的过程中走了很多弯路,比如由于对硬件方面的东西尚不熟,查阅资料以及准备材料时都没有考虑到实践的可行性,在这里要特别感谢实验室的老师给予了我们耐心的指导,并给我们提出了建设性的意见。
在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,,虽然以前写过几次程序,但我觉的写好一个程序并不简单。
正是通过这些弯路我们才真正学到了不少东西。
在做系统的同时,和同学们之间的相互探讨也使我获益匪浅。
我们必须学会独立思考,用自己的能力去完成一件作品。
有好多的东西,只有我们去试着做了,才能真正的掌握。
!参考文献:单片机原理与应用【1】张鑫. 单片机原理与应用电子工业出版社2010.1【2】马忠梅,张凯,等.单片机的C语言应用程序设计(第四版) 北京航空航天大学出版社【3】包建华,张兴奎等.单片机原理实验与实训教程东南大学出版社2008.9附录:源程序如下#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit ds = P2^0 ;sbit dula = P2^6 ;sbit wela = P2^7 ;sbit beep = P2^1 ;sbit SET1 = P2^2; //定义上限显示调整键sbit DEC = P2^3; //定义增加减少键sbit ADD = P2^4; //定义增加减少键sbit SET2= P2^5; //定义下限显示调整键int temp ;float f_temp ;int warn_l1 = 50 ;int warn_l2 = 0 ;int warn_h1 = 300 ;int warn_h2 = 1000 ;/************************xian shi *********************/ uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x40};void delay(int z){int a,b ;for(a = 0;a < z ;a++)for(b = 0;b < 120; b++);}void display(uchar num , uchar dat){uchar i;dula = 0;wela = 0;wela = 1;i = 0x00;i = i | (~(((0x01)<<(num))));P0 = i;wela = 0;dula = 1;P0 = table[dat];dula = 0;P0 = 0xff;dula = 0;delay(3);}void dis_temp(int t){uchar i;i = t/100;display(1,i);i = t%100/10;display(2,i+10);i = t%100%10;display(3,i);delay(5);}/******************************ds18b20 **********************/ void ds_reset(){uint i;ds = 0;i = 103;while(i>0)i--;ds = 1;i = 4;while(i>0)i--;}uchar temp_readbit(void){uint i;bit dat;ds = 0;i++;ds = 1;i++;i++;i++;dat = ds;i = 8;while(i>0)i--;return(dat);}uchar temp_read(void){uchar i,j,dat;dat = 0;for(i = 0;i < 8;i++){j = temp_readbit();dat = (j << 7)|(dat >> 1);}return(dat);}void temp_write(uchar dat) {uint i;uchar j;bit testb;for(j = 1;j<=8;j++){testb = dat & 0x01;dat = dat >> 1;if(testb){ds = 0;i++;i++;i++;ds = 1;i =8;while(i>0)i--;}else{ds = 0;i = 8;while(i>0)i--;ds = 1;i++;i++;}}}void temp_change(void){ds_reset();delay(1);temp_write(0xcc);temp_write(0x44);}uint get_temp(){uchar a,b;EA = 0;ds_reset();delay(1);temp_write(0xcc);temp_write(0xbe);a = temp_read();b = temp_read();temp = b;temp <<=8;temp = temp | a;f_temp = temp * 0.0625;temp = f_temp*10+0.5;f_temp =f_temp + 0.05;return temp;}/****************************定时器初始化*****************/ void init_com(void){TMOD = 0X01;PCON = 0X00;SCON = 0X50;TH0 = (65536-10000)/256;TL0 = (65536-10000)%256;EA = 1;ET0 = 1;TR0 = 1;}/****************报警**************************************/ void warn(uint s,uchar led){uchar i;i = s;beep = 0;P1 = ~(led);while(i--){dis_temp(get_temp());}beep = 1;P1 = 0xff;i = s;while(i--){dis_temp(get_temp());}}void deal(int t){uchar i;if((t > warn_l2)&&(t <= warn_l1)){warn(10,0x01);}else if(t <= warn_l2){warn(1,0x02);}else if((t <= warn_h2)&&(t >= warn_h1)){warn(10,0x04);}else if(t >= warn_h2){warn(1,0x08);}else{i = 40;while(i--){dis_temp(get_temp());}}}/********************报警监测显示 ********************/ void bjxs(int a){ int x,y,z;x=a/100; //计算得到shi位数字display(5,x);y=a/10-x*10; //计算得到ge位数字display(6,y+10);z=a-x*100-y*10; //计算得到xiao数display(7,z);}/*******************************键盘扫描*********************/void key(){if(SET1 == 0){delay(100);if(SET1 == 0){while(SET1 == 0){bjxs( warn_h1);if(ADD==0&&SET1==0){if(ADD==0&&SET1==0){while(ADD==0)bjxs( warn_h1);warn_h1 = warn_h1+10;if(warn_h1>1000)warn_h1 = 1000;bjxs( warn_h1);}}else if(DEC==0&&SET1==0){if(DEC==0&&SET1==0){while(DEC==0)bjxs( warn_h1);warn_h1 = warn_h1-10;if(warn_l1>warn_h1)warn_h1=warn_l1;bjxs( warn_h1);}}}}}if(SET2 == 0){delay(100);if(SET2 == 0){ while(SET2 == 0){bjxs( warn_l1);if(ADD==0&&SET2==0){if(ADD==0&&SET2==0){while(ADD==0)bjxs( warn_l1);warn_l1 = warn_l1+10;if(warn_l1>warn_h1)warn_l1 = warn_h1;bjxs( warn_l1);}}else if(DEC==0&&SET2==0){if(DEC==0&&SET2==0){while(DEC==0)bjxs( warn_l1);warn_l1 = warn_l1-10;if(warn_l1<0)warn_l1=0;bjxs( warn_l1);}}}}}}void scan(){int i;temp_change();deal(temp);for(i = 0;i < 10;i++){dis_temp(get_temp());}EA = 1;}void timer0(void)interrupt 1{key();TH0 = (65536-10000)/256;TL0 = (65536-10000)%256;}void main(){dula = 0;wela = 0;init_com();while(1){scan();} }。