单片机课设报告—温度控制系统,恒温箱。我自己的作品,含有全部程序 全面详细

合集下载

基于单片机的恒温箱控制系统设计

基于单片机的恒温箱控制系统设计

基于单片机的恒温箱控制系统设计一、引言在现代科技的众多应用领域中,恒温控制技术扮演着至关重要的角色。

无论是在医疗、化工、科研还是在食品加工等行业,对环境温度的精确控制都有着严格的要求。

恒温箱作为实现恒温控制的重要设备,其性能的优劣直接影响到相关工作的质量和效率。

基于单片机的恒温箱控制系统凭借其精度高、稳定性好、成本低等优点,得到了广泛的应用。

二、系统总体设计(一)设计目标本恒温箱控制系统的设计目标是能够在设定的温度范围内,精确地控制箱内温度,使其保持恒定。

温度控制精度为±05℃,温度调节范围为 0℃ 100℃。

(二)系统组成该系统主要由温度传感器、单片机、驱动电路、加热制冷装置和显示模块等部分组成。

温度传感器用于实时采集恒温箱内的温度数据,并将其转换为电信号传输给单片机。

单片机作为核心控制单元,对采集到的温度数据进行处理和分析,根据预设的控制算法生成控制信号,通过驱动电路控制加热制冷装置的工作状态,从而实现对箱内温度的调节。

显示模块用于实时显示箱内温度和系统的工作状态。

三、硬件设计(一)单片机选型选择合适的单片机是系统设计的关键。

考虑到系统的性能要求和成本因素,本设计选用了_____型号的单片机。

该单片机具有丰富的片上资源,如 ADC 转换模块、定时器/计数器、通用 I/O 口等,能够满足系统的控制需求。

(二)温度传感器选用_____型号的数字式温度传感器,其具有高精度、低功耗、响应速度快等优点。

传感器通过 I2C 总线与单片机进行通信,将采集到的温度数据传输给单片机。

(三)驱动电路驱动电路用于控制加热制冷装置的工作。

加热装置采用电阻丝加热,制冷装置采用半导体制冷片。

驱动电路采用_____芯片,通过单片机输出的控制信号来控制加热制冷装置的通断,从而实现温度的调节。

(四)显示模块显示模块选用_____型号的液晶显示屏,通过单片机的并行接口与单片机进行连接。

显示屏能够实时显示箱内温度、设定温度以及系统的工作状态等信息。

《2024年基于51单片机的温度控制系统设计与实现》范文

《2024年基于51单片机的温度控制系统设计与实现》范文

《基于51单片机的温度控制系统设计与实现》篇一一、引言在现代工业控制领域,温度控制系统的设计与实现至关重要。

为了满足不同场景下对温度精确控制的需求,本文提出了一种基于51单片机的温度控制系统设计与实现方案。

该系统通过51单片机作为核心控制器,结合温度传感器与执行机构,实现了对环境温度的实时监测与精确控制。

二、系统设计1. 硬件设计本系统以51单片机为核心控制器,其具备成本低、开发简单、性能稳定等优点。

硬件部分主要包括51单片机、温度传感器、执行机构(如加热器、制冷器等)、电源模块等。

其中,温度传感器负责实时监测环境温度,将温度信号转换为电信号;执行机构根据控制器的指令进行工作,以实现对环境温度的调节;电源模块为整个系统提供稳定的供电。

2. 软件设计软件部分主要包括单片机程序与上位机监控软件。

单片机程序负责实时采集温度传感器的数据,根据设定的温度阈值,输出控制信号给执行机构,以实现对环境温度的精确控制。

上位机监控软件则负责与单片机进行通信,实时显示环境温度及控制状态,方便用户进行监控与操作。

三、系统实现1. 硬件连接将温度传感器、执行机构等硬件设备与51单片机进行连接。

具体连接方式根据硬件设备的接口类型而定,一般采用串口、并口或GPIO口进行连接。

连接完成后,需进行硬件设备的调试与测试,确保各部分正常工作。

2. 软件编程编写51单片机的程序,实现温度的实时采集、数据处理、控制输出等功能。

程序采用C语言编写,易于阅读与维护。

同时,需编写上位机监控软件,实现与单片机的通信、数据展示、控制指令发送等功能。

3. 系统调试在完成硬件连接与软件编程后,需对整个系统进行调试。

首先,对单片机程序进行调试,确保其能够正确采集温度数据、输出控制信号。

其次,对上位机监控软件进行调试,确保其能够与单片机正常通信、实时显示环境温度及控制状态。

最后,对整个系统进行联调,测试其在实际应用中的性能表现。

四、实验结果与分析通过实验测试,本系统能够实现对环境温度的实时监测与精确控制。

基于单片机的恒温箱课程设计(参考模板)

基于单片机的恒温箱课程设计(参考模板)

成都理工大学工程技术学院《恒温箱控制系统》课程设计报告系别:自动化工程系专业:自动化姓名:杜亮学号: 2011203072022014年6月16日摘要温度的测量与控制在工业、农业、国防等行业有着广泛的应用。

随着微电子技术的发展,各种高性能的半导体集成温度传感器,在温度测控领域得到了极为广泛的应用。

恒温箱的智能控制系统是用半导体温度传感器做测温器,用单片机控制温度平衡,最终达到恒温的目的。

本文对系统所能实现的功能做了简单介绍,并简单介绍了系统使用的51单片机的性能和发展情况;同时对DS18B20做了介绍。

本文重点介绍了系统硬件的分析与设计,对硬件各部分的电路一一进行了介绍。

绘制了电路原理图,并进行了电路的焊接,完成了系统的硬件调试。

根据硬件的设计和系统所要实现的功能,本设计对软件也进行了设计,并经过反复的模拟运行、调试,完成了系统的软件设计,最后形成了一套完整的智能温度控制系统。

关键词:温度平衡 DS18B20 51单片机目录摘要 ............................................................................................................................................. - 1 - 目录 ............................................................................................................................................. - 2 -前言 ............................................................................................................................................. - 3 -1 系统设计分析.......................................................................................................................... - 4 -1.1 设计题目要求............................................................................................................... - 4 -1.2 设计方案选择............................................................................................................... - 4 -2 硬件电路设计.......................................................................................................................... - 5 -2.1 硬件电路设计............................................................................................................... - 5 -2.1.1 传感器................................................................................................................ - 5 -2.1.2 温度传感器DS18B20 ....................................................................................... - 6 -2.1.3 LED数码管显示电路........................................................................................ - 6 -2.2 硬件总电路图............................................................................................................... - 7 -3 程序设计.................................................................................................................................. - 7 -3.1 程序设计介绍............................................................................................................... - 7 -3.2 程序编写....................................................................................................................... - 7 -4 总结 ....................................................................................................................................... - 14 -前言近年来为了保证产品的质量,各个行业行为规范就越来越高,众多机械类、医药类、化工类、建筑类等工业和企业都离不开恒温箱的使用;为了确保恒温箱许多主要技术的指标可以达到国家技术所要求的规定,必须对其进行检测,保证产品的质量[1]。

单片机_温度控制_课设报告

单片机_温度控制_课设报告

单片机温度控制系统摘要:该实验设计基于飞思卡尔MC9S12DG128开发板平台,根据实验任务要求,完成了水温自动控制系统的设计,该系统的温度给定值可由人工通过键盘进行设定,测量温度经过A/D转换由数码管显示,通过PID控制算法对温度进行调节,使温度输出值在给定值上下波动,控制该系统的静态误差为1℃,用LED灯模拟加热强度,并用串口将输出的水温随时间的变化数值发到PC机上。

关键字:飞思卡尔单片机水温控制MC9S12DG1281、设计题目与设计任务σ≤;3.温度误要求:1温度连续可调范围是30-150摄氏度;2 超调量20%<±;4尝试使用能预估大滞后的方法,如史密斯预估,或大林算法;也可差0.5用PID及改进算法。

内容:1.根据题目的技术要求,画出系统组成的原理框图;2. 给出系统硬件电路图;3.确定温度控制方案;4. 给出控制方法及控制程序;5.整理设计数据资料,课程设计总结,撰写设计计算说明书。

2、前言:随着电子技术和计算机的迅速发展,计算机测量控制技术拥有操作简单、控制灵活、使用便捷以及性价比较高的优点,从而得到了广泛的应用。

单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可以实现对数字信息的处理和控制,因此,单片机广泛应用于现代工业控制中。

利用单片机对温度测量控制会大大提高系统的可靠性和准确性。

该设计实验是在实验室完成,实验任务是设计制作一个水温自动控制系统,控制对象为1L净水,容器为搪瓷器皿。

水温由人工通过4*4的键盘设定,并能在环境温度改变时实现对水温的自动控制,采用PWM技术控制电阻丝的加热,加热强度由8个LED小灯模拟,以保持设定的温度基本不变,测量温度经过A/D 转换在4位数码管上显示(保留一位小数),并将温度每秒钟向计算机发送一次。

一、系统设计的功能该系统的闭环控制系统框图如图1.1所示。

图1.1 水温控制系统结构框图单片机对温度的测量控制是基于传感器、A/D转换器以及扩展接口和执行机构来进行的。

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

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

智能仪器仪表综合实训题目基于单片机的温度控制系统设计学院专业电子信息工程班级 (仪器仪表) 学生姓名学号指导教师完成时间:目录一、系统设计---------------------------------------------------------第 1 页(一)系统总体设计方案----------------------------------------------第1 页(二)温度信号采集电路选择和数据处理--------------------------------第3 页(三)软件设计------------------------------------------------------第3 页二、单元电路设计-----------------------------------------------------第 5 页(一)温度信号采集电路----------------------------------------------第5 页(二)步进电机电路------------------------------------------------- 第5 页(三)液晶显示模块---------------------------------------------------------- 第6 页(四)晶振复位电路--------------------------------------------------第7 页三、总结体会--------------------------------------------------------------------------------------第7 页四、参考文献-------------------------------------------第8 页附录:程序清单------------------------------------------第8 页一、系统设计(一) 系统总体设计方案设计框图如下所示:图1 系统总体设计框图总电路图如下:图2 系统总电路图简单功能说明:一个显示实时温度的小系统,可以自行设定高温报警和低温报警值,实现温度控制电机带动外围器件功能。

单片机恒温箱温度控制系统的结构设计.docx

单片机恒温箱温度控制系统的结构设计.docx

单片机恒温箱温度控制系统的结构设计一、本课程设计系统概述1、系统原理选用 AT89C2051单片机为中央处理器,通过温度传感器 DS18B20对恒温箱进行温度采集,将采集到的信号传送给单片机,在由单片机对数据进行处理控制显示器,并比较采集温度与设定温度是否一致,然后驱动恒温箱的加热或制冷。

2、系统总结构图总体设计应该是全面考虑系统的总体目标,进行硬件初步选型,然后确定一个系统的草案,同时考虑软硬件实现的可行性。

总体方案经过反复推敲,确定了以美国 Atmel 公司推出的 51 系列单片机为温度智能控制系统的核心,并选择低功耗和低成本的存储器、数码显示器等元件,总体方案如下图:恒输入部温度传感器温箱AT89C显示部2051驱动控制加热上位 PC制冷图 1 系统总体框图二、硬件各单元设计1、单片机最小系统电路单片机选用 Atmel 公司的单片机芯片AT89C2051, 完全可以满足本系统中要求的采集、控制和数据处理的需要。

单片机的选择在整个系统设计中至关重要,该单片机与 MCS-51系列单片机高度兼容、低功耗、可以在接近零频率下工作等诸多优点,而广泛应用于各类计算机系统、工业控制、消费类产品中。

AT89C2051是 AT89系列单片机中的一种精简产品。

它是将 AT89C51的 P0 口、P2 口、EA/Vpp、ALE/PROG、PSEN口线省去后,形成的一种仅20 引脚的单片机,相当于早期Intel8031 的最小应用系统。

这对于一些不太复杂的控制场合,仅有一片 AT89C2051就足够了,是真正意义上的“单片机”。

AT89C2051为很多规模不太大的嵌入式控制系统提供了一种极佳的选择方案,使传统的51 系列单片机的体积、功耗大、可选模式少等诸多弱点不复存在。

该型号单片机包括:(1)一个 8 位的微处理器 (CPU)。

(2)片有 2K 字节的程序存储器 (ROM)和 128/256 字节 RAM。

(3) 15 条可编程双向 I/O 口线。

《单片机实习报告温控系统

学院单片机课程设计报告书题目:温度控制系统设计院系名称:学院学生姓名:)专业名称:自动化班级:自动时间:2011年6月7日至6月17 日温度控制系统设计一、设计目的在现代化的工业生产中电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。

温度作为一个基本物理量,它是一个与人们的生活环境、生产活动密切相关的重要物理量。

在现代化的工业生产过程中温度作为一种常用的主要被控参数,在很多生产过程中我们需要对温度参数进行检测。

例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测。

采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。

因此单片机对温度的控制问题是一个工业生产中经常会遇到的问题。

本次设计我们采用MCS-52系列单片机与各种外围电路构成单片机温度自动检测和控制系统,通过检测和控制一个温箱模型,实现对温度的实时检测和控制。

通过本次设计掌握对温度检测控制系统的硬件设计方法和软件编写方法。

熟悉了Protues软件和Kiel软件的使用方法。

通过课题的研究进一步巩固所学的知识,同时学习课程以外的相关知识,培养综合应用知识的能力。

锻炼动手能力与实际工作能力,将所学的理论与实践结合起来。

二、设计要求本温度控制系统是一个闭环反馈控制系统,它用温箱中的温度传感器将检测到的温度信号经放大,A/D转换后送入单片机中进行数据处理并显示当前温度值,用当前温度值与设定温度值进行比较。

根据比较的结果得到控制信号用以控制控制箱中继电器的通断,实现对温箱中加热器的控制。

通过这种控制方式实现对保温箱的温度控制。

本课题设计的要求主要包括硬件设计和软件设计两部分。

系统功能由硬件和软件两大部分协调完成,硬件部分主要完成主机电路、数据采集电路、控制执行等电路的设计。

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

基于单片机的恒温箱温度控制系统的设计课程设计题目:单片机恒温箱温度控制系统的设计本课程设计要求:本温度控制系统为以单片机为核心,实现了对温度实时监测和控制,实现了控制的智能化。

设计恒温箱温度控制系统,配有温度传感器,采用DS18B20数字温度传感器,无需数模拟∕数字转换,可直接与单片机进行数字传输,采用了PID控制技术,能够使温度保持在要求的一个恒定范围内,配有键盘,用于输入设定温度;配有数码管LED用来显示温度。

技术参数和设计任务:1、利用单片机AT89C2051实现对温度的控制,实现保持恒温箱在最高温度为110℃。

2、可预置恒温箱温度,烘干过程恒温控制,温度控制误差小于±2℃。

3、预置时显示设定温度,恒温时显示实时温度,采用PID控制算法显示精确到0.1℃。

4、温度超出预置温度±5℃时发出声音报警。

5、对升、降温过程没有线性要求。

6、温度检测部分采用DS18B20数字温度传感器,无需数模拟∕数字转换,可直接与单片机进行数字传输7、人机对话部分由键盘、显示和报警三部分组成,实现对温度的显示、报警。

一、本课程设计系统概述1、系统原理选用AT89C2051单片机为中央处理器,经过温度传感器DS18B20对恒温箱进行温度采集,将采集到的信号传送给单片机,在由单片机对数据进行处理控制显示器,并比较采集温度与设定温度是否一致,然后驱动恒温箱的加热或制冷。

2、系统总结构图总体设计应该是全面考虑系统的总体目标,进行硬件初步选型,然后确定一个系统的草案,同时考虑软硬件实现的可行性。

总体方案经过重复推敲,确定了以美国Atmel公司推出的51系列单片机为温度智能控制系统的核心,并选择低功耗和低成本的存储器、数码显示器等元件,总体方案如下图:图1系统总体框图二、硬件各单元设计1、单片机最小系统电路单片机选用Atmel公司的单片机芯片AT89C2051 ,完全能够满足本系统中要求的采集、控制和数据处理的需要。

基于单片机的恒温箱控制系统设计

基于单片机的恒温箱控制系统设计恒温箱是一种用于保持物品恒定温度的设备,广泛应用于实验室、医院、工厂等场所。

为了更好地控制恒温箱的温度,我们可以设计一种基于单片机的恒温箱控制系统。

首先,我们需要选择适合的单片机。

常用的单片机有51系列、AVR 系列、STM32系列等。

在选择单片机时,需要考虑其性能、功耗、价格等因素。

在本设计中,我们选择STM32系列的单片机,因为它具有较高的性能和较低的功耗,同时价格也比较合理。

接下来,我们需要设计恒温箱的硬件电路。

恒温箱的硬件电路主要包括温度传感器、加热器、风扇等。

温度传感器可以选择DS18B20等数字温度传感器,它具有高精度、数字输出等优点。

加热器可以选择PTC加热器或电热丝等,它们可以根据需要进行控制。

风扇可以用于调节恒温箱内部的空气流动,以达到更好的温度均匀性。

然后,我们需要编写单片机的程序。

程序的主要功能是读取温度传感器的数据,根据设定的温度范围控制加热器和风扇的工作。

程序可以采用C语言编写,使用Keil或IAR等集成开发环境进行开发。

在编写程序时,需要注意程序的稳定性和可靠性,避免出现死循环、死机等问题。

最后,我们需要进行系统测试和调试。

测试时可以使用温度计等工具对恒温箱的温度进行实时监测,以验证系统的稳定性和准确性。

调试时需要根据测试结果对程序进行优化和调整,以达到更好的控制效果。

综上所述,基于单片机的恒温箱控制系统设计需要选择适合的单片机、设计恒温箱的硬件电路、编写单片机的程序以及进行系统测试和调试。

这种控制系统可以实现对恒温箱温度的精确控制,提高恒温箱的使用效率和稳定性。

单片机课程设计报告基于单片机的温控系统

单片机课程设计报告基于单片机的温控系统职业学院机械与电子工程学院基于单片机温控系统课程设计报告班级电信班学生姓名学号指导教师时间2021目录摘要I1系统方案设计及组成I2系统设计12.1温度传感器的工作原理与单片机的连接12.2DS1302原理及管脚22.3单片机与报警电路32.4显示电路32.41基本操作时序43系统软件设计4摘要本课题主要介绍基于xxxx单片机和xxxx数字温度传感器的温度测量系统。

该系统利用xxxx单片机分别采集各个温度点的温度,实现温度显示、报警等功能以及用DS1302时钟芯片在液晶显示当前时间日期。

直观,实用。

它以xxxx单片机为主控制芯片,采用数字温度传感器xxxx实现温度的检测,测量精度可以达到0.5℃。

该系统采用了1602显示模块,形象直观的显示测出的温度值。

基于xxxx 单片机的单总线温度测控系统具有硬件组成简单、读数方便、精度高、测温范围广等特点,在实际工程中得到广泛应用。

关键词:温度传感器;单片机;温度控制;DS1302;LCD1系统方案设计及组成该方案使用了xxxx单片机作为控制核心,以智能温度传感器xxxx为温度测量元件,对各点温度进行检测,设置温度上下限,超过其温度值就报警。

以及用DS1302时钟芯片在液晶显示当前时间日期。

显示电路采用1602液晶模块显示,使用三极管,电阻和蜂鸣器组成的报警电路,按钮处理模块等。

具有温度控制,实时时钟,报警等功能。

89C52CPU控制模块按键处理模块温度采集模块报警电路LCD显示模块DS1302时钟采集模块图2-1温度控制系统方案框2系统设计2.1温度传感器的工作原理与单片机的连接温度传感器的单总线(1-Wire)与单片机的P2.7连接,P2.7是单片机的高位地址线。

P2端口是一个带内部上拉电阻的8位双向I/O,其输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对该端口写“1”,可通过内部上拉电阻将其端口拉至高电平,此时可作为输入口使用,这是因为内部存在上拉电阻,某一引脚被外部信号拉低时会输出一个电流。

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

2011年电气工程及其自动化专业《计算机原理及应用》课程设计任务书班级:学号:姓名:题目3 简易温度控制系统设计并制作一个简易的单片机温度自动控制系统(见图一)。

控制对象为自定。

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

(3)显示加热器工作时间。

(4)显示加热器的工作状态:加热、恒温保持。

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

(6)当温度越过上限时(自己设定),声光报警(二)扩充功能:(1)控制温度可以在一定范围内设定,并能实现自动调整,以保持设定的温度基本保持不变(测量温度时只要求在现场任意设置一个检测点)。

(2)显示调节时间和超调量目录摘要 (1)第一章硬件设计 (2)1.1控制电路和显示电路方案与选择 (2)1.2测温电路方案选择 (2)1.3调温电路方案选择 (3)1.4硬件电路设计 (3)1.4.1 温控系统硬件接线原理图 (3)1.4.2 单片机设计 (3)1.4.3 温度传感电路设计 (4)1.4.4 温控电路的设计 (5)第二章软件设计 (6)2. 1 主程序设计 (6)2.2 DS18B20初始化程序设计 (7)2.3 DS18B20读写子程序设计 (7)2.3.1 DS18B20写入子程序框图 (8)2.3.2 DS18B20读取子程序框图 (9)2.4 键盘扫描子程序设计 (10)2.5 温度调节子程序设计 (11)第三章实物调试 (13)第四章功能总结 (16)附录 (20)附件一:电路原理图 (20)附件二:程序 (21)摘要本系统采用MCS-52单片机为核心,结合综合实训板与温控接口板,设计了一个简易数字温控系统,具有对环境温度进行实时测量及显示、可自动调整温度范围、温度在超限的情况下进行调整并报警、显示调节时间、温度差值等功能,其功能完善,目的是保证环境保持在限定的温度中。

温控系统用六位LED数码管显示测量的实时温度,可以设定最高限报警温度值和最低报警温度值。

温度测量采用最新的单线数字温度传感器DS18B20,降温控制系统采用低压电风扇,升温控制系统采用40W的交流灯泡,温控系统的温度显示和温度的设定直接采用综合实训板上的显示和键盘。

该系统体积小、重量轻、价格低、可靠性高、耗电少和灵活性强。

第一章硬件设计经过对题目进行深入的分析和思考,我将整个系统分为以下几部分:测温电路、控制电路、显示电路和调温电路。

1.1控制电路和显示电路方案与选择控制电路可以用硬件的方式实现,也可以用软件的方式实现,具体方案有三:方案一可以用运放等模拟电路搭接一个控制器,用模拟方式实现PID控制,对纯粹的水温控制这是足够的。

但是附加的显示,温度的设定等功能,还要附加许多电路,稍显麻烦。

同样也可以用逻辑电路实现,但总体的电路设计和制作繁琐。

方案二可以使用FPGA实现控制功能,使用FPGA时,电路设计比较简单,通过相应的编程设计,可以很容易实现控制、显示、键盘等功能。

是一种可选的方案。

但与单片机相比较,价格较高,显得大材小用。

方案三可以使用单片机作为核心,同时温控系统的温度显示和温度的设定直接采用综合实训板上的显示和键盘。

当环境温度低于设定的最低温度值时,也采用综合实训板上蜂鸣器进行报警。

电路设计和制作比较简单,因此我选择该种方案。

1. 2测温电路方案选择方案一可以使用热敏电阻作为测温元件,热敏电阻精度高,需要配合电桥电路,电路设计比较麻烦。

方案二可以使用热点偶作为测温元件,热电偶在工业上应用比较广泛,测温精度比较高,性能可靠,并有专用的热电偶测温电路。

方案三采用最新的单线数字温度传感器DS18B20作为测温元件,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线。

总线本身也可以向所挂接的DS18B20供电,而无需额外电源。

因而,使用DS18B20可使系统结构更趋简单,可靠性更高。

同时其价格适中,使用比较简单,因此我选择该种方案。

1. 3调温电路方案选择根据题目,可以使用220V、40W的灯泡加热,当温度过高时,一般只能关闭灯泡,让其自动冷却。

但为了达到更好的控制效果,降温控制系统可以采用低压直流电风扇。

当温度高于设定最高限温度时,启动风扇降温,当温度降到指定最高限温度以下后,风扇自动停止运转。

加热电源选用220V交流电,制冷电源为5V直流电。

方案一采用电力电子技术的PWM技术,控制其功率实现较好的精度,但电路设计比较麻烦,制作难度比较大。

方案二可以使用固体继电器控制加热制冷器工作。

固态继电器使用比较简单,而且没有触电,可以频繁工作。

是一个比较好的方案。

1.4 硬件电路设计1.4.1 温控系统硬件接线原理图见附录。

1.4.2 单片机设计对于单片机接口的使用:(1) 电源及时钟引脚Vcc:电源接入引脚;GND:接地引脚;XTAL1:晶体振荡器接入的一个引脚(采用外部振荡器时,此引脚接地);XTAL2:晶体振荡器接入的另一个引脚(采用外部振荡器时,此引脚作为外部振荡信号的输入端)。

(2) 控制线引脚RST:复位信号输入引脚。

(3) 并行I/O口引脚P0.0~P0.7:作为数码管的输出;P1.0~P1.2:用来作为数码管的片选和蜂鸣器与LED灯的选择;P1.3:DS18B20的单线接口端;P2.1~P2.3与P2.5~P2.7:构成一个3*3的键盘;P3.6:控制灯泡的启动与关断;P3.7:控制风扇的启动与关断。

1.4.3 温度传感电路设计DS18B20的性能特点:◆采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位);◆测温范围为-55℃-+125℃,测量分辨率为0.0625℃;◆内含64位经过激光修正的只读存储器ROM;◆适配各种单片机或系统机;◆用户可分别设定各路温度的上、下限;◆内含寄生电源。

DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。

DS18B20的管脚排列如图2所示。

P1.0图 2 DS18B20管脚图在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。

无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻.我们采用的是第一种连接方法,如图3.3所示:把DS18B20的数据线与单片机的P1.0管脚连接,再加上上拉电阻。

DS18B20有六条控制命令,如下表所示:表1 DS18B20控制命令1.4.4 温控电路的设计单片机的P3.6、P3.7分别与SN74LS245N的9引脚和7引脚连接来控制灯泡与风扇的开断。

当实际温度高于温度上限时,置P3.7口为低电平,风扇启动,同时利用蜂鸣器和LED灯进行声光报警;当实际温度低于温度下限时,置P3.6口为低电平,灯泡启动,同时点亮LED灯表明加热器正在加热。

第二章软件设计2. 1 主程序设计2.2 DS18B20初始化程序设计2.3 DS18B20读写子程序设计DS18B20读写子程序WRITE_1820、READ_1820、READ_1820完成对18B20的读写功能,其中,READ_1820从DS18B20中读出一个字节的数据,READ_18200从DS18B20中读出两个字节的温度数据。

2.3.1 DS18B20写入子程序框图2.3.2 DS18B20读取子程序框图2.4 键盘扫描子程序设计2.5 温度调节子程序设计我选择了P3.6 作为灯泡启动关闭的控制引脚, P3.7 作为风扇启动关闭的控制引脚。

注:由于每次采集温度值时,DS18B20会先给温度赋初值85,这样在判断实际温度是否小于温度上限时,会受到干扰,因此判断之前我先命令:如果实际温度大于80就跳出温度调节程序。

第三章实物调试1、电源开启后,DS18B20测得温度为23℃,在10~90范围之内,温度上下限初值设为35℃和15℃,控制电路不工作。

2、按下键1,温度上限加1;按下键4,温度上限减1。

3、按下键2,温度下限加1;按下键5,温度下限减1。

4、按下键3,显示实际温度与温度上限差值;按下键6,显示实际温度与温度下限差值。

5、按下键7,显示调温时间。

此时加热降温均为启动,时间为0。

5、DS18B20测得温度为22℃,大于温度上限,风扇工作且声光报警。

5、DS18B20测得温度为24℃,小于温度下限,灯泡工作且指示灯亮。

5、DS18B20测得温度为27℃,已经加热了25s。

第四章功能总结这次课程设计是对过去所学的知识的一次回顾与巩固,也是一次特别的实践能力。

通过该次课程设计,提高了创新能力,扩展了我的想像。

在制作课程设计的这几天当中,我首次体会到了生活的艰辛,也培养了吃苦耐劳的精神,在课程设计当中,我恼过,也烦过,也怨过,但是最终等到我发泄完后,冷静的想想,如果我现在连这一关都过不了,那么我如何的走上社会,如何的面对社会中各种各样的更加复杂更加繁琐的事情,我必须做好,不仅仅只是为了得到好的分数,也是为了我今后踏入社会打下基础。

看到自己完成的课程设计时,我知道还有一些不足,很多地方需要更进一步的改进,但是我仍然很高兴,因为我尽心尽力的将它全部都完成了,我尽到自己最大的努力。

我觉得该次系统设计如果能够再增加一些另外的功能会使该系统变得更加的优秀,如设定一个确定的温度值作为标准,而不是光设定温度范围等。

以下是我制作的简易温度控制系统可实现的功能:1、实时显示实际温度和设定温度,最小区分度为1℃。

2、温度上下限可实现任意调整,调节范围为0℃~90℃。

3、当温度高于温度上限时,自动启动风扇降温,同时声光报警。

温度降到温度上限以下后,风扇自动关闭。

4、当温度低于温度下限时,自动启动灯泡加热,同时亮灯表示加热器正在加热。

温度降到温度上限以下后,风扇自动关闭。

5、能够显示温度调节时间。

6、能够显示实际温度与温度上限和温度下限的差值。

键值功能说明:数码管显示说明:电源开启后,显示如下:按下键1,温度上限加一,显示如下: 按下键4,温度上限减一,显示如下:按下键2,温度下限加一,显示如下:按下键5,温度下限减一,显示如下:按下键3,显示实际温度与温度上限的差值,如下:按下键6,显示实际温度与温度下限的差值,如下:按下键7,显示调温的时间,如下:附录附件一:电路原理图附件二:程序FLAG1 BIT F0 ;DS18B20存在标志位DQ BIT P1.3TEMPER_L EQU 29HTEMPER_H EQU 28HTCNT EQU 45HSEC EQU 46HMIN EQU 49H;***********汇编程序起始********************ORG 0000HAJMP MAINORG 0000BHLJMP INT_T0ORG 0030H;**************主程序开始************MAIN: MOV 20H,#35MOV 41H,#15LCALL INIT_18B20MAIN1: LCALL WENDULCALL SCAN_KEYB ;扫描键盘并实现键值功能LCALL ADJUSTLJMP MAIN1WENDU: LCALL RE_CONFIGLCALL GET_TEMPERLCALL CHANGE ;将18B20读的16位温度转换8位数据LCALL DISPLAY0 ;调用数码管显示子程序RET;**********DS18B20复位程序*****************INIT_18B20: SETB DQNOPNOPCLR DQNOPNOPMOV R0,#0FBHTSR1: DJNZ R0,TSR1 ;延时SETB DQMOV R0,#25HTSR2: JNB DQ ,TSR3DJNZ R0,TSR2TSR3: SETB FLAG1 ;置标志位,表明DS18B20存在AJMP TSR5TSR4: CLR FLAG1LJMP TSR7TSR5: MOV R0,#06BHTSR6: DJNZ R0,TSR6TSR7:SETB DQ ;表明不存在RET;********************设定DS18B20暂存器设定值************** RE_CONFIG: JB FLAG1,RE_CONFIG1RETRE_CONFIG1: MOV A,#0CCH ;放跳过ROM命令LCALL WRITE_18B20MOV A,#4EHLCALL WRITE_18B20 ;写暂存器命令MOV A,#00H ;报警上限中写入00HLCALL WRITE_18B20MOV A,#00H ;报警下限中写入00HLCALL WRITE_18B20MOV A,#1FH ;选择九位温度分辨率LCALL WRITE_18B20RET;*****************读转换后的温度值****************GET_TEMPER: SETB DQLCALL INIT_18B20JB FLAG1,TSS2RET ;若不存在则返回TSS2: MOV A,#0CCH ;跳过ROMLCALL WRITE_18B20MOV A,#44H ;发出温度转换命令LCALL WRITE_18B20; LCALL DISPLAY;延时LCALL INIT_18B20MOV A,#0CCH ;跳过ROMLCALL WRITE_18B20MOV A,#0BEH ;发出读温度换命令LCALL WRITE_18B20LCALL READ2_18B20 ;读两个字节的温度RET;***************写ds18b20汇编程序************WRITE_18B20:MOV R2,#8CLR CWR1: CLR DQMOV R3,#6RRC AMOV DQ,CMOV R3,#23DJNZ R3,$SETB DQNOPDJNZ R2,WR1SETB DQRET;***********读18B20程序,读出两个字节的温度*********READ2_18B20:MOV R4,#2 ;低位存在29 H,高位存在28H MOV R1,#29HRE00: MOV R2,#8RE01: CLR CSETB CNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#7DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00RET;************读出的温度进行数据转换**************CHANGE: MOV A,29HMOV C,28H.0 ;将28H中的最低位移入CRRC AMOV C,28H.1RRC AMOV C,28H.2RRC AMOV C,28H.3RRC ARET;*******************键盘扫描并消抖*************** SCAN_KEYB:MOV P2,#0FHMOV A,P2ANL A,#0FHCJNE A,#0FH,NEXT1SJMP NEXT3NEXT1: ACALL DL20MSMOV A,#0EFHNEXT2: MOV R1,AMOV P2,AMOV A,P2ANL A,#0FHCJNE A,#0FH,KCODE;MOV A,R1SETB CRLC AJC NEXT2NEXT3: MOV R0,#00HRETKCODE: MOV R5,#0FBHNEXT4: RRC AINC R5JC NEXT4MOV A,R1SW AP ANEXT5: RRC AINC R5INC R5INC R5INC R5JC NEXT5NEXT6: MOV A,P2ANL A,#0FHCJNE A,#0FH,NEXT6MOV R0,#0FFHFOUND: MOV A,R5CJNE A,#0FH,GO1LJMP KEY_1 ;按下1键GO1: CJNE A,#0BH,GO2LJMP KEY_2 ;按下2键GO2: CJNE A,#0EH,GO3LJMP KEY_3 ;按下3键GO3: CJNE A,#0AH,GO4LJMP KEY_4 ;按下4键GO4: CJNE A,#0DH,GO5LJMP KEY_5 ;按下5键GO5: CJNE A,#09H,GO6LJMP KEY_6 ;按下6键GO6: CJNE A,#07H,GO7LJMP KEY_7 ;按下7键GO7: LJMP KEY_0KEY_1: INC 20HMOV A,20HCLR CSUBB A,#90JC DO1MOV 20H,#90DO1: LJMP DISPLAY0KEY_2: DEC 20HMOV A,20HCLR CSUBB A,41HJNC DO2MOV 20H,41HDO2: LJMP DISPLAY0KEY_3: INC 41HMOV A,41HCLR CSUBB A,20HJC DO3MOV 41H,20HDO3: LJMP DISPLAY0KEY_4: DEC 41HMOV A,41HCLR CSUBB A,#10JNC DO4MOV 41H,#10DO4: LJMP DISPLAY0KEY_5: MOV R2,#05MOV R3,#250DISP1: MOV A,29H ;显示超调量CLR CSUBB A,20HJC MINIDISP: MOV 37H,AMOV B,#10DIV ABMOV 39H,A ;设定温度的十位MOV 40H,B ;设定温度的个位mov dptr,#TAB ; 指定查表启始地址mov a,40H ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov P0,a ;送出个位的7段代码MOV P1,#05H;开个位显示NOPNOPLCALL DELAYNMSNOPNOPmov a,39H ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov P0,A;送出十位的7段代码MOV P1,#04H ;开十位显示NOPNOPLCALL DELAYNMSNOPNOPLCALL DISPLAYDJNZ R3,DISP1DJNZ R2,DISP1RET ;定时15s显示MINI: MOV A,#40H ;查"0"的7段代码mov P0,a ;送出代码MOV P1,#03H ;开显示NOPNOPLCALL DELAYNMSNOPNOPMOV A,20HCLR CSUBB A,29HLJMP DISPRETKEY_6: MOV R2,#05MOV R3,#250DISP3: MOV A,29H ;显示超调量CLR CSUBB A,41HJC MINI1DISP2: MOV 37H,AMOV B,#10DIV ABMOV 39H,A ;设定温度的十位MOV 40H,B ;设定温度的个位mov dptr,#TAB ; 指定查表启始地址mov a,40H ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov P0,a ;送出个位的7段代码MOV P1,#05H;开个位显示NOPNOPLCALL DELAYNMSNOPNOPmov a,39H ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov P0,A;送出十位的7段代码MOV P1,#04H ;开十位显示NOPNOPLCALL DELAYNMSNOPNOPLCALL DISPLAYDJNZ R3,DISP3DJNZ R2,DISP3RET ;定时15s显示MINI1: MOV A,#40H ;查"0"的7段代码mov P0,a ;送出代码MOV P1,#03H ;开显示NOPNOPLCALL DELAYNMSNOPNOPMOV A,20HCLR CSUBB A,29HLJMP DISP2RETKEY_7: MOV R2,#05MOV R3,#250DISP0: LCALL DISPLAY1 ;显示调节时间LCALL DISPLAYDJNZ R3,DISP0DJNZ R2,DISP0KEY_0: RET;******************温度调节程序********************** ADJUST: MOV C,P3.7JNC CLOSEDOWNMOV C,P3.6JNC CLOSEUPCOMPARE: MOV A,29HCLR CSUBB A,#46HJC COUN1RETCOUN1: CLR CMOV A,20HSUBB A,29HJC W ARNDOWNCLR CMOV A,41HSUBB A,29HJNC UPRETWARNDOWN: MOV P1,#07H ;亮灯NOPNOPLCALL DELAYNMSNOPNOPMOV P1,#06H ;报警NOPNOPLCALL DELAYNMSNOPNOPCLR P3.7LCALL STARTRETUP: MOV P1,#07H ;亮灯NOPNOPLCALL DELAYNMSNOPNOPCLR P3.6LCALL STARTRETCLOSEDOWN: CLR CMOV A,20HSUBB A,29HJNC CLS1MOV P1,#07H ;亮灯NOPNOPLCALL DELAYNMSNOPNOPMOV P1,#06H ;报警NOPNOPLCALL DELAYNMSNOPNOPRETCLS1: SETB P3.7CLR TR0RETCLOSEUP: MOV A,29HCLR CSUBB A,#46HJC COUN2RETCOUN2: CLR CMOV A,41HSUBB A,29HJC CLS2MOV P1,#07H ;亮灯NOPNOPLCALL DELAYNMSNOPNOPRETCLS2: SETB P3.6CLR TR0RET;*************************定时程序*************************START:MOV DPTR,#TABMOV MIN,#0 ;初始化MOV SEC,#0MOV TCNT,#0MOV TMOD,#01HMOV TH0,#3CH ;定时50毫秒MOV TL0,#0B0HSETB EASETB ET0SETB TR0RET;**************************************************定时器定时修改时间子程序INT_T0: PUSH ACCMOV TH0,#3CH ;定时器中断服务程序,对秒,分钟和小时的计数MOV TL0,#0B0HINC TCNTMOV A,TCNTCJNE A,#20,RETUNE ;计时1秒INC SECMOV TCNT,#00MOV A,SECCJNE A,#60,RETUNEINC MINMOV SEC,#0MOV A,MINCJNE A,#10,RETUNEMOV MIN,#0MOV SEC,#0MOV TCNT,#0RETUNE: POP ACCRETI;*************************************************数码管显示控制子程序DISPLAY1: MOV A,SEC ;显示秒MOV B,#10DIV ABMOV 47H,A ;设定温度的十位MOV 48H,B ;设定温度的个位mov dptr,#TAB ; 指定查表启始地址mov a,48H ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov P0,a ;送出个位的7段代码MOV P1,#05H;开个位显示NOPNOPLCALL DELAYNMSNOPNOPmov a,47H ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov P0,A;送出十位的7段代码MOV P1,#04H ;开十位显示NOPNOPLCALL DELAYNMSNOPNOPMOV P0,#40H ;显示分隔符MOV P1,#03NOPNOPLCALL DELAYNMSNOPNOPMOV A,MIN ;显示分钟MOVC A,@A+DPTRMOV P0,AMOV P1,#02NOPNOPLCALL DELAYNMSNOPNOPRET;*******************DISPLAY********************** DISPLAY0: MOV A,20HMOV B,#10DIV ABMOV 22H,A ;设定温度的十位MOV 23H,B ;设定温度的个位mov dptr,#TAB ; 指定查表启始地址mov a,23H ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov P0,a ;送出个位的7段代码MOV P1,#03H;开个位显示NOPNOPLCALL DELAYNMSNOPNOPmov a,22H ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov P0,A;送出十位的7段代码MOV P1,#02H ;开十位显示NOPNOPLCALL DELAYNMSNOPNOPMOV A,41HMOV B,#10DIV ABMOV 43H,A ;设定温度的十位MOV 44H,B ;设定温度的个位mov dptr,#TAB ; 指定查表启始地址mov a,44H ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov P0,a ;送出个位的7段代码MOV P1,#05H;开个位显示NOPNOPLCALL DELAYNMSNOPNOPmov a,43H ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov P0,A;送出十位的7段代码MOV P1,#04H ;开十位显示NOPNOPLCALL DELAYNMSNOPNOPDISPLAY: mov a,29H;将29H中的十六进制数转换成10进制mov b,#100div abmov 34H,AMOV A,BMOV B,#10DIV ABMOV 35H,AMOV 36H,Bmov DPTR,#TAB ;指定查表启始地址mov A,36H ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov P0,A ;送出个位的7段代码MOV P1,#01;开个位显示NOPNOPLCALL DELAYNMSNOPNOPmov A,35H ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov P0,A;送出十位的7段代码MOV P1,#00;开十位显示NOPNOPLCALL DELAYNMSNOPNOPRETDL20MS: MOV R6,#20DL1: MOV R7,#250DL2: NOPNOPDJNZ R7,DL2DJNZ R6,DL1RETDELAYNMS: MOV R6,#2D11: MOV R7,#200DJNZ R7,$DJNZ R6,D11RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END。

相关文档
最新文档