控制系统综合课程设计基于51单片机的温度检测与控制系统姓名:学号: ____班级:_________指导老师: __时间: ___摘要温度是日常生活中无时不在的物理量,温度的控制在各个领域都有积极的意义。
很多行业中都有大量的用电加热设备,如用于热处理的加热炉,用于融化金属的坩锅电阻炉及各种不同用途的温度箱等,采用单片机对它们进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量。
因此,智能化温度控制技术正被广泛地采用。
本温度设计采用现在流行的AT89C51单片机,配以DS18B20数字温度传感器,该温度控制系统可手动设置温度上下限。
单片机将检测到的温度信号与输入的温度上、下限进行比较,由此作出判断是否开启报警装置并启动继电器以开启设备。
本设计还加入了常用的数码管显示,使得整个设计更加完整,更加灵活。
该设计已应用于花房,可对花房温度进行智能监控。
【关键词】AT89C51,单片机,控制,模拟目录摘要 (I)第一章前言1.1 温度控制系统设计发展历史及意义 (1)1.2温度控制系统的目的 (1)1.3温度控制系统完成的功能................................................错误!未定义书签。
第二章总体设计方案2.1功能简述................................................................错误!未定义书签。
2.2简述系统各模块.........................................................错误!未定义书签。
第三章温度传感器D318B203.1DS18B20简介 (4)3.1.1DS18B20封装与引脚 (4)3.1.2DS18B20的简单性能 (4)3.2DS18B20的工作原理 (5)3.3DS18B20的测温原理 (6)3.3.1测温原理 (6)3.3.2 DS18B20的温度采集过程 (8)第四章单片机接口设计4.1设计原则 (9)4.2单片机引脚连接 (9)4.2.1系统硬件图 (9)第五章硬件电路设计5.1主要硬件电路设计 (10)第六章软件系统设计6.1软件系统设计 (13)6.2程序流程图 (13)6.3系统C程序 (18)6.4运行结果 (35)附录 (3629)结束语 (3729)参考文献 (38)第一章前言1.1 温度控制系统设计发展历史及意义温度控制系统广泛应用于社会生活的各个领域 ,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 , 在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。
这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。
传统的继电器调温电路简单实用 ,但由于继电器动作频繁 ,可能会因触点不良而影响正常工作。
控制领域还大量采用传统的PID控制方式,但PID控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。
而采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。
数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。
由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。
更能串接多个数字温度传感器DS18B20进行范围的温度检测。
1.2 温度控制系统的目的温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。
而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。
针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度监测和控制系统,实现对温度的实时检测,具有提醒和控制的功能,本设计的内容是温度测试控制系统,控制对象是温度。
它的特点在于应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。
第二章总体设计方案2.1功能简述模拟“温度采集与控制装置”用于实现温度的实时监测与控制。
单片机采集DS18B20温度传感器的输出信号,并送到数码管进行显示;通过传感器得到的温度数据将与用户设定温度上限、下限值做比较,再由单片机启动控制或报警电路。
系统硬件部分主要由单片机最小系统、数码管显示、DS18B20温度传感器、矩阵键盘等模块组成。
系统组成框图下图所示:2.2各模块简述1. 温度检测温度检测采用DS18B20温度传感器,数据经过单片机处理后,与用户设定的温度数据经过单片机处理后,与用户设定的温度上限(TMAX )和温度下限(TMIN)比较,确定当前温度所处的区间,数码管温度显示格式如图2.1所示图2.1数码管温度显示格式关于温度区间的说明:温度区间0:当前温度<TMIN温度区间1:TMIN ≤当前温度≤TMAX温度区间2:当前温度>TMAX可设定的最大温度区间:0℃~99℃2. 用户输入4X4 矩阵键盘按键key1 ---- “设置”按键:该键按下后,进入工作参数设定界面,依次按下设定的数值,再次按下“设置”按键,退出工作参数设定界面。
图2.2工作参数设定界面按键key2 ---- 温度上限和温度下限参数设置选择按键,用于在上限和下限间切换按键key3 ---- 加1键对温度上限和温度下限进行加1按键key4 ---- 减1键对温度上限和温度下限进行减13. 执行机构执行机构由指示灯 Led1、蜂鸣器和继电器组成(1) 实时温度处在区间0,继电器打开,指示灯 Led1 以 1 秒为间隔闪烁,蜂鸣器响。
(2)实时温度处在区间1,继电器关闭,指示灯L1亮起但不闪烁,蜂鸣器不响。
(3)实时温度处在区间2,继电器打开,指示灯Led1 以 0.5 秒为间隔闪烁,蜂鸣器响,声音变细变高。
4. 初始化状态说明系统默认的温度上限( TMAX )为 30 ℃,温度下限 (TMIN)为 20 ℃,可以通过矩阵键盘修改。
5.系统用到的部件数码管、led灯、矩阵键盘、蜂鸣器、继电器、DS18B20温度传感器第三章温度传感器DS18B203.1 DS18B20简介3.1.1 DS18B20封装与引脚DS18B20封装与引脚如图3.1图3.1 DS18B20的封装与引脚3.1.2 DS18B20的简单性能1、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
2、测温范围-55℃~+125℃,固有测温分辨率0.5℃。
3、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温。
4、工作电源: 3~5V/DC。
5、在使用中不需要任何外围元件。
6、测量结果以9~12位数字量方式串行传送。
7、不锈钢保护管直径Φ6 。
8、适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温。
9、标准安装螺纹 M10X1, M12X1.5, G1/2”任选。
10、 PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
3.2DS18B20的工作原理DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。
高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。
初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。
初始时,计数器1预置的是与-55℃相对应的一个预置值。
以后计数器1每一个循环的预置数都由斜率累加器提供。
为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。
计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。
DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。
在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。
这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5℃,四舍五入最大量化误差为±1/2LSB,即0.25℃。
温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。
测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。
DS18B20测量温度时使用特有的温度测量技术。
DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。
当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。
芯片内部还有斜率累加器,可对频率的非线性度加以补偿,测量结果存入温度寄存器中。
一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。
DS18B20工作过程一般遵循以下协议:初始化——ROM操作命令——存储器操作命令——处理数据。
3.3 DS18B20的测温原理3.3.1 测温原理每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM 中。
主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。
ROM命令代码见表3.1。
程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。
DS18B20的测温原理,低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。