DS18B20温度检测器_第1页
DS18B20温度检测器_第2页
DS18B20温度检测器_第3页
DS18B20温度检测器_第4页
DS18B20温度检测器_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、 单片机系统课程设计报告单片机系统课程设计报告题 目:基于 DS18B20 的数字温度计设计专 业: 通信工程 学 生 姓 名: 学 号: 指 导 教 师: 完成日期:2015 年 6 月 22 日摘摘 要要随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。本文主要介绍了一个基于 AT89C51 单片机的数字温度计系统。详细描述了利用数字温度传感器 DS18B20 开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方

2、便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有量程宽、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20 与 AT89C51结合实现最简温度报警系统,该系统结构简单,有广泛的应用前景。关键词:单片机;温度检测;AT89C51; DS18B20;ABSTRACTWith the era of progress and development, the temperature test has affected our life, work, scientific

3、research, each domain, has become a very important thing, be imperative system so the design of a temperature test.This paper introduces a digital temperature alarm system based on AT89C51 mcu. Detailed description of the process of digital temperature sensor DS18B20 temperature measurement system d

4、evelopment, focusing on the sensor under the SCM hardware connection, software programming and system flow of each module are analyzed in detail, on the part of the circuit are one one are introduced, the system can facilitate the realization of temperature acquisition and alarm, and can according t

5、o need any alarm temperature, it is very convenient to use, has a wide range, small volume, low power consumption, suitable for our daily lives and industrial, agricultural production in the temperature measurement, can also be used as a temperature processing module into other systems, as other aux

6、iliary system. DS18B20 combined with AT89C51 to achieve the most simple temperature alarm system, the system is simple in structure, has the widespread application prospect.Key word. Single chip microcomputer; temperature detection; AT89C51; DS18B20; 目录摘摘 要要.I IABSTRACTABSTRACT.IIII1 1 设计要求及方案选择设计要求

7、及方案选择.1 11.1 设计要求 .11.2 方案选择 .12 2 理论分析与设计理论分析与设计.1 12.1 芯片介绍 .12.1.1 DS18B20 概述.12.1.2 AT89C51 介绍.22.2 系统结构框图 .32.3 程序原理叙述 .33.3.电路设计电路设计.3 33.1 硬件设计 .33.1.1 单片机最小系统电路.43.1.2 温度采集模块.53.2 软件设计 .53.2.1 流程框图.63.2.2 程序设计.64 4、系统测试、系统测试.15155 5、总结、总结.1616. .参考文献参考文献.17171 设计要求及方案选择1.1 设计要求1 制作完成温度检测系统2

8、温度检测精度 1 度3 显示时间日期1.2 方案选择方案一:采用热敏电阻,热敏电阻精度、重复性、可靠性较差,对于检测1 摄氏度的信号是不适用的,在温度测量系统中,也常采用单片温度传感器,比如 AD590,LM35 等。但这些芯片输出的都是模拟信号,必须经过 A/D 转换后才能送给计算机,这样就使测温系统的硬件结构较复杂。要用到复杂的算法,一定程度上也增加了软件实现的难度。方案二:采用单总线数字温度传感器 DS18B20 测量温度,直接输出数字信号。便于单片机处理及控制,节省硬件电路。且该芯片的物理化学性很稳定,此元件线形性能好,在 0100 摄氏度时,最大线形偏差小于 1 摄氏度。DS18B2

9、0 的最大特点之一采用了单总线的数据传输,由数字温度计 DS18B20 和微控制器 AT89C512 构成的温度装置,它直接输出温度的数字信号到微控制器。每只 DS18B20 具有一个独有的不可修改的 64 位序列号,根据序列号可访问不同的器件。综上分析,我们选用第二种方案。2 理论分析与设计2.1 芯片介绍2.1.1 DS18B20 概述DS18B20 是 Dallas 公司继 DS1820 后推出的一种改进型智能数字温度传感器,与传统的热敏电阻相比,只需一根线就能直接读出被测温度值,并可根据实际需求来编程实现 912 位数字值的读数方式。DS18B20 封装形式及引脚功能图 2-1-1 D

10、S18B20 封装形式和引脚功能如图 2-1-1 所示,DS18B20 的外形如一只三极管,引脚名称及作用如下:GND:接地端。DQ:数据输入/输出脚,与 TTL 电平兼容。VDD:可接电源,也可接地。因为每只 DS18B20 都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。采用数据总线供电方式时 VDD 接地,可以节省一根传输线,但完成数据测量的时间较长;采用外部供电方式则 VDD 接+5V,多用一根导线,但测量速度较快2.1.2 AT89C51 介绍AT89C51 是一种带 4K 字节 FLASH 存储器(FPEROMFlash Programmable and Erasabl

11、e Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪速存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本。AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 。小管脚(40 脚)的 AT89C51 单

12、片机。如图 2-1-2 所示:图 2 -1-2 AT89C51单片机2.2 系统结构框图系统主要包括数据采集模块,单片机控制模块,显示模块,驱动电路五个部分。系统框图如图2-2-1 所示。单片机显示电路温度传感器图 2-2-1 系统结构框图2.3 程序原理叙述其中温度采集模块负责利用DS18B20传感器实时采集温度数据,并将采集到的温度数据传输到单片机控制模块,单片机控制模块将检测到的数据进行处理后送到数码管显示模块进行显示。 3.电路设计3.1 硬件设计3.1.1 单片机最小系统电路在课题设计的温度控制系统设计中,控制核心是 AT89C51 单片机,该单片 机为 51 系列增强型 8 位单片

13、机,它有 32 个 I/O 口,片内含 4K FLASH 工艺的序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为 12M一个指令周期为 1S。使用该单片机完全可以完成设计任务,其最小系统主包括:复位电路、震荡电路以及存储器选择模式,如图 3-2-1 所示 图 3-1-2 单片机最小电路3.1.2 温度采集模块在硬件完成后,为了使作品能够实现预定的功能和效果,因此需要对环境温度进行采集. 在本设计中采用外部供电方式实现 DS18B20 传感器与单片机的连接如图 3-1-3 所示.图 3-1-2 温度传感器接口3.1.3 温度显示模块(1)采用 LCD1602 液晶显示工业字符型

14、液晶,能够同时显示 16x02 即 32 个字符。 (16 列 2 行) 。1602 液晶也叫 1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义 CGRAM,显示效果也不好) 。1602LCD 是指显示的内容为 16X2,即可以显示两行,每行 16 个字符液晶模块(显示字符和数字) 。(2)采用数码管显示LED 数码管的主要特点如下: (1)能在低电压、小电流条

15、件下驱动发光,能与 CMOS、ITL 电路兼容。 (2)发光响应时间极短(01s),高频特性好,单色性好,亮度高。 (3)体积小,重量轻,抗冲击性能好。 (4)寿命长,使用寿命在 10 万小时以上,甚至可达 100 万小时。成本低。因此它被广泛用作数字仪器仪表、数控装置、计算机的数显器件。由于被实验设计难度较低,且要求不多,选择数码管显示简易易懂。图 3-1-2数码管结构图3.2 软件设计3.2.1 流程框图图 3-2-1 程序流程框图4.系统仿真4.1 开发环境Keil 开发环境是德国知名公司 Keil 开发的嵌入式微控制器软件开发平台,也是目前 ARM 嵌入式单片机开发的主流工具。启动界面

16、如图所示,并且在调试程序、软件仿真方面有比较强大的功能。在该开发工具中链中包含了指令模拟器,用户可以通过使用该功能来模拟“纯粹”的代码,不需要外部硬件平台的支持也可以在软件平台上模拟代码运行,基本界面框架如下图所示。4.2 构建工程1 创建工程文件在 Keil MDK 开发环境中,用户可以通过选择“New Project”下拉菜单创建一个新的工程。此时,系统会弹出一个对话框,要求用户为新建的工程起一个名字。在这里可以创建一个名为“TEST”文件夹。在工程文件夹里主要存放工程项目的所有文件。2 选择芯片在创建完存放工程文件代码的文件夹后,用户可以根据实际需要选择相应的芯片。3 新建文件及添加源代

17、码文件 在建立工程项目文件后,用户根据需要在工程项目内添加源程序代码。通过菜单“File”|“New”或者单击工具栏上的“新建文件”按钮,就可已在项目工程窗口右侧打开一个文本编辑窗口,用户可以在该窗口输入程序代码及头文件。4 最后是编译仿真。结果如图。5.代码实现/proteus 仿真论坛:#define uchar unsigned char#define uint unsigned int#define DQ P3_7#includeuint sec;uint min=50;uint hour=9;uint day=22;uint month=6;uint yearl=15;uint ye

18、arh=20;uint tcnt;uint cursor=0;uchar a=0 xff;uchar code Seg=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;void delay(uint t) uint i; while(t-) for (i=0;i0;i-) for(j=248;j0;j-);void Init_DS18B20(void) unsigned char x=0; DQ = 1; Tdelay(8); DQ = 0; Tdelay(80); DQ = 1; Tdelay(14); Tdelay(2

19、0);/读一个字节ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) DQ = 0; dat=1; DQ = 1; if(DQ) dat|=0 x80; Tdelay(4); return(dat);/写一个字节WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0 x01; Tdelay(5); DQ = 1; dat=1; /读取温度ReadTemperature(voi

20、d)unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0 xCC); WriteOneChar(0 x44); Init_DS18B20();WriteOneChar(0 xCC); WriteOneChar(0 xBE);a=ReadOneChar();b=ReadOneChar();t=b;t=7)cursor=0; if(P3_1=0) Kdelay(); if(P3_1=0) if(cursor=1)sec+;if(sec=60)sec=0; if(cu

21、rsor=2)min+;if(min=60)min=0; if(cursor=3)hour+;if(hour=24)hour=0; if(cursor=4)day+;if(day=31)day=0; if(cursor=5)month+;if(month=12)month=0; if(cursor=6)yearl+;if(yearl=100)yearl=0; if(cursor=7)yearh+;if(yearh=30)yearh=20; if(P3_2=0) Kdelay(); if(P3_2=0) if(cursor=1)sec-; if(cursor=2)min-; if(cursor=

22、3)hour-; if(cursor=4)day-; if(cursor=5)month-; if(cursor=6)yearl-; if(cursor=7)yearh-; i=ReadTemperature(); display(Segyearh/10,Segyearh%10,Segyearl/10,Segyearl%10,Segmonth/10,Segmonth%10,Segday/10,Segday%10,Seghour/10,Seghour%10,Segmin/10,Segmin%10,Segsec/10,Segsec%10,Segi/100,Segi/10%10); void t0(void)interrupt 1 using 0 /t0 的中断程序 tcnt+; if(tcnt=4000)/定时器的定时计数,4000 次 250us 为 1 秒 tcnt=0; P3_3=P3_3; a=a; sec+; if(sec=60) sec=0; min+; if(min=60) min=0; hour+; if(hour=24) hour=0; day+; if(month=2&(yearl=0&yearh%4=0)|(yearl!=0&yearl%

温馨提示

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

评论

0/150

提交评论