简易温度控制系统doc

合集下载

(完整版)温度控制系统设计

(完整版)温度控制系统设计

温度控制系统设计目录第一章系统方案论证 (3)1.1总体方案设计 (3)1.2温度传感系统 (3)1.3温度控制系统及系统电源 (4)1.4单片机处理系统(包括数字部分)及温控箱设计 (4)1.5PID 算法原理 (5)第二章重要电路设计 (7)2.1温度采集 (7)2.2温度控制 (7)第三章软件流程 (8)3.1基本控制 (8)3.2PID 控制 (9)3.3时间最优的 PID 控制流程图 (10)第四章系统功能及使用方法 (11)4.1温度控制系统的功能 (11)4.2温度控制系统的使用方法 (11)第五章系统测试及结果分析 (11)5.1 硬件测试 (11)5.2软件调试 (12)第六章进一步讨论 (12)参考文献 (13)致谢........................................... 错误 !未定义书签。

摘要:本文介绍了以单片机为核心的温度控制器的设计,文章结合课题《温度控制系统》,从硬件和软件设计两方面做了较为详尽的阐述。

关键词:温度控制系统PID 控制单片机Abstract: This paper introduces a temperature control system that is based on the single-chip microcomputer.The hard ware compositionand software design are descried indetail combined with the projectComtrol System of Temperature.PID control Keywords: Control system of temperatureSingle-chip Microcomputer引言:温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。

基于单片机的炉温温度控制系统设计

基于单片机的炉温温度控制系统设计

摘要在工业生产过程中,往往需要对各类加热炉、热处理炉、反应炉的温度进行检测和调节,因此需要一种合适的系统对其温度进行精确控制。

由于单片机具有低功耗、高性能、可靠性好、易于产品化等特点,因此采用单片机对温度进行控制不仅节约成本,控制方法灵活多样,并且可以达到较高的控制精度,从而能够大大提高产品的质量,因此单片机被广泛应用在中小型控制系统中。

自动控制技术尤其是温度控制技术在国内外得到广泛的应用和发展。

时滞效应始终困扰着其实际应用,为此人们发明了多种控制方法来解决时滞问题,例如比例控制方式、DDC控制方式。

本文将针对一种温度控制方式进行学习,并设计一个以AT89S52单片机为核心、利用新型集成化智能1-Wire总线数字温度传感器DS18B20实现的温度采集控制系统,同时还阐述了直接数字控制(DDC)控制算法。

本系统按照模块化程序设计思想,完成了对系统软件部分的设计,给出了各个功能模块的设计思想和流程图。

温度采集控制系统不但能够准确地进行温度数据的采样转换,稳定进行升温、恒温的控制过程,而且可以记录温度—时间对应关系,并以现今广泛使用的液晶显示器作为输出设备,使数据读取更加直观。

现场仿真表明,该系统在测试过程中工作稳定,满足设计要求。

本设计采用以8位AT89S52单片机作为系统的CPU。

使用电加热器升温,配合键盘输入,液晶显示器显示。

具有硬件结构简单、人机界面友善、管理功能健全、系统可靠性高、记录数据准确、使用维护方便等优点。

关键字:温度采集系统;单片机;DS18B20;温度控制The Design of Furnace Temperature Control System Based onSingle Chip MicrocomputerAbstractIn the industrial production process, often require various types of furnace, heat treatment furnace, reactor temperature detection and regulation, so it needs a proper system of precise control of its temperature. as low power consumption single chip, high performance, reliability, easy-to-market commodity and so on, so to control the temperature using SCM not only save on cost, control method of flexible and diverse, and can achieve higher precision, which can greatly enhance the quality of the product, so SCM is widely used in the Small control system.The automatic control technique is a temperature particularly controls technique at domestic and international get the extensive application with develop. Time postpone effect perplex always in fact on the occasion of applied, for this person invents various controls method to resolve the problem of Time postpone. This paper introduces a design of temperature data acquisition system based on single-chip AT89S52. The system collects temperature data through 1-Wire Digital Thermometer DS18B20, and the control algorithm of DDC parameters is presented.This system according to mold a design for turning procedure design toughing, completing to system software part of designs, giving each function mold piece thought with flow chart. A function temperature control system can proceed accurately the data adopts the kind converts, stabilizing the proceeding heat, the control process of the constant temperature, and can satisfy completely to the request of the system accuracy. and can show them to the operators by the way of the Liquid Crystal Display. This system used the present the usage the LCD and actions output equipments, make data kept the view more. The results of the simulation show that the system works stably and meets the expected design requirements.The temperature data acquisition and control system adoption with 8 bit AT89S52 single a machine for system CPU. The usage electricity heating apparatus heats, matching with the keyboard importation, displays with the LCD. It has simple structure, high system reliability, and the data recorded are reliable and the operation and maintenance are convenient.Key words: temperature data acquisition system; single-chip; DS18B20; temperature control目录1 绪论 (1)1.1 课题背景 (1)1.2 选题的目的和意义 (2)1.3 炉温控制的国内外研究现状及发展趋势 (2)1.4 本系统的任务和本文的主要内容 (4)2 系统总体分析与设计 (5)2.1 系统方案选择 (5)2.1.1 主控芯片单片机的选型 (5)2.1.2 温度传感器的选择 (5)2.2 系统的组成和工作原理 (6)2.3 系统主要元件介绍 (7)2.3.1 AT89S52单片机简介 (7)2.3.2 1602液晶显示器 (10)2.3.3 DS18B20数字温度传感器 (14)2.3.4 固态继电器 (18)2.4 本章小结 (19)3 硬件系统设计 (20)3.1 单片机的最小应用系统 (20)3.2 温度采集转换系统 (21)3.3 升温驱动控制系统 (22)3.4 键盘显示系统 (23)3.5 报警系统 (25)3.6 系统电源模块 (26)3.7 本章小结 (27)4 软件系统设计 (28)4.1 软件总体设计 (28)4.2 系统初始化函数 (29)4.3 控制函数 (30)4.4 读温度子程序 (31)4.5 键盘显示函数 (32)4.6 时间函数 (33)4.7 本章小结 (34)5 系统的调试与仿真 (35)5.1 软件调试 (35)5.2 硬件调试 (36)5.3 本章小结 (37)6 结论 (38)致谢 (39)参考文献 (40)附录1 (1)附录2 (18)1 绪论1.1 课题背景及时准确地得到温度信息并对其进行适时的控制,在许多工业场合中都是重要的环节。

基于STM32单片机的温度控制系统设计

基于STM32单片机的温度控制系统设计

基于STM32单片机的温度控制系统设计一、本文概述本文旨在探讨基于STM32单片机的温度控制系统的设计。

我们将从系统需求分析、硬件设计、软件编程以及系统测试等多个方面进行全面而详细的介绍。

STM32单片机作为一款高性能、低功耗的微控制器,广泛应用于各类嵌入式系统中。

通过STM32单片机实现温度控制,不仅可以精确控制目标温度,而且能够实现系统的智能化和自动化。

本文将介绍如何通过STM32单片机,结合传感器、执行器等硬件设备,构建一套高效、稳定的温度控制系统,以满足不同应用场景的需求。

在本文中,我们将首先分析温度控制系统的基本需求,包括温度范围、精度、稳定性等关键指标。

随后,我们将详细介绍系统的硬件设计,包括STM32单片机的选型、传感器和执行器的选择、电路设计等。

在软件编程方面,我们将介绍如何使用STM32的开发环境进行程序编写,包括温度数据的采集、处理、显示以及控制策略的实现等。

我们将对系统进行测试,以验证其性能和稳定性。

通过本文的阐述,读者可以深入了解基于STM32单片机的温度控制系统的设计过程,掌握相关硬件和软件技术,为实际应用提供有力支持。

本文也为从事嵌入式系统设计和开发的工程师提供了一定的参考和借鉴。

二、系统总体设计基于STM32单片机的温度控制系统设计,主要围绕实现精确的温度监测与控制展开。

系统的总体设计目标是构建一个稳定、可靠且高效的环境温度控制平台,能够实时采集环境温度,并根据预设的温度阈值进行智能调节,以实现对环境温度的精确控制。

在系统总体设计中,我们采用了模块化设计的思想,将整个系统划分为多个功能模块,包括温度采集模块、控制算法模块、执行机构模块以及人机交互模块等。

这样的设计方式不仅提高了系统的可维护性和可扩展性,同时也便于后续的调试与优化。

温度采集模块是系统的感知层,负责实时采集环境温度数据。

我们选用高精度温度传感器作为采集元件,将其与STM32单片机相连,通过ADC(模数转换器)将模拟信号转换为数字信号,供后续处理使用。

温度控制系统设计Word

温度控制系统设计Word

温度控制系统摘要:随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。

本设计论述了一种以STC89C52单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。

该控制系统可以实时存储相关的温度数据并记录当前的时间。

系统设计了相关的硬件电路和相关应用程序。

硬件电路主要包括STC89C52单片机最小系统,测温电路、实时时钟电路、LCD液晶显示电路以及通讯模块电路等。

系统程序主要包括主程序,读出温度子程序,计算温度子程序、LCD显示程序以及数据存储程序等。

关键词:STC89C52, DS18B20,LCDAbstract:Along with the computer measurement and control technology of the rapid development and wide application, based on singlechip temperature gathering and control system development and application greatly improve the production of temperature in life level of control. This design STC89C52 describes a kind of mainly by MCU control unit, for temperature sensor DS18B20 temperature control system. The control system can real-time storage temperature data and record related to the current time. System design related hardware circuit and related applications. STC89C52 microcontroller hardware circuit include temperature detection circuit smallest system, and real-time clock circuit, LCD display circuit, communication module circuit, etc. System programming mainly include main program, read temperature subroutine, the calculation of temperature subroutines, LCD display procedures and data storage procedures, etc.Keywords: STC89C52, DS18B20,LCD目录1前言 (1)2总体方案设计 (2)2.1方案设计 (2)2.2方案论证 (3)2.3方案选择 (3)3单元模块的设计 (4)3.1单片机模块 (4)3.2 18B20温度模块 (5)3.3显示器模块 (6)4软件设计 (7)4.1 系统总框图 (7)4.2温度采集子程序 (8)5系统功能与调试方法介绍 (9)5.1系统功能 (9)5.2系统指标................................................................ . (9)5.3系统调试 (9)6参考文献 (10)附录1: 相关设计图 (11)附录2:元器件清单 (13)附录3:源程序............................................. (14)1前言工业控制是计算机的一个重要应用领域,计算机控制系统正是为了适应这一领域的需要而发展起来的一门专业技术,它主要研究如何将计算机技术、通过信息技术和自动控制理论应用于工业生产过程,并设计出所需要的计算机控制系统。

温度控制系统(如何构建一个温度控制系统)

温度控制系统(如何构建一个温度控制系统)

系统限制
系统限制
距离 物理限制 功耗
地址
逻辑限制
系统限制
物理限制
最多250米 米 最多
最多500米 米 最多
系统限制
物理限制
计算系统功耗: 计算系统功耗:
温控中心
+
探测器
+
执行器
最大1200毫安 毫安 最大
如果温控和自动化使用同一个总线系统, 如果温控和自动化使用同一个总线系统,也需加入功耗
系统限制
3
Select the actuators 选择执行器
1 or 2 CIRCULATION PUMP 循环泵
1 or 2 Only 1 ON/OFF SOLEN. OPEN/CLOSE VALVE SOLEN. VALVE 开/关螺线圈阀门 1个开/关螺线圈 阀门
NO FAN COIL 无风扇线圈
ZONE 99 Max 8 slaves for each zone 每区最多8个从动
ZONE 01
ZONE 55
HOW TO CONFIGURE THE ACTUATORS 如何配置执行器
F430/2
F430/4
F430/2
• Number of zone区 区
ZA 0÷9
ZB1 0÷9
N1 1÷9
Temperature control system 温控系统
学习重点: 学习重点:
如何根据方案需求定位产品; 如何选择控制器; 如何选择执行器; 如果配置控制器; 如何配置执行器 ; 管理中心的配置; 系统限制和扩展; 温度控制系统的高级解决方案;
Build a Thermo regulation System
ZB1=ZB2 ZB3=ZB4

温度控制系统实验报告

温度控制系统实验报告

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

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

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

简易温度控制系统doc.

简易温度控制系统doc.

目录一、要求 (3)二、摘要 (4)三、前言 (5)四、方案分析 (6)五、实现 (10)六、结论 (14)七、附录 (15)简易温度控制系统设计并制作一个简易的单片机温度自动控制系统(见图一)。

控制对象为自定。

图一 恒温箱控制系统 设计要求如下(1)温度设定范围为40℃~90℃,最小区分度为1℃ (2)用十进制数码显示实际温度。

(3)被控对象温度采用发光二极管以光柱形式和数码形式显示。

(4)温度控制的静态误差≤2℃。

扩充功能:控制温度可以在一定范围内设定,并能实现自动调整,以保持设定的温度基本保持不变(测量温度时只要求在现场任意设置一个检测点)。

可编程 控制器显示器 设置键盘电源执行器恒温箱温度传感器变送器220V AC本次设计的主要目的是实现对温度的控制,其主要思路是通过温度传感器感应物体的温度,通过数码管显示出来,由于本此设计的温度设定范围是在40度到90度之间,因此如果物体的温度不在这个设定范围内,那么就需要通过加热或降温使物体的温度达到这个范围。

另外本次设计设定了键盘,通过键盘输入设定的数,然后通过调温使该物体的温度达到设定的数值。

本次设计采用单片机原理,共有温度感应模块、显示模块、键盘输入模块、比较模块四大块。

通过温度动态显示,可以显示被测物体的温度,而通过键盘扫描可以求出设定的温度值,通过温度传感器可以感应物体的温度。

那么,本次设计所能实现的功能就是可以测定物体的温度并能实现自动调整和手动键盘调整。

三、前言随着社会的发展和科技的进步以及测温仪器在各个领域的应用,智能化是现代温控系统发展的主流方向,特别是今年来,温度控制系统已应用到生活的各个方面,但是温度控制一直是一个未开发的领域,是与人们息息相关的一个问题。

针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景和实际意义。

温度是科学技术中最基本的物理量之一。

物理、化学、生物等学科都离不开温度,在工业生产等许多领域,温度常常是表征对象和过渡状态的重要物理量。

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

目录一、要求 (3)二、摘要 (4)三、前言 (5)四、方案分析 (6)五、实现 (10)六、结论 (14)七、附录 (15)简易温度控制系统设计并制作一个简易的单片机温度自动控制系统(见图一)。

控制对象为自定。

图一恒温箱控制系统设计要求如下(1)温度设定范围为40℃~90℃,最小区分度为1℃(2)用十进制数码显示实际温度。

(3)被控对象温度采用发光二极管以光柱形式和数码形式显示。

(4)温度控制的静态误差≤2℃。

扩充功能:控制温度可以在一定范围内设定,并能实现自动调整,以保持设定的温度基本保持不变(测量温度时只要求在现场任意设置一个检测点)。

本次设计的主要目的是实现对温度的控制,其主要思路是通过温度传感器感应物体的温度,通过数码管显示出来,由于本此设计的温度设定范围是在40度到90度之间,因此如果物体的温度不在这个设定范围内,那么就需要通过加热或降温使物体的温度达到这个范围。

另外本次设计设定了键盘,通过键盘输入设定的数,然后通过调温使该物体的温度达到设定的数值。

本次设计采用单片机原理,共有温度感应模块、显示模块、键盘输入模块、比较模块四大块。

通过温度动态显示,可以显示被测物体的温度,而通过键盘扫描可以求出设定的温度值,通过温度传感器可以感应物体的温度。

那么,本次设计所能实现的功能就是可以测定物体的温度并能实现自动调整和手动键盘调整。

三、前言随着社会的发展和科技的进步以及测温仪器在各个领域的应用,智能化是现代温控系统发展的主流方向,特别是今年来,温度控制系统已应用到生活的各个方面,但是温度控制一直是一个未开发的领域,是与人们息息相关的一个问题。

针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景和实际意义。

温度是科学技术中最基本的物理量之一。

物理、化学、生物等学科都离不开温度,在工业生产等许多领域,温度常常是表征对象和过渡状态的重要物理量。

各行各业对温度的要求越来越高,可见温度的测量和控制是非常重要的。

单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。

随着温度控制器应用越来越广泛,各种试用于不同场和的温度控制器应运而生。

四、方案分析本次设计主要版块分为温度感应模块,温度显示模块,键盘设定模块以及温度比较模块。

一、方案的选择1.对于温度感应模块有两种方案:一种是使用普通温度传感器pt100再结合电压放大器和AD转换器将感应到的温度数值转换为数字量存储在某一单元内。

但由于该方案电路繁多,线路冗长,所以舍之不用。

第二种是使用温度传感器18B20感应温度,由于该温度传感器内含AD转换器,因此连接简单,应用方便,故选用该方案。

2.对于温度显示模块有两种方案:一种是使用静态显示,通过数码管显示被测温度和设定温度。

该方案程序简单,但硬件连接复杂,所需元件数量多,不适合设计应用。

第二种是使用动态显示,通过数码管显示被测温度和设定温度。

该方案程序复杂,但硬件连接简单,所需元件少,适合设计应用。

3.对于键盘设定模块有两种方案:一种是使用线反转法,通过矩阵键盘,一次求出行数和列数,然后求出设定的数值。

由于该方案不具有扫描功能,因此不适用于一般的键盘程序,而适用于键盘中断程序。

第二种是使用键盘扫描法,通过矩阵键盘,求出设定的数值,由于该方案具有扫描功能,因此在不使用中断的情况下,使用键盘扫描程序是十分恰当的,本次设计采用的是键盘扫描程序。

4.对于温度比较模块,是通过比较程序,直接决定进行升温还是降温。

二、硬件的说明本次设计硬件用到了单片机89C52、温度传感器18B20、三—八译码器74LS138、驱动74LS245、数码管、矩阵式键盘、灯泡等。

单片机89C52是常用的单片机之一,单片机上有32个P口,其中P0、P1、P2、P3各8个。

温度传感器18B20接到单片机的一个P口上,本次设计是P1.3,因为温度传感器18B20可以直接将数据传输给单片机,因此可直接连接。

三八译码器74LS138出线端用于连接驱动74LS245,入线端ABC连接到单片机的P1口上的P1.0、P1.1、P1.2,通过调节P1口上的这三端的值进而控制出线端0到7哪个为低电平。

本次设计用到2个74LS245,它的输出端接数码管,输入端一个接P0口,一个接74LS138,它们分别控制数码管的字型码输出和数码管选择。

矩阵式键盘采用3×3式,分别表示1到9。

通过将6个出线端接到P2口上,然后通过P2口控制键盘,键盘的行拉高电阻和5伏电压。

三、软件的说明对于温度感应模块,调用18B20程序,直接在某一单元存储温度的数值。

其中18B20程序见附录。

对于温度显示模块,一共有静态和动态两种显示,静态显示时,各个LED 数码管相互独立,公共端接地,每个数码管的8个显示字段控制端分别与一个8位并行输出口相连,只要输出口输出字型码,LED 数码管就立即显示出相应的字符,并保持到输出口输出新的字型码。

采用静态显示,用较小的电流便可获得较高的亮度,而且占用CPU 时间少,编程简单,显示便于检测和控制,但其占用的口线多,硬件电路复杂,成本较高。

动态显示时,是各个LED 数码管一位一位轮流显示。

在硬件电路上,各个数码管的显示字段控制端并联到一起,有一个8位并行输出口控制,各个LED 数码管的公共端作为显示位的位选线,由另外的输出口控制,动态显示节省I/O 口,硬件电路简单。

本次设计采用的是动态显示,实现方法是温度显示程序的流程图为对于键盘设定模块,键盘是由多个按键组成。

它可以分成独立式和矩阵式2种形式。

独立式键盘是一组相互独立的按键,他们分别直接与I/O口电路连接,每个按键占用一根输入口线。

独立式键盘比较灵活,软件结构简单,但当按键较多时,输入口线浪费较大。

因此在应用系统中,按键较多时,一般不采用。

矩阵式键盘也称为行列式键盘,用输入和输出口线组成行列结构,按键设置在行和列的交叉点上,按键闭合时,接通输入和输出口线。

矩阵式键盘在按键较多时可以节省I/O口线。

本次设计采用矩阵式键盘,并且按键识别的方法是扫描法。

在按键识别过程中,依次使行线输出低电平,然后检查列线的输入电平,如果所有列线的输入全为高电平,则该行无按键按下;如果不全为高电平,则被按下的按键在本行,且在输入电平变为低电平的列的交叉点上。

本次设计没有用线反转法是由于本次设计没有用到中断,而没有中断的情况下就要求我们必须不停地扫描键盘,因此线反转法在本次设计中并不是最好的按键识别方法。

键盘程序的流程图为:、对于温度比较模块,通过比较传感器温度和键盘温度,然后对被控对象作出调整。

由于本次设计采用的加热装置是灯泡,降温装置是自然冷却,因此如果单纯地令传感器温度和键盘温度相等,就会出现灯泡一闪一灭的抖动状态,本次的消抖方略是在设定温度上下各加2度。

使最终温度在这个范围内来回波动。

四、软硬件的总体概述本次设计的主题思路如下:本次设计的温度控制系统为手动、自动双重输入系统。

如果键盘没有按下键值,则系统自动将温度设定在40度到90度。

如果键盘输入数据,但数据不在40度到90度的范围之内,那么按没有输入键值处理。

如果键盘输入的数据在40度到90度范围内,那么系统会将被控对象的温度控制在设定温度左右,且误差不超过2度。

五、实现本次设计的功能板块分为四块,分别是温度传感器显示功能、键盘输入显示功能、无键盘输入自动调整功能、有键盘输入温度调整功能。

1.温度传感器显示功能温度传感器18B20能自动感应温度,并且内含AD转换器,能够直接输出一个温度值,并将它存储在单片机某一个单元内。

功能如图所示2.键盘输入显示功能键盘输入数值,数码管会显示输入的数值。

功能如图所示3.无键盘输入自动调整功能在没有键盘输入的情况下,被控对象的温度会被控制在40到90度以内。

功能如图所示4.有键盘输入温度调整功能当有键值输入且键值在40度到90度范围内时,被控对象的温度将被控制到设定温度左右,误差不超过2度。

功能如图所示调试过程中,出现过不少问题,诸如:1.发现在仿真开始后,数码管不亮原因:发现继电器用的不好解决方法:换了一个继电器2.发现温度传感器的温度并不能有效地显示在数码管上原因:温度传感器的程序有问题,其中31H和32H单元错写成了#31H和#32H。

解决方法:将31H和32H前面的#号去掉,温度开始正常显示。

3.发现键盘的数字按下后,键盘没有反应。

原因:程序中键盘的按键识别方法是线反转法,键盘的键值所对应的行与列不能有效接通。

解决方法:改用扫描法,键盘有了反应。

4.发现数码管显示的温度在不停地跳动。

原因:数码管显示程序中先输出字型码后选显示位置。

解决方法:数码管程序中先选显示位置后输出字型码。

5.在连接外电路灯泡时,发现接好后灯泡不亮。

原因:继电器的开关接线端接错解决方法:将继电器的接线端接好6.发现实物中当电灯泡的温度达到设定温度时,灯泡开始一亮一闪不停闪烁。

原因:灯泡的温度不停地升降,导致灯泡不停的抖动解决方法:在设定的温度上下各加2度,使温度在这个范围内来回波动。

六、结论本次设计的题目是温度控制系统,其主要思想是将温度控制在某一个设定的温度左右,误差不超过2度。

本次设计所包含的基本功能如下:当没有键值输入时,被控对象的温度将被设定在40到90度内,来回往复波动。

当有按键按下时,如果按键设置的温度不在40到90度内,那么按照没有按键输入来处理。

如果按键设置的温度在40到90度内,那么就将物体的温度设定在按键温度左右,且误差不超过2度。

本次设计中不足之处就是温度变化比较慢,可能原因是箱子的密封性不太好,传感器与灯泡距离远等原因。

改进方法是换一个密封性好一点的箱子,且箱子不要太大。

本次设计历时3周左右,花费了大量的精力和时间,可以说其中包含了诸多的汗水和付出。

通过翻阅书籍和不停地写程序调试,既增长了知识,又增加了经验。

其过程中有苦有甜,不足道也。

最后感谢老师的指导和同学的帮助。

七、附录1原理图附录2元件明细单片机89C52温度传感器18B20驱动74LS245三线—八线译码器数码管键盘继电器附录3电路程序ORG 0000HLJMP STATORG 0100HSTA T:CLR EA ;关闭中断MOV SP,#70H ;开辟栈区CLR 00H ;DS18B20标志位SETB P3.3 ;关闭加热MOV R1,#00H ;清R1MOV 31H,#00HMOV 32H,#00HMOV 41H,#00H ;设置键盘设定温度的高位MOV 42H,#00H ;设置键盘设定温度的低位MOV 51H,#00H ;设置测量温度高位MOV 52H,#00H ;设置测量温度低位MOV 55H,#00HMOV 61H,#00HMOV 62H,#00HLCALL INIT ;消除上电抖动BCDH:LCALL LOOP ;测温LCALL LOW1 ;显示测量温度LCALL LOW2 ;显示键盘设定温度LCALL KEYB ;扫描键盘LCALL LOW1 ;显示测量温度LCALL LOW2 ;显示键盘设定温度LCALL COMP ;比较温度LJMP BCDH ;返回键盘程序:KEYB:MOV P2,#00011111B ;置输入为1,输出为0MOV A,P2 ;读P2口的引脚状态ANL A,#00011111BXRL A,#00011111BJZ NOKEY ;判断有无按键按下ACALL DL20MS ;延时20MS消抖ANL A,#00011111B ;重读键盘XRL A,#00011111BJZ NOKEY ;再次判断有无按键按下MOV R2,#11101111B ;行扫描初始值,从第一行开始SCAN: MOV A,R2MOV P2,AMOV A,P2ANL A,#00001111BMOV R3,A ;取列线的引脚状态CJNE A,#00001111B,KEYP ;有键按下MOV A,R2RL A ;产生下次的行线输出MOV R2,AXRL A,#11111110BJNZ SCAN ;扫描完否,未完继续NOKEY:MOV R5,#0FFH ;无按键按下RETKEYP:MOV A,R2 ;取行扫描值ANL A,#11110000B ;计算行特征码ORL A,R3 ;计算按键特征码MOV R4,A ;按键特征码暂存在R4中MOV R5,#00H ;设置按键键值初始值MOV DPTR,#KEY_TAB ;特征码表首地址CALV:MOV A,R5 ;计算按键键值MOVC A,@A+DPTRXRL A,R4JZ FIXEDINC R5SJMP CALVFIXED:MOV A,P2 ;判断键值是否释放ANL A,#1FHXRL A,#1FHJNZ FIXEDACALL DL20MS ;延时消抖MOV A,P2ANL A,#1FHXRL A,#1FHJNZ FIXEDINC R5CJNE R1,#1,TURN ;判断是否是第二次按键MOV A,R5 ;若是第二次按键,则将数存在42H中,且R1加1 MOV 42H,AINC R1RETTURN:CJNE R1,#2,RNUO ;若不是第二次按键,则判断是否是第三次按键MOV A,R5 ;若是第三次按键,则将数存在41H中,42H清0 MOV 41H,A 且R1减1MOV 42H,#00HDEC R1RETRNUO:MOV A,R5 ;若是第一次按键,则数存在41H中,42H清0 MOV 41H,A 且R1加1MOV 42H,#00HINC R1RET比较程序:COMP:MOV A,41H ;判断是否有键按下,若有,跳到NEXT CJNE A,#00H,NEXTSGD: MOV A,51H ;无键按下时,判断是否在40到90度范围CJNE A,#4,GOOD 内MOV A,52HCJNE A,#00H,HUPCLR P3.3 ;若温度刚好在40度,则加热RETGOOD:JC NEQ ;判断温度是否大于40度,若小于,则跳转MOV A,51HCJNE A,#9,HUP ;判断温度是否小于90度,若小于,则跳转SETB P3.3 ;温度刚好为90度,关闭加热RETNEQ: CLR P3.3 ;启动加热RETHUP: RET ;结束NEXT:MOV A,41H ;当有键按下时,判断键值是否在40到90 CJNE A,#4,KJH 度范围内DRT: MOV A,41H ;若在范围内,则比较键盘设定温度和测量温度CJNE A,51H,ROMOV A,42HCJNE A,52H,RORET ;键盘设定温度和测量温度相同,不处理KJH: JC QDS ;判断设定温度是否大于40度,若小于,跳转MOV A,41HCJNE A,#9,DRT ;判断设定温度是否小于90度,若小于,跳转MOV A,42HCJNE A,#00H,QDSLJMP DRT ;等于90度,则跳转到DRTQDS: MOV 41H,#00HLJMP SGD ;小于40度,则跳转到SGDRETRO: JC GOON ;比较设定温度和测量温度,若设定温度小于测量MOV A,41H 温度,则跳转到GOONMOV 61H,AMOV A,42HMOV 62H,ACJNE A,#00H,QWE ;令设定温度减1度MOV 62H,#9DEC 61HPUO:MOV A,61H ;重新比较设定温度和测量温度CJNE A,51H,WEQMOV A,62HCJNE A,52H,WEQRET ;相等,不处理WEQ:CLR P3.3 ;不相等,启动加热RETQWE:MOV A,62HDEC AMOV 62H,ALJMP PUOGOON:MOV A,41HMOV 61H,AMOV A,42HMOV 62H,ACJNE A,#9,XCZ ;令设定温度加1度MOV 62H,#00HINC 61HYEC: MOV A,61H ;重新比较设定温度和测量温度CJNE A,51H,LKPMOV A,62HCJNE A,52H,LKPRET ;若相等,不处理LKP: SETB P3.3 ;若不等,关闭加热RETXCZ: MOV A,62HINC AMOV 62H,ALJMP YECDL20MS:MOV R2,#100 ;延时20mS消抖DEL3: MOV R3,#50DEL4: NOPNOPDJNZ R3,DEL4DJNZ R2,DEL3RET显示程序:LOW1:MOV R0,#51H ;显示测量温度,显示缓冲区地址MOV R2,#00000000B ;显示起始位置RED1:ACALL DISO ;显示一位MOV A,R2 ;计算下一个显示位置INC AMOV R2,AINC R0 ;修改缓冲区地址XRL A,#00000010B ;2位显示完否JNZ RED1 ;未完,继续显示RET ;返回DISO:MOV A,R2 ;取显示位置MOV P1,A ;显示MOV DPTR,#LED_SEG ;字型码表首地址MOV A,@R0 ;取显示数据MOVC A,@A+DPTR ;求显示数据的字型码MOV P0,A ;输出字型码ACALL DL1MS ;稳定显示1MSRETLED_SEG:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H; ;显示字型码表DB 3EH,50H,40H,08H,00H,显示程序LOW2:MOV A,41HCJNE A,#00H,BNMMOV 42H,#00HBNM: MOV R0,#41H ;显示设定温度,显示缓冲区地址MOV R2,#00000010B ;显示起始位置RED2:ACALL DISE ;显示一位MOV A,R2 ;计算下一个显示位置INC AMOV R2,AINC R0 ;修改显示缓冲区地址XRL A,#00000100B ;2位显示完否JNZ RED2 ;未完,继续显示RET ;返回DISE:MOV A,R2 ;取显示位置MOV P1,A ;显示MOV DPTR,#LED_SEG ;字型码表首地址MOV A,@R0 ;取显示数据MOVC A,@A+DPTR ;求显示数据的字型码MOV P0,A ;输出字型码ACALL DL1MS ;稳定显示1MSRETDL1MS:MOV R5,#10 ;延时1MS子程序DEL1: MOV R6,#30DEL0: NOPNOPDJNZ R6,DEL0DJNZ R5,DEL1RETKEY_TAB:DB 77H,7BH,7DH,0B7H,0BBH,0BDH,0D7H ;键盘字型码表DB 0DBH,0DDH温度传感器18B20程序:LOOP:LCALL RE ;温度传感器程序,初始化18B20 LCALL GETLCALL CONVLCALL OBCDRETRE: JB 00H,RE1 ;若18B20存在,转RE1RETRE1: MOV A,#0CCH ;发SKIP ROM命令LCALL WRMOV A,#4EH ;发写暂存存储器命令LCALL WRMOV A,#00H ;TH(报警上限)中写入00HLCALL WRMOV A,#00H ;TL(报警下限)中写入00HLCALL WRRETGET: SETB P1.3 ;定时入口LCALL INITJB 00H,TSS1RET ;若18B20不存在,则返回TSS1:MOV A,#0CCH ;跳过ROM匹配LCALL WRMOV A,#44H ;发出温度转换命令LCALL WRMOV R0,#250 ;等待A/D转换结束,12位的话750MS TSS2:NOPDJNZ R0,TSS2LCALL INITMOV A,#0CCH ;跳过ROM匹配LCALL WRMOV A,#0BEH ;发出读温度命令LCALL WRLCALL READMOV 55H,A ;将读出的温度数据保存RETINIT:SETB P1.3NOPCLR P1.3 ;主机发出延时540us的复位低脉冲MOV R0,#180TSR1:NOPDJNZ R0,TSR1SETB P1.3 ;拉高数据线NOPNOPMOV R0,#36TSR2:JNB P1.3,TSR3 ;等待DS18B20回应DJNZ R0,TSR2LJMP TSR4 ;延时TSR3:SETB 00H ;置标志位,表示DS18B20存在LJMP TSR5TSR4:CLR 00H ;清标志位,表示DS18B20不存在LJMP TSR7TSR5:MOV R0,#6BH ;200usTSR6:DJNZ R0,TSR6 ;复位成功,时序要求延时一段时间TSR7:SETB P1.3RETWR: MOV R2,#8 ;写18B20程序CLR CWR1: CLR P1.3MOV R3,#6DJNZ R3,$RRC AMOV P1.3,CMOV R3,#23DJNZ R3,$SETB P1.3NOPDJNZ R2,WR1SETB P1.3RETREAD:MOV R4,#2 ;读18B20程序,读高位和地位MOV R0,#32H ;低位存入32H,高位存入31HRE00:MOV R2,#8RE01:CLR CSETB P1.3NOPNOPCLR P1.3NOPNOPNOPSETB P1.3MOV R3,#7DJNZ R3,$MOV C,P1.3MOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE01MOV @R0,ADEC R0DJNZ R4,RE00RETCONV:MOV R7,#04RED0:CLR CMOV A,31HRRC AMOV 31H,AMOV A,32HRRC AMOV 32H,ADJNZ R7,RED0RETOBCD:MOV A,32H ;将温度转换为10进制MOV B,#100DIV ABMOV R3,AMOV A,#10XCH A,BDIV ABMOV 51H,A ;高位存在51H MOV 52H,B ;低位存在52H RET。

相关文档
最新文档