ds18b20温度报警器

合集下载

数字温度传感器DS18B20及其应用

数字温度传感器DS18B20及其应用

数字温度传感器DS18B20及其应用数字化技术推动了信息化的革命在传感器的器件结构上采用数字化技术,使信息的采集变得更加方便。

例如,对于温度信号采集系统,传统的模拟温度传感器多为铂电阻、铜电阻等。

每一个传感器的传输线至少有两根导线,带补偿接法需要三根导线。

如果对50路温度信号进行检测,就需要100根或150根导线接到采集端口,然后还要经过电桥电路、信号放大、通道选择、A/D转换等,才能将温度信号变成数字信号供计算机处理。

DS18B20是美国DALLAS公司生产的新型单总线数字温度传感器,如图1所示。

DS18B20采用3脚(或8脚)封装,从图1中看到,从DS18B20读出或写人数据仅需要一根I/O口线。

并且以串行通信的方式与微控制器进行数据通信。

该器件将半导体温敏器件、A/D 转换器、存储器等做在一个很小的集成电路芯片上,传感器直接输出的就是温度信号数字值。

信号传输采用两芯(或三芯)电缆构成的单总线结构。

一条单总线电缆上可以挂接若干个数字温度传感器,每个传感器有一个唯一的地址编码。

微控制器通过对器件的寻址,就可以读取某一个传感器的温度值,从而简化了信号采集系统的电路结构。

采集端口的连接线减少了50倍,既节省了造价,又给现场施工带来极大的方便。

DS18B20是实现单总线测控网络的关键器件,主要包括:寄生电源、温度传感器、64位激光ROM 和单总线接口、存放中间数据的高速暂存器RAM、用于存储用户设定温度上下限值的TH和TL触发器、存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。

DS18B20内部存储器由ROM、RAM和E2ROM组成,其中,ROM 由64位二进制数字组成,共分为8个字节,字节0的内容是该产品的厂家代号28H,字节1~字节6的内容是48位器件序列号,字节7是ROM前56位的CRC校验码。

由于64位ROM 码具有唯一性,在使用时作为该器件的地址,通过读ROM命令可以将它读出来。

基于DS18B20的简易温度报警器的设计

基于DS18B20的简易温度报警器的设计

www�ele169�com | 83电子基础0 引言温度是日常生活中极为重要的一个参数,所以对温度的检测的意义也不言而喻。

本设计是通过温度传感器给单片机系统提供了温度数据,然后再根据用户设置温度的上下限来判断是否报警从而提醒用户的注意。

1 设计方案图1为系统的设计框图。

根据实际需求,系统由主控单片机、显示模块、测温模块、报警模块及人机接口模块和电源等6部分组成。

主控模块单片机为核心,接收测温模块传来的数据并进行处理,通过报警模块和显示模块给出结果。

人机接口模块通过按键电路来实现,通过按键完成对系统的设置和修改等功能。

电源保证系统供电。

图1 设计框图2 硬件设计系统的结构可分为单片机最小系统、温度采集模块、数码管显示部分、声光报警模块、按键模块和电源模块等六个模块。

下面分别对每个模块进行说明。

■2.1 单片机控制模块图2 单片机最小系统单片机控制模块用STC89c52单片机作为控制器,STC89c52的正常工作需要时钟电路及复位电路作为单片机的最小系统。

电路如图2所示。

■2.2 温度采集模块温度采集模块使用DS18B20温度传感器实现。

该传感器可直接读出被测温度,并将读数以数字量的形式输入到单片机的I/O 口。

此外,如果需要提高精度,可以将多个DS18B20传感器连接在同一条总线上,而不会相互影响。

图3为DS18B20的内部框图。

图4为电路原理图。

图3 DS18B20内部框图图4 DS18B20电路原理图■2.3 数码管显示部分七段显示译码管分为共阳极数码管和共阴极数码管两种。

设计采用四位共阳极数码管实现。

具体电路如图5所示。

在本设计中运用了三极管作为反相器,因为共阳数码管的显示需要动态扫描进行位选,共阳数码管在高电平的情况下可以触发位选,选择动态扫描的方式数码管可以工作但是亮度基于DS18B20的简易温度报警器的设计吴坤,何英昊(大连理工大学城市学院,辽宁大连,116023)基金项目:大连理工大学城市学院教育教学研究基金一般项目“基于个性化培养的电子信息专业实践教学研究”(JXYJ2018008)。

基于单片机和DS18B20的多点温度检测报警系统

基于单片机和DS18B20的多点温度检测报警系统

基于单片机和DS18B20的多点温度检测报警系统摘要本文主要介绍以STC89C51单片机为上位机、以数字温度传感器DS18B20为温度采集元件的多点温度检测报警系统,其主要可以分为五个模块:温度检测模块、数据处理模块、温度显示模块、异常报警模块和系统设置模块。

该系统可以将各点的温度值实时的在上位机显示屏显示,还可以通过按键对各点的温度限值进行设定,当实际温度值超出系统温度限值时就会触发蜂鸣器进行报警。

该系统成本低、设备稳定,适用于家居、商场以及一些小型企业的仓库的温度检测与监视。

关键词单片机;数字温度传感器;温度采集与报警Multi-channel Temperature Detection Alarm System Based on Microcomputer and DS18B20引言随着我国人民生活水平的日益提升,人们越来越重视我们的人身安全问题。

现实生活中由于温度高于(或低于)温度限值而引发的火灾、爆炸等事故是人身安全的一重大隐患,显然有效地降低此类事故的发生显得格外重要,而这一目标的实现必须依靠先进的控制技术和设备对环境温度进行监控。

传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器的输出为模拟信号,必须利用A/D 转换器获得数字信号后才能进行数据的处理,这使得电路的设计较复杂,而且制作成本也比较高。

基于DS18B20数字温度传感器,设计出了一个温度测量、显示及报警系统。

该系统由51单片机STC89C51控制,并由液晶显示屏实时显示温度,也可设定系统温度的上限与下限,以便在温度超过或低于限值时进行报警。

1 数字温度传感器DS18B20的结构特征介绍1.1 DS18B20是一种集成化的数字温度传感器,广泛应用于实验室、仓库以及车间等场所,其主要特性如下。

(1)采用“单总线”接口方式;(2)将温度值转换成数字的速度很快;(3)电压适应范围较宽,电压范围:3.0~5.5V;(4)DS18B20内部完整的集成了传感器件和转换电路;(5)温度测量范围:55℃~125℃,在10℃~85℃时精度为±0.5℃;(6)DS18B20支持多点组网功能,可将多个DS18B20并联在一起,实现多点测温。

DS18B20智能温度控制器(附软件程序)

DS18B20智能温度控制器(附软件程序)

DS18B20智能温度控制器DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

DS18B20、 DS1822 “一线总线”数字化温度传感器同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。

DS1822的精度较差为± 2°C 。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

与前一代产品不同,新的产品支持3V~5.5V 的电压范围,使系统设计更灵活、方便。

而且新一代产品更便宜,体积更小。

DS18B20、 DS1822 的特性 DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。

可选更小的封装方式,更宽的电压适用范围。

分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822与 DS18B20软件兼容,是DS18B20的简化版本。

省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。

继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。

DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。

DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

18B20温控报警器制作与调试

18B20温控报警器制作与调试

项目5《18B20温控报警器制作与调试》5.1 项目描述和要求5.1.1 项目描述本项目基于AT89S51单片机的数字温度报警器系统。

以数字温度传感器18B20作为核心元件,采用LED数码管作为显示,以蜂鸣器作为报警器,该系统可以方便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。

DS18B20与AT89S51结合实现最简温度报警系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。

5.1.2 项目要求完成作品详细要求如下:1.质量要求:温度采集、报警准确,数码管显示效果稳定清晰、无乱码。

2.安全要求:作品无短路故障,正确使用仪器仪表,凡通电测试必须经过老师同意才能执行,遇到特殊情况立即断电并报告老师。

3.文明要求:不要携带任何饮料进入实训室,统一穿好校服、佩戴好校卡,进入实训室不喧哗吵闹,书包统一放置讲台旁边。

自觉遵守实训室规定进行项目作业。

4.环保要求:制作过程能重复利用的元器件要尽量重复使用,电路布局尽量紧凑不浪费板材,下课离开实训台请关闭实训台电源。

5.2 知识准备:5.2.1 了解温控报警器图5-1 图5-2温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。

在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。

比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。

没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。

数字温度传感器DS18B20详解

数字温度传感器DS18B20详解

一、概述传统的温度检测大多以热敏电阻为传感器,采用热敏电阻,可满足40℃至90℃测量范围,但热敏电阻可靠性差,测量温度准确率低,对于小于1℃的温度信号是不适用的,还得经过专门的接口电路转换成数字信号才能由微处理器进行处理。

目前常用的微机与外设之间进行的数据通信的串行总线主要有I2C总线,SPI总线等。

其中I2C总线以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线)。

这些总线至少需要两条或两条以上的信号线。

而单总线( 1-wire bus ),采用单根信号线,既可传输数据,而且数据传输是双向的,CPU 只需一根端口线就能与诸多单总线器件通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

因而,这种单总线技术具有线路简单,硬件开销少,成本低廉,软件设计简单,便于总线扩展和维护。

同时,基于单总线技术能较好地解决传统识别器普遍存在的携带不便,易损坏,易受腐馈,易受电磁干扰等不足,因此,单总线具有广阔的应用前景,是值得关注的一个发展领域。

单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。

主机或从机通过一个漏极开路或三态端口连至数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线。

单总线通常要求外接一个约为4.7K的上拉电阻,这样,当总线闲置时其状态为高电平。

DS18B20数字式温度传感器,与传统的热敏电阻有所不同的是,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度。

同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。

部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这也就缩短了开发的周期。

DS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:( 1 )采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

温度报警器ds18b20制作PPT

温度报警器ds18b20制作PPT

74HC373




型号 tPd PD 54S373/74S373 7ns 525mW 54LS373/74LS373 17ns 120mW 373 的输出端 O0~O7 可直接与总线相连。 当三态允许控制端 OE 为低电平时,O0~O7 为正常逻辑状态,可用 来驱动负载或总线。 当 OE 为高电平时,O0~O7 呈高阻态,即不驱动总线,也不为总线 的负载,但 锁存器内部的逻辑操作不受影响。 当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平 时,O 被锁存在已建立的数据电平。 当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度 被改善 400mV。
1地 GND 2触发 3输出 4复位 5控制电压 6门限(阈值) 7放电 8电源电压Vcc
ULN2003应用电路及中文资料
概述 功率电子电路大多要求具有大电流输出能力, 以便于驱动各种类型的负载。功率驱动电路 是功率电子设备输出电路的一个重要组成部 分。

输入回路的电阻有差别,ULN2003是2.7k,简单讲2003适 5v,驱动灌入电流:500mA
ne555的作用介绍
Pin 1 (接地) -地线(或共同接地) ,通常被连接到电路共 同接地。 Pin 2 (触发点) -这个脚位是触发NE555使其启动它的时间 周期。触发信号上缘电压须大于2/3 VCC,下缘须低于1/3 VCC 。 Pin 3 (输出) -当时间周期开始555的输出输出脚位,移至 比电源电压少1.7伏的高电位。周期的结束输出回到O伏左右的 低电位。于高电位时的最大输出电流大约200 mA 。 Pin 4 (重置) -一个低逻辑电位送至这个脚位时会重置定时 器和使输出回到一个低电位。它通常被接到正电源或忽略不用。 Pin 5 (控制) -这个接脚准许由外部电压改变触发和闸限电 压。当计时器经营在稳定或振荡的运作方式下,这输入能用来改 变或调整输出频率。 Pin 6 (重置锁定) - Pin 6重置锁定并使输出呈低态。当这 个接脚的电压从1/3 VCC电压以下移至2/3 VCC以上时启动这个 动作。 Pin 7 (放电) -这个接脚和主要的输出接脚有相同的电流输 出能力,当输出为ON时为LOW,对地为低阻抗,当输出为OFF时 为HIGH,对地为高阻抗。 Pin 8 (V +) -这是555个计时器IC的正电源电压端。供应电 压的范围是+4.5伏特(最小值)至+16伏特(最大值)。

DS18B20温度传感器资料

DS18B20温度传感器资料

DS18B20 单线温度传感器一.特征:●独特的单线接口,只需 1 个接口引脚即可通信●每个设备都有一个唯一的64位串行代码存储在光盘片上●多点能力使分布式温度检测应用得以简化●不需要外部部件●可以从数据线供电,电源电压范围为3。

0V至5.5V●测量范围从—55 ° C至+125 ° C(—67 ° F至257 ° F),从-10℃至+85 ° C的精度为0.5 °C●温度计分辨率是用户可选择的9至12位●转换12位数字的最长时间是750ms●用户可定义的非易失性的温度告警设置●告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)●采用8引脚SO(150mil),8引脚SOP和3引脚TO — 92封装●软件与DS1822兼容●应用范围包括恒温控制工业系统消费类产品温度计或任何热敏系统二.简介该DS18B20的数字温度计提供9至12位的摄氏温度测量,并具有与非易失性用户可编程上限和下限报警功能。

信息单线接口送入 DS1820 或从 DS1820 送出,因此按照定义只需要一条数据线(和地线)与中央微处理器进行通信.它的测温范围从-55 °C到 +125 ° C,其中从-10 °C至+85 °C可以精确到0。

5°C 。

此外,DS18B20可以从数据线直接供电(“寄生电源”),从而消除了供应需要一个外部电源。

每个 DS18B20 的有一个唯一的64位序列码,它允许多个DS18B20s的功能在同一1-巴士线。

因此,用一个微处理器控制大面积分布的许多DS18B20s是非常简单的。

此特性的应用范围包括 HVAC、环境控制、建筑物、设备或机械内的温度检测以及过程监视和控制系统。

三.综述64位ROM存储设备的独特序号。

存贮器包含2个字节的温度寄存器,它存储来自温度传感器的数字输出.此外,暂存器可以访问的1个字节的上下限温度告警触发器(TH和TL)和1个字节的配置寄存器。

DS18B20温度测量报警 设定温度上下限

DS18B20温度测量报警 设定温度上下限

DS18B20温度测量报警设定温度上下限分类:单片机2011-10-07 19:42 719人阅读评论(1) 收藏举报#include <reg52.h>#include <stdio.h>uchar DQ;uchar k;sbit ds=P2^4; //温度传感器引脚;sbit beep=P2^0; //蜂鸣器uint temp;float ftemp;uchar g1=22,g2=24,d1=20,d2=18;sbit b=P2^3; //定义按键;sbit a=P2^2; //定义按键;sbit E=P2^7;//使能信号;sbit RW=P2^6;//读写选择写指令RS=0;RW=0;D0~D7指令码;E高脉冲;sbit RS=P2^5;//数据/命令选择写数据RS=1;RW=0;D0~D7数据;E高脉冲uchar code table1[]="DS18B20 OK ! ";uchar code table2[]="TEMP IS: . ";//自定义字符显示'C ;uchar code table[8] = {0x16,0x09,0x08,0x08,0x08,0x09,0x06,0x00} ;uchar code table3[]="DS18B20 ERR0R !";uchar code table4[]="PLEASE CHECK !";uchar code table7[]="set standard "; uchar code table8[]=" tempreture ! "; uchar code table5[]="G1= ,G2= .";uchar code table6[]="D1= ,D2= .";void delay(uint z) //延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com) //液晶写指令;{P1=com;RS=0;RW=0;E=1;delay(5);E=0;delay(5);}void write_date(uchar date) //液晶写数据;{P1=date;RS=1;RW=0;E=1;delay(5);E=0;delay(5);}void chushi(){uchar f;write_com(0x80);f=0;while(table7[f]!=0){write_date(table7[f]);f++;}write_com(0x80+0x40);f=0;while(table8[f]!=0){write_date(table8[f]);f++;}}void init() //液晶初始化状态;{write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);chushi();}dsreset(void) //DS18B20复位初始化函数{uint i;ds=0;i=103;while(i>0) i--;ds=1;i=4;while(i>0) i--;DQ=ds;i=4;while(i>0) i--;return DQ;}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 i,j,dat;dat=0;for(i=1;i<=8;i++){j=tempreadbit();dat=(j<<7)|(dat>>1);}return(dat);}void tempwritebyte(uchar dat) //写一个字节数据函数{uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb) //写1{ds=0;i++;i++;ds=1;i=8;while(i>0) i--;}else //写0{ds=0;i=8;while(i>0) i--;ds=1;i++;i++;}}}void tempchange(void) //DS18B20 开始获取温度并转换{dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0x44);}uint get_temp() //读取寄存器中存储的温度数据{uchar a,b;dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();b=tempread();temp=b;temp<<=8;temp=temp|a;ftemp=temp*0.0625;temp=ftemp*10+0.5;ftemp=ftemp+0.05;return temp;}void init_com(void) //串口初始化;{PCON=0x00;SCON=0x50;TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;}void comm(char *parr) //串口发送;do{SBUF=*parr++;while(!TI);TI=0;}while(*parr!='\0');}void zdy() //自定义字符显示’C;{ uchar i;write_com(0x40);for(i=0;i<9;i++)write_date(table[i]);write_com(0x80+0x40+14);write_date(0x00);}void ok() //温度传感器存在显示温度;{uchar i;write_com(0x80);for(i=0;i<16;i++)write_date(table1[i]);write_com(0x80+0x40);for(i=0;i<16;i++)write_date(table2[i]);}void error() //温度传感器不存在显示错误;uchar i;write_com(0x80);for(i=0;i<16;i++)write_date(table3[i]);write_com(0x80+0x40);for(i=0;i<16;i++)write_date(table4[i]);}void display() //液晶显示温度;{write_com(0x80+0x40+10);write_date(temp/100+0x30); write_com(0x80+0x40+11);write_date(temp%100/10+0x30); write_com(0x80+0x40+13);write_date(temp%100%10+0x30); }void fmq(uint i) //蜂鸣器滴答;{beep=0;delay(i);beep=1;}void dywd(uchar add,uchar date) //定义温度液晶显示;{uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_date(0x30+shi);write_date(0x30+ge);}void di() //蜂鸣器滴答;{beep=0;delay(100);beep=1;}uint keyscan() //按键扫描,调标准温度;{uchar f;if(a==0){delay(10);if(a==0){k++;while(!a);di();write_com(0x80);f=0;while(table5[f]!=0){write_date(table5[f]);f++;}write_com(0x80+0x40); f=0;while(table6[f]!=0){write_date(table6[f]);f++;}dywd(4,g1);dywd(12,g2);dywd(4+0x40,d1); dywd(12+0x40,d2);if(k==1){write_com(0x80+5); write_com(0x0f);}if(k==2){write_com(0x80+13); write_com(0x0f);}if(k==3){write_com(0x80+0x40+5); write_com(0x0f);}if(k==4){write_com(0x80+0x40+13); write_com(0x0f);}if(k==5){write_com(0x0c);}}}if(k!=0){if(b==0){delay(10);if(b==0){while(!b);di();if(k==1){g1--;if(g1==0)g1=60;dywd(4,g1);write_com(0x80+5);}if(k==2){g2--;if(g1==0)g2=60;dywd(12,g2);write_com(0x80+13);}if(k==3){d1--;if(g1==0)d1=60;dywd(4+0x40,d1);write_com(0x80+0x40+5); }if(k==4){d2--;if(g1==0)d2=60;dywd(12+0x40,d2);write_com(0x80+0x40+13); }}}}return g1;return g2;return d1;return d2;}void warn(uint temp) //温度报警;{uchar a=d2,b=d1,c=g1,d=g2;if(temp<=a*10) //灯1,2 亮;{P0=0xfc;fmq(250);display();}else if((temp<b*10)&&(temp>=a*10)) //灯3 亮; {P0=0xfb;fmq(20);display();}else if((temp<c*10)&&(temp>=a*10)) //灯4,5 亮;{P0=0xe7;display();beep=1;}if((temp>c*10)&&(temp<d*10)) //灯6 亮;{P0=0xdf;fmq(20);display();}else if(temp>=d*10) //灯7,8 亮;{P0=0x3f;fmq(250);display();}}void main() //主函数{uchar buff[4];init_com(); //串口初始化;init(); //液晶初始化状态;dsreset(); //DS18B20复位初始化函数;tempchange(); //DS18B20 开始获取温度并转;get_temp(); //读取寄存器中存储的温度数据while(1){keyscan();if(k==5){ok(); //温度传感器存在程序;do{tempchange();sprintf(buff,"%f",ftemp);comm(buff); //串口发送;zdy();warn(get_temp());}while(!DQ);error(); //温度传感器不存在程序;do{fmq(1);dsreset();P0=0x00;}while(DQ);}}。

用数码管与DS18B20设计温度报警器

用数码管与DS18B20设计温度报警器

#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P3^6;sbit BEEP=P3^7;sbit HI_LED=P1^4;sbit LO_LED=P1^5;bit HI_Alarm=0,LO_Alarm=0;bit DS18B20_IS_OK=1;uchar codeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; / /数码管共阴极段码uchar code df_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9}; //温度小数位对照表ucharCurrentT=0;//温度整数部分ucharDisplay_Digit[]={0,0,0,0}; //数码管待显示的各位温度ucharTemp_Value[]={0x00,0x00}; //DS0832读取的温度值uintTime0_Count=0; / / 定时器中断计数char Alarm_Temp_HL[2]={70,-20};/***********延时程序*************/void Delay(uint x){while(--x);}/**********DS18B20初始化********/uchar Init_DS18B20(){uchar status;DQ=1;Delay(8);DQ=0;Delay(90);DQ=1;Delay(8);status=DQ;Delay(100);DQ=1;return status;}/**********DS18B20读字节********/ uchar ReadOneByte(){uchar i,dat=0;DQ=1;_nop_();for(i=0;i<8;i++){DQ=0;dat >>=1;DQ=1;_nop_();_nop_(); if (DQ) dat |=0x80; Delay(30); DQ=1;}return dat;}/**********DS18B20写字节********/void WriteOneByte(uchar dat){uchar i;for(i=0;i<8;i++){DQ=0;DQ=dat & 0x01;Delay(5); DQ=1; dat>>=1; }}/**********从DS18B20读取温度********/void Read_Temperature(){if( Init_DS18B20()==1)DS18B20_IS_OK=0;else{WriteOneByte(0xCC);WriteOneByte(0x44);Init_DS18B20();WriteOneByte(0xCC);WriteOneByte(0xBE);Temp_Value[0]=ReadOneByte();Temp_Value[1]=ReadOneByte();DS18B20_IS_OK=1;}}/**********给DS18B20设置报警值********/void Set_Alarm_Temp_Value(){Init_DS18B20();WriteOneByte(0xcc); //跳过序列号WriteOneByte(0x4e); //将设定的温度报警值写入DS18B20WriteOneByte(Alarm_Temp_HL[0]); //写THWriteOneByte(Alarm_Temp_HL[1]); //写TLWriteOneByte(0x7f); //12位精度Init_DS18B20();WriteOneByte(0xcc); //跳过序列号WriteOneByte(0x48); //将温度报警值存入DS18B20}/**********温度值显示******************/void Display_Temperature() //显示温度{uchar i;uchar t=150; //延时值uchar ng=0,np=0; //负数标示,及负号显示位置char Signed_Current_Temp;if((Temp_Value[1]&0xf8)==0xf8) //如果为负数,取反加1;设置负数标示及负号显示位置{Temp_Value[1]=~Temp_Value[1];Temp_Value[0]=~Temp_Value[0]+1;if(Temp_Value[0]==0x00)Temp_Value[1]++;ng=1;np=0xfd;}Display_Digit[0]=df_Table[Temp_Value[0]&0x0f]; //查表显示温度小数位CurrentT=((Temp_Value[0]&0xf0)>>4)|((Temp_Value[1]&0x07)<<4);Signed_Current_Temp=ng? -CurrentT : CurrentT;HI_Alarm= Signed_Current_Temp >= Alarm_Temp_HL[0] ? 1:0;LO_Alarm= Signed_Current_Temp <= Alarm_Temp_HL[1] ? 1:0;Display_Digit[3]=CurrentT/100;Display_Digit[2]=CurrentT%100/10;Display_Digit[1]=CurrentT%10;if(Display_Digit[3]==0) //高位为0,不现实,负号后移{ Display_Digit[3]=10;np=0xfb;if(Display_Digit[2]==0){Display_Digit[2]=10;np=0xf7;}}for(i=0;i<30;i++) //刷新数码管显示温度值{P0=0X39;P2=0X7F;Delay(t);P2=0XFF;P0=0X63;P2=0XBF;Delay(t);P2=0XFF;P0=DSY_CODE[Display_Digit[0]];P2=0XDF;Delay(t);P2=0XFF;P0=(DSY_CODE[Display_Digit[1]])|0X80;P2=0XEF;Delay(t);P2=0XFF;P0=DSY_CODE[Display_Digit[2]];P2=0XF7;Delay(t);P2=0XFF;P0=DSY_CODE[Display_Digit[3]];P2=0XFB;Delay(t);P2=0XFF;if(ng){P0=0X40;P2=np;Delay(t);P2=0XFF;}}}/**********定时器0中断,控制报警声音********/ void T0_INT()interrupt 1{TH0=-1000/256;TL0=-1000%256;BEEP=!BEEP;if(++Time0_Count==400){Time0_Count=0;if(HI_Alarm)HI_LED=~HI_LED;else HI_LED=1;if(LO_Alarm)LO_LED=~LO_LED;else LO_LED=1;}}void main(){IE=0X82;TMOD=0X01; //方式1计数TH0=-1000/256;TL0=-1000%256;TR0=0;HI_LED=1;LO_LED=1;Set_Alarm_Temp_Value();Read_Temperature();Delay(50000); Delay(50000);while(1){Read_Temperature();if(DS18B20_IS_OK){if(HI_Alarm==1||LO_Alarm==1)TR0=1; else TR0=0;Display_Temperature();}else{P0=P2=0X00;}}}。

基于DS18B20的温度报警器设计

基于DS18B20的温度报警器设计

基于DS18B20的温度报警器设计温度报警器是一种用于监测环境温度并在温度超过设定阈值时发出警报的设备。

基于DS18B20的温度报警器设计可以通过连接DS18B20数字温度传感器和微控制器来实现。

以下是一个基于DS18B20的温度报警器设计的详细描述。

1.硬件设计:-DS18B20温度传感器:DS18B20是一款数字温度传感器,其具有高精度、数字输出、单线传输等特点。

它可以直接与微控制器连接,并通过单线总线协议进行通信。

将其中一根引脚连接到微控制器的GPIO引脚上,并使用上拉电阻将其拉高,以实现简单的单线通信。

- 微控制器:选择一款适合的微控制器,例如Arduino、Raspberry Pi等。

微控制器应该具有足够的GPIO引脚用于连接其他外设,并具备相应的数据处理能力。

-报警器:可以选择蜂鸣器、发光二极管(LED)或其他适合的报警器作为报警设备。

这些设备应具有较大的声光输出,以便及时警示。

2.软件设计:-初始化:在程序中初始化设备的GPIO引脚,并设置它们的输入输出方式。

同时,初始化DS18B20传感器,启动单线总线通信。

-温度读取:通过发送相应的命令,从DS18B20传感器读取当前的温度值。

DS18B20的温度数据以二进制形式存储,并使用一定的协议进行传输。

通过解析二进制数据,并进行适当的计算,可以获得温度值。

-温度比较:将读取到的温度值与设定的阈值进行比较。

如果温度超过阈值,则触发报警。

-报警控制:当温度超过设定阈值时,触发报警器的开启。

该过程涉及控制报警设备的GPIO引脚,使其输出足够的声音或亮度,以引起用户的注意。

-报警复位:当温度降低到设定阈值以下时,关闭报警器。

通过控制报警设备的GPIO引脚,将其输出设置为低电平,以停止声音或亮度。

3.报警策略:-阈值设置:根据具体应用的需求,设定适当的温度阈值。

根据环境和使用要求,选择报警温度和报警时刻。

可以通过软件界面或外部调节器调整阈值。

-报警反馈:为了确保用户能够及时获得报警信息,可以通过增加报警设备的数量或设置报警通知的方式来提高报警反馈。

数码管与DS18B20设计的温度报警器

数码管与DS18B20设计的温度报警器

漪I出买魏电气与电子信息工程学院《单片机》课程设计报告题目:数码管与DS18B20 设计的温度报警器专业班级学号:姓名:指导教师:设计时间:2013年12月23日一2013年12月27日设计地点:K2-407 单片机、微机原理实验室2013年11月20日单片机课程设计成绩评定表答辩或质疑记录:1、2、成绩评定依据:课程设计考勤情况(5%):课程设计仿真测试情况(15 %)课程设计答辩情况(30%):完成设计任务及报告规范性(50 %):最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:____________________2013 年12 月_______________ 日课程设计任务书2013〜2014 学年第1学期专业班级:电气工程及其自动化2013级(专升本)班指导教师:工作部门:电气与电子信息工程学院电气自动化教研室一、课程设计题目单片机课程设计二、课程设计内容(含技术指标)1•设计目的及要求(1)根据具体设计课题的技术指标和给定条件,以单片机为核心器件,能独立而正确地进行方案论证和电路设计,完成仿真操作。

要求概念清楚、方案合理、方法正确、步骤完整;(2)熟悉、掌握各种外围接口电路芯片的工作原理和控制方法;(3)熟练使用单片机汇编语言或C51进行软件设计;(4)熟练使用Proteus、Keil软件进行仿真电路测试;(5)熟练使用Protel软件设计印刷电路板;(6)学会查阅有关参考资料和手册,并能正确选择有关元器件和参数;(7)编写设计说明书,参考毕业设计论文格式撰写设计报告。

2•设计内容(题目名称:数码管与DS18B20设计的温度报警器)采用DS18B20温度数字式传感器,对被测温度进行实时监控,并将所监控到的温值实时的传输到AT89C51单片机,由AT89C51单片机对温度数据进行处理,然后由码管显示。

若被监测的温度低于-10 c时,数码管实时显示当前温度,低温LED报警灯闪烁,同时系统发出报警声,此时若闭合开关K1 蜂鸣器不发出警报,低温LED 报警灯任然闪烁;若被监测的温度高于10 C时,数码管实时显示当前温度,高温LED报警灯闪烁,同时系统发出警报声,此时若闭合开关K1 蜂鸣器不发出警报,高温LED 报警灯任然闪烁;若被监测温度在-10 C ~ 10 C之间,系统正常工作,数码管实时显示当前温度。

基于DS18B20的温度报警器设计讲解

基于DS18B20的温度报警器设计讲解

毕业设计论文的温度报警器设计基于DS18B20电子信息工程系系姓名电子信息工程技术康志凌专业1201043206 学号122 班级电子信息职称讲师指导教师徐敏N2015.04.08 2014.10.08 设计时间-基于DS18B20的温度报警器设计摘要本设计以AT89C51单片机为核心,设计了一个温度测量报警系统,可以方便的实现温度采集和显示。

它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工农业中的温度测量及报警。

本设计由AT89C51单片机、DS18B20温度传感器和LED显示器组成,可以直观的显示测量的温度。

本设计运行过程中,如果外界温度低于-20℃或高于70℃,系统将出发蜂鸣器,产生报警声音,且对应的LED同步闪烁。

关键词:AT89C51,DS18B20,传感器,温度报警器I江苏信息职业技术学院毕业设计(论文)目录摘要 (I)目录 (II)第1章引言 (1)第2章方案设计 (2)第3章 DS18B20简介 (3)3.1 DS18B20性能指标 (3)3.2 DS18B20的封装及内部结构 (4)3.3 DS18B20工作原理及应用 (4)3.4 控制器对DS18B20操作流程 (5)第4章硬件电路设计 (7)4.1 AT89C51 (8)4.2 晶振电路 (9)4.3 复位电路 (9)4.4 报警电路 (10)4.5 74LS245 (10)4.6 显示电路 (11)第5章软件设计 (12)5.1 主程序模块 (12)5.2 程序说明 (12)第6章仿真结果 (21)参考文献 (23)致谢 (24)IIDS18B20的温度报警器设计基于引言第1章随温度是一个十分重要的物理量,对他的测量与控制有着十分重要的意义。

人民也迫切需要监测着现代化工农业技术的发展及人民对生活环境要求的提高,在人类的生活环境中,温度扮演着极其重要的角色。

无论你生活在.和控制温度世纪工业革命以来,18从事什么工作,无时无刻不在跟温度打着交道。

数字式温度传感器DS18B20

数字式温度传感器DS18B20

第三步:存储器操作命令
温度转换(44H):启动在线DS18B20作温度A/D转换。 读数据(BEH):从暂存器读12位温度值和CRC值。 写数据(4EH):将数据写入暂存器的第2和第3字 节 复制(48H):将暂存器的第3和第4字节复制到 EERAM中。 读EERAM(B8H):将EERAM内容写入暂存器的 第2和第3字节。 读电源供电方式(B4H):了解DS18B20的供电方 式。
读出的数据为16进制,可以根据自己程 序中需要进行处理,例如格式转换、存 储、显示、运算等等。
例程-硬件和软件流程
引脚排列
具有两种封装形式: 引脚说明: GND 地 DQ 数字输入输出 VDD 可选的VDD NC 空引脚 DNC 不连接
DS18B20的三个主要数据部件
1、64位激光(lasered)ROM 2、温度灵敏元件 3、非易失性温度告警触发器TH和TL
关于寄生电容
当I/O或VDD引脚为高电平时,这个电路取得 电源。只要符合指定的定时和电压要求,I/O 将提供足够的功率。 寄生电源的优点是双重的: 1)利用此引脚,远程温度检测无需本地电源 2)缺少正常电源条件下也可以读ROM
存储器结构
存储器由一个便签式暂 存RAM和一个非易失性、 电可擦除EERAM组成, 见右图。
关于CONFIG存储器的说明
实际上,DS18B20的精度可以设定,9~12位,是 由CONFIG存储器来决定的。定义如下:
0 R1 R0 1 1 1 1 1
温度数据与温度的关系
第四步:处理数据
DS18B20简介
DS18B20是美国DALLAS公司生产的单线数 字温度传感器,具有如下特点: 1、一线制器件——独特的接口,使分布式温度 检测得以简化。 2、每片DS18B20都有唯一的产品号(64位) 3、温度测量范围为-55˚C~+125˚C。 4、可达12位的数字值,分辨率为0.0625˚C 5、用户可定义的,非易失性的温度告警设置

DS18B20温度报警器的设计

DS18B20温度报警器的设计
R3
220 1 2 3 4 5 6 7 8
D1
高温报警
R4
220
D2
低温报警
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C 声音报警电路如图 7 所示,蜂鸣器采用有源蜂鸣器,当有电流驱动时发出报 警声音,单片机作为微控制器对外的驱动负载的能力有限,P3 口每个引脚对外 驱动电流最大仅为 8mA,因此通过 P3.7 引脚控制 PNP 型三极管 9012 的基极放 大,当 P3.7 为低电平时,三极管导通,蜂鸣器发声。
18
XTAL2
9
RST
29 30 31
PSEN ALE EA
1 2 3 4 5
P1.0 P1.1 P1.2 P1.3
R2
图 3 显示电路
(2)时钟电路 时钟电路如图 4 所示,时钟电路是控制器必不可少的主要电路,系统主频采 用 12MHz 晶体振荡器,外加连个 30pF 瓷片电容,瓷片电容中间接地,瓷片电 容的作用是为了让晶振电路快速起振。 这三个元件配合内部已有的时钟电路为单 片机提供工作的振荡节拍信号。
图 13 系统仿真效果图
(2)硬件设计 系统使用万能板,使用导线连接电路,焊接过程中确保电路连接可靠。程序 下载使用下载板。实物图如图 14 所示。
图 14 实物图
5.总结
6.参考文献
[1] 关增建,指南针理论在中国历史上的演变,自然科学史研究, 24(2),10-15,2005. [2] 刘玥.一种高精度电子罗盘的设计[J]. 应用科技,2011,38(2):42-46. [3] 龚长青,王清. 单片机控制系统的硬件抗干扰研究[J]. 科技信 息,2010,(5):98+92. [4] 胡修林,杨奇,用磁场传感器 KMZ52 设计的电子指南针,国外电子元器 件,8(3),44.46,2004. [5] 刘素,刘鲁源,韩尧松. 基于 KMZ52 的电子指南针设计[J]. 电子产品世 界,2005,(7):90-92+97. [6] 胡宁博,李剑,赵榉云,基于 HMC5883L 的电子罗盘设计,传感器世 界,11(6),35-38,2011. [7] 徐淑明. 7800 系列集成稳压电路的分析[J].丽水师范专科学校学 报,1999,05(2):14-15. [8] 林士伟,于军,孙陆梅.液晶显示器与单片机接口的设计[J].吉林化工学院学 报,2005,22(3):50-52. [9] 胡准庆,郭世勇,李广顺等.液晶显示器与单片机接口技术[J]. 电子工程 师,1999,(6):21-23. [10] 管志宁,地磁场与磁力勘探,地质出版社,2005.

isd4004 ds18b20 89c52温度报警器

isd4004 ds18b20 89c52温度报警器

摘要温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快的开发和广泛的应用。

本文设计了一种基于STC89C52单片机的温度检测及报警系统。

该系统将多个单总线温度传感器DS18B20并接在控制器的一个端口上,对各个传感器温度进行多路循环采集,将采集到的温度值与设定值进行比较,当超出设定的上限温度时,通过语音报警系统发出报警信号。

该系统设计和布线简单,结构紧凑,体积小,重量轻,抗干扰能力强,性价比高,扩展方便,在大型仓库,工厂,智能化建筑等领域的多点温度检测中有广阔的应用前景。

关键词:数字温度传感器;DS18B20;STC89C52。

AbstractTemperature detection and control of industrial production process, one of the more typical applications, with sensors in production and life is more widely used, using a new single-bus digital temperature sensor to achieve the test and control the temperature more rapidly development, this paper is designed based on STC89C52 temperature detection and alarm systems. The system will be more than a single-bus temperature sensor DS18B20 and connected to a port on the controller, the temperature sensors on each loop collection, the temperature will be collected to compare with the set value, when the temperature exceeds the upper limit set , Through the buzzer alarm. The system design and layout simple and compact structure, small size, light weight, anti-jamming capability, cost-effective to expand convenience, in large warehouses, factories, construction and other areas of intelligent multi-point temperature measurement in a wide range of applications prospects.Key words: digital temperature sensor; DS18B20; STC89C52.目录摘要 (I)Abstract (II)第一章绪论 (1)1.1课题意义和发展情况 (1)1.2单片机的概述 (3)第二章设计方案的论证 (5)2.1主控制器的选择 (5)2.2温度传感器的选择 (6)2.3语音报警模块的选择 (7)2.4系统总体设计方案: (8)第三章系统的硬件设计 (9)3.1 测温电路的设计 (9)3.2 ISD4004原理 (16)3.3 LCD1602显示电路 (19)3.4 最小系统电路设计 (23)3.5 实时时钟电路 (24)3.6存储部分采用AT24C64来存储数据 (24)第四章系统的软件设计 (26)4.1主程序设计 (26)4.2部分程序设计 (27)第五章结论与展望 (37)参考文献 (39)附录:设计部分程序 (41)第一章绪论1.1课题意义和发展情况1.1.1选题的意义,内容及背景防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。

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