基本信息
文件名称:《单片机技术与应用》 课件 项目六任务6- DS18B20温度采集报警系统设计.pptx
文件大小:645.68 KB
总页数:21 页
更新时间:2025-06-19
总字数:约2.32千字
文档摘要

项目六温度检测报警系统设计

串口概述任务一用串口扩展I0口(1)任务二用串口扩展I0口(2)任务三单片机双机通信任务四PC与单片机通信任务五DS18B20温度采集报警系统设计任务六

任务六DS18B20温度采集报警系统设计

任务描述使用数字温度传感器DS18B20,将采集到的温度信息送单片机,单片机处理该实时温度信息后,通过串口送PC进行显示。

知识链接温度传感器DS18B20

温度传感器DS18B20DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供单片机处理,可实现温度的精度测量与控制。DS18B20封装外形如图所示。

值得一提的是DQ引脚的I/O为数据输入/输出端(即单总线),该引脚为漏极开路输出,常态下呈高电平。DS18B20引脚功能描述序号名称描述1GND地信号2DQ数据输入输出引脚3Vdd(Vcc)电源输入引脚,当工作于寄生电源模式时,此引脚必须接地

1、内部结构DS18B20的内部框图如图所示,主要包括寄生电源、温度传感器、存放中间数据的高速贮存器、用于存储用户设定的温度上下限值、触发器存储与控制逻辑、8位循环冗余校验码发生器和64位编号ROM等7部分。下面重点说明高速贮存器。

高速寄存器RAM由9个字节的存储器组成。其中,第0、1字节是温度转换有效位,第0字节的低3位存放了温度的高位,高5位存放温度的正负值;第1字节的高4位存放温度的低位,后4位存放温度的小数部分;第2和第3个字节是DS18B20的与内部E2PROM的有关的TH和TL,用来存储温度上限和下限,可以通过程序设计把温度的上下限从单片机中读到TH和TL中,并通过程序再复制到DS18B20内部E2PROM中,同时TH和TL在器件加电后复制E2PROM的内容;第4个字节是配置寄存器,第4个字节的数字也可以更新;第5,6,7三个字节是保留的;第8字节为CRC校验值。字节地址编号寄存器内容功能0温度值低位LSB高5位是温度的正正负号,低3位为温度的高位1温度值高位MSB高4位为温度的低位,低4位为温度小数部分2高温度值(TH)温度上限,最保存在ROM中3低温度值(TL)温度下限,最保存在ROM中4配置寄存器5、6、7保留8CRC校验值

2、硬件连接DS18B20可以作为单片机外设,单片机为主器件,DS18B20为从器件。下图接法是单片机与一个DS18B20通信,单片机只需要一个I/O口就可以控制DS18B20,为了增加单片机I/O口驱动的可靠性,总线上接有上拉电阻。如果要控制多个DS18B20进行温度采集,只要将所有DS18B20的DQ全部连接到总线上就可以了,在操作时,通过读取每个DS18B20内部芯片的序列号来识别。

3、单总线数据传输原理对于DS18B20的程序设计,必须遵守单总线协议。单总线协议规定一条数据线传输串行数据,时序有严格的控制。DS18B20操作主要分初始化、写数据、读数据。

任务实施1.硬件电路2.程序设计(部分)

1.硬件电路

2.程序设计(部分)串口开始化voidserial_init(){TMOD=0x20;TL1=0xfd;TH1=0xfd;SCON=0x50;PCON=0xef;TR1=1;IE=0x00;P12=1;}

向DS18B20写一个字节voidDS18B20_Write_Byte(u8byte){ u8i=0; for(i=0;i8;i++) { P11=0; //下降沿产生写时间间隙 delay1us(); if(byte0x01)//把数据对应位的电平送到DQ引脚 { P11=1;} else { P11=0;} delay60us(); //延时60us,等待DS18b20读取引脚电平 byte=1; P11=1; //释放总线}}

//DS18B20读一个字节u8DS18B20_Read_Byte(void){ u8i; u8byte=0; for(i=0;i8;i++) { byte=1; P11=0; delay1us(); P11=1; //上升沿产生读时间间隙 delay7us(); //至少7us以后,读取DS18B20数据 if(P11) { byte|=0x80; } delay60us()