基于ds18b20的温室温度检测系统设计本科学位论文.docx
- 文档编号:8159277
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:16
- 大小:324.17KB
基于ds18b20的温室温度检测系统设计本科学位论文.docx
《基于ds18b20的温室温度检测系统设计本科学位论文.docx》由会员分享,可在线阅读,更多相关《基于ds18b20的温室温度检测系统设计本科学位论文.docx(16页珍藏版)》请在冰豆网上搜索。
基于ds18b20的温室温度检测系统设计本科学位论文
成绩
1.课程设计应达到的目的
通过对本课程的设计,使学生掌握常见被测量的检测原理、方法和技术,了解国内外对这些工程量进行测控的系统组建原理,通过对检测系统的设计与分析,增强学生理解和运用所学知识来解决实际问题的能力,逐步掌握根据具体测控要求、性能指标设计出先进测控系统的方法和技术。
2.课程设计题目及要求
题目:
基于DS18B20的温室温度检测系统设计
要求:
(1)可测温度范围0~100℃,测温精度:
±0.1℃;
(2)根据题意,明确被控对象的功能及性能指标;
(3)根据系统要求,选择合适的传感器;
(4)设计传感器测量电路;
(5)选择单片机的品种、型号,设计单片机的外围测量电路;
(6)计算有关的电路参数,有条件的情况下,根据实验室现有设备进行实验数据的测取,明确测量电路输出与被测非电量的关系;
(7)画出系统原理框图(此部分放在说明书的开始);
(8)画出系统电路图,最好用PROTEL画;
(9)在说明书中详细说明本系统工作原理。
3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕
(1)给出设计说明书一份;
(2)有条件的情况下尽量给出必要的实验数据;
(3)在说明书中附上完整的系统电路原理图(手画或用PROTEL画)。
4.主要参考文献
1、李现明,吴皓编著.自动检测技术.北京:
机械工业出版社,2009
2、徐仁贵.单片微型计算机应用技术.北京:
机械工业出版社.2001
3、陈爱弟.Protel99实用培训教程.北京:
人民邮电出版社.2000
5.课程设计进度安排
起止日期
工作内容
10年12月27日
布置设计任务,熟悉课题,查找资料;
10年12月2日
结合测控对象,选择合适的传感器,理解传感器性能;
10年12月29日
设计传感器测量电路,选择合适的单片机,设计其外围电路;
10年12月30日
设计电路参数,有条件情况下,在实验室进行实验,进一步理解测量电路输入输出关系;
10年12月31日
继续设计论证电路参数,完善系统设计方案;
11年1月3日
查找资料,理解系统各部分工作原理;
11年1月4日
理清系统说明要点,着手设计说明书的书写;
11年1月5日
书写设计说明书,充分理解系统每一部分作用;
11年1月6日
完善设计说明书,准备设计答辩。
11年1月7日
设计答辩。
6.成绩考核办法
平时表现30%,设计成果40%,答辩表现30%.
教研室审查意见:
教研室主任签字:
年月日
院(系、部、中心)意见:
主管领导签字:
年月日
目录
1、温度检测设计方案………………………………………………………………6
1.1温度采集部分的设计
1.1.1温度传感器DS18B20………………………………………………………7
1.1.2DS18B20温度传感器与单片机的接口电路………………………11
1.2单片机接口电路的设计………………………………………………………13
1.2.1MAX7219内部寄存器和工作模式……………………………………13
1.3显示电路的设计…………………………………………………………………14
2、系统软件的设计……………………………………………………………………17
附:
参考资料
1、温室温度检测设计方案
在普通的室内温度检测中,可用一般的温度传感器,通过AD转换之后,由数码管直接显示该室内的温度。
但是普通型传感器芯片不仅体积大,而且输出的信号都是模拟信号,必须经过A/D转换后才能被处理器识别,而且不能实现多点温度的测量,最大的缺点就是它的精度不是很高。
而在要求精度很高的温度控制中,显然普通的温度采集和显示系统已不能满足设计的需要。
因此,针对此现状,本文设计了一种由单片机控制的智能温度采集与显示系统。
它以AT89S52单片机为核心,实现对温度信号的采集和显示。
在温度信号的采集方面,利用单总线数字温度传感器的特点及功能实现对温度的采集,由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器。
与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可在-55—+125℃的范围内测量温度。
从中央处理器到DS18B20仅需连接一条信号线和地线,其指令信息和数据信息都经过单总线接口与DS18B20进行数据交换,且每个DS18B20有唯一的系列号。
因此同一条单总线上可以挂接多个DS18B20,构成主从结构的多点测温传感器网络。
而在显示方面采用数码管显示。
此系统具有结构简单、价格低廉、易于操作及系统扩展、性价比高等特点。
它利用89S52单片机的强大功能和可扩充性为后盾,可实现对某一路温度和温度的上下限进行有效的控制与输出。
1.1温度采集部分的设计
1.1.1温度传感器DS18B20
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简编程实现9~12位的数字值读数方式。
DS18B20外部形状及管脚图
TO-92封装的DS18B20的引脚排列见下图,其引脚功能描述见表1。
(底
视图)
DS18B20
表1 DS18B20详细引脚功能描述
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V;
●零待机功耗;
●温度以9或12位数字;
●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2所示。
图2DS18B20内部结构
64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图3所示。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
该字节各位的定义如图3所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留
保留
保留
CRC
图3 DS18B20字节定义
由表2可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数
据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表3是一部分温度值对应的二进制温度数据。
表2DS18B20温度转换时间表
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。
因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。
主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。
DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致为被测温度值。
图4DS18B20测温原理
表3 一部分温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
1.1.2DS18B20温度传感器与单片机的接口电路
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式,如图4所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必须是三态的。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20的复位时序
DS18B20的读时序
对于DS18B20的读时序分为读0时序和读1时序两个过程。
对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。
DS18B20在完成一个读时序过程,至少需要60us才能完成。
DS18B20的写时序
对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。
对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
89S52是ATmel公司的产品,与MCS-51兼容。
芯片内部带有8K快速擦写程序存储器(可擦写次数可达1000次);运算速度快频率可达33兆赫兹;32位110口总线:
三个16位的定时1计数器。
AT89S52单片机有如下标准特性:
兼容MCS-51微控制器;8K字节FLASH存贮器支持在系统编程ISP1000次擦写周期;256字节的数据存储器(RAM);工作电压4.0V到5.5V;全静态时钟0Hz到33MHz;三级程序加密;32个可编程I/O口;3个16位定时/计数器;8个中断源;全双工UART;完全的双工UART串行口;低功耗支持Idle和Power-down模式;Power-down模式支持中断唤醒;看门狗定时器:
双数据指针;上电复为标志。
同时该芯片还具有PDIP,TQFP和PLCC等三种封装形式,以适应不同产品的需求。
芯片采用51系列指令集并与51系列单片机引脚兼容且增加了不少功能,用户可以直接替换应用系统中的AT89C51/52,而软件硬件均不需作任何修改,这给用户更换元器件来许多方便。
而且,从经济性的角度来看,AT89S52不但硬件结构简单,而且价格低、功能强、性价比高,符合我国工业设计制造的要求。
1.2单片机接口电路的设计
图5单片机接口电路图
温度信号由DS18B20检测由P2.7口输入到单片机中进行处理,显示部分通过单片机的P1.0口、P1.1口、P1.2口通过MAX7219驱动LED数码管完成。
单片机的时钟电路利用芯片内部振荡电路,在XTALI,XTAL2的引脚上外接定时元件内部振荡器便能产生自激振荡,定时元件可以采用石英晶体和电容组成的并联谐振电路,其连接方法如图4所示。
晶振可以在1.2MHz~12MHz之间任选,本电路选11.0692MHz。
电容通常在20pF-6OpF之间选择,通常为30pF左右,本电路选30pF,电容器C1和C2的大小对振荡频率有微小影响,可起频率微调作用。
在设计印刷电路板时,晶体和电容应尽可能与单片机芯片靠近,以减少寄生电容,保证振荡器的可靠工作,一般采用瓷片电容。
1.2.1MAX7219内部寄存器和工作模式
对MAX7219的控制操作很方便,其片内具有8个数据寄存器和6个控制寄存器,数据寄存器存放预显示的数码值,控制寄存器决定LED的工作方式。
MAX7219通过输入的数据包中的高8位,决定寄存器的选择,低8位为寄存器的数据或指令。
操作者只需编程发送16位数据包,就能简单地操作LED的位选以及段选,设置和改变MAX7219的工作模式。
16位数据包的数据格式如下表:
16位数据包的数据格式
D15
D14
D13
D12
D11
D10
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
×
×
×
×
ADDRESS
MSBDADALSB
其中,D7-D0:
8位数据位,D7最高位,D0为最底位;
D11-D8:
4位地址位;D15-D12:
无关位。
任选,本课题选0。
控制寄存器包括:
译码模式,显示亮度调节,扫描限制(选择扫描位数),关断和显示测试寄存器。
MAX7219的驱动程序首先必须对5个控制寄存器初始设置即初始化,各控制寄存器设置含义如下:
(1)译码模式选择寄存器(地址=F9H):
共有4种译码模式供选择,当数据位全1时选“译
码方式”。
本课题选择此方式。
(2)亮度调节寄存器:
地址=XAH;共有16级选择,用于LED显示亮度的强弱设置。
分16个亮度级,即以16步从峰值电流最值的31/32减到1/32来调节段电流,每步减少2/32。
31/32对应16进制码为XF,1/32对应16进制码为X0。
(3)关断模式寄存器:
地址=XCH;有两种模式选择:
一种是关断状态模式(D0=0);一种是正常操作状态(D0=1),通常选择正常操作状态。
(4)显示测试寄存器:
地址=XFH;有两种选择用于设置是测试状态还是正常操作状态:
当在测试LED状态时(D0=1)各位全应亮,一般选择正常操作状态(D0=O)。
(5)空操作寄存器:
地址=X0H。
1.3显示电路的设计
在单片机系统设计中,LED显示方式由于亮度高、显示醒目、使用寿命长、方便、价格低廉等优点在工业用仪器仪表中得到广泛应用。
而其驱动方式有多种形式,在采用并行显示方式时,显示电路的段码与位控码要占用单片机的较多口线,尽管可采用8155等接口芯片进行扩展,但口线利用率仍较低,不能满足大型控制系统的要求。
采用串行显示方式则只需占用2至3根口线,节约单片机大量的1/O线,且使用效果很好。
一般要求控制芯片使用简单、功能多样化、多级灰度调节、外围电路精简可靠、译码与功率驱动于一体。
单片机通过LED驱动电路送显示值到数码管,通过译码选择某个数码管显示温度值的某一位,可以动态循环扫描、软件实现方式显示设定值,动态显示的扫描频率一般在50Hz以上,每个数码管能有lms的导通时间,则肉眼感觉不到闪烁。
本课题采用一种基于MAX7219的LED串行显示技术。
具体电路如图6所示。
图6显示电路原理图
显示部分由8个8段数码管组成,用来显示实测温度。
单片机可通过智能驱动芯片MAX7219来控制LED以便对温度、时钟日历的实时显示。
显示电路与单片机的连接如显示电路图5所示,DIN接单片机的P1.2口,此接口用来接收需要显示的数据:
接P1.0,CLK接P1.1。
MAX7219应连接共阴极数码管。
本课题选用两片数码管LG2841AH,每片上集有4个LED,共用A、B、C、D、E、F、G、DP段码,分别接SEGa,SEGb,SEGc,SEGd,SEGe,SEGf,SEG9,SEGh,SEGDP上,哪一位显示由MAX7219的DIGO-DIG78八个位码接至数码管的I、III、II、IV控制。
段驱动电流可通过V+管脚和ISET管脚之间所接的外部电阻RSET来控制,RSET电阻越大段电流越小。
其最小值不小于9530欧姆,此时典型段电流为37mA。
为了减少外界的干扰,应在MAX7219V十管脚和GND管脚之间加上一个0.1UF的涤纶电容和一个470UF的电解电容。
AT89S52对LED管的显示可分为静态和动态两种。
本文采用动态显示,其优点为:
(1)能降低显示器的功耗。
(2)能大大减少显示器的外部接线,给安装调试带来方便。
LED动态显示原理:
本文将位选码和段选码通过MAX7219传送,位选码和段选码通过串行口送到MAX7219,再利用MAX7219的串入并出特性送到数码管进行显示。
由于各个数码管的段选线并联,段选码的输出对各个数码管都是相同。
因此同一时刻如果各个数码管的位选线都处于选通状态的话,8位LED将显示相同字符。
若要各位LED显示出与本位相应的显示字符,就必须采用扫描显示方式。
即在某一时刻只让某一位的位选线处于选通状态而其它各位的位选线处于关闭状态.同时段选线上输出相应位要显示字符的代码这样同一时刻8位LED中只有选通的那一位显示出字符,而其它位则是熄灭的。
此循环下去就可以使各位数码管显示出将要显示的字符。
显然,这些字符是在不同时刻出现的,而且同一时刻只有一位显示其它各位熄灭,但由于各位数码管的通断时间是非常短的,且人眼有视觉暂留现象,只要每位显示间隔足够短则可造成多位同时亮的假象达到显示的目的。
数据首先加载到MAX7219芯片内部16位移位寄存器中,然后通过P1.0由低到高的电平转换,实现串行输入数据的最后16位被锁定到数字和控制寄存器。
系统运行首先向MAX7219芯片的控制寄存器传输控制字,并对16位数字寄存器进行初始化。
然后,依据仪表的设定状态、运行状态的参数及数值改变16位数字寄存器相应地址的数据位,实现参数及数值显示更新。
2.系统软件的设计
显示子程序的设计
在本设计中作为人机对话的另一部分就是显示器,硬件电路用MAX7219驱动八位LED作为系统的显示器。
其主要完成对不断循环检测到的温度值的显示。
先将要显示的数值的BCD码(非压缩)先存入单片机的显示缓冲区,然后调用显示子程序,单片机通过P1.2把需
要显示数据送往显示驱动芯片MAX7219.MAX7219驱动LED数码管显示当前其值。
LED显示器采用动态显示方式。
下面给出软件设计框图(见图7)。
图7程序流程
DS18B20数据采集子程序的设计
温度采集程序如图8所示。
编程时一定要遵守DS18B20时序,否则DS18B20将不会响应。
是
图8温度采集程序流程
通过编程可实现DS18B20温度分辨率的位数(9-12位)选择,本设计采用默认值(12位分辨率)对DS18B20处理顺序为:
第一步:
初始化,包括主机发出复位脉冲(通过将总线拉低至少480us来实现)随即主机等待DS18B20从检测到复位脉冲的上升沿开始等待15-16us后通过单线总线拉低60-240us实现存在脉冲的发送;第二步:
发送ROM命令,包括搜索ROM命令(FOH)、读ROM命令(33H)、符合ROM命令(55H)、跳过ROM命令(CCH)及报警搜索ROM命令(ECH);第三步:
发送功能命令,包括温度转换命令(44H)、写暂存器命令(4EH)读暂存器(BEH)命令等。
命令的传送是通过写时序完成的,而主机读取DS18B20传送的数据是通过读时序实现的。
本测温子系统主要使用的命令为跳过ROM命令、写暂存器命令、温度转换命令、读暂存器(BEH)命令。
参考资料:
1.李现明,吴皓编著.自动检测技术.北京:
机械工业出版社,2009
2.徐仁贵.单片微型计算机应用技术.北京:
机械工业出版社.2001
3.陈爱弟.Protel99实用培训教程.北京:
人民邮电出版社.2000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ds18b20 温室 温度 检测 系统 设计 本科 学位 论文