《毕业论文_基于单片机的温度控制系统(27页).doc》由会员分享,可在线阅读,更多相关《毕业论文_基于单片机的温度控制系统(27页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-毕业论文_基于单片机的温度控制系统-第 19 页安徽机电职业技术学院毕 业 论 文基于单片机的温度控制系统系 (部) 电气工程系 专 业 机电一体化 班 级 机电3112班 姓 名 刘珍珍 学 号 1302113124 指导教师 曾劲松 20132014学年 第 1 学期指导教师评语等级签名日期摘要单片机在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到温度检测和温度控制。为此在本文中设计了基于STC89C51的温度测量系统。这是一种低成本的利用单片机多余I/O口实现的温度检测电路, 该电路非常简单, 易于实现, 并且适用于几乎所有类型的单片机。国内外温度控制系统发展迅速,并在
2、智能化、自适应、参数自整定等方面取得成果。目前社会上温度控制系统大多采用智能调节器,国产调节器分辨率和精度较低,温度控制效果不是很理想,但价格便宜,国外调节器分辨率和精度较高,价格较高。日本、美国、德国、瑞典等技术领先,都生产出了一批商品化的、性能优异的温度控制器及仪器仪表,并在各行业广泛应用本设计研究了一种高精度温度控制系统,采用单总线数字式温度传感器DS18B20和单片机STC89C51组成温度测量仪。首先分析了DS18B20的结构和工作原理,并以此建立,以STC89C51单片机为处理器的温度测量和控制装置的硬件组成和软件设计。测量温度通过LED数码管进行显示。温度控制系统可以通过键盘修改
3、期望的控制温度值。基于DS18B20的温度测量控制系统,具有测量准确、测量范围宽、体积小、控制方便等优点1。该控制系统适于人们日常生活、工业生产和科学领域对温度的控制要求。关键词:温度控制、温度测量、DS18B20传感器、STC89C51单片机目录第1章 概述11.1论文研究的目的11.2论文研究的内容21.3论文研究的意义2第2章 温度控制系统方案的论证与选择32.1 显示的选择32.2 键盘模块的选择32.3 控制模块的选取32.4 加热器的选择42.5 温度传感模块的选择42.6 MCU模块的选择4第3章 系统设计53.1 报警模块53.2 控制模块63.3显示模块63.4 按键模块73
4、.5 温度传感器特性83.6 温度采样部分103.7 模数转换部分113.8 系统电路图12第4章 程序的设计134.1程序流程图134.2 具体应用程序设计13第5章 元件的介绍235.1 DS18B20传感器235.2 STC89C51单片机24致谢26参考文献27第1章 概述1.1论文研究的目的近年来,温度检测在理论上发展的比较成熟 ,但在实际测量和控制中,如何保证快速实时的对温度进行采样,确保数据的正常传输,并能对所测温度场进行较精确的控制,仍然是目前需要解决的问题。温度测控技术包括温度测量技术和温度控制技术两方面。在温度的测量技术中,接触式测温发展较早,这种测量的方式优点是:简单、可
5、靠、低廉、测量精度高,一般能够测得真实温度;但由于检测元件热惯性的影响,响应时间较长,对热容量小的物体难以实现精确的测量,并且该方法不适宜于对腐蚀性介质测温,不能用于超高温测量,难以测量运动物体的温度。另外的非接触式的测量方法是通过对辐射能量的检测来实现温度测量的方法,其优点是:不破坏被测温场,可以测量热容量小的物体,适于测量运动物体的测量,还可以测量区域的温度分布,响应速度较快。但也存在测量误差较大,仪表指示值一般仅代表物体表观温度,测温装置结构复杂,价格昂贵等缺点。因此,在实际的温度测量中,要根据具体的测量对象选择合适的测量方法,在满足测量精度要求的前提下尽量减少投入。温度控制是工业生产中
6、经常遇到的过程控制,在很多工艺生产中,温度的控制效果直接影响到产品的质量,因而设计一种比较理想的温度控制系统是非常有价值的。日常生活中,温度值也是一个重要的参考量。此外,对温度信息的采集,检测,控制,不仅保证了产品质量,还节约了能源,在安全生产方面有积极作用。本控制器可实时测量现场温度,并根据温度情况和人为设置情况调节现场温度,使温度保持在一个设定的范围内2。其中人为设置可通过操作按键完成。另外,本系统还具有温度超越界限时的报警功能。 防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。它直接影响到储备物资的使用寿命和工作可靠性。为保证日常工作的顺利进行,首要问题是加
7、强仓库内温度与湿度的监测工作。但传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温湿度测量仪。1.2论文研究的内容本设计的内容是温度测试控制,控制对象就是温度。温度控制在日常生活及工业领域应用相当广泛,比如浴室、水池、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防意外发生。本文将采用了单片机对温度实现自动控制。主要实现的功能是:对被控
8、对象的温度进行实时采集,其主要是通过一传感器(可编程温度传感器DS18B20)将温度转变模拟电信号,再将所得的模拟量转变成数字量送入单片机(AT89S52)中,单片机将传感器所采集到的温度和事先设定的温度进行对比,当小于设定值时将发出信号启动加热装置;当大于设定值时将关闭加热装置,从而使得被控温度控制在一定的范围之内,达到实时控制的功能。1.3论文研究的意义本设计是一温度控制器,拟要实现的功能是:对被控对象的温度进行实时采集,通过温度传感器将温度转变成模拟电信号,再将所得的模拟量转变成数字量送入单片机中并从数码管显示出来,同时单片机将传感器所采集到的温度和事先设定的上下限温度进行对比,当低于设
9、定值时将发出信号启动加热装置;当高于设定值时将关闭加热装置,从而使得被控温度控制在一定的范围之内,达到实时控制的功能。第2章 温度控制系统方案的论证与选择本设计的内容是设计一温度控制器。温度是工业控制对象的主要被控参数之一。本设计将通过单片机实现对温度自动控制。主要实现的功能是:对被控对象的温度进行实时采集和显示,通过按键设定合适温度范围,单片机将传感器所采集到的温度和设定的温度范围进行对比,当小于设定值时将发出信号启动加热装置;当大于设定值时将关闭加热装置,从而使得被控温度控制在一定的范围之内,达到实时控制的功能。通过对要实现的功能进行分析,可分为显示、按键、控制模块、加热器、温度传感模块、
10、MCU模块。2.1 显示的选择本设计需要将温度进行采集并实时显示出来,所以一个合适的显示器是很必要的。就显示来说,需要显示清晰明朗,显示字体要足够大,而且成本要低,控制简单3。考虑以上条件后再结合现有知识,本设计的显示器最终选择共阳四位数码管。显示范围从0-99.9,既满足了温度范围,又有足够的精度(0.1)。最后一位设置并显示C,代表温度单位。2.2 键盘模块的选择本设计中需要通过按键来设定温度范围,需由三个按键构成,一个模式选择:通过此按键可切换温度显示和报警温度的显示以及对报警极限值进行调整。两个温度值上下调节:一个增加,一个减小。、2.3 控制模块的选取在工业生产中当温度超出设定范围时
11、系统要及时作出相应的反应以维持温度在设定范围内。经多方对比后本模块选定由5V继电器来实现,当温度超过预设报警温度时,通过单片机输出高低电平来控制继电器的通断,来实现对加热器的控制。成本低,控制简单,易于实现。2.4 加热器的选择此模块是继电器控制的外部控制器的一个简单缩影,对不同的被控对象来说,实现此模块所用的控制器不同。本设计实现对温度的控制,此模块可为加热器和降温设备。这些不在本设计考虑范围内。2.5 温度传感模块的选择工业中温度的检测精确度是衡量温度控制系统质量好坏的一个非常重要的方面,因此选一个精确的温度传感器是非常关键的。此模块可由多种途径实现:方案一:通过热敏电阻对温度的敏感感知来
12、采集温度信号,此方案需要用A/D转换,使温度模拟信号转换成单片机所需的数字信号;方案二:通过DS18B20传感器来实现对温度的采集,采集的信号直接为数字信号;对比此两种方案,可看出方案二易于实现,电路简单,并且DS18B20的温度分辨率高,最小误差仅为0.1C。因此本设计选用DS18B20来采集温度4。2.6 MCU模块的选择在系统中MCU是核心,考虑到本设计的复杂程度、对MCU的要求及稳定性,本设计采用普通的51 单片机,具体选型时采用可在线编程的STC89C51单片机为系统核心。温度信号通过热敏电阻和放大器转换成电信号,再由ADC0809转换成为数字信号,测温电路采用桥式电路,温度设定采用
13、按键移位式设定方法,温度控制采用光耦和可控硅控制加热器。软件算法采用设定值和测量值相比较的算法。在单片机应用的基础上,实现了一种用带有EPROM的AT89C51单片机控制传感器的自动化温度监控系统。第3章 系统设计3.1 报警模块蜂鸣器报警电路报警采用蜂鸣器发声,由于单片机引脚选通PNP型三极管8550来控制蜂鸣器报警,具体电路如图3.1。图3.1 报警模块3.2 控制模块此模块采用5V继电器来实现,同报警电路一样,也用8550三极管选通,具体电路如图2.2。图3.2 控制模块图3.3显示模块LED显示器是单片机应用系统中常见的输出器件,而在单片机的应用上也是被广泛运用的。如果需要显示的内容只
14、有数码和某些字母,使用LED数码管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。此模块采用三极管驱动四位共阳数码管来显示5 LED数码管作为显示字段的数码型显示器件,它是由若干个发光二极管组成的。当发光二极管导通时,相应的一个点或一个笔画发亮,控制不同组合的二极管导通,就能显示出各种字符,常用的LED数码管有7段和“米”字段之分。这种显示器有共阳极和共阴极两种。共阴极LED显示器的发光二极管的阴极连在一起,通常此共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极接在一起,通常此共阳极接正电
15、压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。本次设计所用的LED数码管显示器为共阳极。LED数码管的使用与发光二极管相同,根据材料不同正向压降一般为1.52V,额定电流为10MA,最大电流为40MA。静态显示时取10MA为宜,动态扫描显示可加大脉冲电流,但一般不超过40MA。 具体电路图如下:图3.3 显示模块3.4 按键模块本设计共三个按键,低电平有效。电路如上图。图3.4 按键模块图3.5 温度传感器特性本设计中选择DS18B20作为温度传感器。DS1820S(16 脚SSOP):所有上表中未提及的引脚都无连接。表3.1 引脚说明16脚SSOPPR35符号说明9
16、1GND接地82DQ数据输入/输出脚;对于单线操作:漏极开路73VDD可选的VDD引脚DS18B20的特性: 独特的单线接口仅需一个端口引脚进行通讯; 简单的多点分布应用; 无需外部器件; 可通过数据线供电; 零待机功耗; 测温范围-55+125,以0.5递增。华氏器件-672570F,以0.90F 递增; 温度以9 位数字量读出; 温度数字量转换时间200ms(典型值); 用户可定义的非易失性温度报警设置。 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统6DS1820 数字温度计以9 位数字量的形式反映器件的温度值。D
17、S1820 通过一个单线接口发送或接收信息,因此在中央微处理器和DS1820 之间仅需一条连接线(加上地线)。用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。因为每个 DS1820 都有一个独特的片序列号,所以多只DS1820 可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。这一特性在HVAC 环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。DS1820 数字温度计以9 位数字量的形式反映器件的温度值7。DS1820 通过一个单线接口发送或接收信息,因此在中央微处理器和DS1820 之间仅需一条连接线(加上地线)。用于读写和温度转换的电
18、源可以从数据线本身获得,无需外部电源。因为每个DS1820 都有一个独特的片序列号,所以多只DS1820 可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。这一特性在HVAC 环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。DS1820 有三个主要数字部件8:1)64 位激光ROM,2)温度传感器,3)非易失性温度报警触发器TH 和TL。器件用如下方式从单线通讯线上汲取能量:在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。DS1820 也可用外部5V 电源供电。DS18
19、20 依靠一个单线端口通讯。在单线端口条件下,必须先建立ROM 操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面5 个ROM 操作命令之一:1)读ROM,2)匹配ROM,3)搜索ROM,4)跳过ROM,5)报警搜索。这些命令对每个器件的激光ROM 部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。成功执行完一条ROM操作序列后,即可进行存储器和控制操作,控制器可以提供6 条存储器和控制操作指令中的任一条。一条控制操作命令指示DS1820 完成一次温度测量。测量结果放在DS1820 的暂存器里,用一条读暂存器内容的
20、存储器操作命令可以把暂存器中数据读出。温度报警触发器TH 和TL 各由一个EEPROM 字节构成。如果没有对DS1820 使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。可以用一条存储器操作命令对TH 和TL 进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写。DS18B20供电方式 图3.5 供电方式图 DS1820 是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-5
21、5)的值增加,表明所测温度大于-55。同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力9。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。DS1820 内部对此计算的结果可提供0.5的分辨力。温度以16bit 带符号位扩展的二进制补码形式读出,表1 给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS1
22、820 测温范围-55+125,以0.5递增。如用于华氏温度,必须要用一个转换因子查找表。3.6 温度采样部分温度采样单元,用于采集被控对象的温度参数,它由温度电压转换、小信号放大及A/D转换三部分组成。其中,将温度转化为电量的温度电压转换由温度传感器-热敏电阻实现,小信号放大由桥式放大电路实现,A/D转换选择模数转换器ADC0809,将采集到的温度模拟信号转换为AT89C51能够处理的二进制数字信号。图3-2 温度采样单元温度传感器:广义来讲,一切随温度变化而物体性质亦发生变化的物质均可作为温度传感器。例如,我们平常使用的各种材料、元件,其性质或多或少地都会随其所处的环境温度变化而变化,因而
23、它们几乎都能作为温度传感器使用。但是,一般真正能作为实际中可使用的温度传感器的物体一般需要具备下述条件:1物体的特性随温度的变化有较大的变化,且该变化量易于测量。2对温度的变化有较好的一一对应关系,即对除温度外其他物理量的变化不敏感。3性能误差及老化小、重复性好,尺寸小。4有较强的耐机械、化学及热作用等的特点。5与被检测的温度范围和精度相适应。6价格适宜,适合于批量生产。符合上述条件的常用温度传感器有热电偶、热电阻、光辐射温度计、玻璃温度计、半导体集成温度传感器等。 3.7 模数转换部分模数转换是将模拟输入信号转换为N位二进制数字输出信号的技术。采用数字信号处理能够方便地实现各种先进的自适应算
24、法,完成模拟电路无法实现的功能,因此,越来越多的模拟信号处理正在被数字技术所取代。与之相应的是,作为模拟系统和数字系统之间桥梁的模数转换的应用日趋广泛。为了满足市场的需求,各芯片制造公司不断推出性能更加先进的新产品、新技术,令人目不暇接。一、 模数转换技术本次设计还涉及到数模转换技术,而模数转换技术包括采样、保持、量化和编码四个过程。1采样就是将一个连续变化的模拟信号x(t)转换成时间上离散的采样信号x(n)。根据奈奎斯特采样定理,对于采样信号x(t),如果采样频率fs大于或等于2fmax(fmax为x(t)最高频率成分),则可以无失真地重建恢复原始信号x(t)。实际上,由于模数转换器器件的非
25、线性失真、量化噪声及接收机噪声等因素的影响采样速率一般取fs=2.5fmax。通常采样脉冲的宽度tw是很短的,故采样输出是断续的窄脉冲。2要把一个采样输出信号数字化,需要将采样输出所得的瞬时模拟信号保持一段时间,这就是保持过程。3量化是将连续幅度的抽样信号转换成离散时间、离散幅度的数字信号,量化的主要问题就是量化误差。假设噪声信号在量化电平中是均匀分布的,则量化噪声均方值与量化间隔和模数转换器的输入阻抗值有关。4编码是将量化后的信号编码成二进制代码输出。这些过程有些是合并进行的,例如,采样和保持就利用一个电路连续完成,量化和编码也是在转换过程中同时实现的,且所用时间又是保持时间的一部分。二、
26、积分型模数转换器积分型模数转换器称双斜率或多斜率数据转换器,是应用最为广泛的转换器类型。双斜率转换器包括两个主要部分:一部分电路采样并量化输人电压,产生一个时域间隔或脉冲序列,再由一个计数器将其转换为数字量输出。双斜率转换器由1个带有输人切换开关的模拟积分器、1个比较器和1个计数单元构成。积分器对输入电压在固定的时间间隔内积分,该时间间隔通常对应于内部计数单元的最大计数。时间到达后将计数器复位并将积分器输入连接到反极性(负)参考电压。在这个反极性信号作用下,积分器被“反向积分”直到输出回到零,并使计数器终止,积分器复位。 积分型模数转换器的采样速度和带宽都非常低,但它们的精度可以做得很高,并且
27、抑制高频噪声和固定的低频干扰(如50 Hz或60 Hz)的能力,使其对于嘈杂的工业环境以及不要求高转换速率的应用非常有效。3.8 系统电路图图3.6 系统电路图 系统的总体连接电路图如图3.6。图中,四位数码管采用动态扫描显示。第4章 程序的设计4.1程序流程图图4.1 程序流程图程序简要说明:DS18B20温度计,温度测量范围099.9摄氏度, 可设置上限报警温度、下限报警温度,即高于上限值或者低于下限值时蜂鸣器报警,默认上限报警温度为32、默认下限报警温度为10,报警值可设置范围:最低上限报警值等于当前下限报警值,最高下限报警值等于当前上限报警值,将下限报警值调为0时为关闭下限报警功能10
28、。4.2 具体应用程序设计#include #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 /定义蜂鸣器#define JDQ P3_5 bit shanshuo_st; /闪烁间隔标志bit beep_st; /蜂鸣器间隔标志sbit DIAN = P27; /小数点uchar x=0; /计数器signed char
29、 m; /温度值全局变量uchar n; /温度值全局变量uchar set_st=0; /状态标志signed char shangxian=32; /上限报警温度,默认值为38signed char xiaxian=10; /下限报警温度,默认值为38uchar code LEDData=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff;/*延时子程序*/void Delay(uint num) while( -num );void shortdelay(void) /误差 0us unsigned char a,b,c; for
30、(c=165;c0;c-) for(b=100;b0;b-) for(a=150;a0;a-); _nop_; /if Keil,require use intrins.h _nop_; /if Keil,require use intrins.h/*初始化定时器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) interr
31、upt 0 EX0=0; /关外部中断0if(DEC=0&set_st=1) shangxian-; if(shangxianxiaxian)shangxian=xiaxian; else if(DEC=0&set_st=2) xiaxian-; if(xiaxian99)shangxian=99; else if(ADD=0&set_st=2) xiaxian+; if(xiaxianshangxian)xiaxian=shangxian;/*读取温度*/void check_wendu(void) uint a,b,c; c=ReadTemperature()-5; /获取温度值并减去DS
32、18B20的温漂误差 a=c/100; /计算得到十位数字 b=c/10-a*10; /计算得到个位数字 m=c/10; /计算得到整数位 n=c-a*100-b*10; /计算得到小数位 if(m99)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(
33、) /显示温度 P2 =0xc6; /显示C P1 = 0xf7; Delay(300); P2 =LEDDatan; /显示个位 P1 = 0xfb; Delay(300); P2 =LEDDatam%10; /显示十位 DIAN = 0; /显示小数点 P1 = 0xfd; Delay(300); P2 =LEDDatam/10; /显示百位 P1 = 0xfe; Delay(300); P1 = 0xff; /关闭显示/*显示报警温度子程序*/Disp_alarm(uchar baojing) P2 =0xc6; /显示C P1 = 0xf7; Delay(200); P2 =LEDDa
34、tabaojing%10; /显示十位 P1 = 0xfb; Delay(200); P2 =LEDDatabaojing/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=shangxian)|(mxiaxian) shortd
35、elay();JDQ=0; else JDQ=1;/*主函数*11/void main(void) uint z; InitTimer(); /初始化定时器 EA=1; /全局中断开关 TR0=1; ET0=1; /开启定时器0 IT0=1; IT1=1; check_wendu(); check_wendu(); for(z=0;z2)set_st=0; if(set_st=0) EX0=0; /关闭外部中断0 EX1=0; /关闭外部中断1 check_wendu(); Disp_Temperature();Alarm(); /报警检测 else if(set_st=1) BEEP=1;
36、/关闭蜂鸣器 EX0=1; /开启外部中断0 EX1=1; /开启外部中断1 if(x=10)shanshuo_st=shanshuo_st;x=0; if(shanshuo_st) Disp_alarm(shangxian); else if(set_st=2) BEEP=1; /关闭蜂鸣器 EX0=1; /开启外部中断0 EX1=1; /开启外部中断1 if(x=10)shanshuo_st=shanshuo_st;x=0; if(shanshuo_st) Disp_alarm(xiaxian);/*END*/*DS18B20头文件*/DS18B20.h:#include #define
37、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); /精确延时,大于480us DQ = 1; /拉高总线 Delay_DS18B20(14); x = DQ; /稍做延时后,如果x=0则初始化成功,x=1则初始化失败 Delay_DS18B
38、20(20);/*读一个字节*/unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat = 0; for (i=8;i0;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; i0; i-) DQ = 0; DQ = dat&0x01; D
39、elay_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=Read
40、OneChar(); /读低8位 b=ReadOneChar(); /读高8位 t=b; t=8; t=t|a; tt=t*0.0625; t= tt*10+0.5; /放大10倍输出并四舍五入 return(t);第5章 元件的介绍5.1 DS18B20传感器DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰
41、,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。1: 技术性能描述(1)、 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)、测温范围 55+125,固有测温误差(注意,不是分辨率,这里之前是错误的)0.5。(3)、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。(4)、工作电源: 35V/DC (可以数据线寄生电源)5)、在使用中不需要任何外围元件(6)、 测量结果以912位数字量方式串行传送
42、(7)、不锈钢保护管直径 6(8)、适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温(9)、 标准安装螺纹 M10X1, M12X1.5, G1/2”任选(10)、PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。图5.1 DS18B20传感器实物图5.2 STC89C51单片机 STC89C52RC系列单片机,STC89C52RC是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C52RC系列单片机是单时钟/ 机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机,全新