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的温度报警器设计系电子信息工程系专业电子信息工程技术康志凌班级电子信息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作为温度采集器、AT89S51单片机为主控制器,外加显示模块以及报警电路实现该智能温度测量报警器的设计方法、工作原理、电路组成等。
关键词:DS18B20,单片机,温度控制,报警1绪论温度是与人们生活息息相关的环境参数,许多情况下都需要进行温度测量及报警,温度测量报警系统在现代日常生活、科研、工农业生产中已经得到了越来越广泛的应用。
所以对温度的测量报警方法及设备的研究也变得极其重要。
随着人们生活水平的不断提高以及应对各种复杂测量环境的需要,我们对温度测量报警器的要求也越来越高,利用单片机来实现这些控制无疑是人们追求的目标之一,它带给我们的方便是不可否定的。
其中温度检测报警器就是一个典型的例子。
要为现代人工作、科研、生活、提供更好的更方便的设施,就需要从单片机技术入手,向数字化,智能化控制方向发展。
本设计所介绍的温度报警器,可以设置上下限报警温度,当温度不在设置范围内时,可以报警。
与传统的温度测量系统相比,本设计中的数字温度测量报警系统具有很多前者没有的优点,如测温范围广而且准确,采用LCD数字显示,读数方便等。
1.1温度报警器的研究意义随着电子技术的发展,家用电器和办公设备的智能化、系统化已成为趋势,而这些高性能几乎都要通过单片机实现。
同时,温度作为与我们生活息息相关的一个环境参数,对其的测量和研究也变得极为重要。
故温度检测报警系统在现代生活、生产中得到了越来越广泛的应用。
工业生产带动了人类社会的进步,同时也促进了各种新的传感器的发展。
在工业生产中温度的准确测量是一个比较困难的事情。
DS18B20数字温度计的设计与实现
DS18B20数字温度计的设计与实现一、实验目的1.了解DS18B20数字式温度传感器的工作原理。
2.利用DS18B20数字式温度传感器和微机实验平台实现数字温度计。
二、实验内容与要求采用数字式温度传感器为检测器件,进行单点温度检测。
用数码管直接显示温度值,微机系统作为数字温度计的控制系统。
1.基本要求:(1)检测的温度范围:0℃~100℃,检测分辨率 0.5℃。
(2)用4位数码管来显示温度值。
(3)超过警戒值(自己定义)要报警提示。
2.提高要求(1)扩展温度范围。
(2)增加检测点的个数,实现多点温度检测。
三、设计报告要求1.设计目的和内容2.总体设计3.硬件设计:原理图(接线图)及简要说明4.软件设计框图及程序清单5.设计结果和体会(包括遇到的问题及解决的方法)四、数字温度传感器DS18B20由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。
它具有体积小,接口方便,传输距离远等特点。
1.DS18B20性能特点DS18B20的性能特点:①采用单总线专用技术,既可通过串行口线,也可通过其它I/O 口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),②测温范围为-55℃-+125℃,测量分辨率为0.0625℃,③内含64位经过激光修正的只读存储器ROM ,④适配各种单片机或系统机,⑤用户可分别设定各路温度的上、下限,⑥内含寄生电源。
2. DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH 和TL,高速暂存器。
64位光刻ROM 是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。
64位ROM 结构图如图2所示。
不同的器件地址序列号不同。
DS18B20的管脚排列如图1所示。
基于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数字温度计的设计的演示稿精品PPT课件
(a) 寄生电源工作方式
(b) 外接电源工作方式
7. 结 论
本设计以智能集成温度传感DS18B20为例, 介绍了基DS18B20传感器的数字温度计的设计, 该设计适用于人们的日常生活及环境温度不高 于125 ℃的温度的检测与控制。
以DS18B20温度传感器设计的数字温度计线 路简单、硬件少、成本低廉、软件设计简单等 优点,有着广阔的应用前景。尤其是其具有完 善的单总线通信协议,无需复杂、繁琐的布线, 只需3 根连线就能很容易地组成多点测温系统, 因此在工农业生产和科学研究中有着广阔的应 用前景。
设计任务及具体要求
一、设计任务: 设计一个以单片机为核心的温度测量系统 。
二、 具体要求: (1)测量温度值精度为±1℃。 (2)系统允许的误差范围为1℃以内。 (3)系统可由用户预设温度值,测温范围为-55 ℃ ~+125℃。 (4)超出预置值时系统会自动报警,即发光二极管 亮。 (5)系统具有数码显示功能,能实时显示设定温度 值和测得的实际温度值。
按键显示流程图
结论
DS18B20
设计简述
人们生活与环境温度息息相关,在工业生产过程中 需要实时测量温度,在工业生产中也离不开温度的测 量,因此研究温度的测量方法和控制具有重要的意义。
测量温度的关键是温度传感器,温度传感器的发展 经历了3个阶段:传统的分立式温度传感器、模拟集 成温度传感器、智能集成温度传感器。目前,国际上 新型温度传感器正从模拟式向数字式、从集成化向智 能化、网络化的方向发展。在此以智能集成温度传感 器DS18B20为例 ,介绍DS18B20数字温度计的设计。
表1
段名称 a b c d e f g dp
I/0 口名称 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
用数码管与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温度计设计
目录1设计内容及基本要求 (1)2设计方案及论证 (1)3设计原理及电路图 (2)3.1硬件设计 (2)3.1.1 DS18B20的介绍 (2)3.1.2主控器STC89C52的介绍 (4)3.1.3显示电路的设计 (6)3.1.4仿真原理图 (7)3.2软件设计 (9)3.2.1软件环境 (9)3.2.2软件流程图 (9)4.元器件清单 (10)5元器件识别与检测 (11)5.1 电阻识别与检测 (11)5.3 电容识别与检测 (12)6软件编程与调试 (14)7设计心得 (14)8参考文献 (15)1设计内容及基本要求内容:设计能够对室内温度进行测量的温度检测电路,实现对常温环境的温度测量。
基本要求:(1)温度测量范围:零下50度至零上50度;(2)测量精度为0.5度。
2设计方案及论证方案一:水银温度计在生活中我们经常看到水银温度计,它只能作为就地监督的仪表,用它来测量温度时,由于读数时用眼睛观察,主观因素大,容易造成误差大,而且不同是水银温度计量程不同,在读数前需要看清它的最小分度值,还有它有热惯性,需要等到温度计达到稳定状态后才能读数,比较麻烦,并且水银有毒,不小心打破后接触到水银,对人体伤害大,所以危险性较高。
方案二:传统测温元件传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,其缺点有:硬件电路复杂;软件调试复杂;制作成本高。
方案三:DS18B20传感器测温本设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有成本低和易使用的特点。
2.1.2 单片机STC89C52的选择STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,内置看门狗定时器,而且STC89C52可降到0Hz静态逻辑操作,支持两种软件可选择节电模式。
基于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温度传感器设计温度控制系统设计设计说明:1.1 使用DS18B20温度传感器设计温度控制系统1.在数码管上可显示采集到的温度(0~99.9℃)2.当温度低于27℃时,蜂鸣器开始以慢地“滴”声报警,P1.0口发光二极管闪烁,当温度继续降低并低于25℃时,蜂鸣器开始以快地“滴”声报警,P1.0和P1.1口发光二极管闪烁。
3.当温度高于30℃时,蜂鸣器开始以慢地“滴”声报警,P1.2口发光二极管闪烁,当温度继续升高并高于32℃时,蜂鸣器开始以快地“滴”声报警,P1.2和P1.3口发光二极管闪烁。
1.2 元件说明:(1)使用的元器件DS18B20:电压范围3.0~5.5V ;温度可测范围-55~+125℃;可编程分辨率为9~12位,对应的可分辨温度为:0.5℃、0.25℃、0.125℃和0.0625℃;测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
其引脚定义图如下图:(3) 硬件连接图硬件连接图如上图:1.3 工作原理首先看控制DS18B20的指令,只列举此设计用到的,如下表:CCH 跳过ROM44H 温度转换BEH 读暂存器原理:DS18B20测量外部温度,经过温度转换,将温度物理量转换成数字信号,再传送数据到AT89C52,AT89C52控制数码管显示及二极管、扬声器的工作,从而实现了温度在数码管上显示,还有温度范围的亮灯与报警。
1.4 C语言编程见附录1.5 实验结果可将环境温度经过DS18B20温度传感器,在数码管上显示,显示准确。
附录#include<reg51.h>#include<stdio.h>#define uchar unsigned char#define uint unsigned intsbit ds=P2^2;For personal use only in study and research; not for commercial usesbit dula=P2^6;sbit wela=P2^7;sbit beep=P2^3;uint temp;float f_temp;uint warn_l1=270;uint warn_l2=250;uint warn_h1=300;uint warn_h2=320;sbit led0=P1^0;sbit led1=P1^1;sbit led2=P1^2;sbit led3=P1^3;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87,0xff,0xef}; void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void dsreset(){uint i;ds=0;i=103;while(i>0) i--;ds=1;i=4;while(i>0) i--;}bit tempreadbit(){bit dat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8; while(i>0) i--;return(dat);}uchar tempread(){uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=tempreadbit();dat=(j<<7)|(dat>>1);}return(dat);}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;i++;i++;ds=1;i=8;while(i>0) i--;}else{ds=0;i=8;while(i>0) i--;ds=1;i++;i++;}}tempchange(){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;f_temp=temp*0.0625;temp=f_temp*10+0.5;f_temp=f_temp+0.05; return temp;}display(uchar num,uchar dat) {uchar i;dula=0;P0=table[dat];dula=1;dula=0;wela=0;i=0xff;i=i&(~((0x01)<<(num)));P0=i;wela=1;wela=0;delay(50);}dis_temp(uint t){uchar i;i=t/100;display(0,i);i=t%100/10;display(1,i+10);i=t%100%10;display(2,i);}warn(uint s,uchar led){uchar i;i=s;beep=0;P1=~(led);while(i--){dis_temp(get_temp());}beep=1;P1=0xff;i=s;while(i--){dis_temp(get_temp());}}deal(uint t){uchar i;if((t>warn_l2)&&(t<=warn_l1)){warn(40,0x01);}else if(t<=warn_l2){warn(10,0x03);}else if((t<warn_h2)&&(t>=warn_h1)){warn(40,0x04);}else if(t>=warn_h2){warn(10,0x0c);}else{i=40;while(i--){dis_temp(get_temp());}}}init_com(){TMOD=0x20;PCON=0x00;SCON=0x50;TH1=0xfd;TL1=0xfd;TR1=1;}comm(char *parr){do{SBUF=*parr++;while(!TI);TI=0;} while(*parr);}main(){uchar buff[4],i;dula=0;wela=0;init_com();while(1){tempchange();for(i=10;i>0;i--){dis_temp(get_temp());}deal(temp);sprintf(buff,"%f",f_temp); for(i=10;i>0;i--){dis_temp(get_temp());}comm(buff);for(i=10;i>0;i--){dis_temp(get_temp());}}}使用DS18B20温度传感器设计温度控制系统设计班级:电082班姓名:于川洋学号:33号时间:2011-11.-11仅供个人参考仅供个人用于学习、研究;不得用于商业用途。
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是一款由美国Dallas公司生产的数字温度传感器,可以通过数据线与微处理器进行通信,实现温度的测量。
DS18B20的测量范围为-55℃~+125℃,精度为±0.5℃。
三、数字温度计设计
1.硬件设计
数字温度计的硬件部分主要包括DS18B20温度传感器、微处理器、显示模块等。
其中,DS18B20负责采集温度数据,微处理器负责处理数据并控制显示模块显示温度。
2.软件设计
软件部分主要实现DS18B20与微处理器的通信和控制显示模块显示。
首先,微处理器通过数据线向DS18B20发送命令,获取温度数据。
然后,微处理器将数据处理后发送给显示模块,实现温度的实时显示。
四、测试结果
经过测试,该数字温度计的测量精度为±0.5℃,符合设计要求。
同时,该温度
计具有测量速度快、体积小、使用方便等优点,可以广泛应用于各种温度测量场合。
五、结论
基于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电子信息工程系系姓名电子信息工程技术康志凌专业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温度报警器的设计
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.
3、利用单片机及DS18B20实现温度报警器的制作实验设计报告
(2) DS18B20的内部结构框图如图2—4 所示,它采用3脚PR—35封装或8脚SOIC封装其管脚封装如图2-5所示。
(3) DS18B20单线智能温度传感器的工作原理
64位ROM的位结构如图2—6 所示。开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个 DS18B20可以采用一线进行通信的原因。非易失性温度报警触发器TH和TL,可通过软件写入户报警上下限。
2.9存储电路……………………………………………………………………………….17
2.11.3报警电路………………………………………………………………..19
2.11.4存储电路…………………………………………………………………………19
3.2.1子程序设计……………………………………………………………….21
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可
电擦除的EEPRAM。高速暂存RAM的结构为8字节的存储器,
2.3.1注意事项:
Ds18b20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中叶应注意以下几个方面的问题:
1在对ds18b20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。
DS18B20的性能特点如下:
独特的单线接口仅需要一个端口引脚进行通信;
多个DS18B20可以并联在唯一的三线上,实现多点组网功能;
无须外接部件;
可通过数据供电,电压范围为3.0—5.5V;
零待机功耗;
温度以9或12位数字量读出;
用户可定义的非易失性温度报警设置;
温度报警器ds18b20制作资料
设计原理
• 由DS18B20传感器原理,可将温度值转 换为12位的数字量方式传送到单片机内 。单片机内将得到的数字量经过预先编 写的程序处理得到一个数值,再将此值 与预定值比较,当此值大于或等于预定 值时,通过程序驱动灯闪亮和蜂鸣器发 声;当其小于预设值时,外设处于常态 ;在两种状态下,二位译码管都将显示 此时的瞬时温度值
• ATS52单片机
AT89S52 是一种低功耗、高性能CMOS8位微控 制器,具有 8K 在系统可编程Flash 存储器 AT89S52具有以下标准功能: 8k字节Flash, 256字节RAM, 32 位I/O 口线,看门狗定时器 ,2 个数据指针,三个16 位 定时器/计数器, 一个6向量2级中断结构,全双工串行口, 片内 晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式 。空闲模式下,CPU 停止工作,允许RAM、 定时器/计数器、串口、中断继续工 作。掉电 保护方式下,RAM内容被保存,振荡器被冻结 , 单片机一切工作停止,直到下一个中断或硬
主要功能
• 利用AT89S52单片机和DS18B20温度传 感器实现达到预设温度值的蜂鸣器报警
• 可自由设置报警的数值(0到100度) • 可复位重设 • 可扩充一些其他功能
程序流程图
电路仿真图
报警程序
• LED_0
EQU 30H
• LED_1
EQU 31H
• WENDU
EQU 35H
• TEMPER_L EQU 29H
•
RRC A
•
MOV C,41H
•
RRC A
•
MOV C,42H
•
RRC A
•
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 瓷片电容,瓷片电容中间接地,瓷片电 容的作用是为了让晶振电路快速起振。 这三个元件配合内部已有的时钟电路为单 片机提供工作的振荡节拍信号。
图 1 系统组成框图
温度传感器选用 DS18B20 一线制温度传感器,实现对温度信号的采集;微 控制器采用最常用的 AT89S51 系列单片机作为系统控制器,对温度传感器设置、 温度读取、温度数据的显示;蜂鸣器实现声音报警提示;报警灯采用两组发光二 极管电路实现高低温报警指示,当温度超限时,对应的报警灯发光。
C2 C3
10uF 30pF
9
RST
R5
220
R1
1k
29 30 31
PSEN ALE EA
R3
220
D1
高温报警
R4
220
D2
低温报警
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51
R2 R6
10k
4.7k
本程序将报警温度设为高: 70
A B C D E F G Dp
U1
19 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 2 3 4 5 6 7 8 9 19 1 A0 A1 A2 A3 A4 A5 A6 A7 CE AB/BA 74LS245 B0 B1 B2 B3 B4 B5 B6 B7 18 17 16 15 14 13 12 11 A B C D E F G Dp 1 2 3 4 5 6 7 8
P1.6 P1.7 AT89C51 P3.6/WR P3.7/RD 17
R6
10k
图 7 声音报警电路
(6)温度检测电路 温度检测电路采用最常用的单线制温度传感器 DS18B20 实现对温度的检 测,温度检测电路如图 8 所示。由单片机 P3.6 引脚接 DS18B20 数据线,实现控 制命令的写入,温度数据的读出。测温范围:-55℃~125℃,分辨率可以设置, 本设计能显示 0.1℃的温度变化。根据要求数据线接一个 4.7k 的上拉电阻。
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 AT89C51
图 6 光电报警电路
(5)声音报警电路 声音报警电路如图 7 所示,蜂鸣器采用有源蜂鸣器,当有电流驱动时发出报 警声音,单片机作为微控制器对外的驱动负载的能力有限,P3 口每个引脚对外 驱动电流最大仅为 8mA,因此通过 P3.7 引脚控制 PNP 型三极管 9012 的基极放 大,当 P3.7 为低电平时,三极管导通,蜂鸣器发声。
1 2 3 4 5 6 7 8
U2
220,当运行中出现陷入死循环情况时,可按下按键重新实现复位操作,使系统 重新回到原来的状态。
XTAL2
C3
10uF
30pF 9 RST
R5
220
R1
1k
29 30 31
PSEN ALE EA
图 5 复位电路
(4)光电报警电路 光电报警电路如图 6 所示,高温、低温光电报警电路由两路发光二级电路组 成,当温度超限时,对应的控制引脚设置为低电平,发光二极管点亮指示,220 欧姆电阻起限流的作用。
河南工程学院 《单片机原理及应用》 课程设计
DS18B20 温度报警器的设计
学生姓名: 学 学 号: 院:
专业班级: 专业课程: 指导教师: 单片机原理及应用
2018 年 01 月 12 日
课程设计成绩评定标准及成绩
序号 1 评审项目 工作态度 指 标 满分 5 评分
遵守纪律, 学习认真; 作风严谨, 踏实肯干; 善于与他人合作。 按期圆满完成规定的任务, 难易程度和工作 量符合要求;完成硬件电路设计 10 分,完 成仿真调试 20 分。 全勤:10 分 有迟到、早退、请假现象:8 分 旷课 1 天:2 分 旷课 2 天及以上:0 分 控制要求详细,变化多样,能自主设计程序 实现自己的控制要求,想法独特。能灵活运 用相关专业知识,有较强的创新意识,有独 特见解,设计有一定应用价值。 动手能力强,能独立完成接线及编程工作, 能解决设计及实验过程中出现的问题。 注重团队合作,在小组中表现突出,对设计 方案的制定及选取起主要作用, 在实验操作 过程中,承担主要执行者。 报告结构严谨合理;文理通顺,技术用语准 确, 符合规范; 图表完备、 正确, 绘图准确、 符合国家标准; 。 总 分
2.硬件系统设计与分析
综合考虑系统成本,选用以下元器件组成电路,电路原理图如图 2 所示。
A B C D E F G Dp
C1
30pF
U1 X1
19 XTAL1 12M 18 XTAL2 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 2 3 4 5 6 7 8 9 19 1 A0 A1 A2 A3 A4 A5 A6 A7 CE AB/BA 74LS245 B0 B1 B2 B3 B4 B5 B6 B7 18 17 16 15 14 13 12 11 A B C D E F G Dp 1 2 3 4 5 6 7 8
C1
30pF
U1 X1
19 XTAL1 1Biblioteka M 18 XTAL2C2 C3
30pF
图 4 时钟电路
(3)复位电路 复位电路如图 5 所示,单片机在开始运行程序前必须进行复位操作,复位的 作用使单片机内部的特殊功能寄存器 (SFR) 处于确定的状态为运行程序做准备, 在复位后端口为高电平。复位的条件是让 RST 复位引脚保持高电平至少 2 个机 器周期,当晶振为 12MHz 时,单个机器周期为 1us 时间,复位电路由 RC 电路 组成,复位过程即 RC 电路的充电过程,电解电容选用 10uF,R1 为 10k,R6 为
XTAL2
9
RST
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51
图 9 微控制器
3.软件系统分析与设计
(1)主程序 主程序对声光报警电路、温度传感器进行初始化,对定时器进行初始化开启 定时器中断。主循环读取温度数据,判断温度范围,若温度超限,声光报警电路 动作。主程序流程图如图 10 所示。
图 2 电路原理图
1 2 3 4 5 6 7 8
U2
3 2 1 VCC DQ GND DS18B20 91.0
低: -20
显示电路由八位共阳型数码管组成;驱动电路采用 74LS245 驱动数码管显 示器;温度传感器采用 DS18B20 单线制温度传感器;声音报警电路使用蜂鸣器; 光电报警电路使用两路发光二极管实现高温、低温报警。 (1)显示电路 显示电路采用两个四位一体共阳型数码管组成,如图 3 所示。显示方式采用 动态扫描方式,驱动电路由 74LS245 提供驱动电流。P0 口送出数码管八位段选 码,位选码由 P2 口送出至 74LS245,74LS245 为数码管提供驱动电流。
2
工作量
20
3
出勤情况
10 分
4
设计、实验 方案
30 分
5
实验技能
10 分
6
小组表现
5分
7
设计报告质 量
20 分
评语:
等
级: 职称: 2018 年 月 日
评阅人: 日期:
1.系统总体设计方案
温度报警器的系统组成如图 1 所示。 温度报警系统由: 温度传感器 DS18B20、 微控制器、数码管显示器、蜂鸣器和报警灯等主要电路组成。
图 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.