基于sht1x的温湿度采集单元硬件设计
- 格式:ppt
- 大小:808.06 KB
- 文档页数:13
温湿度传感器课程设计单元电路设计温湿度传感器是一种用于测量环境中温度和湿度的传感器。
在课程设计中,我们将设计一个基于电路的温湿度传感器。
在本课程设计中,我们将使用DHT11传感器模块来测量温度和湿度。
DHT11是一款低成本、易于使用的数字温湿度传感器,具有4个引脚的封装。
它通过一根单线串行数据线与主控设备通信,提供可靠的温度和湿度测量。
为了设计一个可靠的温湿度传感器电路,我们将使用以下元件和组件:1. DHT11传感器模块:用于测量温度和湿度,提供数值输出。
2. Arduino开发板:作为主控设备,用于接收传感器的数据并进行处理。
3.聚合器:用于整合传感器和主控设备之间的连接,并提供电源。
4.面包板:用于连接电子元件,方便原型搭建和调试。
5.连接线:用于连接各个元件。
该电路的设计可以分为以下几个步骤:1.连接DHT11传感器模块:将DHT11传感器模块插入面包板,并使用连接线将其与聚合器相连。
连接线的一端插入DHT11传感器模块的引脚孔中,另一端插入聚合器的相应引脚孔中。
确保连接的稳固和可靠。
2.连接Arduino开发板:使用连接线将Arduino开发板与聚合器相连。
将连接线的一端插入Arduino开发板的引脚孔中,将另一端插入聚合器的相应引脚孔中。
确保连接的稳固和可靠。
3.供电和调试:将电源线插入聚合器的电源接口中,并将另一端插入电源插座中。
通过调试电路,确保传感器模块和Arduino开发板的连接正常。
4.编程:使用Arduino编程软件,编写代码以读取DHT11传感器模块的数据。
代码将包括初始化传感器模块、读取温度和湿度数据、将数据传输至主控设备等功能。
5.测试和验证:完成上述步骤后,进行电路的测试和验证。
将传感器放置在不同的环境中,记录传感器读取到的温度和湿度数据,与实际情况进行对比,验证传感器的准确性和稳定性。
总结:通过本次课程设计,我们实现了基于电路的温湿度传感器的设计。
该设计利用DHT11传感器模块和Arduino开发板,实现了对环境温度和湿度的测量,同时通过编程将数据传输到主控设备。
基于单片机的温湿度监测系统毕业设计一、引言在现代生活和工业生产中,对环境温湿度的准确监测和控制具有重要意义。
温湿度的变化可能会影响产品质量、设备运行以及人们的生活舒适度。
因此,设计一个可靠、精确且易于使用的温湿度监测系统是十分必要的。
本毕业设计旨在基于单片机技术开发一款实用的温湿度监测系统。
二、系统总体设计(一)系统功能需求该监测系统应能够实时采集环境的温度和湿度数据,并将其显示在屏幕上。
同时,系统应具备数据存储功能,以便后续分析和查询。
此外,还应设置报警阈值,当温湿度超出设定范围时能发出警报。
(二)系统组成本系统主要由传感器模块、单片机控制模块、显示模块、存储模块和报警模块组成。
传感器模块负责采集环境温湿度数据,选用了精度高、稳定性好的DHT11 温湿度传感器。
单片机控制模块作为系统的核心,采用了 STC89C52 单片机,负责处理传感器采集到的数据、控制其他模块的工作以及进行逻辑判断。
显示模块采用了液晶显示屏(LCD1602),能够清晰地显示当前的温湿度值。
存储模块使用了 EEPROM 芯片,用于保存历史数据。
报警模块则通过蜂鸣器和指示灯实现,当温湿度异常时发出声光报警。
三、硬件设计(一)传感器接口电路DHT11 传感器与单片机通过单总线进行通信,连接时需要注意数据线的上拉电阻。
(二)单片机最小系统STC89C52 单片机的最小系统包括时钟电路和复位电路。
时钟电路采用晶振和电容组成,为单片机提供稳定的时钟信号。
复位电路用于系统初始化和异常情况下的复位操作。
(三)显示电路LCD1602 通过并行接口与单片机连接,需要配置相应的控制引脚和数据引脚。
(四)存储电路EEPROM 芯片通过 I2C 总线与单片机通信,实现数据的存储和读取。
(五)报警电路蜂鸣器通过三极管驱动,指示灯通过限流电阻连接到单片机的引脚,由单片机控制其工作状态。
四、软件设计(一)主程序流程系统上电后,首先进行初始化操作,包括单片机内部寄存器的设置、传感器的初始化、显示模块的初始化等。
课程设计报告书课程名称:《传感器原理及应用》课程设计题目:基于SHT11温湿度传感器的湿度计设计系(院):电子工程学院测控系学期:2013-2014-1专业班级:测控111姓名:学号:1 设计目的(1)能较全面地巩固和应用“传感器及检测技术”课程中所学的基本理论和基本方法,并初步掌握小型数字系统设计的基本方法。
(2)通过《传感器及检测技术》课程设计,掌握传感器及检测系统设计的方法和设计原则及相应的硬件调试的方法。
进一步理解传感器及检测系统的设计和应用。
(3)培养独立思考、独立准备资料、独立设计规定功能的数字系统的能力。
(4)培养书写综合设计报告的能力。
2 本题目的具体设计要求(1)本实验设计的温湿度计能完成多种环境中的温度、湿度测量;(2)根据系统要求,选择合适的传感器,本实验所选用传感器为SHT11温湿度传感器;(3)设计传感器测量电路;(4)选择单片机的品种、型号,设计单片机的外围测量电路;(5)计算有关的电路参数,有条件的情况下,根据实验室现有设备进行实验数据的测取,明确测量电路输出与被测非电量的关系;(6)画出系统电路图;3 本系统的总体实现原理、方案设计3.1 国内外发展现状及文献综述:温湿度的测量在仓储管理、生产制造、气象观测、科学研究以及日常生活中被广泛应用,传统的模拟式湿度传感器一般都要设计信号调理电路并需要经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性、一致性等方面往往不尽人意。
SHT11是瑞士Sensirion公司推出的基于COMSensTM 技术的新型温湿度传感器。
该传感器将CMOS芯片技术与传感器技术结合起来,从而发挥出它们强大的优势互补作用。
3.2 本系统的实现原理、总体方案设计采用湿度和温度测量,即用一个温湿度传感器SHT11实现。
温湿度传感器SHT11将湿度测量、温度测量、信号变换、A/D转换等功能集合到一个芯片上,该芯片包含一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件,这个两个敏感元件分别将湿度和温度转换成电信号,该信号首先进入微弱信号放大器进行信号放大,然后进入一个14位的A/D转换器,最后经过二线串行数字接口输出数字信号,采用数码管显示所测湿度。
基于物联网的温湿度信息采集系统设计————————————————————————————————作者: ————————————————————————————————日期:ﻩ兰州理工大学计算机与通信学院2014年春季学期物联网综合应用实践课程设计题目:基于物联网的温湿度信息采集系统设计专业班级:姓名:学号:指导教师:成绩:基于物联网的温湿度信息采集系统设计摘要基于物联网的无线传感网络是多学科的高度交叉,知识的高度集成的前沿热点研究领域。
它通过各类集成化的微型传感器协作地实时监测,感知和采集各种环境或监测对象的信息,这些信息通过无线方式被发送,并以自组多跳的网络方式传送到用户终端无线传感器网络的特性决定了其不需要较高的传输带宽,而要求较低的传输延时和极低的功率消耗。
IEEES02.15.4/Zig Bee技术是近年来通信领域中的研究热点,具有低成本、低功耗、低速率、低复杂度的特点和高可靠性、组网简单、灵活等优势,逐渐成为无线传感器网络事实上的国际标准。
此次课设设计并实现了用无线传感器网络构成的分布式温度湿度监控系统。
关键词:物联网、信息采集、SHT10、串口通信正文:ﻩ错误!未定义书签。
一、前言ﻩ错误!未定义书签。
二、基本原理ﻩ错误!未定义书签。
2.1 SHT10引脚特性ﻩ错误!未定义书签。
2.2 温湿度传感器模块 ................... 错误!未定义书签。
2.3 CC2530串口通信原理 ........... 错误!未定义书签。
2.4 Zig Bee简介 ......................... 错误!未定义书签。
三、系统分析................................................. 错误!未定义书签。
四、详细设计ﻩ错误!未定义书签。
4.1硬件设计ﻩ错误!未定义书签。
4.2 软件设计ﻩ错误!未定义书签。
4.3 设计结构图ﻩ错误!未定义书签。
基于单片机的温湿度控制系统设计温湿度控制系统是一种基于单片机的自动控制系统,通过测量环境的温度和湿度,并根据设定的控制策略调节相关设备来维持合适的温湿度条件。
设计一个基于单片机的温湿度控制系统可以分为硬件设计和软件设计两个部分。
硬件设计主要包括传感器模块、控制器模块和执行器模块的选型和接口设计;软件设计主要包括数据采集与处理、控制算法设计和用户界面设计。
在硬件设计方面,温湿度传感器是获取环境温湿度的关键设备。
可以选择市场上成熟的数字温湿度传感器,比如DHT11或DHT22,它们通过数字信号输出温湿度值。
另外,还需要选择一款适用于单片机的控制器模块,如Arduino,它可以实现数字信号的采集和输出控制信号。
执行器模块可以根据具体控制目标选择,比如加热器、湿度调节装置等。
在软件设计方面,首先需要编写数据采集与处理的代码。
通过单片机连接温湿度传感器,读取其输出的数字信号,并进行数据处理,将数据转换为实际的温湿度值。
可以使用适当的算法进行数据滤波和校准,确保数据的准确性和稳定性。
接下来,需要设计控制算法。
根据实际需求,可以选择PID算法或者模糊控制算法等进行温湿度控制。
PID算法是一种经典控制算法,通过测量值与设定值之间的误差,计算出控制量,并根据比例、积分、微分三个方面进行调节。
模糊控制算法是一种基于模糊逻辑的控制算法,通过建立模糊规则库,将模糊规则与输入值进行模糊计算,得到输出控制量。
根据具体应用场景和需求,选择适当的算法进行控制。
最后,需要设计用户界面。
通过显示屏、按钮等外设,与用户进行交互,显示当前的温湿度数值和设定值,并提供设置温湿度的功能。
可以通过编程实现用户界面的交互逻辑,并调用相应的功能函数来实现温湿度的设定和控制。
总结起来,基于单片机的温湿度控制系统设计,需要进行硬件选型和接口设计,编写数据采集与处理、控制算法和用户界面的程序代码。
通过这些设计和实现,可以实现对环境温湿度的实时监测和控制,为用户提供一个舒适的环境。
STC89C52RC单片机3.3 温度和湿度采集模块1.通讯过程如图1所示图1总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。
DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。
图2总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。
数字0信号表示方法如图4所示图4数字1信号表示方法.如图5所示图5温湿度传感器模块温湿度传感器选用瑞士Sensirion公司生产的SHT10。
SHT1X系列共有三个型号:SHT10、SHT11、SHT15,他们都是SMD贴片封装的,他们依次性能越来越好,其中SHT10属于经济型的温湿度传感器。
三者的温湿度性能如下图所示。
图3.4 SHT1X系列各型号传感器的湿度、温度最大误差从曲线中可以看出,无论是湿度还是温度,SHT10的误差都是最大的,SHT15误差最小,但是它们的价格也相差很大,SHT10多为二三十元一个,而SHT15价格上百。
因此,从满足大棚温湿度监测的要求来看,SHT10已经足够,故选用SHT10。
SHT10与单片机的接口电路如下所示:图3.5 SHT10与单片机的接口电路SHT10采用类似于I2C的两线制串行总线,一根是时钟线,一根是数据线。
数据线要通过一个上拉电阻接到VCC,目的是避免信号冲突,使单片机的引脚只提供低电平,要得到高电平则使该引脚悬空,由上拉电阻提供高电平。
目录第1章设计意义及要求 (1)1.1 设计意义 (1)1.2 设计要求 (1)第2章硬件设计 (2)2.1 AT89S52芯片介绍 (2)2.2 液晶显示器LCD1602 (3)2.2.1 液晶显示原理 (3)2.2.2 液晶显示器分类 (3)2.2.3 显示原理 (3)2.2.4 LCD1602的基本参数及引脚功能 (4)2.3 温湿度模块DHT11介绍 (6)2.3.1 DHT11概述 (6)2.3.2 DHT11传感特性说明 (7)2.3.3 DHT11封装信息 (8)2.3.4 串行接口(单线双向) (8)第3章设计实现 (11)3.1 设计框图及流程 (11)3.2 设计结果及分析 (11)第4章设计总结 (13)参考文献 (14)附录 (15)第1章设计意义及要求1.1 设计意义最近几年来,随着科技的飞速发展,单片机领域正在不断的走向社会各个角落,还带动传统控制检测日新月异更新。
在实时运作和自动控制的单片机应用到系统中,单片机如今是作为一个核心部件来使用,仅掌握单片机方面知识是不够的,还应根据其具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
现代社会越来越多的场所会涉及到温度与湿度并将其显示。
由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,例如:冬天温度为18至25℃,湿度为30%至80%;夏天温度为23至28℃,湿度为30%至60%。
在此范围内感到舒适的人占95%以上。
在装有空调的室内,室温为19至24℃,湿度为40%至50%时,人会感到最舒适。
如果考虑到温、湿度对人思维活动的影响,最适宜的室温度应是工作效率高。
18℃,湿度应是40%至60%,此时,人的精神状态好,思维最敏捷。
所以,本课程设计就是通过单片机驱动LCD1602,液晶显示温湿度,通过此设计,可以发现本设计有一定的扩展性,而且可以作为其他有关设计的基础。
如何高效、稳定地对数据(包括温度、湿度光线、压力等项目)进行实时采集对于现代的企业、工厂、研究所等对数据精度要求较高的单位具有非常重要的意义。
基于单片机的温湿度监测系统毕业设计一、引言在现代社会中,温湿度的监测在许多领域都具有重要意义,例如农业生产、仓储管理、工业制造以及室内环境控制等。
为了实现对温湿度的准确、实时监测,基于单片机的温湿度监测系统应运而生。
本毕业设计旨在设计并实现一种基于单片机的温湿度监测系统,以满足实际应用中的需求。
二、系统总体设计方案(一)系统功能需求分析本系统需要实现对环境温湿度的实时采集、数据处理、显示以及超限报警等功能。
能够在不同的环境中稳定工作,并具有较高的测量精度和可靠性。
(二)系统总体结构设计系统主要由单片机控制模块、温湿度传感器模块、显示模块、报警模块以及电源模块等组成。
单片机作为核心控制器,负责协调各个模块的工作,温湿度传感器用于采集环境温湿度数据,显示模块用于实时显示测量结果,报警模块在温湿度超限时发出警报,电源模块为整个系统提供稳定的电源。
三、硬件设计(一)单片机控制模块选择合适的单片机型号,如 STC89C52 单片机,其具有丰富的资源和良好的性价比。
单片机通过 I/O 口与其他模块进行通信和控制。
(二)温湿度传感器模块选用 DHT11 数字温湿度传感器,该传感器具有体积小、功耗低、测量精度高、响应速度快等优点。
通过单总线方式与单片机进行数据传输。
(三)显示模块采用液晶显示屏(LCD1602)作为显示设备,能够清晰地显示温湿度测量值。
通过并行接口与单片机连接。
(四)报警模块使用蜂鸣器和发光二极管作为报警装置,当温湿度超过设定的阈值时,蜂鸣器发声,发光二极管闪烁。
(五)电源模块设计稳定的电源电路,为整个系统提供 5V 直流电源。
可以采用电池供电或者通过电源适配器接入市电。
四、软件设计(一)系统主程序设计主程序主要负责系统的初始化、各模块的协调控制以及数据处理和显示。
首先对单片机进行初始化,包括设置 I/O 口状态、定时器和中断等。
然后循环读取温湿度传感器的数据,并进行处理和显示,判断是否超过阈值,若超过则启动报警。
基于51单片机SHT11温湿度传感器检测程序(含电路图)?下面是原理图:下面是SHT11与MCU连接的典型电路:下面是源代码:#include <reg52.h>#include <intrins.h>/********************************************************宏定义********************************************************/#define uint unsigned int#define uchar unsigned char#define noACK 0#define ACK 1#define STATUS_REG_W 0x06#define STATUS_REG_R 0x07#define MEASURE_TEMP 0x03#define MEASURE_HUMI 0x05#define RESET 0x1eenum?{TEMP,HUMI};typedef?union?//定义共用同类型{unsigned?int?i;float?f;} value;/******************************************************** ?位定义********************************************************/ sbit lcdrs=P2^0;sbit lcdrw=P2^1;sbit lcden=P2^2;sbit SCK = P1^0;sbit DATA = P1^1;/******************************************************** 变量定义********************************************************/ uchar table2[]="SHT11 温湿度检测";uchar table3[]="温度为:℃";uchar table4[]="湿度为:";uchar table5[]=".";uchar wendu[6];uchar shidu[6];/******************************************************** 1ms延时函数********************************************************/ void?delay(int?z){int?x,y;for(x=z;x>0;x--)for(y=125;y>0;y--);}/******************************************************** 50us延时函数********************************************************/ void?delay_50us(uint t){uint j;for(;t>0;t--)for(j=19;j>0;j--);}/******************************************************** 50ms延时函数********************************************************/ void?delay_50ms(uint t){uint j;for(;t>0;t--)for(j=6245;j>0;j--);}/******************************************************** 12864液晶写指令********************************************************/ void?write_12864com(uchar com){lcdrs=0;delay_50us(1);P0=com;lcden=1;delay_50us(10);lcden=0;delay_50us(2);}/******************************************************** 12864液晶写数据********************************************************/ void?write_dat(uchar dat){lcdrs=1;lcdrw=0;delay_50us(1);P0=dat;lcden=1;delay_50us(10);lcden=0;delay_50us(2);}/******************************************************** 12864液晶初始化********************************************************/ void?init12864lcd(void){delay_50ms(2);write_12864com(0x30);delay_50us(4);write_12864com(0x30);delay_50us(4);write_12864com(0x0f);delay_50us(4);write_12864com(0x01);delay_50us(240);write_12864com(0x06);delay_50us(10);write_12864com(0x0c);delay_50us(10);}/******************************************************** 12864液晶显示函数********************************************************/ void?display1(void){uchar i;write_12864com(0x80);for(i=0;i<18;i++){write_dat(table2[i]);delay_50us(1);}}/******************************************************** 12864液晶显示函数********************************************************/ void?display2(void){uchar i;write_12864com(0x90);for(i=0;i<18;i++){write_dat(table3[i]);delay_50us(1);}}/******************************************************** 12864液晶显示函数********************************************************/ void?display3(void){uchar i;write_12864com(0x88);for(i=0;i<8;i++){write_dat(table4[i]);delay_50us(1);}}/******************************************************** 12864液晶显示函数********************************************************/ void?displaywendu(void){uchar i;write_12864com(0x94);for(i=0;i<3;i++){write_dat(wendu[i]);delay_50us(1);}for(i=0;i<1;i++){write_dat(table5[i]);delay_50us(1);}for(i=4;i<5;i++){write_dat(wendu[i]);delay_50us(1);}}/******************************************************** 12864液晶显示函数********************************************************/ void?displayshidu(void){uchar i;write_12864com(0x8C);for(i=0;i<3;i++){write_dat(shidu[i]);delay_50us(1);}for(i=0;i<1;i++){write_dat(table5[i]);delay_50us(1);}for(i=4;i<5;i++){write_dat(shidu[i]);delay_50us(1);}/******************************************************** SHT11写字节程序********************************************************/ char?s_write_byte(unsigned?char?value){unsigned?char?i,error=0;for?(i=0x80;i>0;i>>=1)?//高位为1,循环右移{if?(i&value) DATA=1;?//和要发送的数相与,结果为发送的位 else?DATA=0;SCK=1;_nop_();_nop_();_nop_();?//延时3usSCK=0;}DATA=1;?//释放数据线SCK=1;error=DATA;?//检查应答信号,确认通讯正常_nop_();_nop_();_nop_();SCK=0;DATA=1;return?error;?//error=1 通讯错误}/******************************************************** SHT11读字节程序********************************************************/ char?s_read_byte(unsigned?char?ack){unsigned?char?i,val=0;DATA=1;?//释放数据线for(i=0x80;i>0;i>>=1)?//高位为1,循环右移{SCK=1;if(DATA) val=(val|i);?//读一位数据线的值SCK=0;}DATA=!ack;?SCK=1;_nop_();_nop_();_nop_();?//延时3usSCK=0;_nop_();_nop_();_nop_();DATA=1;?//释放数据线return?val;/********************************************************SHT11启动传输********************************************************/void?s_transstart(void){DATA=1; SCK=0;?//准备_nop_();SCK=1;_nop_();DATA=0;_nop_();SCK=0;_nop_();_nop_();_nop_();SCK=1;_nop_();DATA=1;_nop_();SCK=0;}/********************************************************SHT11连接复位********************************************************/void?s_connectionreset(void){unsigned?char?i;DATA=1; SCK=0;?//准备for(i=0;i<9;i++)?//DATA保持高,SCK时钟触发9次,发送启动传输,通迅即复位{SCK=1;SCK=0;}s_transstart();?//启动传输}/********************************************************SHT11温湿度检测********************************************************/char?s_measure(unsigned?char?*p_value, unsigned?char?*p_checksum, unsigned?charmode){unsigned error=0;unsigned?int?i;s_transstart();?//启动传输switch(mode)?//选择发送命令{case?TEMP : error+=s_write_byte(MEASURE_TEMP);?break;?//测量温度case?HUMI : error+=s_write_byte(MEASURE_HUMI);?break;?//测量湿度default?:?break;}for?(i=0;i<65535;i++)?if(DATA==0)?break;?//等待测量结束if(DATA) error+=1;?// 如果长时间数据线没有拉低,说明测量错误*(p_value) =s_read_byte(ACK);?//读第一个字节,高字节 (MSB)*(p_value+1)=s_read_byte(ACK);?//读第二个字节,低字节 (LSB)*p_checksum =s_read_byte(noACK);?//read CRC校验码return?error;?// error=1 通讯错误}/********************************************************SHT11温湿度值标度变换及温度补偿********************************************************/void?calc_sth10(float?*p_humidity ,float?*p_temperature){const?float?C1=-4.0;?// 12位湿度精度修正公式const?float?C2=+0.0405;?// 12位湿度精度修正公式const?float?C3=-0.0000028;?// 12位湿度精度修正公式const?float?T1=+0.01;?// 14位温度精度 5V条件修正公式const?float?T2=+0.00008;?// 14位温度精度 5V条件修正公式float?rh=*p_humidity;?// rh: 12位湿度float?t=*p_temperature;?// t: 14位温度float?rh_lin;?// rh_lin: 湿度 linear值float?rh_true;?// rh_true: 湿度 ture值float?t_C;?// t_C : 温度℃t_C=t*0.01 - 40;?//补偿温度rh_lin=C3*rh*rh + C2*rh + C1;?//相对湿度非线性补偿rh_true=(t_C-25)*(T1+T2*rh)+rh_lin;?//相对湿度对于温度依赖性补偿if(rh_true>100)rh_true=100;?//湿度最大修正if(rh_true<0.1)rh_true=0.1;?//湿度最小修正*p_temperature=t_C;?//返回温度结果*p_humidity=rh_true;?//返回湿度结果}/********************************************************?主函数********************************************************/void?main(void){unsigned?int?temp,humi;value humi_val,temp_val;?//定义两个共同体,一个用于湿度,一个用于温度 unsigned?char?error;?//用于检验是否出现错误unsigned?char?checksum;?//CRCinit12864lcd();display1();display2();display3();s_connectionreset();?//启动连接复位while(1){error=0;?//初始化error=0,即没有错误error+=s_measure((unsigned?char*)&temp_val.i,&checksum,TEMP);?//温度测量error+=s_measure((unsigned?char*)&humi_val.i,&checksum,HUMI);?//湿度测量if(error!=0) s_connectionreset();?////如果发生错误,系统复位else{humi_val.f=(float)humi_val.i;?//转换为浮点数temp_val.f=(float)temp_val.i;?//转换为浮点数calc_sth10(&humi_val.f,&temp_val.f);?//修正相对湿度及温度temp=temp_val.f*10;humi=humi_val.f*10;wendu[0]=temp/1000+'0';?//温度百位wendu[1]=temp%1000/100+'0';?//温度十位?wendu[2]=temp%100/10+'0';?//温度个位wendu[3]=0x2E;?//小数点wendu[4]=temp%10+'0';?//温度小数点后第一位displaywendu();shidu[0]=humi/1000+'0';?//湿度百位shidu[1]=humi%1000/100+'0';?//湿度十位shidu[2]=humi%100/10+'0';?//湿度个位shidu[3]=0x2E;?//小数点shidu[4]=humi%10+'0';?//湿度小数点后第一位displayshidu();}?delay(800);?//等待足够长的时间,以现行下一次转换}}相关手册资料及源码下载地址:。