基于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的简易温度报警器的设计
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的温度报警器设计系电子信息工程系专业电子信息工程技术康志凌班级电子信息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温度传感器的恒温报警电路的设计任琴秦冰刘亦佳(武汉军械士官学校,湖北武汉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的测温报警器》
图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_的温度测量报警系统
0 引言温度测量方法较多,根据温度传感器的使用方式,通常可以把温度测量方法分为接触式法测温法和非接触式法测温法。
热敏电阻是最常用的接触式测温法之一,其广泛应用于工农业生产中。
传统的热敏电阻传感器需要搭配测量电路和其他电路进行信号处理,导致其可靠性、准确度和精确度降低[1]。
针对上述问题,美国DALLAS公司新推出了一种新型数字温度传感器-DS18B20,它具有功耗低、抗干扰能力强等优点[2]。
该文介绍了一种以DS18B20数字传感器和AT89C51系列单片机为核心的环境温度测量报警系统,该系统不仅可以实时测量温度,而且还可以根据用户需要,当环境温度出现异常时进行报警提醒。
同时,测得的温度数据会实时显示在输出设备上,为用户提供实时温度。
其硬件部分主要包括时钟电源电路、数码管显示电路、温度测量报警电路以及独立开关按键电路,软件部分主要包括独立按键触发检测程序、温度异常判决程序。
该系统结构简单、成本较低且抗干扰能力极高,可以应用于农业种植温室室温监测等场景,帮助相关产业提高工作效率,降低建设和维护所需的成本。
1 理论及方案设计DS18B20模块是一款由美国DALLAS半导体公司设计的数字温度传感器,它具有成本低廉、传输高效以及电路简单的特点。
该模块工作电压范围宽(3.0 V~5.5 V),并且当电源反接时不会立即烧毁。
DS18B20模块具有4种工作模式,对应4种不同的分辨率和转换时间。
通过改变配置寄存器中的R1位和R0位(R0\R1是配置寄存器中的2个数位)可以对DS18B20模块的工作模式进行设置,不同模式的工作参数见表1。
表1 工作效率参考数据分辨率/位最高转换时间/ms R1R0 993.750010187.500111375.001012750.0011整个测温系统分为的4个板块(如图1所示),通过与AT89C51系列单片机进行交互,共同完成环境温度监测报警工作。
时钟和电源为整个系统提供工作环境,独立按键可以帮助用户设置温度的上、下限,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的温度监控报警系统
二 硬件电路设计
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的温度报警器设计系电子信息工程系专业电子信息工程技术姓名康志凌班级电子信息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世纪工业革命以来,工业发展对是否能掌握温度有着绝对的了解。
在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不靠路这温度的因素。
用数码管与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的多点温度测量及报警课程设计报告
《微型计算机控制技术》课程设计报告课题名称多点温度检测系统设计专业自动化(交通信息与工程)班级自动化一班学生姓名指导教师李曙光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的数字温度报警器的设计
定频率 的 方波 ,通 过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温度测量、报警系统的设计
#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的温度报警器设计的详细描述。
1.硬件设计:-DS18B20温度传感器:DS18B20是一款数字温度传感器,其具有高精度、数字输出、单线传输等特点。
它可以直接与微控制器连接,并通过单线总线协议进行通信。
将其中一根引脚连接到微控制器的GPIO引脚上,并使用上拉电阻将其拉高,以实现简单的单线通信。
- 微控制器:选择一款适合的微控制器,例如Arduino、Raspberry Pi等。
微控制器应该具有足够的GPIO引脚用于连接其他外设,并具备相应的数据处理能力。
-报警器:可以选择蜂鸣器、发光二极管(LED)或其他适合的报警器作为报警设备。
这些设备应具有较大的声光输出,以便及时警示。
2.软件设计:-初始化:在程序中初始化设备的GPIO引脚,并设置它们的输入输出方式。
同时,初始化DS18B20传感器,启动单线总线通信。
-温度读取:通过发送相应的命令,从DS18B20传感器读取当前的温度值。
DS18B20的温度数据以二进制形式存储,并使用一定的协议进行传输。
通过解析二进制数据,并进行适当的计算,可以获得温度值。
-温度比较:将读取到的温度值与设定的阈值进行比较。
如果温度超过阈值,则触发报警。
-报警控制:当温度超过设定阈值时,触发报警器的开启。
该过程涉及控制报警设备的GPIO引脚,使其输出足够的声音或亮度,以引起用户的注意。
-报警复位:当温度降低到设定阈值以下时,关闭报警器。
通过控制报警设备的GPIO引脚,将其输出设置为低电平,以停止声音或亮度。
3.报警策略:-阈值设置:根据具体应用的需求,设定适当的温度阈值。
根据环境和使用要求,选择报警温度和报警时刻。
可以通过软件界面或外部调节器调整阈值。
-报警反馈:为了确保用户能够及时获得报警信息,可以通过增加报警设备的数量或设置报警通知的方式来提高报警反馈。
基于51单片机的DS18B20温度检测_设计报告
课程名称:微机原理课程设计题目:温度检测课程设计随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的温度检测仪。
本设计使用简便,功能丰富。
可以实现温度采集,温度报警,重设上下限温度值等功能。
在现代化的工业生产中,需要对周围环境的温度进行检测和控制。
本设计对温控报警问题展开思考,设计一个能根据需求设置低温到高温进行报警并通过数码管显示的系统。
该系统使用STC89C51单片机,同时运用单线数字温度传感器DS18B20,四位共阴数码管显示,按键控制等模块可实现温度的检测与设置。
课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。
本作品使用四位共阴数码管显示,可以清晰地显示当前的报警温度,一定程度避免使用者使用时出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,实用性很高。
关键字:温度报警器 STC89C51单片机数码管 DS18B20一、课程设计目的和要求 (1)1.1 设计目的 (1)1.2 设计要求 (1)二、总体设计方案 (1)三、硬件设计 (2)3.1 DS18B20传感器 (2)3.2 STC89C51功能介绍 (6)3.3 时钟电路 (8)3.4 复位电路 (8)3.5 LED显示系统电路 (9)3.6 按键控制电路 (11)3.7 蜂鸣器电路 (11)3.8 总体电路设计 (12)四、软件设计 (14)4.1 keil软件 (14)4.2 系统主程序设计 (14)4.3 系统子程序设计 (15)五、仿真与实现 (18)5.1 PROTEUS仿真软件 (18)5.2 STC-ISP程序烧录软件 (19)5.3 使用说明 (20)六、总结 (21)一、课程设计目的和要求1.1 设计目的熟悉典型51单片机,加深对51单片机课程的全面认识和掌握,对51单片机及其接口的应用作进一步的了解,掌握基于51单片机的系统设计的一般流程、方法和技巧,为我们解决工程实际问题打下坚实的基础。
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.
基于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:课题背景测量控制的作用是从生产现场中获取各种参数,运用科学计算的方法,综合各种先进技术,使每个生产环节都能够得到有效的控制,不但保证了生产的规化、提高产品质量、降低成本,还确保了生产安全。
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数字温度报警器课程设计报告书姓名:钟胜强学号: 2 0 0 9 7 0 0 7 2 2专业班级:测控技术与仪器一班指导老师:杨穗所在学院:材料与光电物理学院2012年07 月02日摘要随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于 89S51 单片机的测温系统,详细描述了利用数字温度传感器DS18B20 开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感器DS18B20 的数据采集过程。
对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。
DS18B20 与AT89C51 结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
关键词:单片机DS18B20 温度传感器数字温度计 AT89S52目录1、概述 (1)1.1 课程设计的意义 (1)1.2 设计的任务和要求 (1)2、系统总体方案及硬件设计 (2)2.1 数字温度计设计方案论证 (2)2.1.1 方案一 (2)2.1.2 方案二 (2)2.2 系统总体设计 (3)2.3 系统模块 (4)2.3.1 主控制器 (4)2.3.2 显示电路 (5)2.3.3 温度传感器 (5)2.3.4 报警温度调整按键 (6)3、系统软件算法分析 (7)3.1 主程序流程图 (7)3.2 读出温度子程序 (7)3.3 温度转换命令子程序 (8)3.4 计算温度子程序 (8)3.5 显示数据刷新子程序 (8)3.6 按键扫描处理子程序 (9)4、实验仿真 (10)5、总结与体会 (11)查考文献 (12)附1 源程序代码 (13)2 实物图 (20)1 概述1.1 课程设计的意义本次课程设计是对于我们所学的传感器原理知识所进行的一次实际运用,通过自主的课程设计和实际操作,可增加我们自身的动手能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。当18B20接到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。
2.存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。
第
本设计主要元件有AT89C51、DS18B20、数码管等,其中由AT89C51作为控制器,DS18B20测量温度,再通过74LS245把AT89C51单片机芯片所处理和转化的数据传输到数码管中。当DS18B20感知到温度达到高于70℃或低于-20℃临界值时相应的LED闪烁,同时蜂鸣器发出报警声。晶振是正弦波震荡电路,供本设计数字电路整形后作时钟源。复位电路的作用是把电路恢复到起始状态。本设计的温度报警器电路的总体框图如图2.1所示。
5.执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。数据的读写方法将有下文有详细介绍。
若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。
毕业设计论文
基于DS18B20的温度报警器设计
系电子信息工程系
专业电子信息工程技术姓名康志凌
班级电子信息122学号1201043206
指导教师徐敏N职称讲师
设计时间2014.10.08-2015.04.08
摘要
本设计以AT89C51单片机为核心,设计了一个温度测量报警系统,可以方便的实现温度采集和显示。它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工农业中的温度测量及报警。本设计由AT89C51单片机、DS18B20温度传感器和LED显示器组成,可以直观的显示测量的温度。本设计运行过程中,如果外界温度低于-20℃或高于70℃,系统将出发蜂鸣器,产生报警声音,且对应的LED同步闪烁。
由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,E端接地,保证数据线畅通。8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0.1←D1),其它时间处于输出(P0.1→D1)。
3.控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。ROM指令在下文有详细的介绍。
3.1 DS18B20
(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)在使用中不需要任何外围元件。
(3)可用数据线供电,电压范围:+3.0~ +5.5 V。
(4)测温范围:-55 ~+125 ℃。固有测温分辨率为0.5 ℃。
(5)通过编程可实现9~12位的数字读数方式。
4.3
复位电路的作用就是把电路恢复到起始状态。就像计算器的清零按钮的作用一样,当你进行完了一个题目的计算后肯定是要清零的是吧!或者你输入错误,计算失误时都要进行清零操作。以便回到原始状态,重新进行计算。和计算器清零按钮有所不同的是,复位电路启动的手段有所不同。一是在给电路通电时马上进行复位操作;二是在必要时可以由手动操作;三是根据程序或者电路运行的需要自动地进行。篡位电路都是比较简单的大都是只有电阻和电容组合就可以办到了。复位电路的原理图如图4.4所示。
在设计中,它主要起到了把AT89C51单片机芯片所处理和转化的数据传输到数码管中。
图4.2 AT89C51引脚排列
在本设计中,AT89C51起到控制器的作用。当DS18B20温度传感器芯片测量当前的温度后,把结果送入AT89C51单片机中。然后,通过AT89C51单片机芯片对送来的测量温度读数进行计算和转换,井将此结果送入数码管模块。
4.2
晶振电路是给单片机提供时钟信号的。其中,连接在晶振旁的两个电容叫做负荷电容,一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。晶振电路的原理图如图4.3所示。
信息科学和航空工业的飞速发展给人们生活甚至国家安全带来了巨大的飞跃。我的实习单位是航天八五一一研究所,在我工作期间深刻感觉到温度对焊接工艺的重要性,往往只是高了或低了一二摄氏度,就有可能将电缆或芯片报废掉,造成严重的损失。我们也在重要的位置上放置了一个温度测量报警器
由此可见温度对我们工作生活的重要性,温度传感器以及温度报警器就显得格外重要。
(6)用户可自设定非易失性的报警上下限值。
(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。
(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
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共有三种形态的存储器资源,它们分别是:
4.4
在本设计中,温度报警器的报警温度设为高:70℃,低:-20℃,当DS18B20感知到温度达到此临界值时相应的LED闪烁,同时蜂鸣器会发出报警声。报警电路的原理图如图4.5所示。
图4.5报警电路的原理图
4.5 74LS245
74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。其封装与引脚如图4.6所示。
4.控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。
图4.1温度报警器电路设计原理图
4.1 AT89C51
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚排列如图4.2所示。
图4.3晶振电路的原理图
它是根据晶振厂家提供的晶振要求负载电容选值的,换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差,也能保证温漂等误差。
两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振。本设计中,负荷电容的值是22PF。
关键词:AT89C51,DS18B20,传感器,温度报警器
第
温度是一个十分重要的物理量,对他的测量与控制有着十分重要的意义。随着现代化工农业技术的发展及人民对生活环境要求的提高,人民也迫切需要监测和控制温度.在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在跟温度打着交道。子18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不靠路这温度的因素。
ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上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都存在镜像,以方便用户操作。