《多点温度检测系统的设计.doc》由会员分享,可在线阅读,更多相关《多点温度检测系统的设计.doc(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date多点温度检测系统的设计多点温度检测系统的设计南 京 理 工 大 学毕业设计说明书(论文)作 者:孙露 学 号:104910252060 教研室:机电教研室 专 业:机电一体化工程 题 目:多点温度检测系统的设计 指导者: 谢聪 工程师 评阅者: 2012 年 5 月南 京 理 工 大 学毕业设计(论文)评语学生姓名: 孙露 班级、学号:104910252060 题 目
2、: 多点温度检测系统的设计 综合成绩: 指导者评语:该生能按时完成毕业设计(论文)任务书规定的工作,积极查阅有关文献资料,设计态度端正,能独立思考并解决有关技术问题,论文符合学校规定的格式,写作的规范化程度好。设计方案可行,有一定的创新性,如果再多参考一些外文资料,将会更加完善。建议成绩评定为良好,可以提交答辩。 指导者(签字): 2012年5月15日毕业设计(论文)评语评阅者评语:该生所选择的毕业设计课题具有较高的应用价值和现实意义,设计方案可行,方案具有一定的创新性,工作量饱满,完全符合毕业设计(论文)任务书规定的工作量要求,写作的规范化程度好。如果再多参考一些外文资料,将会更加完善。建议
3、成绩评定为良好,可以提交答辩。 评阅者(签字): 年 月 日答辩委员会(小组)评语:该生答辩思路清晰,知识掌握较全面,口头表达能力较好,回答问题正确率高,经答辩委员会评议,一致通过,该生成绩为良好。答辩委员会负责人(签字): 年 月 日毕业设计说明书(论文)中文摘要本设计系统地介绍了基于DS18B20的多点温度测量系统的组成、设计方案、电路原理、程序设计以及系统仿真过程。DS18B20多点温度测量系统是以AT89C51单片机作为控制核心,智能温度传感DS18B20为控制对象,运用汇编语言编程实现系统的各种功能。该系统由单片机最小系统、传感器电路、报警电路、LCD显示电路、行列式键盘电路、电源电
4、路六大部分组成。借助PROTEUS软件,实现了系统电路设计和仿真。它适用于电力工业、煤矿、森林、火灾、高层建筑等场所,还可以用于环境恶劣的工业控制现场。通过DS18B20的单总线技术,实现对远程环境的温度测量与监控。关键词 DS18B20, 仿真, 测量系统, PROTEUS-毕业设计说明书(论文)外文摘要Title MULTI-POINT TEMPERATURE DETECTION SYSTEM DESIGN AbstractThis system introduced on the DS18B20 multi-point temperature measurement system com
5、ponents, design, circuit theory, program design and product development process. DS18B20 multi-point temperature measurement system is controlled by the core AT89C51 SCM , smart temperature sensing DS18B20 targets for the control, and is used of Edit collected materials language programming system f
6、unctions. The system is the smallest MCU system, sensor circuit, alarm circuits, LCD display circuit, the five major determinant keyboard circuit components. The system is constituted from PROTEUS software, and the system design and simulation, and the eventual adoption of hardware verification six
7、big part. It is applicable to electric power industry, coal mine, forest, a fire, key figures building etc. place, return can used for environment bad of industry control the spot. DS18B20 through a single bus technology, to achieve the long-range environmental temperature measurement and monitoring
8、.Key words DS18B20, simulation, measurement system,PROTEUS目 录1 绪论11.1 课题设计背景11.2 课题研究的目的意义11.3 国内外现状及水平21.4 课题研究内容22 系统的需求分析与总体方案论证42.1 基于模拟温度传感器设计方案42.2 基于数字温度传感器设计方案52.3 方案论证53 电路设计73.1工作原理73.2 DS18B20与单片机接口技术83.2.1 DS18B20的引脚功能83.2.2 DS18B20与单片机接口电路83.2.3 温度寄存器格式和温度/数据对应关系93.2.4 单片机对DS18B20的控制方法1
9、03.3 键盘电路设计133.3.1 行列式键盘与单片机接口电路133.3.2 键盘面板133.4显示电路设计143.4.1 LCD引脚分布及功能143.4.2单片机与图形液晶的接口电路153.5 报警电路设计163.6 电源电路设计174 程序设计184.1 系统资源分配184.1.1 系统硬件资源分配184.1.2 系统软件资源分配184.2 系统流程设计184.2.1主程序流程设计184.2.2 DS18B20程序流程设计204.2.3 显示程序流程214.2.4 键盘程序程序流程224.3 程序设计244.3.1 主程序设计245 系统仿真255.1 PROTEUS仿真环境介绍255.
10、2 原理图绘制265.3 程序加载275.3.1 程序编译275.3.2 程序加载275.4 系统仿真285.5 仿真结果分析33结束语34致 谢35参考文献36附录一38附录二391 绪论 1.1 课题设计背景温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一,同时它也是一种最基本的环境参数。人民的生活与环境温度息息相关,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,在电力、化工、石油、冶金、机械制造、大型仓储室、实验室、农场塑料大棚甚至人们的居室里经常需要对环境温度进行检测,并根据实际的要求对环境温
11、度进行控制。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行。炼油过程中,原油必须在不同的温度和压力条件下进行分流才能得到汽油、柴油、煤油等产品;没有合适的温度环境,许多电子设备不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。可见,研究温度的测量具有重要的理论意义和推广价值。随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日益突出,成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。本设计就是为了满足人们在生活生产中对温度
12、测量系统方面的需求。本设计要求系统测量的温度的点数为4个,测量精度为0.1,测温范围为-55+128。采用液晶显示温度值和路数,显示格式为:温度的符号位,整数部分,小数部分,最后一位显示。显示数据每一秒刷新一次。1.2 课题研究的目的意义21世纪科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了巨大的变化,我们已经进入了高速发展的信息时代,测量技术也成为当今科技的主流之一,被广泛地应用于生产的各个领域。对于本次设计,其目的在于:(1)掌握数字温度传感器DS18B20的原理、性能、使用特点和方法,利用C51对系统进行编程。(2)本课题综合了现代测控、电子信息、
13、计算机技术专业领域方方面面的知识,具有综合性、科学性、代表性,可全面检验和促进学生的理论素养和工作能力。(3) 本课题的研究可以使学生更好地掌握基于单片机应用系统的分析与设计方法,培养创新意识、协作精神和理论联系实际的学风,提高电子产品研发素质、增强针对实际应用进行控制系统设计制作的能力。1.3 国内外现状及水平传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。温度传感器的发展大致经历了以下三个阶段:传统的分立式温度传感器(含敏感元件);模拟集成温度传感器控制器;数字温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由
14、集成化向智能化、网络化的方向发展,同时具有抑制串模干扰能力强、分辨力高、线性度好、成本低等优点。随着我国四个现代化和经济发展,我国在科技和生产各领域都取得了飞速的发展和进步,发展以温度传感器为载体的温度测量技术具有重大意义。DS18B20是美国DALLAS公司生产的单总线数字温度传感器,可把温度信号直接转换成串行数字信号供微机处理,而且可以在一条总线上挂接任意多个DS18B20芯片,构成多点温度检测系统无需任何外加硬件(单总线数字温度传感器DS18B20及其在单片机系统的应用)。单总线数字温度传感器,具有微型化、低功耗、高性能、抗干扰能力强、易于与微控制器接口优点,适合于各种温度测控系统(数字
15、温度传感器DS18B20及其应用)。以DS18B20为例,介绍数字式温度传感器的功能特点及由DS18B20组成的温度测控网络系统的设计。随着社会的发展、农业生产也进人了工厂化、数字化时代,人们开始“使用人工设施、人工控制环境因素,使植物获得最适宜的生长条件,从而延长生产季节,获得最佳产出”,由此“工厂化农业”应运而生并被广泛接受(单总线温度传感器DS18B20及其在温室系统中的应用)。我国是一个人口众多的农业大国 ,粮食生产、需求与储备量很大 ,粮食在储备的过程中常因粮食的湿度过大而升温发热 ,又由于检测手段的落后造成温检系统错报或漏报 ,从而导致粮食大量的腐烂变质 ,给国家带来巨大的损失。这
16、就对粮情检测系统提出了较高的要求(一种基于单线数字温度传感器DS18B20的储粮温度检测系统的设计)。而基于DS18B20设计的温度检测系统就可以实现这一需求。1.4 课题研究内容本设计研究的主要内容如下:(1)在广泛查阅温度检测控制理论和方法、测温技术和温度控制技术等资料的基础上,根据不同的控制要求及应用领域完成对系统方案的总体设计。本设计采用以AT89C51为核心的单片机系统,来实现对温度的检测、报警等功能。(2)研究比较各相关元器件的功能与特点,选择合适的元器件。(3)系统硬件设计。系统硬件设计主要包括:温度检测、单片机数据采集处理、显示、键盘设定、报警电路等部分。(4)系统软件设计。本
17、课题采用汇编语言,利用Keil编译器进行编程及调试。主要研究DS18B20与单片机的通信协议、时序及一些通用程序等。本设计的难点分为硬件和软件两个方面。其中硬件开发的难点在于各种元器件的选择和使用,如各种电阻、电容等的选择。软件开发的难点在于DS18B20的时序,如果时序不正确,将无法读出正确的温度值,对系统产生很大的影响。2 系统的需求分析与总体方案论证2.1 基于模拟温度传感器设计方案该方案由单片机、模拟温度传感器AD590、运算放大器、AD转换器、44键盘、LCD显示电路、集成功率放大器、报警器组成,如图2.1所示。本方案采用模拟温度传感器AD590作为测温元件,传感器将测量的温度变换转
18、换成电流的变化,再通过电路转换成电压的变化,使用运算放大器交将信号进行适当的放大,最后通过模数转换器将模拟信号转换成数字信号,传给给单片机,单片机将温度值进行处理之后用LCD显示 ,当温度值超过设置值时,系统开始报警。 图2.1 基于模拟温度传感器的测量系统方案本方案使用的测温元件的性能指标如下:(1)AD590的测温范围为55+150。(2)AD590的电源电压范围为4V30V,电源电压可在4V6V范围变化,电流变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。(3)输出电阻为710MW。 (4)精度高,AD590共有I、J、K、L、
19、M五档,其中M档精度最高,在55+150范围内,非线性误差为0.3。 集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便,温度测量范围广等优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0时输出为0,温度25时输出2.982V。电流输出型的灵敏度一般为1mA/K。2.2 基于数字温度传感器设计方案该方案使用了AT89C51单片机作为控制核心,以智能温度传感器DS18B20为温度测量元件,采用多个温度传感器对各点温度进行检测,通过44键盘模块对正常温度进行设置显示电路采用12864 LCD模块,使用LM386作为报警电
20、路中的功率放大器。 图2.2 基于数字温度传感器测量系统方案本课题采用数字温度传感器DS18B20作为测为测温元件,它具有如下特点:(1)只要求一个端口即可实现通信。(2)在DS18B20中的每个器件上都有独一无二的序列号。(3)实际应用中不需要外部任何元器件即可实现测温。(4)测量温度范围在55到128之间。(5)数字温度计的分辨率用户可以从9位到12位选择。(6)内部有温度上、下限告警设置。2.3 方案论证本设计要求测量的点数为4,测温范围为-55+128,精度为0.1。采用液晶显示,同时显示路数和温度,每秒刷新1次显示数据。综合模拟温度传感器和数字温度传感器的性能指标,以上两个方案都能达
21、到设计的要求。方案一采用模拟温度传感器AD590,转换结果需要经过运算放大器和AD转换器传送给处理器。它控制虽然简单,成本低,但是后续电路复杂,且需要进行温度标定,集成温度传感器AD590输出为电流信号,且输出信号较弱,所以需要后续放大及A/D转换电路,如采用普通运放则精度难以保证,而测量放大器价格较高,这样会使系统成本升高。方案二采用了数字温度传感器DS18B20,改变了传统温度测试方法。它能在现场采集温度数据,直接将温度物理量变换为数字信号并以总线方式传送到单片机进行数据处理,并且可根据实际要求通过简单的编程实现9-12位的数字式读数方式,因而使用DS18B20可使系统结构更趋简单,可靠性
22、更高,大大提高系统的抗干扰能力。DS18B20体积小、经济、使用方便灵活,测试精度高,较高的性能价格比,有CRC校验,系统简明直观。适合于恶劣环境的现场温度测试,如:环境控制、设备或过程控制、测温类消费电子产品等。方案二程序设计稍微复杂一些,但在毕业设计期间我用DS18B20做过温度计,也调试过LCD,并且已经用PROTEUS实现了系统的仿真。因此,该方案完全具有可行性,同时体现了技术的先进性,经济上也有很大的优势。综上所述,本课题采用方案二对系统进行设计。3 电路设计3.1工作原理 基于DS18B20多点温度测量系统以AT89C51为核心器件,以KEIL为系统开发平台,用汇编语言进行程序设计
23、,以PROTEUS作为仿真软件设计而成的。系统主要由传感器电路、液晶显示电路、键盘电路、报警电路、电源电路组成,系统原理图如图3.1所示。图3.1 系统原理图DS18B20是数字温度传感器,它的输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度以串口发送给主机。主机按照通信协议用一个IO口模拟DS18B20的时序,发送命令(初始化命令、ROM命令、RAM命令)给DS18B20,转换完成之后读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。在系统启动之时,可以通过44键盘设置各点温度的上限值,当某点温度超过设置值时,
24、报警器开始报警,液晶显示该传感器的路数、设置温度值、实际温度值,从而实现了对各点温度的实时监控。每个DS18B20有自己的序列号,因此本系统可以在一根总线上挂接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20才作出响应,接收主机的命令,向主机发送转换的温度。采用这种DS18B20寻址技术,使系统硬件电路更加简单。3.2 DS18B20与单片机接口技术3.2.1 DS18B20的引脚功能DS18B20的引脚功能描述见表3.1。表3.1DS18B20引脚功能描述序号名称引脚功能描述1GND地信号2DQ数字输入输出引脚,开漏单总线接口引脚,当使用寄
25、生电源时,可向电源提供电源3VDD可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地3.2.2 DS18B20与单片机接口电路如图3.2所示,为单片机与DS18B20的接口电路。DS18B20只有三个引脚,一个接地,一个接电源,一个数字输入输出引脚接单片机的P1.7口,电源与数字输入输出脚间需要接一个4.7K的电阻。图3.2 DS18B20与单片机接口电路3.2.3 温度寄存器格式和温度/数据对应关系DS18B20温度寄存器如表3.2所示。其寄存器有16位,高5位为符号位,低13位为数据位。当寄存器高5位为1时,表示温度为负,否则为正。 表3.2 温度寄存器格式 bit7 bit6 bit
26、5 bit4 bit3 bit2 bit1 bit0232221202-12-22-32-4LS Byte 表3.3 温度/数据的关系B bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8SSSSS262524MS Byte 如果测得的温度大于0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,测得的数值需要取反加1再乘0.0625,即可得到实际的温度值。如表3.3所示,是DS18B20的温度与数据的对应关系。 温度输出(2进制)输出(16进制)+1250000 0111 1101 000007D0H+850000 0101 0101
27、00000550H+20.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH25.06251110 1110 0110 1111EE6FH-551111 1110 1001 0000FE90H3.2.4 单片机对DS18B20的控制方法DS18B20采用严格的单总线通信协议,以保证数据的完整性。该协议定义了
28、几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。除了应答脉冲所有这些信号都由主机发出同步信号。总线上传输的所有数据和命令都是以字节为单位。且低位在前,高位在后。(1)初始化序列:复位脉冲和应答脉冲在初始化过程中,主机通过拉低单总线至少480s,以产生复位脉冲(TX), 然后主机释放总线并进入接收(RX)模式。当总线被释放后,5k的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15s60s,通过拉低总线60s240s产生应答脉冲。初始化脉冲如图3.3所示。 图3.3 DS18B20初始化时序(2)DS18B20的读写控制在写时序期间,主机向DS18B20写入数据;而在读时
29、序期间,主机读入来自DS18B20的数据。在每一个时序,总线只能传输一位数据。读/写时序如图3.4所示。 DS18B20写时序DS18B20存在两种写时序:“写1”和“写0”。主机在写1时序向DS18B20图3.4 DS18B20读写时序写入逻辑1,而在写0时序向DS18B20写入逻辑0。所有写时序至少需要60s,且在两次写时序之间至少需要1s的恢复时间。两种写时序均以主机拉低总线开始。产生写1时序:主机拉低总线后,必须在15s内释放总线,然后由上拉电阻将总线拉至高电平。产生写0时序:主机拉低总线后,必须在整个时序期间保持低电平(至少60s)。在写时序开始后的15s60s期间,DS18B20采
30、样总线的状态。如果总线为高电平,则逻辑1被写入DS18B20;如果总线为低电平,则逻辑0被写入DS18B20。 读时序DS18B20只能在主机发出读时序时才能向主机传送数据。所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20能够传送数据。所有读时序至少60s,且在两次独立的读时序之间至少需要1s的恢复时间。每次读时序由主机发起,拉低总线至少1s。在主机发起读时序之后,DS18B20开始在总线上传送1或0。若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20发出的数
31、据在读时序下降沿起始后的15s内有效,因此主机必须在读时序开始后的15s内释放总线,并且采样总线状态。 DS18B20的命令序列根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。ROM命令通过每个器件64-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。DS18B20的ROM如表3.4所示,每个ROM命令都是8 bit长。表3.4 DS18B20 ROM命令指令协议功能读ROM33H
32、读DS18B20中的编码(即64位地址)符合ROM55H发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20,使之作出响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20 温度转换命令,适用于单个DS18B20工作告警搜索命令0ECH执行后,只有温度超过庙宇值上限或下限的片子才做出响应温度转换44H启动DS18B20进行温度转换,转换时间最长为500ms(典型为200ms),结果丰入内部9字节RAM中读暂存器
33、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 行列式键盘与单片机接口电路根据本设计需要,本系统采用了44键盘实现对温度值和功能键的设定。行列式键盘与单片机的接口电路如图3.5所示,H0-H3为行线,接单片机P2口的高4位,L0-L3
34、为列线,接单片机P2口的低4位。初始化时键盘行线为高电平,列线为低电平。键盘的行线接4输入与门,4输入与门的输出接单片机的外部中断0引脚P3.2口。当有键按下时,将产生中断,在中断程序里对按键进行扫描,得到按键的键值。图3.5 44键盘结构3.3.2 键盘面板键盘面板如图3.6所示,本系统使用的键盘有10数字键,5个功能按键。在系统启动时,先按“设置”键,然后按相应的数字键,按“左移”或者“右移”键改变其他温度的值。按“确认”键之后系统正式启动。系统在运行过程之中可以通过按“重新设置”键,对温度重新进行设置。 图3.6 键盘面板 3.4显示电路设计3.4.1 LCD引脚分布及功能(1) 128
35、64液晶显示屏共有20个引脚,其引脚名称及引脚编号的对应关系如图3.7所示:图3.7 12864液晶显示模块引脚分布图(2)引脚功能如表3.5所示:表3.5 12864液晶显示模块引脚功能引脚符 号引 脚 功 能引脚符 号引 脚 功 能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数据线有些型号的模块
36、19、20脚为空脚3.4.2单片机与图形液晶的接口电路 LCD与单片机的接口电路如图3.8所示:单片机对LCD的控制方法将在下一章中详细介绍。图3.8 LCD与单片机的接口电路3.5 报警电路设计本系统设计中有报警器,使用LM386作为报警器的功率放大器,如图3.9所示。LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。LM386的输入端接单片机的引脚P3.4,输出端接扬声器。当实际温度超过设置的温度值时,单片机引脚输出一定频率的信号,信号经过音频功放放大之后,发出报警声。图3.9 LM386功放电路3.
37、6 电源电路设计电源是整个系统的能量来源,它直接关系到系统能否运行。在本系统中单片机、液晶显示、报警等电路需要5V的电源,因此电路中选用稳压芯片7805,其最大输出电流为1.5A,能够满足系统的要求,其电路如图3.10所示。图3.10 电源电路4 程序设计4.1 系统资源分配4.1.1 系统硬件资源分配本系统电路连接及硬件资源分配如图4.1所示。采用AT89C51单片机作为核心器件,DS18B20作为温度测量装置,通过AT89C51的P1.7口将温度值送入单片机处理,利用12864LCD显示器和44键盘作为人机接口。图4.1 系统硬件资源分配4.1.2 系统软件资源分配本系统采用了汇编语言进行
38、程序设计,系统自动为各个变量分配内存区域。用户可以将变量定义在data区、IDATA区、PDATA区、XDATA区,常量定义在CODE区。4.2 系统流程设计4.2.1主程序流程设计主程序先对系统资源进行初始化,调用LCD显示子程序,显示启动画面。然后进入键盘设置界面。当设置键按下后,开始设置各点的温度,设置完之后,如果确认键按下,则系统开始工作。首先调用DS18B20初始化子程序,再发送ROM命令,读取DS18B20转换的温度值。当读取的温度大于设置的温度值时,报警器开始报警,LCD显示温度的实际值、设置值、路数、状态。接下来对第二、三、四路温度进行采集,处理,显示。主程序流程如图4.2所示
39、:图4.2 主程序流程4.2.2 DS18B20程序流程设计由上一章单片机对DS18B20的控制方法,设计出如下程序流程: 图4.3 写命令子程序流程图 图4.4 DS18B20复位子程序流程图 图4.5 DS18B20读温度子程序流程图 4.2.3 显示程序流程显示是实现人机对话的重要部分,在这里选用12864LCD显示器可实现对汉字、字符和图片的显示, LCD的引脚功能在上面已经做了说明,下面是其相关指令的介绍。(1) 读取状态字D/IR/WDB7DB6DB5DB4DB3DB2DB1DB001BUSY0ONOFFRST0000当R/W=1,D/I=0时,在E信号为高的作用下,状态分别输出到
40、数据总线上。状态字是了解模块当前工作状态的唯一的信息渠道,在每次对模块操作之前,都要读出状态字,判断BUSY是否为“0”。若不为“0”,则单片机需要等待,直至BUSY =0为止。(2)显示开关设置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB0000011111DD=1:开显示;D=0关显示。(3)显示起始行设置D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00011显示起始行(063)指令表中DB5DBO为显示起始行的地址,取值在03FH(164行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。(4)页面地址设置 D/IR/WDB7DB6DB5DB4D
41、B3DB2DB1DB00010111Page(07)页面地址是DDRAM的行地址,8行为一页,DDRAM共64行即8页,DB2-DB0表示0-7页。(5)列地址设置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00001Y address(063)列地址是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所示: