您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于DS18B20的多点温度测量及报警
《微型计算机控制技术》课程设计报告课题名称多点温度检测系统设计专业自动化(交通信息与工程)班级自动化一班学生姓名指导教师李曙光2015年7月3日1目录一、设计题目...................................................................................................................................2二、任务要求...................................................................................................................................2三、总体设计方案...........................................................................................................................23.1控制模块………………………………………………………………………………..23.2温度显示模块…………………………………………………………………………..33.3温度采集模块…………………………………………………………………………..43.4键盘控制模块…………………………………………………………………………..63.5报警模块………………………………………………………………………………..6四、各硬件模块电路设计...............................................................................................................74.1单片机最小系统硬件仿真图…………………………………………………………..84.2温度显示模块硬件仿真图……………………………………………………………..84.3温度采集模块硬件仿真图……………………………………………………………..94.4按键控制模块硬件仿真图……………………………………………………………..94.5报警模块硬件仿真图…………………………………………………………………..94.6硬件实现……………………………………………………………………………....10五、各个软件模块设计和流程图.................................................................................................125.1软件设计总流程图……………………………………………………………………125.2DS18B20初始化……………………………………………………………………...135.3读DS18B20测得的温度……………………………………………………………..145.4数码管显示数据处理…………………………………………………………………15.5.5按键处理………………………………………………………………………………16六.设计总结及参考资料.............................................................................................................166.1设计总结………………………………………………………………………………..166.2参考文献………………………………………………………………………………..17七.附件.........................................................................................................................................18附件一:完整源程序……………………………………………………………………….18附件二:完整的器件清单及硬件电路图………………………………………………….282一、设计题目多点温度检测系统设计二、任务要求(1)使用ds18b20为温度传感器;(2)检测点数为2点以上,检测温度范围为-40到40度之间,测量相应时间小于1s;(3)完成温度数据的实时显示;(4)设计一报警电路,当采集的温度越限(超过键盘设置的上下限)时产生声光报警。三、总体设计方案3.1控制模块1)主要功能采用Atmel公司的AT89S51单片机,它作为系统的核心部分,和温度采集单元之间,它直接对温度传感器进行指令操作,获取温度传感器的温度数据后进行各种处理,然后通过显示模块显示出温度值,工作过程中,接收来自键盘控制模块的信号,并对其作出相应的响应,同时,它不断检测DS18B20测取的温度值是否超过了设定的上限温度或下限温度,如果超过则对报警模块发出指令令其报警。2)器件选择AT89S51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编控制模块温度显示模块温度采集模块键盘控制模块报警模块3程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S51在众多嵌入式控制应用系统中得到广泛应用。AT89S51具有完整的输入输出、控制端口、以及内部程序存储空间。与我们通常意义上的微机原理类似,可以通过外接A/D,D/A转换电路及运放芯片实现对传感器传送信息的采集,且能够提供以点阵或LCD液晶及外接按键实现人机交互,能对内部众多I/O端口连接步进电机对外围设备进行精确操控,具有强大的工控能力。图一AT89S51管脚图3.2温度显示模块1)主要功能实时显示两个DS18B20温度传感器采集到的温度,在按键的设置下显示设定的报警温度上、下限值。2)器件选择该模块采用两个四位的八段译码管和一块八位锁存器74HC573组成,采用扫描显示的方式显示八位数据。数码管分为共阳型和共阴型,共阳极型就是发光管的正极都连在一起,作为一条引线,负极分开。八段数码发光管就是8个发光二极管组成的,在空间排列成为8字型带个小数点,只要将电压加在阳极和阴极之间相应的笔画就会发光。48个发光二极管的阳极并接在一起,8个阴极分开,因此称为共阳八段数码管。相反则为共阴八段数码管。图二数码管显示字段(a)八段数码管结构(b)共阴型数码管(c)共阳型数码管图三八段LED数码显示管原理和结构3.3温度采集模块1)主要功能实时测量两个侧两点的温度52)器件选择该模块采用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的不同封装形式63.4键盘控制模块1)主要功能通过按键进行工作模式的切换,并且用按键进行上限温度和下限温度的更改2)器件选择该模块采用几个按钮开关和相应的几个10K电阻组成,当按下按钮是,得到一个低电平信号送入单片机,松开开关后变回高电平信号,单片机识别此信号并对此做出响应。图五按键3.5报警模块1)功能实现当两个DS18B0中任意一个测取的温度超过设定的温度上、下限时,蜂鸣器响,以此报警。2)器件选择该模块采用蜂鸣器来实现,蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为有源蜂鸣器和无源蜂鸣器两种类型。有源蜂鸣器与无源蜂鸣器的区别(注意:这里的“源”不是指电源,而是指震荡源):有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。无源蜂鸣器的优点是:1.便宜2.声音频率可控,可以做出“多来米发索拉西”的效果3.在一些特例中,可以和LED复用一个控制口有源蜂鸣器的优点是:程序控制方便。综上所述,本实验采用无缘蜂鸣器。7图六:有源和无源蜂鸣器的外观a)有源b)无源四、各硬件模块电路设计P0P0D0Q0ABCDEFGDPAT89C5174HC5737SEG-MPX4-CC74HC138ABCP2.2P2.3P2.4P1.0P1.1P1.2P1.5P3.6P3.7K1K1K1蜂鸣器DS18B20DS18B20图七单片机端口分配图总的硬件仿真图附于附录中。下面是各模块硬件仿真连线图:84.1单片机最小系统硬件仿真图4.2温度显示模块硬件仿真图94.3温度采集模块硬件仿真图4.4按键控制模块硬件仿真图4.5报警模块硬件仿真图104.6硬件实现初始显示界面(显示两点测量温度)设定温度上限显示界面(显示温度上限值30°和第二点测量温度)11设定温度下限显示界面(显示温度下限值0°和第二点测量温度)12五、各个软件模块设计和流程图5.1软件设计总流程图开始读第一个DS18B20的温度读第二个DS18B20的温度按键扫描是否有按键按下按键处理数码管显示数据处理数码管显示温度检测第一个DS18B20温度是否大于等于温度上限或者小于等于下限蜂鸣器报警检测第二个DS18B20温度是否大于等于温度上限或者小于等于下限蜂鸣器报警YYYNNN首先,读取第一个DS18B20测得的温度存入数组temp_buff中,然后读取第二个DS18B20测得的温度存入数组temp1_buff中,随后进行按键扫描和按键处13理,对接下来要显示的模式进行选择,然后对数码要管显示的数据进行处理,根据选择的不同的模式读取相应的缓存,经过数码管扫描读出相应的温度,最后,依次判断两个点的测量温度是否超过设定的温度报警值,若超过,蜂鸣器报警,若未超过,继续从开始处循环。5.2DS18B20初始化开始向DS18B20发出复位脉冲释放总线是否输出脉冲返回检测成功标志flagY清除flag标志N结束DS18B20的通信方式属于单总线通信方式,需按一定的通信协议。单总线的所有处理过程均从初始化开始。其中初始化序列包括一个由主机发出的复位脉冲和其后由从机发出的存在脉冲,存在脉冲让主机知道DS18B20在总线上并且已准备就绪。145.3读DS18B20测得的温度开始初始化跳过ROM匹配温度转换指令初始化跳过ROM匹配读暂存器指令读温度数据数据处理得出温度整数部分TN,温度小数部分TD结束首先对DS18B20进行初始化,然后通过跳过ROM匹配指令、温度转换指令,将DS18B20采集到的数据转化为温度,再通过初始化、跳过ROM匹配指令、读温度暂存器指令,将得到的温度读取出来,最后对得到的温度数据进行处理,令TN=温度整数部分,TD=温度小数部分,以便后续进行使用。155.4数码管显示数据处理1)前四位数码管显示数据处理开始Mode=0将第一个DS18B20测出的温度存入temp[]前四位Ymode=1将设定的温度上限值存入temp[]前四位Mode=2将设定的温度下限值存入temp[]前四位结束YYNN由于数码管数量
本文标题:基于DS18B20的多点温度测量及报警
链接地址:https://www.777doc.com/doc-6156563 .html