您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 智能温度报警系统课设
**大学课程设计说明书学生姓名:学号:学院:专业:题目:智能温度报警系统设计指导教师:职称:2015年月日目录一、研究背景和目的································1二、方案分析设计·································12.1、系统设计方案论证······························12.2、总体设计框图································22.3、DS18B20温度传感器与单片机的接口电路····················10三、系统硬件电路设计······························113.1、主板电路··································113.2、显示电路··································11四、系统软件算法设计······························134.1、主程序···································134.2、读出温度子程序·······························144.3、温度转换命令子程序·····························144.4、计算温度子程序·······························14五、课程设计总结································15六、参考文献··································15附录······································171一研究背景和目的单片机应用已经成为电子设计的一种潮流,单片机的广泛应用是电子技术发展的一个标志,也是电子产品向智能化方向发展的必然趋势。单片机应用领域非常广泛,已经渗透到我们生活的各个领域,单片机以智能、电路设计简单、成本低、性能稳定、经久耐用等优点著称。使用单片机,我们可以将电路简化,通过编写程序来完成复杂的逻辑功能。因电子技术的发展,芯片资源更加丰富,实现的功能更强大,外围电路更简单,使用起来更加方便。本设计所介绍的智能温度报警器与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S52,测温传感器使用DS18B20,用4位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。二方案分析设计2.1系统设计方案论证2.1.1方案一:感温电路由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。2.1.2方案二:温度传感器进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。2.1.3方案确定从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。设计要求■基本范围-50℃-110℃2■精度误差小于0.5℃■LED数码直读显示■可以任意设定温度的上下限报警功能2.2总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。图1总体设计方框图2.2.1主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。管脚图如下图2所示。图2AT89S52管脚图单片机LED显示温度传感器系统复位时钟振荡按键控制状态显示32.2.2显示电路显示电路采用6位共阳LED数码管,从P3口RXD,TXD串口输出段码。2.2.3温度传感器(1)DS18B20简介DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:1)可用数据线供电,电压范围:3.0~5.5V;2)测温范围:-55~+125℃,在-10~+85℃时精度为±0.5℃;3)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃;4)12位分辨率时最多在750ms内把温度值转换为数字;5)负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。6)、测量结果直接输出数字温度信号,以一根总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。(2)DS18B20管脚DS18B20采用3脚PR-35封装或8脚SOIC封装,DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下:图3DS18B20外形图4引脚定义:1)DQ为数字信号输入/输出端;2)GND为电源地;3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。(3)内部结构如下:图4DS18B20内部结构图表164位ROMDS18B20有4个主要的数据部件:光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。温度报警触发器TH和TL,可通过软件写入报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图5所示。头2个字节包含测得的温度信息,第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该5字节各位的定义如表2所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。图5高速暂存RAMTMR11R01111....表2DS18B20字节定义R0R1000101119101112分辨率/位温度最大转向时间/ms93.75187.5375750....表3温度值分辨率设置表如表3所示DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。以下表4为ROM指令表表5为RAM指令表温度LSB温度MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRC6指令约定代码功能读ROM33H读DS1820ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS1820使之作出响应,为下一步对该DS1820的读写作准备。搜索ROM0F0H用于确定挂接在同一总线上DS1820的个数和识别64位ROM地址。为操作各器件作好准备。跳过ROM0CCH忽略64位ROM地址,直接向DS1820发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。表4ROM指令表指令约定代码功能温度变换44H启动DS1820进行温度转换,转换时最长为500ms(典型为200ms)。结果存入内部9字节RAM中。读暂存器0BEH内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中。重调EEPROM0B8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式0B4H读DS1820的供电模式。寄生供电时DS1820发送“0”,外接电源供电DS1820发送“1”。表5RAM指令表(4)温度转换DS18B20启动后保持低功耗等待状态,当需要执行温度测量和AD转换时,总线控制器必须发出[44h]命令。转换完以后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以716位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB式表达,其中S为符号位。表6DS18B20温度值格式表这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。表7是一部分温度值对应的二进制温度数据。温度/℃二进制表示十六进制表示+125000001111101000007D0H+8500000101010100000550H+25.062500000001100100000191H+10.125000000001010000100A2H+0.500000000000000100008H000000000000010000000H-0.51111111111110000FFF8H-10.1251111111101011110FF5EH-25.06251111111001101111FE6FH-551111110010010000FC90H表7一部分温度对应值表8(5)DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。(6)时序由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作RAM命令→处理数据。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单
本文标题:智能温度报警系统课设
链接地址:https://www.777doc.com/doc-2315764 .html