收藏 分销(赏)

基于单片机设计的8路温度巡检报警系统.pdf

上传人:天**** 文档编号:3256293 上传时间:2024-06-27 格式:PDF 页数:31 大小:1.09MB
下载 相关 举报
基于单片机设计的8路温度巡检报警系统.pdf_第1页
第1页 / 共31页
基于单片机设计的8路温度巡检报警系统.pdf_第2页
第2页 / 共31页
基于单片机设计的8路温度巡检报警系统.pdf_第3页
第3页 / 共31页
基于单片机设计的8路温度巡检报警系统.pdf_第4页
第4页 / 共31页
基于单片机设计的8路温度巡检报警系统.pdf_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、 I 届 别 学 号 毕业设计 基于单片机 8 路温度巡检报警系统 姓 名 系 别、专 业 导 师 姓 名、职 称 完 成 时 间 2 目录 摘要.3 1、设计方案与论证.4 2、系统硬件设计.4 2.1 单片机选择.4 2.2 电源模块.5 2.3 显示模块.5 2.4 温度传感器.5 3、硬件实现及单元电路设计.8 3.1 主控制模块.8 3.2 电源模块电路.8 3.3 液晶显示模块.9 3.4 单片机最小运行系统.9 3.5 温度传感器(DS18B20)电路.10(1)DS18B20 基本介绍.10(2)DS18B20 控制方法.11 3.6 蜂鸣器、发光二极管报警电路.12 4、系统

2、软件设计.12 4.1 程序结构分析.12 4.2 系统程序流图.12 4.3 DS18B20 初始化程序流程图.13 4.4 读温度子程序流程图.14 4.5 显示模块软件设计.14 4.6 报警控制电路软件设计.15 4.7 多路数据巡回显示.15 5、结束语.17 参考文献.17 附件一 整体原理图.18 附件二 布防源程序.18 3 摘要 智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。8 路温度巡检报警系统就是其中的一个体现,本次设计的 8 路温度巡检报警系统,以 STC89C52 单片机作为微控制

3、器,设计出一种 8 路巡检高低温智能温度报警系统,通过 DS18B20 温度传感器检测温度,当检测到的温度高于设定值时蜂鸣器报警或当检测到的温度低于设定值时蜂鸣器开始报警,温度检测精确到 0.1 度。并具有掉电保存功能,数据保存在单片机内部。工作状态实时显示在 1602液晶上。其中电源采用 3 节 5 号干电池供电。关键词:STC89C52单片机 DS18B20 1602 液晶模块 4 1、设计方案与论证 采用 STC89C52 单片机作为控制单元,因为该型单片机价格便宜,功能比较强大,性价比高,而且在市场上很容易买到。通过 DS18B20温度传感器来采集温度信息,送入主控单元单片机,处理数据

4、后完成相应动作,以达到自身控制。液晶显示采用 1602LCD 实时显示工作状态。此系统比较灵活,更重要的是采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,能很好地满足题目的要求。2、系统硬件设计 2.1 单片机选择 方案一:选用一片 CPLD(如 EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD 具有速度快、编程容易、资源丰富、开发周期短等优点,可利用 VHDL 语言进行编写开发。但 CPLD 在控制上较单片机有较大的劣势。同时,CPLD 的处理速度非常快,而智能温度报警系统对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以

5、胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案,进而提出了第二种设想。方案二:采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,以 STC89C52 单片机作为微控制器,设计出一种高低温智能温度报警系统,通过 DS18B20 温度传感器检测温度,当检测到的温度高于设定值时蜂鸣器报警或当检测到的温度低于设定值时蜂鸣器开始报警,而在这一点上,单片机就显现出来它的优势控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。51 单片机具有功能强大的位

6、操作指令,I/O 口均可按位寻址,程序空间多达 8K,对于本设计也绰绰有余,更可贵的是 51 单片机价格非常低廉。因此,这种方案是一种较为理想的方案。5 2.2 电源模块 由于本系统采用电池供电,我们考虑了如下几种方案为系统供电。方案 1:采用 12V 蓄电池为系统供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但是蓄电池的体积过于庞大,价格昂贵,在智能温度报警器上使用极为不方便。因此我们放弃了此方案。方案 2:采用 3 节 1.5 V 五号干电池串联共 4.5V 给单片机传感器供电,4.5V 在单片机传感器工作电压内。经过实验验证,能够满足系统的要求。系统运行稳定,电池更换方便。综

7、上所述采用方案 2 2.3 显示模块 方案 1:用数码管进行显示。数码管由于显示速度快,使用简单,显示效果简洁明了而得到了广泛应用。但是由于要显示温度。及设置菜单,用数码管无法显示如此丰富的内容,因此我们放弃了此方案。方案 2:用 LCD 液晶进行显示。LCD 由于其显示清晰,显示内容丰富、清晰,显示信息量大,使用方便,显示快速而得到了广泛的应用。对于此系统我们选用 1602 液晶能够很好的满足显示要求,因此我们选择了此方案。2.4 温度传感器 方案 1:用铂电阻测温的非线性校正方法,采用桥式电路将热敏电阻的感温效应,在将随被测温度变化的电压或电流采集过来,再加上放大器将信号放大,并经 AD

8、转换器,在通过显示电路,就可以将被测温度显示出来。6 图 1 铂电阻桥式测温电路 方案 2:考虑使用数字温度传感器,结合单片机电路设计,采用一只 DS18B20温度传感器,直接读取被测温度值,之后进行转换,依次完成设计要求。图 2 DS18B20 测温系统框图 方案比较 方案一采用模拟温度传感器,数据处理麻烦,且容易产生信号失真.DS18B20 可以直接温度转换为串行数字信号,供单片机进行处理,具有低功耗、高性能、抗干扰能力强等优点。比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,故实际设计中拟采用方案二。在本系统的电路设计方框图如图 2-3 所示。7 图 3 温度计

9、电路总体设计方案 DS18B20 是 Dallas 公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9 位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚 TO-92 小体积封装形式,温度测量范围55125,可编程为912位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的 16 位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电源方式产生,多个 DS18B20 可以并联到三根或者两根线上,CPU 只需一根端口线就能与多个 DS1

10、8B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。从而可以看出 DS18B20 可以非常方便的被用于远距离多点温度检测系统。图 4 温度芯片 DS18B20 STC89C52 CPU DS18B20温度芯片 1602显示 报警电路 电源 8 3、硬件实现及单元电路设计 3.1 主控制模块 主控制最小系统电路如图 5 所示。图 5单片机最小系统电路图 3.2 电源模块电路 采用 3 节 1.5 V 五号干电池串联共 4.5V 给系统供电。实物图如图 6。图 6 电池实物图 9 3.3 液晶显示模块 液晶显示模块采用 1602 液晶显示,液晶的数据口接在单片机的P1 口,控制键接

11、在单片机的 RS、RW 和段,具体接口电路如图 7:图 7 液晶显示电路图 3.4 单片机最小运行系统(1)晶振 晶振为单片机提供时钟信号。单片机 XIAL1 和 XIAL2 分别接 30PF 的电容,中间再并个 12MHZ 的晶振,形成单片机的晶振电路。图 8 晶振电路 (2)复位电路 单片机在启动时都需要复位,以使 CPU 及系统各部件处于确定的初始 10 状态,并从初态开始工作。89 系列单片机的复位信号是从 RST 引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则 CPU 就可以响应并

12、将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。图 9 复位电路 ALE 引脚悬空,复位引脚接到复位电路、VCC 接电源、VSS 接地、EA接电源 3.5 温度传感器(DS18B20)电路(1)DS18B20 基本介绍 DS18B20 是美国 DALLAS 半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号处理器处理。DS18B20 进行精确的温度转换,I/O 线必须保证在温度转换期间提供足够的能量,由于每个 DS18B20 在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一

13、根 I/O 线上进行多点测温时,只靠4.7K 上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,下图电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并且工作电源 VCC 必须保证在 5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。11 图 10 温度传感器电路引脚图(2)DS18B20 控制方法 DS18B20 有六条控制命令:温度转换 44H 启动 DS18B20 进行温度转换 读暂存器 BEH 读暂存器 9 个字节内容 写暂存器 4EH 将数据写入暂存器的 TH、TL 字节 复制暂存器 48H 把暂存器的 TH、TL 字节写到

14、 E2RAM 中 重新调 E2RAM B8H 把 E2RAM 中的 TH、TL 字节写到暂存器 TH、TL 字节 读电源供电方式 B4H 启动 DS18B20 发送电源供电方式的信号给主CPU (3)DS18B20 供电方式 DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时 DS18B20 的 1 脚接地,2 脚作为信号线,3 脚接电源。另一种是寄生电源供电方式,如图 3.1 所示单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用一个三极管来完成对总线的上拉。本设计采用电源供电方式,P2.3 口接单线总线为保证在有效的 DS18B20 时钟周

15、期内提供足够的电流,可用一个上拉电阻和STC89C52 的 P2.3 来完成对总线的上拉。当 DS18B20 处于写存储器操作和温度 A/D 变换操作时,总线上必须有强的上拉,上拉开启时间最大为 10 s。采用寄生电源供电方式是 VDD 和 GND 端均接地。由于单线制只有一根线,因此发送接收口必须是三状态的。主机控制DS18B20 完成温度转换必须经过 3 个步骤:初始化。ROM 操作指令。12 存储器操作指令。3.6 蜂鸣器、发光二极管报警电路 电路主要是用来设定温度报警温度的、有高温和低温报警。图 11 蜂鸣器、发光二极管驱动引脚图 4、系统软件设计 4.1 程序结构分析 主程序调用了

16、3 个子程序,分别是数码管显示程序、温度信号处理程序、按键设定报警温度程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码管的显示送数,控制系统的显示部分。按键设定程序:可以设定低温和高温报警可精确到 0.1 度。4.2 系统程序流图 主程序的主要功能是负责温度的实时显示、读出并处理 DS18B20的测量的当前温度值,温度测量每 1s 进行一次。这样可以在一秒之内测量一次被测温度,主程序的主要功能是负责温度的实时显示,读 13 出并处理 DS18B20 的当前温度值,与设定的报警温度比较,其程序流程见图 11 所示。通过调用读温度子程序把存入内存储中的

17、整数部分与小数部分开分存放在不的的两个单元中,然后通过调用显示子程序显示出来。图 11 DS18B20 温度流程图 4.3 DS18B20 初始化程序流程图 在 DS18B20 工作之前需要进行初始化,流程图如下:调用显示子程序 初始化 1s到?初次上电 发温度转换开始命令 读出温度值 温度计算处理 显示数据刷新 14 图 11 初始化程序流程图 4.4 读温度子程序流程图 读温度子程序的主要功能是从 DS18B20 中读出温度数据,移入温度暂存器保存。其程序流程图如下:图 12 温度子程序流程图 4.5 显示模块软件设计 本设计采用 1602 液晶作为显示,显示流程如图13 发复位命令 发跳

18、过 ROM命令 发读取温度命令 移入温度暂存器 结束 发复位命令 发跳过 ROM命令 初始化成功 结束 显示子程序 写缓冲单元及循环次数 15 图 13 显示子程序流程图 4.6 报警控制电路软件设计 当采集的信号超过设定上下限时,P2.4 输出低电平信号“0”,晶体管导通,蜂鸣器获得+5V 电压而鸣叫;当 P2.4 输出高电平信号“1”时,三极管截止,蜂鸣器停止发声。报警流程图如下 图 14 报警子程序流程图 4.7 多路数据巡回显示 结束 N 显示值超出设定的报警值?Y 发出报警 设定信号报警值 循环结束 返回 送显示 Y N 16 图 15 多路巡回显示功能流程图 系统开始工作,判断工作

19、模式是多界面显示方式。当系统工作模式为指定显开始 判断是否为扫描模式 显示设定通道及对应转换值 N Y 显示通道 0 及对应转换值 扫描间隔时间是否到?N Y 通道号加 1 通道号是否大于7 Y N 显示对应通道及对应转换值 判断是否为扫描模式 Y N 17 示模式时,1602 液晶显示所选择通道的通道号与对应通道的采集值。若工作模式为显示模式则循环显示 8 路通道的通道号与其对应的通道的采集值。模式的切换与通道号的选择通过独立键盘来完成。5、结束语 实现的功能:可设置温度上限高温报警和下限低温报警,报警温度可精确到 0.1 度,并具有掉电保存功能,数据保存在单片机内部EEPOM 中,按键还具

20、有连加、减功能。LCD1602 液晶显示的好处能够同时直观的看到实际温度和上、下限报警温度,。通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我在人生上又进了一步。也认识到很多的不足。论文有很多不足之处,但这里的可以回忆起曾经的劳动,换回来今天的作品。然而当看着自己的作品,系统能够无误的运行,真是莫大的欣慰。真是酸甜苦辣后的得到成果都是甘甜的。这次毕业设计的经历使我终身难忘,希望我的设计能够带给师弟师妹们学习这个课程的一个好辅助工具,那么我的辛苦没有白费,经历了这个设计后我学习了很多东西,而中途遇到的困难能够迎刃而解,为我以后遇到困难不畏惧,也为会激励我继续进步。参考文

21、献 1郭惠,吴迅.单片机 C 语言程序设计完全自学手册M.电子工业出版社,2008.10:1-200.2王东锋,王会良,董冠强.单片机 C 语言应用 100 例M.电子工业出版社,2009.3:145-300.3Yamato I,et al 1 New conversion system for UPS using high fre2 quency linkJ 1 IEEE PESC,1988:210-320.4Yamato I,et al 1 High frequency link DC/AC converter for UPS with a new voltage clamperJ 1IE

22、EE PESC,1990:52-105.18 附件一 整体原理图 附件二 布防源程序#include#include lcd1602.h#include eepom52.h#include 18b20_8lu.h#define uchar unsigned char#define uint unsigned int /*按键*2 1 4 3*/19 sbit beep=P24;/蜂鸣器 IO 口定义 uchar a_a;bit flag_300ms;bit flag_50ms;bit flag_2s;uchar key_can;/按键值的变量 uchar menu_1;/菜单设计的变量 uin

23、t t_high=300,t_low=100;uint t1_high=301,t1_low=101;uint t2_high=302,t2_low=102;uint t3_high=303,t3_low=103;uint t4_high=304,t4_low=104;uint t5_high=305,t5_low=105;uint t6_high=306,t6_low=106;uint t7_high=307,t7_low=107;uint t8_high=308,t8_low=108;bit flag_lj_en;/按键连加使能 bit flag_lj_3_en;/按键连 3 次连加后使能

24、 加的数就越大了 uchar key_time,flag_value;/用做连加的中间变量 bit key_500ms;uchar menu_shudu=20;/用来控制连加的速度 uchar flag_clock;/温度报警变量 uchar flag_fuzi;/用做菜单内的初始化的 uchar t1=0,t2=0,t3=0,t4=0,t5=0,t6=0,t7=0,t8=0;/对就 8 个温度的报警标志位 uchar t_zong;/一个有多少个报警 uchar zd_break_en,zd_break_value;/自动退出设置界面 /*1ms延时函数*/void delay_1ms(ui

25、nt q)uint i,j;for(i=0;iq;i+)for(j=0;j110;j+);20/*把数据保存到单片机内部 eepom 中*/void write_eepom12()SectorErase(0 x2000);byte_write(0 x2000,t1_high%256);byte_write(0 x2001,t1_high/256);byte_write(0 x2002,t1_low%256);byte_write(0 x2003,t1_low/256);byte_write(0 x2004,t2_high%256);byte_write(0 x2005,t2_high/256)

26、;byte_write(0 x2006,t2_low%256);byte_write(0 x2007,t2_low/256);byte_write(0 x2055,a_a);void write_eepom34()SectorErase(0 x2200);byte_write(0 x2200,t3_high%256);byte_write(0 x2201,t3_high/256);byte_write(0 x2202,t3_low%256);byte_write(0 x2203,t3_low/256);byte_write(0 x2204,t4_high%256);byte_write(0 x

27、2205,t4_high/256);byte_write(0 x2206,t4_low%256);byte_write(0 x2207,t4_low/256);byte_write(0 x2255,a_a);void write_eepom56()SectorErase(0 x2400);byte_write(0 x2400,t5_high%256);byte_write(0 x2401,t5_high/256);byte_write(0 x2402,t5_low%256);byte_write(0 x2403,t5_low/256);byte_write(0 x2404,t6_high%25

28、6);byte_write(0 x2405,t6_high/256);21 byte_write(0 x2406,t6_low%256);byte_write(0 x2407,t6_low/256);byte_write(0 x2455,a_a);void write_eepom78()SectorErase(0 x2600);byte_write(0 x2600,t7_high%256);byte_write(0 x2601,t7_high/256);byte_write(0 x2602,t7_low%256);byte_write(0 x2603,t7_low/256);byte_writ

29、e(0 x2604,t8_high%256);byte_write(0 x2605,t8_high/256);byte_write(0 x2606,t8_low%256);byte_write(0 x2607,t8_low/256);byte_write(0 x2655,a_a);/*把数据从单片机内部 eepom 中读出来*/void read_eepom12()t1_high =byte_read(0 x2001);t1_high=8;t1_high|=byte_read(0 x2000);t1_low =byte_read(0 x2003);t1_low=8;t1_low|=byte_r

30、ead(0 x2002);t2_high =byte_read(0 x2005);t2_high=8;t2_high|=byte_read(0 x2004);t2_low =byte_read(0 x2007);t2_low=8;t2_low|=byte_read(0 x2006);a_a =byte_read(0 x2055);void read_eepom34()22 t3_high =byte_read(0 x2201);t3_high=8;t3_high|=byte_read(0 x2200);t3_low =byte_read(0 x2203);t3_low=8;t3_low|=by

31、te_read(0 x2202);t4_high =byte_read(0 x2205);t4_high=8;t4_high|=byte_read(0 x2204);t4_low =byte_read(0 x2207);t4_low=8;t4_low|=byte_read(0 x2206);a_a =byte_read(0 x2255);void read_eepom56()t5_high =byte_read(0 x2401);t5_high=8;t5_high|=byte_read(0 x2400);t5_low =byte_read(0 x2403);t5_low=8;t5_low|=b

32、yte_read(0 x2402);t6_high =byte_read(0 x2405);t6_high=8;t6_high|=byte_read(0 x2404);t6_low =byte_read(0 x2407);t6_low=8;t6_low|=byte_read(0 x2406);a_a =byte_read(0 x2455);void read_eepom78()t7_high =byte_read(0 x2601);t7_high=8;t7_high|=byte_read(0 x2600);t7_low =byte_read(0 x2603);23 t7_low=8;t7_lo

33、w|=byte_read(0 x2602);t8_high =byte_read(0 x2605);t8_high=8;t8_high|=byte_read(0 x2604);t8_low =byte_read(0 x2607);t8_low=15)key_value=0;key_new=1;flag_lj_en=0;/关闭连加使能 24 flag_lj_3_en=0;/关闭 3 秒后使能 flag_value=0;/清零 key_time=0;else if(P2&0 x0f)!=0 x0f)key_value+;/按键按下的时候 else key_value=0;if(key_value=

34、10)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;key_new=0;key_old=1;zd_break_value=0;if(key_new=0)&(key_old=1)switch(P2&0 x0f)case 0 x0e:key_can=4;break;/得到 k1 键值 case 0 x0d:key_can=3;break;/得到 k2 键值 case 0 x0b:

35、key_can=2;break;/得到 k3 键值 case 0 x07:key_can=1;break;/得到 k4 键值 /write_sfm2(1,14,key_can);25 key_old=key_new;/*报警函数*/void clock_h_l()if(temperature1=t1_high)t1=1;/温度 1 报警标志位 else t1=0;if(temperature2=t2_high)t2=1;/温度 2 报警标志位 else t2=0;if(temperature3=t3_high)t3=1;/温度 3 报警标志位 else t3=0;if(temperature4

36、=t4_high)t4=1;/温度 4 报警标志位 else t4=0;if(temperature5=t5_high)t5=1;/温度 5 报警标志位 else t5=0;if(temperature6=t6_high)t6=1;/温度 6 报警标志位 else t6=0;if(temperature7=t7_high)t7=1;/温度 7 报警标志位 else t7=0;if(temperature8=t8_high)t8=1;/温度 8 报警标志位 else 26 t8=0;t_zong=t1+t2+t3+t4+t5+t6+t7+t8;/算出一共有多少个报警 /*8个 18b20 显示*

37、/void dis_8_18b20()static uchar value;if(flag_2s=1)temperature5=read5_temp();/先读出温度的值 temperature6=read6_temp();/先读出温度的值 temperature7=read7_temp();/先读出温度的值 temperature8=read8_temp();/先读出温度的值 if(value=1)init_1602_dis_csf1();value=0;write_sfm3_18B20(1,3,temperature5);write_sfm3_18B20(1,11,temperature6

38、);write_sfm3_18B20(2,3,temperature7);write_sfm3_18B20(2,11,temperature8);else temperature1=read1_temp();/先读出温度的值 temperature2=read2_temp();/先读出温度的值 temperature3=read3_temp();/先读出温度的值 temperature4=read4_temp();/先读出温度的值 if(value=0)init_1602_dis_csf();value=1;write_sfm3_18B20(1,3,temperature1);write_sf

39、m3_18B20(1,11,temperature2);write_sfm3_18B20(2,3,temperature3);write_sfm3_18B20(2,11,temperature4);27 /*菜单对应的处理函数*/void menu_dispaly()if(menu_1=0)/正常退出菜单后的显示 8 个温度 dis_8_18b20();if(menu_1=1)&(menu_2!=0)/显示的设置温度 1 temperature1=read1_temp();/先读出温度的值 write_sfm3_18B20(1,8,temperature1);if(menu_1=2)&(men

40、u_2!=0)/显示的设置温度 2 temperature2=read2_temp();/先读出温度的值 write_sfm3_18B20(1,8,temperature2);if(menu_1=3)&(menu_2!=0)/显示的设置温度 3 temperature3=read3_temp();/先读出温度的值 write_sfm3_18B20(1,8,temperature3);if(menu_1=4)&(menu_2!=0)/显示的设置温度 4 temperature4=read4_temp();/先读出温度的值 write_sfm3_18B20(1,8,temperature4);if

41、(menu_1=5)&(menu_2!=0)/显示的设置温度 5 temperature5=read5_temp();/先读出温度的值 write_sfm3_18B20(1,8,temperature5);if(menu_1=6)&(menu_2!=0)/显示的设置温度 6 temperature6=read6_temp();/先读出温度的值 write_sfm3_18B20(1,8,temperature6);28 if(menu_1=7)&(menu_2!=0)/显示的设置温度 7 temperature7=read7_temp();/先读出温度的值 write_sfm3_18B20(1,

42、8,temperature7);if(menu_1=8)&(menu_2!=0)/显示的设置温度 8 temperature8=read8_temp();/先读出温度的值 write_sfm3_18B20(1,8,temperature8);if(menu_1 0)&(menu_1 0)&(menu_1 100)/30秒后自动退出设置界面 menu_1_break();/第一级菜单退出函数 zd_break_en=0;zd_break_value=0;write_com(0 x0c);/关闭光标 if(flag_50ms=1)flag_50ms=0;key();/按键程序 if(key_can=70)flag_2s=flag_2s;value=0;if(flag_lj_en=1)/按下按键使能 key_time+;if(key_time=menu_shudu)/500ms key_time=0;key_500ms=1;/500ms flag_value+;if(flag_value 3)flag_value=10;flag_lj_3_en=1;/3次后 1.5秒后连加大些

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服