测控系统原理与设计课程设计课题:DS18B20测温系统班级测控1081班学号1081203136姓名邹蒙专业测控技术与仪器学院电子与电气工程学院指导教师庄立运淮阴工学院测控技术与仪器教研室2011年12月温度是工农业生产中最常见的参数之一,与产品的质量,生产效率、安全生产的密切相关,因此在生产过程中需对温度进行检测监控。然而,传统的测温系统多以二极管、Pt100及AD590作为温度检测单元,通过信号处理电路将待测温度的变化,从而实现温度的测量。伴随着微电子技术的发展,利用单线总线实现信号双向传输的数字温度传感器的出现,改变了传统测量温度方法一、设计目的《测控系统原理与设计》课程设计是一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。在课程设计过程中,在教师指导和同学帮助下,应用工程的方法,通过一个简单课题的设计练习,可使学生初步体验测控系统的设计过程、设计要求、完成的工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。通过课程设计,应该能加强学生如下能力的培养:(1)独立工作能力和创造力;(2)综合运用专业及基础知识,解决实际工程技术问题的能力;(3)查阅图书资料、产品手册和各种工具书的能力;(4)工程绘图的能力;(5)编写技术报告和编写技术资料的能力。在日常生活及农业生产中,经常要用到温度的检测及控制,由此可见单片机在我们的生活中扮演十分重要的角色,让我们认识到单片机已经深入各个领域。我们通过课程设计不仅能够加强自己动手操作能力和培养技术能力,而且加深对打片机的认识增加自己知识面和激发对单片机的学习热情以及对科学知识的探索。本次设计的内容是基于单片机学习板的数字测温仪设计,采用温度传感器DS18B20作为环境温度检测元件,其中主控器为STC89C52RC、显示电路是经D8255AC-2扩展连接数码管,再由蜂鸣器作为温度报警部分。温度传感器检测到环境温度进行转换保存高速缓存RAM中,主控器在发出命令后在读取数据进行处理,再输出数据到显示部分控制其显示的具体温度值。二、设计要求(1)认真研究设计任务书,明确设计要求、条件、内容和步骤;复习课程有关内容,熟悉有关单元电路的设计方法和步骤;搜集、分析、消化相关资料、软件等;掌握微型计算机应用系统软件设计方法;准备好设计需要的图书、资料和工具;拟定设计计划等;(2)系统总体及功能设计,制定总体方案及元器件的选择;(3)硬件设计,完成硬件结构图设计、系统电路图设计和绘制及电路模块的连接;(4)软件设计,完成软件流程图的设计、程序设计与调试;(5)系统程序调试;(6)设计工作总结;(7)写出设计报告。三、硬件电路总体设计3.1系统硬件总框图图1硬件总框图3.2系统设计原理3、2、1AT89C52单片机AT89C52引脚图本设计中所用的单片机型号为AT89C52,其主要特性为:1)有CHMOS工艺的节能运行方式2)兼容MCS51指令系统3)3个16位可编程定时/计数器中断4)2个串行中断5)2个外部中断源6)2个读写中断口线7)低功耗空闲和掉电模式8)8k可反复擦写(1000次)FlashROM9)256x8bit内部RAM10)时钟频率0-24MHz11)可编程UART串行通道12)共6个中断源,3级加密位13)软件设置睡眠和唤醒功能3、2、2四位共阳数码管LG5641BHLG5641BH引脚图显示电路采用4位共阳LED数码管,从P1口输出段码,列驱动用8255。3、2、3温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出北侧温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:①独特的单线接口仅需要一个端口引脚进行通信;②多个DS18B20可以并联在惟一的三线上,实现多点组网功能;③无须外部器件;④可通过数据线供电,电压范围为3.0~5.5V;⑤零待机功能;⑥温度以9或12位数字量读出;⑦用户可定义的非易失性温度报警设置;⑧报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;⑨负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2所示。图2DS18B20内部结构图64位ROM的位结构如图3所示。开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。非易失性温度报警器触发器TH和TL,可通过软件写入户报警上下限。图364位ROM结构图DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图4所示。头2个字节包含测得的温度信息,第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义热图5所示。低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要改动,R1和R0决定温度转换得精度位数,即用来设置分辨率,定义方法见表1。图4高速暂存RAM结构图图5配置寄存器表1DS18B20分辨率的定义规定由表1可见,DS18B20温度转换的时间比较长,而且设定的分辨率越高,所需要的温度转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6,7,8字节保存未用,表现为逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。单片机可以通过单线接口读出数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。温度值格式如图6所示。图6温度数据值格式当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码转换为原码,再计算十进制。表2是一部分温度值对应的二进制温度数据。表2DS18B20温度与测得值对应表DS18B20完成温度转换后,就把测得的温度值与RAM中的TH,TL字节内容作比较。若TTH或TTL,则将该器件内的报警标志置位,并对主机发出报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到ROM数据是否正确。DS18B20的测温原理如图8所示。图中第温度系数晶振的震荡频率受温度的影响很小,用于产生固定频率的脉冲送给减法计数器1;高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入.图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数震荡器产生的时钟脉冲计数,进而完成温度测量。计数门的开启时间由高温度系数震荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1,温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1所对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将被重新装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。图7中的斜率累加器用于补偿和修正测温过程中的非线形性,其输出用于减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被预测值。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要,系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20→发ROM功能命令→发存储器操作命令→处理数据。图7DS18B20测温原理图DS18B20与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图8所示.单片机端口接单线总线,为为保证有效DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。图8DS18B20采用寄生电源的电路图当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD和GND端均接地。由于单线制只有一根线,因此发送接口必须是三态的。3、3硬件原理电路图及仿真图硬件原理电路图仿真图四、软件流程框图4.1主程序主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的测量温度值,温度测量1s进行一次,其程序流程图见下图。DS18B20温度计主程序流程图4.2温度程序温度转换命令子程序主要是发温度转换开始命令,当采用12分辨率时转换时间为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图所示。温度转换命令子程序流程图计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判断,其程序流程图如图所示。计算温度子程序流程图4.3显示程序显示数据刷新子程序主要是对显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图所示。显示数据刷新子程序流程图DS18B20的各个ROM命令⑴ReadROM[33H]这个命令允许总线控制器读到DS18B20的8位系列编码,惟一的序列号和8位CRC码。只有在总线上存在单只DS18B20的时候才能使用这个命令。如果总线上有不止一个从机,当所有从机试图同时传送信号时,就会发生数据冲突。⑵MatchROM[55H]这个是匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定DS18B20,只有和64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或三个器件时都可以使用。⑶SkipROM[0CCH]这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下,可以节省时间。如果总线上不止一个从机,在SkipROM命令之后跟着发一条读命令,由于多个从机同时传送信号。总线上就会发生数据冲突。⑷SearchROM[0F0H]当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线所有从机的64位编码。⑸AlarmSearch[0ech]这条命令的流程和SearchROM相同。然而,只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。⑹WriteScratchpad[4EH]这个命令向DS18B20的暂存器TH和TL中写入数据。可以在任何时刻发出复位命令来中止写入。⑺ReadScratchpad[0BEH]这个命令读取暂存器的内容。读取将从第1个字节开始,一直进行下去,直到第9个字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。⑻CopyScratchpad[48H]这个命令把暂存器的内容拷贝到DS18B20的EEROM存储器里,即把温度报警触发字节存入非易失性存储器里。如果