编辑: cyhzg | 2019-08-02 |
1 引言
1 1.
1 温度控制系统设计的背景、发展历史及意义
1 1.2 温度控制系统的目的
1 1.3 温度控制系统完成的功能
1 2 总体设计方案
2 2.1 方案一
2 2.2 方案二
2 3 DS18B20温度传感器简介
7 3.1 温度传感器的历史及简介
7 3.2 DS18B20的工作原理
7 3.2.1 DS18B20工作时序
7 3.2.2 ROM操作命令
9 3.3 DS18B20的测温原理
9 3.3.1DS18B20的测温原理:
9 3.3.2 DS18B20的测温流程
11 4 单片机接口设计
12 4.1 设计原则
12 4.2 引脚连接
12 4.2.1 晶振电路
12 4.2.2 串口引脚
12 4.2.3 其它引脚
13 5 系统整体设计
14 5.1 系统硬件电路设计
14 5.1.1 主板电路设计
14 5.1.2 各部分电路
14 5.2 系统软件设计
16 5.2.1 系统软件设计整体思路
16 5.2.2 系统程序流图
17 5.3 调试
21 6 结束语
23 附录
24 参考文献
32 1 引言 1.1 温度控制系统设计的背景、发展历史及意义 随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向.特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题.针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意义. 温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度.在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一.比如,发电厂锅炉的温度必须控制在一定的范围之内;
许多化学反应的工艺过程必须在适当的温度下才能正常进行;
炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品.没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障.因此,各行各业对温度控制的要求都越来越高.可见,温度的测量和控制是非常重要的. 单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制.随着温度控制器应用范围的日益广泛和多样,各种适用于不同场合的智能温度控制器应运而生. 1.2 温度控制系统的目的 本设计的内容是温度测试控制系统,控制对象是温度.温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制.而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外.针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统. 1.3 温度控制系统完成的功能 本设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:当温度低于设定下限温度时,系统自动启动加热继电器加温,使温度上升,同时绿灯亮.当温度上升到下限温度以上时,停止加温;
当温度高于设定上限温度时,系统自动启动风扇降温,使温度下降,同时红灯亮.当温度下降到上限温度以下时,停止降温.温度在上下限温度之间时,执行机构不执行.三个数码管即时显示温度,精确到小数点一位.
2 总体设计方案 2.1 方案一 测温电路的设计,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦. 2.2 方案二 考虑使用温度传感器,结合单片机电路设计,采用一只DS18B20温度传感器,直接读取被测温度值,之后进行转换,依次完成设计要求. 比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,故实际设计中拟采用方案二. 在本系统的电路设计方框图如图1.1所示,它由三部分组成:①控制部分主芯片采用单片机AT89S51;
②显示部分采用3位LED数码管以动态扫描方式实现温度显示;
③温度采集部分采用DS18B20温度传感器. 图2-1 温度计电路总体设计方案 控制部分 单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用,系统应用三节电池供电. 2. 显示部分 显示电路采用3位共阳LED数码管,从P0口送数,P2口扫描. 3. 温度采集部分 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温.这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成.数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机的P1.0口,单片机接受温度并存储.此部分只用到DS18B20和单片机,硬件很简单 1) DS18B20的性能特点如下[9]: 1) 独特的单线接口仅需要一个端口引脚进行通信;
2) 多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
3) 无须外部器件;
4) 可通过数据线供电,电压范围为3.0~5.5V;
5) 零待机功耗;
6) 温度以3位数字显示;
7) 用户可定义报警设置;
8) 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
9) 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作. (2) DS18B20的内部结构 DS18B20采用3脚PR-35封装,如图1.2所示;
DS18B20的内部结构,如图3所示. 图2-2 DS18B20封装 (3) DS18B20内部结构主要由四部分组成[5]: 1) 64位光刻ROM.开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因[10].64位闪速ROM的结构如下. 表2-1 ROM结构 8b检验CRC 48b序列号 8b工厂代码(10H) MSB LSB MSB LSB MSB LSB 图2-3 DS18B20内部结构 2) 非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值. 3) 高速暂存存储,可以设置DS18B20温度转换的精度. DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PRAM.高速暂存RAM的结构为8字节的存储器,结构如图1.3所示.头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新.第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率.DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值.它的内部存储器结构和字节定义如图1.3所示.低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式. 表2-2 DS18B20内部存储器结构 Byte0 温度测量值LSB(50H) Byte1 温度测量值MSB(50H) E2PROM Byte2 TH高温寄存器 (----( TH高温寄存器 Byte3 TL低温寄存器 (----( TL 低温寄存器 Byte4 配位寄存器 (----( 配位寄存器 Byte5 预留(FFH) Byte6 预留(0CH) Byte7 预留(IOH) Byte8 循环冗余码校验(CRC) 2) 非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值. 3) 高速暂存存储,可以设置DS18B20温度转换的精度. DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,如图1.4. 图2-3 DS18B20字节定义 TM R1 R0
1 1
1 1
1 由表1.1可见,分辨率越高,所需要的温度数据转换时间越长.因此,在实际应用中要将分辨率和转换时间权衡考虑. 高速暂存RAM的第
6、
7、8字节保留未用,表现为全逻辑1.第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性. 当DS18B20接收到温度转换命令后,开始启动转换.转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第
1、2字节.单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示. 当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;
当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值.表1.2是一部分温度值对应的二进制温度数据[6]. 表2-4 DS18B20温度转换时间表 R1 R0 分辨率/位 温度最大转向时间/ms
0 0
9 93.75
0 1
10 187.5
1 0
11 375
1 1
12 750 表2-5 一部分温度对应值表 温度/℃ 二进制表示 十六进制表示 +125
0000 0111
1101 0000 07D0H +85
0000 0101
0101 0000 0550H +25.0625
0000 0001
1001 0000 0191H +10.125
0000 0000
1010 0001 00A2H +0.5
0000 0000
0000 0010 0008H
0 0000
0000 0000
1000 0000H -0.5
1111 1111
1111 0000 FFF8H 续表2-5 -10.125
1111 1111
0101 1110 FF5EH -25.0625
1111 1110
0110 1111 FE6FH -55
1111 1100
1001 0000 FC90H 4) CRC的产生 在64 b ROM的最高有效字节中存储有循环冗余校验码(CRC).主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确.另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要.系统对DS18B20的各种操作按协议进行.操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据.
3 DS18B20温度传感器简介 3.1 温度传感器的历史及简介 温度的测量是从金属(物质)的热胀冷缩开始.水银温度计至今仍是各种温度测量的计量标准.可是它的缺点是只能近距离观测,而且水银有毒,玻璃管易碎.代替水银的有酒精温度计和金属簧片温度计,它们虽然没有毒性,但测量精度很低,只能作为一个概略指示.不过在居民住宅中使用已可满足要求.在工业生产和实验研究中为了配合远传仪表指示,出现了许多不同的温度检测方法,常用的有电阻式、热电偶式、PN结型、辐射型、光纤式及石英谐振型等.它们都是基于温度变化引起其物理参数(如电阻值,热电势等)的变化的原理.随着大规模集成电路工艺的提高,出现了多种集成的数字化温度传感器. 3.2 DS18B20的工作原理 3.2.1 DS18B20工作时序 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤: 1. 每一次读写之前都必须要对DS18B20进行复位;
2. 复位成功后发送一条ROM指令;
3. 最后发送RAM指令,这样才能对DS18B20进行预定的操作. 复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待15~60微秒左右后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功.其工作时序包括初始化时序、写时序和读时序,具体工作方法如图2.1,2.2,2.3所示. (1) 初始化时序 图3-1 初始化时序 总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲.应答脉冲使主机知道,总线上有从机设备,且准备就绪.主机输出低电平,保持低电平时间至少480us,以产生复位脉冲.接着主机释放总线,4.7KΩ上拉电阻将总线拉高,延时15~60us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时480us[12]. (2) 写时序 图3-2 写时序 写时序包括写0时序和写1时序.所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,都是以总线拉低开始.写1时序,主机输出低电平,延时2us,然后释放总线,延时60us.写0时序,主机输出低电平,延时60us,然后释放总线,延时2us[8]. (3) 读时序 图3-3 读时序 总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能................