温度巡回检测控制系统毕业论文

上传人:QQ-1****6396 文档编号:7113814 上传时间:2020-03-13 格式:DOC 页数:58 大小:337.81KB
返回 下载 相关 举报
温度巡回检测控制系统毕业论文_第1页
第1页 / 共58页
温度巡回检测控制系统毕业论文_第2页
第2页 / 共58页
温度巡回检测控制系统毕业论文_第3页
第3页 / 共58页
点击查看更多>>
资源描述
温度巡回检测控制系统摘 要信息化时代,数据的重要性不言而喻。如何高效、稳定的对数据(包括温度,湿度、压力、光线等项目)进行实时采集对于现代的企业、工厂、研究所等对数据精度要求较高的单位具有非常重要的意义。本系统设计采用温度数据作为研究对象,具有代表性。首先是温度数据的应用是最广泛的,其次是温度数据采集单元无论是价格、测量区间还是品种都具有较大的选择余地。DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。该系统由上位机和下位机两大部分组成。下位机实现温度的检测并提供标准RS232通信接口,芯片使用了ATMEL公司的AT89C51单片机和DALLAS公司的DS18B20数字温度传感器。上位机部分使用了通用PC。该系统可应用于仓库测温、楼宇空调控制和生产过程监控等领域。关键词:温度测量,单总线,数字温度传感器,单片机 TEMPERATURE CYCLE DETECTION ANDCONTROL SYSTEMABSTRACTInformation age, the importance of data that efficient and stable. how the data ( include temperature, humidity, pressure, the items ) realtime collection of modern enterprises and factories, research and data to the precision required higher unit has a very important.Adopt this system design, data on temperatures as a representative. first is the temperature of the application is the most widespread, the temperature data collection and measuring the unit price, or a variety of greater choice.As a kind of high-accuracy digital net temperature sensor,DS18 B20 can be used building a sensor net easily. It can also make the net simple and reliable with its special 1-wire interface .This paper introduces the application of DS18B20 with single chip processor.Thesystem is constituted by two parts the temperature measured part and displayed part. The temperature measured part has a RS232 interface. It used AT89C51 of ATMEL company and DS18B20 of DALLAS company .The displayed part uses PC .This system is applied in such domains as warehouse detecting temperature;air-conditioner controlling system in building and supervisory productive process etc.KEY WORDS: temperature measure,single bus,digital thermometer,single chip processor1目录前言1第1章 绪论21.1系统背景21.2系统概述2第2章 方案论证32.1温度检测系统特点32.2传感器部分32.3主控制部分42.4系统方案4第3章 硬件电路设计63.1 系统底层电路的功能63.2电源以及看门狗电路63.2.1电源电路63.2.2看门狗电路73.3键盘以及显示电路83.3.1 键盘电路83.3.2 温度显示电路93.4 温度测试电路103.4.1 DS18B20的测温原理103.4.2 DS18B20的内部结构113.5串口通讯电路143.6整体电路15第4章 软件设计164.1概述164.2 主程序方案164.3各模块子程序设计18第5章 系统调试225.1分步调试225.2统一调试22结论23谢 辞24参考文献25附录27外文资料翻译40前言温度测量与控制在工业,农业,国防等行业有着广泛的应用。利用单片机技术的温度测控仪以其体积小,可靠性高而被广泛应用。随着社会市场经济的发展,很多生产设备,生产线,仓库,热工装置等需要温度测量,目前检测温度一般采用热电偶或热敏电阻作为传感器。这种传感器至显示之间一般都需要专用的温度补偿导线;而温度补偿导线价格贵、线路长会影响测量精度。本设计就是基于以上的情况改进的,系统采用DS18B20传感器,以89C51为核心,设计了一个多路巡回检测系统。实际应用中其可靠性高、易于操作、测温精度高,可用于一般测温场合。在多路温度巡回检测系统中要解决的关键技术有:1.抗干扰设计电源设计解决电网干扰;看门狗电路设计解决程序跑飞与死机:软件滤波解决测量信号稳定性。2.测量精度的保证硬件设计输入电路测量精度;软件保证了A/D转换电路测量精度。本文重点对测控仪硬件的组成进行了分项、模块化逐步分析设计。对各部分电路进行介绍,最终实现了该系统的硬件电路。然后根据硬件的设计和测控仪所要实现的功能,设计了软件系统,并经过反复的模拟运行、调试,修改简化了软件系统,最后形成了一套完整的程序系统。 第1章 绪论1.1系统背景科技时代,数据的重要性不言而喻!因为温度传感器被广泛应用于工农业、科学研究和生活等领域。数量高居各种传感器之首。近百年来,温度传感器的发展大致经历了:传统的含有敏感元件的分立式温度传感器、模拟集成温度传感器/控制器和智能温度传感器三个阶段。目前,国际上新型的温度传感器正从模拟式向数字化,有集成化向智能化、网络化方向发展。1.2系统概述本设计运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统。该系统采用 RS-232串行通讯标准,通过上位机(PC)控制下位机(单片机)进行现场温度采集。温度值既可以送回主控PC进行数据处理,由显示器显示。也可以由下位机单独工作,实时显示当前各点的温度值,对各点进行控制。下位机采用的是单片机基于数字温度传感器DS18B20的系统。DS18B20利用单总线的特点可以方便的实现多点温度的测量,轻松的组建传感器网络,系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量。本系统可以应用在大型工业及民用常温多点监测场合。如粮食仓储系统、楼宇自动化系统、温控制程生产线之温度影像检测、医疗与健诊的温度测试、空调系统的温度检测、石化、机械等。第2章 方案论证2.1温度检测系统特点温度检测系统有则共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。所以多点温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。2.2传感器部分方案一:由于本设计是测温系统,可以使用热电偶之类的器件利用其感温特性,把它随着被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在系统中有一个这样的传感器就需要一个A/D转换电路,这将导致系统电路整体设计起来比较复杂,除了A/D、D/A转化模块,相应的还要增加信号放大等电路,这对于单片机有限的空间而言,系统利用效率是比较低下的。此外,现代数据采集的特点是数字化,它带来的不仅是电路设计的简化,还有利于后期数据的加工和利用。因此,热电偶之类的感温器件具有很大的局限性,不推荐使用。方案二:进而考虑到用数字传感器,在单片机电路设计中,大多都是处理数字信号,因此可以采用数字温度传感器DS18B20。与传统传感器相比,单总线技术可以让单片机节省大量的I/O资源,而且外部与传感器的相连的电缆、端子、槽盒、桥架,连线设计与接头校对的工作量也大大减少,即节省了投资,也减少了设计、安装的工作量。同时,由于传感器直接输出的是数字信号,使系统省掉了放大、A/D转换等相关电路,系统的稳定性、可靠性有了大幅提高。利用此传感器可以轻松的设计出一种高效的、简练的、且易维护的测温系统。2.3主控制部分方案一:此方案采用PC机实现。它可在线编程,可在线仿真的功能,这让调试变得方便。且人机交互友好。但是PC机输出信号不能直接与DS18B20通信。需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦!方案二:此方案采用AT89C51八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信.运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统,实现远程控制。另外AT89C51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。2.4系统方案综上所述,温度传感器以及主控部分都采用第二方案。系统采用针对传统温度测温系统测温点少,系统兼容性及扩展性较差的特点,运用分布式通讯的思想。设计一种可以用于大规模多点温度测量的巡回检测系统。该系统采用的是RS-232串行通讯的标准,通过下位机(单片机)进行现场的温度采集,温度数据既可以由下位机模块实时显示,也可以送回上位机进行数据处理,具有巡检速度快,扩展性好,成本低的特点。实际采用电路方案如图2-1:图2-1电路方案4洛阳理工学院毕业设计(论文)第3章 硬件电路设计3.1 系统底层电路的功能系统底层电路的功能主要包括:多点温度测试及其相关处理,实时显示温度信息,与上位机通讯传输温度数据。硬件设计主要包括以下几个模块:电源以及看门狗电路, 键盘以及显示电路,温度测试电路,串口通讯电路。下面对电路分模块进行说明 3.2电源以及看门狗电路3.2.1电源电路因为单片机工作电源为+5V,且底层电路功耗很小。采用7805三端稳压片即可满足要求。具体电路图3-1图3-1 电源电路图3.2.2看门狗电路考虑到底层电路板的工作环境相对恶劣,单片机会受到周围环境的干扰,而出现程序跑飞,死机等一些不可预知的不正常工作现象。工作人员也不可能到现场对单片机重起,本设计为单片机电路添加一个外部看门狗电路。定时查询单片机的工作状态,一但发现异常即对单片机延时重起。保证系统安全可靠的运行。(硬件看门狗WatchDog:是一个自我保护装置。他时刻监视系统的运行。一旦系统运行不正常,看门狗会复位系统。实际上看门狗是一个计时器,你要让这个计时器置零前给它一个信号,让它重新计时,这样起到一个监视系统运行的作用。一般很多MCU带有这个电路,但是你可以不使用它,这样在上电的时候禁止他;如果你要使用Watchdog,那么你的系统就必须每隔一段时间给这个电路一个信号。)。如果不断地“喂”它(不断地复位它,表示程序自己没有死机)。NE56604能为多种微处理器和逻辑系统提供复位信号,其门限电平为4.2V 。在电源突然掉电或电源电压下降到低于门限电平时。NE56604将产生精确的复位信号。NE56604内置一个看门狗定时器,用于监控微处理器,以确保微处理器的正常运行。看门狗能产生一个系统复位信号用来终止任何由于微处理器故障而引发的不正常的系统操作。NE56604的看门狗的监控周期为100mS(典型值)。特性:正负双逻辑输出的有效复位信号;精准的门限电平监测;上电复位内部延时;.可利用外部电阻调节的内部看门狗定时器;.看门狗定时器的监控周期为100mS 典型值;.VCC=0.8VDC时产生有效的复位信号典型值;.仅需很少的外围元件;具体电路图3-2:3-2 看门狗电路图3.3键盘以及显示电路3.3.1 键盘电路图3-3 拨码开关电路图单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。键盘有编码和非编码两种。非编码键盘硬件电路极为简单。故本系统采用拨码开关来控制。具体电路如3-31.开关状态的可靠输入键开关状态的可靠输入有两种解决方法。一种是软件去抖动:它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响。另一种为硬件去抖动:即为按键添加一个锁存器。两种方法都简单易行,本设计采用的是硬件去抖。2.对按键进行编码给定键值或给出键号对于按键无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的散转转移。为使编码间隔小,散转入口地址安排方便,常采用依次序排列的键号,如表1表3-1拨码转换表拨码开关值含义0000实时显示通道一的温度值0001实时显示通道二的温度值0010实时显示通道三的温度值0011实时显示通道四的温度值0100实时显示通道五的温度值0101实时显示通道六的温度值0110实时显示通道七的温度值0111实时显示通道八的温度值1*自动循环显示所有通道的温度3.选择键盘监测方法对是否有键按下的信息输入方式有中断方式与查询方式两种。本设计采用的查询法,即在CPU空闲时调用键盘扫描子程序。3.3.2 温度显示电路设计采用的是共阴极七段数码管。显示方式有动态扫描和静态显示,两种方法在本设计中皆可。由于静态扫描要用到多片串入并出芯片,考虑到电路板成本计算。本人采用是节约硬件资源的动态扫描方式。即用两块芯片就可以完成显示功能。显示数据由4511译码器输出,ULN2003为位驱动扫描信号。3.4 温度测试电路这里我们用到温度芯片DS18B20。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式。测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。DS18B20支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等3.4.1 DS18B20的测温原理DS18B20 测温原理如图3-4所示,图中低温度系数晶振的振荡频率受温度影响小用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2 的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1 的预置值减到0 时,温度寄存器的值将加1,计数器1 的预置将重新被装入,计数器1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2 计数到0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1 的预置值。DS18B20 在正常使用时的测温分辨率为0.5。图3-4 DS18B20测温原理图3.4.2 DS18B20的内部结构1. DS18B20的内部结构如图3-5所示。图3-5 DS18B20的内部结构图DS18B20有4个主要的数据部件:(1) 64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。(2)温度灵敏元件。(3)非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。(4)配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如表2所示。表3-2配置寄存器定义TMR1R011111MSB DS18B20配置寄存器结构图LSB其中,TM:测试模式标志位,出厂时被写入0,不能改变;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。配置寄存器与分辨率关系如表3 :表3-3寄存器与分辨率关系R0R1温度计分辨率/bit最大转换时间/us00993.750110187.5101137511127502. 高速暂存存储器高速暂存存储器由9个字节组成,其分配如表4所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表5所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表3-4 存储映像温度低位温度高位THTL配置保留保留保留8位CRCLSB DS18B20 存储器映像图MSB表3-5 温度值格式图DS18B20 温度数据232221202-12-22-32-4MSBLSBSSSSS262524表3-6 典型对应的温度值温度/二进制表示十六进制表示+125 +25.0625+10.125+0.50-0.5-10.125-25.0625-5500000111 1101000000000001 1001000100000000 1010001000000000 0000100000000000 0000000011111111 1111100011111111 0101111011111110 0110111111111100 1001000007D0H0191H00A2H0008H0000HFFF8HFF5EHFE6FHFC90HDS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。硬件连接电路如图3-6:图3-6 硬件连接电路如本系统为多点温度测试。DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但时间应用中发现,如果挂接25个以上的DS18B20仍旧有可能产生功耗问题。另外单总线长度也不宜超过80M,否则也会影响到数据的传输。在这种情况下我们可以采用分组的方式,用单片机的多个I/O来驱动多路DS18B20。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。对DS18B20的设计,需要注意以下问题:1.对硬件结构简单的单线数字温度传感器DS18B20 进行操作,需要用较为复杂的程序完成。编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。尤其在使用DS18B20 的高测温分辨力时,对时序及电气特性参数要求更高。2.有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20 序列号和自动排序,以减少调试和维护工作量。3.测温电缆线建议采用屏蔽4 芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。DS18B20 在三线制应用时,应将其三线焊接牢固;在两线应用时,应将VCC与GND接在一起,焊接牢固。若VCC脱开未接,传感器只送85.0 的温度值。4.实际应用时,要注意单线的驱动能力,不能挂接过多的DS18B20,同时还应注意最远接线距离。另外还应根据实际情况选择其接线拓扑结构。3.5串口通讯电路AT89C51有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。具体电路如图3-7下:图3-7 串口通讯电路图我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对本设计来说已经足够使用了,电路如上图所示。通信线采用交叉接法,即两者信号线对应成为RT,TR。 具体连接电路图如3-8:3.6整体电路电路原理图见附录114 第4章 软件设计4.1概述整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。4.2 主程序方案主程序调用了4个子程序,分别是数码管显示程序、键盘扫描以及按键处理程序、温度测试程序、中断控制程序、单片机与PC机串口通讯程序。键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及相关处理。温度测试程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码的显示送数,控制系统的显示部分。中断控制程序:实现循环显示功能。串口通讯程序:实现PC机与单片机通讯,将温度数据传送给PC机。图4-1 程序结构图当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和I/O冲突即可。程序应该尽可能多的使用调用指令代替跳转指令。因为跳转指令使得程序难以看懂各程序段之间的结构关系。而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便。将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块。主程序流程图如图4-2图4-2主程序流程图4.3各模块子程序设计下面对主要几个子程序的流程图做介绍:1.温度测试子程序设计见附录温度测试子程序流程图2. 中断控制程序设计如图4-3图4-3 中断控制程序图3. 串口通信程序设计本次通讯中,测控系统分位上位机和下位机之间的通信,系统中单片机负责数据采集、处理和控制,上位机进行现场可视化检测,通信协议采用半双工异步串行通信方式,通过RS232的RTS信号进行收发转换,传输数据采用二进制数据,上位机与下位机之间采用主从式通讯。本人采用的VB环境下PC机与单片机之间实现串行通讯的软硬件方案。VB是Microsoft公司推出的Windows应用程序开发工具,因其具有界面友好,编程简便等优点而受到广泛的使用,而且Visual Basic 6.0 版本带有专门实现串行通讯的MSCOMM控件。MSComm控件串口具有完善的串口数据的发送和接收功能。通过此控件,PC机可以利用串行口与其它设备实现轻松连接,简单高效地实现设备之间的通讯。此控件的事件响应有两种处理方式。事件驱动方式:由MSComm控件的OnComm事件捕获并处理通讯错误及事件;查询方式:通过检查CommEvent属性的值来判断事件和错误。(1) MSComm控件的主要属性和方法a. CommPort:设置或返回串行端口号,其取值范围为199,缺省为1 b. Setting:设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位。c. PortOpen:打开或关闭串行端口。 d. RThreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生MSComml-OnComm事件。 e. Input:从接收缓冲区移走一串字符。 f. Output:向发送缓冲区传送一字符串。 软件流程图如4-4图:图4-4 软件流程图图4-5 PC通讯程序流程图参数设定:通信端口选择COM1,波特率设定为1200B/SMSCOmm.CommPort=1MSComm.Setting=“1200, n, 8, 1”。 START:MOVSP,#60HMOVTMOD,#20HMOVTH1,#0E6HMOVTL1,#0E6H ;1200B/S,晶振为12MHZMOV PCON,#00HMOVSCON,#50HSETBTR120第5章 系统调试5.1分步调试1、测试环境及工具测试温度:0100摄氏度。(模拟多点不同温度值环境)测试仪器及软件:数字万用表,温度计0100摄氏度,串口调试助手。测试方法:目测。2、测试方法使系统运行,观察系统硬件检测是否正常(包括单片机最小系统,键盘电路,显示电路,温度测试电路等)。系统自带测试表格数据,观察显示数据是否相符合即可。采用温度传感器和温度计同时测量多点水温变化情况(取温度值不同的多点),目测显示电路是否正常。并记录各点温度值,与实际温度值比较,得出系统的温度指标。使用串口调试助手与单片机通讯,观察单片机与串口之间传输数据正确否。3、测试结果分析自检正常,各点温度显示正常,串口传输数据正确。因为芯片是塑料封装,所以对温度的感应灵敏度不是相当高,需要一个很短的时间才能达到稳定。5.2统一调试将硬件及软件结合起来进行系统的统一调试。实现PC机与单片机通讯,两者可以实时更新显示各点温度值。 22 结论AT89C51的时钟为12M,I/O口可达32个,高的时钟频率和丰富的I/O,都为实现电路功能提供了非常有利的条件。同时也AT89C51内含4KB FLASH ROM,开发环境友好,易用,方便,大大加快本系统设计开发。拨码开关的使用,使操作更为简洁,易懂。实时显示电路的设计,使温度信息更迅速,直观地发布。本制作的设计中使用了传感器的只是插座电路,因此,该系统的可扩展性很强。整个系统硬件简单、可靠,系统成本低。致此设计基本完成了预期的目标,系统在硬件自动测试,键盘操作,实时显示方面做的比较好。但是由于时间仓促、条件有限,设计成果并不是很完美,还存在下面问题:串口通讯不稳定,未对温度数值统计处理以及存储。我准备在今后的工作过程中进一步完善此设计。 洛阳理工学院毕业设计论文谢 辞本设计能够顺利的完成得到了院系领导老师的大力支持和帮助,尤其是我的指导老师余炳辉博士,在百忙之中抽出宝贵的休息时间,仔细耐心为我指导。设计过程中,余老师一并帮我分析遇到的种种困难。一直支持,鼓励我要有解决问题的信心,使设计得以顺利的完成。在开发的同时,和同学们之间的相互探讨也使我获益匪浅。在此,对他们表示由衷的感谢!电子信息技术日新月异地飞速发展,人们总是处在不断学习阶段,再加上我水平有限,所以设计肯定存在许多不尽如人意的地方,欢迎广大老师和同学批评指正。最后,要感谢机电系所有老师,他们精心的栽培为我以后的学习工作打下了坚实的基础。53参考文献1. 贾振国. DS1820 及高精度温度测量的实现J.电子技术应用,2000(1):58 - 59.2. 余永权. 单片机原理及应用. 北京:电子工业出版社, 1997 3. 邦田. 电子电路实用抗干扰技术. 北京:人民邮电出版社,1994 4. Dallas semiconductor inc,ds18b20 programmable resolution 1wiredigital thermometer 2001Z .5. 曲喜贵. 电子元件材料手册 M. 北京:电子工业出版社,1989.422-430.6. 黄贤武,郑筱霞,曲波等. 传感器实际应用电路设计M. 成都:电子科技大学出版社,1997.4-10.7. 刘君华. 智能传感器系统 M . 西安:西安电子科技大学出版社,1999.8. 余永权. Flash 单片机原理及应用 M. 北京:电子工业出版社,1997.9. 邦田. 电子电路实用抗干扰技术 M . 北京:人民邮电出版社,1994.10. 周云波. 由DS18B20单线数字温度计构成的单线多点温度测量系统. 电子技术应用,1996(2):15- 20.11. 吉鹏 ,马云峰等. 微机原理与接口技术 M. 北京:高等教育出版社,2001.12. 振国. DS1820 及高精度温度测量的实现 J . 电子技术应用,2000 (1) .13. 东耀,汪仁煌. 数字温度传感器在仓库温度检测系统的应用J. 传感器世界,2001(12):30- 33.14. 月霞,孙传友. DS18B20 硬件连接及软件编程J. 传感器世界,2001(12):25- 29.15. 一线数字温度传感器资料M. 武汉:武汉力源电子有限公司,1996.16. 贤武,郑霞,曲波. 传感器实际应用电路设计M. 成都:电子科技大学出版社,1997.17. 伟正. 单线数字温度传感器的原理与应用1. 电子技术应用,2000,6.66-6818. DALLAS公司.DS18B20数据手册Z19. 周月霞,孙传友. DS18B20 硬件连接及软件编程J. 传感器世界,2001,(12).20. 单线数字温度传感器资料M. 武汉:武汉力源电子有限公司,1996.21. 贾东耀,汪仁煌. 数字温度传感器在仓库温度检测系统的应用J. 传感器世界,2001(12).22. 余永权. ATMEL 89系列单片机应用技术M. 北京:北京航空航天大学出版社2002.23. 胡汉才. 单片机原理及系统设计M. 北京:清华大学出版社,200224. 李更祥. 单总线数字式智能型温度传感器在测控领域中的应用J. 计算机自动测量与控制,1999,7(3):51-53.25. 忠梅. 单片机的C语言应用程序设计M. 北京:北京航空航天大学出版社,1997附录 附录1:温度测试子程序流程图初始化DS18B20匹配ROM命令发一个DS18B20序列号等待1us读当前DS18B20温度电路始所有DS18B20都访问完毕?存在一个DS18B20?发搜索ROM命令读并存储当前DS18B20序列号跳过ROM命令初始化DS18B20温度转换命令初始化DS18B20YNYN初始化DS18B20匹配ROM命令发一个DS18B20序列号等待1ms转换结束读当前DS18B20温度所有DS18B20都访问完毕?存在一个DS18B20?发搜索ROM命令读并存储当前DS18B20序列号跳过ROM命令初始化DS18B20初始化DS18B20YNYN附录2:电路原理图附录3:系统程序设计#include reg51.h#include intrins.h /_nop_();延时函数用#define Disdata P1 /段码输出口#define discan P2 /扫描口#define DQ P3 /温度输入口#define uchar unsigned char#define uint unsigned intsbit key0=P00;sbit key3=P03;sbit key2=P02;sbit key1=P01; /选择端sbit DIN=P17; /LED小数点控制uint h=1;g=0;num=1;/*温度小数部分用查表法*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09; /温度小数部分用查表指令uchar code dis_712=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf;/* 共阳LED段码表 0 1 2 3 4 5 6 7 8 9不亮 - */ uchar code scan_con8=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe; / 列扫描控制字uint data temp_data2=0x00,0x00; / 读出温度暂放uchar data display9=0x00,0x00,0x00,0x00,0x0a,0x0a,0x0a,0x0a,0x00;/显示单元数据,共4个数据,一个运算暂存用uint data read_buf_8ch16=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;uchar B20_Error;uint uiData8;/*11us延时函数*/void delay(uint t) for(;t0;t-);/*void delay1us()/0.997延时函数 uint i,j,k; for(h=10;h0;h-) for(i=50;i0;i-) for(j=151;j0;j-)for(k=15;k0;k-);/*显示扫描函数*/scan()char k; for(k=0;k8;k+) /八位LED扫描控制 Disdata=dis_7displayk; if(k=1)DIN=1; discan=scan_conk;delay(90);discan=0xff; /*18B20复位函数*/ow_reset(void) char B20_Error=1; DQ=0xff;_nop_();_nop_(); DQ=0x00; delay(50); / 550us 延时480us-960us DQ=0xff; delay(5); / 55us 延时15us-60us B20_Error=DQ; / presence=0继续下一步 while(!DQ); / 直到DQ为高 return B20_Error;/ 返回复位结果 /*18B20写命令函数*/向 1-WIRE 总线上写一个字节void write_bit(uchar bdat)DQ=0xff;_nop_();_nop_();/2us DQ=0x00;_nop_();_nop_();_nop_();_nop_();_nop_();/5usbdat;delay(6);/66us DQ=0xff;void write_byte(uchar val)uchar i=0;for (i=0; i8; i+) / write_bit(val&(1i); /*18B20读1个字节函数*/从总线上读取一个字节uchar read_bit()uchar bdat=0; DQ=0x00;_nop_();_nop_(); DQ=0xff;delay(1); bdat=DQ; DQ=0xff;_nop_();_nop_(); return bdat;uchar read_byte(void)uchar i;uchar value=0;for (i=0;i8;i+) value|=(read_bit()i);return(value);/*数据存入数组read_buf_8ch中*/void read_2byte() uint i; char j; uint uiData8; uint Mask; for(i=0;i=15;i+) read_buf_8chi=read_byte(); for(i=0;i=15;i+) Mask=0x01; for(j=0;j8;j+) uiDataj=uiDataj1; if(read_buf_8chi&Mask) uiDataj+; Mask = Mask=248)temp_data1=(255-temp_data1);temp_data0=(256-temp_data0);n=1;/负温度求补码display0=ditabtemp_data0&0x0f;display8=(temp_data1*256+temp_data0)*0.0625;/display7=0;/因为该程序只显示8个DS18B20,所以为零display6=g+1;display5=0x0b;display4=0x0b; / 显示当前显示第几个DS18B20display3=display8/100;display2=display8%100/10;display1=display8%100%10;/温度值计算if(!display3)display3=0x0a;if(!display2)display2=0x0a;/最高位为0时都不显示if(n)display3=0x0b;/负温度时最高位显示-/*主函数*/main() Disdata=0xff; /初始化端口 discan=0xff; for(h=0;h4;h+)displayh=8;/开机显示888.8 for(h=0;h50;h+) scan(); /开机显示88882秒 ow_reset(); / 开机先转换一次 write_byte(0xCC); / Skip ROM write_byte(0x44); / 发转换命令 while(1) P0=0xff; if(key0=0) delay(1000);/延时11ms,去抖动 if(key0=0) num=0; if(key1=1)&(key2=1)&(key3=1) delay(1000);/延时11ms,去抖动 if(key1=1)&(key2=1)&(key3=1) g=0;h=65536; while(!(key1=1)&(key2=1)&(key3=1); delay(1000);/延时11ms,去抖动 while(!(key1=1)&(key2=1)&(key3=1);/ 000 else if(key1=0)&(key2=1)&(key3=1) delay(1000);/延时11ms,去抖动 if(key1=0)&(key2=1)&(key3=1) g=1;h=65536; while(!(key1=0)&(key2=1)&(key3=1); delay(1000);/延时11ms,去抖动 while(!(key1=0)&(key2=1)&(key3=1); / 001 else if(key1=1)&(key2=0)&(key3=1) delay(1000);/延时11ms,去抖动 if(key1=1)&(key2=0)&(key3=1) g=2;h=65536; while(!(key1=1)&(key2=0)&(key3=1); delay(1000);/延时11ms,去抖动 while(!(key1=1)&(key2=0)&(key3=1);/ 010 else if(key1=0)&(key2=0)&(key3=1) delay(1000);/延时11ms,去抖动 if(key1=0)&(key2=0)&(key3=1) g=3;h=65536; while(!(key1=0)&(key2=0)&(key3=1); delay(1000);/延时11ms,去抖动 while(!(key1=0)&(key2=0)&(key3=1); /011 else if(key1=1)&(key2=1)&(key3=0) delay(1
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类 > 大学论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!