温度控制器的设计
小型温度控制器课程设计

小型温度控制器课程设计一、课程目标知识目标:1. 让学生掌握小型温度控制器的基本原理与结构组成,理解温度控制的基本概念。
2. 使学生了解温度传感器的工作原理,并能正确读取温度数据。
3. 帮助学生掌握温度控制算法,了解PID控制的基本原理。
技能目标:1. 培养学生运用所学知识设计简单温度控制系统的能力。
2. 提高学生动手实践能力,能够正确组装和调试小型温度控制器。
3. 培养学生分析问题、解决问题的能力,能够针对温度控制过程中出现的问题进行调整。
情感态度价值观目标:1. 培养学生对物理学科的兴趣,激发学生探索科学技术的热情。
2. 培养学生团队合作精神,提高沟通协调能力。
3. 增强学生的环保意识,认识到温度控制在节能减排中的重要作用。
分析课程性质、学生特点和教学要求:本课程为物理学科实践课程,结合学生所在年级的知识深度,以小型温度控制器为载体,将理论知识与实践操作相结合。
学生具备一定的物理基础和电子技术知识,对实践活动有较高的兴趣。
教学要求注重理论与实践相结合,强调学生的动手能力和创新意识的培养。
课程目标分解:1. 知识目标:通过讲解、演示和实验,使学生掌握小型温度控制器的基本原理、结构和温度控制算法。
2. 技能目标:通过分组实践,培养学生动手组装、调试和优化温度控制器的能力。
3. 情感态度价值观目标:通过课程学习,激发学生对物理学科的兴趣,培养团队合作精神,增强环保意识。
二、教学内容1. 温度控制器原理:介绍温度控制器的作用、分类和基本工作原理,结合课本相关章节,让学生理解温度控制系统的基本组成。
- 教材章节:第三章“温度控制系统”2. 温度传感器:讲解温度传感器的种类、特点和应用,重点介绍热电阻、热电偶传感器的工作原理和使用方法。
- 教材章节:第四章“温度传感器”3. PID控制算法:阐述PID控制原理,分析比例、积分、微分控制的作用,结合实例进行讲解。
- 教材章节:第五章“控制算法”4. 小型温度控制器设计:指导学生进行温度控制器的设计,包括硬件选型、电路连接和程序编写。
温度控制器的设计与技巧

放大 元件基极 电流 的很小变化就 能使集 电极 电流有很大 的变 控 硅 SCR的 控 制 极 与 阴 极 之 间 就 电 阻 较 大 ,有 一 定 的 控 制
化 ,在其集 电极 电阻上会产生较高 的电压变化 ,该 电压变化 电压 ,控 制 极 与 阳 极 之 间就 导通 ,负 载 RL中 就 有 电 流通 过 ,
原理 进行 必 要 的研 究。
下 降 到 规 定 值 时 , Rt的 电 阻 值 就 增 大 到 合 适 值 一_÷Rt上
1.恒温控制方案介绍
电 压 就 相 应 地 增 大 到 合 适 值 一-÷Vl基 极 电流 就 增 大 到 合 适 值 一_÷Vl的集 电极 电流就放大到合适值 一-÷R2上 电压就放
二 极 管 :D6、D3、D2、D1为 整 流 二 极 管, 如 1N4001~ 1N4005;DIO、 D9、 D8、D7也 是 整 流 二 极 管 ,由可控硅 SCR决定其工作 电流 :D5为 1.5V的红色发光
LED。
三极管 :V1为 9015型 ;V2和 V3为 9014型。 电阻:Rt= lkQ(负温度 系数),Rpl: lOkD微调 电阻,
WWW ele169 ̄om l 43
如图 l'恒温控制 电路系统 由温度 探头 ,温度探 头感 觉 大到合适 值 一_÷V2就变成饱和而 导通 一_÷V2的集 电极 电位
到的微小 信号作为放大 元件 的基极信 号;放大元件运用 的三 就下 降到饱和值 一_÷V3的集 电极 电位就升高到截止值 一_÷D4
极管 是 PNP型,开关元件运用 的三极管是 NPN型 ,于是 , 与 D5中无 电流就 不发光 ,光电耦合器 中的 V4不 导通,可
关键词 :传感元件;可控硅 ;恒温控 制;加热元件
基于单片机的pid温度控制系统设计

一、概述单片机PID温度控制系统是一种利用单片机对温度进行控制的智能系统。
在工业和日常生活中,温度控制是非常重要的,可以用来控制加热、冷却等过程。
PID控制器是一种利用比例、积分、微分三个调节参数来控制系统的控制器,它具有稳定性好、调节快等优点。
本文将介绍基于单片机的PID温度控制系统设计的相关原理、硬件设计、软件设计等内容。
二、基本原理1. PID控制器原理PID控制器是一种以比例、积分、微分三个控制参数为基础的控制系统。
比例项负责根据误差大小来控制输出;积分项用来修正系统长期稳态误差;微分项主要用来抑制系统的瞬时波动。
PID控制器将这三个项进行线性组合,通过调节比例、积分、微分这三个参数来实现对系统的控制。
2. 温度传感器原理温度传感器是将温度变化转化为电信号输出的器件。
常见的温度传感器有热电偶、热敏电阻、半导体温度传感器等。
在温度控制系统中,温度传感器负责将环境温度转化为电信号,以便控制系统进行监测和调节。
三、硬件设计1. 单片机选择单片机是整个温度控制系统的核心部件。
在设计单片机PID温度控制系统时,需要选择合适的单片机。
常见的单片机有STC89C52、AT89S52等,选型时需要考虑单片机的性能、价格、外设接口等因素。
2. 温度传感器接口设计温度传感器与单片机之间需要进行接口设计。
常见的温度传感器接口有模拟接口和数字接口两种。
模拟接口需要通过模数转换器将模拟信号转化为数字信号,而数字接口则可以直接将数字信号输入到单片机中。
3. 输出控制接口设计温度控制系统通常需要通过继电器、半导体元件等控制输出。
在硬件设计中,需要考虑输出接口的类型、电流、电压等参数,以及单片机与输出接口的连接方式。
四、软件设计1. PID算法实现在单片机中,需要通过程序实现PID控制算法。
常见的PID算法包括位置式PID和增量式PID。
在设计时需要考虑控制周期、控制精度等因素。
2. 温度采集和显示单片机需要通过程序对温度传感器进行数据采集,然后进行数据处理和显示。
温度控制器毕业论文

题目:温度控制器的设计机电工程学院李小草摘要本文设计了一个温度自动控制器。
本设计以单片机(8031)为控制核心,外加硬件电路,将温度显示和数字控制集和于一体,实现智能温度控制。
并采取软件程序实现升温的调节,能对加热炉的升温速度和保温时间严格控制。
单片机控制系统由微处理器和工业生产对象两大部分组成。
本文是通过热敏电阻和单片机等,来实现对工程上一些系统的温度进行范围控制的过程。
关键词:测温;PID算法;单片机;温度控制器目录摘要 (I)ABSTRACT (II)第1章前言 (1)1.1 概述 (2)1.2 课题分析 (2)1.3 设计思路 (2)第2章系统的基本组成及工作原理 (3)2.1 系统的基本组成 (3)2.2 系统的基本工作原理 (3)第3章测温电路的选择及设计 (5)3.1热电偶测温电路 (5)3.1.1 热电偶 (5)3.1.2 毫伏变送器 (6)3.2热敏电阻测温电路 (6)3.2.1 热敏电阻 (6)3.2.2 关于铂电阻的特性 (7)3.2.3 温度丈量电路 (7)第4章芯片组的电路设计 (8)4.1A D C0809与8031接口硬件电路设计 (8)4.28155与8031接口硬件电路设计 (9)4.2.1 8155芯片的结构 (9)4.2.28155与8031接口电路 (9)4.32732E P R O M的工作原理及硬件接口设计 (11)第5章掉电呵护功能电路 (14)第6章温度控制电路 (15)6.1温度控制电路 (15)6.2控制规律的选择 (16)第7章系统程序设计 (18)7.1系统控制主程序 (18)T中断服务程 7.20序 (20)7.3采样程序及其流程图 (24)7.4数字滤波子程序及其流程图 (25)总结 (27)致谢 (28)参考文献 (29)附录 (30)第1章前言现代信息技术的三大基础是信息收集控制(即温度控制器技术)、信息传输(通信技术)和信息处理(计算机技术)。
基于单片机的水温控制器设计

基于单片机的水温控制器设计引言水温控制在很多领域中都具有重要的应用价值,例如温室、鱼缸、热水器等。
基于单片机的水温控制器能够自动调控水温,提高水温的稳定性和准确性。
本文将介绍如何设计一个基于单片机的水温控制器,以实现对水温的精确控制。
一、硬件设计1.单片机选择选择一个合适的单片机对于设计一个稳定可靠的水温控制器至关重要。
常用的单片机有STC89C52、AT89C52等。
在选择时应考虑单片机的性能、功耗、接口等因素。
2.温度传感器温度传感器用于检测水温,常用的有NTC热敏电阻和DS18B20数字温度传感器。
NTC热敏电阻价格便宜,但精度较低,DS18B20精度高,但价格相对较贵。
3.加热装置加热装置用于根据温度控制器的输出信号进行加热或制冷。
可以选择加热丝、加热管或半导体制冷片等。
4.驱动电路驱动电路用于将单片机的输出信号转换为合适的电流或电压,驱动加热装置。
可以选择晶体管或继电器等。
5.显示模块可以选择液晶显示屏或LED数码管等显示水温的数值。
二、软件设计1.初始化设置首先,对单片机进行初始化设置,包括引脚配置、定时器设置等。
然后,设置温度传感器和加热装置的引脚。
最后,设置温度范围,以便根据实际需求进行调整。
2.温度检测使用温度传感器检测水温,并将读取到的温度值转换为数字形式,以便进行比较和控制。
可以使用ADC(模拟-数字转换)模块转换模拟信号为数字信号。
3.控制算法本设计中可以采用PID控制算法进行水温控制。
PID(Proportional-Integral-Derivative)控制算法根据设定值和反馈值之间的差异来计算控制信号。
可以根据需求进行参数调整,以获得更好的控制效果。
4.显示和报警使用显示模块显示当前水温的数值,并在温度超出设定值时触发报警功能。
报警可以采用声音、灯光等形式。
5.控制输出根据PID算法计算出的控制信号,控制驱动电路,驱动加热装置或制冷装置,以实现水温的调节。
总结基于单片机的水温控制器能够实现对水温的精确控制。
温度控制器的设计与制作

6.4实施—制作过程6.4.1硬件设计温度测量采用最新的单线数字温度传感器DS18B20,DS18B20是美国DALLAS 半导体公司最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在93.75ms 和750ms 内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而,使用DS18B20可使系统结构更趋简单,可靠性更高。
降温控制系统采用低压直流电风扇。
当温度高于设定最高限温度时,启动风扇降温,当温度降到指定最高限温度以下后,风扇自动停止运转。
温控系统的温度显示和温度的设定直接采用综合实训板上的显示和键盘。
当环境温度低于设定的最低限温度值时,也采用综合实训板上的蜂鸣器进行报警。
用0#、1#键作为温度最高限、最低限的设定功能键;2#、3#键作为温度值设定的增加和减小功能键。
0#键:作为最高限温度的设定功能键。
按一次进入最高限温度设定状态,选择最高限温度值后,再按一次确认设定完成。
1#键:作为最低限温度的设定功能键。
按一次进入最低限温度设定状态,选择最低限温度值后,再按一次确认设定完成。
2#键:+1功能键,每按一次将温度值加1,范围为1~99℃。
3#键:-1功能键,每按一次将温度值减1,范围为99~1℃。
6.4.2软件设计(1)温控系统采用模块化程序结构,可以分成以下程序模块:①系统初始化程序:首先完成变量的设定、中断入口的设定、堆栈、输入输出口及外部部件的初始化工作。
②主程序MAIN :完成键盘扫描、温度值采集及转换、温度值的显示。
当温度值高于设定最高限时,驱动风扇工作;当温度值低于设定最低限时,驱动蜂鸣器报警。
③键盘扫描程序KEYSCAN :完成键盘的扫描并根据确定的键值执行相应的功能,主要完成最高温度、最低温度的设定。
继电器温度控制器设计
摘要 (1)关键词 (1)引言 (1)1 课程设计主要设备和芯片 (1)2 总体设计及方案论证 (2)2.1总体设计框图 (2)2.2 方案论证 (2)2.2.1控制电路的方案选择 (2)2.2.2测温电路方案的选择 (3)2.2.3软件算法方案选择 (3)3硬件设计 (3)3.1 最小系统部分 (4)3.2温度采集电路 (4)3.3键盘、显示电路 (5)3.4 继电器执行控制电路 (6)3.5串口与PC机通信电路 (7)4软件设计与实现 (8)4.1软件流程图 (8)4.2控制算法PID (12)5 系统调试 (12)5.1最小系统部分调试 (12)5.2串口与上位机通信部分调试 (12)5.3继电器部分调试 (12)5.4测温部分调试 (13)6 PID参数整定 (13)7测试数据及结果分析 (14)结论 (16)致谢 (17)参考文献 (18)摘要在工农业生产和日常生活中,对温度的检测和控制有着非常重要的意义和实际应用。
而计算机控制系统的应用发展,使得科学研究、工农业生产、工艺时间的效率大大的提高本设计是一个基于AT89C52单片机的继电器自动水温控制系统,该系统具有实时显示、温度测量、温度设定功能并能根据设定值对环境温度进行调节实现控温的目的,控制算法基于数字PID算法。
温度测量范围从0〜+ 100 C,温度控制范围为20C ~90C, 测量的精度为1C,超调量小于5%,实验结果表明,本系统能较好地控制水温,满足我们的要求。
关键词:继电器;AT89C52 水温控制系统;PID引言随着人们生活水平的提高,对生活环境的要求也越来越高,家用电器越来越趋向于自动控制控制乃至于智能控制,针对目前家庭的实际需要,自动水温控制系统比较方便实用,本文就通过51系列单片机来实现一种自动控制水温控制系统的设计。
该系统能实时反映当前温度信息,通过液晶屏直观的显示给用户,用户可通过键盘自行设定温度, 系统通过PID调节能使温度保持在预设定值。
pid温度控制设计课程设计
pid温度控制设计课程设计一、课程目标知识目标:1. 学生能理解PID温度控制的基本原理,掌握其组成部分及功能。
2. 学生能掌握PID控制器参数的调整方法,并了解其对温度控制效果的影响。
3. 学生了解传感器在温度控制过程中的作用,能正确解读传感器数据。
技能目标:1. 学生能运用所学知识,设计简单的PID温度控制系统,并进行模拟实验。
2. 学生具备分析温度控制过程中出现的问题,并提出相应解决方案的能力。
3. 学生能熟练使用相关仪器设备,进行温度控制实验操作。
情感态度价值观目标:1. 学生培养对自动化技术的兴趣,激发创新意识,提高实践能力。
2. 学生在团队合作中,学会相互沟通、协作,培养团队精神。
3. 学生认识到温度控制在生产生活中的重要性,增强社会责任感。
课程性质:本课程为实践性较强的课程,结合理论知识和实际操作,培养学生的动手能力和问题解决能力。
学生特点:学生具备一定的物理知识和数学基础,对实际操作感兴趣,喜欢探索新知识。
教学要求:注重理论与实践相结合,强调学生的主体地位,鼓励学生积极参与实验,培养学生的创新思维和实际操作能力。
将课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 理论知识:- PID温度控制基本原理:比例(P)、积分(I)、微分(D)控制作用及组合控制策略。
- 温度传感器原理及种类:热电偶、热敏电阻等。
- 控制器参数调整方法:参数对温度控制性能的影响。
- 温度控制系统的数学模型及其建立方法。
2. 实践操作:- 设计并搭建简单的PID温度控制系统,进行模拟实验。
- 调试控制器参数,观察温度控制效果。
- 分析实验过程中出现的问题,并提出解决方案。
3. 教学大纲:- 第一阶段:PID温度控制基本原理学习,了解传感器原理及种类。
- 第二阶段:控制器参数调整方法学习,掌握温度控制系统的数学模型。
- 第三阶段:实践操作,设计并搭建PID温度控制系统,进行实验分析。
教学内容安排与进度:- 理论知识学习:共计4课时。
PID温度控制的PLC程序设计
PID温度控制的PLC程序设计PID(比例-积分-微分)温度控制是一种常用的控制方法,可以通过PLC(可编程逻辑控制器)实现。
本文将详细介绍PID温度控制的PLC程序设计过程。
1.确定控制系统需求:首先要确定所需的控制系统的基本要求,包括控制温度范围、精度要求、控制方式等。
2.确定传感器和执行机构:选择合适的温度传感器和执行机构,例如热电偶或热电阻作为温度传感器,控制阀门或加热器作为执行机构。
3.确定控制算法:PID控制算法是一种经典的温度控制方法,可在PLC中实现。
PID控制算法由比例、积分和微分三个参数组成,可以通过自整定或手动调整获得最佳参数值。
4.确定控制模式:根据实际需求,选择合适的控制模式,比如开环控制、闭环控制或自适应控制。
对于温度控制,一般采用闭环控制。
5. PLC软件设计:根据控制系统需求和算法确定的参数,设计PLC 软件。
PLC软件可以使用Ladder Diagram(梯形图)或Function Block Diagram(功能块图)等语言编程。
下面是一个基本的PID温度控制的PLC程序设计示例(以Ladder Diagram为例):```ladder====主程序====-,----[]----[]----[]----()PID----[]----]----[]----[]----,[]----温度输入设置温度温度差系数K----[+]=--------]--------]-----------温度设定温度差积分控制值----[/K]------]--------------------------[]----------------[+]=---------控制值累计量----[]----[]----[]----()KpKiKd```上述Ladder Diagram中,PID控制算法的三个参数Kp、Ki和Kd通过输入设置,通过调整这些参数可以改善控制系统的响应速度和稳定性。
PID温度控制器的设计
1
(1)在对温度控制发展现状、系统控制要求进行研究的基础上,选择了整个控制系统的控制方案;
(2)完成系统的硬件设计,包括采样电路、A/D转换电路、主控制电路、保护电路等等的设计;
(3)完成该系统的软件设计,包括主程序模块、控制运算模块、数据输入输出及处理模块等一些子功能模块的设计;
1.
采用PID控制原理研制成适合用于小功率器件的温度控制器,该控制器能达到很好的控制效果,若精心选择PID的各种参数,温度控制的精度可以达到0.05℃,完全可以保证器件的正常工作。在一定的控制系统中,首先将需要控制的被测参数(温度)由传感器转换成一定的信号后再与预先设定的值进行比较,把比较得到的差值信号经过一定规律的计算后得到相应的控制值,将控制量送给控制系统进行相应的控制,不停地进行上述工作,从而达到自动调节的目的。PID是目前广泛使用的控制方法,其控制规律的数学模型为:
实现PID控制原理的具体方法因系统的不同而不同。在我们的系统中,采用了增量式计算方法,而控制量的输出则采用了位置式的输出形式。在数值控制系统中,其控制规律的数学模型演化为:
其中:T为采集周期;ei、ei-1、ei-2为此时刻、前一时刻、再前一时刻的差值信号。这种方法的好处在于只需保持前三时刻的差值信号,同时输出控制量的初始设定值不必准确,就能较快地进入稳定控制过程。
PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比例法。利用该方法进行PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第一章课程设计要求及电路说明 (3)1.1课程设计要求与技术指标 (3)1.2课程设计电路说明 (4)第二章课程设计及结果分析 (6)2.1课程设计思想 (6)2.2课程设计问题及解决办法 (6)2.3调试结果分析 (7)第三章课程设计方案特点及体会 (8)3.1 课程设计方案特点 (8)3.2 课程设计心得体会 (9)参考文献 (9)附录 (9)第一章课程设计要求及电路说明1.1课程设计要求与技术指标温度控制器的设计设计要求与技术指标:1、设计要求(1)设计一个温度控制器电路;(2)根据性能指标,计算元件参数,选好元件,设计电路并画出电路图;(3)撰写设计报告。
2、技术指标温度测量范围0—99℃,精度误差为0.1℃;LED数码管直读显示;温度报警指示灯。
1.2课程设计电路说明1.2.1系统单元电路组成温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。
1.2.2设计电路说明主控制器:CPU是整个控制部分的核心,由STC89C52芯片连同附加电路构成的单片机最小系统作为数据处理及控制模块.显示电路:显示电路采用4个共阳LED数码管,用于显示温度计的数值。
报警电路:报警电路由蜂鸣器和三极管组成,当测量温度超过设计的温度时,该电路就会发出报警。
温度传感器:主要由DS18B20芯片组成,用于温度的采集。
时钟振荡:时钟振荡电路由晶振和电容组成,为STC89C52芯片提供稳定的时钟频率。
第二章课程设计及结果分析2.1课程设计2.1.1设计方案论证与比较显示电路方案方案一:采用数码管动态显示使用一个七段LED数码管,采用动态显示的方法来显示各项指标,此方法价格成本低,而且自己也比较熟悉,实验室也常备有此元件。
方案二:采用LCD液晶显示采用1602 LCD液晶显示,此方案显示内容相对丰富,且布线较为简单。
综合上述原因,采用方案一,使用数码管作为显示电路。
测温电路方案方案一:采用模拟温度传感器测温由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
方案二:采用数字温度传感器经过查询相关的资料,发现在单片机电路设计中,大多数都是使用传感器,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
综合考虑,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
2.1.2设计总体方案根据上述方案比较,结合题目要可以将系统分为主控模块,显示模块,温度采集模块和报警模块,其框图如下:2.1.3数字温度计的硬件电路设计控制电路CPU 是整个控制部分的核心。
在考虑经济性和满足需求的前提下,本系统选用宏晶公司生产的8位STC89C52单片机作为整个系统的控制中心。
STC89C52是宏晶公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes 的可系统编程的Flash 只读程序存储器,器件采用宏晶公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚,它集Flash 存储器既可在线编辑(ISP )也可用传统方法进行编辑及通用8位微处理器于单片芯片中,功能强大STC89C52单片机可为您提供许多高性价比的应用场合。
本次设计中,由STC89C52芯片连同附加电路构成的单片机最小系统作为数据处理及控制模块,其中,使用P0口作为数码管显示电路数据传输口,P2.4、P2.5、P2.6分别作为数码管的位选接口,P2.0作报警控制接口,P2.2作DS18B20的总线接口。
其电路连接图如下:温度传感器设计引脚功能说明:VDD :可选电源脚,电源电压范围3~5.5V。
当工作于寄生电源时,此引脚必须接地。
DQ :数据输入/输出脚。
漏极开路,常态下高电平。
GND :为电源地(1)存贮器DS18B20的存贮器由一个高速暂存(便笺式)RAM和一个非易失性、电可擦除EEPROM组成,后者存贮高温度和低温度触发器TH和TL。
暂存存贮器有助于在单线通信时确保数据的完整性。
数据首先写入暂存存贮器,在那里它可以被读回。
当数据被校验之后,复制暂存存贮器的命令把数据传送到非易失性EEPROM。
这一过程确保了更改存贮器时数据的完整性。
高速暂存RAM的结构为9字节的存储器,结构如3.6图所示。
前2字节包含测得的温度信息。
第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时刷新。
第5字节为配置寄存器,其内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。
其中,低5位一直为1;TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时,该位被设置为0,用户不要去改动;R1和R0决定温度转换的精度位数,即用来设置分辨率。
R1 R0 分辨率/位温度最大转换时间/ms0 0 9 93.750 1 10 187.51 0 11 3751 1 12 750DS18B20分辨率配置寄存器位定义高速暂存的第6、7、8字节保留未用,表现为全逻辑1。
第9字节是前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
高速暂存RAM结构图当DS18B20接受到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩张的二进制补码形式存储在暂存RAM的第1、2字节中。
单片机可以通过单线接口读出数据。
读数据是,低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
温度值格式如图所示:低字节高字节温度数据值格式图中,S表示符号位。
当S=0时,表示测得的温度值为正值,可以直接将二进制转换为十进制;当S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制值。
(2)DS18B20的测温原理如图3.8所示,图中低温度系数振荡器的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数振荡器随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
DS18B20测温原理图图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1和温度寄存器中,减法计数器和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数振荡器产生的脉冲信号进行减法计数,当减法计数器1的预置减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,并重新开始对低温度系数振荡器产生的脉冲信号进行计数。
如此循环,知道减法计数器2计数到0时,停止温度计数器值的累加,此时温度寄存器中的数值就是所测温度值。
图中的斜率累加器用于补偿和修正测温过程的非线形性,直到温度寄存器达到被测温度值。
2.1.4软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。
主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度,其程序流程见图所示。
读温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,Proteus 进行仿真程序编写完以后,我们先对其进行仿真,初步验证电路图和程序的可行性和正确性。
Protel99 SE软件Protel99 SE [5]共分5个模块,分别是原理图设计、PCB设计(包含信号完整性分析)、自动布线器、原理图混合信号仿真、PLD设计。
2.2 课程设计问题及解决方法2.3结果分析通过Proteus 进行仿真,电路能够符合实验设计的要求。
第三章课程设计方案特点及体会3.1课程设计方案特点3.2心得体会#include <reg51.h>#define uint unsigned int#define uchar unsigned char //宏定义sbit dula=P2^7;sbit p35=P2^4;sbit p36=P2^5;sbit dp=P0^7;sbit p37=P2^6;sbit DQ=P2^2; //定义DS18B20总线I/Osbit LING=P2^0; //定义响铃signed char m; //温度值全局变量signed char shangxian=99; //上限报警温度,默认值为99signed char xiaxian=0; //下限报警温度,默认值为0uchar code LEDData[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};/*****延时子程序*****/void Delay(uint i){while( i-- );}/*****初始化DS18B20*****/void Init_DS18B20(void){unsigned char x=0;DQ=1;// 给脉冲信号Delay(8); //稍做延时DQ=0; //单片机将DS18B20总线拉低Delay(80); //精确延时,大于480usDQ=1; //拉高总线Delay(14);x=DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay(20);}/*****读一个字节*****/unsigned char ReadOneChar(void){unsigned char i=0;unsigned char dat=0;for (i=8;i>0;i--){DQ=0; // 给脉冲信号dat>>=1;//右移1位并赋值DQ=1; // 给脉冲信号if(DQ)dat|=0x80;//与0x80位或运算Delay(4);}return(dat);}/*****写一个字节*****/void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ=0;DQ=dat&0x01;Delay(5);DQ=1;dat>>=1;}}void Tmpchange(void) //发送温度转换命令{Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0x44); //启动温度转换}/*****读取温度*****/unsigned int ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Tmpchange();Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器a=ReadOneChar(); //读低8位b=ReadOneChar(); //读高8位t=b;t<<=8;/左移8位并赋值t=t|a;tt=t*0.0625;t= tt*100+0.5; //放大10倍输出并四舍五入return(t);}/*****显示温度子程序*****/Disp_Temperature() //显示温度{uint a,b,c,e;e=ReadTemperature(); //获取温度值a=e/1000; //计算得到十位数字b=e/100-a*10; //计算得到个位数字c=(e%100)/10; //计算得到小数点后一位m=e/100;if(m>shangxian || m<xiaxian) LING=0; //温度不在范围内报警 else LING=1;p35=0;p36=0;p37=0;dula=1;P0 =LEDData[c]; //显示小数点后一位dula=0;P0=0xff;p35=1;p36=0;p37=0;Delay(300);p35=0;p36=0;p37=0;dula=1;P0 =LEDData[b]; //显示个位dp=0;dula=0;P0=0xff;p35=0;p36=1;p37=0;Delay(300);p35=0;p36=0;p37=0;dula=1;P0 =LEDData[a];dula=0; //显示十位P0=0xff;p35=0;p36=0;p37=1;Delay(300);p35=0;p36=0;p37=0; //关闭显示}/*****主函数*****/void main(void){ReadTemperature();LING=1;while(1){Disp_Temperature();}}。