DS18B20温控实验报告---副本_第1页
DS18B20温控实验报告---副本_第2页
DS18B20温控实验报告---副本_第3页
DS18B20温控实验报告---副本_第4页
DS18B20温控实验报告---副本_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、文档可能无法思考全面,请浏览后下载! 桂林航院电子工程系单片机课程设计与制作说明书设计题目:DS18B20数字温度计的设计专 业: 通信技术 班 级: 学 号: 姓 名: 指导教师: 2012年 6 月 28 日 24 / 25桂林航天工业学院单片机课程设计与制作成绩评定表设计内容具体要求评 分加 分文献检索所查阅的文献具有一定的广泛性;有综合归纳资料的能力。优良中差调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。优良中差工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能独立完成设计工作。优良中差工作量工作量饱满,难度适中。优良中差实物功能可以实现设计要求的功能。优良中差

2、答辩情况主动回答指导老师提出的问题,表达流畅,回答问题正确。优良中差说明书质量说明书立论正确,论述充分,结构严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,格式规范工整。优良中差综合成绩评定指导教师签名年 月 日单片机课程设计与制作任务书专业:通信技术 学号: 2 姓名: 一、设计题目:DS18B20数字温度计的设计二、设计要求:1.要求采集温度精确到0.1度。2.显示测量温度三、设计内容:硬件设计、软件设计及样品制作四、设计成果形式:1、 设计说明书一份(不少于4000字);2、 样品一套。五完成期限: 2010 年 月 日指导教师: 贾磊磊 年 月 日教研室: 年 月 日目

3、录一 摘要(1)1.1设计要求(1)二 理论设计(2)2.1 硬件电路计(2)2.1.1芯片介绍(2)2.1.2 DS18B20简介(7)2.2设计方案 (9)2.2.1.显示方案 (9)2.2.2.系统硬件电路设计(11)2.2.3软件设计流程及描述(11)三系统的调试(13)3.1.硬件的调试(13)3.2实验结果(19)四、设计注意事项(19)4.1 点阵设计注意事项(20)4.2单片机注意事项(16)4.3仿真器使用注意事项(16)五设计心得体会(17)5.1总结与体会(17)摘 要在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重

4、要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。因此,单片机广泛用于现代工业控制中。本论文侧重介绍“单片机温度控制系统”的软件设计及相关内容。论文的主要内容包括:采样、滤波、键盘、LED显示和报警系统,加热控制系统等

5、。作为控制系统中的一个典型实验设计,单片机温度控制系统综合运用了微机原理、自动控制原理、模拟电子技术、数字控制技术、键盘显示技术等诸多方面的知识,是对所学知识的一次综合测试。温度控制系统在国内各行各业的应用虽然己经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少.随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,对相关企业资源进行

6、了重组,相继建立了一些国家,企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。目前,温度控制器产品从模拟、集成温度控制器发展到智能数码温度控制器。智能温控器(数字温控器)是微电子技术、计算机技术和自动测试技术的结合,特点是能输出温度数据及相关的温度控制量,适配各种控制器,并且它是在硬件的基础上通过软件来实现控制功能的,其智能化程度也取决于软件的开发水平,现阶段正朝着高精度高质量的方向发展,相信以我国的实力,温控技术在不久的将来一定会为于世界前列!一、 设计要求:1. 基本要求1) 测量温度范围-551202) 精度0.13) 显示测量温度4) 自动控制温度二、理论设计:温湿度与生

7、产及生活密切相关。像仓库、农田、生产过程,温度变化会影响品质;精密仪器、半导体器件,过温而导致性能降低,另外,人们的生活质量提高,对室内环境的高要求也需要对温度的适时监控,可见,温度传感器的应用范围是很广的。而在日常生活中,温度,尤其是水温的测控尤为重要,婴儿奶瓶,热水壶等等一系列产品对温度测控的需求相当的迫切。虽然市面上已经有许多成品测温仪器,但我们希望,通过自己的努力,能够作出一款功能齐全,制作简单的温度测控仪器。希望能在在精进学识的同时培养我们的动手能力。2.1.1芯片介绍AT89C52是一种低电压、高性能CMOS 8位微处理器,它自带4K字节闪存可编程可擦除只读存储器(FPEROMFl

8、ash Programmable and Erasable Read Only Memory),俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪存存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器。AT89C系列单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。它的部分引脚功能介绍如下。 AT89C52单片机的外形及引脚排列如上图:2.1.2 DS18B20简介 DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体

9、积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、 DS1822 “一线总线”数字化温度传感器 同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为 -55°C+125°C,在-10+85°C范围内,精度为±0.5°C。DS1822的精度较差为± 2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰

10、性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20可以程序设定912位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率

11、参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 DS18B20中的温度传感器对温度的测量 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的

12、温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。1) 64位的ROM 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,

13、接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。2) DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷

14、贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。DS18B20的时序 由于DS18B20采用的是单总线协议方式,即在一根数据线实现数据的双向传输,而对89C51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。

15、而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的复位时序DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要

16、被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。DS1820使用中注意事项 DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: 1) 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。 2) 在DS1

17、820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 3) 连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考

18、虑总线分布电容和阻抗匹配问题。 4) 在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。2.2设计方案方案一:选用光电耦合器,双向可控硅和功率电阻组成可以与单片机端口和市电连接大功率工作的设备,以供风扇与加热器的正常工作。此电路可控制大功率设备,但是在制作和调试的过程中要注意安全。方案二:选用小功率演示器件,用不同颜色的发光二极管或小功率风扇来代替风扇和加热器,能直观的反应单片机控制哪路电

19、路的工作,这样不仅表达出来的效果比较好,而且在调试和使用的时候比较的安全,并且在单片机下载版数码管上显示当前的温度范围。该设计方案虽然安全,但该设计不能在现实生活中实现自动控制。从上面两个方案比较,要想实现该系统的自动控制选择方案一比较好。2. 2.1 LED显示模块本课题的LED显示模块是由一个四联共阳七段数码管组成。七段数码管是由若干发光二极管组合而成的,一般的“8”字形显示块由“a、b、c、d、e、f、g、h”8发光二极管组成。四个七段数码管分别与P0口相连,通过对单片机输入程序达到控制显示输出的目的(如图)。四个七段数码管由单片机的P2.0P2.3控制亮灭,P2.0P2.3分别对应Q2

20、Q5,当P2.0P2.3其中之一置高电平,对应的三级管导通,段码管亮,置低电平,对应的三级管截止,段码管灭。2.2.2系统框架设计如下图所示:温度测量模块LED显示模块 控 制 器 模 块电源模块温度测量模块我们采用DS18B201.下图为温度测量的原理图:2.2.3 控制器模块本课题的控制器模块式采用89C51单片机作为MCU,如图89C51。89C51的 P0.0P0.7作为四联七段数码管总线;P2.4作为连接DS18B20的I/O口;P1.7作为升温电路的控制端;P2.0P2.3控制四个七段数码管的亮灭。2.2. 4电源电路给系统电路输入一个稳定的+5V的电源(如图)。 0.1uF470

21、uF0.1uF1000uF 输出+5V 7805 输入电源三系统的调试3.1 DS18B20 数据的部分程序代码为:#include<reg52.h> #include<math.h>#include<INTRINS.H>#define uchar unsigned char#define uint unsigned int;sbit seg1=P20;sbit seg2=P21;sbit seg3=P22;sbit DQ=P13;ds18b20 sfr dataled=0x80; /* 全局变量 */*/uint temp;uchar flag_get,c

22、ount,num,minute,second;uchar code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /7段数码管段码表共阳uchar str6;/*/* 函数声明 */*/void delay1(uchar MS);unsigned int ReadTemperature(void);void Init_DS18B20(void);unsigned char ReadOneChar(void);void WriteOneChar(unsigned char dat);void delay(unsigned int i

23、);/*/* 主函数 */*/main()unsigned char TempH,TempL;TMOD|=0x01;/定时器设置TH0=0xef;TL0=0xf0;IE=0x82;TR0=1;P2=0x00; count=0;while(1) str5=0x39; /显示C符号 str1=tabTempH/100; /十位温度 str2=tab(TempH%100)/10; /十位温度 str3=tab(TempH%100)%10|0x80; /个位温度,带小数点 str4=tabTempL; if(flag_get=1) /定时读取当前温度 temp=ReadTemperature(); i

24、f(temp&0x8000) str0=0x40;/负号标志 temp=temp; / 取反加1 temp +=1; else str0=0; TempH=temp>>4; TempL=temp&0x0F; TempL=TempL*6/10;/小数近似处理 flag_get=0; /*/* 定时器中断 */*/void tim(void) interrupt 1 using 1/中断,用于数码管扫描和温度检测间隔TH0=0xef;/定时器重装值TL0=0xf0;num+;if (num=50) num=0; flag_get=1;/标志位有效 second+; if

25、(second>=60) second=0; minute+; count+;if(count=1) P2=0; dataled=str0;/数码管扫描if(count=2) P2=1; dataled=str1;if(count=3) P2=2; dataled=str2; if(count=4) P2=3; dataled=str3; if(count=5) P2=4; dataled=str4; if(count=6) P2=5; dataled=str5; count=0;/*/* 延时函数 */*/void delay(unsigned int i)/延时函数 while(i-

26、);/*/* 初始化 */*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ复位 delay(8); /稍做延时 DQ = 0; /单片机将DQ拉低 delay(80); /精确延时 大于 480us DQ = 1; /拉高总线 delay(10); x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(5);/*/* 读一个字节 */*/unsigned char ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i>

27、;0;i-) DQ = 0; / 给脉冲信号 dat>>=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay(5); return(dat);/*/* 写一个字节 */*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i>0; i-) DQ = 0; DQ = dat&0x01; delay(5); DQ = 1; dat>>=1; delay(5);/*/* 读取温度 */*/unsigned int ReadTemperature(v

28、oid)unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换delay(200);Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar(); /低位b=ReadOneChar(); /高位b<<=8;t=a+b;return(t);四、实验步骤1. 使用专业软件进行

温馨提示

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

最新文档

评论

0/150

提交评论