单回路温度控制器设计实验报告_第1页
单回路温度控制器设计实验报告_第2页
单回路温度控制器设计实验报告_第3页
单回路温度控制器设计实验报告_第4页
单回路温度控制器设计实验报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

课程设计题目名称单回路温度控制器设计学生学院信息工程学院专业班级11级计测(2)班学号学生姓名指导教师2021年1月19日广东工业大学课程设计任务书题目名称单回路温度控制器设计学生学院信息工程学院专业班级计算机测控11〔1〕〔2〕姓名学号一、课程设计内容1.功能要求:温度测量范围0~100℃,精度1%,显示分辨率0.1℃,使用键盘可设置温度上限,当超限时蜂鸣器报警。设置数据应能保存,温度控制范围40~60℃,精度1℃。2.硬件要求:使用热敏电阻传感器或数字温度传感器、LED显示器、按键3个〔设置、+、-〕、蜂鸣器等。上述内容为根本要求,可按照自己的设计方案增加功能使之更为完善,并对系统功能进展详细说明。二、课程设计要求1.明确课程设计任务,复习与查阅有关文献、资料。2.课程设计任务包括总体方案设计,电路设计、计算及仿真等;要求使用计算机绘图,画出详细的电路原理图,列出元器件清单;电路图要求工整、清楚、正确,符合工程设计标准,并标明元器件管脚。3.软件编程必须有流程图,程序必须加注释,各程序段的开场要注明该段程序的功能和作用。4.按要求对设计进展简要说明,讨论、分析与总结,提交设计报告。三、课程设计应完成的工作1.总体方案设计;2.电路原理图设计;3.电路工作原理分析;4.电路参数计算、分析与仿真;5.元器件选型,电路制作;6.系统软件设计;7.系统软硬件调试、结果分析;8.撰写设计报告;四、课程设计进程安排序号设计各阶段内容地点起止日期1布置设计安排;讲授设计内容;说明设计要求〔2小时〕待定2方案设计、分析、比拟,方案论证〔1天〕实验1号楼412室3确定方案和电路参数,理论计算与分析〔1天〕实验1号楼412室4计算机仿真〔1天〕实验1号楼412室5绘制电路原理图;元器件选型、电路制作〔1.5天〕实验1号楼412室6单元及系统调试〔1.5天〕实验1号楼412室7软件编程及调试〔1.5天〕实验1号楼412室8结果分析及撰写设计报告〔1.5天〕实验1号楼412室9实物演示、辩论、成绩评定〔1天〕实验1号楼412室五、应收集的资料及主要参考文献[1]赵茂泰,智能仪器原理及应用〔第3版〕,普通高等教育“十一五〞国家规划教材,电子工业出版社,2021。[2]庞春颖,智能仪器原理及应用,普通高等教育“十二五〞国家规划教材,电子工业出版社,2021。[3]史健芳,智能仪器设计根底,普通高等教育“十二五〞国家规划教材,电子工业出版社,2021。[4]朱欣华,智能仪器原理与设计,高等教育出版社,2021。[5]王祁,智能仪器设计根底,机械工业出版社,2021。[6]张元良,智能仪表设计实用技术及实例,机械工业出版社,2021。[7]付华,郭虹,徐耀松,智能仪器设计,国防工业出版社,2007。发出任务书日期:年月日指导教师签名:方案完成日期:年月日基层教学单位责任人签章:主管院长签章:目录TOC\o"1-3"\h\u摘要 51引言 72设计内容及性能指标 83系统方案比拟 93.1主控制器模块 93.2温度测量 93.3设置温度 103.4显示模块 103.5电源选取 114系统器件选择 124.1温度传感器的选择 125硬件实现及单元电路设计 135.1主控制模块 135.2显示模块电路 135.3数码管显示驱动电路 145.4温度传感器(DS18B20)电路 145.4.1DS18B20根本介绍 145.4.2DS18B20控制方法 155.4.3DS18B20供电方式 155.5蜂鸣器、发光二极管报警电路 166系统软件设计 176.1程序构造分析 176.2系统程序流图 176.2.1DS18B20初始化程序流程图 186.2.2读温度子程序流程图 197系统的安装与调试 207.1安装步骤 207.2电路的调试 207.3电路的电源 207.4总结 20参考文献 22附录1整体电路图 23附录2源程序 25摘要随着时代的进步和开展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比拟成熟的技术,本文主要介绍了一个基于STC89C52单片机的温度报警系统,详细描述了利用温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进展了详尽分析,对各局部的电路也一一进展了介绍,该系统可以方便的实现温度采集和显示,并可根据需要任意设定报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度控制,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与STC89C52结合实现最简温度控制系统,该系统构造简单,抗干扰能力强,适合于恶劣环境下进展现场温度的控制,有广泛的应用前景。关键词:单片机;温度控制;STC89C52;DS18B1引言随着科技的不断开展,现代社会对各种信息参数的准确度和准确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息根底的开展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和温度报警装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的开展经历了三个开展阶段:①传统的分立式温度传感器②模拟集成温度传感器③智能集成温度传感器。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的开展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的根底上从模拟式向数字式,从集成化向智能化、网络化的方向飞速开展,并朝着高精度、多功能、总线标准化、高可靠性及平安性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速开展,本文将介绍智能集成温度传感器DS18B20的构造特征及控制方法,并对以此传感器,STC89C52单片机为控制器构成的数字温度控制装置的工作原理及程序设计作了详细的介绍。其具有读数方便,方便控制,输出温度采用数字显示,主要用于对温度控制要求比拟准确的场所,或科研实验室使用。该设计控制器使用STC89C52单片机,测温传感器使用DALLAS公司DS18B20,用数码管来实现温2设计内容及性能指标本设计主要是介绍了单片机控制下的温度报警系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下:单片机实时检测温度传感器DS18B20的状态,并将DS18820得到的数据进展处理。上电后数码管显示当前的环境温度,通过按键可设置上下温报警值,当检测到的温度高于设置的报警值的时候,蜂鸣器报警同时报警灯闪烁,温度检测准确到0.1度。并具有掉电保存功能,数据保存在单片机内部EEPOM中,进入设置界面后如果没有键按下系统会在15秒后自动退出设置界面。3系统方案比拟该系统主要由温度测量和温度设置及系统状态显示三局部电路组成,下面介绍实现此系统功能的方案。3.1主控制器模块方案1:采用可编程逻辑器件CPLD 作为控制器。CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进展功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。且从使用及经济的角度考虑我们放弃了此方案。方案2:采用STC89C52单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。STC89C52单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是STC89C52单片机价格非常低廉。3.2温度测量方案1:采用数字温度芯片DS18B20测量实际温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器STC89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的构造就比拟简单,体积也不大。采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外STC89C52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。方案2:采用热电偶温差电路测温,温度检测局部可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成〔如下列图〕,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在温度并测量该电压,便可推断出检测结点的温度。数据采集局部则使用带有A/D通道的单片机,在将随被测温度变化的电压或电流采集过来,进展A/D转换后,就可以用单片机进展数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D转换电路,感温电路比拟麻烦。3.1热电偶电路图从以上两种方案,容易看出方案二的测温装置可测温度范围宽、体积小,但是线性误差较大。方案一的测温装置电路简单、准确度较高、实现方便、软件设计也比拟简单,故本次设计采用了方案一。3.3设置温度方案1:采用键盘输入设置温度,键盘则可以用4个按键,一个复位键,一个功能设定键,一个加减一个减键。四个键比拟常用,而且用到的接口得到了极好的利用,仅需要4个接口。方案2:可采用4*4矩阵键盘,该键盘需要8个接口,而我们不需这么多键。综上所述,我们选择第一种方案。3.4显示模块方案1:用数码管进展显示。数码管由于显示速度快,使用简单,显示效果简洁明了而得到了广泛应用。方案2:用LCD液晶进展显示。LCD由于其显示清晰,显示内容丰富、清晰,显示信息量大,使用方便,显示快速而得到了广泛的应用。单对于此系统我们不需要显示丰富的内容,而且LCD液晶价格贵,因此我们选择了此方案。综上所述我们选择方案13.5电源选取由于本系统采用电池供电,我们考虑了如下几种方案为系统供电。方案1:采用5V蓄电池为系统供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但是蓄电池的体积过于庞大,在小型电动车上使用极为不方便。因此我们放弃了此方案。方案2:采用3节1.5V干电池共4.5V做电源,经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。综上所述采用方案24系统器件选择4.1温度传感器的选择由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比拟多的外部元件支持,且硬件电路复杂,制作本钱相对较高。这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。外部封装形式传感器电路图5硬件实现及单元电路设计5.1主控制模块主控制最系统电路如下图。单片主控电路5.2显示模块电路显示采用四位数码管显示,当位选翻开时,送入相应的段码,则相应的数码管翻开,关掉位选,翻开另一个位选,送入相应的段码,则数码管翻开,而每次翻开关掉相应的位选时,时间间隔低于20ms,从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。显示电路如图5.2数码管显示5.3数码管显示驱动电路由于STC89C52左右缺乏以驱动数码管,故用三极管8550来作为驱动电路来驱动4位数码管,不仅简单,而且价格廉价。驱动电路5.4温度传感器(DS18B20)电路5.4.1DS18B20根本介绍DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线〞接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号处理器处理。DS18B20进展准确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流到达1mA,当几个温度传感器挂在同一根I/O线上进展多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,下列图电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。温度传感器电路引脚图5.4.2DS18B20控制方法DS18B20有六条控制命令:温度转换44H启动DS18B20进展温度转换读暂存器BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到E2RAM中重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU 5.4.3DS18B20供电方式DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.1所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个三极管来完成对总线的上拉。本设计采用电源供电方式,P2.2口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个上拉电阻和STC89C52的P2.2来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间最大为10μs。采用寄生电源供电方式是VDD和GND端均接地。由于单线制只有一根线,因此发送接收口必须是三状态的。主机控制DS18B20完成温度转换必须经过3个步骤:初始化。ROM操作指令。存储器操作指令。5.5蜂鸣器、发光二极管报警电路电路如图主要是用来设定温度报警温度的、有高温和低温报警。蜂鸣器、发光二极管驱动引脚图6系统软件设计6.1程序构造分析6.2系统程序流图主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的当前温度值,与设定的报警温度比拟,通过调用读温度子程序把存入内存储中的整数局部与小数局部开分存放在不的的两个单元中,然后通过调用显示子程序显示出来。调用显示子程序调用显示子程序初始化1s到?初次上电发温度转换开场命令读出温度值温度计算处理显示数据刷新6.2.1DS18B20初始化程序流程图在DS18B20工作之前需要进展初始化,流程图如下:发复位命令发复位命令发跳过ROM命令初始化成功完毕初始化程序流程图6.2.2读温度子程序流程图读温度子程序的主要功能是从DS18B20中读出温度数据,移入温度暂存器保存。其程序流程图如下:发复位命令发复位命令发跳过ROM命令发读取温度命令移入温度暂存器完毕温度子程序流程图7系统的安装与调试7.1安装步骤按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进展检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。、焊接各元件按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。7.2电路的调试首先烧入显示程序,看显示正不正常。在调试程序时,发现有的指令用的不正确,导致电路功能不能完全实现,另外软件程序中的延时有的过长、有的过短。类似的现象还有很多就不一一列举了。7.3电路的电源由于用3个1.5V的电池作为电源输入可以驱动单片机,但是用过的电池电压不稳定且没有到达所想要的电压大小,故采用实验室的6V电压。它正常工作电压在到5.5V之间,但是只要它电流不过8mA就不会烧,所以转换成电压的话是不会影响到它正常工作的,但是在高压工作,如果不必要就建议不要采用高压工作。7.4总结本温度报警器,通过单片机实时检测温度传感器DS18B20的状态,并将DS18820得到的数据进展处理。上电后数码管显示当前的环境温度,通过按键可设置上下温报警值,当检测到的温度高于设置的报警值的时候,蜂鸣器报警同时报警灯闪烁,温度检测准确到0.1度。并具有掉电保存功能,数据保存在单片机内部EEPOM中,进入设置界面后如果没有键按下系统会在15秒后自动退出设置界面。由于采用了4节干电池供电使系统的抗干扰性得到加强。在软件上,充分利用了STC89C52的系统资源,系统运行流畅。本设计构造简单,调试方便,系统反映快速灵活,经实验测试,该温度报警系统设计方案正确、可行,各项指标稳定、可靠。参考文献曹巧媛.单片机原理及应用(第二版)[M].北京:电子工业出版社,2002.全国大学生电子设计竞赛组委会.第五届全国大学生电子设计竞赛获奖作品选编(2001)[M].北京:北京理工大学出版社,2003.何力民.单片机高级教程[M].北京:北京航空大学出版社,2000.金发庆等.传感器技术与应用[M].北京:北京机械工业出版社,2002.刘坤、宋戈、赵洪波、张宪栋.51单片机C语言应用开发技术大全[M].北京:人民邮电出版社,2003.谭浩强.C程序设计[M].北京:清华大学出版社,2007.王忠飞,胥芳.MCS-51单片机原理及嵌入式系统应用[M].西安:西安电子科技大学出版社,2007.Peter,Van,Der,Linden.C专家编程[M].北京:人民邮电出版社,2003.附录1整体电路图正面图反面图附录2源程序#include<reg52.h>#include"eepom52.h"#defineucharunsignedchar#defineuintunsignedint//数码管段选定义012345 6 7 8 9 ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //断码//数码管位选定义ucharcodesmg_we[]={0xef,0xdf,0xbf,0x7f};uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; ucharsmg_i=3;//显示数码管的个位数sbitdq=P2^4; //18b20IO口的定义sbitbeep=P2^5;//蜂鸣器IO口定义uchara_a;uinttemperature;//bitflag_300ms;ucharkey_can; //按键值的变量ucharmenu_1;//菜单设计的变量uintt_high=300,t_low=100;bitflag_lj_en; //按键连加使能bitflag_lj_3_en; //按键连3次连加后使能加的数就越大了ucharkey_time,flag_value;//用做连加的中间变量bitkey_500ms;ucharflag_clock;ucharzd_break_en,zd_break_value;//自动退出设置界面/***********************1ms延时函数*****************************/voiddelay_1ms(uintq) uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);/***********************小延时函数*****************************/voiddelay_uint(uintq) while(q--);/***********************数码显示函数*****************************/voiddisplay() uchari; for(i=0;i<smg_i;i++) P3=smg_we[i]; //位选 P1=dis_smg[i]; //段选 delay_1ms(1); P3=0xff; //位选 P1=0xff; //消隐/******************把数据保存到单片机内部eepom中******************/voidwrite_eepom() SectorErase(0x2000); byte_write(0x2000,t_high%256); byte_write(0x2001,t_high/256); byte_write(0x2002,t_low%256); byte_write(0x2003,t_low/256); byte_write(0x2055,a_a); /******************把数据从单片机内部eepom中读出来*****************/voidread_eepom() t_high=byte_read(0x2001); t_high<<=8; t_high|=byte_read(0x2000); t_low=byte_read(0x2003); t_low<<=8; t_low|=byte_read(0x2002); a_a=byte_read(0x2055);/***********************18b20初始化函数*****************************/voidinit_18b20() bitq; dq=1; //把总线拿高 delay_uint(1); //15us dq=0; //给复位脉冲 delay_uint(80); //750us dq=1; //把总线拿高等待 delay_uint(10); //110us q=dq; //读取18b20初始化信号 delay_uint(20); //200us dq=1; //把总线拿高释放总线/*************写18b20内的数据***************/voidwrite_18b20(uchardat) uchari; for(i=0;i<8;i++) { //写数据是低位开场 dq=0; //把总线拿低写时间隙开场 dq=dat&0x01;//向18b20总线写数据了 delay_uint(5); //60us dq=1; //释放总线 dat>>=1;/*************读取18b20内的数据***************/ucharread_18b20() uchari,value; for(i=0;i<8;i++) dq=0; //把总线拿低读时间隙开场 value>>=1; //读数据是低位开场 dq=1; //释放总线 if(dq==1) //开场读写数据 value|=0x80; delay_uint(5); //60us 读一个时间隙最少要保持60us的时间 returnvalue; //返回数据/*************读取温度的值读出来的是小数***************/uintread_temp() uintvalue; ucharlow; //在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序 init_18b20(); //初始化18b20 write_18b20(0xcc); //跳过64位ROM write_18b20(0x44); //启动一次温度转换命令 delay_uint(50); //500us init_18b20(); //初始化18b20 write_18b20(0xcc); //跳过64位ROM write_18b20(0xbe); //发出读取暂存器命令 EA=0; low=read_18b20(); //读温度低字节 value=read_18b20();//读温度高字节 EA=1; value<<=8; //把温度的高位左移8位 value|=low; //把读出的温度低位放到value的低八位中 value*=0.625; //转换到温度值小数 returnvalue; //返回读出的温度带小数/*************定时器0初始化程序***************/voidtime_init() EA=1; //开总中断 TMOD=0X01; //定时器0、定时器1工作方式1 ET0=1; //开定时器0中断 TR0=1; //允许定时器0定时/****************独立按键处理函数************************/voidkey() staticucharkey_new=0,key_old=0,key_value=0; if(key_new==0) { //按键松开的时候做松手检测 if((P2&0x0f)==0x0f) key_value++; else key_value=0; if(key_value>=10) write_eepom(); key_value=0; key_new=1; flag_lj_en=0; //关闭连加使能 flag_lj_3_en=0; //关闭3秒后使能 flag_value=0; //清零 else if((P2&0x0f)!=0x0f) key_value++;//按键按下的时候 else key_value=0; if(key_value>=7) key_value=0; key_new=0; flag_lj_en=1; //连加使能 zd_break_en=1;//自动退出设置界使能 zd_break_value=0;//自动退出设置界变量清零 key_can=20; if(key_500ms==1) key_500ms=0; zd_break_en=1;//自动退出设置界使能 zd_break_value=0;//自动退出设置界变量清零 key_new=0; key_old=1; if((key_new==0)&&(key_old==1)) switch(P2&0x0f) case0x0e:key_can=4;break; //得到k1键值 case0x0d:key_can=3;break; //得到k2键值 case0x0b:key_can=2;break; //得到k3键值 case0x07:key_can=1;break; //得到k4键值 key_old=key_new; /****************按键处理数码管显示函数***************/voidkey_with() if(key_can==4) menu_1++; if(menu_1>=3) menu_1=0; if(menu_1==0) dis_smg[0]=smg_du[temperature%10]; //取温度的小数显示 dis_smg[1]=smg_du[temperature/10%10]&0x7f;//取温度的个位显示 dis_smg[2]=smg_du[temperature/100%10]; //取温度的十位显示 smg_i=3; if(menu_1==1) dis_smg[0]=smg_du[t_high%10]; //取小数显示 dis_smg[1]=smg_du[t_high/10%10]&0x7f;//取个位显示 dis_smg[2]=smg_du[t_high/100%10]; //取low十位显示 dis_smg[3]=0x89; smg_i=4; if(menu_1==2) dis_smg[0]=smg_du[t_low%10]; //取low小数显示 dis_smg[1]=smg_du[t_low/10%10]&0x7f;//取个位显示 dis_smg[2]=smg_du[t_low/100%10]; //取十位显示 dis_smg[3]=0xc7; smg_i=4; if(menu_1==1) //设置高温报警 if(key_can==3) if(flag_lj_3_en==0) t_high++; //按键按下未松开自动加三次 else t_high+=10; //按键按下未松开自动加三次之后每次自动加10 if(t_high>990) t_high=990; dis_smg[0]=smg_du[t_high%10]; //取小数显示 dis_smg[1]=smg_du[t_high/10%10]&0x7f;//取个位显示 dis_smg[2]=smg_du[t_high/100%10]; //取十位显示 dis_smg[3]=0x89; //H if(key_can==1) if(flag_lj_3_en==0) t_high--; //按键按下未松开自动加三次 else t_high-=10; //按键按下未松开自动减三次之后每次自动减10 if(t_high<=t_low) t_high=t_low+1; dis_smg[0]=smg_du[t_high%10]; //取小数显示 dis_smg[1]=smg_du[t_high/10%10]&0x7f;//取个位显示 dis_smg[2]=smg_du[t_high/100%10]; //取十位显示 dis_smg[3]=0x89; //H// write_eepom(); if(menu_1==2) //设置低温报警 if(key_can==3) if(flag_lj_3_en==0) t_low++; else t_low+=10; if(t_low>=t_high) t_low=t_high-1; dis_smg[0]=smg_du[t_low%10]; //取小数显示 dis_smg[1]=smg_du[t_low/10%10]&0x7f;//取个位显示 dis_smg[2]=smg_du[t_low/100%10]; //取十位显示 dis_smg[3]=0xc7; //L if(key_can==1) if(flag_lj_3_en==0) t_low--; else t_low-=10; if(t_low<=10) t_low=10; dis_smg[0]=smg_du[t_low%10]; //取小数显示 dis_smg[1]=smg_du[t_low/10%10]&0x7f;//取个位显示 dis_smg[2]=smg_du[t_low/

温馨提示

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

评论

0/150

提交评论