基于数字温度传感器的数字温度计_第1页
基于数字温度传感器的数字温度计_第2页
基于数字温度传感器的数字温度计_第3页
基于数字温度传感器的数字温度计_第4页
基于数字温度传感器的数字温度计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、黄 河 科 技 学 院单片机应用技术课程设计题目:基于数字温度传感器的数字温度计姓 名: 时鹏 院 (系): 工学院 专业班级: 学 号: 指导教师: 黄河科技学院课程设计任务书 工 学院 机械 系 机械设计制造及其自动化 专业 S13 级 1 班学号 1303050025 姓名 时鹏 指导教师 朱煜钰 题目: 基于数字温度传感器的数字温度计设计 课程: 单片机应用技术课程设计 课程设计时间 2014年 10月27 日 至2014年11 月 10 日 共 2 周课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页)课程设计任务书及摘要一、课程设计题目:基于数

2、字温度传感器的数字温度计二、课程设计要求利用数字温度传感器DS18B20与单片机结合来测量温度。利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。其温度测量范围为-55125,精确到0.5。数字温度计所测量的温度采用数字显示,控制器使用单片机AT89C51,温度传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。3、 课程设计摘要DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了DS18B20数字温度传

3、感器在单片机下的硬件连接及软件编程,并给出了软件流程图。该系统由上位机和下位机两大部分组成。下位机实现温度的检测并提供标准RS232通信接口,芯片使用了ATMEL公司的AT89C51单片机和DALLAS公司的DS18B20数字温度传感器。上位机部分使用了通用PC。该系统可应用于仓库测温、楼宇空调控制和生产过程监控等领域。四、关键字:单片机 温度测量 DS18B20 数字温度传感器 AT89C511目录绪论.31. 原理介绍.41.1总体设计方案.41.2主控制部分.41.3总体设计框图.42. 硬件电路.52.1 硬件电路预览.52.2 DS18B20介绍.52.3 AT89C51介绍.82.

4、4 数码管介绍.103. 程序设计.113.1 程序流程图.113.2 程序清单.124. 仿真效果图.165. 结论与总结.18绪论随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便一是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,腰围现代人工作、科研、生活提供更好更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研等各个领域,已经成为一种比较成熟的技术,在工、农业生产和日常生活中,对温度的测量及控制占据着极其重要的地位。首先了解一下多点温度检测系统

5、在各个方面的应用领域:消防电气的非破坏性温度检测,电力、电讯设备之过热故障预知检测,空调系统的温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械等设备温度过热检测。由此可见,温度检测系统应用十分广阔。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,该设计控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内报警。1.原理介绍1.1总体设计方案总体设

6、计方案采用AT89C51单片机作控制器,温度传感器选用DS18B20来设计数字温度计,系统由3个模块组成:主控制器、测温电路及显示电路。主控制器由单片机AT89C51实现,测温电路由温度传感器DS18B20实现,显示电路由4位LED数码管直读显示。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89C51,测温传感器使用DS18B20,用4位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。1.2主控制部分本设计采用AT89C51八位单片机实现。单片

7、机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信.运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统,实现远程控制。另外AT89C51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。 系统采用针对传统温度测温系统测温点少,系统兼容性及扩展性较差的特点,运用分布式通讯的思想。设计一种可以用于大规模多点温度测量的巡回检测系统。该系统采用的是RS-232串行通讯的标准,通过下位机(单

8、片机)进行现场的温度采集,温度数据既可以由下位机模块实时显示,也可以送回上位机进行数据处理,具有巡检速度快,扩展性好,成本低的特点。1.3总体设计框图控制器采用单片机AT89C51,温度传感器采用DS18B20,用4位LED数码管显示温度。总体设计框图如图1-1所示。图1.1 总设计框图2.硬件电路2.1硬件电路预览图2.1 总电路2.2 DS18B20介绍DS18B20是由美国DALLAS半导体公司研制的一款数字温度传感器,与一般的热敏电阻相比,它能够直接检测出被测温度并且可根据实际的要求通过简单的编程实现912位的数字读取方式。DS18B20采用独特的单总线接口方式,只需一根线与单片机直接

9、连接便可实现数据的读写操作,简化了分布式温度传感网络的应用。DS18B20数字温度传感器的优点是结构简单,耐磨耐碰,体积较小,使用方便,与传统温度传感器相比测量精度较高,其抗干扰能力强,封装形式也有很多种,可以根据不同的应用场合而选择不同形式的封装。因此,本系统选择DS18B20作为系统温度传感器,可以简化系统结构,使测量方便、可靠,同时DS18B20的价格也比较便宜。DS18B20有以下优点:(1)单总线接口方式:DS18B20与单片机联接只需一根数据总线便能完成数据的全双工通信。(2)在使用时不需要外围元器件。(3)DS18B20工作电压范围宽,可工作于3.0 V5.5V,可以由数据线直接

10、供电,不需要外部电源。(4)测温范围为:-55+125,可以满足一般的生产生活需要,测温分辨率0.5(5)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125、0.0625,可实现高精度测温。(6)DS18B20支持多传感器组成测温网功能,可以由单片机引出的一条总线上并联多个温度传感器以实现多点组网测温。DS18B20的封装有很多种,最常见的是TO-92封装,它的管脚说明如图所示。其封装结构共有三个引脚,分别为电源引脚(VCC),数据线引脚(DQ)和接地引脚(GND)。图2.2 DS18B20的TO-92封装DS18B20的内部结构如图所示。 图2.3 DS18B20的

11、内部结构图从图中我们可以看出,DS18B20数字温度传感器主要由四部分组成:64位ROM只读存储器、温度传感器、高低温度触发器TH和TL、配置寄存器。DS18B20的管脚排列如图2.3所示,其中DQ为数字信号I/O口;GND为电源地,需要与单片机共地;VDD为外接电源输入端。每个DS18B20的ROM都有不同64位序列号,其序列号是出厂前被光刻好的,不可更改,它可以看作是该DS18B20的地址序列码。64位ROM的排循环冗余校验码是CRC=X8X5X41。ROM序列号的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上并联多个DS18B20实现多点组网测温的目的。温度的测量由DS

12、18B20中的温度传感器完成,并将检测到的温度用16位带符号扩展的二进制补码读数形式由数据总线传出,以0.0625/LSB形式表达,其中S为符号位。例如125的数字输出为07D0H,25.0625的数字输出为0191H,25.0625的数字输出为FF6FH,55的数字输出为FC90H。 高速暂存器是一个9字节的随机存储器。开始低位两个字节包含被测温度的数字量信息;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被重置;第6、7、8字节未用,默认为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。DS18B20在使用中的注意事项。DS18B20虽然

13、具有测温电路简单、测温精度较高、连接方便、占用I/O端口线少等优点,在实际应用中应注意以下几个问题:(1)简单的硬件电路需要相对复杂的软件进行编辑,DS18B20与单片机间采用串行数据传送,因此,在对DS18B20进行读取和写入编程时,必须严格保证读写时序,否则将无法读取测温结果。(2)在实际应用中,当单总线上所挂DS18B20最好不要超过8个,否则,就需要解决单片机的总线驱动问题。(3)连接DS18B20的总线电路是有长度限制的。当采用普通信号电缆传输数据,且电缆长度超过50M时,读取的测温数据会因为有外界的干扰而发生错误。而将总线电缆改为双绞线带屏蔽电缆时,正常通信距离最远可达150M。因

14、此,在用DS18B20进行长距离测温系统设计时,需要解决总线分布电容的阻抗匹配问题。(4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序需要等待DS18B20的返回信号。实际应用中难免出现某个DS18B20断线问题,当程序需要读该DS18B20时,将没有返回信号,程序将进入死循环。测温电缆最好采用带屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接电源线和地线,屏蔽层在源端单点接地。2.3AT89C51介绍MCS-51单片机是指由美国英特尔公司生产的一系列单片机的总称,这一系列单片机包括很多种,如8031、8032、8051、8052、8752等。其中8051是最早研

15、制的且最具典型性的产品,而该系列其他单片机都是以8051为基础发展起来的,与8051的基本结构和软件特征相似。8051单片机包含微型计算机所必须具备的基本功能部件,各部件相互独立地集成在同一块芯片上。8051基本功能特性如下:(1)8位CPU;(2)四个8位并行I/O端口;(3)4KB程序存储器(ROM),外部可扩充至64KB;(4)128B数据存储器(RAM),外部可扩充至64KB;(5)两个16位定时/计数器;(6)5个中断源;(7)全双工的串行通信口;(8)具有布尔运算能力;标准的8051单片机有几种不同的封装形式。最常见,也是最廉价的是PDIP40封装的塑料双列直插40引脚8051单片

16、机,其引脚排列如图所示。图2.4单片机的管脚排列图40个引脚功能如下:(1)主电源引脚VSS和VCC。VSS:地线。VCC:5V电源。(2)外界晶振引脚XTAL1和XTAL2。XTAL1:外接晶体的引线端。当使用芯片内部时钟时,此端用于外接石英晶体和微调电容;当使用外部时钟时,对于HMOS单片机,此引脚接地;对于CHMOS单片机,此引脚作为外部振荡信号的输入端。XTAL2:外接晶体引线端。当使用芯片内部时钟时,此端用于外接石英晶体和微调电容;当使用外部时钟时,对于HMOS单片机,此引脚接外部振荡源;对于CHMOS单片机,此引脚悬空不接。(3)控制或与其他电源复用引脚RST,ALE/,和。RST

17、:复位信号。当输入的复位信号延续2个机器周期以上高电平即为有效,用以完成单片机的复位初始化操作。在VCC发生故障、降低到低电平规定值掉电期间,此引脚可接上备用电源VPD,由VPD向内部RAM供电,以保持内部RAM中的数据。ALE/:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存器锁存起来,以实现低位地址和数据的隔离。此外由于ALE是以晶振六分之一的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲使用。:外部程序存储器读选通信号。在读外部ROM时有效(低电平),以实现外部ROM单元的读操作。:访问程序存储控制信号。当信号为低电平时,对ROM的读操作先低昂在外部程

18、序存储器;而当信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。(4)输入/输出引脚,P0口P3口。P0口(P0.0-P0.7):8位双向并行I/O口。扩展片外存储器或I/O口时,作为低8位地址总线和8位数据总线的分时复用接口,它为双向三态。P0口能以吸收电流的方式驱动8个LSTTL负载。P1口(P1.0-P1.7):8位准双向并行I/O接口。P1口每一位都可以独立设置成输入输出位。P1口能驱动4个LSTTL负载。P2口(P2.0-P2.7):8位准双向并行I/O口。扩展外部数据、程序存储器时,作为高八位地址输出端口。P2口能驱动4个LSTTL负载。P3口(P3

19、.0-P3.7):8位准双向并行I/O口。P3口除了作为一般的准双向口使用外,每个引脚还有特殊功能.P3口能驱动4个LSTTL负载。2.4数码管介绍LED数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等.,led数码管根据LED的接法不同分为

20、共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片。图2.5数码管3.程序设计3.1 程序流程图图3.1主程序流程图图3.2 DS18B20程序流程图3.2 程序清单#include<reg52.h>#include<stdio.h>#define

21、uchar unsigned char#define uint unsigned intsbit ds=P10; /温度传感器信号线uint temp; /定义整形的温度数据float f_temp; /定义浮点型的温度数据bit flag; /正负温度标志位uchar code table=0xc0,0xf9,0xa4,0xb0, /共阳极数码管显示0-9 0x99,0x92,0x82,0xf8, 0x80,0x90, 0x40,0x79,0x24,0x30, /带小数点的0-9 0x19,0x12,0x02,0x78, 0x00,0x10, 0xbf,0xff; /正负号void dela

22、y(uint z) /延时函数,约1msuint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void dsreset(void) /DS18B20复位,初始化函数uint i;ds=0;i=103;while(i>0)i-;ds=1;i=4;while(i>0)i-;bit tempreadbit(void) /读一位数据函数uint i;bit dat;ds=0;i+;ds=1;i+;i+;dat=ds;i=8;while(i>0)i-;return(dat);uchar tempread(void)/读一个字节数据函数uchar

23、 i,j,dat;dat=0;for(i=1;i<=8;i+)j=tempreadbit();dat=(j<<7)|(dat>>1);return(dat);void tempwritebyte(uchar dat) /向DS18B20写一个字节数据函数uint i;uchar j;bit testb;for(j=1;j<=8;j+)testb=dat&0x01;dat=dat>>1;if(testb)ds=0;i+;i+;ds=1;i=8;while(i>0)i-;elseds=0;i=8;while(i>0)i-;ds=1

24、;i+;i+;void tempchange(void) /DS18B20开始获取温度并转换dsreset();delay(1);tempwritebyte(0xcc); /跳过读ROM指令tempwritebyte(0x44); /写温度转换指令uint get_temp() /读取寄存器中存储的温度数据uchar a,b;dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread(); /读低八位b=tempread(); /读高八位temp=b; temp<<=8; /两个字节组合为一个字temp

25、=temp|a;if(temp<0x800)flag=0; /判断正负温度else if(temp>=0x800)flag=1;temp=temp+1;f_temp=temp*0.0625; /温度在寄存器中为12位,分辨率为0.0625°temp=f_temp*10+0.5;/乘以10表示小数点后取一位,加0.5是四舍五入f_temp=f_temp+0.05;return temp; /temp是整型 void dis_temp(int t) /显示温度数值函数,t传递的是整型的温度值uchar b,s,g;b=t/100; /除100得到商,为温度的十位s=t%100

26、/10; /100取余除以10,为温度的各位g=t%100%10; /100取余再用10取余,为温度的小数位if(flag=1) /温度的正负号P2=0x01;P0=table20;delay(1);else if(flag=0)P2=0x01;P0=table21;delay(1);P2=0x02; /温度显示P0=tableb;delay(1);P2=0x04;P0=tables+10;delay(1);P2=0x08;P0=tableg;delay(1);void init(void) /I/O口初始化P0=0X00;P2=0X00;P1=0X00;void main()/主函数uchar i

温馨提示

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

评论

0/150

提交评论