电阻断路时,温度计的量程和分度值输出显示温度值为量程的下限值还是上限值

电厂常用温度计原理及特点
1﹒水银温度计:水银温度计结构简单,价格低廉,多用作热工实验室的标准仪表,在现场一般只用作就地测量,比如测量机组各瓦的回油温度,辅机的润滑油温度等。它是利用温包和毛细管内的水银受热膨胀的原理来测量的。它的灵敏度主要取决于毛细管的粗细和温包的大小,这种温度计的误差来源主要有两种,一种是零点下降现象引起的误差,可以在温度计检定的时候校正;一种是认为读数引起的。
2﹒双金属温度计
双金属温度计是根据金属随温度变化产生的弯曲与温度高低成正比的性质而制成的温度计。它的感温元件是用两片膨胀系数不同的金属片叠焊在一起制成的,双金属片受热后由于两个金属片的膨胀系数不相同而产生弯曲,温度越高产生的线膨胀长度差越大,因而引起弯曲的角度也越大。
这种温度计通常被用作温度继电控制器,极限值温度信号器或温度补偿器。主要用于温度联动回路和电机本体入口出口等震动较大的场所。随着工业的发展,现在也有指示式双金属温度计。
双金属温度计结构简单、制造成本低,耐震性也比较好,但这种温度计精度不高,量程不能做的很小,使用范围有限。
3﹒压力表式温度计
压力表式温度计是利用定容气体、液体热胀冷缩压力变化或饱和汽饱和压力变化的性质进行测温的。其基本结构是由感温元件温包、传压元件毛细管、变形元件弹簧管构成的密闭系统。
温包直接与被测介质接触感受温度的变化,毛细管是用金属材料冷拉成的无缝圆管,用来传递压力的变化,盘簧管或弹簧管是弹性元件,感受毛细管传来的压力,产生弹性变形带动指针指示温度值。它主要用于测量水箱温度、沉降池、油箱等容器内的液体温度,它的特点是结构简单具有防爆性,不怕震动,但准确度低,滞后性较大。
压力表式温度计按用途分有指示式、记录式、报警式(带电接点)和调节式等类型。按填充物质不同又可分为气体压力式温度计、蒸汽压力式温度计和液体压力式温度计。
电厂中最常使用的是带接点的压力表式温度计,它不仅具有指示部分,还带有可供两位调节或控制的电接点。电接点装置的上下限接点可按需要调整到任意给定的温度上。上下限的温度值由定接点指示出来,动接点由指针带动。当被测介质的温度超过(或低于)上限(或下限)给定的温度时,温度计指针上的动接点便与上限(或下限)定接点相接触,发出信号闭合(或断开)信号,
4﹒热电阻温度计
热电阻温度计是利用导体或半导体的电阻随温度变化而变化的性质来测量温度的,是电阻输出型感温元件。
现在工业上常用的金属热电阻为铂热电阻、铜热电阻两种,PT100铂热电阻和CU50铜热电阻在电厂最常用。PT100指的是当铂电阻的阻值为100欧姆时,温度指示为0℃,CU50指的是当铜热电阻的阻值为50欧姆时,温度指示为0℃。
金属热电阻分为铠装型热电阻和普通基型热电阻两种,它的结构图一般由电阻丝、骨架、引线和保护管等部分组成。电阻丝是用来感受温度的部分,是热电阻的核心;骨架是用来缠绕、支承和固定电阻丝的支架;引线使热电阻能与外部测量及控制装置连接。保护管用来保护热电阻与引线不直接和所测介质接触,免受有害物质的影响。
在在电厂中一般使用PT100热电阻测量850℃以下介质的温度,当介质温度高于150℃的时候,大多采用铠装PT100热电阻,以防电阻丝与引线的焊接点因温度高而开焊。使用CU50热电阻元件测量100℃以下介质的温度。
热电阻温度计有以下特点:(1)有较高的精确度。例如,铂电阻温度计被作为基准温度计。(2)灵敏度高,输出的信号较强,容易测量显示和实现远距离传送。(3)金属热电阻的电阻温度关系具有较好的线性度,而且复现性和稳定性都较好。但由于体积较大,故热惯性较大,不利动态测温,不能测点温。
5﹒半导体热敏电阻
半导体热敏电阻是一种固态的感温元件,是由铁、镍、锰、钛、铜等金属的氧化物按一定的比例混合后压制、烧结而成。它具有较大的负电阻温度系数。这种热电阻大多用来做电子线路和仪表测量电路中的温度补偿电阻。
热电偶的测量原理是将两种不同的金属导体连接起来组成一个闭合回路,当两端有温差时,回路中就产生热电势,热电偶的测量端叫热端,另一端叫参考端,当参考端的温度恒定不变时,电极产生的热电动势与热端温度的变化是单值函数关系。通过热电偶产生的热电动势就可计算被测介质的温度。
电厂常用的热电偶有铂铑10-铂热电偶和镍铬(镍硅)一镍(镍铝)热电偶。铂铑10-铂热电偶也叫S型热电偶,它是一种贵金属热电偶,它的热电性能稳定,抗氧化性能好,在氧化性、中性气氛中可长期连续使用,在真空中可短期使用。由于它复制性好,测量准确度高,多用于热工试验室中作为标准热电偶使用。镍铬-镍硅(镍铝)热电偶也叫K型热电偶,这种热电偶适用于氧化性和中性气氛中测温,热电极的直径不同,他的测温范围也不同,最高可以测至1300℃,电厂中这种热电偶多用于测量机炉的蒸汽温度、金属壁温、烟气温度等。
热电偶按其结构可以分为普通型热电偶、薄膜热电偶和铠装型热电偶,都是由电极、绝缘子、保护管、接线盒等部分组成。
热电极:用来感受温度的部分,是热电偶的核心,热电极的直径是由自身材料的价格、机械强度、导电率及热电偶的用途决定,热电偶的热端采用焊接方式连接,焊点要光滑、无夹渣、无裂纹。&
绝缘子是防止两个电极之间短路的,保护管是用于防止热电极受到有害物质的化学腐损和污染,避免外界机械损伤。
接线盒是热电偶的热电极与引线连接的装置,起密封和保护热电极的作用。
7﹒补偿导线及补偿器
由热电偶的测温原理知道,热电偶的参考端温度必须保持恒定,在使用热电偶测温时,由于热电偶一般做的比较短,尤其是贵金属材料制成的热电偶更短,这样,热电偶的参考端离被测对象很近,使参考端的温度较高且波动很大,要把参考端延长到温度比较稳定的地方,就要采用补偿导线。
补偿导线是一对在规定温度范围内(一般为0-100℃)使用的热电偶丝。采用与热电偶电极材料相同的金属材料或在规定温度范围内,热电持性与所配接的热电偶相同,且易于获得的价格低廉的金属材料做成。在测温中作为热电偶与二次仪表的连接导线使用。当补偿导线正负两极接反时仪表显示比实际温度低。有些时候只用补偿导线延长热电偶参考端的方法还不能使热电偶的参考端达到恒定,因此,对比较精确的测量必须用参考端温度补偿器。&
它是一个补偿电桥,安装在热电偶的参考端,并与热电偶的指标表连接组成一个测量系统。电阻2、3、4、5为固定阻值,电阻1为铜电阻,当参考端温度变化时铜阻值变化。桥路C、D两端产生电位差抵消热电偶电动势的增加量,起到稳定参考端温度的作用。
在一些记录仪表中,热电偶的补偿器作在记录仪表中,补偿仪表盘内的温度。DAS显示系统中在DAS盘内加补偿器来补偿参考端温度。
7﹒光学高温计
光学高温计是以普朗克定律为理论依据,以测量单一波长的辐射能量来测量温度的,它是单色辐射高温计的一种,目前我国生产的有光学高温计和光电高温计,光学高温计是按黑体对象刻度的,仪表显示的示值为亮度温度。
8﹒比色高温计
比色高温计是根据维恩偏移定律工作的,当温度变化时物体的最大辐射强度向波长增加或减少的方向移动,使在波长λ1和λ2的亮度比发生变化,测量亮度比的变化来测量相应的温度,比色高温计是按被测对象为黑体刻度的显示值为颜色温度。
9﹒红外式温度计
红外式温度计是检测波长为0.8-100mm范围内的热辐射,射度与辐射源的温度之间遵循普朗克定律。通过测量红外辐射能量来测定物体温度。它具有非接触式测温的特点,还具有如下特点:(1)适用于黑夜中测量;(2)可远距离遥测;(3)适用于低温测量;(4)测温响应速度快。
现在电厂应用的很多,比如高压输电线接头温度测量,发电设备、刀闸、供热管网热损测定等。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。查看: 2736|回复: 0
基于单片机的数字温度计 带温度上限设置 毕业论文下载
0.png (65.19 KB, 下载次数: 11)
19:48 上传
完整的毕业设计下载地址:
(466.01 KB, 下载次数: 12)
19:49 上传
点击文件名下载附件
下载积分: 黑币 -5
下面是毕业论文的部分内容预览:
基于单片机的数字温度计设计
摘要:随着科技的发展,温度是经常遇到的测量参数。本文介绍了设计温度计的基本方法与测量原理,其组成部分有:AT89C52单片机、温度传感器DS18B20、按键扫描电路、显示电路以及报警电路。它可以实时地测量温度和设置温度上下限,完成对被测对象温度的自动控制。通过测试表明,该设计对温度的控制有方便实用、操作简单的特点,大大提高了被控对象的各种技术指标。
The Design of Digital Thermometer Based on Single Chip Microcomputer
Abstract: With the development of science and technology, parameters of temperature usually need to measure. This paper introduces design of basic method and measuring principle of the thermometer, its components include AT89C52 single chip computer, temperature sensor DS18B20, button scanning circuit, display circuit and alarm circuit. It can measure temperature in time and set the scope of temperature, and finish to measure temperature automatically. According to our test, the design are convenient and practical, simple operation, and greatly improving all kinds of technical indicators of controlled object.
Key words:AT89C52; DS18B20; Alarm circuit
1.1课题背景
1.2课题研究的目的和意义
1.3国内外测温技术及单片机现状
2系统总体方案设计
2.1系统的设计指标
2.2系统的实现原理
2.3系统的实现方案分析
3 系统硬件设计
3.1 系统总体结构
3.2 AT89C52简介
3.3 DS18B20简介
3.3.1温度传感器DS18B20引脚介绍
3.3.2 DS18B20内部结构与特点
3.3.3 DS18B20 温度测量通信协议
3.4系统硬件设计
3.4.1 复位电路模块
3.4.2 时钟电路设模块
3.4.3 报警电路模块
3.4.4显示电路模块
3.4.5按键电路模块
3.4.6温度检测电路模块
4系统软件设计
4.1系统主程序设计
4.2 DS18B20初始化子程序
4.3 DS18B20读取温度子程序
4.4 显示数据处理子程序
4.5按键扫描子程序
5 系统软硬件调试
1.001.jpg (761 Bytes, 下载次数: 11)
19:50 上传
1引言1.1课题背景& &毋庸置疑,随着科学技术的发展和人们生活的需要,近年来单片机的应用领域越来越宽广。一般的度测量不仅设计复杂,而且精确度非常差,而应用单片机使这个问题得到了很好的解决。在现代社会,温度是一个至关重要的数据,而几十年前的测量方法科技含量太低,显然不能满足现代社会对温度高精确度测量的要求。这些年来专家们研究了几种测温技术,这些测温技术不但很好的提高了测量精度,而且使产品的质量更上一层楼。 由于单片机具有集成度高,通用性好,功能强,尤其体积小,重量轻,耗能低等显著的优势,因此在日常生活和工业生产中得到了广泛应用。本课题就是单片机作为核心器件进行设计的。
1.2课题研究的目的和意义 测量温度的基本方法是使用温度计直接读取温度,如我们大家经常使用的体温计。随着工业生产的需要,人们对温度的测量有了的更高的要求。在迅速发展的科学技术中,前沿技术是传感器技术,特别是温度传感技术,已经渗透到我们生活的各个方面,温度测量在工业生产中占有不可或缺的地位,此外在农业生产中也离不开温度的测量。综上所述,测量温度具有举重若轻的作用。
单片机在各个领域的应用广泛,而把它作为数字温度计的核心部件只是具体应用的一个实例。目前,随着在恶劣的工作环境下的对测温技术的要求,单片机的发展越来越受到人们的重视。
1.3国内外测温技术及单片机现状不可否认,跟发达国家相比,我国测温技术仍然处于较低水平。一般的测温技术只能对较平稳的环境温度进行测量,如果用于恶劣的工作环境,我国的某些技术还达不到要求。但是,随着我国成为世界第二大经济体,经济实力直线上升,我国电子企业也在蓬勃发展。
众所周知,单片机是集成在一块芯片上的计算机系统,它拥有计算机系统的主要部件和功能,如 CPU、并行I/O端口、定时与中断系统、A/D与D/A转换系统、总线系统。随着科学技术的发展,现在大部分单片机功能也更加强大。单片机还可以连接各种各样的外围电路,如定时器、复位电路、时钟电路、传感器等等,我们应用单片机可以对各种各样的数据进行采集。如连接温度传感器DS18B20等芯片,就可以对被测对象进行温度的测量与检测。
2系统总体方案设计2.1系统的设计指标 本课题设计的数字温度计要求能够及时准确地对被测对象进行温度测量,并将其测得的温度值显示在LED数码管上,然后与设定的温度范围比较,如果超过温度限制,则通过蜂鸣器报警,同时报警指示灯闪烁,直到温度回到规定的范围为止。另外,还能够通过按键自己设置温度范围。综上所述,系统设计的要求如下:
1.开机启动,检测各元件是否正常工作。
2.正负温度辨别(正温度红灯亮,负温度绿灯亮)。
3.温度测量的基本范围是-30℃~125℃。
4.软件预设上限温度32℃,下限温度10℃。
5.超过温度上下限即实现报警功能,报警灯闪烁,蜂鸣器震动并发声警示,并在负温度时蜂鸣器震动较急促。
6.支持手动按键设置温度上下限。
2.2系统的实现原理本系统使用温度传感器,并与单片机连接组成温度测量系统,从而完成测量温度。温度传感器对温度的变化十分敏感,它能够把测得的温度及时准确的转化为一串的电路信号,这时我们可以通过显示系统将其测得的温度值显示出来,供人们读取和记录。比如,温度传感器DS18B20是一种集成度很高的温度测量器件,它能够根据当前温度环境的变化产生出一串数字信号。显然,不同的温度环境将会有不同的数字信号,通过该信号能够准确的得到当前环境的温度值,从而完成温度的测量。
2.3系统的实现方案分析 我们同样利用温度传感器DS18B20作为测量器件,由于DS18B20的集成度很高,因此该器件需要的外围电路非常简单。并且DS18B20体积小,节省电路板。此外,DS18B20是高封装的温度传感器,能够直接和单片机通信。测温范围-55℃~+125℃,固有测温分辨率0.5℃。抗干扰能力很强。单片机作为主要组成器件,但这里采用LED 7位数码管进行温度值的显示,显示温度值清晰直观,易于分辨。并且LED数码管占用空间小,经济实惠。
3 系统硬件设计3.1 系统总体结构本方案设计的系统模块由单片机系统、温度传感器模块、数码管显示模块和电源模块组成,其总体结构如图1。
1.002.jpg (12.16 KB, 下载次数: 15)
19:50 上传
图1 系统结构图
该系统是以AT89C52 单片机为核心,在开始运行它向主机先发送初始化命令使DS18B20启动,再发送温度转换命令使数字温度传感器DS18B20 把测得的模拟温度信号转换为数字信号供单片机运算。同时,显示器上显示出当前环境的温度,当温度超出设定的温度上下限范围时,蜂鸣器就会发出警报。
3.2 AT89C52简介单片机经过几十年的蓬勃发展,目前已经是自动控制理论的中流砥柱。对于专业人员来说,掌握单片机原理及其应用已经成为必不可少的一项技能,是专业人员必备的能力和素质之一。单片机的应用十分广泛,在控制领域、家用电器、食品储存等方面,都扮演着一个非常重要的角色。
ATMEL公司采用国际先进的技术手段生产的AT89C52单片机与一般的单片机有所不同,它不仅是一种8位微控制器,具有低功耗和高性能的特点,还拥有非易失性Flash程序存储器。它的主要接口与引脚的特点如下。
其引脚图如图2所示:
P0口:P0口与其他端口不同,它的输出级无上拉电阻。作为通用输出I/O口使用时,输出级是开漏电路,故用其输出去驱动NMOS输入时外接上拉电阻,上拉电阻一般在10KΩ左右即可。这时每一位输出可以驱动4个LS型负载。用作输入时,应先向端口锁存器写1。把P0口用作地址/数据总线时,无需外接上拉电阻。作总线输入时,不需先向端口写1。P0口作总线时,每一位输出可以驱动8个LS型TTL负载。
1.003.jpg (38.98 KB, 下载次数: 14)
19:50 上传
图2 单片机AT89C52引脚图
P1~P3口:P1~P3口接有上拉负载电阻,它们的每一位输出可以驱动4个LS型TTL负载。用作输出口时,任何TTL或NMOS电路都能以正常的方式驱动89C51系列单片机的P1~P3口。由于它们的输出级接有上拉电阻,因此,在使用时无需外接上拉电阻。由于单片机的端口输出电流一般为几毫安,当用作输出口去驱动一个晶体管的基极时,应在基极和端口之间串联一个电阻,以限制高电平时的输出电流。
& && && && &&&P3口用作第二功能:当使用P3口的第二功能时,8个引脚有不同的意义。当某位用作第二功能输入时,该位的锁存器输出端被内部硬件自动置1,并且W在端口不作第二功能输出时保持为1,则与非门3输出低,所以FET截止,该位引脚为高位输入。因此读引脚信号无效,三台缓冲器无效,这样,从引脚输入的第二个能信号,经缓冲器后被直接送给CPU处理。当P3口的某一引脚用作第二功能时,该引脚不能用作通用I/O端口。
P3口各个引脚的第二功能见下表1。
RXD(串行输入口)
TXD(串行输出口)
INT0(外中断0)
INT1(外中断1)
T0(定时/计时器0外部输入)
T1(定时/计时器1外部输入)
WR(外部数据存储器写选通)
RD(外部数据存储器读选通)
& && && && && && && && && &表1&&P3口的第二功能图
RST: RST是复位信号输入端,高电平有效。当单片机正常工作时,该引脚出现两个机器周期的高电平就会使单片机复位;在上电时,由于振荡器需要一定的起振时间,该引脚的高电平必须保持10ms以上才能保证有效复位。
& && && && &&&ALE: ALE是地址锁存器信号,每个机器周期输出两个正脉冲。在访问片外存储器时,下降沿用于控制外接的地址锁存器锁存从P0口输出的低8位地址。在没有接外部存储器时,可以将该引脚的输出作为时钟信号使用,因此它可对外输出时钟或用于定时目的。
PROG:为片内程序存储器的编程脉冲输入端,低电平有效。
& && && && &&&PSEN:片外程序存储器读选通信号输出端,每个机器周期输出两个负脉冲,低电平有效。在访问片外数据存储器时,该信号不出现。& && && && &
EA/VPP:EA为片外程序存储器选择输入端,该引脚低电平时,使用外部程序存储器,为高电平时,使用片内程序存储器;VPP为片内程序存储器编程电压输入端。
& && && && &&&XTAL1:该引脚接外部晶振和微调电容的一端,与单片机内振荡电路一起,产生由外部晶振决定的振荡频率。在使用外部时钟时,该引脚输入外部时钟脉冲。
XTAL2:该引脚接外部晶振和微调电容的另一端,XTAL2接内部反向放大器的输出端,因此在使用外部时钟时,该引脚接地。
3.3 DS18B20简介温度传感器是各种传感器中最常用的一种,早期使用的是模拟温度传感器,如热敏电阻,随着环境温度的变化,它的阻值也按照一定的函数关系发生线性变化,通过采集电阻两端的电压,再根据某个函数关系式就可以计算出当前环境温度。
DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配置微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。
3.3.1温度传感器DS18B20引脚介绍温度传感器DS18B20有两种封装:三脚TO-92直插式和八脚SOIC贴片式,其中三脚TO-92直插式是使用的最多、最普遍的封装。封装引脚如图3所示。
1.004.jpg (7.02 KB, 下载次数: 15)
19:50 上传
图3 DS18B20TO-92封装
下表2列出了温度传感器DS18B20的引脚定义
表2 DS18B20的引脚定义
信号输入输出
引脚功能说明:
GND :接地信号
DQ :数据输入/输出引脚。开漏单总线接口引脚。当被用在寄生电源下,可以向器件提供电源。
VDD :可选VDD引脚,电源电压范围3V~5.5V。当工作于寄生电源时,此引脚必须接地。
3.3.2 DS18B20内部结构与特点 DS18B20的内部结构主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分组成。
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位,12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中。DS18B20温度值格式如二进制表2.2所示,其中,前5位是符号位,如果测得的温度大于0,这5位为0,只要将测得的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于 0.0625即可得到实际温度。
图4 DS18B20温度值格式表
1.005.jpg (15.35 KB, 下载次数: 15)
19:50 上传
1、配置寄存器
DS18B20配置寄存器各字节意义如表3下:
表3 DS18B20寄存器中各位内容
低五位一直都是&1&,其中TM是测试模式位,用于设置温度传感器DS18B20是在工作模式还是在测试模式。温度传感器DS18B20默认该位被设置为0,我们不要去修改。其中,R1和R0作用主要是设置分辨率,具体设置如表4所示:(DS18B20默认设置为12位)。
表4 温度分辨率设置表
温度最大转换时间
2、高速暂存存储器
该存储器一共有9个字节组成。当温度转换命令发出后,经温度传感器的转换所得的温度值以二进制补码形式存放在该存储器的前两个字节。单片机可通过单线接口读到该数据。读取时低位在前,高位在后。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。其中第9个字节是冗余检验字节。
温度传感器DS18B20暂存寄存器分布如表5所示。
表5 DS18B20暂存寄存器分布
寄存器内容
温度值低位(LS Byte)
温度值高位(MS Byte)
高温限值(TH)
低温限值(TL)
配置寄存器
3.3.3 DS18B20 温度测量通信协议由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片中的数据处理。
DS18B20有严格的通信协议来保证各位数据传输的正确性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从属设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,
DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输,其工作时序包括初始化时序、写时序和读时序。
它们的工作时序如图5 (a)(b)(c)所示。
1.006.jpg (14.53 KB, 下载次数: 8)
19:50 上传
图5 (a)初始化时序
DS18B20的初始化过程:
1. 先将数据线置高电平“1”。
2. 延时,尽可能短一点。
3. 数据线拉到低电平“0”。
4. 延时750微秒(该时间的时间范围可以从480到960微秒)。
5.数据线拉到高电平“1”。
6. 延时等待。
7. 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。
8.将数据线再次拉高到高电平“1”后结束。
1.007.jpg (15 KB, 下载次数: 8)
19:50 上传
图5 (b)写时序
DS18B20的写操作过程:
1. 数据线先置低电平“0”。
2. 延时确定的时间为15微秒。
3. 按从低位到高位的顺序发送字节,一次只发送一位。
4. 延时时间为45微秒。
5. 将数据线拉到高电平。
6. 重复上(1)到(6)的操作直到所有的字节全部发送完为止。
7. 最后将数据线拉高。
1.008.jpg (15.92 KB, 下载次数: 9)
19:50 上传
图5 (c)读时序
DS18B20的读操作过程:
1. 将数据线拉高“1”。
2. 延时2微秒。
3. 将数据线拉低“0”。
4. 延时15微秒。
5. 将数据线拉高“1”。
6. 延时15微秒。
7. 读数据线的状态得到1个状态位,并进行数据处理。
8. 延时30微秒。
3.4系统硬件设计3.4.1 复位电路模块本系统采用按键复位电路,按键未按下时,它利用电容来实现复位,在接电瞬间,RST引脚的电位与电源VCC相同,随着充电电流的减少,RST的电位逐渐下降。此时只要保证RST为高电平的时间大于两个机器周期,便可以正常复位;按键按下时,此时电源VCC经两个电阻分压,在RST引脚产生一个复位高电平,从而实现复位。
复位电路如图6所示。
1.009.jpg (11.68 KB, 下载次数: 8)
19:50 上传
图6 复位电路
3.4.2 时钟电路设模块时钟电路作用:单片机外部必须接上振荡器,提供的高频脉冲经过分频处理后,成为单片机内部时钟信号,作为片内各部件协调工作的控制信号。如果没有时钟信号,触发器的状态就不能改变,单片机内部的所有电路在完成一个任务后将最终达到一个稳定状态而不能再继续进行其它任何工作了。
时钟电路如图7所示:
1.010.jpg (7.18 KB, 下载次数: 9)
19:50 上传
图7 时钟电路
3.4.3 报警电路模块当被测环境温度超过温度上下限时,我们需要进行报警处理,这里用到的是蜂鸣器。
蜂鸣器工作电流一般为10mA,而单片机的I/O口只能承受几毫安的电流,因此需要加三极管进行驱动,单片机的I/O口中的P1.4接三极管的基极,当P1.4为低电平时,三极管导通,5V的电压加载到蜂鸣器两端,于是蜂鸣器鸣叫;当P1.4高电平时,三极管截止,蜂鸣器不鸣叫。
报警电路如下图8所示:
1.011.jpg (9.85 KB, 下载次数: 11)
19:50 上传
图8 报警电路
3.4.4显示电路模块显示系统是单片机控制系统的重要组成部分,单片机应用系常采用7段LED数码管作为显示器,这种显示器具有耗电低、线路简单、价格低廉等优点。
LED数码管显示器可以分为共阴极和共阳极两种结构。
(1)共阴极结构:如果所有的发光二极管的阴极接在一起,称为共阴极结构;
(2)共阳极结构:如果所有的发光二极管的阳极接在一起,称为共阳极结构。
七段LED显示器是由7个LED按—定的图形排列组成,如图9所示,七段LED显示器的各个二极管分别称为a、b、c、d、e、f、g段,有些七段显示器增加一个dp段表示小数点,也称为八段LED显示器。
1.012.jpg (7.26 KB, 下载次数: 13)
19:50 上传
图9 典型七段LED器件
将数码管的引脚和单片机的数据输出口相连,控制输出的数据可以使数码管显示不同的数字和字符,通常称控制发光二极管的8位字节数据为段选码。7段LED段选码如表6所示。
表6 7段LED段选码
共阴极段选码
共阳极段选码
共阴极段选码
共阳极段选码
& & 本设计采用四位共阴极动态显示方式,可以直接读取温度值,显示温度可以精确到1℃。
图10为显示电路的连接图。
1.013.jpg (15.68 KB, 下载次数: 16)
19:50 上传
图10 显示电路
3.4.5按键电路模块该电路采用弹性按键。按键电路的作用是手动设置温度的上下限。按下K4,进行上下限报警切换,通过K1和K2调节温度上下限,最后,按下K3确认。
具体的按键电路图如下图11所示:
& && && && && && &
1.014.jpg (12.17 KB, 下载次数: 9)
19:50 上传
图11 按键电路
3.4.6温度检测电路模块该电路中温度传感器采用Dallas公司生产的数字温度传感器DS18B20。该芯片硬件接口简单,使用方便,且节省大量的导线,具有很好的通用性。该系统中将单片机的P1.1引脚与DS18B20的数据线连接。
具体的温度检测电路图如下图12所示:
1.015.jpg (8.5 KB, 下载次数: 14)
19:50 上传
图12 温度检测电路
4系统软件设计 4.1系统主程序设计主程序是系统的监控程序,在程序运行的过程中必须先经过初始化,包括开机启动子程序,中断程序,报警函数,按键扫描子程序以及控制端口的初始化工作。系统在初始化完成后就进入温度测量程序,实时的测量当前的温度并通过显示电路在LCD上显示。程序中以中断的方式来重新设定温度的上下限,根据硬件设计完成对温度的控制,系统软件设计的总体流程图如下图13。
1.016.jpg (45.67 KB, 下载次数: 13)
19:50 上传
& && && && &&&图13 系统主程序框图
主程序如下:
void&&main()
{& && && && &
& & TCON=0x01;& && && &//定时器T0工作在01模式下
& & TMOD=0X01;& && && && &
& && && && &&&TH0=0XD8;& && && & //装入初值
& && && && &&&TL0=0XF0;
& && && && &&&EA=1;& && && && && &//开总中断
& && && && &&&ET0=1;& && && && &&&//开T0中断
& && && && &&&TR0=1;& && && && &&&//T0开始运行计数
& && && && &&&EX0=1;& && && && &&&//开外部中断0
& && && && &&&for(n=0;n&500;n++)& &&&//显示启动LOGo&- - - -&
& && && && &&&{bell=1;warn=1;logo();}
& && && && &&&Red=0;
& && && && &&&while(1)
& && && && &&&{
& && && && &&&& & key();
& && && && &&&& && && && &&&ss=ReadTemperature();
& && &&&Show();
& && && && &&&& && && && &&&alarm();& && && & //报警函数
& && && && &&&& && && && &&&if(Flag==1)
& && && && &&&& && && && &&&{bell=!
& && && && &&&& && && && &&&warn=!}& &&&//蜂鸣器滴滴响
& && && && &&&& && && && &&&else {bell=1;
& && && && &&&& && && && &&&& && &warn=1;}& && && && &
& && && && &&&}& && && && &
4.2 DS18B20初始化子程序DS18B20的初始化相当于DS18B20数据头的作用,DS18B20检测到初始化电平,准备开始接收或发送数据。初始化子程序流程图如下图14所示。
1.017.jpg (20.41 KB, 下载次数: 8)
19:50 上传
& && && && && && && && &&&图14 DS18B20初始化程序流程图
DS18B20初始化程序如下:
Init_DS18B20(void)& && && && &&&//传感器初始化
& && && && &&&uchar x=0;
& && && && &&&DATA = 1;&&&&//DQ复位
& && && && &&&delay(10);&&&&//稍做延时
& && && && &&&DATA = 0;&&&&//单片机将DQ拉低
& && && && &&&delay(80); &&//精确延时 大于 480us& &
& && && && &&&DATA = 1; //拉高总线
& && && && &&&delay(20);
& && && && &&&x=DATA;& & //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
& && && && &&&delay(30);
4.3 DS18B20读取温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。DSl8820的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。图15为读取数据流程图。
1.018.jpg (23.86 KB, 下载次数: 13)
19:50 上传
& && && && && && &&&图15 DS18B20读取温度子程序流程图
读取温度子程序如下:
int ReadTemperature(void) & & //读取温度
& && && && &&&uchar a=0;
& && && && &&&uchar b=0;
& && && && &&&int t=0;
& && && && &&&float tt=0;
& && && && &&&Init_DS18B20();
& && && && &&&WriteOneChar(0xCC); & &// 跳过读序号列号的操作
& && && && &&&WriteOneChar(0x44);&&&&// 启动温度转换
& && && && &&&Init_DS18B20();
& && && && &&&WriteOneChar(0xCC);& &//跳过读序号列号的操作
& && && && &&&WriteOneChar(0xBE); & &//读取温度寄存器等(共可读9个寄存器) 前两个就是温度
& && && && &&&a=ReadOneChar();& && & //低位
& && && && &&&b=ReadOneChar();& && & //高位
& && && && &&&t=b;
& && && && &&&t&&=8;
& && && && &&&t=t|a;
& && && && &&&tt=t*0.0625;
& && && && &&&t= tt*10+0.5;
& && && && &&&return(t);
4.4 显示数据处理子程序读出温度数据后,LOW的低四位为温度的小数部分,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大于0.5℃的话,向个位进1;小于0.5℃的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20最低温度只能为-55℃,所以可以将整数部分的最高位换成一个“-”,表示为负数。
图16为温度数据处理程序的流程图:
1.019.jpg (38.95 KB, 下载次数: 10)
19:50 上传
& && && && && & 图16 显示数据处理子程序
以下是显示正值子函数的程序:
void&&display()
{& && && && &&&& && && && &
& && && && &&&buf[1]=temp/1000;& && && &&&//显示百位
& && && && &&&buf[2]=temp/100%10;& && &&&//显示十位
& && && && &&&buf[3]=temp%100/10;& && &&&//显示个位
& && && && &&&buf[0]=temp%10;& && && &&&//小数位
& && && && &&&for(j=0;j&3;j++)
& && && && &&&{
& && && && &&&P2=0& && && & & && && && &&&& && && && &&&&&// 初始灯为灭的
& & P0=0x00;
& && && && &&&P2=0 //显示小数点
& && && && &&&P0=0x80; //显示小数点
& && && && &&&delay(300);& && && && &&&& && && && &
& & P2=0& && && & & && && && &&&& && && && &&&&&// 初始灯为灭的
& & P0=0x00;
& & P2=0xf7;& && && &&&& && && && &&&& && && && &&&&&//片选LCD1
& & P0=table[buf[1]];
& && && && &&&delay(300);
& && && && &&&P2=0
& & P0=0x00;
& & P2=0& && && && && &&&//片选LCD2
& & P0=table[buf[2]];
& && && && &&&delay(300);
& && && && &&&P2=0
& & P0=0x00;
& && && && &&&P2=0X& && && && &&&& && && && &&&& && && && &//片选LCD3
& && && && &&&P0=table[buf[3]];
& && && && &&&delay(300);
& && && && &&&P2=0
& & P0=0x00;
& && && && &&&P2=0X
& && && && &&&P0=table[buf[0]];& && && && &&&& && && &//片选LCD4& && && && &
& && && && &&&delay(300);
& && && && &&&P2=0
& && && && &&&}
4.5按键扫描子程序该系统支持手动设置温度上下限,而按键扫描的主要功能就是手动设置温度的上下限。系统默认的温度上下限是10℃~32℃。当被测温度值处于0℃~125℃时,若被测温度没有超过上下限,则蜂鸣器不鸣叫,否则蜂鸣器鸣叫;当被测温度值处于0℃以下时,蜂鸣器鸣叫较急促。
为了防止抖动,按键电路中都要消抖的措施,本设计中是采用的软件消抖,在单片机检测到某个键按下后,延时10ms再监测,如果仍然按下,才确定按下了该键。
按键K4、K1、K2、K3分别与单片机的P2.4-P2.7引脚连接。默认状态设置温度上限,若按下按键K4,也就是使P2.4为低电平时,进入温度下限的设置,再按一次进入温度上限的设置;在每个温度上下限设置里面,按下K1一次增加1℃温度值,按下按键K一次减小1℃温度值,最后按K3确定。
按键扫描子程序的流程图如下图17所示:
1.020.jpg (41.43 KB, 下载次数: 18)
19:50 上传
& && && && && && && && && &图17 按键扫描子程序
按键扫描子程序如下:
void key()& && && && &&&& && && && & //按键扫描子程序
{& &if(k1!=1)
& && && && &&&{
& && && && &&&& &delay(20);
& && && && &&&& &if(k1!=1)
& && && && &&&& &{
& && && && &&&& && && && &&&while(k1!=1)
& && && && &&&& && && && &&&&&{ key_to1();
& && && && &&&& && && && &&&& & for(n=0;n&8;n++)
& && && && &&&& && && && &&&& & Show();
& && && && &&&& && & }
& && && && &&&& &}
& && && && &&&}
& && && && &&&if(k2!=1)
& && && && &&&{
& && && && &&&& && && && &&&delay(20);
& && && && &&&& && && && &&&if(k2!=1)
& && && && &&&& && && && &&&{
& && && && &&&& && && && &&&&&while(k2!=1)
& && && && &&&& && && && &&&& && && && &&&{ key_to2();
& && && && &&&& && && && &&&& && && && &&&&&for(n=0;n&8;n++)
& && && && &&&& && && && &&&& && &Show();
& && && && &&&& && && && &&&& && && && &&&}
& && && && &&&& && && && &&&}
& && && && &&&}& && && && &
& && && && &&&if(k3!=1)
& && && && &&&{& && && && &&&TR0=1; & && && && & //复位,开定时
& && &&&temp=ReadTemperature();
& && && && &&&}
& && && && &&&if(k4!=1)
& && && && &&&{&&delay(20);
& && && && &&&& &if(k4!=1)
& && && && &&&& &{&&while(k4!=1);
& && && && &&&& && &set=!
& && && && &&&& && && && &&&& &if(set==0)
& && && && &&&& && && && &&&& &{ Red=0;Green=1;}
& && && && &&&& && && && &&&& &else { Green=0;Red=1;}
& && && && &&&& && && && &&&}
& && && && &&&}
5 系统软硬件调试本次设计采用Keil uVision2来编写C语言程序,通过它的编译器进行编译、连接,最后将生成的机器码下载到单片机上。
Keil C51编译器是目前最流行的开发MCS-51系列单片机的软件,它具有C编辑器、宏汇编、链接器、库管理和一个功能强大的仿真调试等在内的功能,并通过一个集成开发环境将这些部份组合在一起。
打开Proteus ISIS,在Proteus ISIS编辑窗口中单击元件列表之上的“P”按钮 ,添加元件及放置元件。
按照正确的方法,合理地布局将各个元器件连线,得到如下界面,如图18所示:
1.021.jpg (76.39 KB, 下载次数: 14)
19:50 上传
图 18 整体电路图
把刚才产生的可执行hex文件下载到单片机中,单击运行按钮,电路瞬间导通,程序首先进入Logo函数进行开机检测。此时单片机给正负温度指示灯和报警指示灯高电平,给温度上限指示灯低电平,使它们正常发光,给共阴极数码管相应的位高电平,使其动态显示温度为85℃。由于85℃不在默认温度上下限10℃~32℃之间,所以此时正温度指示灯亮,报警指示灯闪烁,蜂鸣器也开始鸣叫。大约200ms后,开机检测结束,温度回到当前环境温度5℃,由于默认的温度上下限是10℃~32℃,所以
正温度指示灯亮,报警指示灯闪烁,蜂鸣器鸣叫。
仿真结果如图19所示。
1.022.jpg (54.82 KB, 下载次数: 9)
19:50 上传
图19 数字温度计仿真图
我们再次调节环境温度,使环境温度处于15℃,由于此时温度不在温度上下限10℃~32℃之间,因此单片机给正温度指示灯高电平,给报警指示灯低电平,所以正温度指示灯高电平亮,报警指示灯熄灭,蜂鸣器也不鸣叫。
仿真结果如图20所示。
1.023.jpg (51.32 KB, 下载次数: 10)
19:50 上传
图20 数字温度计仿真图
再次调节温度,使温度在-10℃,此时温度不在温度上下限之间,此时单片机给负温度指示灯高电平,报警指示灯高电平,所以负温度指示灯亮,报警指示灯闪烁,并且蜂鸣器鸣叫较为急促。
仿真结果如图21所示。
1.024.jpg (50.69 KB, 下载次数: 11)
19:50 上传
图21 数字温度计仿真图
默认情况下设置温度上限,若按下K4进入温度下限设置。通过按键K1和K2增加或减少温度值,最后按下K3确认。比如设置温度上下限为15℃~40℃,当环境温度处于35℃时,而35℃在设置的温度上下限15℃~40℃之间,因此报警电路不工作。
仿真电路如图22所示。
1.025.jpg (53.95 KB, 下载次数: 10)
19:50 上传
图22 数字温度计仿真图
当环境温度处于12℃时,当温度在温度上下限15℃~40℃之间时,报警电路开始工作,报警指示灯闪烁,蜂鸣器鸣叫。
仿真电路如图23所示。
1.026.jpg (51.75 KB, 下载次数: 8)
19:50 上传
图23 数字温度计仿真图
结果分析:
本文介绍并设计的数字温度计的基本测量范围是-30℃~125℃,并且具有自动报警功能和默认温度上下限(10℃~32℃),还可以手动设置温度上下限,用4位一体数码管显示设置温度的上下限和当前环境的温度。由于所采用的是DS18B20温度传感器,它的可测量范围是-55℃~125℃,测量温度在-10℃~85℃之间时的可分辨温度是0.5℃,我们将小数位始终显示为0,也即显示的温度精度是1℃。如果当前环境温度在默认的温度上下限之间,主函数不会调用报警子程序,报警电路不会工作,蜂鸣器也不鸣叫;如果当前环境温度在默认的温度上下限之外,主函数就会调用报警子程序,此时单片机送给报警指示灯蜂鸣器高电平,报警指示灯闪烁,蜂鸣器鸣叫,直到环境温度回到默认的温度上下限之间。当然,由于本设计支持手动设置温度上下限,我们也可以手动设置温度上下限。
由仿真结果及设计要求完成的指标可知,该设计基本符合设计要求。
毕业设计完成了,在这个过程中使我觉得不论从理论知识还是从实际设计中都学到了不少知识。在写论文开始的初期,由于对温度传感器的较陌生,我对于论文的结构以及文献选取等方面都有很多问题,通过对温度计原理的认识,最后确定了设计温度计的功能以及各类功能模块的器件选择。认识到很多知识以前都没有接触过,所以制定了一个大致的计划,希望能够很好的完成论文。在接下来的毕业设计中,主要是深入对前期温度设计方案的认识。在这期间,很多知识都是第一次接触,通过查找了很多知识,认真阅读,但困难最大的还是硬件的设计和程序编写方面,第一次设计起来觉得相当吃力,刚开始不知道从何下手。后来,通过老师的指导和同学的帮助,克服了种种困难完成了设计。在作毕业设计的过程中,还认识到理论对实践有很大的指导作用,只有在正确的理论指导下,才能设计出合乎实际需要的系统电路。
这次毕业设计是对大学所学知识的一次实际应用,同时对自学能力提出了很高的要求,所以理论不能联系实际,就是严重的错误,我们不能只为了考试而学习。并且在学习的过程中更要广阔的汲取各方面的知识,才能更好的为以后的工作打好基础。
Powered by

我要回帖

更多关于 双金属温度计量程 的文章

 

随机推荐