多点温检测系统的设计_第1页
多点温检测系统的设计_第2页
多点温检测系统的设计_第3页
多点温检测系统的设计_第4页
多点温检测系统的设计_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

南京理工大学毕业设计说明书(论文)作者:孙露学号:教研室:机电教研室专业:机电一体化工程题目:多点温度检测系统的设计指导者:谢聪工程师评阅者:2012年5月

南京理工大学毕业设计(论文)评语学生姓名:孙露班级、学号:题目:多点温度检测系统的设计综合成绩:指导者评语:该生能按时完成毕业设计(论文)任务书规定的工作,积极查阅有关文献资料,设计态度端正,能独立思考并解决有关技术问题,论文符合学校规定的格式,写作的规范化程度好。设计方案可行,有一定的创新性,如果再多参考一些外文资料,将会更加完善。建议成绩评定为良好,可以提交答辩。指导者(签字):2012年5月15日

毕业设计(论文)评语

评阅者评语:该生所选择的毕业设计课题具有较高的应用价值和现实意义,设计方案可行,方案具有一定的创新性,工作量饱满,完全符合毕业设计(论文)任务书规定的工作量要求,写作的规范化程度好。如果再多参考一些外文资料,将会更加完善。建议成绩评定为良好,可以提交答辩。评阅者(签字):年月日答辩委员会(小组)评语:该生答辩思路清晰,知识掌握较全面,口头表达能力较好,回答问题正确率高,经答辩委员会评议,一致通过,该生成绩为良好。答辩委员会负责人(签字):年月日毕业设计说明书(论文)中文摘要本设计系统地介绍了基于DS18B20的多点温度测量系统的组成、设计方案、电路原理、程序设计以及系统仿真过程。DS18B20多点温度测量系统是以AT89C51单片机作为控制核心,智能温度传感DS18B20为控制对象,运用汇编语言编程实现系统的各种功能。该系统由单片机最小系统、传感器电路、报警电路、LCD显示电路、行列式键盘电路、电源电路六大部分组成。借助PROTEUS软件,实现了系统电路设计和仿真。它适用于电力工业、煤矿、森林、火灾、高层建筑等场所,还可以用于环境恶劣的工业控制现场。通过DS18B20的单总线技术,实现对远程环境的温度测量与监控。关键词DS18B20,仿真,测量系统,PROTEUS毕业设计说明书(论文)外文摘要TitleMULTI-POINTTEMPERATUREDETECTIONAbstractThissystemintroducedontheDS18B20multi-pointtemperaturemeasurementsystemcomponents,design,circuittheory,programdesignandproductdevelopmentprocess.DS18B20multi-pointtemperaturemeasurementsystemiscontrolledbythecoreAT89C51SCM,smarttemperaturesensingDS18B20targetsforthecontrol,andisusedofEditcollectedmaterialslanguageprogrammingsystemfunctions.ThesystemisthesmallestMCUsystem,sensorcircuit,alarmcircuits,LCDdisplaycircuit,thefivemajordeterminantkeyboardcircuitcomponents.ThesystemisconstitutedfromPROTEUSsoftware,andthesystemdesignandsimulation,andtheeventualadoptionofhardwareverificationsixbigpart.Itisapplicabletoelectricpowerindustry,coalmine,forest,afire,keyfiguresbuildingetc.place,returncanusedforenvironmentbadofindustrycontrolthespot.DS18B20throughasinglebustechnology,toachievethelong-rangeenvironmentaltemperaturemeasurementandmonitoring.KeywordsDS18B20,simulation,measurementsystem,PROTEUS目录1绪论 11.1课题设计背景 11.2课题研究的目的意义 11.3国内外现状及水平 21.4课题研究内容 22系统的需求分析与总体方案论证 42.1基于模拟温度传感器设计方案 42.2基于数字温度传感器设计方案 52.3方案论证 53电路设计 73.1工作原理 73.2DS18B20与单片机接口技术 83.2.1DS18B20的引脚功能 83.2.2DS18B20与单片机接口电路 83.2.3温度寄存器格式和温度/数据对应关系 93.2.4单片机对DS18B20的控制方法 103.3键盘电路设计 133.3.1行列式键盘与单片机接口电路 133.3.2键盘面板 133.4显示电路设计 143.4.1LCD引脚分布及功能 14单片机与图形液晶的接口电路 153.5报警电路设计 163.6电源电路设计 174程序设计 184.1系统资源分配 184.1.1系统硬件资源分配 184.1.2系统软件资源分配 184.2系统流程设计 18主程序流程设计 184.2.2DS18B20程序流程设计 204.2.3显示程序流程 214.2.4键盘程序程序流程 224.3程序设计 244.3.1主程序设计 245系统仿真 255.1PROTEUS仿真环境介绍 255.2原理图绘制 265.3程序加载 275.3.1程序编译 275.3.2程序加载 275.4系统仿真 285.5仿真结果分析 33结束语 34致谢 35参考文献 36附录一 38附录二 391绪论1.1课题设计背景温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一,同时它也是一种最基本的环境参数。人民的生活与环境温度息息相关,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,在电力、化工、石油、冶金、机械制造、大型仓储室、实验室、农场塑料大棚甚至人们的居室里经常需要对环境温度进行检测,并根据实际的要求对环境温度进行控制。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行。炼油过程中,原油必须在不同的温度和压力条件下进行分流才能得到汽油、柴油、煤油等产品;没有合适的温度环境,许多电子设备不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。可见,研究温度的测量具有重要的理论意义和推广价值。随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日益突出,成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。本设计就是为了满足人们在生活生产中对温度测量系统方面的需求。本设计要求系统测量的温度的点数为4个,测量精度为0.1℃,测温范围为-55℃~+128℃。采用液晶显示温度值和路数,显示格式为:温度的符号位,整数部分,小数部分,最后一位显示℃。显示数据每一秒刷新一次。1.2课题研究的目的意义21世纪科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了巨大的变化,我们已经进入了高速发展的信息时代,测量技术也成为当今科技的主流之一,被广泛地应用于生产的各个领域。对于本次设计,其目的在于:(1)掌握数字温度传感器DS18B20的原理、性能、使用特点和方法,利用C51对系统进行编程。(2)本课题综合了现代测控、电子信息、计算机技术专业领域方方面面的知识,具有综合性、科学性、代表性,可全面检验和促进学生的理论素养和工作能力。(3)本课题的研究可以使学生更好地掌握基于单片机应用系统的分析与设计方法,培养创新意识、协作精神和理论联系实际的学风,提高电子产品研发素质、增强针对实际应用进行控制系统设计制作的能力。1.3国内外现状及水平传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。温度传感器的发展大致经历了以下三个阶段:传统的分立式温度传感器(含敏感元件);模拟集成温度传感器/控制器;数字温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展,同时具有抑制串模干扰能力强、分辨力高、线性度好、成本低等优点。随着我国四个现代化和经济发展,我国在科技和生产各领域都取得了飞速的发展和进步,发展以温度传感器为载体的温度测量技术具有重大意义。DS18B20是美国DALLAS公司生产的单总线数字温度传感器,可把温度信号直接转换成串行数字信号供微机处理,而且可以在一条总线上挂接任意多个DS18B20芯片,构成多点温度检测系统无需任何外加硬件(《单总线数字温度传感器DS18B20及其在单片机系统的应用》)。单总线数字温度传感器,具有微型化、低功耗、高性能、抗干扰能力强、易于与微控制器接口优点,适合于各种温度测控系统(《数字温度传感器DS18B20及其应用》)。以DS18B20为例,介绍数字式温度传感器的功能特点及由DS18B20组成的温度测控网络系统的设计。随着社会的发展、农业生产也进人了工厂化、数字化时代,人们开始“使用人工设施、人工控制环境因素,使植物获得最适宜的生长条件,从而延长生产季节,获得最佳产出”,由此“工厂化农业”应运而生并被广泛接受(《单总线温度传感器DS18B20及其在温室系统中的应用》)。我国是一个人口众多的农业大国,粮食生产、需求与储备量很大,粮食在储备的过程中常因粮食的湿度过大而升温发热,又由于检测手段的落后造成温检系统错报或漏报,从而导致粮食大量的腐烂变质,给国家带来巨大的损失。这就对粮情检测系统提出了较高的要求(《一种基于单线数字温度传感器DS18B20的储粮温度检测系统的设计》)。而基于DS18B20设计的温度检测系统就可以实现这一需求。1.4课题研究内容本设计研究的主要内容如下:(1)在广泛查阅温度检测控制理论和方法、测温技术和温度控制技术等资料的基础上,根据不同的控制要求及应用领域完成对系统方案的总体设计。本设计采用以AT89C51为核心的单片机系统,来实现对温度的检测、报警等功能。(2)研究比较各相关元器件的功能与特点,选择合适的元器件。(3)系统硬件设计。系统硬件设计主要包括:温度检测、单片机数据采集处理、显示、键盘设定、报警电路等部分。(4)系统软件设计。本课题采用汇编语言,利用Keil编译器进行编程及调试。主要研究DS18B20与单片机的通信协议、时序及一些通用程序等。本设计的难点分为硬件和软件两个方面。其中硬件开发的难点在于各种元器件的选择和使用,如各种电阻、电容等的选择。软件开发的难点在于DS18B20的时序,如果时序不正确,将无法读出正确的温度值,对系统产生很大的影响。2系统的需求分析与总体方案论证2.1基于模拟温度传感器设计方案该方案由单片机、模拟温度传感器AD590、运算放大器、AD转换器、4×4键盘、LCD显示电路、集成功率放大器、报警器组成,如图2.1所示。本方案采用模拟温度传感器AD590作为测温元件,传感器将测量的温度变换转换成电流的变化,再通过电路转换成电压的变化,使用运算放大器交将信号进行适当的放大,最后通过模数转换器将模拟信号转换成数字信号,传给给单片机,单片机将温度值进行处理之后用LCD显示,当温度值超过设置值时,系统开始报警。图2.1基于模拟温度传感器的测量系统方案本方案使用的测温元件的性能指标如下:(1)AD590的测温范围为﹣55℃~+150℃。(2)AD590的电源电压范围为4V~30V,电源电压可在4V~6V范围变化,电流

变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。(3)输出电阻为710MW。

(4)精度高,AD590共有I、J、K、L、M五档,其中M档精度最高,在﹣55℃~+150℃范围内,非线性误差为±0.3℃。

集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便,温度测量范围广等优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0℃时输出为0,温度25℃时输出2.982V。电流输出型的灵敏度一般为1mA/K。2.2基于数字温度传感器设计方案该方案使用了AT89C51单片机作为控制核心,以智能温度传感器DS18B20为温度测量元件,采用多个温度传感器对各点温度进行检测,通过4×4键盘模块对正常温度进行设置显示电路采用128×64LCD模块,使用LM386作为报警电路中的功率放大器。图2.2基于数字温度传感器测量系统方案本课题采用数字温度传感器DS18B20作为测为测温元件,它具有如下特点:(1)只要求一个端口即可实现通信。(2)在DS18B20中的每个器件上都有独一无二的序列号。(3)实际应用中不需要外部任何元器件即可实现测温。(4)测量温度范围在-55℃到+128℃之间。(5)数字温度计的分辨率用户可以从9位到12位选择。(6)内部有温度上、下限告警设置。2.3方案论证 本设计要求测量的点数为4,测温范围为-55℃~+128℃,精度为0.1℃。采用液晶显示,同时显示路数和温度,每秒刷新1次显示数据。综合模拟温度传感器和数字温度传感器的性能指标,以上两个方案都能达到设计的要求。方案一采用模拟温度传感器AD590,转换结果需要经过运算放大器和AD转换器传送给处理器。它控制虽然简单,成本低,但是后续电路复杂,且需要进行温度标定,集成温度传感器AD590输出为电流信号,且输出信号较弱,所以需要后续放大及A/D转换电路,如采用普通运放则精度难以保证,而测量放大器价格较高,这样会使系统成本升高。方案二采用了数字温度传感器DS18B20,改变了传统温度测试方法。它能在现场采集温度数据,直接将温度物理量变换为数字信号并以总线方式传送到单片机进行数据处理,并且可根据实际要求通过简单的编程实现9-12位的数字式读数方式,因而使用DS18B20可使系统结构更趋简单,可靠性更高,大大提高系统的抗干扰能力。DS18B20体积小、经济、使用方便灵活,测试精度高,较高的性能价格比,有CRC校验,系统简明直观。适合于恶劣环境的现场温度测试,如:环境控制、设备或过程控制、测温类消费电子产品等。方案二程序设计稍微复杂一些,但在毕业设计期间我用DS18B20做过温度计,也调试过LCD,并且已经用PROTEUS实现了系统的仿真。因此,该方案完全具有可行性,同时体现了技术的先进性,经济上也有很大的优势。综上所述,本课题采用方案二对系统进行设计。3电路设计3.1工作原理基于DS18B20多点温度测量系统以AT89C51为核心器件,以KEIL为系统开发平台,用汇编语言进行程序设计,以PROTEUS作为仿真软件设计而成的。系统主要由传感器电路、液晶显示电路、键盘电路、报警电路、电源电路组成,系统原理图如图3.1所示。图3.1系统原理图DS18B20是数字温度传感器,它的输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度以串口发送给主机。主机按照通信协议用一个IO口模拟DS18B20的时序,发送命令(初始化命令、ROM命令、RAM命令)给DS18B20,转换完成之后读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。在系统启动之时,可以通过4×4键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,液晶显示该传感器的路数、设置温度值、实际温度值,从而实现了对各点温度的实时监控。每个DS18B20有自己的序列号,因此本系统可以在一根总线上挂接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20才作出响应,接收主机的命令,向主机发送转换的温度。采用这种DS18B20寻址技术,使系统硬件电路更加简单。3.2DS18B20与单片机接口技术3.2.1DS18B20的引脚功能DS18B20的引脚功能描述见表3.1。表3.1DS18B20引脚功能描述序号名称引脚功能描述1GND地信号2DQ数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源3VDD可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地3.2.2DS18B20与单片机接口电路如图3.2所示,为单片机与DS18B20的接口电路。DS18B20只有三个引脚,一个接地,一个接电源,一个数字输入输出引脚接单片机的P1.7口,电源与数字输入输出脚间需要接一个4.7K的电阻。图3.2DS18B20与单片机接口电路3.2.3温度寄存器格式和温度/数据对应关系DS18B20温度寄存器如表3.2所示。其寄存器有16位,高5位为符号位,低13位为数据位。当寄存器高5位为1时,表示温度为负,否则为正。表3.2温度寄存器格式bit7bit6bit5bit4bit3bit2bit1bit0232221202-12-22-32-4LSByte表3.3温度/数据的关系Bbit15bit14bit13bit12bit11bit10bit9bit8SSSSS262524MSByte如果测得的温度大于0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,测得的数值需要取反加1再乘0.0625,即可得到实际的温度值。如表3.3所示,是DS18B20的温度与数据的对应关系。

温度输出(2进制)输出(16进制)+125℃000001111101000007D0H+85℃00000101010100000550H+20.0625℃00000001100100010191H+10.125℃000000001010001000A2H+0.5℃00000000000010000008H0℃00000000000000000000H-0.5℃1111111111111000FFF8H-10.125℃1111111101011110FF5EH25.0625℃1110111001101111EE6FH-55℃1111111010010000FE90H3.2.4单片机对DS18B20的控制方法DS18B20采用严格的单总线通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。除了应答脉冲所有这些信号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节为单位。且低位在前,高位在后。(1)初始化序列:复位脉冲和应答脉冲在初始化过程中,主机通过拉低单总线至少480µs,以产生复位脉冲(TX),然后主机释放总线并进入接收(RX)模式。当总线被释放后,5kΩ的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15µs~60µs,通过拉低总线60µs~240µs产生应答脉冲。初始化脉冲如图3.3所示。图3.3DS18B20初始化时序(2)DS18B20的读写控制在写时序期间,主机向DS18B20写入数据;而在读时序期间,主机读入来自DS18B20的数据。在每一个时序,总线只能传输一位数据。读/写时序如图3.4所示。①DS18B20写时序DS18B20存在两种写时序:“写1”和“写0”。主机在写1时序向DS18B20图3.4DS18B20读写时序写入逻辑1,而在写0时序向DS18B20写入逻辑0。所有写时序至少需要60µs,且在两次写时序之间至少需要1µs的恢复时间。两种写时序均以主机拉低总线开始。产生写1时序:主机拉低总线后,必须在15µs内释放总线,然后由上拉电阻将总线拉至高电平。产生写0时序:主机拉低总线后,必须在整个时序期间保持低电平(至少60µs)。在写时序开始后的15µs~60µs期间,DS18B20采样总线的状态。如果总线为高电平,则逻辑1被写入DS18B20;如果总线为低电平,则逻辑0被写入DS18B20。读时序DS18B20只能在主机发出读时序时才能向主机传送数据。所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20能够传送数据。所有读时序至少60µs,且在两次独立的读时序之间至少需要1µs的恢复时间。每次读时序由主机发起,拉低总线至少1µs。在主机发起读时序之后,DS18B20开始在总线上传送1或0。若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20发出的数据在读时序下降沿起始后的15µs内有效,因此主机必须在读时序开始后的15µs内释放总线,并且采样总线状态。③DS18B20的命令序列根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。ROM命令通过每个器件64-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。DS18B20的ROM如表3.4所示,每个ROM命令都是8bit长。表3.4DS18B20ROM命令指令协议功能读ROM33H读DS18B20中的编码(即64位地址)符合ROM55H发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20,使之作出响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20温度转换命令,适用于单个DS18B20工作告警搜索命令0ECH执行后,只有温度超过庙宇值上限或下限的片子才做出响应温度转换44H启动DS18B20进行温度转换,转换时间最长为500ms(典型为200ms),结果丰入内部9字节RAM中读暂存器BEH读内部RAM中9字节的内容 写暂存器4EH发出向内部RAM的第3、4字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据复制暂存器48H将RAM中第3、4字内容复制到E2PROM中重调E2PROM0B8H将E2PROM中内容恢复到RAM中的第3、4字节读供电方式0B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外部供电时DS18B20发送“1”3.3键盘电路设计3.3.1行列式键盘与单片机接口电路根据本设计需要,本系统采用了4×4键盘实现对温度值和功能键的设定。行列式键盘与单片机的接口电路如图3.5所示,H0-H3为行线,接单片机P2口的高4位,L0-L3为列线,接单片机P2口的低4位。初始化时键盘行线为高电平,列线为低电平。键盘的行线接4输入与门,4输入与门的输出接单片机的外部中断0引脚P3.2口。当有键按下时,将产生中断,在中断程序里对按键进行扫描,得到按键的键值。图3.54×4键盘结构3.3.2键盘面板键盘面板如图3.6所示,本系统使用的键盘有10数字键,5个功能按键。在系统启动时,先按“设置”键,然后按相应的数字键,按“左移”或者“右移”键改变其他温度的值。按“确认”键之后系统正式启动。系统在运行过程之中可以通过按“重新设置”键,对温度重新进行设置。图3.6键盘面板3.4显示电路设计3.4.1LCD引脚分布及功能(1)12864液晶显示屏共有20个引脚,其引脚名称及引脚编号的对应关系如图3.7所示:图3.712864液晶显示模块引脚分布图(2)引脚功能如表3.5所示:表3.512864液晶显示模块引脚功能引脚符号引脚功能引脚符号引脚功能1VSS电源地15CS1CS1=1芯片选择左边64*64点2VDD电源正+5V16CS2CS2=1芯片选择右边64*64点3VO液晶显示驱动电源17/RST复位(低电平有效)4RSH:数据输入;L:指令码输入18VEELCD驱动负电源5R/WH:数据读取;L:数据写入19A背光电源(+)6E使能信号。20K背光电源(-)7-14DB0-DB7数据线有些型号的模块19、20脚为空脚3.4.2单片机与图形液晶的接口电路LCD与单片机的接口电路如图3.8所示:单片机对LCD的控制方法将在下一章中详细介绍。图3.8LCD与单片机的接口电路3.5报警电路设计本系统设计中有报警器,使用LM386作为报警器的功率放大器,如图3.9所示。LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。LM386的输入端接单片机的引脚P3.4,输出端接扬声器。当实际温度超过设置的温度值时,单片机引脚输出一定频率的信号,信号经过音频功放放大之后,发出报警声。 图3.9LM386功放电路3.6电源电路设计电源是整个系统的能量来源,它直接关系到系统能否运行。在本系统中单片机、液晶显示、报警等电路需要5V的电源,因此电路中选用稳压芯片7805,其最大输出电流为1.5A,能够满足系统的要求,其电路如图3.10所示。图3.10电源电路4程序设计4.1系统资源分配4.1.1系统硬件资源分配本系统电路连接及硬件资源分配如图4.1所示。采用AT89C51单片机作为核心器件,DS18B20作为温度测量装置,通过AT89C51的P1.7口将温度值送入单片机处理,利用12864LCD显示器和4×4键盘作为人机接口。图4.1系统硬件资源分配4.1.2系统软件资源分配本系统采用了汇编语言进行程序设计,系统自动为各个变量分配内存区域。用户可以将变量定义在data区、IDATA区、PDATA区、XDATA区,常量定义在CODE区。4.2系统流程设计4.2.1主程序流程设计主程序先对系统资源进行初始化,调用LCD显示子程序,显示启动画面。然后进入键盘设置界面。当设置键按下后,开始设置各点的温度,设置完之后,如果确认键按下,则系统开始工作。首先调用DS18B20初始化子程序,再发送ROM命令,读取DS18B20转换的温度值。当读取的温度大于设置的温度值时,报警器开始报警,LCD显示温度的实际值、设置值、路数、状态。接下来对第二、三、四路温度进行采集,处理,显示。主程序流程如图4.2所示:图4.2主程序流程4.2.2DS18B20程序流程设计由上一章单片机对DS18B20的控制方法,设计出如下程序流程:图4.3写命令子程序流程图图4.4DS18B20复位子程序流程图图4.5DS18B20读温度子程序流程图4.2.3显示程序流程显示是实现人机对话的重要部分,在这里选用12864LCD显示器可实现对汉字、字符和图片的显示,LCD的引脚功能在上面已经做了说明,下面是其相关指令的介绍。(1)读取状态字D/IR/WDB7DB6DB5DB4DB3DB2DB1DB001BUSY0ON/OFFRST0000当R/W=1,D/I=0时,在E信号为高的作用下,状态分别输出到数据总线上。状态字是了解模块当前工作状态的唯一的信息渠道,在每次对模块操作之前,都要读出状态字,判断BUSY是否为“0”。若不为“0”,则单片机需要等待,直至BUSY=0为止。(2)显示开关设置D/IR/WDB7DB6DB5DB4DB3DB2DB1DB0000011111DD=1:开显示;D=0关显示。(3)显示起始行设置D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00011显示起始行(0~63)指令表中DB5~DBO为显示起始行的地址,取值在0~3FH(1~64行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。(4)页面地址设置D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00010111Page(0~7)页面地址是DDRAM的行地址,8行为一页,DDRAM共64行即8页,DB2-DB0表示0-7页。(5)列地址设置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00001Yaddress(0~63)列地址是DDRAM的列地址。共64列,DB5-DB0取不同值得到0-3FH(1-64),代表某一页面上的某一单元地址,列地址计数器在每一次读/写数据后它将自动加一。(6)写显示数据D/IR/WDB7DB6DB5DB4DB3DB2DB1DB010显示数据该操作将8位数据写入先前已确定的显示存储器的单元内。操作完成后列地址计数器自动加一。(7)读显示数据D/IR/WDB7DB6DB5DB4DB3DB2DB1DB011显示数据该操作将12864模块中的DDRAM存储器对应单位中的内容读出,然后列地址计数器自动加一。根据上面指令结合系统要实行的功能,其显示子程序流程如图4.6所示。图4.6显示子程序流程图4.2.4键盘程序程序流程键盘中断程序是用来设在系统起动时各环境温度的极值,其程序流程图如图4.7所示:图4.7键盘程序流程4.3程序设计4.3.1主程序设计系统主程序:见附录二。5系统仿真5.1PROTEUS仿真环境介绍Proteus是英国Labcenterelectronics公司研发的EDA设计软件,是一个基于ProSPICE混合模型仿真器的,完整的嵌入式系统软、硬件设计仿真平台。Proteus不仅可以做数字电路、模拟电路、数模混合电路的仿真,还可进行多种CPU的仿真,涵盖了51、PIC、AVR、HC11、ARM等处理器,真正实现了在计算机上从原理设计、电路分析、系统仿真、测试到PCB板完整的电子设计,实现了从概念到产品的全过程。下面介绍一下PROTEUS的编辑环境。(1)工作界面ProteusISIS的工作界面是一种标准的Windows界面,如图5.1所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图5.1ProteusISIS的工作界面(2)主菜单PROTEUS包括File、Edit、View等12个菜单栏,如图5.2所示。每个菜单栏又有自己的菜单,PROTEUS的菜单栏完全符合WINDOWS操作风格。图5.2ProteusISIS的菜单栏(3)工具栏工具栏包括菜单栏下面的标准工具栏和图5.1右边的绘图工具栏,标准工具栏的内容与菜单栏的内容一一对应,绘图工具栏有丰富的操作工具,选择不同的按纽会得到不同的工具。5.2原理图绘制(1)新建文件:打开PROTEUS,点FILE,在弹出的下拉菜单中选择NEWDESIGN,在弹出的图幅选择对话框中选LandscapeA4。(2)元器件选取:按设计要求,在对象选择窗口中点P,弹出PICKDEVICES对话框,在KEYWORDS中填写要选择的元器件,然后在右边对话框中选中要选的元器件,则元器件列在对象选择的窗口中。本设计所需选用的元器件如下:AT89C51:单片机LM016L:液晶显示器③RES、RESPACK-8:电阻、上拉电阻④CRYSTAL:晶振⑤CAP、CAP-ELEC:电容、电解电容⑥DS18B20:数字温度传感器⑦BUTTON:按键(3)放置元器件、电源和地、连线,得到如图5.3所示的系统电路图,最后进行电气检测。图5.3系统电路仿真图5.3程序加载5.3.1程序编译(1)启动KEIL,选择Project->NewProject,在弹出的对话框中输入工程的名字,点击保存;选择ATMEL公司的AT89C51单片机。(2)在SourceGroup1上点击右键,选择“AddFilestoGroupSourceGroup1”,把所有的源文件加进来。(3)点击Project->Buildtarget或者使用快捷键F9,编译工程。当OutputWindows中提示“0Error”时,则程序编译成功,生成可执行文件1.HEX。5.3.2程序加载在编辑环境中双击AT89C51,在弹出的对话框中将编译生成可执行文件1.HEX加载进芯片中,设单片机的时钟工作频率为12MHZ。5.4系统仿真点击全速运行按钮,将出现如下仿真结果:(1)系统的启动在系统的启动过程之中,液晶将会显示我的名字及扬州职大的汉语拼音。图5.4系统启动时初始显示仿真图(2)温度值的设定系统程序对环境的正常温度的极值进行设定,当环境的实际温度超过设定的这个极值时,系统将会报警,并在液晶显示屏上显示<L或>H。(3)系统运行系统运行之后,按下相应路数的按键,DS18B20开始对相应路数的环境进行测量,将环境的实际的温度显示在液晶屏上,同时液晶显示屏还显示环境温度的路数。当环境的实际温度超过设定的这个极值时,系统将会报警,并在液晶显示屏上显示<L或>H。在PROTEUS仿真过程之中,可以通过调节DS18B20的面板上的“↑”或者“↓”,改变DS18B20测量的实际温度。图5.5第1路仿真结果图5.6第2路仿真结果图5.7第3路仿真结果图5.8第4路仿真结果5.5仿真结果分析由以上仿真结果可知,当DS18B20的实际温度大于设置温度时,报警器开始报警,否则处于正常状态。温度测量范围为-55℃~128℃,能够达到设计的要求:-20℃~80℃。温度测量的精度为0.1℃,满足设计的要求。LCD屏幕每秒刷新一次,显示格式也达到了设计的要求。路数设置温度实际温度状态第一路-20℃—80℃-24.8℃报警第二路-20℃—80℃-14.8℃正常第三路-20℃—80℃84.1℃报警第四路-20℃—80℃40.6℃正常表5.1系统仿真结果结束语通过这次的毕业设计,使我对大学四年中所学的专业知识进行了综合的衔接和运用。在工业生产和实验研究中,在电力、化工、石油、冶金、机械制造、大型仓储室、实验室、农场塑料大棚甚至人们的居室里经常需要对环境温度进行检测,并根据实际的要求对环境温度进行控制。我对此只是做一个简单的设计。毕业设计作为综合性的设计,它不同于以前教学中的实验、课程设计等实践环节。以前所做的一些设计主要是根据相关的课本及老师所给资料去完成的,有一定的参照性,所以相对而言比较简单,不能完全达到锻炼自己动手能力的目的。而毕业设计则是对我们大学四年所学知识的一个综合的训练及考核,是对所学知识的应用能力和大学所学理论知识对实践技能相结合的全面的检验。并对我们如何根据要做的课题对现有的资料进行理解和运用的能力的考核。真正做到了理论联系实际,把以前所学的知识综合贯通进行实践,并在实践中不断学习和自我完善。从刚确定毕业设计课题以来,我首先是查找一些相关的书籍及资料,然后分析设计,并根据实际情况拟定设计方案,从而达到优化方案。同时,通过这次毕业设计,我们在各个方面都有了很大的提高,特别是在理论和实践结合方面使我们受益匪浅,使大学里学习的理论知识在根本上得到一次最完整的实践和提高。也为我即将面临的工作奠定了很好的基础。同时,在本次毕业设计中深深认识到自己的各个方面的不足之处,本着检测四年所学知识的目的,我严格要求自己,每一环节都认真对待,定期向知道老师报告进展情况和请教不懂的地方,得以完成任务。通过毕业设计,我深刻体会到要做好一个完整的事情,需要有系统的思维方式和方法,对待要解决的问题,要耐心,要善于运用已有的资源完善自己。致谢在这里我要感谢所有曾经关心和帮助过我的人,这篇论文的完成和他们中的任何一位都是分不开的。首先,我要向谢聪老师和其他老师致以由衷的感谢和诚挚的敬意,老师们为我们提供了许多巧妙的设计思想。转眼间已经在美丽的扬州职业大学度过了第四个春秋,这四年是我人生中很重要的四年,这里留下了我求学的足迹,这里见证了我成长的点滴。在毕业设计完成之际,我衷心的感谢曾经给我帮助、支持、鼓励的所有老师和同学。本次设计是在我的导师谢老师的指导下完成的,从最初我对本次设计的不了解到能够整体把握再到比较顺利的完成本次设计,这一步一步的走来,其中都包含了谢老师耐心的指引和教导。在这篇论文的完成过程中他始终给予了我无私的热情和帮助。开始他悉心指导我的选题工作,在做开题报告的过程中,就反复而又耐心的给我指出问题的所在,并帮助我纠正许多不妥之处。在做设计编程这一过程中,也给我提出了许多意见和建议,并交给了我许多理解问题的技巧和方法。正是在老师的反复指导和耐心帮助之下,我才能顺利的完成毕业论文。在写这篇毕业设计论文的过程中,我也遇到了许多的困难,之所以能坚持至今,这都离不开我的导师和同学的帮助。可以说我的论文凝结了老师的辛勤汗水,谢老师的渊博知识和对学生的负责的态度深深地影响了我,也将永远是我学习的榜样。在写本次毕业论文期间,我还得到了同学的帮助,在此也对他们表示衷心的感谢,感谢他们能在自己繁忙的工作中还给予了我这么多的帮助,并使我深切地感受到你们给我的温暖,这也将留给了我许多美好的回忆。最后,感谢我的母校;感谢在这四年来教给我知识的所有老师;也感谢所有在本次毕业设计中给过我帮助的老师、同学,是你们的鼓励、支持和帮助,才使得我能坚持完成毕业论文。衷心祝愿南京理工大学明天会更好!愿各位老师们都能幸福安康!愿各位同学们前程似锦,策马平川!参考文献[1]贾振国主编.DS18B20及高精度温度测量的实现(第3版)[J].电子技术应用,2006.1[2]吴志忠,王克家,吴利予,刘彤著.一种基于单线数字温度传感器DS18B20的储粮温度检测系统的设计[J].应用科技,2008.07.[3]韩志军,刘新民著.数字温度传感器DS18B20及其应用[J].南京工程学院学报(自然科学版),2009.01.[4]曲喜贵主编.电子元件材料手册[M].北京:电子工业出版社,1989.1[5]黄贤武,郑筱霞,曲波等主编.传感器实际应用电路设计[M].成都:电子科技大学出版社,2004.4[6]吴永春著.单总线数字温度传感器DS18B20及其在单片机系统的应用[J].三明高等专科学校学报,2010.02.[7]余永权主编.Flash单片机原理及应用[M].北京:电子工业出版社,2005.4[8]邦田主编.电子电路实用抗干扰技术[M].北京:人民邮电出版社,2006.8[9]周云波主编.由DS18B20单线数字温度计构成的单线多点温度测量系统.电子技术应用,2005.2.[10]AccomplishmentofMeasuringTemperaturewithNewTypeofTemperatureSensor,2005.2.[11]振国主编.DS1820及高精度温度测量的实现[J].电子技术应用,2000.1.[12]东耀,汪仁煌著.数字温度传感器在仓库温度检测系统的应用[J].传感器世界,2007.12[13]TheDS18B20UseingTemperatureMeasureControltheSystemofApplication,2009.7.[14]余威明著.DS18B20高精度多点温度检测显示系统[仪表技术].2007.3.[15]DallasSemiconductorDS18B20ProgrammableResolution1-WireDigitalThermometer,2008.7.[16]张爱筠,施伟祥,何忠平著.单总线数字温度传感器DS18B20及其在单片机系统的应用.自动化技术与应用,2008.04.[17]邓晓燕,朱维璐,刘建华著.单总线温度传感器DS18B20及其在温室系统中的应用[A].中国自动化学会全国第九届自动化新技术学术交流会论文集[C],2009.6.[18]周月霞,孙传友著.DS18B20硬件连接及软件编程[J].传感器世界,2009.9[19]胡继红,刘晓华,崔丽杰著.DS18B20在多点温度测控系统中的应用[J].黑龙江科技信息,2007.05.[20]马云峰著.单片机与数字温度传感器DS18B20的接口设计[J].计算机测量与控制,2002.04.附录一附录二系统主程序:TEMP_ZHDATA24H;处理后的八位符号值温度度存放单元TEMPLDATA25H;实时温度低八位存放单元TEMPHDATA26H;实时温度高八位存放单元TEMP_THDATA27H;高温报警值存放单元TEMP_TLDATA28H;低温报警值存放单元TEMPHCDATA29H;百位和十位BCD码存放单元TEMPLCDATA2AH;个位和小数BCD码存放单元LCD_XEQU2FH;LCD地址变量LCD_RSEQUP1.0;LCDRS端LCD_RWEQUP1.1;LCDRW端LCD_ENEQUP1.2;LCDEN端FLAG1EQU20H.0;DS18B20存在标志位FLAG2EQU20H.2;负数标志位FLAG3EQU20H.3;负数时,十位为零(灭0显示标志位)FLAG4EQU20H.4;正数时,百位为零、十位也为零(灭0显示标志位)FLAG5EQU20H.1;负温度下限标志位FLAG6EQU21H.0;按键1操作标志位FLAG7EQU21H.1;按键2操作标志位FLAG8EQU21H.2;按键3操作标志位FLAG9EQU21H.3;按键4操作标志位DATE_LINEEQUP3.7;DS18B20总线;*****************************************************ORG0000HJMPMAINMAIN:MOVSP,#60HMOVA,#00HMOVR0,#20H;将20H-2FH单元清零MOVR1,#10HCLEAR:MOV@R0,AINCR0DJNZR1,CLEARCALLSET_LCDCALLRE_18B20MOVTEMP_TH,#50H;设置温度上限报警值为80度MOVTEMP_TL,#14H;设置温度下限报警值为20度SETBFLAG5;FLAG5=0正温度下限,FLAG5=1负温度下限START:CALLRESET;18B20复位子程序JNBFLAG1,START1;DS1820不存在CALLMENU_OKCALLREAD_E2;温度报警值拷贝到暂存器JMPSTART2START1:CALLMENU_ERRORCALLTEMP_BJ;显示温度标记JMP$START2:CALLRESETJNBFLAG1,START1;DS1820不存在MOVA,#0CCH;跳过ROM匹配CALLWRITEMOVA,#44H;发出温度转换命令CALLWRITE;************************************************;由单片机向单总线发送四个DS18B20的ROM序列号CALLDELAYLCALLRESETMOVA,#55HLCALLWRITEMOVA,#28HLCALLWRITEMOVA,#24HLCALLWRITEMOVA,#0C5HLCALLWRITEMOVA,#39HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#05FHLCALLWRITEMOVA,#0BEHLCALLWRITELCALLREADMOV74H,TEMPLMOV75H,TEMPHLCALLRESETMOVA,#55HLCALLWRITEMOVA,#28HLCALLWRITEMOVA,#30HLCALLWRITEMOVA,#0C5HLCALLWRITEMOVA,#0B8HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#08EHLCALLWRITEMOVA,#0BEHLCALLWRITELCALLREADMOV76H,TEMPLMOV77H,TEMPHLCALLRESETMOVA,#55HLCALLWRITEMOVA,#28HLCALLWRITEMOVA,#31HLCALLWRITEMOVA,#0C5HLCALLWRITEMOVA,#0B8HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#0B9HLCALLWRITEMOVA,#0BEHLCALLWRITELCALLREADMOV78H,TEMPLMOV79H,TEMPHLCALLRESETMOVA,#55HLCALLWRITEMOVA,#28HLCALLWRITEMOVA,#32HLCALLWRITEMOVA,#0C5HLCALLWRITEMOVA,#0B8HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#00HLCALLWRITEMOVA,#0E0HLCALLWRITEMOVA,#0BEHLCALLWRITELCALLREADMOV7AH,TEMPLMOV7BH,TEMPHLCALLRESET;*****************************;2*2键盘;*****************************SMKEY:MOVP2,#030HMOVA,P2ANLA,#0F0HCJNEA,#030H,HKEYSJMPJ_00HKEY:CALLCLR_2LINE;先对LCD第二行进行清屏LCALLDELAY10MOVA,P2ANLA,#0F0HMOVB,ACJNEA,#030H,WKEYSJMPJ_00WKEY:MOVP2,#03HMOVA,P2ANLA,#0FHORLA,BJBACC.0,BANWE4JMPBANWE5BANWE4:JBACC.4,XUANZE4JMPXUANZE3BANWE5:JBACC.5,XUANZE1JMPXUANZE2;***************************JMPJ_00XUANZE1:SETBFLAG6CLRFLAG7CLRFLAG8CLRFLAG9JMPJ_00XUANZE2:SETBFLAG7CLRFLAG6CLRFLAG8CLRFLAG9JMPJ_00XUANZE3:SETBFLAG8CLRFLAG7CLRFLAG6CLRFLAG9JMPJ_00XUANZE4:SETBFLAG9CLRFLAG7CLRFLAG8CLRFLAG6J_00:NOPJBFLAG6,TEMPH11JBFLAG7,TEMPH22JBFLAG8,TEMPH33JBFLAG9,TEMPH44JMPST_00;************************************TEMPH11:MOVDPTR,#T_1;指针指到显示消息“TEMP:”MOVA,#2;显示在第二行CALLLCD_PRINT;调字符串显示子程序MOVTEMPL,74H;把从DS18B20读出的初始温度低八位送TEMPLMOVTEMPH,75H;把从DS18B20读出的初始温度高八位送TEMPHLCALLSTART3;调温度转换、显示子程序JMPST_00;回到START2,重新发出温度转换命令TEMPH22:MOVDPTR,#T_2;指针指到显示消息“TEMP:”MOVA,#2;显示在第二行CALLLCD_PRINTMOVTEMPL,76HMOVTEMPH,77HLCALLSTART3JMPST_00TEMPH33:MOVDPTR,#T_3;指针指到显示消息“TEMP:”MOVA,#2;显示在第二行CALLLCD_PRINTMOVTEMPL,78HMOVTEMPH,79HLCALLSTART3JMPST_00TEMPH44:MOVDPTR,#T_4;指针指到显示消息“TEMP:”MOVA,#2;显示在第二行CALLLCD_PRINTMOVTEMPL,7AHMOVTEMPH,7BHLCALLSTART3JMPST_00ST_00:JMPSTART2;**************************START3:CALLCONVTEMP;把从DS18B20读到的初始温度转换组合成两个字节的BCD码CALLDISPBCD;把温度折分成单个BCD码并设灭零显示标志位CALLTEMP_COMP;显示温度比较结果符号CALLTEMP_BJ;显示温度标记CALLLCD_DISP;显示温度百位、十位、个位、小数点及小数位还有符号RET;***************************************;SET_LCD:;对LCD做初始化设置及测试CLRLCD_ENCALLINIT_LCD;初始化LCDCALLSTORE_DATA;将自定义字符存入LCD的CGRAMRETINIT_LCD:;8位I/O控制LCD接口初始化MOVA,#38H;双列显示,字形5*7点阵CALLWCOMCALLDELAY1MOVA,#0EHCALLWCOMCALLDELAY1MOVA,#38H;双列显示,字形5*7点阵CALLWCOMCALLDELAY1MOVA,#0CH;开显示,显示光标,光标不闪烁CALLWCOMCALLDELAY1MOVA,#01H;清除LCD显示屏CALLWCOMCALLDELAY1RET;****************************************************WCOM:;以8位控制方式将命令写至LCDMOVP0,A;写入命令CLRLCD_RS;RS=L,RW=L,D0-D7=指令码,E=高脉冲CLRLCD_RWSETBLCD_ENACALLDELAY1CLRLCD_ENRET;****************************************************WDATA:;以8位控制方式将数据写至LCDMOVP0,A;写入数据SETBLCD_RSCLRLCD_RWSETBLCD_ENCALLDECLRLCD_ENCALLDERETDE:MOVR7,#250DJNZR7,$RET;*****************************************************DELAY:MOVR0,#100DEL2:MOVR1,#100DEL3:DJNZR1,DEL3DJNZR0,DEL2RETDELAY10:MOVR6,#20HQ6:MOVR5,#0BBHQ5:DJNZR5,Q5

温馨提示

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

评论

0/150

提交评论