基于STM32的温度采集系统设计_第1页
基于STM32的温度采集系统设计_第2页
基于STM32的温度采集系统设计_第3页
基于STM32的温度采集系统设计_第4页
基于STM32的温度采集系统设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科论文目录.TOC\o"1-3"\h\u2571摘要 I26387Abstract II3320引言 18941整体系统设计 3188761.1系统方案设计 346781.2系统工作原理 4237532硬件设计 5284262.1STM32单片机 521362.1.1STM32单片机介绍 571482.1.2STM32内部电路图 550262.2LCD1602液晶显示器 7251802.2.1LCD1602介绍 7243412.2.21602各管脚功能 8119402.3DS18B20温度传感器 10315192.3.1DS18B20简介 10244862.3.2DS18B20控制字和读写时序说明 1086662.4温度采集电路与单片机的连接 12252993软件设计 14174963.1总程序流程图 14166153.2液晶显示流程 15318913.3按键处理流程 16142004系统调试 17305264.1系统硬件调试 17307144.2系统软件调试 1816714结论 198132参考文献 2015948附录1原理图 2214655附录2源程序清单 2330575致谢 30摘要本论文主要是为了利用编程软件和硬件来设计并实现STM32单片机对环境温度的信号采集。本文中利用STM32单片机来完成毕业设计,并且主要目的就是完成温度的采集,有一点需要注意的是,温度采集是自动化必须掌握的检测技术,也是一项十分有实用的技术。本文利用STM32的一种微型处理器来当主控的CPU,通过使用一个独立的数据采集模块采集数据,在这个基础上实现了智能化的温度数据采取、然后还有传输、处理和显示等功能。并商讨了该怎么提高系统的速度、性能和拓展性。数据采集是获取信号对象信息的过程。然而本文的设计是一个在ARMCortex-M3处理器的基础上的一项数据采集系统,并且在此基础上实现了对当前场景的温度信号的一种实时跟踪性质的采集。这次毕业设计的主要目的是提供可行性方法来进行可以实施的后续研究。关键词:嵌入式系统;ARM;DS18B20温度传感器;STM32;温度采集;数据的处理。

AbstractThispaperismainlytouseprogrammingsoftwareandhardwaretodesignandrealizethesignalacquisitionoftheenvironmenttemperaturebySTM32singlechipmicrocomputer.Inthispaper,STM32single-chipmicrocomputerisusedtocompletethegraduationproject,andthemainpurposeistocompletethetemperatureacquisition.Onethingneedstobenotedisthattemperatureacquisitionisadetectiontechnologythatmustbemasteredautomatically,anditisalsoaverypracticaltechnology.Inthispaper,STM32microprocessorisusedasthemainCPU,andanindependentdataacquisitionmoduleisusedtocollectdata.Onthisbasis,intelligenttemperaturedataacquisition,transmission,processinganddisplayfunctionsarerealized.Howtoimprovethespeed,performanceandexpansibilityofthesystemisdiscussed.Dataacquisitionistheprocessofacquiringsignalobjectinformation.However,thedesignofthispaperisadataacquisitionsystembasedonarmCortex-M3processor,andonthisbasis,itrealizesareal-timetrackingpropertyofthecurrentscenetemperaturesignalacquisition.Themainpurposeofthisgraduationprojectistoprovidefeasiblemethodstocarryoutthefollow-upresearch.Keywords:Embeddedsystem,arm;DS18B20temperaturesensor;STM32;temperatureacquisition;dataprocessing.引言当今社会,随着社会的不断发展,科学技术的不断进步,测温仪器在各个领域的广泛应用,智能化服务已成为这个时代温控系统发展的重要趋势。温度控制在生活中还有在工业领域中涉及的非常多,像室内、供暖机构、天气预告等这些场所的温度控制。像之前传统的温度控制都是手动的,操作起来很麻烦。本文系统设计目的,首先它得是实现一种精准度高的系统来采集的温度控制系统,其应用必须得以普及,功能强大。它的实用性要强,方便使用者携带,这是一款实用同时又物美价廉的温度控制系统。尤其是最近这几年的情况,温度控制系统现在都被用到人们的生活很多层面,但温度控制一直是一个还没有被完全开发的领域,但同时它又与人类生活有着密不可分的关系。嵌入式系统把应用作为中心,用计算机科学技术作为基本,并且软硬件这方面它是可以裁剪的,为了适应这一应用,对于功能性、可靠性、成本、数量、消耗量等方面都有非常严格的要求。嵌入式控制系统已应用在多个领域,在工业制造、军事、医疗等方面,嵌入式控制系统是不可缺少的一部分,影响着社会生活。嵌入式控制系统是多个行业应用结合的产物,正是因为这样,促使它成为一个资金密集,高度分散的综合体系。如果在技术上停滞不前,不懂得创新,那么也是会被淘汰的。嵌入式控制系统秉承用户至上的宗旨,必须根据用户在软件程序、系统功能、成本等多方面的需求,确定软硬件的制定。它在未来的发展趋势将会是可以建立一个通用的软硬件系统,然后开发一个适合他的系统,就可以更方便用户使用了。以往那种刻板的温度采集系统因为他存在着响应不快、精准度不高、靠谱性不强、效率也不高、操作还麻烦等一系列问题,早就不适合现代化工业的快速的发展。由于嵌入式技术的高速发展,设计速度快、效率高、成本低、可靠性高、操作非常便利的温度采集系统成为目前很重要的发展趋势。因此STM32的温度采集系统就成为了解决以往刻板温度采集系统中的种种问题的优先选择方案。本毕业论文是基于STM32单片机温度采集的设计。基于STM32单片机的智能温度检测设计,通过外部温度传感器实现温度的实时采集。它能满足不同情况下温度采集的需要。它主要需要实现以下功能:首先,温度传感器测量当前温度,将测量值传送到单片机上,并在液晶显示器上显示当前温度。第二点通过设置温度上限和下限来比较当前温度。如果当前温度不在温度上限和下限内,警报将发出警报。让用户及时发现温度的变化。根据实际应用情况,选择合适的温度传感器,设计相应的传感器驱动电路和传感器信号调理电路。控制核心采用STM32F103C8T6主控芯片,设计了硬件的功能模块和外围电路,主要包括:温度传感器、液晶显示、按键、报警功能和声光报警单元模块等。1整体系统设计1.1系统方案设计第一个方案:需要使用模拟分立的元件,例如电容、电感、晶体管等非线性元件,观察采集的温度和显示的具体效果,这个方案的设计十分的好理解,特别简单,并且它的操作也不是特别的难,还有个好处,就是它的价格是非常合适的。缺点就是如果用分立的元件,会造成它的分散性特别的大,对集成数字化是十分不好,而且最后测量之后,会存在很大的误差的,所以这个方案的可行性不太好,尽量不用。第二个方案:选用PC机作为本次设计的主控机。利用温度传感器来选用温度的信号,通过信号放大器之后,再送到A/D转换芯片中,然后再一次的经过拥有单片机的检测系统来进行下一步的解析和处理,然后再利用通信线路到PC机的上面,在PC的上面也可以通过对温度信号来进行很多的解析和处理的方式,所以这个方案简单来说还是不错的。图1.1方案二的框图如上图所述,如果用这个方案的话,那么这个技术相对来讲是比较成熟的,发展的时间也是最长的,而且将温度信息上传到PC机,然后再利用PC机的数据处理能力和良好的辅助软件,就可以从多角度、多需求的方向来分析处理这个温度数据,但是这个在工业上基本上是不会运用的。因为PC机的价格的因素,所以这个方案还是不合适的。第三个方案:现在有很多客观需求来促进STM32单片机的设计的整体改进。因为造价高的问题,还有就是物理的尺寸方面是受到很多的限制的,所以这个嵌入式系统的存储器的内存和储存量是有限的。另外,嵌入式的系统它的价格一般来讲是挺敏感的,所以使用速度通常情况下不是很高,成本相对来说也不是很高的。从现在的情况看系统的关键问题并不是在于简单的处理器的速度,而是有效率的系统性能和功能。根据上面写的这三种方案的一些简单的介绍,本次毕业论文系统设计选择第三个方案,这次的毕业设计是用STM32的嵌入式数据解析和显示装置。这一次的系统设计选用的是“STM32核心控制模块+温度采集模块”来完成所需要的功能的。1.2系统工作原理2硬件设计2.1STM32单片机2.1.1STM32单片机介绍STM32这种微型的控制器,它是这个整体温度控制系统的一个核心的部分。因为对温度控制器具有较高的要求,如果执行的速度越快的话,控制的准确度就会越高,稳定性也很高它的灵敏度也会很高,因此必须得选出一种既便宜又实惠而且性能也高的一个单片机。ARMCortex-M3的架构是可以体现出STM32增强型的单片机高性能、低功耗和经济实用的要求。并且它们选择的是THUMB-2指令集,这个指令带来的优势和效果可以变得更强。STM32单片机选择2.0~3.6V的供电电压来使用。这个可以在-40℃~85℃的温度环境下工作。最高的工作频率是72MHz。它的引脚如下图2.1。图2.1STM32F103引脚分布图2.1.2STM32内部电路图本次设计中最主要的是STM32单片机的应用,它本身自带很多功能,工作速度也快。其中它本身自带了一个稳压电路输入5V电源,然后输出为3.3V。原理图如下图2.2。图2.2稳压电路(1)时钟电路本设计选择的STM32单片机外接时钟电路,这样系统运作的话会有稳定的秩序。需要配置外部高速时钟和外部低速时钟。如下图2.3。图2.3外部高速时钟与外部低速时钟(2)复位电路复位电路是每一个电路都会带的功能,本设计选用的STM32内部带有复位电路,但是焊接的实物却没有用到复位电路,作为一款温度测量仪器,测量范围大不适合用复位电路进行复位,所以没有在硬件上加复位开关,复位电路如下图2.4。图2.4复位电路2.2LCD1602液晶显示器2.2.1LCD1602介绍显示器其中的一个部分就是用于显示温度还有温度的上下限。在我们日常生活中,一般来讲生活中运用LCD显示器是比较多的。液晶显示模块经常被用作很多的子产品的通用器件,比如,像手机屏幕,液晶电视,电子钟还有很多家用的电子产品,主要显示数字、特殊的字符和图形。在这样的一个设计中,液晶显示器是用作输出设备的。在单个的芯片系统中如果用液晶显示器来用做输出的话它是得具有以下几个优势:第一个是高显示质量。LCD显示器在各点接收信号后,为了维持一种颜色和亮度,会连续发光。这种情况下,和显像管的显示器不同。阴极射线管的显示器总是更新新的亮点。因此,液晶显示器的画质高也不会闪烁。第二个就是数字型接口液晶显示器全部都是数字信号,还有一点就是它在和单片机的系统的接口是非常的简便和靠谱的,同时操作也是十分的便利的。第三个优势就是它的体积非常小、重量也是非常轻的,液晶显示器的目的是通过显示器上的电极来控制并显示液晶分子的状态,重量比相同显示面积的传统显示器轻得多。第四个优势就是低功耗:一般情况下,液晶显示器的主要功能消耗在其内部的电极和驱动器的IC上,所以耗电比其他显示器少。LCD1602主要技术参数:显示容量:16×2个字符;芯片工作电压:4.5—5.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm。它的原理图如图2.5所示图2.5LCD1602原理图2.2.21602各管脚功能一般来说,1602字符液晶显示器是一种14引脚或16引脚的液晶显示器。本文选用16针引脚液晶显示器。另外两条线是背光电源线VCC和地线GND,控制原理与14引脚LCD相同,其中:表2.11602各管脚功能引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、双向数据总线0位(最低位)8DB1底4位三态、双向数据总线1位9DB2底4位三态、双向数据总线2位10DB3底4位三态、双向数据总线3位11DB4高4位三态、双向数据总线4位12DB5高4位三态、双向数据总线5位13DB6高4位三态、双向数据总线6位14DB7高4位三态、双向数据总线7位(最高位)(也是busyflag)15BLA背光电源是正极16BLK背光电源是负极表2.2寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busyflag(DB7),以及读取位址计数器(DB0~DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据2.3DS18B20温度传感器2.3.1DS18B20简介DS18B20是达拉斯公司生产研发的,拥有单线数字温度的一个传感器,是拥有三个脚TO-92小的空间的一个封闭东西;温度的测量范围在零下五十五摄氏度到零上一百二十五摄氏度,可以编成八到十二位的A/D互换准确度,DS18B20的测量精度是正负0.5摄氏度,被测的温度可以用符号十六位数字来表示输出。原理图及引脚说明如图2.6,功能如表2.3。(a原理图)(b引脚说明)图2.6DS18B20原理图及引脚说明表2.3DS18B20引脚说明序号名称引脚功能1GND接地2DQ数据输入/输出引脚:开漏单总线接口引脚;当被用到寄生电源下,也可向器件提供电源3VDD可选择的VDD引脚,当工作于寄生电源时,此引脚必须接地2.3.2DS18B20控制字和读写时序说明(1)初始化总线上单线的所有操作都从原始时间开始,初始化如下。当通过检测到单线上升沿时,通常会延迟15-60us,并通过拉下一段总线达到其响应脉冲。主机接收到响应脉冲后,表示有一个单线设备在线。(2)ROM操作命令如果总线主机要是发现有对应的脉冲,就能发起某种操作的口令。一般会有五个ROM的操作口令。说明看下表2.4。表2.4ROM操作命令与说明命令类型命令字节功能说明Readrom33H此命令读取激光ROM的64位,只能用于总线上单个DS18B20的情况下,多挂则会发生冲突Matchrom(匹配rom)55H此命令后跟64位ROM序列号,寻址多挂总线上的DS18B20。只有序列号完全匹配的DS18B20才能响应后面的内存操作命令,其他不匹配的将等待复位脉冲。此命令可用于单挂或多挂接总线。Skiprom(跳过rom)CCH此命令用于单挂接总线系统时,可以无需提供64位ROM序列号皆可运行内存操作命令。如果总线上挂多挂DS18B20,并且在此命令后执行读命令,将会发生数据冲突。Scarchrom(搜索rom)F0H主机调用此命令,通过一个排除法过程,可以识别出总线上所有器件的ROM序列号。Alarmrom(警报rom)ECH此命令流程图和scarchrom命令相同,但是DS18B20只有在最近的一次温度测量时满足了告警触发条件,才会响应此命令。(3)内存操作命令ROM操作的口令在被成功操作之后,它就可以通过内存的操作口令。主机是可以提供六个内存的操作口令的,比如表2.5。(4)数据处理DS18B20是有严格要求的,在时间和顺序方面必须得保证数字的完整度。在这个单线上,会存在一些复位冲、应答脉冲、写“1”、写“0”、读“1”、读“0”只有这几种样式的信号类型。所有的一切全部都是从这个主机里操作的。所有写时隙必须大于60μs(即高下拉后大于60μs),所有写时隙之间的恢复时间必须短至1us。DS18B20在DQ线慢慢变低后,对多个数据端口采用了DQ,假如说它是一个高电平的话,那就得写“1”了,那要是低电平的话,那就得写“0”了。针对这个主机所产生的写“1”的这个情况,这个数据线就必须得先被拉低之后,这样才能释放出来的,然后写时间缝隙之后的几个数字后,可以同意DQ线拉到这个高的电平。然而一般情况下,主机如果写了“0”时隙的情况下,DQ线就得被拉到低电平而且最少保持低电平60us。表2.5内存操作命令与说明命令类型命令字节功能说明WriteScratchpad(写暂存器)4EH此命令写暂存器中地址2~4的3个字节(TH、TL和配置寄存器)在发起复位脉冲之前,3个字节都必须要写。RradScratchpad(读暂存器)BEH此命令读取暂存器内容,从字节0~一直读取到字节8。主机可以随时发起复位脉冲以停止此操作。CopyScratchpad(复制暂存器)48H此命令将暂存器中的内容复制进E2RAM,以便将温度告警触发字节存入非易失内存。如果在此命令后产生读时隙,那么只要器件在进行复制就会输出0,复制完成后,再输出1。ConvenrtT(温度转换)44H此命令开始温度转换操作。如果在此命令后主机产生读时隙,那么只要器件在进行温度转换就会输出0,转换完成后在输出1。RecallE2(重调E2存储器)B8H将存储在E2RAM中的温度告警触发值和配置寄存器值重新拷贝到暂存器中,此重调操作在DS18B20加电时自动产生。ReadPowerSupply(读供电方式)B4H主机发起此命令后每个读数据时隙内,DS1820发信号通知它的供电方式:0为寄生电源方式,1为外部供电方式。所有读写时隙至少需要60μs,每个独立时隙至少需要1μs的修复时间。写入定时,主机会将总线15μs内的值拉低至完全输出,并将“1”写入DS18B20。如果主机在拔下总线后能保持60μs的低电平,那么就会往单总线写“0”。DS18B20在主机上会发出读数据的命令,但是之后就得立刻产生读写时隙,这样的话可以方便DS18B20能够传的出好的数据。这里需要注意是,与DS18B20配套使用的是一个频率为11.0592MHz的一个单片机晶振,这种情况下它是在一定意义上决定了这个指令工作的时间,在软件设计这方面它会根据发出的口令来制作时间编写还有很多其他的延时程序。2.4温度采集电路与单片机的连接这次毕业成果用的是DS18B20温度传感器来完成环境的温度采集和变换,它与单片机的连接图如图2.9所示。图2.7单片机与DS18B20连接图STM32F103C8T6的PB15管脚与DS18B20的I/O管脚相连,作为这种数据读入和写出。电阻的R11是一个在DS18B20的I/O口的上拉的一个电阻,在读时隙结束时,I/O脚依靠R4上拉电阻拉回高电平。如果想用DS18B20来操作温度之间的相互转换,那么I/O线就必须证明自己在温度的相互转换之间供给一个够用的能量,因为DS18B20在温度互换之间所工作的电流是必须得达到1毫安的,电路则是用的5V的电源,根据公式I=U/R=5/4700=1.06mA,根据这个原理,选用小一点的电阻,只要保证DS18B20的工作电流就可以了,但是为了让信号稳定下来,通常在电路设计方面就加一个拉电阻。我选用4.7K。3软件设计系统的单片机代码使用的C语言编写,以KeiluVision5软件为开发环境。这样的话这个系统的软件就会实现应该有的功能:(1)通过LCD来显示出这个温度的数值;(2)利用对温度的数值和报警的设置数值的了解,把两者对比了一下,如果超过温度上下限,这个警报器就会响。3.1总程序流程图图3.1主程序流程图由上面程序图就可以看出,接通电源后LCD1602的液晶显示器初始化和系统的最原始化,从而使STM32进入一个相对应的状态和模式。采集当前环境的温度,显示出温度数值,通过按键设置温度的上下限,如果当前温度没超出设置的温度上下限时程序运行结束,如果温度超出温度的上下限,蜂鸣器就会报警。3.2液晶显示流程液晶显示采用了LCD1602液晶,这是种常用的液晶,驱动起来方便,使用简单,显示数据的整体流程无非是,首先液晶初始化,然后送入要在哪一个地址显示的地址数据,再送入要显示的数据即可,但是要注意的是,1602液晶是字符屏,送入的显示的数据必须是字符。显示流程图3.2如下:图3.2液晶显示流程图3.3按键处理流程图3.3按键处理流程图4系统调试4.1系统硬件调试本设计基于电路图理论,根据电路图制作硬件电路。硬件电路的调试主要包括以下几个方面:检查是否有漏焊、误焊、短路、断路等,启动后检查电路是否能正常工作。看有没有漏焊,同时要看需要连接的线路有没有都连上,特别要注意电源线和地线的连接。程序下载成功后,给板子通电之后发现温度在自己设置的阈值之外,但是蜂鸣器没有报警,检查后发现蜂鸣器焊点没有焊接好,经过处理后蜂鸣器正常工作。当温度超过最大值时如图4.1所示:图4.1温度超过最大值当温度低于最小值的时如图4.2所示:图4.2温度低于最小值4.2系统软件调试本设计是基于单片机控制,利用单片机的主程序完成对温度的采集,使用的是STM32系列,这个系列的单片机应用非常广泛,编译语言以C语言为主。本次设计以KeilμVision5软件进行编写。KeilμVision5使用的基本方法,首先本软件上没有STM32单片机的数据,所以我在Keil官网上下载了我所需要的STM32F1xx_DFP.2.3.0直接加载到我的软件上。其次需要建立一个新的项目,选择使我所选择的单片机类型,可以编写一个新的文件,编写完程序后进行编译,编译就是检测程序是否有错误和警告,警告不会影响程序的运行。在编译程序之后,生成.HEX文件。程序写入控制芯片STM32F103C8T6后,接通电源,电源指示灯亮,系统启动。当显示器出现温度时,说明系统开始工作。

结论通过以上分析本篇论文是针对提高温度采集的效率,节省时间并更精确的反应出当前温度和超出阈值范围报警的采集系统。本论文设计的重点在于STM32单片机和DS18B20温度传感器的系统应用。其主要对单片机的最小系统进行相应的设计和选择适合的温度传感器从而使得温度采集系统更为完备,一般来说,温度传感器收集到当前温度数据,通过数据线传递给单片机,以单片机的外部中断形式获取输出信号,并用显示器显示出当前温度。一方面能够展现出当前的温度另一方面当温度超过阈值系统就会报警。在硬件调试方面,由于采用的STM32单片机内部自带很多工作元件。外围元件不是很多,所以调试不太难。对各电子元件也无特别要求。只需要多次反复尝试,避免出错就可以。在软件调试时,发现一些程序只有满足条件才被执行,所以令单步调试难度加大,这时选用程序调试汇总的断点设置,使调试能完整进行。再者碰到编写时忘记切换输入法,有中文标点符号程序编译出现错误,一一改进后完成调试。本次设计经过了硬件和软件的测试,各部分均达到了预期功能:实现了温度采集,以及警示作用。该系统操作简单,可靠性高,灵敏度高等优点。应用本设计产品,可提高温度采集的效率,使我们的生活变得更加的方便。参考文献[1]康华光,电子技术基础模拟部分第四版[M].北京:高等教育出版社,1999.6[2]阎石,数字电子技术基础第四版[M].北京:高等教育出版社,1999.6[3]王福瑞等,单片微机测控系统设计大全[M].北京航空航天大学出版社,1998:331-337[4]宁改娣,杨拴科.DSP控制器原理及应用[M].科学出版社,2002[5]周立功等,ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.1[7]唐清善,ProtelDXP高级实例教程[M].中国水利水电出版社,2004.4.[8]罗浩等,一种新的基于ARM的数据采集系统设计[J].信阳师范学院学报(自然科学版),2006.4[9]秦伟等,基于ARM处理器的数据采集系统的设计[J].自动化技术与应用,2006年第10期[10]杜春雷,ARM体系结构与编程.清华大学出版社,2003[12]李宁,基于MDK的STM32处理器开发应用[M].北京航空航天大学出版社,2008[13]刘黎明等,单片机与嵌入式系统应用[J].英文刊名MICROCONTROLLER&EMBEDDEDSYSTEM,2002:7[14]王田苗,嵌入式系统设计与实例开发[M].北京:清华大学出版社,2003

[15]杜春雷,ARM体系结构与编程[M].北京:清华大学出版社,2003

[16]王中训,李树起.基于水温控制的数据采集系统[M].煤矿机械出版社,2013[17]陈至坤,李蓓.温度检测技术及相关仪器的发展现状[J].河北理工大学学报(自然科学版),2011

[18]乐嘉华温度检测技术的现状和未来[J].炼油化工自动化,1995

[19]陈俊梅,卢莉蓉,周晋阳.一种多用智能温度测量仪的设计与实现[J].现代电子技术,2010[20]刘智勇,传感器产业发展现状及前景分析[J].黑龙江科技信息,2013

[21]中国行业研究网,我国温度传感器市场发展现状解析[R].深圳,2010[22]王中训李树起等,基于水温控制的数据采集系统[M].煤矿机械出版社,2013[23]章诵兰物联网高速发展国内传感器迎来黄金发展期[J].自动化与仪表,2012

[24]陆广振,温度传感器市场前景可观[J].仪器制造,1983

[25]中国电子元件行业协会敏感元器件与传感器分会物联网与传感器产业高峰论坛暨2012年年会会议邀请函[J].传感器与微系统,2012:6

[26]刘忠玉,国外温度传感器发展现状和市场预测[J].传感器技术,1989附录1原理图附录2源程序清单#include"delay.h"#include"key.h"#include"sys.h"#include"usart.h" #include"LCD1602.h"#include"time.h"#include"beep.h"#include"led.h"#include"delay.h"#include"stmflash.h"#include"ds18b20.h"#defineFLASH_SAVE_ADDR0X0800FF00 //设置FLASH保存地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0X08000000)u16fls[2];u8k;u8HL[20]={"TH:TL:"};intTH,TL;u8kz=0;u8s0;u8beep;u8t=0; inttemperature;u8k=0;voidkey(){ k=KEY_Scan(1); if(k==KEY0_PRES) kz++;//**************湿度上限********************** if(k==KEY1_PRES&&kz==1) { TH++; if(TH>125) TH--; } if(k==KEY2_PRES&&kz==1) { TH--; if(TH<=TL) TH++; }//**************湿度下限********************** if(k==KEY1_PRES&&kz==2) { TL++; if(TL>=TH) TL--; } if(k==KEY2_PRES&&kz==2) { TL--; if(TL<-55) TL++; } if(kz>2) { kz=0; fls[0]=TH; fls[1]=TL; STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)fls,2); }}voidshow(){ u8str[16]={"Temper:"}; if(temperature>=0) { if((temperature/1000%10)>0) str[7]=temperature/1000%10+0x30; else str[7]=''; if((temperature/100%10)>=0&&(temperature/1000%10)>0) str[8]=temperature/100%10+0x30; elseif((temperature/100%10)>0&&(temperature/1000%10)<=0) str[8]=temperature/100%10+0x30; else str[8]=''; if((temperature/10%10)>=0) str[9]=temperature/10%10+0x30; str[10]='.'; str[11]=temperature%10+0x30; str[12]=0xdf; str[13]='C'; str[14]=''; str[15]=''; } elseif((temperature*-1)>=100) { str[7]='-'; if((temperature*-1)/100%10>0) str[8]=temperature*-1/100%10+0x30; else str[8]=''; if(((temperature*-1)/10%10)>=0&&((temperature*-1)/100%10>0)) str[9]=temperature*-1/10%10+0x30; elseif(((temperature*-1)/10%10)>0&&(temperature*-1)/100%10<0) str[9]=temperature*-1/10%10+0x30; else str[9]=''; str[9]=temperature/10%10+0x30; str[10]='.'; str[11]=temperature%10+0x30; str[12]=0xdf; str[13]='C'; str[14]=''; str[15]=''; } else { str[7]=''; str[8]='-'; str[9]=temperature*-1/10%10+0x30; str[10]='.'; str[11]=temperature%10+0x30; str[12]=0xdf; str[13]='C'; str[14]=''; str[15]=''; } LCD1602_Show_Str(0,0,str); delay_ms(10); if(kz==1&&s0) { HL[3]=''; HL[4]=''; HL[5]=''; } else { if(TH>=0) { if((TH/100%10)>0) HL[3]=TH/100%10+0x30; else HL[3]=''; if((TH/10%10)>=0&&(TH/100%10)>0) HL[4]=TH/10%10+0x30; elseif((TH/10%10)>0) HL[4]=TH/10%10+0x30; else HL[4]=''; if((TH%10)>=0) HL[5]=TH%10+0x30; } if(TH<0) { HL[3]='-'; if(((TH*-1)/10%10)>0) HL[4]=0x30+(TH*-1)/10%10; else HL[4]=''; if(((TH*-1)/10%10)>=0&&((TH*-1)/10%10)>0) HL[5]=0x30+(TH*-1)%10; else HL[5]=0x30+(TH*-1)%10; } } if(kz==2&&s0) { HL[11]=''; HL[12]=''; HL[13]=''; } else { if(TL>=0) { if((TL/100%10)>0) HL[11]=TL/100%10+0x30; else HL[11]=''; if((TL/10%10)>=0&&(TL/100%10)>0) HL[12]=TL/10%10+0x30; elseif((TL/10%10)>0) HL[12]=TL/10%10+0x30; else HL[12]=''; if((TH%10)>=0) HL[13]=TL%10+0x30; } if(TL<0) { HL[11]='-'; if(((TL*-1)/10%10)>0) HL[12]=0x30+(TL*-1)/10%10; else HL[12]=''; if(((TL*-1)/10%10)>=0&&((TL*-1)/10%10)>0) HL[13]=0x30+(TL*-1)%10; else HL[13]=0x30+(TL*-1)%10; } } LCD1602_Show_Str(0,1,HL); delay_ms(10);}voidproblem(){ if(temperature>=TH*10||temperature<=TL*10) beep=1; else beep=0; if(temperature>=TH*10) LED0=0; else LED0=1; if(temperature<=TL*10) LED1=0; else LED1=1; if(temperature<TH*10&&temperature>TL*10) { LED1=1; LED0=1; } }intmain(void){ u16datatemp[2]; delay_init(); KEY_Init(); BEEP_Init(); LED_Init(); uart_init(9600); LCD1602_Init(); while(DS18B20_Init()) //DS18B20初始化 { LCD1602_Show_Str(1,0,"DS18B20Error"); delay_ms(200); } STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)datatemp,2); TH=datatemp[0]; TL=datatemp[1]; if(TH>125&&TL<-55&&TH<=TL) { TH=40; TL=10; } do { temperature=DS18B20_Get_Temp(); }while(temperature==850); while(1) { if(t%5==0) //每50ms读取一次 { if(kz>0) { if(s0==1)s0=0; elses0=1; } } if(beep==1) BEEP1=!BEEP1; elseBEEP1=1; if(t%10==0) //每100ms读取一次 { temperature=DS18B20_Get_Temp(); t=0; } delay_ms(10); t++; key(); show(); problem(); }}致谢在这次毕业设计中,通过这一阶段的努力,我的毕业设计终于完成了,这意味着我的大学生活即将结束。在大学阶段,我在学习上和思想上都受益匪浅,这除了自身的努力外,与李作纪老师和陈乃周老师的关心、支持和教导是分不开的。在本论文的完成过程中,我的两位老师倾注了大量的心血,从选题到开题报告,从写作提纲到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我衷心感谢。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。写作毕业论文是一次在系统学习的过程,毕业论文的完成,同样也意味着新的学习生活的开始,我将铭记我曾是一名沈城学子,在今后的工作中把沈城的优良传统发扬光大。感谢各位老师的批评指导。

捷键与一些电脑小技巧HYPERLINKwinkey+d:

这是高手最常用的第一快捷组合键。这个快捷键组合可以将桌面上的所有窗口瞬间最小化,无论是聊天的窗口还是游戏的窗口……只要再次按下这个组合键,刚才的所有窗口都回来了,而且激活的也正是你最小化之前在使用的窗口!

--这个就是winkeywinkey+f:

不用再去移动鼠标点“开始→搜索→文件和文件夹”了,在任何状态下,只要一按winkey+f就会弹出搜索窗口。

winkey+r:

在我们的文章中,你经常会看到这样的操作提示:“点击‘开始→运行’,打开‘运行’对话框……”。其实,还有一个更简单的办法,就是按winkey+r!

alt+tab:

如果打开的窗口太多,这个组合键就非常有用了,它可以在一个窗口中显示当前打开的所有窗口的名称和图标●,选中自己希望要打开的窗口,松开这个组合键就可以了。而alt+tab+shift键则可以反向显示当前打开的窗口。

winkey+e:

当你需要打开资源管理器找文件的时候,这个快捷键会让你感觉非常“爽”!再也不用腾出一只手去摸鼠标了!

小提示:

winkey指的是键盘上刻有windows徽标的键●。winkey主要出现在104键和107键的键盘中。104键盘又称win95键盘,这种键盘在原来101键盘的左右两边、ctrl和alt键之间增加了两个windwos键和一个属性关联键。107键盘又称为win98键盘,比104键多了睡眠、唤醒、开机等电源管理键,这3个键大部分位于键盘的右上方。

再补充点

F1显示当前程序或者windows的帮助内容。

F2当你选中一个文件的话,这意味着“重命名”

F3当你在桌面上的时候是打开“查找:所有文件”对话框

F10或ALT激活当前程序的菜单栏

windows键或CTRL+ESC打开开始菜单

CTRL+ALT+DELETE在win9x中打开关闭程序对话框

DELETE删除被选择的选择项目,如果是文件,将被放入回收站

SHIFT+DELETE删除被选择的选择项目,如果是文件,将被直接删除而不是

放入回收站

CTRL+N新建一个新的文件

CTRL+O打开“打开文件”对话框

CTRL+P打开“打印”对话框

CTRL+S保存当前操作的文件

CTRL+X剪切被选择的项目到剪贴板

CTRL+INSERT或CTRL+C复制被选择的项目到剪贴板

SHIFT+INSERT或CTRL+V粘贴剪贴板中的内容到当前位置

ALT+BACKSPACE或CTRL+Z撤销上一步的操作

ALT+SHIFT+BACKSPACE重做上一步被撤销的操作

Windows键+D:最小化或恢复windows窗口

Windows键+U:打开“辅助工具管理器”

Windows键+CTRL+M重新将恢复上一项操作前窗口的大小和位置

Windows键+E打开资源管理器

Windows键+F打开“查找:所有文件”对话框

Windows键+R打开“运行”对话框

Windows键+BREAK打开“系统属性”对话框

Windows键+CTRL+F打开“查找:计算机”对话框

SHIFT+F10或鼠标右击打开当前活动项目的快捷菜单

SHIFT在放入CD的时候按下不放,可以跳过自动播放CD。在打开wo

rd的时候按下不放,可以跳过自启动的宏

ALT+F4关闭当前应用程序

ALT+SPACEBAR打开程序最左上角的菜单

ALT+TAB切换当前程序

ALT+ESC切换当前程序

ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换

PRINTSCREEN将当前屏幕以图象方式拷贝到剪贴板

ALT+PRINTSCREEN将当前活动程序窗口以图象方式拷贝到剪贴板

CTRL+F4关闭当前应用程序中的当前文本(如word中)

CTRL+F6切换到当前应用程序中的下一个文本(加shift可以跳到前

一个窗口)

在IE中:

ALT+RIGHTARROW显示前一页(前进键)

ALT+LEFTARROW显示后一页(后退键)

CTRL+TAB在页面上的各框架中切换(加shift反向)

F5刷新

CTRL+F5强行刷新1.打开“我的电脑”-“工具”-“文件夹选项”-“查看”-在“显示所有文件和文件夹”选项前打勾-“确定”

2.删除以下文件夹中的内容:

x:\DocumentsandSettings\用户名\Cookies\下的所有文件(保留index文件)

x:\DocumentsandSettings\用户名\LocalSettings\Temp\下的所有文件(用户临时文件)

x:\DocumentsandSettings\用户名\LocalSettings\TemporaryInternetFiles\下的所有文件(页面文件)

x:\DocumentsandSettings\用户名\LocalSettings\History\下的所有文件(历史纪录)

x:\DocumentsandSettings\用户名\Recent\下的所有文件(最近浏览文件的快捷方式)

x:\WINDOWS\Temp\下的所有文件(临时文件)

x:\WINDOWS\ServicePackFiles(升级sp1或sp2后的备份文件)

x:\WINDOWS\DriverCache\i386下的压缩文件(驱动程序的备份文件)

x:\WINDOWS\SoftwareDistribution\download下的所有文件

3.如果对系统进行过windoesupdade升级,则删除以下文件:x:\windows\下以$u...开头的隐藏文件

4.然后对磁盘进行碎片整理,整理过程中请退出一切正在运行的程序

5.碎片整理后打开“开始”-“程序”-“附件”-“系统工具”-“系统还原”-“创建一个还原点”(最好以当时的日期作为还原点的名字)

6.打开“我的电脑”-右键点系统盘-“属性”-“磁盘清理”-“其他选项”-单击系统还原一栏里的“清理”-选择“是”-ok了

7、在各种软硬件安装妥当之后,其实XP需要更新文件的时候就很少了。删除系统备份文件吧:开始→运行→sfc.exe/purgecache近3xxM。(该命令的作用是立即清除"Windows文件保护"文件高速缓存,释放出其所占据的空间)

8、删掉\windows\system32\dllcache下dll档(减去200——300mb),这是备用的dll档,只要你已拷贝了安装文件,完全可以这样做。

9、XP会自动备份硬件的驱动程序,但在硬件的驱动安装正确后,一般变动硬件的可能性不大,所以也可以考虑将这个备份删除,文件位于\windows\drivercache\i386目录下,名称为driver.cab,你直接将它删除就可以了,通常这个文件是74M。

10、删除不用的输入法:对很多网友来说,WindowsXPt系统自带的输入法并不全部都合适自己的使用,比如IMJP8_1日文输入法、IMKR6_1韩文输入法这些输入法,如果用不着,我们可以将其删除。输入法位于\windows\ime\文件夹中,全部占用了88M的空间。

11、升级完成发现windows\多了许多类似$NtUninstallQ311889$这些目录,都干掉吧,1x-3xM

12、另外,保留着\windows\help目录下的东西对我来说是一种伤害,呵呵。。。都干掉!

13、关闭系统还原:系统还原功能使用的时间一长,就会占用大量的硬盘空间。因此有必要对其进行手工设置,以减少硬盘占用量。打开"系统属性"对话框,选择"系统还原"选项,选择"在所有驱动器上关闭系统还原"复选框以关闭系统还原。也可仅对系统所在的磁盘或分区设置还原。先选择系统所在的分区,单击"配置"按钮,在弹出的对话框中取消"关闭这个驱动器的系统还原"选项,并可设置用于系统还原的磁盘空间大小。

14、休眠功能会占用不少的硬盘空间,如果使用得少不妨将共关闭,关闭的方法是的:打开"控制面板",双击"电源选项",在弹出的"电源选项属性"对话框中选择"休眠"选项卡,取消"启用休眠"复选框。

15、卸载不常用组件:XP默认给操作系统安装了一些系统组件,而这些组件有很大一部分是你根本不可能用到的,可以在"添加/删除Windows组件"中将它们卸载。但其中有一些组件XP默认是隐藏的,在"添加/删除Windows组件"中找不到它们,这时可以这样操作:用记事本打开\windows\inf\sysoc.inf这个文件,用查找/替换功能把文件中的"hide"字符全部替换为空。这样,就把所有组件的隐藏属性都去掉了,存盘退出后再运行"添加-删除程序",就会看见多出不少你原来看不见的选项,把其中那些你用不到的组件删掉(记住存盘的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论