《多点温度测量系统设计.doc》由会员分享,可在线阅读,更多相关《多点温度测量系统设计.doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流多点温度测量系统设计.精品文档.目 录摘 要IABSTRACTII第一章 绪论11.1 课题背景11.2本课题研究意义21.3本课题的任务21.4系统整体目标3第二章 方案论证比较与选择42.1 引言42.2方案设计42.2.1 设计方案一4 2.2.2 设计方案二42.2.3 设计方案三42.3 方案的比较与选择52.4 方案的阐述与论证5第三章硬件设计73.1 温度传感器73.1.1 温度传感器选用细则73.1.2 温度传感器DS18B2083.2.单片机系统设计153.3 显示电路设计183.4 键盘电路设计203.5 报警电路设计21
2、3.6 通信模块设计223.6.1 RS-232接口简介223.6.2 MAX232芯片简介233.6.3 PC机与单片机的串行通信接口电路24第四章软件设计264.1 软件开发工具的选择264.2 系统软件设计的一般原则274.3系统软件设计的一般步骤274.4 软件实现284.4.1系统主程序流程图284.4.2 传感器程序设计284.4.3 显示程序设计344.4.4 键盘程序设计364.4.5 报警程序设计384.4.6 通信模块程序设计39第五章 调试与小结41致谢42参考文献43附录44系统电路图44系统程序45摘 要随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品
3、对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。本课题以AT89C51单片机系统为核心,能对多点的温度进行实时巡检。DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。关键词:
4、温度测量;单总线;数字温度传感器;单片机 AbstractAs the industry and the society developing, the temperature becomes more and more important and a lot of products are sensitive to temperature. However, temperature measuring apparatus in the market now only can check and measure the temperature of one point, at the same
5、 time, the temperature information is not real time and the precision is low. It takes a great of troubles for the industry-controllers to make decision .In this situation, design and implement one applicable system which can watch measure and control the temperature and the measuring results is rea
6、l time and the precision is great is more essential. In order to meeting this application, this paper talk about The Multiple-Points temperature Measuring System.This system based on single chip computer, can inspect and control multiple temperatures in real time.As a kind of high-accuracy digital n
7、et 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.Key words: temperature measure;single bus;digital thermometer;single ch
8、ip processor;第一章 绪论1.1 课题背景 在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎%80的工业部门都不得不考虑着温度的因素。 温度对于工业如此重要,由此推进了温度传感器的发展。传感器主要大体经过了三个发展阶段:模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗
9、等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等;模拟集成温度控制器。模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有LM56、AD22105和MAX6509。某些增强型集成温度控制器(例如TC652/653)中还包含了A/D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别;智能温度传感器。能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技
10、术(ATE)的结晶。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。温度传感器的发展趋势。进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。 传感器在温度测控系统中的应用。目前市场主要存在单点和多点
11、两种温度测量仪表。对于单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高,测量范围大,而得到了普遍的应用。此种产品测温范围大都在-200800之间,分辨率12位,最小分辨温度在0.0010.01之间。自带LED显示模块,显示4位到16位不等。有的仪表还具有存储功能,可存储几百到几千组数据。该类仪表可很好的满足单个用户单点测量的需要。多点温度测量仪表,相对与单点的测量精度有一定的差距,虽然实现了多路温度的测控,但价格昂贵。 针对目前市场的现状,本课题提出了一种可满足要求、可扩展的并且性价比高的单片机多路测温系统。1.2本课题研究意义随着科学技术的不断进步与
12、发展,温度控制在工业控制、电子测温计、医疗仪器、家用电器等各种温度控制系统中广泛应用,且由过去的单点测量向多测量发展。目前温度传感器有模拟和数字两类传感器,为了克服模拟传感器与微处理器接口时需要信号调理电路和AD转换器的弊端,大多数多点测温控制系统采用数字传感器,并大大方便了系统的设计。比较有代表性的数字温度传感器有DS18B20、MAX6575、DS1722、MAX6635、SMT160-30等。在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着
13、现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国Dallas半导体公司推出的数字温度传感器DS18B20,具有独特的单总线接口,仅需要占用一个通用I/0端口即可完成与微处理器的通信;在-10+85 温度范围内具有05 精度;用户可编程设定912位的分辨率。以上特性使得DS18B20非常适用于构建高精度、多点温度测量系统。1.3本课题的任务本课题主要是实现对温度进行多点同时测量并准确显示。整个系统由单片机控制,要能够接收传感器的数据并显示出来,可以从键盘输入命令,系统根据命令,选择对应的传感器,并由驱动电路驱动温度显示。设计一
14、种合理、可行的单片机监控软件,完成多点测量和显示的任务,并编写硬件底层驱动程序。1.4系统整体目标利用一个单片机设计一个能够进行多点温度进行同时测量的系统。该系统能够同时对多个点的温度进行测量和进行显示,并且能够对异常情况进行报警。第二章 方案论证比较与选择2.1 引言温度测量的方案有很多种,可以采用传统的分立式传感器、模拟集成传感器以及新兴的智能型传感器。对于控制系统可以采用计算机、单片机等。2.2方案设计2.2.1 设计方案一采用模拟分立元件,如电容、电感或晶体管等非线形元件,实现多点温度的测量及显示,该方案设计电路简单易懂,操作简单,且价格便宜,但采用分立元件分散性大,不便于集成数字化,
15、而且测量误差大。2.2.2 设计方案二本方案采用AT89C51单片机为核心,通过温度传感器AD590采集温度信号,经信号放大器放大后,送到A/D转换芯片,最终经单片机检测处理温度信号。 图2.1 方案二的框图如图2.1,采用该方案技术已经成熟,AD转换电路设计较烦琐,而且使用AD590进行温度检测必须对冷端进行补偿,以减小误差。2.2.3 设计方案三本设计运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统。该系统采用 RS-232串行通讯标准,通过上位机(PC)控制下位机(单片机)进行现场温度采集。温度值既可以送回主控
16、PC进行数据处理,由显示器显示。也可以由下位机单独工作,实时显示当前各点的温度值,对各点进行控制。 下位机采用的是单片机基于数字温度传感器DS18B20的系统。DS18B20利用单总线的特点可以方便的实现多点温度的测量,轻松的组建传感器网络,系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量。本系统可以应用在大型工业及民用常温多点监测场合。如粮食仓储系统、楼宇自动化系统、温控制程生产线之温度影像检测、医疗与健诊的温度测试、空调系统的温度检测、石化、机械等。系统框图如下:图2 .2 方案三的系统框图2.3 方案的比较与选择基于数字式温度计DS18B20的温度测量仪的硬软件
17、开发过程,DS18B20将温度信号直接转换为数字信号,实现了与单片机的直接接口,从而省去了信号调理电路。该仪器电路简单、功能可靠、测量效率高,很好地弥补了传统温度测量方法的不足。相对与方案1,在功能、性能、可操作性等方面都有较大的提升。相对与方案2,硬件电路简单,易于操作,具有更高的性价比,更大的市场。所以我采用方案3完成本设计。2.4 方案的阐述与论证 方案三以DS18B20为传感器、AT89C51单片机为控制核心组成多点温度测试系统,该系统包括传感器电路、键盘与显示电路、串口通信电路等组成部。采用美国Dallas半导体公司推出的数字温度传感器DS18B20,属于新一代适配微处理器的智能温度
18、传感器。它具有独特的单总线接口,仅需要占用一个通用I/0端口即可完成与微处理器的通信。全部传感元件及转换电路集成在形如一只三极管的集要求通过简单的编程实现912位的数字值读数方式。其可以分别9375ms和750ms内完成9位和12位的数字量,最大分辨率为0.0625 , 而且从DS18B20读出或写入DS18B20的信息仅需要一根口线(单线接口)读写。它有如下的性能特点:1)独特的单线接口,既可通过串行口线,也可通过其它I/O口线与微机接口,无需变换其它电路,直接输出被测温度值; 2)多点能力使分布式温度检测应用得以简化;3)不需要外部元件;4) 既可用数据线供电,也可采用外部电源供电;5)不
19、需备份电源;6) 测量范围为-55+125 , 固有测温分辨率为05 ;7)通过编程可实现912位的数字读数方式;8)用户可定义非易失性的温度告警设置;9)警告搜索命令能识别和寻址温度在编定的极限之外的器件(温度警告情况);10)应用范围包括恒温控制、工业系统、消费类产品、温度计或任何热敏系统。以上特性使得DS18B20非常适用于构建高精度、多点温度测量系统。根据DS18B20以上的特点我选用方案三来实现本课题。第三章 硬件设计本课题研究的多点测温系统是以单片机和单总线数字温度传感器DS18B20为核心,充分利用单片机优越的内部和外部资源及数字温度传感器DS18B20的优越性能构成一个完备的测
20、温系统,实现对温度的多点测量。整个系统由单片机控制,能够接收传感器的温度数据并显示出来,可以从键盘输入命令,系统根据命令,选择对应的温度传感器,并由驱动电路驱动温度显示。本课题设计了一种合理、可行的单片机监控软件,完成测量和显示的任务。由于单片机具有强大的运算和控制功能,使得整个系统具有模块化、硬件电路简单以及操作方便等优点。本课题的整个系统是由单片机、显示电路、键盘电路、驱动电路,串口通信等构成。3.1 温度传感器3.1.1 温度传感器选用细则 现代传感器在原理与结构上千差万别,如何根据具体的测量目的、测量对象以及测量环境合理地选用传感器,是在进行某个量的测量时首先要解决的题。当传感器确定之
21、后,与之相配套的测量方法和测量设备也就可以确定了。测量结果的成败,在很大程度上取决于传感器的选用是否合理。1) 根据测量对象与测量环境确定传感器的类型要进行个具体的测量工作,首先要考虑采用何种原理的传感器,这需要分析多方面的因素之后才能确定。因为,即使是测量同一物理量,也有多种原理的传感器可供选用,哪一种原理的传感器更为合适,则需要根据被测量的特点和传感器的使用条件考虑以下一些具体问题:量程的大小;被测位置对传感器体积的要求;测量方式为接触式还是非接触式;信号的引出方法,有线或是非接触测量;传感器的来源,国产还是进口,价格能否承受,还是自行研制。2)灵敏度的选择通常,在传感器的线性范围内,希望
22、传感器的灵敏度越高越好。因为只有灵敏度高时,与被测量变化对应的输出信号的值才比较大,有利于信号处理。但要注意的是,传感器的灵敏度高,与被测量无关的外界噪声也容易混入,也会被放大系统放大,影响测量精度。因此,要求传感器本身应具有较高的信噪比,尽员减少从外界引入的串扰信号3)频率响应特性 传感器的频率响应特性决定了被测量的频率范围,必须在允许频率范围内保持不失真的测量条件,实际上传感器的响应总有定延迟,希望延迟时间越短越好。传感器的频率响应高,可测的信号频率范围就宽,而由于受到结构特性的影响,机械系统的惯性较大,因有频率低的传感器可测信号的频率较低。4)线性范围 传感器的线形范围是指输出与输入成正
23、比的范围。以理论上讲,在此范围内,灵敏度保持定值。传感器的线性范围越宽,则其量程越大,并且能保证一定的测量精度。在选择传感器时,当传感器的种类确定以后首先要看其量程是否满足要求。但实际上,任何传感器都不能保证绝对的线性,其线性度也是相对的。当所要求测量精度比较低时,在一定的范围内,可将非线性误差较小的传感器近似看作线性的,这会给测量带来极大的方便。5) 稳定性传感器使用一段时间后,其性能保持不变化的能力称为稳定性。影响传感器长期稳定性的因素除传感器本身结构外,主要是传感器的使用环境。因此,要使传感器具有良好的稳定性,传感器必须要有较强的环境适应能力。在选择传感器之前,应对其使用环境进行调查,并
24、根据具体的使用环境选择合适的传感器,或采取适当的措施,减小环境的影响。6) 精度精度是传感器的一个重要的性能指标,它是关系到整个测量系统测量精度的一个重要环节。传感器的精度越高,其价格越昂贵,因此,传感器的精度只要满足整个测量系统的精度要求就可以,不必选得过高。这样就可以在满足同一测量目的的诸多传感器中选择比较便宜和简单的传感器。如果测量目的是定性分析的,选用重复精度高的传感器即可,不宜选用绝对量值精度高的;如果是为了定量分析,必须获得精确的测量值,就需选用精度等级能满足要求的传感器。对某些特殊使用场合,无法选到合适的传感器,则需自行设计制造传感器。自制传感器的性能应满足使用要求。3.1.2
25、温度传感器DS18B20DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器。全部传感元件及转换电路集成在形如一只三极管的集成电路内。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。其可以分别9375ms和750ms内完成9位和12位的数字量,最大分辨率为00625 , 而且从DS18B20读出或写入DS18B20的信息仅需要一根口线(单线接口)读写。 DS18B20的性能特点单线数字化智能集成温度的传感器,其特点是: DSI8B20可将被测温度直接转换成计算机能识别的数字信号输出,温度值不需要经电桥电路先获取电
26、压模拟量,再经信号放大和AD转换成数字信号,解决了传统温度传感器存在的因参数不一致性,在更换传感器时会因放大器零漂而必须对电路进行重新调试的问题,使用方便 DS18B20能提供9到12位温度读数,精度高,且其信息传输只需1根信号线,与计算机接口十分简便,读写及温度变换的功率来自于数据线而不需额外的电源 每一个DS18B20都有一个惟一的序列号,这就允许多个DS18B20连接到同一总线上尤其适合于多点温度检测系统 负压特性:当电源极性接反时,DS18B20虽然不能正常工作,但不会因发热而烧毁 正是由于具有以上特点,DS18B20在解决各种误差、可靠性和实现系统优化等方面与传统各种温度传感器相比,
27、有无可比拟的优越性,因而广泛应用于过程控制、环境控制、建筑物、机器设备中的温度检测。其外形和管脚如下图:图3.1 DS18B20外部形状及管脚图DS18B20与单片机的典型接口设计DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。Dsl8B20与单片机的硬件连接有两种方法:一是Vcc接外部电源,GND接地,I/0与单片机的I/0线相连;二是用寄生电源供电,此时,UDD和GND接地,I/0接单片机I/0。无论是哪种供电方式,I/0口线都要接47k Q左右的上拉电阻。图4给出了DSl8B20与微处理器的典型连接。 DS18B20寄生电源供电方式:如下面图3.2(a)所
28、示,在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。 独特的寄生电源方式有三个好处:1) 进行远距离测温时,无需本地电源2) 可以在没有常规电源的条件下读取ROM3) 电路更加简洁,仅用一根I/O口实现测温 要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法
29、转换温度或温度误差极大。因此,该电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。 DS18B20寄生电源强上拉供电方式: 改进的寄生电源供电方式如下面图3.2(b)所示,为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到E2存储器操作时,用MOSFET把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最多10S内把I/O线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于
30、多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。 DS18B20的外部电源供电方式: 如下面图3.2(c)所示,在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,其VDD端用355V电源供电,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85。(c)DS18B20外部电源供电方式 (a)DS18B20寄生电源供电方式 (b) DS18B20温度转换期间的强上拉供电(寄生电源方式)图3
31、.2 DS18B20与微处理器的典型连接图(3)DS18B20 的内部结构:图3.3 为DS18B20 的内部框图,它主要包括寄生电源、温度传感器、64 位激光ROM 单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH 和TL 触发器存储与控制逻辑、8 位循环冗余校验码(CRC)发生器等七部分。64位光刻ROM 的排列是:开始8位是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。光刻R0M 的作用是使每一个DS18B20都各不相同,这可实现一根总线上挂接多个DS18B20的目的。暂存存储器包含了8个连续字
32、节,前2个字节是测得的温度信息,第1个字节的内容是温度的低8位,第2个字节是温度的高8位。第3个和第4个字节是TH、TL的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这3个字节的内容在每一次上电复位时被刷新。第6、7、8个字节用于内部计算。第9个字节是冗余检验字节 图3.3 DS18B20的内部结构(4)DS18B20 的测温原理:DS1820测温原理如下图所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。 图 3.4 DS18B20测温原理高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-
33、55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,DS1 8B20测量温度原理停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。 在正常测温情况下,DS18B20 的测温分辨力为0.5,可采用下述方法获得高分辨率的温度测量结果:首先用DS18B20 提供的读暂存器指令(BEH)读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分TZ,然后再用B
34、EH 指令取计数器1 的计数剩余值CS 和每度计数值CD。考虑到DS18B20测量温度的整数部分以0.25、0.75为进位界限的关系,实际温度TS 可用下式计算:TS=(TZ0.25) (CDCS)/CD(5)告警信号:DS18B20 完成温度转换后,就把测得的温度值与TH、TL 作比较。若TTH 或TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只DS18B20 同时测量温度并进行告警搜索。一旦某测温点越限,主机利用告警搜索命令即可识别正在告警的器件,并读出其序号,而不必考虑非告警器件。(6)CRC 的产生:在64 位ROM 的最高有效字节中存有循环冗余校
35、验码(CRC)。主机根据ROM 的前56 位来计算CRC 值,并和存入DS18B20 中的CRC 值作比较,以判断主机收到的ROM 数据是否正确。CRC 的函数表达式为:CRC=XXX1。此外,DS18B20 尚需依上式为暂存器中的数据来产生一个8位CRC 送给主机,以确保暂存器数据传送无误。在本课题中采用四个数字式温度传感器DS18B20与单片机89C51连接如下图 图3.5 DS18B20多点温度测量连接电路图(7) DS1820使用中注意事项DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:较小的硬件开销需要相对复杂的软件
36、进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更
37、多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。3.2.单片机系统设计 在当今新科学技术飞速发展的年代里,单片机的应用已越来越受到人们的重视,它被广泛的应用于家电、医疗、智能仪表、工业自动化
38、等各个领域。单片机全称单片微型计算机,是将计算机的基本部分微型化,使之集成在一块芯片上的微机。目前市场上较为流行的单片机有Intel公司和Philip公司的8051系列单片机Motorola 公司的M 6800系列单片机。Intel公司的MCS96系列单片机以及Microchip 公司的PIC 系列单片机。片内含有CPU、ROM、RAM、并行I/O口、串行I/O口、定时/计数器、A/D、D/A、中断控制、系统时钟及系统总线等。本课题是利用Intel的89c51控制整个系统。89c51单片机包含下列几个部件:1个8位CPU、1个片内震荡器及时钟电路、4KB ROM程序存储器、128B RAM数据
39、存储器、可寻址64KB外部数据存储器和64KB外部程序存储器的控制电路、32条可编程的I/O线、2个16位的定时/计数器、1个可编程全双工串行接口、5个中断源、2个优先级嵌套中断结构。本课题运用Intel公司的8051进行系统控制,运用到了复位电路,时钟电路,串口,I/O口。复位电路:无论哪种单片机,都会涉及到复位电路。如果复位电路不可靠,在工作中就有可能出现“死机”,“程序走飞”等现象。所以,一个单片机复位电路的好坏,直接影响到整个系统工作的可靠性。复位操作完成单片机片内电路的初始化,使单片机从一种确定的状态开始运行。当89c51单片机的复位引脚RST出现5ms以上的高电平时,单片机就完成了
40、复位操作,如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序,因此要求单片机复位后能脱离复位状态。复位操作通常有上电和开关复位。上电复位要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。常用的上电复位且开关复位电路如图3.6所示,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。单片机的复位操作使单片机进入初始化过程,其中包括是程序计数器PC=0000H,P0-P3=FFH,SP=07H,其他寄存器处于零,程
41、序从0000H地址单元开始执行,单片机复位后不改变片内RAM区中的内容。图3.6 .复位电路时钟电路:89c51单片机的时钟信号通常用内部振荡和外部振荡方式。在引脚XTAL1和XTAX2外接晶体振荡器,就够成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。晶振通常选用6MHZ、12MHZ或24MHZ。内部振荡器方式如下。如图3.7,电容器C1、C2起稳定振荡频率、快速起振的作用,电容值一般为5-30PF。内部振荡方式所得的时钟信号比较稳定。外部振荡方式是把已有的时钟信号引入单片机内,这种方式适于用于用来使单片机的时钟与外部信号保持一致。
42、图3.7 时钟电路串口:串行通信是CPU与外界交换的一种基本方式。单片机运用于数据采集或工业控制时,往往作为前端机安装在工作现场,远离主机,现场数据采用串行通信方式主机并进行处理,以降低通信成本,提高通信可靠性。51系列单片机自身有全双工的异步通信接口,通过软件编程,它可以作为通用异步接受和发送器使用,也可作为同步移位寄存器。89c51单片机串口主要由两个数据缓冲寄存器SBUF和一个输入移位寄存器组成,其内部还有一个串行控制寄存器SCON和一个波特率发生器。接受缓冲器与发送缓冲器占用同一个地址99H,其名称亦同样为SBUF。CPU写SBUF,一方面修改发送寄存器,同时启动数据串行发送;读SBU
43、F,就是读接受寄存器,完成数据的接受。特殊功能寄存器SCON用以存放串行口的控制和状态信息。根据对其写的控制字决定工作方式,从而决定波特率发生器的时钟是来自系统时钟还是来自定时器T1。特殊功能寄存器PCON的最高位SMOD为串行口波特率的倍增控制位。89c51单片机的串行口正是通过对上述专用寄存器的设置,检测与读取来管理串行通信。在进行通信时,外界的串行数据是通过引脚RXD输入的。输入数据先逐位进入输入移位寄存器,在送入接受SBUF。在此采用了双缓冲结构,为了避免在接受到第二帧数据之前,CPU未及时响应接受器的前一帧的中断请求而把前一帧数据读走,造成两帧数据重叠的错误。对于发送器,因为发送时C
44、PU是主动的,不会产生写重叠问题,不需要双缓冲器结构,为了保持最大传送速率,仅用了SBUF一个缓冲器。I/O口:计算机对外设进行数据操作时,外设的数据是不能直接连到CPU的数据线上的,必须经过接口。这是由于CPU的数据线是外设或存储器和CPU进行数据传输的唯一公共通道,为了使数据线的使用对象不产生使用总线的冲突,以及协调快速的CPU和慢速的外设,CPU和外设之间必须有接口电路,接口起着缓冲、锁存数据、地址译码、信息格式转换、传递状态、发布命令等功能,I/O接口有并行接口、串行接口、定时/计数器、A/D、D/A等,根据外设的不同情况的应用要求,选择不同的接口。单片机的I0 口一般是双向的 既可以
45、做输入 也可以做输出。以5 1系列为例,其P0、P 1、P2、P3均为双向口,且可位操作。89c51单片机内部有P0、P1、P2、P3四个8位双向I/O口,外设可直接连接于这几个接口上,而无须另加接口芯片。P0-P3的每个端口可以按字节输入或输出,也可以按位进行输入或输出,共32根口线,用作控制十分方便。P0口为三态双向口,能带8个TTL电路。P1、P2、P3口为准双向口,负载能力为4个TTL电路,如果外设需要的驱动电流大,可加接驱动器。P0口具有双重功能:可以作为输入/输出用,外接输入/输出设备;在有外接存储器和I/O接口时常作为低8位地址/数据总线,即低8位地址与数据线分时使用P0口。此时
46、低8位地址由ALE信号的下跳沿使它锁存到外部地址锁存器中,尔后,P0口出现数据信息。P1口具有单一接口功能,P1口每一位都能作为可编程的输入或输出口线。P2口具有双重功能:作为输入口或输出口使用,外接输入/输出设备;在有外接存储器I/O接口时,作为系统的地址总线。输出高位地址,与P0口低8位地址一起组成16位地址总线。P3口为双重功能口:可以作为输入/输出口,外接输入/输出设备;作为第二功能使用。图 3.8 单片机3.3 显示电路设计本课题要将传感器的温度信号和键盘输入的控制信号都显示出来,利用单片机89c51传输控制信号。本课题要用到MAXIM 公司生产的MAX7219串行LED驱动显示器,
47、此显示器具有接口简单占用资源少、控制灵活方便、LED级联扩展便利的优点。MAX7219是串行输出共阴极显示驱动芯片,每片可驱动8个LED,具有级联功能可控制更多的LED 。MAX7219为24引脚芯片,除与LED显示相连的线外,与微控制器只需3根连线相接:芯片端管脚分别为CLK.DINLOAD,其中CLK为时钟输入端,DIN为数据输入端,LOAD为锁存信号。MAX7219的工作时序为:时钟的上升沿MAX7219把DIN引脚数据移入内部移位寄存器, 在时钟下降沿MAX7219把数据移向DOUT端, 而LOAD的上升沿则锁存最后移入的16位串行数据。对MAX7219的控制操作很方便,其片内具有8个位寄存器和6个控制寄存器位寄存器对应LED的具体内容,控制寄存器决定LED的工作方式。控制寄存器分别为:不工作方式寄存器、译码方式寄存器、亮度控制寄存器、扫描个数寄存器、关闭寄存器显示测试寄存器寄存器的操作格式为2字节的串行数据,第一个字节为寄存器地址,第二个字节为控制命令或待显示数据。寄存器的地址分配及功能如下所示:不工作寄存器(0x00):用于MAX7219级联控制。位寄存器(0x01-0x08):8位LED待显示内容。译码