环境温度控制系统

合集下载

温度控制系统工作原理

温度控制系统工作原理

温度控制系统工作原理温度控制系统工作原理温度控制系统是一种用于控制温度的自动化设备,它能够根据输入信号对环境温度进行调节,以实现期望的空间温度。

温度控制系统具有自动控制、节能、节约、方便等特点,可用于家庭、厂房、机房和其他场所的温度控制。

下面我们就一起来了解一下温度控制系统的工作原理及控制系统的结构与功能。

一、温度控制系统的工作原理1、环境温度检测:温度控制系统首先必须要到采集环境温度,一般使用温度传感器来采集环境温度值,经过温度控制系统的控制器处理,将采集到的温度值发送给控制系统以实现温度控制系统的控制。

2、控制输出:根据温度控制系统的设定值和环境温度值,温度控制系统的控制器能够做出正确的控制决策,控制系统控制器就会根据其决策通过开关来控制负载,实现对负载的控制,使得环境温度满足控制系统的设定值。

3、温度控制系统调节:温度控制系统的调节是持续进行的,当环境温度大于或小于控制系统设定的温度值时,控制器就会持续进行控制,以维持环境温度等于或接近控制系统的设定值。

二、温度控制系统的结构与功能1、温度控制系统的主要组成部分:温度控制系统由温度传感器、控制器、显示装置、开关、负载等部分组成。

2、温度传感器:温度传感器的作用是采集环境温度,然后将采集到的温度值发送给控制器。

3、控制器:控制器的功能是根据温度控制系统的设定值和环境温度值,做出控制输出决策,控制负载,以实现温度控制的目的。

4、显示装置:显示装置的作用是实时显示环境温度值和控制系统的设定值,以便于温度控制系统的调整和监控。

5、开关:温度控制系统的开关的作用是根据控制器的控制输出决策控制负载,以实现温度控制的目的。

6、负载:负载的作用是根据控制器的决策控制负载,以实现温度控制系统控制的目的。

以上就是温度控制系统的工作原理及控制系统的结构与功能介绍,温度控制系统的优点在于它具有自动控制、节能、节约、方便等特点,可用于家庭、厂房、机房和其他场所的温度控制,是大家非常理想的温度控制设备。

温度控制系统实验报告

温度控制系统实验报告

温度控制系统实验报告温度控制系统实验报告一、引言温度控制系统作为现代自动化领域的重要组成部分,广泛应用于工业生产、家电和环境控制等领域。

本实验旨在通过搭建一个简单的温度控制系统,了解其工作原理和性能特点。

二、实验目的1. 了解温度控制系统的基本原理;2. 掌握温度传感器的使用方法;3. 熟悉PID控制算法的应用;4. 分析温度控制系统的稳定性和响应速度。

三、实验装置本实验使用的温度控制系统由以下组件组成:1. 温度传感器:用于测量环境温度,常见的有热敏电阻和热电偶等;2. 控制器:根据温度传感器的反馈信号,进行温度控制;3. 加热器:根据控制器的输出信号,调节加热功率;4. 冷却装置:用于降低环境温度,以实现温度控制。

四、实验步骤1. 搭建温度控制系统:将温度传感器与控制器、加热器和冷却装置连接起来,确保各组件正常工作。

2. 设置控制器参数:根据实际需求,设置控制器的比例、积分和微分参数,以实现稳定的温度控制。

3. 测量环境温度:使用温度传感器测量环境温度,并将测量结果输入控制器。

4. 控制温度:根据控制器输出的控制信号,调节加热器和冷却装置的工作状态,使环境温度保持在设定值附近。

5. 记录数据:记录实验过程中的环境温度、控制器输出信号和加热器/冷却装置的工作状态等数据。

五、实验结果与分析通过实验数据的记录和分析,我们可以得出以下结论:1. 温度控制系统的稳定性:根据控制器的调节算法,系统能够在设定值附近维持稳定的温度。

但是,由于传感器的精度、控制器参数的选择等因素,系统可能存在一定的温度波动。

2. 温度控制系统的响应速度:根据实验数据,我们可以计算出系统的响应时间和超调量等参数,以评估系统的控制性能。

3. 温度传感器的准确性:通过与已知准确度的温度计进行对比,我们可以评估温度传感器的准确性和误差范围。

六、实验总结本实验通过搭建温度控制系统,探究了其工作原理和性能特点。

通过实验数据的分析,我们对温度控制系统的稳定性、响应速度和传感器准确性有了更深入的了解。

温度控制系统设计

温度控制系统设计

温度控制系统设计概述温度控制系统是一种广泛应用于工业生产、实验室环境以及家庭生活中的系统。

它通过感知环境温度并根据设定的温度范围来控制加热或制冷设备,以维持特定温度水平。

本文将介绍温度控制系统的设计原理、硬件组成和软件实现。

设计原理温度控制系统的设计基于负反馈原理,即通过对环境温度进行实时监测,并将监测结果与目标温度进行比较,从而确定加热或制冷设备的控制量。

当环境温度偏离目标温度时,控制系统会调节加热或制冷设备的工作状态,使环境温度逐渐趋向目标温度。

硬件组成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. 温度采集软件需要通过与传感器的接口读取环境温度值。

温度控制系统原理

温度控制系统原理

温度控制系统原理一、温度控制系统概述温度控制系统是一种用于控制和调节温度的技术系统,广泛应用于工业生产、科研实验、家电家居等领域。

二、温度感知技术温度感知技术是温度控制系统的基础,用于实时监测当前温度值。

常见的温度感知技术包括热电阻、热敏电阻、铂电阻等,通过测量材料的电阻随温度变化的特性,可以得到温度值的反馈。

三、温度控制算法温度控制系统的关键是设计合理的控制算法,以实现温度的精确控制和稳定调节。

常用的温度控制算法有比例控制、比例-积分控制、比例-积分-微分控制等。

控制算法根据温度偏差与设定值的关系,调节控制执行器的输出信号,使温度保持在设定值附近。

四、温度调节执行器温度调节执行器是温度控制系统中的关键组成部分,用于根据控制算法的输出信号,调节恒温器、加热器、制冷器等设备。

温度调节执行器可通过控制阀门、电磁阀、电器元件等方式,实现温度的精确调节和控制。

五、温度控制系统的应用温度控制系统广泛应用于各个领域。

在工业生产中,温度控制系统用于控制炉温、温度梯度,保证工业生产的质量和效率。

在科研实验中,温度控制系统用于模拟实验环境、控制反应温度,以便于研究人员的实验操作和观察。

在家电家居中,温度控制系统用于家庭空调、恒温器、温度报警器等,提供舒适的居住环境和保障家庭安全。

六、温度控制系统的优势与发展趋势温度控制系统具有精准度高、稳定性好、可靠性强等优势。

随着科技的发展,温度控制系统的智能化程度不断提高,采用了先进的控制算法和感知技术,实现更加精确的温度控制和调节。

未来,温度控制系统有望在能源节约、环境保护等方面发挥更大的作用,为人们的生活和工作带来便利与舒适。

温控系统的工作原理与调试方法

温控系统的工作原理与调试方法

温控系统的工作原理与调试方法温控系统是一种常见的自动控制系统,在许多领域中都有广泛应用,包括家庭、商业和工业环境。

它通过测量、监控和调节温度,以确保环境的舒适性和设备的正常运行。

本文将介绍温控系统的工作原理,并提供一些常用的调试方法。

一、工作原理温控系统的工作原理基于负反馈原理,通过不断测量环境的温度,并将实际温度与设定温度进行比较,以提供准确的温度控制。

1. 传感器:温控系统通常使用温度传感器来测量环境温度,最常见的传感器是热敏电阻(RTD)或热电偶(TC)。

传感器将温度转化为电信号,并将其发送到控制器。

2. 控制器:控制器是温控系统的核心部件,它接收传感器发送的信号,并与设定温度进行比较。

如果实际温度与设定温度不一致,控制器将发出指令,控制执行机构进行调整。

3. 执行机构:执行机构根据控制器的指令来进行温度调节。

例如,在家庭温控系统中,执行机构可以是空调或暖气设备。

控制器根据传感器的反馈信号来控制执行机构的启停和调节。

二、调试方法1. 首次安装和调试:在安装新的温控系统或更换控制器时,需要进行基本的调试。

首先,确保传感器正确连接并正常工作。

然后,设定一个目标温度并观察控制器的反应。

如果控制器没有启动相应的设备,检查电源和连接是否正确。

2. 温度校准:温控系统的准确性至关重要。

定期进行温度校准可以确保系统的稳定性和可靠性。

使用标准温度源,例如温度计或温度模拟器,将其与温控系统进行比较,并根据需要进行微调。

3. 故障排除:如果温控系统出现故障,需要进行故障排除。

首先,检查传感器的连接和工作状态。

如果传感器损坏或松动,可能会导致不准确的温度读数。

其次,检查控制器的设置和参数。

如果设置不正确,温控系统无法正常运行。

最后,检查执行机构是否正常工作,例如检查空调或暖气系统是否启动。

4. 定期维护:温控系统需要定期的维护保养,以确保其可靠性和长寿命。

这包括清洁传感器、检查和更换电池(如果适用)、清洁或更换执行机构等。

温度控制系统设计

温度控制系统设计

温度控制系统设计一、引言温度控制系统是一种常见的自动化控制系统,用于监测和调节环境或设备的温度。

它在工业、农业、医疗等领域中广泛应用,可以提高生产效率、保障产品质量和人员安全。

本文将介绍温度控制系统的设计原理、组成部分以及相关技术。

二、设计原理温度控制系统的设计原理基于温度传感器和执行器的反馈控制。

首先,通过温度传感器实时检测环境或设备的温度,并将检测结果转化为电信号。

然后,将电信号输入到控制器中进行处理。

控制器根据设定的目标温度和实际温度之间的差异,计算出相应的控制信号。

最后,控制信号通过执行器,如加热器或冷却器,调节环境或设备的温度,使其逐渐接近目标温度。

三、组成部分1. 温度传感器温度传感器是温度控制系统的核心部件之一,用于测量环境或设备的温度。

常见的温度传感器包括热电阻和热电偶。

热电阻基于温度对电阻值的影响进行测量,而热电偶则利用两种不同金属的热电效应来测量温度。

2. 控制器控制器是温度控制系统的决策中心,它接收温度传感器的信号,并根据预设的控制算法计算出相应的控制信号。

根据控制算法的不同,控制器可以分为比例控制器、比例积分控制器和比例积分微分控制器等。

控制器还可以具备调节参数、报警功能等。

3. 执行器执行器是温度控制系统的执行部件,负责根据控制信号调节环境或设备的温度。

常见的执行器包括加热器和冷却器。

当温度低于目标温度时,加热器会被激活,向环境或设备中释放热能;当温度高于目标温度时,冷却器则会被激活,帮助环境或设备散热。

四、相关技术1. PID控制PID控制是一种常用的温度控制算法,通过比例、积分和微分三个控制参数对温度进行调节。

比例控制用于根据温度误差大小调整执行器的输出;积分控制则用于消除稳态误差;微分控制则用于抑制过冲和振荡。

PID控制可以根据实际应用需求进行参数调整,以达到更好的控制效果。

2. 信号处理温度传感器的信号需要进行处理和转换,以便控制器能够正确计算出控制信号。

信号处理技术包括滤波、放大、线性化等。

温度控制系统 (2)

温度控制系统 (2)

温度控制系统1. 简介温度控制系统是一种用于监测和调节环境温度的系统。

它通常由传感器、控制器和执行器等组成,用于实时测量温度并根据设定值进行自动调节。

这种系统广泛应用于各种领域,包括工业生产、建筑物自动化、空调系统等。

2. 系统组成温度控制系统主要由以下组件组成:2.1 传感器传感器是温度控制系统的核心组件之一。

它们用于监测环境温度,并将测量值传送给控制器。

常见的温度传感器类型包括热电偶、热敏电阻和红外线传感器等。

2.2 控制器控制器是温度控制系统的决策中心。

它接收传感器的温度数据并与设定值进行比较,根据差异调节执行器的工作状态以实现温度控制。

控制器通常由微处理器或微控制器实现,具备计算能力和逻辑控制功能。

2.3 执行器执行器是控制器的输出设备,通过控制环境参数来调节温度。

常见的执行器包括加热器和冷却器。

加热器可以增加环境温度,而冷却器可以降低环境温度。

2.4 操作界面操作界面用于人机交互,通过控制界面上的按钮、旋钮、显示器等设备,用户可以设定温度值、查看实时温度、调整系统参数等。

3. 工作原理温度控制系统的工作原理可以简述为以下几个步骤:1.传感器测量环境温度并将数据传送给控制器。

2.控制器将传感器数据与设定值进行比较,计算出温度差异。

3.控制器根据温度差异调节执行器工作状态。

如果当前温度低于设定值,则控制器会开启加热器;反之,如果当前温度高于设定值,则控制器会开启冷却器。

4.控制器不断监测温度,并根据测量值调整执行器的工作状态,以保持环境温度在设定范围内。

4. 应用领域温度控制系统在各个领域都有广泛的应用,下面几个常见的应用领域:4.1 工业生产在工业生产中,温度控制系统用于控制生产过程中的温度,以保证产品质量和工艺稳定性。

例如,铸造过程、烘烤过程和化学反应过程中都需要控制温度。

4.2 建筑物自动化在建筑物自动化中,温度控制系统用于空调系统的温度调节。

通过感知室内温度并与设定温度进行比较,系统可以自动调节空调设备,提供舒适的室内环境。

温度自动控制系统(1)

温度自动控制系统(1)

温度自动控制系统简介温度自动控制系统是一种利用现代控制技术对环境温度进行自动调节的系统。

它通过感知环境温度,并根据设定的温度范围自动调节控制器来实现温度的自动控制。

构成温度自动控制系统主要由以下几个部分构成:1. 温度感知器温度感知器是一种能够感知环境温度的传感器。

常见的温度感知器有热敏电阻、热电偶和红外线温度传感器等。

它们能够将温度转化为电信号,供控制器进行处理。

2. 控制器控制器是温度自动控制系统的核心组件,负责接收来自温度感知器的温度信号,并根据设定的温度范围进行判断和控制。

控制器通常采用微处理器或微控制器实现,它可以根据信号进行计算和判断,并控制执行器的工作状态。

3. 执行器执行器是根据控制器的指令来执行相应动作的设备。

在温度自动控制系统中,执行器通常是一种能够调节环境温度的设备,例如电加热器、冷却风扇或空调系统等。

控制器会根据当前温度与设定温度的差值,发送信号给执行器,以调整环境温度。

4. 电源电源是为整个温度自动控制系统提供电能的设备。

温度自动控制系统通常使用直流电源,以保证稳定可靠的供电。

工作原理温度自动控制系统的工作原理可以简要描述如下:1.温度感知器感知环境温度,并将温度信息转化为电信号。

2.控制器从温度感知器接收到温度信号,并判断当前温度是否在设定的温度范围内。

3.如果当前温度在设定的温度范围内,控制器不做任何动作。

4.如果当前温度超过设定的温度范围上限,控制器会发送信号给执行器,使其启动冷却设备,以降低温度。

5.如果当前温度低于设定的温度范围下限,控制器会发送信号给执行器,使其启动加热设备,以提高温度。

6.控制器会定期检测温度,并根据需要调整执行器的工作状态,以保持环境温度在设定范围内。

应用领域温度自动控制系统在许多领域都有广泛应用,下面是几个常见的应用领域:1. 家庭空调系统家庭空调系统是最常见的应用之一。

温度自动控制系统可以根据家庭成员的需求,自动调节空调的工作状态,以保持室内温度在舒适范围内。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录第1章绪论 (1)第2章系统总体方案设计 (2)2.1系统框图 (2)2.2系统结构与设计思路 (2)第3 系统硬件设计 (3)3.1 STC89C52模块 (3)3.2数码管模块 (3)3.3按键模块 (4)3.4 DS18B20模块 (4)3.5 报警模块 (5)3.6 I/O分配表 (6)第4章系统软件设计 (7)4.1 软件设计思路 (7)4.2 各程序流程图 (8)第5章硬件调试 (10)第6章总结 (12)参考文献 (13)附录 (14)附1硬件原理图 (14)附 2 源程序清单 (15)附2.1 main.c清单 (15)附2.2 18B20.c清单 (19)附2.3 alarm.c清单 (20)附2.4 delay.c清单 (21)第1章绪论1.1 系统设计要求本课题以单片机和DS18B20为核心设计一个环境温度检测与报警系统,测温范围为—10~125℃,精度误差在0.1℃以内,LED数码管直读显示,可以由用户自己设定上限温度,如果环境温度超过实际温度或在5秒内温度变化超过5度则会发出声光报警。

1.2 系统设计的目的及意义1.2.1课题设计的目的⑴掌握用51单片机控制LED数码管显示字符的方法。

⑵掌握用单片机进行显示系统开发的方法。

⑶掌握单片机软件、硬件调试技术。

⑷了解单线器件DS18B20的驱动方法。

⑸了解LED显示器的一般驱动方法。

1.2.2课题设计的意义随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数字单片机技术入手,一切向着数字化控制,智能化控制方向发展。

本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。

在本次设计中,主要从功能组合,硬件模块,程序算法等几个方面探讨基于单片机的数字温度计的设计。

第3章系统硬件设计3.1 STC8952RC模块图表3-1 STC89c52模块3.2 数码管模块U1为段选锁存器,U2为位选锁存器,数码管的最高位为报警H/L 显示,最低位显示“C”,第3~7位显示温度。

图3-2 数码管显示模块3.3按键模块S1为进入报警温度设置键,S2键为报警温度上调键,点按微调,长按速调,S3为报警温度下调键,操作同S2,S4为退出报警温度设置键。

图3-3按键模块3.4 DS18B20模块由于DS18B20内部已经把温度的模拟信号转化为数字信号,故只要通过对DS18B20顺序进行初始化、写ROM操作指令、读储存器操作指令来实现温度向单片机的传输。

其中温度寄存器的高8位与低8位如下图示。

图2-6高、低位温度寄存器图中,若S=1,温度为负,temp=(~(tempH<<8+tempL)+1);若S=0,温度为正,temp=tempH<<8+tempL。

图3-6 DS18B20模块3.5报警模块图3-5 报警模块3.6 系统I/O口分配表3-1 I/O口分配第4章系统软件设计4.1 软件设计思路由于软件代码比较长,本系统的软件设计采用模块化编程。

工程分有main.c、18B20.c、delay.c、alram.c等几个C文件。

main.c包括数码管的初始化、温度的处理及温度的显示,其中温度的显示通过定时器1的扫描实现。

18B20.c包括18B20的初始化、读ROM、写命令、读温度。

delay.c 为2ms延时函数。

alarm.c包括喇叭急鸣和LED点亮函数。

第5章硬件调试串口调试软件下载软件采用STC-ISPV478,开机启动单片机,DS18B20读取温度,如下图5-1 实时温度显示设置报警温度为31.70℃,如下图5-2 设置报警温度增加DS18B20周围的温度,使超过报警温度,图如下示图5-3 超温报警此时数码管首位显示H,喇叭发声,LED灯点亮。

总结在这次的课程设计中,结合了所学的单片机和电路知识,设计出满足课程设计要求的温度监测警报与控制系统。

在进行课程设计的过程中,我查阅了很多文献,了解了STCAT89S52、MAX232片、DS18B20温度传感器的功能。

拓展了我们的视野。

通过本次的课程设计,加深了我们对单片机的理解,使得我们更加熟悉单片机的程序编写。

特别是通过程序的调试,我们发现了很多程序编写的坏习惯,例如使用中断服务程序时没有保护好相关可能被改变的数据。

我们所设计的温度监测警报与控制系统原理简单,所用到的软器件较少,而且是使用STC89S52单片机来实现控制功能,使得其相关功能或参数可以根据需要进行修改。

参考文献[1] 单片机原理及应用王迎旭主编机械工业出版社 2012年[2] 51系列单片机应用与实践教程周向红编北航出版社 2008年[3] 微型计算机原理与接口技术吴秀清编中国科学技术出版社 2001[4] 微型计算机接口技术及应用刘乐善编华中理工大学出版社 2000[5] 单片机实用技术问答谢宜仁主编人民邮电出版社 2002[6] 百度百科附录附1 硬件原理图图附-1 硬件接线图附2 源程序清单附2.1 Main.c#include <reg52.h>#include "18b20.h"#include"delay.h"#include"alarm.h"#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换#define max 8#define OVERTEMP 34*100 //定义超温报警数值#define LOWTEMP 20*100 //定义低温报警数值sbit duan=P2^6;//定义锁存使能端口 段锁存sbit wei=P2^7;//位锁存sbit baojin=P1^5;sbit set_sign=P3^2;//进入设置sbit up=P3^3;//上调sbit down=P3^4;//下调sbit set_out=P3^5;//退出设置bit ReadTempFlag;//定义读时间标志bit starttempFlag=0; //比较温度标志bit point1;//Hbit point2;//Lbit point3;//水平Tbit point4;//退出设置bit point5;//进入设置extern unsigned char temppoint;unsigned char codetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};// 显示段码值0~9 unsigned char code boot[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//分别对应相应的数码管点亮,即位码unsigned char TempData[8]; //存储显示值的全局变量void Display(unsigned charFirstBit,unsigned char Num);//数码管显示函数void Init_Timer0(void);//定时器初始化void dealdata(int t);signed int set_temp(inttempk,char m);void main (void){int remember[max];signed int temp,tempk;unsigned char i,j,k,m;tempk=OVERTEMP;for(k=0;k<8;k++)//清屏TempData[k]=0xff;Init_Timer0();while(1){point4=1;point5=1;baojin=1;if(point1==1){alarm();TempData[0]=0x89;//显示"H"}if(point2==1){alarm();TempData[0]=0xc7;}if(point3==1){alarm();TempData[0]=0xb9;}if(!set_sign){DelayMs(10);if(!set_sign)tempk=set_temp(tempk,m);//设置报警温度}if (ReadTempFlag) //主循环{ReadTempFlag=0;temp=ReadTemperature();if(starttempFlag==0)//温度处理{remember[i]=temp;i++;}else{for(j=0;j<max;j++){remember[j]=remember[j+1];remember[max-1]=temp;}if(temp>(tempk)){point1=1;point2=0;point3=0;}elsepoint1=0;if(temp<(LOWTEMP)){point1=0;point2=1;point3=0;}elsepoint2=0;if(((remember[max-1]-remember [0])>500||(remember[0]-rememb er[max-1])>500)){point1=0;point2=0;point3=1;}}dealdata(temp);}}}void dealdata(int temp){unsigned char hun,ten,one,dot1,dot2;hun=temp/10000;ten=temp/1000%10;one=temp/100%10;dot1=temp%100/10;dot2=temp%10;// if(temppoint=1)TempData[0]=0x40;//负号标志TempData[7]=0xff;TempData[0]=0xff;if(hun>0)TempData[2]=hun;//table[TempH /100]; //百位elseTempData[2]=0xff;if((hun==0)&&(ten==0))//消隐TempData[3]=0xff;elseTempData[3]=table[ten]; //十位温度TempData[4]=table[one]&0x7f; //个位温度,带小数点TempData[5]=table[dot1];TempData[6]=table[dot2];TempData[7]=0xc6; //显示C符号}void Display(unsigned char FirstBit,unsigned char Num) {static unsigned char i=0;DataPort=0xff; //清空数据,防止有交替重影wei=1; //段锁存DataPort=boot[i+FirstBit]; //取位码wei=0; //位锁存duan=1;DataPort=TempData[i]; //取显示数据,段码duan=0; //段锁存 i++;if(i==Num)i=0; }signed int set_temp (inttempQ,char m){unsigned char key_press_num; up=1; //按键输入端口电平置高down=1;while (point4){if(!set_out){DelayMs(10);if(!set_out)point4=0;}dealdata(tempQ);if(!up) //如果检测到低电平,说明按键按下{DelayMs(10); //延时去抖,一般10-20msif(!up) //再次确认按键是否按下,没有按下则退出{while(!up){key_press_num++;DelayMs(10);//10x200=2000ms=2sif(key_press_num==200)//大约2s{key_press_num=0;//如果达到长按键标准//则进入长按键动作while(!up) //这里用于识别是否按{tempQ+=10;dealdata(tempQ);DelayMs(50);}}}key_press_num=0;tempQ+=10;}}if(!down) //如果检测到低电平,说明按键按下{DelayMs(10); //延时去抖,一般10-20msif(!down) //再次确认按键是否按下,没有//按下则退出{while(!down){key_press_num++;DelayMs(10);if(key_press_num==200) //大约2s{key_press_num=0;while(!down){tempQ-=10;dealdata(tempQ);DelayMs(50);}}}key_press_num=0;tempQ-=10;}}m++;dealdata(tempQ);}return tempQ;}void Init_Timer0(void){TMOD |= 0x01; /TH0=0x00; //给定初值TL0=0x00;EA=1; //总中断打开ET0=1; //定时器中断打开TR0=1; //定时器开关打开}void Timer0_isr(void) interrupt 1{static unsigned int num,num1; TH0=(65536-2500)/256;//重新赋值2.5msTL0=(65536-2500)%256;Display(0,8); // 调用数码管扫描num++;num1++;if(num==250) //{num=0;ReadTempFlag=1; //读标志位置1}if(num1==2000) starttempFlag=1; }附2.2 18B20.c#include"delay.h"#include"18b20.h"bit Init_DS18B20(void){bit dat=0;DQ = 1; //DQ复位DelayUs2x(5); //稍做延时DQ = 0; //单片机将DQ 拉低DelayUs2x(200); //精确延时大于 480us 小于960usDelayUs2x(200);DQ = 1; //拉高总线DelayUs2x(50); //15~60us 后接收60-240us的存在脉冲dat=DQ; //如果x=0则初始化成功, x=1则初始化失败DelayUs2x(25); //稍作延时返回 return dat;}unsigned char ReadOneChar(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;DelayUs2x(25);}return(dat);}void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;DelayUs2x(25);DQ = 1;dat>>=1;}DelayUs2x(25);}unsigned int ReadTemperature(void){unsigned char tempL=0; unsigned int tempH=0; unsigned int temp=0;unsigned char temppoint=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换DelayMs(10);Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度tempL=ReadOneChar(); //低位tempH=ReadOneChar(); //高位tempH<<=8;temp=tempH+tempL;if(temp&0x8000) //判断正负{temppoint=1;//负temp=((~temp)+1);temp*=(0.0625*100);}else{temppoint=0; //正temp*=(0.0625*100);}return(temp);}附2.3 alarm.c#include<reg52.h>#include"delay.h"sbit baojin=P1^5;sbit set_sign=P3^2;sbit laba=P1^2;bit point;void alarm(void){unsigned int k;while(1){ point=0;if(!set_sign){DelayMs(10);if(!set_sign)point=1;}baojin=0; //报警发光 for(k=0;k<200;k++){DelayUs2x(200);laba=!laba }laba=0;//防止一直给喇叭通电造成损坏for(k=0;k<200;k++){DelayMs(1);}if(!point) break;}}附2.4 delay.c#include "delay.h"void DelayUs2x(unsigned char t) {while(--t);}void DelayMs(unsigned char t) { while(t--){//大致延时1mS DelayUs2x(245);DelayUs2x(245); }}电气信息学院课程设计评分表指导教师签名:________________日期:________________ 注:①表中标*号项目是硬件制作或软件编程类课题必填内容;②此表装订在课程设计说明书的最后一页。

相关文档
最新文档