基于单片机的水温控制系统的设计与实现 徐华学 0908020145
- 格式:doc
- 大小:928.00 KB
- 文档页数:26
基于单片机的水温控制系统设计水温控制系统在许多领域中都具有重要的应用价值,例如温室农业、水族馆、游泳池等。
在这些应用中,保持水温在一个合适的范围内对于生物的生存和健康至关重要。
基于单片机的水温控制系统设计是一种有效的方法,它可以实现对水温的精确控制和调节。
本文将详细介绍基于单片机的水温控制系统设计原理、硬件实现和软件编程等方面内容。
第一章研究背景与意义1.1研究背景随着科技的飞速发展,人们对生活品质的追求不断提高,对家电设备的智能化要求也越来越高。
其中,水温控制系统在热水器、空调等家电产品中具有广泛的应用。
精确控制水温对于提高用户体验、节约能源和保护环境具有重要意义。
然而,现有的水温控制系统存在控制精度不高、响应速度慢等问题,因此,研究一种新型的水温控制系统具有重要的实际意义。
1.2研究意义本研究旨在提出一种新型的水温控制系统,通过对水温进行精确控制,提高家电产品的性能和用户体验。
此外,本研究还将探讨系统性能的评估和改进方法,为水温控制领域的研究提供理论支持。
第二章水温控制系统设计原理2.1 水温测量原理本章将介绍水温的测量原理,包括热电偶、热敏电阻、红外传感器等常用温度传感器的原理及特点。
通过对各种传感器的比较,选出适合本研究的温度传感器。
2.2温度传感器选择与应用在本研究中,我们将选择一种具有高精度、快速响应和抗干扰能力的温度传感器。
此外,还将探讨如何将选定的温度传感器应用于水温控制系统,包括传感器的安装位置、信号处理方法等。
2.3控制算法选择与设计本章将分析现有的控制算法,如PID控制、模糊控制、神经网络控制等,并选择一种适合本研究的控制算法。
针对所选控制算法,设计相应的控制电路和程序。
第三章硬件实现3.1控制器选择与搭建本章将讨论控制器的选型,根据系统的需求,选择一款性能稳定、可编程性强、成本合理的控制器。
然后,介绍如何搭建控制器硬件系统,包括控制器与各种外设(如温度传感器、继电器等)的连接方式。
基于单片机的水温控制系统设计摘要:水温控制系统在工业、农业、生活等各个领域广泛应用。
随着技术的发展,单片机控制技术正在越来越多的应用到水温控制领域中。
本文通过对水温控制系统原理的分析,进行了设计和制作,并通过实验结果验证了本设计的可行性和稳定性。
关键词:单片机控制技术;水温控制系统;可行性;稳定性1. 引言水温控制系统在现代社会中应用广泛,水温控制技术的发展和进步为现代社会的科技进步做出了巨大的贡献。
单片机技术作为一种广泛应用的控制技术,可以实现多种不同的控制操作,因此被广泛应用到水温控制系统中。
本文将针对单片机水温控制系统进行分析设计,并进行实验验证。
2. 水温控制系统原理分析水温控制系统的基本结构由传感器、控制器以及执行机构等组成。
其中,传感器负责温度数据的采集,控制器负责处理和分析数据,并控制执行机构实现温度控制。
单片机水温控制系统的实现原理基于以下几个步骤:1)传感器采集温度数据并将数据转换为数字信号。
2)单片机控制器通过间接方式获取传感器采集的温度数字信号,并将其传输到外围设备中。
3)控制器将传输的信息根据其程序所设定的算法进行计算,得到温度数据,从而调整执行机构的作用。
4)执行机构实现接收计算出的数据并通过温度调节装置将温控装置的工作状态调节到所设定的工作状态,最终实现水温控制。
3. 单片机水温控制系统设计根据以上原理设计单片机水温控制系统,具体实现过程如下:1)传感器:选用DS18B20数字温度传感器,将其与单片机进行连接;2)控制器:选用AT89S52单片机,作为水温控制器,通过程序将传感器所采集到的数字信号转化为温度信息,并与设定温度进行比较和判断,控制继电器开关;3)执行机构:选用继电器作为执行机构,通过继电器的开关控制加热器的加热状态,调节水温。
4. 实验验证将设计好的单片机水温控制系统进行实验,实验过程中将设定温度为30℃,获得的实验结果显示在图1中。
图1 实验结果实验结果表明,本设计的单片机水温控制系统能够在设定温度为30℃时以及系统正常工作的情况下,实现对水温的有效控制。
基于单片机的水温水位控制系统设计设计基于单片机的水温水位控制系统需要考虑多个方面,包括硬件设计、传感器选择、控制算法等。
下面是一个简单的框架,供参考:1. 系统架构设计:•确定系统的功能模块,包括水温控制、水位控制、传感器接口、用户界面等。
2. 硬件设计:•选择合适的单片机,考虑到控制的实时性,通常选择性能较高的单片机,如Arduino、STM32等。
•设计电源电路,确保系统能够稳定工作。
•选择和设计合适的传感器接口电路,如温度传感器、水位传感器等。
3. 传感器选择和接口设计:•温度传感器:选择合适的温度传感器,如DS18B20,并设计接口电路进行连接。
•水位传感器:选择水位传感器,如浮球开关传感器,超声波水位传感器等,并设计接口电路。
4. 用户界面设计:•设计一个简单的用户界面,可以使用液晶显示屏(LCD)、LED 指示灯等,以显示当前水温、水位状态等信息。
•如果有需要,可以加入按键、旋钮等元件,以便用户进行设置和操作。
5. 控制算法设计:•制定水温和水位的控制算法,考虑到系统的实时性和稳定性。
•温度控制:可以使用PID(比例-积分-微分)控制算法,根据温度传感器的反馈调节加热器或冷却器的工作状态。
•水位控制:可以根据水位传感器的反馈,控制水泵的启停,以维持水位在设定范围内。
6. 通信模块设计(可选):•如果需要,可以考虑加入通信模块,如Wi-Fi模块、蓝牙模块,使系统可以通过手机或电脑进行远程监控和控制。
7. 安全保护设计:•考虑加入安全保护机制,如过温保护、过水位保护等,以确保系统运行的安全性。
8. 软件编程:•编写单片机的控制程序,根据设计的算法进行编程。
•确保程序的鲁棒性,考虑异常情况的处理。
9. 调试和测试:•在实际硬件上进行调试和测试,确保系统稳定可靠。
10. 性能优化:•对系统进行性能优化,如功耗优化、响应速度优化等。
以上是一个基本的设计框架,具体的实现需要根据具体需求和条件进行调整。
基于单片机的水温控制系统一、总体模块图二、总体思路用温度传感器AD590检测出水的温度,传感器会把温度值转换为模拟量,再经由一个模数转换器ADC0804把传感器中的模拟量转换为数字量,这样才能传送到单片机中,要温度有范围的限制,则要事先设定出最低和最高温度,这时便要利用键盘,这里采用独立键盘的方式只用到3个按键(一个“设定”键,一个“加一”键,一个“减一”键),设定好的温度就相当于一个标准值,实时的水温都要在单片机中与之进行比较,如果实时值低于最低温度时单片机要有一个输出信号去控制温度控制电路,即执行温度控制的中段,温度控制电路会控制电炉对水进行加热到最高温度时,单片机停止对温度控制电路的作用,水会逐渐降温到最低温度,再加热,如此循环。
其中的实时温度会由单片机来控制LED数码管的显示。
三、分块叙述1、温度传感器AD590测量范围在-50℃--+150℃,满刻度范围误差为±0.3℃,当电源电压在5—10V之间,稳定度为1﹪时,误差只有±0.01℃。
AD590为电流型传感器温度每变化1℃其电流变化1uA。
满足温度范围40-90℃,最小区分度为1℃。
2、模数转换器ADC0804ADC0804的引脚功能如下:1、/CS(片选端)。
用来控制ADC0804是否被选取中,/CS=0时芯片被选中。
2、/RD(读控制端)。
/RD为1时,DB0-DB7处于高阻状态,/RD=0时,DB0-DB7才会输出电压数据。
3、/WR(写控制端)。
当/CS=0时,/WR由1变为0时,转换器被清除,/WR 再次回到1时,转换才重新开始。
4、CLK-IN(时钟输入端)。
5、INTR(中断输出端),低电平有效,接单片机外部中断。
6、Vin+(模拟电压同相输入端),输入电压在DC0-5.12V。
7、Vin-(模拟电压反相输入端),使用时一般接模拟地。
8、A-GND(模拟地)。
9、Vref/2(参考电压端),输入电压最高为5.12V时,应调整至2.56V;即此脚电压为输入最高电压的1/2。
基于单片机的水温控制系统的设计AbstractThe purpose of this study is to design a temperature control system for maintaining the desired temperature of water in a tank using a microcontroller. The system is designed to sense the water temperature and control a heating element to maintain the temperature within a specified range. The microcontroller used in this study is an STM32F103C8T6 board, which is programmed using C language in the Arduino IDE.The system consists of a thermistor sensor, which is used to measure the water temperature, a relay module to control the heating element, and an LCD screen to display the temperature setpoint and the actual temperature of the water. The system also includes a push button to set the desired temperature and a potentiometer to adjust the hysteresis of the control algorithm.The temperature control algorithm used in this system is the Proportional Integral Derivative (PID) algorithm. The PID algorithm is used to calculate the amount of power requiredto maintain the desired temperature of the water. The algorithm is designed to adjust the power supplied to the heating element based on the error value between the setpoint and the actual temperature of the water.The results of the study indicate that the designed system is capable of maintaining the desired temperature of the water within a reasonable range. However, the system could be further improved by implementing a more accuratetemperature sensor and using a more advanced control algorithm.Keywords: Temperature control, Microcontroller,STM32F103C8T6 board, Arduino IDE, Thermistor sensor, Relay module, LCD screen, Push button, Potentiometer, Proportional Integral Derivative (PID) algorithm.IntroductionTemperature control is an important aspect in many industrial and residential applications, particularly in situations where maintaining a specific temperature iscritical for the performance of a process. Water temperature control is one such application, whereby the temperature of water in a tank needs to be maintained within a specific temperature range for various purposes, such as for fish tanks, hot water boilers, and process applications.The aim of this study is to design a water temperature control system using a microcontroller. The system will be designed to sense the water temperature and control a heating element to maintain the temperature within a specified range. The microcontroller used in this study is an STM32F103C8T6 board, which is programmed using C language in the Arduino IDE.Materials and MethodsThe system consists of a thermistor sensor, which is used to measure the water temperature, a relay module to control the heating element, and an LCD screen to display the temperature setpoint and the actual temperature of the water. The system also includes a push button to set the desired temperature and a potentiometer to adjust the hysteresis of the control algorithm.The thermistor sensor is a type of resistor whoseresistance is dependent on the temperature of the environment it is placed in. The thermistor used in this study is a10Kohm thermistor. The relay module is used to turn the heating element on and off. The heating element used in this study is a 220V 300W immersion heater.The microcontroller used in this study is anSTM32F103C8T6 board, which is a 32-bit ARM Cortex-M3 core-based microcontroller. The board has 64KB of flash memory,20KB of SRAM, and 3 timers. The board is programmed using the C language in the Arduino IDE.The temperature control algorithm used in this system is the Proportional Integral Derivative (PID) algorithm. The PID algorithm is a control loop feedback mechanism thatcalculates the amount of power required to maintain the desired temperature of the water. The algorithm is designedto adjust the power supplied to the heating element based on the error value between the setpoint and the actual temperature of the water.ResultsThe system was tested by measuring the temperature of the water in the tank and comparing it to the desired temperature setpoint. The results showed that the system was able to maintain the temperature of the water within a reasonable range of the setpoint temperature.The LCD screen displayed the setpoint temperature and the actual temperature of the water. The push button was used to set the desired temperature of the water, and the potentiometer was used to adjust the hysteresis of thecontrol algorithm.The PID algorithm was able to adjust the power supplied to the heating element based on the error value between thesetpoint and the actual temperature of the water. The algorithm was able to maintain the temperature of the water within a narrow range of the setpoint temperature.ConclusionIn conclusion, the designed temperature control system was able to sense the temperature of water in a tank and control the heating element to maintain the temperature within a specified range. The system was designed using a microcontroller (STM32F103C8T6 board), which was programmed using C language in the Arduino IDE. The system consisted of a thermistor sensor, a relay module, an LCD screen, a push button, and a potentiometer. The PID algorithm was used to control the power supplied to the heating element and maintain the desired temperature of the water.Further improvements could be made to the system by implementing a more accurate temperature sensor and using a more advanced control algorithm. However, the current system provides a good foundation for the development of more advanced temperature control systems in the future.。
基于单片机的水温控制系统设计引言在能源日益紧张的今天,电热水器,饮水机,电饭煲之类的家用电器在保温时,由于其简单的温控系统,利用温敏电阻来实现温控,因而会造成很大的能源浪费浪费。
利用 AT89C51 单片机为核心,配合温度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。
单片机可将温度传感器检测到的水温模拟量转换成数字量,显示于LED 显示器上。
该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。
本设计任务和主要内容设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。
水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。
本设计主要内容如下:(1)温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。
(2)环境温度降低时温度控制的静态误差≤1℃。
(3)用十进制数码管显示水的实际温度。
(4)采用适当的控制方法,当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。
(5)温度控制的静态误差≤0.2℃。
系统主要硬件电路设计单片机控制系统原理框图温度采样电路选用传感器AD590。
其测量范围在-50℃--+150℃,满刻度范围误差为±0.3℃,当电源电压在5—10V之间,稳定度为1﹪时,误差只有±0.01℃。
此器件具有体积小、质量轻、线形度好、性能稳定等优点。
系统的信号采集电路主要由温度传感器(AD590)、基准电压(7812)及A/D转换电路(ADC0804)三部分组成。
信号采集电路温度控制电路此部分电路主要由光电耦合器MOC3041和双向可控硅BTA12组成。
MOC3041光电耦合器的耐压值为400v,它的输出级由过零触发的双向可控硅构成,它控制着主电路双向可控硅的导通和关闭。
100Ω电阻与0.01uF 电容组成双向可控硅保护电路。
部分控制电路系统主程序设计主程序流程图。
一、系统方案1.1 水温控制系统的设计任务和要求该系统为一实验系统,系统设计任务:设计一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。
水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。
利用单片机AT89c51实现水温的智能控制,使水温能够在一定温度之间实现控制温度调节。
利用仪器读出水温,并在此基础上将水温调节到我们通过键盘输入的温度(其方式是加热或降温),而且能够将温度显示在我们的七段发光二极管板上。
系统设计具体要求:(1)由键盘设定温度,设定范围为0~99℃,最小区分度为l ℃,标定温差<1。
(2)温度低于设定温度值时加热,温度高于设定值时降温。
(3)实现容器中无水时报警,及溢流控制等。
(4)环境温度降低时(例如用电风扇降温)温度控制约静态误差<1。
1.2 系统总体方案的选择(1)方案一 (如图1-1)此方案是传统的一位式模拟控制方案,选用模拟电路,用电位器设定给定值,反馈的温度值和设定值比较后,决定加热或不加热。
其特点是电路简单,易于实现,但是系统所得的结果精度不高并且调节动作频繁,系统静差大,不稳定。
系统受环境的影响大,不能实现复杂的控制算法,不能用数码管显示,不能用键盘设定。
图1-1 模拟电路一(2)方案二(如图1-2)此方案是传统的二位式模拟控制方案,其基本思想与方案一相同,但由于采用上下限比较电路,所以控制精度有所提高。
这种方法还是模拟控制方法,因此也不能实现复杂的控制算法使控制温度做的更高。
而且仍不能用数码管显示和键盘设定。
图1-2 模拟电路二(3)方案三(如图1-3)此方案采用AT89c51单片机系统来实现。
单片机软件编程灵活,自由度大,可用软件编程实现各种控制算法和逻辑控制【1】。
单片机系统可用数码管显示水温的实际值,能用键盘输入设定值等功能。
本方案选用了AT89c51芯片,不需要外扩展存储器,可使系统整体结构更为简单。
图1-3 温度控制系统框图方案论证方案一和方案二是传统的模拟控制方式,而模拟控制系统难以实现复杂控制规律,控制方案的修改也较麻烦。
基于单片机的水温控制系统毕业设计1. 简介本文将讨论基于单片机的水温控制系统的设计和实现。
水温控制系统是一种常见的自动化控制系统,用于监测和调节水温。
本项目旨在设计一个可靠、高效且易于使用的水温控制系统,以满足用户对水温的要求。
2. 功能需求2.1 温度检测水温控制系统需要能够准确地检测水的温度。
为此,我们将使用一个温度传感器来获取实时的水温数据。
传感器将与单片机连接,通过模拟输入引脚读取传感器输出的模拟信号。
2.2 温度显示为了方便用户了解当前水温情况,我们将在系统中添加一个液晶显示屏。
单片机将把读取到的温度数据转换为数字信号,并通过数字输出引脚发送给液晶显示屏进行显示。
2.3 温度调节根据用户设定的目标温度,系统需要能够自动调节水温。
我们将使用一个加热元件(例如电热棒)来提供加热功能。
单片机将根据当前水温与设定的目标温度之间的差异控制加热元件的开关。
2.4 温度保护为了避免水温过高引发安全问题,我们将在系统中添加一个温度保护功能。
当水温超过一定阈值时,单片机将自动关闭加热元件,并向用户发出警报。
3. 系统设计3.1 硬件设计系统的硬件设计包括以下组成部分:•单片机:选择一款适合的单片机,具有足够的输入输出引脚和计算能力。
•温度传感器:选择一款可靠、精确度高的温度传感器,例如DS18B20。
•液晶显示屏:选择一款适合的液晶显示屏,具有足够的显示区域和分辨率。
•加热元件:选择一款适合的加热元件,例如电热棒或电热器。
•警报器:选择一个适合的警报器,用于发出警报信号。
3.2 软件设计系统的软件设计包括以下几个方面:•温度检测:编写程序读取温度传感器输出的模拟信号,并进行模数转换得到实际温度值。
•温度显示:编写程序将实际温度值转换为数字信号,并通过数字输出引脚发送给液晶显示屏进行显示。
•温度调节:编写程序根据当前水温与设定的目标温度之间的差异控制加热元件的开关。
当差异过大时,开启加热元件;当差异较小或为负时,关闭加热元件。
基于单片机的水温控制系统优化与设计水温控制系统是一种常见的控制系统,它通过监测和调节水的温度,来满足特定的温度需求。
现在,随着单片机技术的发展,基于单片机的水温控制系统越来越成为一种有效的设计和优化选择。
本文将重点讨论基于单片机的水温控制系统的优化与设计方案。
1. 系统设计和架构基于单片机的水温控制系统的设计和优化要从系统的整体架构开始。
首先,需要明确定义控制目标,例如保持水温在特定范围内,提高能效等。
接下来,需要确定系统的主要组成部分,包括传感器、执行器、控制器以及数据显示和通信模块等。
2. 传感器选择与布置在水温控制系统中,传感器起到了重要的作用,它能够实时监测水温的变化并将信息反馈给控制器。
在选择传感器时,应考虑传感器的精确度、稳定性以及适用范围。
同时,在布置传感器时,应避免传感器暴露在阳光直射或其他干扰因素下,从而保证传感器的准确性。
3. 控制器算法优化控制器算法是水温控制系统中的关键部分。
常见的控制算法包括PID算法、模糊逻辑控制算法等。
在设计和优化控制器算法时,需要考虑系统的非线性特性、传感器误差以及系统的响应速度等因素,以提高系统的稳定性和控制精度。
4. 执行器选择与控制执行器负责根据控制器的指令来调节水温。
常见的执行器包括电磁阀、加热器等。
在选择执行器时,应考虑其响应速度、功耗以及与控制器的兼容性。
同时,需要设计合适的控制方法,如脉宽调制技术(PWM)来实现对执行器的精确控制。
5. 数据显示和通信水温控制系统通常需要将实时数据进行显示和记录,以便用户或管理者进行监控和管理。
因此,设计合适的数据显示和通信模块也是系统的重要组成部分。
可以通过液晶显示屏、数码管等方式进行数据显示,并通过串口、无线通信等方式实现数据传输和远程监控。
6. 系统安全与故障处理在设计和优化基于单片机的水温控制系统时,重要的一环是考虑系统的安全性和故障处理。
系统应具备防止过温、短路、电源故障等灾难性事件的能力。
题目:基于单片机的水温控制系统的设计与实现学生姓名:徐华学学生学号: 0908020145 系别:电气信息工程学院专业:自动化届别: 2013届指导教师:孙静电气信息工程学院制2012年9月基于单片机的水温控制系统的设计与实现学生:徐华学指导教师:孙静电气信息工程学院自动化系摘要:随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。
本设计论述了一种以STC89C52单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。
该控制系统可以实时显示相关的温度数据和当前的时间。
系统设计了相关的硬件电路和相关应用程序。
硬件电路主要包括STC89C52单片机最小系统、测温电路、实时时钟电路、LCD液晶显示电路以及通讯模块电路等。
系统程序主要包括主程序、读出温度子程序、计算温度子程序、按键处理程序、LCD显示程序以及数据存储程序等。
关键词:STC89C52;独立键盘;LCD显示管1 课程设计的任务与要求1.1 课程设计的任务工业控制是计算机的一个重要应用领域,计算机控制系统正是为了适应这一领域的需要而发展起来的一门专业技术,它主要研究如何将计算机技术、通信技术和自动控制理论应用于工业生产过程,并设计出所需要的计算机控制系统。
随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。
本设计就是基于单片机STC89C52温度控制系统的设计,通过本次课程实践,我更加的明确了单片机的广泛用途和使用方法,以及其工作的原理。
随着社会的发展,温度的测量及控制变得越来越重要。
本文采用单片机STC89C52设计了温度实时测量及控制系统。
单片机STC89C52 能够根据温度传感器DS18B20 所采集的温度在液晶屏上实时显示,通过控制从而把温度控制在设定的范围之内。
所有温度数据均通过液晶显示器LCD显示出来。
系统可以根据时钟存储相关的数据。
通过该课程的学习使我们对计算机控制系统有一个全面的了解、掌握常规控制算法的使用方法,掌握简单微型计算机应用系统软硬件的设计方法,进一步锻炼同学们在微型计算机应用方面的实际工作能力。
1.2 课程设计的要求本系统设计制作一个基于单片机的温度控制系统,能实现以下几种功能:(1)键盘扫描,通过单片机检测用户按下的是哪个按键并执行相应的功能。
(2)通过检测DS18B20的温度,并把实时检测到的温度在LCD1602上显示,如果温度低于下限设置的温度则驱动加热电气对其进行加温,如果超过上限设置的温度则驱动降温电气对其进行降温。
(3)通过单片机采集DS1302的数据,并在液晶屏幕上显示实时的年月日时分秒,并可以通过按键设置时间。
1.3 课程设计的研究基础本文对基于单片机的温湿度计系统进行了相关研究。
本系统是通过单片机控制来实现对温度进行测量。
本系统是以AT89S52单片机为控制单元、以DS18B20为温度传感器的温度控制系统,实现温度的测量、显示、控制,并利用单片机之间的通信功能,将所采集到的温度在液晶屏中显示出来。
本文旨在通过软、硬件的有机结合,以硬件为基础,进行各功能模块的编写。
本文对系统硬件的工作原理进行了简单描述,并附以系统硬件设计框图,并具体描述LCD 液晶显示屏、SHT7X及AT89S52等器件外接电路接口的软、硬件调试、程序流程和实现过程。
2温度控制系统方案制定2.1 方案提出方案一:系统以STC89C52单片机为控制核心,对系统进行初始化,主要完成对键盘的响应、液晶显示、温度测量以及时钟显示等功能的控制,起到总控和协调各模块之间工作的作用。
图1方案一系统结构框图系统结构如图1所示,本设计可分为以下模块:单片机主控模块、键盘模块、温度检测模块、液晶模块、时钟模块、继电器模块。
方案二:该方案使用AT89C51单片机作为控制核心,以智能温度传感器DS18B20为温度测量元件,对各点温度进行检测,设置温度上下限,超过其温度值就报警。
显示电路采用1602液晶模块显示,使用二极管、电阻和蜂鸣器组成的报警电路。
图2 方案二系统结构框图2.2 方案比较选择基于DS18B20的温度测量系统是一种分布式的温度测量系统,它可以远程对温度 实现测量和监控,广泛应用于电力工业、煤矿、森林、火灾、高层建筑等场合,按照DS18B20的通信协议,由主机向DS18B20发送命令,读取DS18B20转换的温度,从而实现对环境的温度的测量,当温度超过一定的值时,报警器开始报警。
采用智能温度传感器DS18B20,它直接输出数字量,精度高,电路简单,只需要模拟DS18B20的读写时序,根据DS18B20的协议读取转换的温度。
此方案硬件电路非常简单,但程序设计复杂一些,但是在课外对DS18B20、字符型液晶显示有所了解,而且曾经在网上看到过此类程序设计,并且我已经使用过开发工具KEIL 用C 语言对系统进行了程序设计,用单片机开发板对系统进行了测试, 达到了预期的结果。
由此可见,该方案完成具有可行性,体现了技术的先进性,经济上也没有任何问题。
对于方案一能够更加方便详细的显示出时间温度状况,因此选择方案一。
3 温度控制系统方案设计3.1 各单元模块功能介绍及电路设计3.1.1单片机主控模块STC89C52单片机最初是由Intel 公司开发设计的,但后来Intel 公司把51核的设计方案卖给了几家大的电子设计生产商,譬如SST 、Philip 、Atmel等大公司。
于是市面上出现了各式各样的但均以51为内核的单片机,倒是Intel公司自己的单片机却显得逊色了。
这些各大电子生产商推出的单片机都兼容51指令并在51的基础上扩展一些功能,而内部结构是与51一致的。
STC89C52有40个引脚、4个8位并行I/O口、1个全双工异步串行口,同时内含5个中断源、2个优先级、2个16位定时/计数器。
STC89C52的存储器系统由4K的程序存储器(掩膜ROM)和128B的数据存储器(RAM)组成。
STC89C52单片机的基本组成框图见图3。
图3 STC89C52单片机结构主要特性:(1)一个8 位的微处理器(CPU)。
(2)片内数据存储器RAM(128B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89系列单片机最多提供1K的RAM。
(3)片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。
但也有一些单片机内部不带ROM/EPROM,如8031、8032、80C31等。
目前单片机的发展趋势是将RAM和ROM都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。
SST公司推出的89系列单片机分别集成了16K、32K、64K Flash存储器,可供用户根据需要选用。
(4)四个8 位并行I/O接口P0~P3,每个口既可以用作输入,也可以用作输出。
(5)两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。
为方便设计串行通信,目前的52系列单片机都会提供3个16位定时器/计数器。
(6)五个中断源的中断控制系统。
现在新推出的单片机都不只5个中断源,例如SST89E58RD就有9个中断源。
(7)一个全双工UART(通用异步接收发送器)的串行I/O 口,用于实现单片机之间或单机与微机之间的串行通信。
(8)片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。
最高允许振荡频率为12MHz。
SST89V58RD最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。
引脚图:图4 89S52单片机管脚图部分引脚说明:(1)时钟电路引脚XTAL1和XTAL2XTAL2(18 脚):接外部晶体和微调电容的一端;在8051 片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。
若需采用外部时钟电路时,该引脚输入外部时钟脉冲。
要检查8051/8031的振荡电路是否正常工作,可用示波器查看XTAL2 端是否有脉冲信号输出。
XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。
在采用外部时钟时,该引脚必须接地。
(2)控制信号引脚RST、ALE、PSEN和EARST/VPD(9 脚):RST是复位信号输入端,高电平有效。
当此输入端保持备用电源的输入端。
当主电源Vcc发生故障,降低到低电平规定值时,将+5V电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
RST引脚的第二功能是VPD,即接入RST端,为RAM提供备用电源,以保证存储在RAM中的信息不丢失,从而复位后能继续正常运行。
ALE/PROG(30 脚):地址锁存允许信号端。
当8051上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC的1/6。
CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。
平时不访问片外存储器时,ALE端也以振荡频率的1/6 固定输出正脉冲,因而ALE 信号可以用作对外输出时钟或定时信号。
如果想确定8051/8031芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。
如有脉冲信号输出,则8051/8031基本上是好的。
ALE端的负载驱动能力为8个LS型TTL (低功耗甚高速TTL)负载。
此引脚的第二功能PROG在对片内带有4KB EPROM的8751编程写入(固化程序)时,作为编程脉冲输入端。
PSEN(29 脚):程序存储允许输出信号端。
在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。
此引脚接EPROM的OE端。
PSEN端有效,即允许读出EPROM/ROM中的指令码。
PSEN端同样可驱动8个LS型TTL负载。
要检查一个8051/8031小系统上电后CPU能否正常到EPROM/ROM中读取指令码,也可用示波器看PSEN端有无脉冲输出。
如有则说明基本上工作正常。
EA/Vpp(31 脚):外部程序存储器地址允许输入端/固化编程电压输入端。
当EA 引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051为4K)时,将自动转去执行片外程序存储器内的程序。
当输入信号EA引脚接低电平(接地)时,CPU只访问外部EPROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。
对于无片内ROM 的8031或8032,需外扩EPROM,此时必须将EA引脚接地。
此引脚的第二功能是Vpp,是对8751 片内EPROM固化编程时,作为施加较高编程电压(一般12V~21V)的输入端。