温度报警控制系统Word文件下载.docx
《温度报警控制系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《温度报警控制系统Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。
1.设计目的:
1、通过温度报警控制系统的设计,了解数字式温度传感器DS18B20的工作原理及其控制方法;
2、通过温度报警控制系统的设计,掌握单片机AT89C51的结构原理及其控制指令的应用,熟练应用AT89C51完成一个系统的控制;
3、通过温度报警控制系统的设计,使学生了解一个控制系统设计的基本步骤,程序设计的基本方法,培养学生分析问题和解决问题的能力,将理论联系到实践中去,提高我们的动脑和动手的能力,通过课程设计,还可以使学生树立正确的世界观,培养实事求是、严肃认真、具有高度责任感的工作作风;
4、学习完成控制系统的硬件设计、软件设计、仿真调试的过程。
2.课程设计的主要内容和任务分析
任务:
以单片机AT89C51作为核心,基于数字式温度传感器DS18B20的功能,设计一个具有LED显示功能、按键功能、温度检测功能及控制操作功能的控制系统。
内容:
设计基于DS18B20的数字式烤箱温度控制系统,控制电路主要包括,led显示电路、按键电路、温度检测电路及控制电路。
控制程序主要包括主程序、读出温度子程序、按键子程序、显示子程序、控制子程序等。
要求能检测、显示烤箱温度,并控制烤箱温度在一可设定区域。
3.控制系统的总体要求:
1.对烤箱温度进行检测及控制。
温度显示范围:
0゜C~+99゜C,精度误差在1゜C以内。
2.温度控制在设置的上下限范围。
3.能设置并保存温度上、下限值,并可随时修改。
4.LED数码管直读显示实测温度,设置温度上限温度,下限温度(用键控制设定温度)。
5.温度超出上、下限值时,报警;
根据所测温度所在的界限控制烤箱是否加热。
6.启/停键用以启动和停止加热,上电复位后,不论启动还是停止状态,人机界面显示烤箱内温度值,同时也要求显示界面区分停止和运行状态。
4.温度报警控制系统硬件部分设计分析:
4.1温度传感器DSl8B20
由美国DALLAS半导体公司生产的DSl8B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中,例如多路温度测控仪、中央空调、大型冷库、恒温装置等。
此外巧妙利用DSl8B20内部64位激光ROM中具有惟一性的48位产品序号,还可设计成专供大型宾馆客房或军事仓库使用的保密性极佳的电子密码锁。
DSl8B20的电源电压范围均扩展到+3~+5.5V,DSl8B20还能对温度分辨力进行编程,选择9位~12位模式下工作,在12位模式下的最高分辨力可达0.0625℃。
4.1.1DS18B20的性能特点
(1)DSl8B20采用DALLAS公司独特的“单线(1-Wire)总线”专有技术,通过串行通信接口(I/O)直接输出被测温度值(9位二进制数据,含符号位)。
(2)在测温范围是-55~+125℃时,测量误差不超过±
2℃,在-10~+85℃范围内,可确保测量误差不超过±
0.5℃。
温度/数字量转换时间的典型值仅需93.75ms,比DS1820有很大的提高.
(3)内含64位经过激光修正的只读存储器ROM,扣除8位产品系列号和8位循环冗余校验码CRC之后,产品序号占48位。
出厂前就作为DSl8B20惟一的产品序号,存入其ROM中。
在构成大型温控系统时,允许在单线总线上挂接多片DSl8B20。
4.1.2DS18B20的工作原理
DSl8B20的原理与DS1820的原理是一样的。
DS18B20继承了DS1820的所有优点。
DS18B20采用3脚PR—35封装或8脚SOIC封装,引脚排列如图1-1所示。
I/O为数据输入/输出端(即单线总线),它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。
UDD是可供选用的外部+5V电源端,不用时需接地。
GND为地,NC为空脚。
其内部框图如图1-2所示。
主要包括7部分:
①寄生电源;
②温度传感器;
64位激光(laser)ROM与单线接口;
④高速暂存器,即便笺式RAM,用于存放中间数据;
⑤TH触发寄存器和TL触发寄存器,分别用来存储用户设定的温度上、下限tH、tL值;
⑥存储与控制逻辑;
⑦8位循环冗余校验码(CRC)发生器。
下面分别介绍各部分的工作原理。
(a)(b)
图1-1DS1820/DS18B20的引脚排列
(a)PR—35封装(b)SOIC封装
图1-2DS18B20的内部框图
(1)测温电路原理
DSl8B20内部测温电路框图如图1-4所示。
低温度系数振荡器用于产生稳定的频率ƒ0,高温度系数振荡器则相当于T/ƒ转换器,能将被测温度t转换成频率信号ƒ0图中还隐含着计数门,当计数门打开时,DSl8B20就对低温度系数振荡器产生的时钟脉冲ƒ0进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定。
每次测量前,首先将-55℃所对应的基数分别置入减法计数器、温度寄存器中。
在计数门关闭之前若计数器已减至零,温度寄存器中的数值就增加0.5℃。
然后,计数器依斜率累加器的状态置入新的数值,再对时钟计数,然后减至零,温度寄存器值又增加0.5℃。
只要计数门仍未关闭,就重复上述过程,直至温度寄存值达到被测温度值。
这就是DSl8B20的测温原理。
斜率累加器能对振荡器的非线性予以补偿,提高测量准确度。
需要指出,温度值本应为9位(其中,符号占一位),但因符号位又被扩展成高8位,故实际以16位补码的形式读出。
其中,高8位代表符号,“0”表示t>
0℃,“1”表示t<
0℃;
低8位则以0.5℃/LSB。
图1-3内部测温电路框图
表1—1温度—数据的对应关系
温度/℃
数字输出(二进制)
数字输出(十六进制)
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010001
0191H
+10.125
0000000010100010
00A2H
+0.5
0000000000001000
0008H
0000000000000000
0000H
-0.5
1111111111111000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001011111
FE6FH
-55
1111110010010000
FC90H
温度与数据的对应关系见表1—1。
欲测量华氏温度(0F),需进行下述换算:
t(0F)=9/5(0C)+32(1—1)
DS18B20中温度字节中的位定义
低八位
23
22
21
20
2-1
2-2
2-3
2-4
高八位
S
26
25
24
DSl8B20型单线智能温度传感器典型的测温误差在0~70℃范围内,DSl8B20的上、下限测温误差分别为+0.5℃、-0.5℃,而典型产品的误差仅为±
0.25℃。
(4)高速暂存器(简称暂存器)
它由便笺式RAM、非易失性电擦写E2RAM所组成,后者用来存储tH和tL值。
图1-4暂存器的操作命令流程图
数据先写入RAM,经校验后再传给E2RAM。
便笺式RAM占9个字节,第0、1字节是测量出的温度信息,第2、3字节分别是tH、tL值,第4、5字节不用。
第6、7字节为计数寄存器,可用于提高温度分辨力。
第8字节用来存储上述8字节的循环冗余校验码。
详见表3—2。
暂存器的命令集见表3—3。
6条命令分别为温度转换、读暂存器、写暂存器、复制暂存器、重新调出E2RAM、读电源供电方式。
表1—2暂存器的内容
便笺式RAM
字节
E2RAM
温度低字节
温度高字节
1
报警上限/用户定义字节1
2
报警下限/用户定义字节2
3
保留
4
5
计数余数值
6
每度计数值
7
CRC
8
表1—3暂存器命令集
指令
说明
约定代码
发生约定代码后单线总线
温度转换
启动DSl8B20进行温度转换
44H
主CPU读DSl8B20的“忙状态”
读暂存器
读暂存器9个字节的内容
BEH
主CPU读9个字节的数据
写暂存器
将数据写入暂存器的TH和TL字节
4EH
主CPU给DSl8B20发出两个字节的数据
复制暂存器
把暂存器的TH、TL字节写入E2RAM中
48H
重新调E2RAM
把E2RAM中的TH、'
FL字节分别调入暂存器TH、TL字节
B8H
读电源供电方式
启动DSl8B20发送电源供电方式的信号给主CPU
B4H
主CPU读DSl8B20的“电源状态”
(5)初始化
对DSl8B20的操作是首先进行初始化,然后执行ROM操作命令,再执行暂存器操作命令,最后完成数据处理。
(6)报警信号
在完成温度转换之后,DSl8B20就把测得的温度值,同tH、tL作比较。
若t>
tH或t<
tL,则将该器件的报警标志置位,并对主CPU发出的报警搜索命令做出响应。
因此可用多片DSl8B20同时测量温度并进行报警搜索。
一旦某个测温点越限,主CPU用报警搜索命令即可识别正在报警的DSl8B20,并且读出其序号,而不必考虑其他未报警的DSl8B20。
4.2AT89C51单片机简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM)的低电压,高性能CMOS8位微处理器(俗称单片机)。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51单片机管脚如图所示。
图1-5AT89C51管脚
各管脚功能:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8