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

合集下载

基于DS18B20的温度报警器设计教材

基于DS18B20的温度报警器设计教材

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

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

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

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

关键词:AT89C51,DS18B20,传感器,温度报警器江苏信息职业技术学院毕业设计(论文)目录摘要 (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)基于DS18B20的温度报警器设计第1章引言温度是一个十分重要的物理量,对他的测量与控制有着十分重要的意义。

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

无论你生活在哪里,从事什么工作,无时无刻不在跟温度打着交道。

基于DS18B20的温度报警器设计说明

基于DS18B20的温度报警器设计说明

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

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

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

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

关键词:AT89C51,DS18B20,传感器,温度报警器目录摘要 (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)第1章引言温度是一个十分重要的物理量,对他的测量与控制有着十分重要的意义。

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

无论你生活在哪里,从事什么工作,无时无刻不在跟温度打着交道。

子18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。

基于DS18B20温度传感器的恒温报警电路的设计

基于DS18B20温度传感器的恒温报警电路的设计

基于DS18B20温度传感器的恒温报警电路的设计任琴秦冰刘亦佳(武汉军械士官学校,湖北武汉430075)随着社会各方面的发展,温度的测量和控制有着十分重要的意义,本电路系统就具有温度采集,高温报警,恒温控制等功能,其硬件部分可以分为主控电路、温度数据采集、温度显示、过限报警和系统电源几个主要部分。

软件部分的编程可以选择单片机C语言,系统本身的全部控制等方面功能能够很好的实现。

1系统硬件设计1.1硬件构成系统控制单元是以STC12C5A60S2单片机基本工作模块为核心,其它外围电路主要包括:按键控制模块,温度监测模块,报警模块,数字显示模块,散热模块,电源供电模块。

其结构框图如图1所示。

图11.2主要硬件电路模块1.2.1单片机最小系统本系统的主控模块采用STC12C5A60S2作为主控芯片,STC12C5A60S2是STC生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。

内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合。

1.2.2系统供电电路系统供电原理如图2所示,采用+5V电压供电。

本设计采用输出电压为9V的变压器。

图21.2.3按键控制电路本系统采用3个按键实现对上限和下限温度的设置及调整。

1.2.4温度检测电路本系统温度检测使用的是DS18B20温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

1.2.5报警电路此设计主要是监测系统出现温度过高而设计报警系统,正常使用中蜂鸣器不会响,当检测温度超出设置的上限温度或下限温度时,电路就会进入报警状态,蜂鸣器滴滴响15s,且继电器动作,指示灯亮起,以引起注意。

其电路组成如图3所示。

1.2.6数字显示电路在单片机人机交流的界面中,输出方式主要包含了下面几种,分别是液晶显示器、发光管以及LED数码管。

南京工程学院单片机课程设计《基于DS18B20的测温报警器》

南京工程学院单片机课程设计《基于DS18B20的测温报警器》

图2 51单片机内部结构图3 51单片机双列直插封装方式的引脚I/O口说明:图4 晶振电路上电复位按键复位图5 51单片机的两种复位电路DS18B20介绍2. 引脚封装图 6 DS18B20引脚封装及定义图3.硬件连接图7 DS18B20典型电路4.工作原理图8 64位光刻ROM各位定义图9 高速暂存器RAM以上这些指令分别涉及DS18B20的ROM和RAM图10 DS18B20内部温度的存储格式图11 串口通信电路图12 按键电路图13 报警电路图14 显示电路74HC595简介:图15 74hc595管脚图图16 整体电路图图17 PCB布线图图18 课设实际使用PCB布线图DS18B20工作程序:/*******************************************************************/ /*程序名:18B20.H */ /*功能:对ds18b20的控制,时期能够正确检测当前环境实时温度并转换处理温度*/ /*包括延时函数和温度显示数据的转换函数 */ /*******************************************************************/ #define uchar unsigned char#define uint unsigned intsbit ds=P3^4; //引脚定义uint temp;float f_temp;uint temperature[4]={0};void delay (uint count) //延时函数{unsigned int i;while (count){i =200;while (i>0) i--;count--;}}void dsreset (void) // 发送复位和初始化{unsigned int 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 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){ds=0; // 写0i++; i++;ds = 1;i = 8; while (i>0) i--;}else{ds = 0; // 写0i = 8; while (i>0) i--;ds = 1;i++; i++;}}}void tempchange(void) // ds1820开始转换{dsreset (); // 复位delay (1); // 延时tempwritebyte(0xcc); // 跳过序列号命令tempwritebyte(0x44); // 发转换命令 44H, }uint get_temp(void) // 读取温度{uchar a,b;dsreset (); // 复位delay (1); // 延时tempwritebyte(0xcc); // 跳过序列号命令tempwritebyte(0xbe); // 发送读取命令a = tempread(); // 读取低位温度b = tempread(); //读取高位温度temp=b;temp<<=8;temp=temp|a;f_temp=temp*0.0625;temp=f_temp*10+0.5;f_temp=f_temp*10+0.05;return temp; //返回测量值}void translate(uint t) //显示数据转换函数{temperature[0]=t/100;temperature[1]=t%100/10;temperature[2]=t%100%10;temperature[3]=1000;}主函数功能程序:/*******************************************************************/ /*程序名:main hanshu.c *//* 功能:实时测量温度,超过上下限报警,报警温度可手动调整。

基于DS18B20温度传感器的显示及报警系统设计

基于DS18B20温度传感器的显示及报警系统设计

摘要随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测与显示系统应用于诸多领域。

传统的温度检测以热敏电阻为温度敏感元件。

热敏电阻的成本低,需要外加信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。

与传统的温度计相比,这次设计的是基于DS18B20的数字温度计,它具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。

在本设计中选用STC89C52型单片机作为主控制器件,采用DS18B20数字温度传感器作为测温元件,通过4位共阳极LED数码显示管并行传送数据,实现温度显示。

通过按键设置温度上下限报警值,然后用不同颜色的LED灯报警。

本设计的内容主要分为两部分,一是对系统硬件部分的设计,包括串口下载电路、按键输入电路、温度采集电路和显示电路;二是对系统软件部分的设计,应用C语言实现温度上下限报警值的设定、温度的采集与显示。

通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成该系统的总体设计。

其系统构成简单,信号采集效果好,数据处理速度快,便于实际监测使用。

关键词:单片机STC89C52;温度传感器DS18B20;LED数码管;数字温度计AbstractAlong with the present information technology's swift development and traditional industry transformation's gradual realization, able to work independently of the temperature detection and display system used in many other fields. Traditional temperature examination takes thermistor as temperature sensitive unit. Thermistor's cost is low, needs the signal processing electric circuit, moreover the reliability is relatively bad, the temperature measurement accuracy is low, the examination system also has certain error. Compares with the traditional thermometer, what this design is based on the DS18B20 digital thermometer, it has the reading to be convenient, the temperature measurement scope is broad, the temperature measurement is precise, the digit demonstrated that applicable scope wide and so on characteristics.Used in the design STC89C52MCU as the main control device, digital temperature sensor DS18B20 as the temperature components of the anode through the four LED digital display tube parallel transmission of data, to achieve temperature display. This design's content mainly divides into two parts; first, to system hardware part design, including temperature gathering electric circuit and display circuit; Second, to the system software part's design, realizes temperature gathering and the demonstration using the C language. DS18B20 measured by direct reading temperature values and transfer Data into MCU and output to show his is the design of the Digital Thermometer. Its system constitution is simple, the effect of signal gathering is good, the speed of data processing is quick at al it is advantageous for the actual examination use.Keywords: MCU STC89S52; DS18B20; LED; Digital Thermometer目录第一章绪论 (3)1.1课题背景及来源 (3)1.2课题内容及要求 (3)第二章系统整体设计 (4)2.1系统设计方案论证 (4)第三章系统的硬件选择及设计 (5)3.1主控制器的设计 (5)3.2温度采集电路的设计 (5)3.3温度显示电路的设计 (9)第四章系统的软件设计 (11)4.1概述 (12)4.2程序流程图 (12)4.3 控制源程序 (14)第五章系统调试 (14)结论 (36)致谢 (36)参考文献 (37)第一章绪论1.1课题背景及来源单片机自1976年由Intel公司推出MCS-48开始,迄今已有三十多年了。

基于DS18B20的温度监控报警系统

基于DS18B20的温度监控报警系统

二 硬件电路设计
2.1 系统方案论证
2.1.1 应用普通温度传感器的温度控制报警系统: 使用普通温度传感器的温度控制报警系统工作原理如下图 2-1 所示。 采用热敏电阻, 可满足 40℃至 90℃测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测 1℃的 信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如 AD590,LM35 等。但 这些芯片输出的都是模拟信号,必须经过 A/D 转换后才能送给单片机,这样就使得测温装 置的结构较复杂。另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量。 即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。
1.2 功能介绍
笔者设计的这一款温度控制报警器能够显示即时测量温度,并进行监控,能方便直观 的设置报警温度的上下限,当温度值超过或者低于设置的上下限时,能够进行报警和降温 处理。该系统使用 DS18B20 集成温度传感器测温,七段数码管显示温度和温度上下限, AT89C52 单片机进行温度控制处理。
基于 DS18B20 传感器的温度监控报警系统
摘 要
DS18B20 是一种高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用 户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使 用经验, 介绍了 DS18B20 数字温度传感器在单片机下的硬件连接及软件编程, 并给出了软 件流程图。 该系统芯片使用了 ATMEL 公司的 AT89C51 单片机和 DALLAS 公司的 DS18B20 数字温度 传感器。该系统可应用于微机机箱温度控制、仓库测温、楼宇空调控制和生产过程监控等 领域。 关键字:温度测量; 单总线; 数字温度传感器; 单片机
九州职业技术学院 05 届专科生毕业设计

用数码管与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的数字温度计设计一、课程设计目的1.培养学生文献检索的能力,如何利用Internet检索需要的文献资料。

2.培养学生综合分析问题、发现问题和解决问题的能力。

3.培养学生综合运用知识的能力和工程设计的能力。

4.培养学生理论联系实际的能力。

5.提高学生课程设计报告撰写水平。

二、设计内容、技术条件和要求1设计内容数字温度计的设计要能实现温度的实时采集与显示,以AT89S51单片机为核心芯片,使用DS18B20数字温度传感器采集环境温度,并通过一组4位共阴极数码管将温度显示出来,也可用LM1602液晶显示屏。

方案一:使用按钮控制温度的采集与显示。

方案二:使用定时控制温度的采集与显示,时间间隔1S。

2 设计要求•设计单片机最小系统(包括复位按钮、晶振电路等);•DS18B20应用电路设计。

•按键电路设计。

•可使用实验室的实验箱实物实现,也可使用仿真软件Proteus实现。

•绘制实现本设计内容的硬件电路(原理图),系统的组成框图。

•编写本课程设计内容的软件设计(包含程序流程图和对程序注释)。

三、总体设计思想本设计以检测温度并显示温度提供上下限报警为目的,按照系统设计功能的要求,确定系统由5个模块组成:主控器[4]、测温电路,报警电路,按键电路及显示电路。

系统以DS18B20为传感器用以将温度模拟量转化为电压数字量以总线传入单片机,以AT89S51为主芯片,在主芯片对DS18B20传入的温度值进行处理,由单片机程序控制,将经处理后的温度由LM1602液晶显示屏显示出来。

图3-1 数字温度计设计总体的原理图四、硬件设计1、硬件设计图见附件。

2、单片机复位电路工作原理及设计。

硬件图如下图一原理是通过使复位端经电阻与Vcc电源接通而产生按键复位电平,保证复位信号高电平持续时间大于2个机器周期。

3、单片机晶振电路工作原理及设计硬件图如下图二晶振电路是提供系统时钟信号。

为了各部分的同步应当引入公用的外部脉冲信号作为振荡脉冲。

基于DS18B20的多点温度测量及报警课程设计报告

基于DS18B20的多点温度测量及报警课程设计报告

《微型计算机控制技术》课程设计报告课题名称多点温度检测系统设计专业自动化(交通信息与工程)班级自动化一班学生姓名指导教师李曙光2015年 7月 3 日目录一、设计题目 (2)二、任务要求 (2)三、总体设计方案 (2)3.1控制模块 (2)3.2温度显示模块 (3)3.3温度采集模块 (4)3.4键盘控制模块 (6)3.5报警模块 (6)四、各硬件模块电路设计 (7)4.1单片机最小系统硬件仿真图 (8)4.2温度显示模块硬件仿真图 (8)4.3温度采集模块硬件仿真图 (9)4.4按键控制模块硬件仿真图 (9)4.5报警模块硬件仿真图 (9)4.6硬件实现 (10)五、各个软件模块设计和流程图 (12)5.1软件设计总流程图 (12)5.2 DS18B20初始化 (13)5.3读DS18B20测得地温度 (14)5.4数码管显示数据处理…………………………………………………………………15.5.5按键处理 (16)六.设计总结及参考资料 (16)6.1设计总结 (16)6.2参考文献 (17)七.附件 (18)附件一:完整源程序 (18)附件二:完整地器件清单及硬件电路图 (28)一、设计题目多点温度检测系统设计二、任务要求(1)使用ds18b20为温度传感器;(2)检测点数为2点以上,检测温度范围为-40到40度之间,测量相应时间小于1s;(3)完成温度数据地实时显示;(4)设计一报警电路,当采集地温度越限(超过键盘设置地上下限)时产生声光报警.三、总体设计方案3.1控制模块1)主要功能采用Atmel公司地AT89S51单片机,它作为系统地核心部分,和温度采集单元之间,它直接对温度传感器进行指令操作,获取温度传感器地温度数据后进行各种处理,然后通过显示模块显示出温度值,工作过程中,接收来自键盘控制模块地信号,并对其作出相应地响应,同时,它不断检测DS18B20测取地温度值是否超过了设定地上限温度或下限温度,如果超过则对报警模块发出指令令其报警.2)器件选择AT89S51是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器.使用Atmel 公司高密度非易失性存储器技术制造.片上Flash允许程序存储器在系统可编程,亦适于常规编程器.在单芯片上,拥有灵巧地8 位CPU 和在系统可编程Flash,使得AT89S51在众多嵌入式控制应用系统中得到广泛应用.AT89S51具有完整地输入输出、控制端口、以及内部程序存储空间.与我们通常意义上地微机原理类似,可以通过外接A/D,D/A转换电路及运放芯片实现对传感器传送信息地采集,且能够提供以点阵或LCD液晶及外接按键实现人机交互,能对内部众多I/O端口连接步进电机对外围设备进行精确操控,具有强大地工控能力.图一 AT89S51管脚图3.2温度显示模块1)主要功能实时显示两个DS18B20温度传感器采集到地温度,在按键地设置下显示设定地报警温度上、下限值.2)器件选择该模块采用两个四位地八段译码管和一块八位锁存器74HC573组成,采用扫描显示地方式显示八位数据.数码管分为共阳型和共阴型,共阳极型就是发光管地正极都连在一起,作为一条引线,负极分开.八段数码发光管就是8个发光二极管组成地,在空间排列成为8字型带个小数点,只要将电压加在阳极和阴极之间相应地笔画就会发光.8个发光二极管地阳极并接在一起,8个阴极分开,因此称为共阳八段数码管.相反则为共阴八段数码管.图二数码管显示字段(a)八段数码管结构(b)共阴型数码管(c)共阳型数码管图三八段LED数码显示管原理和结构3.3温度采集模块1)主要功能实时测量两个侧两点地温度2)器件选择该模块采用DALLAS公司地DS18B20温度传感器,该温度传感器将温度检测与数字数据输出全集成于一个芯片上,它地一个工作周期分为温度检测和数据处理两个部分,它采用单数据总线进行数据传输,由于本设计采用两点测量温度,两个温度传感器地输出数据脚共连在单片机地数据引脚上,因此在进行温度检测和数据处理中需要首先利用DS18B20地ROM操作指令对温度传感器地ROM—ID进行识别,以针对特定地温度传感器进行操作.(对DS18B20地操作指令见附录文件)DS18B20地主要特征:1)全数字温度转换及输出2)先进地单总线技术3)最高12位地分辨率时地最大工作周期为750毫秒4)可选择寄生工作方式5)检测温度范围为-55°C~+125°C6)内置EEPROM,限温度报警7)64位光刻ROM,内置产品序列号,方便多机挂接8)多种封装形式,适应不同硬件图四 DS18B20地不同封装形式3.4键盘控制模块1)主要功能通过按键进行工作模式地切换,并且用按键进行上限温度和下限温度地更改2)器件选择该模块采用几个按钮开关和相应地几个10K电阻组成,当按下按钮是,得到一个低电平信号送入单片机,松开开关后变回高电平信号,单片机识别此信号并对此做出响应.图五按键3.5报警模块1)功能实现当两个DS18B0中任意一个测取地温度超过设定地温度上、下限时,蜂鸣器响,以此报警.2)器件选择该模块采用蜂鸣器来实现,蜂鸣器是一种一体化结构地电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件.蜂鸣器主要分为有源蜂鸣器和无源蜂鸣器两种类型.有源蜂鸣器与无源蜂鸣器地区别(注意:这里地“源”不是指电源,而是指震荡源):有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫.必须用2K-5K地方波去驱动它.有源蜂鸣器往往比无源地贵,就是因为里面多个震荡电路.无源蜂鸣器地优点是:1. 便宜2. 声音频率可控,可以做出“多来M发索拉西”地效果3. 在一些特例中,可以和LED复用一个控制口有源蜂鸣器地优点是:程序控制方便.综上所述,本实验采用无缘蜂鸣器.图六:有源和无源蜂鸣器地外观a)有源 b)无源四、各硬件模块电路设计AT89C51图七单片机端口分配图总地硬件仿真图附于附录中.下面是各模块硬件仿真连线图:4.1单片机最小系统硬件仿真图4.2温度显示模块硬件仿真图4.3温度采集模块硬件仿真图4.4按键控制模块硬件仿真图4.5报警模块硬件仿真图4.6硬件实现初始显示界面(显示两点测量温度)设定温度上限显示界面(显示温度上限值30°和第二点测量温度)设定温度下限显示界面(显示温度下限值0°和第二点测量温度)五、各个软件模块设计和流程图5.1软件设计总流程图N首先,读取第一个DS18B20测得地温度存入数组temp_buff中,然后读取第二个DS18B20测得地温度存入数组temp1_buff中,随后进行按键扫描和按键处理,对接下来要显示地模式进行选择,然后对数码要管显示地数据进行处理,根据选择地不同地模式读取相应地缓存,经过数码管扫描读出相应地温度,最后,依次判断两个点地测量温度是否超过设定地温度报警值,若超过,蜂鸣器报警,若未超过,继续从开始处循环.5.2 DS18B20初始化DS18B20地通信方式属于单总线通信方式,需按一定地通信协议.单总线地所有处理过程均从初始化开始.其中初始化序列包括一个由主机发出地复位脉冲和其后由从机发出地存在脉冲,存在脉冲让主机知道DS18B20在总线上并且已准备就绪.5.3读DS18B20测得地温度首先对DS18B20进行初始化,然后通过跳过ROM匹配指令、温度转换指令,将DS18B20采集到地数据转化为温度,再通过初始化、跳过ROM匹配指令、读温度暂存器指令,将得到地温度读取出来,最后对得到地温度数据进行处理,令TN=温度整数部分,TD=温度小数部分,以便后续进行使用.5.4数码管显示数据处理1)前四位数码管显示数据处理由于数码管数量有限,所以用前四位显示第一个DS18B20测得地温度和设定地报警温度(包括上限温度和下限温度),通过K1键进行三种模式地切换.若无按键按下或者按下三次K1键(mode=0),将第一个DS18B20测出地温度存入temp[ ]前四位,后续对其进行译码,经过译码后,前四位数码管显示第一个DS18B20测得地温度:若按下一次K1键(mode=1),将设定地报警温度上限存入temp[ ]前四位,后续对其进行译码,经过译码后,前四位数码管显示设定地报警温度上限:若按下两次K1键(mode=2),将设定地报警温度下限存入temp[ ]前四位,后续对其进行译码,经过译码后,前四位数码管显示设定地报警温度下限.2)后四位数码管显示数据处理将第二个DS18B20测得地温度存入temp[ ],后续对其进行译码,译码后实时显示第二点地测量温度 5.5按键处理检测键盘扫描是否有返回值,判断是否有按键按下.若无按键按下,则进行数码管显示数据处理;若有按键按下且为K1键,mode自加1 ,并判断mode是否大于2,若大于2,mode 清零后输出,若不大于2,直接输出mode;若有按键按下且为K2键,判断mode 是否为1,若为1,上限报警温度自加1(不超过125°),若不为1,进行下限报警温度自加1(不超过125°);若有按键按下且为K3键,判断mode 是否为1,若为1,上限报警温度自减1(不低于-50°),若不为1,进行下限报警温度自减1(不超过-50°).六.设计总结及参考资料6.1设计总结本次课程设计我们将两个DS18B20和AT89C51单片机相结合实现了多点温度测量.对单片机地独立控制外设而言难度不大,但由于不会用同一个I/O口控制多个DS18B20,因此用两个独立地I/O口分别对其控制,故编写地程序有些繁琐.本次设计地不足是,第二个DS18B20测得温度地小数部分一直无法显示,经过多次调试仍然没有结果,但基本功能都已实现.虽然课程设计结束了,但我们仍会努力将这一问题解决.经过本次设计实验,充分认识到自己实际操作方面地不足以及程序编写不够熟练等问题,因此需要多加练习.同时也更加明确了我们在接下来地学习中地侧重方向,作为工科专业应该更加注重理论与实际地结合,并且持之以恒地坚持,只有这样不断提高自己地专业素养.6.2参考文献[1]李群芳. 单片机微型计算机与接口技术第三版.电子工业出版社,2010.1[2] 谢自美.电子线路设计.实验测试(第二版)[M].武汉:华中科技大学出版社,2000.[3] 丘玉娟.用串行ROM和AT89C51实现电子密码锁[J].电脑知识与技术.2005,11(3):34~36[4]李金平•电子系统设计•电子工业出版社•2009七.附件附件一:完整源程序#include<reg51.h>#include<intrins.h>//--定义使用地IO--//sbit LSA=P2^2。

基于DS18B20的数字温度报警器的设计

基于DS18B20的数字温度报警器的设计

定频率 的 方波 ,通 过P NP 三极 管 功率 放大 后 驱动 蜂 鸣器 发 出报 警
信号。
= ,设计方案
基 于D S 1 8 B 2 0 的数 字温 度 报警 器 以S T C 8 9 C 5 2 R C 单片 机 为微 控
制 器, 由一 数字 温 度传 感 器 D S 1 8 B 2 0  ̄ 量 被控 温 度 , 结合 L C D1 6 0 2
P 2 . 2 控 ̄ O L C D1 6 0 2 控 制端 V I ,在 基 于D S 1 8 B 2 0 的数 字温 度报 警 器 设 计 中,用L C D1 6 0 2 显 示器 显示 温度 以及 其 他要 显示 的信 息。 同时 当 采 集 到 的温度 值 超过 所 设置 的范 围时 ,S T C 8 9 C 5 2 R C 单 片机 会 输 出
与L C D1 6 0 2 显 示器 对应 的数据 ,通 过P 0 V I 输 出显示 。 即通 过P 2 . 0 到
器在 不同温度 下 ,工 作状态 的不 同来给S T C 8 9 C 5 2 R C 单 片机系 统提供 温 度数 据 , 以供S T C 8 9 C 5 2 R C 单 片机 采集 温度 数据 同时显 示 出来 。
S T C89 C5
显 示 器 和 蜂 鸣器 组 合 而 成 。当 被测 量值 超 出预 设 范 围 则 发 出警 报
( 蜂 鸣 器发 出声 响 )。 设计 原理如 图1 所示 。
L C D1 6 0 2 液 晶显示 的 子程 序 ,其 次编 写按键 中断程 序 ,然 后编 写 蜂
鸣器 子程 序 ,通 过主 程序 对这 些 子程 序 的调节 与 调用 ,最 后达 到 了
E L E C T R ONI C S W OR L D・ 技 术 交流

DS18B20温度测量、报警系统的设计

DS18B20温度测量、报警系统的设计

#include <AT89X52.h>#include "DS18B20.h"#define uint unsigned int#define uchar unsigned char //宏定义#define SET P3_1 //定义调整键#define DEC P3_2 //定义减少键#define ADD P3_3 //定义增加键#define BEEP P3_7 //定义蜂鸣器bit shanshuo_st; //闪烁间隔标志bit beep_st; //蜂鸣器间隔标志sbit DIAN = P2^7; //小数点uchar x=0; //计数器signed char m; //温度值全局变量uchar n; //温度值全局变量uchar set_st=0; //状态标志signed char shangxian=38; //上限报警温度,默认值为38signed char xiaxian=5; //下限报警温度,默认值为38ucharcode LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x ff};/*****延时子程序*****/void Delay(uint num){while( --num );}/*****初始化定时器0*****/void InitTimer(void){TMOD=0x1;TH0=0x3c;TL0=0xb0; //50ms(晶振12M)}/*****定时器0中断服务程序*****/void timer0(void) interrupt 1{TH0=0x3c;TL0=0xb0;x++;}/*****外部中断0服务程序*****/void int0(void) interrupt 0{EX0=0; //关外部中断0if(DEC==0&&set_st==1){shangxian--;if(shangxian<xiaxian)shangxian=xiaxian;}else if(DEC==0&&set_st==2){xiaxian--;if(xiaxian<0)xiaxian=0;}}/*****外部中断1服务程序*****/void int1(void) interrupt 2{EX1=0; //关外部中断1if(ADD==0&&set_st==1){shangxian++;if(shangxian>99)shangxian=99;}else if(ADD==0&&set_st==2){xiaxian++;if(xiaxian>shangxian)xiaxian=shangxian;}}/*****读取温度*****/void check_wendu(void){uint a,b,c;c=ReadTemperature()-5; //获取温度值并减去DS18B20的温漂误差 a=c/100; //计算得到十位数字b=c/10-a*10; //计算得到个位数字m=c/10; //计算得到整数位n=c-a*100-b*10; //计算得到小数位if(m<0){m=0;n=0;} //设置温度显示上限if(m>99){m=99;n=9;} //设置温度显示上限}/*****显示开机初始化等待画面*****/ Disp_init(){P2 = 0xbf; //显示-P1 = 0xf7;Delay(200);P1 = 0xfb;Delay(200);P1 = 0xfd;Delay(200);P1 = 0xfe;Delay(200);P1 = 0xff; //关闭显示}/*****显示温度子程序*****/Disp_Temperature() //显示温度{P2 =0xc6; //显示CP1 = 0xf7;Delay(300);P2 =LEDData[n]; //显示个位P1 = 0xfb;Delay(300);P2 =LEDData[m%10]; //显示十位 DIAN = 0; //显示小数点P1 = 0xfd;Delay(300);P2 =LEDData[m/10]; //显示百位 P1 = 0xfe;Delay(300);P1 = 0xff; //关闭显示}/*****显示报警温度子程序*****/ Disp_alarm(uchar baojing){P2 =0xc6; //显示CP1 = 0xf7;Delay(200);P2 =LEDData[baojing%10]; //显示十位P1 = 0xfb;Delay(200);P2 =LEDData[baojing/10]; //显示百位P1 = 0xfd;Delay(200);if(set_st==1)P2 =0x89;else if(set_st==2)P2 =0xc7; //上限H、下限L标示P1 = 0xfe;Delay(200);P1 = 0xff; //关闭显示}/*****报警子程序*****/void Alarm(){if(x>=10){beep_st=~beep_st;x=0;}if((m>=shangxian&&beep_st==1)||(m<xiaxian&&beep_st==1))BEEP=0; else BEEP=1;}/*****主函数*****/void main(void){uint z;InitTimer(); //初始化定时器EA=1; //全局中断开关TR0=1;ET0=1; //开启定时器0IT0=1;IT1=1;check_wendu();check_wendu();for(z=0;z<300;z++){Disp_init();}while(1){if(SET==0){Delay(2000);do{}while(SET==0);set_st++;x=0;shanshuo_st=1;if(set_st>2)set_st=0;}if(set_st==0){EX0=0; //关闭外部中断0EX1=0; //关闭外部中断1check_wendu();Disp_Temperature();Alarm(); //报警检测}else if(set_st==1){BEEP=1; //关闭蜂鸣器EX0=1; //开启外部中断0EX1=1; //开启外部中断1if(x>=10){shanshuo_st=~shanshuo_st;x=0;} if(shanshuo_st) {Disp_alarm(shangxian);} }else if(set_st==2){BEEP=1; //关闭蜂鸣器EX0=1; //开启外部中断0EX1=1; //开启外部中断1if(x>=10){shanshuo_st=~shanshuo_st;x=0;} if(shanshuo_st) {Disp_alarm(xiaxian);} }}}/*****END*****/DS18B20.h:#include <AT89X52.h>#define DQ P3_6 //定义DS18B20总线I/O/*****延时子程序*****/void Delay_DS18B20(int num){while(num--) ;}/*****初始化DS18B20*****/void Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位Delay_DS18B20(8); //稍做延时DQ = 0; //单片机将DQ拉低Delay_DS18B20(80); //精确延时,大于480usDQ = 1; //拉高总线Delay_DS18B20(14);x = DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay_DS18B20(20);}/*****读一个字节*****/unsigned char ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;Delay_DS18B20(4);}return(dat);}/*****写一个字节*****/void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;Delay_DS18B20(5);DQ = 1;dat>>=1;}}/*****读取温度*****/unsigned int ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0x44); //启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器a=ReadOneChar(); //读低8位b=ReadOneChar(); //读高8位t=b;t<<=8;t=t|a;tt=t*0.0625;t= tt*10+0.5; //放大10倍输出并四舍五入 return(t);}/*****END*****/。

基于ds18b20的数字温度计设计报告

基于ds18b20的数字温度计设计报告

基于ds18b20的数字温度计设计报告
一、引言
随着科技的进步,温度的测量和控制变得越来越重要。

DS18B20是一款数字温度传感器,具有测量准确度高、体积小、接口简单等优点,广泛应用于各种温度测量场合。

本报告将介绍基于DS18B20的数字温度计设计。

二、DS18B20简介
DS18B20是一款由美国Dallas公司生产的数字温度传感器,可以通过数据线与微处理器进行通信,实现温度的测量。

DS18B20的测量范围为-55℃~+125℃,精度为±0.5℃。

三、数字温度计设计
1.硬件设计
数字温度计的硬件部分主要包括DS18B20温度传感器、微处理器、显示模块等。

其中,DS18B20负责采集温度数据,微处理器负责处理数据并控制显示模块显示温度。

2.软件设计
软件部分主要实现DS18B20与微处理器的通信和控制显示模块显示。

首先,微处理器通过数据线向DS18B20发送命令,获取温度数据。

然后,微处理器将数据处理后发送给显示模块,实现温度的实时显示。

四、测试结果
经过测试,该数字温度计的测量精度为±0.5℃,符合设计要求。

同时,该温度
计具有测量速度快、体积小、使用方便等优点,可以广泛应用于各种温度测量场合。

五、结论
基于DS18B20的数字温度计具有高精度、低成本、使用方便等优点,可以实现高精度的温度测量和控制。

随着科技的发展,数字温度计的应用将越来越广泛,具有广阔的市场前景。

基于DS18B20的温度报警器设计

基于DS18B20的温度报警器设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

温度报警器ds18b20制作PPT

温度报警器ds18b20制作PPT

;差5度时的提示温度 P3.0
P3.7 ;传感器工作检测灯
• • • • • • • • • • • • • • • • • • • • • • • • • • • • •
SHEWEN BIT P2.7 ;温度设置开关 CLOSE BIT P1.7 ;关闭响声 CLOSE2 BIT 01H SET1_A BIT 02H ORG 0000H SJMP START ORG 0050H START: MOV SP,#70H SETB CLOSE2 CLR SET1_A MOV LED_0,#00H MOV LED_1,#00H CLR SOUND MOV H_TEM,#60 MOV L_TEM,#55 MAIN: LCALL GET_TEMPER MOV A,TEMPER_L MOV C,40H ;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV TEMPER_L,A
READ_18200: MOV R4,#2 ;读DS18B20的程序,将温度高位和低位从DS18B20中读出 MOV R1,#29H ;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H) RE00: MOV R2,#8 ;数据一共有8位 RE01: CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQ
;延时1毫秒 ;标志位取反
;超过99度上限显示
LCALL GET_TEMPER_2 MOV A,TEMPER_L MOV C,40H RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV TEMPER_L,A SETB CLOSE2 LJMP WAIT SET1: JB SET1_A,SET1_1 MOV LED_0,#00H MOV LED_1,#00H SET1_1: MOV A,LED_1 MOV B,#10 MUL AB ADD A,LED_0 MOV DISP_SET,A MOV H_TEM,DISP_SET MOV A,H_TEM SUBB A,#05H MOV L_TEM,A CLR C SETB CLOSE2 JNB P3.4,SER1 JNB P3.5,SER2

基于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温度报警器的设计
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.

基于18B20温度报警系统毕业设计

基于18B20温度报警系统毕业设计

基于18B20温度报警系统毕业设计目录摘要 (I)ABSTRACT........................................................... I I 第一章:绪论. (1)1.1:课题背景 (1)1.2:温度检测与及报警系统的国外状况 (1)1.3:温度参数、温度检测和语音报警 (3)1.3.1 温度参数 (3)1.3.2 温度检测 (3)1.3.3 语音报警 (3)第二章:系统总体设计方案 (4)2.1单片机语音温度报警系统的总体设计 (4)2.2系统的基本工作过程 (4)第三章:单片机温度控制和语音报警系统硬件设计 (5)3.1温度控制和报警主机 (5)3.1.1主控制单片机 (5)3.1.2 AT89S52特点 (5)3.1.3 AT89S52主要功能特性: (6)3.1.4 温度检测和报警主机硬件电路设计 (9)3.1.5单片机及复位键控制模块 (10)3.2语音电路 (11)3.2.1 ISD1420芯片简述 (11)3.2.2 芯片引脚介绍 (12)3.2.3 芯片工作原理 (13)3.2.4 芯片工作模式 (13)3.2.5语音电路设计 (14)3.3DS18B20芯片简介 (14)3.3.1温度传感器的历史及简介 (14)3.3.2 DS18B20性能特点与部结构 (15)3.3.3 DS18B20工作时序 (20)3.3.4 DS18B20的操作协议 (22)3.3.5 DS18B20序列号编码 (24)3.3.6 DS18B20的测温原理 (24)3.3.7 DS18B20的测温流程 (26)3.3.8 DS18B20数据校验与纠错 (26)3.3.9 DS18B20在测温系统中的应用 (28)3.3.10测温系统的硬件工作原理 (28)3.3.11 注意事项 (28)第四章软件设计 (29)4.1设计思路 (29)4.2程序设计 (31)4.2.1 主程序 (31)4.2.2 读出温度子程序 (31)4.2.3温度转化命令子程序 (32)4.2.4计算温度子程序 (32)4.2.5显示数据刷新子程序 (33)4.2.6 LED显示程序模块 (33)第五章:系统调试 (34)5.1硬件调试 (34)5.1.1 硬件静态的调试 (34)5.1.2 系统硬件调试 (35)5.2软件调试 (35)5.3软硬联调 (35)结论 (36)致谢 (37)参考文献 (38)附录 (39)第一章:绪论1.1:课题背景测量控制的作用是从生产现场中获取各种参数,运用科学计算的方法,综合各种先进技术,使每个生产环节都能够得到有效的控制,不但保证了生产的规化、提高产品质量、降低成本,还确保了生产安全。

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

毕业设计论文的温度报警器设计基于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从事什么工作,无时无刻不在跟温度打着交道。

子哪里,玻璃、水泥、钢铁、石化、工业发展对是否能掌握温度有着绝对的联系。

在冶金、80%的工业部门都不得不靠路这温度的因素。

医药等等行业,可以说几乎我信息科学和航空工业的飞速发展给人们生活甚至国家安全带来了巨大的飞跃。

在我工作期间深刻感觉到温度对焊接工艺的的实习单位是航天八五一一研究所,造成就有可能将电缆或芯片报废掉,重要性,往往只是高了或低了一二摄氏度,严重的损失。

我们也在重要的位置上放置了一个温度测量报警器温度传感器以及温度报警器就显得格外由此可见温度对我们工作生活的重要性,重要。

1江苏信息职业技术学院毕业设计(论文)方案设计章第2本设计主要元件有AT89C51、DS18B20、数码管等,其中由AT89C51作为控制器,DS18B20测量温度,再通过74LS245把AT89C51单片机芯片所处理和转化的数据传输到数码管中。

当DS18B20感知到温度达到高于70℃或低于-20℃临界值时相应的LED闪烁,同时蜂鸣器发出报警声。

晶振是正弦波震荡电路,供本设计数字电路整形后作时钟源。

复位电路的作用是把电路恢复到起始状态。

本所示。

2.1设计的温度报警器电路的总体框图如图图2.1 温度报警器电路的总体框架2基于DS18B20的温度报警器设计第3章 DS18B20简介DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。

与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

可以分别在93.75ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。

因而使用DS18B20可使系统结构更趋简单,可靠性更高。

他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。

3.1 DS18B20性能指标(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

(2)在使用中不需要任何外围元件。

(3)可用数据线供电,电压范围:+3.0~ +5.5 V。

(4)测温范围:-55 ~+125 ℃。

固有测温分辨率为0.5 ℃。

(5)通过编程可实现9~12位的数字读数方式。

(6)用户可自设定非易失性的报警上下限值。

(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。

(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。

3江苏信息职业技术学院毕业设计(论文)3.2 DS18B20的封装及内部结构DS18B20的封装如图3.1所示。

的封装3.1 DS18B20图DS18B20引脚功能:1、 GND为电源地2、 DQ为数字信号输入/输出端3、VDD为外接供电电源输入端(在寄生电源接线方式时地)DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

3.3 DS18B20工作原理及应用DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。

其一个工作周期可分为两个部分,即温度检测和数据处理。

在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。

18B20共有三种形态的存储器资源,它们分别是:ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上4基于DS18B20的温度报警器设计56的位的CRC码(冗余校验)。

数据在出产时设置不由用户更改。

DS18B20共64位ROM。

RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。

第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。

在上电复位时其值将被刷新。

第5个字节则是用户第3个EEPROM的镜像。

第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。

第9个字节为前8个字节的CRC码。

EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。

3.4 控制器对DS18B20操作流程1. 复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。

当18B20接到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。

2. 存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。

至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。

如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。

3. 控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。

ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。

其主要目的是为了分辨一条总线上挂接的多个器件并作处理。

诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。

ROM指令在下文有详细的介绍。

4. 控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着5江苏信息职业技术学院毕业设计(论文)(不间断)就是发送存储器操作指令了。

操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。

存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。

5. 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。

如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。

如执行数据读写指令则需要严格遵循18B20的读写时序来操作。

数据的读写方法将有下文有详细介绍。

若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间。

紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。

6基于DS18B20的温度报警器设计第4章硬件电路设计温度报警器的电路设计如图4.1所示,控制器使用单片机AT89C51,温度传感器使用DS18B20,用数码管实现温度显示。

本温度报警器大体分四个工作过程。

首先,由DS18B20温度传感器芯片测量当前的温度,并将结果送入单片机中。

其次,再通过单片机AT89C51芯片对送来的测量温度读数进行计算和转化,并将此结果送入数码管。

然后,数码管显示温度数据。

最后,若温度超标,则二极管发光和蜂鸣器响起。

由图4.1可以看到本电路主要由DS18B20温度传感器芯片、数码管显示模块和AT89C51单片机芯片组成。

其中,DS18B20温度传感器芯片采用“一线制”与单片机相连,它独立的完成温度测量以及将测量结过传送到单片机的工作。

温度报警器电路设计原理图4.1 图7江苏信息职业技术学院毕业设计(论文)4.1 AT89C51Flash Programmable —AT89C51是一种带4K字节FLASH存储器(FPEROM位微处理器,俗称CMOS 8and Erasable Read Only Memory)的低电压、高性能ATMEL该器件采用单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

指令集和输出管脚相MCS-51与工业标准的高密度非易失存储器制造技术制造,的ATMEL和闪烁存储器组合在单个芯片中,兼容。

由于将多功能8位CPU单片机为很多嵌入式控制系统提供了是一种高效微控制器。

AT89C51AT89C51 。

一种灵活性高且价廉的方案。

相关文档
最新文档