还剩25页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
目录TOC\o1-3\h\z摘要2Abstract3第一章绪论4§
1.1系统背景4§
1.2系统概述4第二章方案论证5§
2.1传感器部分5§
2.2主控制部分6§
2.3系统方案6第三章硬件电路设计7§
3.1电源以及看门狗电路7§
3.2键盘以及显示电路9§
3.2温度测试电路11§
3.3串口通讯电路15§
3.4整体电路16第四章软件设计16§
4.1概述16§
4.2主程序方案16§
4.3各模块子程序设计18第五章系统调试20§
5.1分步调试20§
5.2统一调试20结束语21____22附录一:软件流程图24附录二电路原理图25致谢27多点温度检测系统摘要DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图该系统由上位机和下位机两大部分组成下位机实现温度的检测并提供标准RS232通信接口,芯片使用了ATMEL公司的AT__C51单片机和DALLAS公司的DS18B20数字温度传感器上位机部分使用了通用PC该系统可应用于仓库测温、楼宇空调控制和生产过程监控等领域关键字温度测量;单总线;数字温度传感器;单片机第1章绪论§
1.1系统背景在工、农业生产和日常生活中,对温度的测量及控制占据着极其重要地位首先让我们了解一下多点温度检测系统在各个方面的应用领域消防电气的非破坏性温度检测,电力、电讯设备之过热故障预知检测,空调系统的温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械…等设备温度过热检测温度检测系统应用十分广阔§
1.2系统概述本设计运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统该系统采用RS-232串行通讯标准,通过上位机(PC)控制下位机(单片机)进行现场温度采集温度值既可以送回主控PC进行数据处理,由显示器显示也可以由下位机单独工作,实时显示当前各点的温度值,对各点进行控制下位机采用的是单片机基于数字温度传感器DS18B20的系统DS18B20利用单总线的特点可以方便的实现多点温度的测量,轻松的组建传感器网络,系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量本系统可以应用在大型工业及民用常温多点监测场合如粮食仓储系统、楼宇自动化系统、温控制程生产线之温度影像检测、医疗与健诊的温度测试、空调系统的温度检测、石化、机械…等第2章方案论证温度检测系统有则共同的特点测量点多、环境复杂、布线分散、现场离监控室远等若采用一般温度传感器采集温度__,则需要设计__调理电路、A/D转换及相应的接口电路,才能把传感器输出的模拟__转换成数字__送到计算机去处理这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、__传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降所以多点温度检测系统的设计的关键在于两部分温度传感器的选择和主控单元的设计温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首§
2.1传感器部分方案一采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的__是不适用的而且在温度测量系统中采用单片温度传感器比如AD590LM35等.但这些芯片输出的都是模拟__必须经过A/D转换后才能送给计算机这样就使得测温装置的结构较复杂.另外这种测温装置的一根线上只能挂一个传感器不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度方案二在多点测温系统中,传统的测温方法是将模拟__远距离采样进行AD转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输,多点测量切换及放大电路零点漂移等造成的误差补偿问题采用数字温度芯片DS18B20测量温度,输出__全数字化便于单片机处理及控制,省去传统的测温方法的很多__电路且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好在0—100摄氏度时,最大线形偏差小于1摄氏度DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器AT__C51构成的温度测量装置它直接输出温度的数字__可直接与计算机连接这样测温系统的结构就比较简单体积也不大且由于AT__C51可以带多个D__1820因此可以非常容易实现多点测量.轻松的组建传感器网络采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度所以集成芯片的使用将成为电路发展的一种趋势本方案应用这一温度芯片,也是顺应这一趋势§
2.2主控制部分方案一此方案采用PC机实现它可在线编程,可在线仿真的功能,这让调试变得方便且人机交互友好但是PC机输出__不能直接与DS18B20通信需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便而且在一些环境比较恶劣的场合,PC机的体积大,携带__不方便,性能不稳定,给工程带来很多麻烦!方案二此方案采用AT__C51八位单片机实现单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制而且体积小,硬件实现简单,__方便既可以单独对多DS18B20控制工作,还可以与PC机通信.运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统实现远程控制另外AT__C51在工业控制上也有着广泛的应用,编程技术及__功能电路的配合使用都很成熟§
2.3系统方案综上所述温度传感器以及主控部分都采用第二方案系统采用针对传统温度测温系统测温点少,系统兼容性及扩展性较差的特点,运用分布式通讯的思想设计一种可以用于大规模多点温度测量的巡回检测系统该系统采用的是RS-232串行通讯的标准,通过下位机(单片机)进行现场的温度采集,温度数据既可以由下位机模块实时显示,也可以送回上位机进行数据处理,具有巡检速度快,扩展性好,成本低的特点实际采用电路方案如下图第三章硬件电路设计系统底层电路的功能主要包括多点温度测试及其相关处理,实时显示温度信息,与上位机通讯传输温度数据硬件设计主要包括以下几个模块电源以及看门狗电路,键盘以及显示电路,温度测试电路,串口通讯电路下面对电路分模块进行说明§
3.1电源以及看门狗电路a.电源电路因为单片机工作电源为+5V,且底层电路功耗很小采用7805三端稳压片即可满足要求具体电路图如下b.看门狗电路考虑到底层电路板的工作环境相对恶劣,单片机会受到周围环境的干扰,而出现程序跑飞,死机…等一些不可预知的不正常工作现象工作人员也不可能到现场对单片机重起,本设计为单片机电路添加一个外部看门狗电路定时查询单片机的工作状态一但发现异常即对单片机延时重起保证系统安全可靠的运行NE56604能为多种微处理器和逻辑系统提供复位__,其门限电平为
4.2V在电源突然掉电或电源电压下降到低于门限电平时NE56604将产生精确的复位__NE56604内置一个看门狗定时器,用于监控微处理器,以确保微处理器的正常运行看门狗能产生一个系统复位__用来终止任何由于微处理器故障而引发的不正常的系统操作NE56604的看门狗的监控周期为100mS(典型值)特性.正负双逻辑输出的有效复位__.精准的门限电平监测.上电复位内部延时.可利用外部电阻调节的内部看门狗定时器.看门狗定时器的监控周期为100mS典型值.VCC=
0.8VDC时产生有效的复位__典型值.仅需很少的__元件具体电路图如下:§
3.2键盘以及显示电路键盘电路单片机应用系统中除了复位按键有专门的复位电路以及专一的复位功能外其它的按键或键盘都是以开关状态来设置控制功能或输入数据键盘有编码和非编码两种非编码键盘硬件电路极为简单故本系统采用拨码开关来控制具体电路如下A.开关状态的可靠输入键开关状态的可靠输入有两种解决方法一种是软件去抖动它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响另一种为硬件去抖动即为按键添加一个锁存器两种方法都简单易行,本设计采用的是硬件去抖B.对按键进行编码给定键值或给出键号对于按键无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的散转转移为使编码间隔小,散转入口地址安排方便,常采用依次序排列的键号拨码开关值含义0000实时显示通道一的温度值0001实时显示通道二的温度值0010实时显示通道三的温度值0011实时显示通道四的温度值0100实时显示通道五的温度值0101实时显示通道六的温度值0110实时显示通道七的温度值0111实时显示通道八的温度值1***自动循环显示所有通道的温度C.选择键盘监测方法对是否有键按下的信息输入方式有中断方式与查询方式两种本设计采用的查询法,即在在CPU空闲时调用键盘扫描子程序温度显示电路设计采用的是共阴极七段数码管显示方式有动态扫描和静态显示,两种方法在本设计中皆可由于静态扫描要用到多片串入并出芯片,考虑到电路板成本计算本人采用是节约硬件资源的动态扫描方式即用两块芯片就可以完成显示功能显示数据由4511译码器输出,ULN2003为位驱动扫描__具体电路图如下§
3.2温度测试电路这里我们用到温度芯片DS18B20DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式测温分辨率可达
0.0625℃,被测温度用符号扩展的16位数字量方式串行输出其工作电源既可在远端引入,也可采用寄生电源方式产生CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路DS18B20支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内精度为±
0.5°C现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等DS18B20内部结构
(1)DS18B20的内部结构如下图所示DS18B20内部结构图DS18B20有4个主要的数据部件
①64位激光ROM64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码28H组成
②温度灵敏元件
③非易失性温度__触发器TH和TL可通过软件写入用户__上下限值
④配置寄存器配置寄存器为高速暂存存储器中的第五个字节DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图所示TMR1R011111M__ DS18B20配置寄存器结构图L__其中,TM测试模式标志位,出厂时被写入0,不能改变;R
0、R1温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R
0、R1置为缺省值R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率配置寄存器与分辨率关系表R0R1温度计分辨率/bit最大转换时间/us
00993.
750110187.510113751112750
(2)高速暂存存储器高速暂存存储器由9个字节组成,其分配如下图所示当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图所示对应的温度计算当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值温度低位温度高位THTL配置保留保留保留8位CRCL__DS18B20存储器映像图M__温度值格式图DS18B20温度数据表232221202-12-22-32-4M__L__SSSSS262524典型对应的温度值表:温度/℃二进制表示十六进制表示+125+
25.0625+
10.125+
0.50-
0.5-
10.125-
25.0625-5500000111110_____00000001_____00100000000101000100000000000001000000000000000000011111111111110001111111101011110111111100110111111111100_____00007D0H0191H00A2H0008H0000HFFF8HFF5EHFE6FHFC90HDS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成硬件连接电路如下图本系统为多点温度测试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.3串口通讯电路AT__C51有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片__X232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠具体电路如下我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线第5脚的GND、第2脚的RXD、第3脚的TXD这是最简单的连接方法,但是对本设计来说已经足够使用了,电路如上图所示通信线采用交叉接法,即两者__线对应成为R—T,T—R具体连接电路如下:§
3.4整体电路见附件二(电路原理图)第4章软件设计§
4.1概述整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了从软件的功能不同可分为两大类一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操__的关系二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等每一个执行软件也就是一个小的功能执行模块这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义各执行模块规划好后,就可以规划监控程序了首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系§
4.2主程序方案主程序调用了4个子程序,分别是数码管显示程序、键盘扫描以及按键处理程序、温度测试程序、中断控制程序、单片机与PC机串口通讯程序键盘扫描电路及按键处理程序实现键盘的输入按键的识别及相关处理温度测试程序对温度芯片送过来的数据进行处理,进行判断和显示数码管显示程序向数码的显示送数,控制系统的显示部分中断控制程序实现循环显示功能串口通讯程序实现PC机与单片机通讯,将温度数据传送给PC机将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和I/O冲突即可程序应该尽可能多的使用调用指令代替跳转指令因为跳转指令使得程序难以看懂各程序段之间的结构关系而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块主程序流程图如右图:§
4.3各模块子程序设计下面对主要几个子程序的流程图做介绍
(1)温度测试子程序设计见附录一温度测试子程序流程图
(2)中断控制程序设计如右图:
(3)串口通信程序设计本次通讯中,测控系统分位上位机和下位机之间的通信,系统中单片机负责数据采集、处理和控制,上位机进行现场可视化检测,通信协议采用半双工异步串行通信方式,通过RS232的RTS__进行收发转换,传输数据采用二进制数据,上位机与下位机之间采用主从式通讯本人采用的VB环境下PC机与单片机之间实现串行通讯的软硬件方案VB是Microsoft公司推出的Windows应用程序__工具,因其具有界面友好,编程简便等优点而受到广泛的使用,而且VisualBasic
6.0版本带有专门实现串行通讯的MSCOMM控件MSComm控件串口具有完善的串口数据的发送和接收功能通过此控件,PC机可以利用串行口与其它设备实现轻松连接,简单高效地实现设备之间的通讯此控件的__响应有两种处理方式__驱动方式由MSComm控件的OnComm__捕获并处理通讯错误及__;查询方式通过检查CommEvent属性的值来判断__和错误1MSComm控件的主要属性和方法 a.Co___ort设置或返回串行端口号,其取值范围为1—99,缺省为1b.Setting设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位 c.PortOpen打开或关闭串行端口 d.RThreshold该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生MSComml-OnComm__ e.Input从接收缓冲区移走一串字符f.Output向发送缓冲区传送一字符串软件流程图如下单片机程序流程图PC通讯程序流程图参数设定通信端口选择COM1,波特率设定为1200B/SMSCOmm.Co___ort=1MSComm.Setting=“1200,n81”START:MOVSP#60HMOVTMOD#20HMOVTH1#0E6HMOVTL1#0E6H;1200B/S,晶振为12MHZMOVPCON#00HMOVSCON#50HSETBTR1第5章系统调试§
5.1分步调试
1、测试环境及工具测试温度0~100摄氏度(模拟多点不同温度值环境)测试仪器及软件数字万用表,温度计0~100摄氏度,串口调试助手测试方法目测
2、测试方法使系统运行,观察系统硬件检测是否正常(包括单片机最小系统,键盘电路,显示电路,温度测试电路等)系统自带测试表格数据,观察显示数据是否相符合即可采用温度传感器和温度计同时测量多点水温变化情况(取温度值不同的多点),目测显示电路是否正常并记录各点温度值,与实际温度值比较,得出系统的温度指标使用串口调试助手与单片机通讯,观察单片机与串口之间传输数据正确否
3、测试结果分析自检正常,各点温度显示正常,串口传输数据正确因为芯片是塑料封装,所以对温度的感应灵敏度不是相当高,需要一个很短的时间才能达到稳定§
5.2统一调试将硬件及软件结合起来进行系统的统一调试实现PC机与单片机通讯,两者可以实时更新显示各点温度值结束语AT__C51的时钟为12M,I/O口可达32个,高的时钟频率和丰富的I/O,都为实现电路功能提供了非常有利的条件同时也AT__C51内含4KBFLASHROM,__环境友好,易用,方便,大大加快本系统设计__拨码开关的使用,使操作更为简洁,易懂实时显示电路的设计,使温度信息更迅速,直观地发布本制作的设计中使用了传感器的只是插座电路,因此,该系统的可扩展性很强整个系统硬件简单、可靠,系统成本低致此本人设计基本完成了预期的目标,系统在硬件自动测试,键盘操作,实时显示方面做的比较好但是由于时间仓促、条件有限,设计成果并不是很__,还存在下面问题串口通讯不稳定,未对温度数值统计处理以及存储我准备在今后的工作过程中进一步完善此设计____
[1].贾振国.DS1820及高精度温度测量的实现[J].电子技术应用,2000
(1)58-
59.
[2].余永权.单片机原理及应用.北京电子工业出版社1997
[3].邦田.电子电路实用抗干扰技术.北京人民邮电出版社,1994
[4].Dallassemiconductorincds18b20program__bleresolution1—wiredigitalthermometer2001[Z].
[5].曲喜贵.电子元件材料手册[M].北京电子工业出版社,19__.422-
430.
[6].黄贤武,郑筱霞,曲波等.传感器实际应用电路设计[M].成都电子科技大学出版社,
1997.4-
10.
[7].刘君华.智能传感器系统[M].西安西安电子科技大学出版社,
1999.
[8].余永权.Flash单片机原理及应用[M].北京电子工业出版社,
1997.
[9].邦田.电子电路实用抗干扰技术[M].北京人民邮电出版社,
1994.
[10].周云波.由DS18B20单线数字温度计构成的单线多点温度测量系统.电子技术应用,19962:15-
20.
[11].吉鹏马云峰等.微机原理与接口技术[M].北京:高等教育出版社
2001.
[12].振国.DS1820及高精度温度测量的实现[J].电子技术应用,
20001.
[13].东耀,汪仁煌.数字温度传感器在仓库温度检测系统的应用[J].传感器世界,2001
(12)30-
33.
[14].月霞,孙传友.DS18B20硬件连接及软件编程[J].传感器世界,2001
(12)25-
29.
[15].一线数字温度传感器资料[M].武汉武汉力源电子有限公司,
1996.
[16].贤武,郑霞,曲波.传感器实际应用电路设计[M].成都电子科技大学出版社,
1997.
[17].伟正.单线数字温度传感器的原理与应用
[1].电子技术应用,
20006.66-68
[18].DALLAS公司.DS18B20数据手册[Z]
[19].周月霞,孙传友.DS18B20硬件连接及软件编程[J].传感器世界,2001,
(12).
[20].单线数字温度传感器资料[M].武汉武汉力源电子有限公司,
1996.
[21].贾东耀,汪仁煌.数字温度传感器在仓库温度检测系统的应用[J].传感器世界,2001
(12).
[22].余永权.ATMEL__系列单片机应用技术[M].北京:北京____大学出版社
2002.
[23].胡汉才.单片机原理及系统设计[M].北京:清华大学出版社,2002
[24].李更祥.单总线数字式智能型温度传感器在测控领域中的应用[J].计算机自动测量与控制,1999,7
(3)51-
53.
[25].忠梅.单片机的C语言应用程序设计[M].北京:北京____大学出版社,1997附录附录一温度测试子程序流程图附录二电路原理图AT__C51DS18B201#DS18B202#DS18B203#DS18B2020#VCC=5V
4.7K1—WIRE初始化DS18B20匹配ROM命令发一个DS18B20序列号等待1us读当前DS18B20温度开始所有DS18B20都访问完毕存在一个DS18B20发搜索ROM命令读并存储当前DS18B20序列号跳过ROM命令初始化DS18B20温度转换命令初始化DS18B20YNYN初始化DS18B20匹配ROM命令发一个DS18B20序列号等待1ms转换结束读当前DS18B20温度开始所有DS18B20都访问完毕存在一个DS18B20发搜索ROM命令读并存储当前DS18B20序列号跳过ROM命令初始化DS18B20初始化DS18B20YNYN。