多功能多点温度采集设计与实现毕业设计_第1页
多功能多点温度采集设计与实现毕业设计_第2页
多功能多点温度采集设计与实现毕业设计_第3页
多功能多点温度采集设计与实现毕业设计_第4页
多功能多点温度采集设计与实现毕业设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华南师范大学增城学院2007级本科生毕业论文辩论设计者:唐庆良基于单总线DS18B20温度传感器的多点温度采集系统的设计与制作多功能多点温度采集设计与实现 系 别:计算机系专业班级:07信息管理1班指导老师:简 介 Synopsis华南师范大学增城学院 07级 信息管理1班 唐庆良 本课题主要研究基于STC89C52单片机与单总线温度传感器DS18B20的多点温度测量系统。它是以STC89C52单片机为主控制芯片,采用数字温度传感器DS18B20实现多路温度的检测,测量精度可以到达0.5。该系统采用了LED16x64点阵显示模块,该模块用于提示当前的操作情况与显示温度,运用单片机与PC机通信技

2、术实现对DS18B20的序列号读取;通过红外遥控器控制读取某一点的温度,实现无线通信。基于单总线DS18B20温度传感器的多点温度采集系统的设计与制作第一章 背景及研究意义温度传感器的发展阶段 模拟集成温度传感器 智能温度传感器 数字温度传感器 华南师范大学增城学院 07级 信息管理1班 唐庆良该传感器是采用硅半导体集成工艺制成,具有功能单一、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单 它的特点是能输出温度数据及相关的温度控制量,需配相应的微控制器(MCU);并且它是在硬件的根底上通过软件来实现测试功能的,其智能化程度

3、也取决于软件的开发水平 它将非电模拟量温度值转换为数字信号输出,能够直接读取被测物体的温度值。它体积小,电压适用范围宽 3 V5 V,用户还可以通过编程实现 912 位的温度读数,即具有可调的温度分辨率第一章 背景及研究意义智能温度传感器发展的新趋势 提高测温精度和分辨力 增加测试功能 总线技术的标准化与规范化 在20世纪90年代中期最早推出的智能温度传感器,采用的是8位A/D转换器,其测温精度较低,分辨力只能到达1C。目前,国外已相继推出多种高精度、高分辨力的智能温度传感器,所用的是912位A/D转换器,分辨力一般可达0.50.0625C。 主要包括单次转换模式、连续转换模式、待机模式,有的

4、还增加了低温极限扩展模式,操作非常简便 目前,智能温度传感器的总线技术也实现了标准化、标准化,所采用的总线主要有单线(1-Wire)总线、I2C总线、SMBUS总线和SPI总线。温度传感器作为从机可通过专用总线接口与主机进行通信 华南师范大学增城学院 07级 信息管理1班 唐庆良第一章 背景及研究意义华南师范大学增城学院 07级 信息管理1班 唐庆良 本文介绍一种基于数字温度传感器DS18B20的主从分布式多路测温系统、该系统以单片机为主机,数字温度传感器通过与单片机P3.7连接,系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,可应用于仓库测温、楼宇空调控制和生产过程监控、酒窖等

5、领域 选题背景和研究意义第二章 方案论证比较与选择 引言 温度测量的方案有很多种,可以采用传统的分立式传感器、模拟集成传感器以及新兴的智能型传感器。对于控制系统可以采用计算机、单片机等 华南师范大学增城学院 07级 信息管理1班 唐庆良第二章 方案论证比较与选择方案设计 设计方案一 采用模拟分立元件,如电容、电感或晶体管等非线形元件,实现多点温度的测量及显示,该方案设计电路简单易懂,操作简单,且价格廉价,但采用分立元件分散性大,不便于集成数字化,而且测量误差大 设计方案二 本方案采用STC89C52单片机为核心,通过温度传感器AD590采集温度信号,经信号放大器放大后,送到A/D转换芯片,最终

6、经单片机检测处理温度信号 ,该方案技术已经成熟,AD转换电路设计较烦琐,而且使用AD590进行温度检测必须对冷端进行补偿,以减小误差 方案二系统框图华南师范大学增城学院 07级 信息管理1班 唐庆良方案设计 方案三系统框图 设计方案三 本设计运用主从分布式思想,由一个单片机控制点阵实现,另一个单片机实现多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统。温度传感器采用DS18B20。DS18B20利用单总线的特点可以方便的实现多点温度的测量,轻松的组建传感器网络,系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量 第二章 方案论证比较与选择华南师范大学增城学院

7、07级 信息管理1班 唐庆良方案论证 基于数字式温度计DS18B20的温度测量仪的硬软件开发过程是将DS18B20温度信号直接转换为数字信号,实现了与单片机的直接接口,从而省去了信号调理电路。该仪器电路简单、功能可靠、测量效率高,很好地弥补了传统温度测量方法的缺乏。相对与方案1,在功能、性能、可操作性等方面都有较大的提升。相对与方案2,硬件电路简单,易于操作,具有更高的性价比,更大的市场。所以我采用方案3完本钱设计 第二章 方案论证比较与选择华南师范大学增城学院 07级 信息管理1班 唐庆良 总体设计思想STC89C52 单片机基于单总线DS18B20温度传感器的多点温度采集系统的设计与制作华

8、南师范大学增城学院 07级 信息管理1班 唐庆良DS18B20读取序列号单片机与PC通信计算机显示序列号控制 DS18B20 单片机红外遥控传输数据控制LED点阵 单片机双机通信LED点阵模块提示操作传输序列号到单总线上查找与传输的序列号匹配的DS18B20多个DS18B20数码管显示 系统设计分工唐庆良:主要负责总体电路设计与电路板制作,红外线遥控解码,DS18B20多点温度读取 陈维明:主要负责DS18B20的序列号读取,主机与从之间的通信实现 陈倍思:主要负责LED16x64点阵的控制,提示当前的操作情况 基于单总线DS18B20温度传感器的多点温度采集系统的设计与制作华南师范大学增城学

9、院 07级 信息管理1班 唐庆良 本课题研究的多点测温系统是以单片机和单总线数字温度传感器DS18B20为核心,充分利用单片机优越的内部和外部资源及数字温度传感器DS18B20的优越性能构成一个完备的测温系统,实现对温度的多点测量。本课题设计了一种合理、可行的单片机监控软件,完成测量和显示的任务。由于单片机具有强大的运算和控制功能,使得整个系统具有模块化、硬件电路简单以及操作方便等优点, 本课题的整个系统的电路是由单片机应用系统、显示电路、红外遥控接收、DS18B20驱动电路,串口通信等构成 第三章 硬件设计 华南师范大学增城学院 07级 信息管理1班 唐庆良单片机最小应用系统电路华南师范大学

10、增城学院 07级 信息管理1班 唐庆良第三章 硬件设计 单片机最小应用系统由复位电路与时钟电路组成,复位电路有上电自动复位与手动复位,如果将P0口作为I/O口,还必须接上上拉电阻红外线接收电路 华南师范大学增城学院 07级 信息管理1班 唐庆良第三章 硬件设计 红外遥控器是电子设备常见的输入装置,作为人们与电子设备交流的重要途径,一旦出错,将影响到电子设备的整体使用,所以接收电路虽然简单,但接收电路的稳定性、可靠性,应引起足够的重视 温度传感器应用电路设计 华南师范大学增城学院 07级 信息管理1班 唐庆良第三章 硬件设计 DS18B20温度传感器的主要特点就是单总线,电路接法简单,不用别的复

11、杂的辅助电路只要一个10K的上拉电阻,一个I/O口就可以将多个18B20接在一条总线下,就实现多点温度采集系统的功能了,一条总线上最多可以接2的64次方个18B20,这里我们只用到了8温度传感器,电路简单并节省资源 红外线接收电路 华南师范大学增城学院 07级 信息管理1班 唐庆良第三章 硬件设计 本系统的温度显示主要是用到四位共阳极数码管,电路应用简单方便 单片机应用软件系统设计包括功能模块划分、程序流程确立、模块接口设计以及程序代码编写。我们依据系统的功能要求,将整体软件系统分割成假设干个独立的程序模块。这些程序模块可以是几条语句的集合、功能函数或程序文件。随后,根据各程序模块的实现功能写

12、出流程,一般需要写出具体的实现功能描述。程序代码通常采用汇编语言或高级语言C语言编写,本系统采用的是C语言 第四章 软件系统设计 华南师范大学增城学院 07级 信息管理1班 唐庆良华南师范大学增城学院 07级 信息管理1班 唐庆良 系统软件设计步骤主要包括系统程序和流程图,根据整个系统的要求,完成温度的测量与控制必须经过以下几个步骤:单片机接受传感器的温度信号,通过数码管将其显示出来,并向主机另一个控制LED点阵的单片机接收一个提示信号,实现读取某一点的温度 系统框架图第四章 软件系统设计 软件实现思路 华南师范大学增城学院 07级 信息管理1班 唐庆良第四章 软件系统设计 系统主程序流程图

13、DS18B20数字温度传感器是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂多这样的数字温度传感器,十分方便 第四章 软件系统设计 DS18B20传感器程序实现 华南师范大学增城学院 07级 信息管理1班 唐庆良DS18B20简介 第四章 软件系统设计 DS18B20传感器程序实现 华南师范大学增城学院 07级 信息管理1班 唐庆良DS18B20产品特点 只要求一个端口即可实现通信 在DS18B20中的每个器件上都有独一无二的序列号 测量温度范围在55.C到125.C之间 实际应用中不需要外部任何元器件

14、即可实现测温 内部有温度上、下限告警设置 数字温度计的分辨率用户可以从9位到12位选择 序号名称引脚功能描述1GND地信号2DQ数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源3VDD可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地DS18B20的引脚及其其引脚功能DS18B20的内部结构 华南师范大学增城学院 07级 信息管理1班 唐庆良 DS18B20的内部框图如左图所示。暂存器包含两字节0和1字节的温度存放器,用于存储温度传感器的数字输出。可以使用寄生电源为DS18B20供电;当总线为高电平时,功率由单总线上的上拉电阻通过DQ引脚提供;高电平总线信号同时也向

15、内部电容CPP充电,CPP在总线低电平时为器件供电 第四章 软件系统设计 DS18B20传感器程序实现 DS18B20的指令集 华南师范大学增城学院 07级 信息管理1班 唐庆良 前面提及单总线器件的ROM命令,在主机检测到应答脉冲后,就可以发出ROM命令。这些命令与各个DS18B20设备的唯一64位ROM代码相关。允许主机在单总线上连接多个从机设备时,指定操作某个DS18B20设备。这些命令还允许主机能够检测到总线上有多少个从机设备,每种命令长度为8位。主机在发出功能命令之前,必须发送适宜的ROM命令 第四章 软件系统设计 DS18B20传感器程序实现 指令协议功能读ROM33H读DS18B

16、20中的编码(即64位地址)符合ROM55H发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20,使之做出响应,为下一步对该DS18B20的读写做准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20V 温度转换命令,适用于单个DS18B20工作报警搜索命令0ECH执行后,只有温度超过庙宇值上限或下限的片子才做出响应温度转换44H启动DS18B20进行温度转换,转换时间最长为500ms(典型为200ms),结果写入到内部9字节RAM中读暂存器BEH读

17、内部RAM中9字节的内容写暂存器4EH发出向内部RAM的第3、4字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据复制暂存器48H将RAM中第3、4字内容复制到E2PROM中重调E2PROM0B8H将E2PROM中内容恢复到RAM中的第3、4字节读供电方式0B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外部供电时DS18B20发送“1”华南师范大学增城学院 07级 信息管理1班 唐庆良 DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求,只有严格遵守通讯协议才能保证数据传输的正确性和完整性。每次数据的传输均从主机启动写时序开始,如

18、果要求单总线器件回送数据,那么在写命令后,主机需启动读时序完成数据接收,数据和命令的传输都是低位在先 第四章 软件系统设计 DS18B20传感器程序实现 DS18B20软件驱动实现流程图 华南师范大学增城学院 07级 信息管理1班 唐庆良复位主要程序代码如下:void ds1820rst()/ds1820复位* unsigned char x=0;DQ = 1; /DQ复位delay_18B20(4); /延时DQ = 0; /DQ拉低delay_18B20(100); /精确延时大于480usDQ = 1; /拉高delay_18B20(40); 第四章 软件系统设计 DS18B20传感器程

19、序实现 DS18B20的复位时序 华南师范大学增城学院 07级 信息管理1班 唐庆良 DS18B20的读时序是主机先把单总线拉低,在之后的l5s内必须释放单总线,以便将数据传输到单总线上。DS18B20完成一个读时序至少需要60s。读时序主要程序代码如下: unsigned char ds1820rd()/读数据 unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0 x80; delay_18B20(10); return(dat);第

20、四章 软件系统设计 DS18B20传感器程序实现 华南师范大学增城学院 07级 信息管理1班 唐庆良写数据主要程序代码如下:void ds1820wr(uchar wdata)/写数据unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata&0 x01; delay_18B20(10); DQ = 1; wdata=1; 第四章 软件系统设计 DS18B20传感器程序实现 华南师范大学增城学院 07级 信息管理1班 唐庆良 DS18B20复位后,就可以编程控制读到其内部RAM所采集到的温度值,由于我们是在一天总线上挂了多个DS18B20,所

21、以在对那个传感器进行读温度时,必须先向单总线上写DS18B20的序列号,才能完成读温度操作,读出数据后,还需判断读到的温度是正值还是负值,当温度值为正值时,直接将二进制数转换为十进制温度值;当温度值为负值时先将二进制补码变为原码,再转换为十进制温度值 第四章 软件系统设计 DS18B20传感器程序实现 向DS18B20写序列号程序代码:void changds18b20_1(uchar pds18bnum88,uchar aa) uchar i; ds1820rst(); delay(1); ds1820wr(0 x55); delay(1); for(i=0;i8;i+) ds1820wr(

22、pds18bnumaai); 读取DS18B20温度并转换程序段:read_temp1()/读取温度值并转换uchar a,b; ds1820rst(); changds18b20_1(ds18b20num,countnum-1);ds1820wr(0 x44);/启动温度转换ds1820wr(0 xbe);/读取温度a=ds1820rd(); b=ds1820rd();tvalue=b; tvalue=8;tvalue=tvalue|a; if(tvalue32)/检测引导码bitnum=0; irdatabitnum=irtime; irtime=0; bitnum+; if(bitnum

23、=33) bitnum=0; irrecok=1; startflag=0; else startflag=1; irtime=0; 华南师范大学增城学院 07级 信息管理1班 唐庆良第四章 软件系统设计 DS18B20控制与显示设计 显示模块显示程序主要是将读取到的温度将其在数码管上显示出来,主要程序如下 :void disp_temper(uint temper)/温度值显示 uchar temper_ge,temper_shi,temper_bai; temper_ge=temper%10; temper_shi=temper%100/10; temper_bai=temper/100;

24、 if(tflag=1) D4=0; P0=0 xbf; delay(5); D4=1; D3=0; P0=tabtemper_bai; delay(5); D3=1; D2=0; P0=tabtemper_shi+10; delay(5); D2=1; D1=0; P0=tabtemper_ge; delay(5); D1=1;华南师范大学增城学院 07级 信息管理1班 唐庆良第四章 软件系统设计 DS18B20主控制主函数 主函数是一个程序执行的开始,主要是控制总个程序的运行的开始,主要程序代码如下 : void main() uint temper1; it0send();ds1820r

25、st(); delay(1); ds1820wr(0 xcc);/跳过读序列号 ds1820wr(0 x44);/启动温度转换 delay(200); while(1) temper1=read_temp1(); disp_temper(temper1); 本课题通过分析比照各种不同的温度传感器,选定DS18B20,这种单总线数字温度传感器的通信方式比较独特,软件编写要求的比较新颖,特点突出。用其构建的系统有很多优点:硬件连线简单,省去了使用模拟传感器要进行放大、A/D转换等工作,由于它的级联功能,一条总线可挂接多个传感器测量不同位置的温度,根据DS18B20唯一的序号识别不同传感器在各自位置

26、的温度 。 需要注意的是, 在系统安装及工作之前应将主机逐个与DS1820 挂接,以读出其序列号。另外,由于DS1820 单线通信功能是分时完成的,遵循严格的时隙概念,因此, 系统对DS1820 和各种操作必须按协议进行,即:初始化DS1820 (发复位脉冲)发ROM功能命令发存储器操作命令处理数据。现场温度直接以“一线总线的数字方式传输,每一个自带地址,大大减少了系统的电缆数,提高了系统的稳定性和抗干扰性 第五章 调试与小结 华南师范大学增城学院 07级 信息管理1班 唐庆良硬件电路测试小结 本设计的软件程序用是的C语言编程,它的可读性非常强,容易理解,摆脱了难度的机器语言汇编语言跟进时代的开展脚步,这也是本次设计的一大优越点之一。 程序在设计当中遇到了很困难,有时候是数据设置有问题。由于DS18B20采用的是单总线技术,所以在对它复位、写指令、读数据时对时间的要求控制是非常严格的,为了调试出准确的时间,我花了很多时,经过不断差资料,最后终于调出我想要的结果。第五章 调试与小结 华南师范大学增城学院 07级 信息管理1班 唐庆良软件测试小结 经过几个月的不断学习和努力,在老师的谆谆教导下,在其他老师及同学们的热心帮助与指导下,基于单片机的单总线多点温度测控系统的毕业设计即将结束,根本完成了老师所规定的各项工作任务。 通过这一次毕

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论