基于DS18B20传感器的温度测量仪

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能仪器技术实习报告

实习名称:基于DS18B20传感器的温度测量仪班级:

姓名:

指导老师:

日期:

一、实验名称:

基于DS18B20传感器的温度测量仪

二、实验目的:

1、通过课程设计使大家进一步掌握智能仪器的基本组成结构、工作原理、智能仪器的典型处理功能以及智能仪器的数据通信方式,使学生直观了解智能仪器的结构主要包括哪几部分,它是如何工作的;

智能仪器与传统的仪器仪表有何区别,它们的主要特点是什么;

智能仪器的智能化主要表现在哪些方面,有哪些典型的处理方法。

2、使学生进一步熟悉实际的智能仪器的主要部件、仪器的基本结构,深入了解其工作原理、调试及使用方法等,为今后的应用作好准备。特别是掌握智能仪器的特点以及不同类型仪器的软、硬件设计思路;对智能仪器使用中的常见故障、故障产生的原因及其处理方法,智能仪器的抗干扰措施等作进一步的了解。

3、使学生了解智能仪器的最新进展和发展趋势,初步掌握新型智能仪器的基本结构、性能及特点,为今后的专业拓展打下良好的基础。

三、实验原理:

3.1 DS18B20 简介

DS18B20 简介、数字温度传感器DS18B20 是由Dallas 半导体公司生产的,它具有耐磨耐碰,体积小,使用方便,封装形式多样(如图所示),适用于各种狭小空间设备数字测温和控制领域。

该图引脚说明:GND 为接地引脚;DQ 为数据输入输出脚。用于单线操作,漏极开路;VCC 接电源正;DS18B20内部结构及功能:DS18B20的内部结构如下图所示。主要包括:寄生电源,温度传感器,64位ROM 和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH 和TL 触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分。

DS18B20 是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器 DS18B20 是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55~+125 摄氏度,可编程为9 位~12 位转换精度,测温分辨率可达0.0625 摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16 位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。单总线通常要求接一个约4.7K 左右的上拉电阻,这样,当总线空闲时,其状态为高电平。

3.2温度传感器的工作原理:

DS18B20的读写时序和测温原理与DS1820 相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20 测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2 的脉冲输入。计数器1 和温度寄存器被预置在-55℃所对应的一个基数值。计数器1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1 的预置值减到0 时,温度寄存器的值将加1,计数器1 的预置将重新被装入,计数器1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2 计数到0 时,停止温度寄存器值的累加,此时温度寄存器中的数值,即为所测温度。

3.3实验板电路图:

3.4系统框图

四、实验方案:

4.1程序流程图

显示正温度显示负温度

蜂鸣器

按键

主函数

4.2程序附录

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}; //不带小数点的共阳数码管段码

uchar code smg_du1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //带小数点的共阳数码管段码

sbit io=P3^6;

sbit we1=P2^0;//小数

sbit we2=P2^1;//个位

sbit we3=P2^2;//十位

sbit we4=P2^3;//符号

sbit beep=P3^7;

sbit key1=P1^4;

sbit key2=P1^5;

sbit key3=P1^6;

sbit key4=P1^7;

sbit key5=P3^2;

sbit key6=P3^3;

uint temp;

uchar fg=1;

uchar flag;

uchar xs;

uint m;

uint low=-15;

uint high=30;

unsigned char keyvalue;

uchar flag1;

uchar flag2;

void delay(uint t)

{

while(t--);

}

void init_ds18b20()

{

uchar n;

io=1;

delay(8);

io=0;

delay(80);

io=1;

相关文档
最新文档