温度测量及湿度检测

合集下载

温湿度计操作说明书

温湿度计操作说明书

温湿度计操作说明书操作说明书一、产品概述:温湿度计是一种用于测量室内温度和湿度的便携式仪器。

它配备了高精度的温湿度传感器,并具有简洁易用的操作界面,适用于各种室内环境,如家庭、办公室、实验室等。

二、产品外观及配件:1. 温湿度计主机:外观小巧玲珑,携带方便。

2. 用户手册:提供详细的操作指南和维护说明。

三、功能描述:1. 温度测量:温湿度计能够准确测量室内温度,温度显示范围为-10℃至50℃。

2. 湿度测量:温湿度计能够准确测量室内湿度,湿度显示范围为20%RH至95%RH。

3. 温度和湿度历史记录:温湿度计能够记录最近的温度和湿度数据,并提供历史记录查询功能,方便用户了解室内环境的变化趋势。

4. 温度和湿度报警功能:温湿度计能够设定温度和湿度的上下限,并在超出设定范围时发出报警提示,提醒用户调整室内环境。

5. 温湿度单位切换:温湿度计支持摄氏度和华氏度、相对湿度和绝对湿度单位的切换。

6. 温湿度数据保存和导出:用户可以将温湿度计记录的数据通过USB接口导出到计算机进行保存和分析。

四、操作步骤:1. 开机:将温湿度计主机的电源开关拨至“ON”位置,仪器自动开启并显示当前的温度和湿度数据。

2. 温度和湿度测量:- 温度测量:温湿度计主机默认以摄氏度单位进行温度测量。

在屏幕上方的温度显示区域可以即时获取当前的温度数值。

- 湿度测量:温湿度计主机默认以相对湿度单位进行湿度测量。

在屏幕下方的湿度显示区域可以即时获取当前的湿度数值。

3. 历史记录查询:- 按下“历史记录”按钮,进入历史记录查询界面。

- 使用方向键选择日期,通过“确定”按钮确认选择。

- 温湿度计将显示所选日期内的历史温度和湿度数据。

4. 温湿度报警设置:- 按下“设置”按钮,进入设置界面。

- 使用方向键选择“温度报警”或“湿度报警”选项,通过“确定”按钮确认选择。

- 设置温度或湿度的上下限数值,并通过“确定”按钮保存设置。

- 当温度或湿度超过设定范围时,温湿度计将发出报警提示。

温度测量及湿度检测

温度测量及湿度检测

智能测控系统课程大作业作业题目:环境温度测量及湿度检测学院名称:电气工程学院专业班级:测控1303班****:***学号: 0320完成时间:2016-6 ****:**目录1 课程大作业内容课题设计背景随着科技的发展对对检测技术要求的不断增高,迫使新材料的开发及寻找检测能力的不断提升;传感器的种类与测量精度以及测量稳定性也发生了巨大的变化,从最初的接触式测温到非接触式测温,膨胀式、热电阻式以及热电偶式测温,使温度检测领域得到了快速发展;再加上单片机技术的不断发展,测量检测变得更加方便;温湿度传感器除电阻式、电容式湿敏元件之外,还有电解质离子型湿敏元件、重量型湿敏元件利用感湿膜重量的变化来改变振荡频率、光强型湿敏元件、声表面波湿敏元件等;湿敏元件的线性度及抗污染性差,在检测环境湿度时,湿敏元件要长期暴露在待测环境中,很容易被污染而影响其测量精度及长期稳定性;在公共工作场所为了达到让人感到舒适的环境温度及湿度,往往需要对温度、湿度进行检测已达到最佳的效果;本课题以ds18b20温度传感器为温度检测器件,设计了一个对单点温度实时检测的单片机温度检测系统;以bsp_dht11湿度传感器为湿度检测器件;课题设计的意义1、该设计具有以下优点:制作简单,便于使用,价格便宜,稳定可靠,功耗低省电;2通过设计与制作可以达到这些目的:熟悉MSP430单片机技术的应用范围;掌握MSP430单片机编程的特点,提高实践操作能力能够在制作过程中发现并改正错误;达到一定的解决问题的能力;提高了动手的能力;设计目标使用ds18b20温度传感器测量环境温度并完成A/D转换;bsp_dht11湿度传感器测量湿度,把数据发送到MSP430中进行转换用LCD进行显示;2 系统设计方案系统设计方案的选择是决定设计作品完整度与精度的重要前提,一个好的作品的完成需要选择比较多种方案,从多种方案中选择最优方案,才能使设计作品精度更高;本次设计主要从实用性,稳定性,精度等级,可靠性,经济性等方面进行考虑;在完成本次课程设计要求、目的的情况下尽可能的准确和经济的条件下进行选择;温湿度传感器选型与论证本设计采用测量精度高,性能稳定可靠的ds18b20温度传感器作为温度检测器件和bsp_dht11温湿度传感器作为湿度监测器件;尽管bsp_dht11也能够检测出环境温度,但该传感器的测温范围窄,精度不够,和要求测量的环境较为苛刻;因此选用较为精确的ds18b20来测量温度;该传感器具有适应性强检测迅速,受环境影响较小;且对温度可以接触和非接触测量均可;而其他传感器价格和测量条件较为苛刻因此不建议选取;显示屏的选择与论证方案一:采用LCD1602显示;LCD1602是一种专门用于显示字母、数字、符号等点阵式LCD,能够同时显示16x02即32个字符;它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用;由于它不能显示汉字,而温度湿度的显示需要显示汉字,所以此方案不可行;方案二:采用LCD5110显示;LCD5110采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,支持多种串行通信协议,传输速率高达4Mbps,可全速写入显示数据,无等待时间;它由84x48的点阵LCD组成,可显示汉字和字符;LCD5110工作电压,正常显示时工作电流200uA以下,而且接口简单,体积小便于安装携带,速度快,价格便宜;所以采用此方案,显示模块选择用LCD 5110;但屏幕色彩较暗,在光线较强的地方无法清晰的辨别;方案三:采用TFT彩屏显示;TFT-LCD采用低压应用,低驱动电压,固体化使用安全性和可靠性提高;平板化,又轻薄,节省了大量原材料和使用空间;低功耗,它的功耗约为CRT显示器的十分之一,反射式TFT-LCD甚至只有CRT的百分之一左右,节省了大量的能源;高亮度,高对比度,高响应速度;无辐射、无闪烁,对使用者的健康无损害;适用范围宽,从-20℃到+50℃的温度范围内都可以正常使用,寿命超过3万小时,且价格便宜因此本次设计采用TFT-LCD作为显示屏;信号采集电路ds18b20是一种64 位只读存储器储存器件的唯一片序列号;高速暂存器含有两个字节的温度寄存器,这两个寄存器用来存储温度传感器输出的数据;除此之外,高速暂存器提供一个直接的温度报警值寄存器TH和TL,和一个字节的配置寄存器;配置寄存器允许用户将温度的精度设定为9,10,11 或12位;TH,TL 和配置寄存器是非易失性的可擦除程序寄存器EEPROM,所以存储的数据在器件掉电时不会消失;ds18b20通过达拉斯公司独有的单总线协议依靠一个单线端口通讯;当全部器件经由一个3态端口或者漏极开路端口DQ引脚在ds18b20上的情况下与总线连接的时候,控制线需要连接一个上拉电阻;在这个总线系统中,微控制器主器件依靠每个器件独有的64位片序列号辨认总线上的器件和记录总线上的器件地址;由于每个装置有一个独特的片序列码,总线可以连接的器件数目事实上是无限的;ds18b20的另一个功能是可以在没有外部电源供电的情况下工作;当总线处于高电平状态,DQ与上拉电阻连接通过单总线对器件供电;同时处于高电平状态的总线信号对内部电容Cpp充电,在总线处于低电平状态时,该电容提供能量给器件;这种提供能量的形式被称为“寄生电源”;作为替代选择,ds18b20同样可以通过VDD引脚连接外部电源供电;如下图s18b20的工作原理图用户单片机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发送响应信号,送出 40bit 的数据,并触发一次信采集;信号发送如图所示;数据时序图bsp_dht11时序原理图供电电源的选择本设计采用标准USB数据线5V为该设计供电;3 硬件设计硬件电路的设计是该系统重要的部分,是系统运行的前提,如果硬件设计的科学合理就能大大增加该系统功能的稳定性,可靠性;系统软件的设计是以硬件设计为前提,硬件设计是单片机高效工作的前提与重要保障,但是只有软件和硬件都正确,并且软件与硬件能够相互兼容、协调工作才能使系统工作达到我们想要的效果;本系统的硬件设计部分主要包括传感器电桥电路设计、运算放大电路的设计、单片机最小系统设计下面进行详细介绍;结构框图本设计采用均采用电源供电,温度传感器和温湿度传感器采集到数据后发送到单片机,单片机根据接收到的数据进行处理后再LCD屏幕上显示;如图位系统结构框图;图系统结构框图温度信号采集电路温度信号的获取关系到后续电路设计的难度,因此温度信号是获取是本设计的关键;ds18b20的简介:独特的单线接口仅需一个端口引脚进行通讯每个器件有唯一的64 位的序列号存储在内部存储器中简单的多点分布式测温应用无需外部器件可通过数据线供电;供电范围为到测温范围为-55~+125℃-67~+257℉在-10~+85℃范围内精确度为±5℃温度计分辨率可以被使用者选择为9~12位最多在750ms 内将温度转换为12 位数字用户可定义的非易失性温度报警设置报警搜索命令识别并标志超过程序限定温度温度报警条件的器件与ds1822兼容的软件应用包括温度控制、工业系统、消费品、温度计或任何热感测系统bsp_dht11的简介:DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出;数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位;实际使用时发现小数位都是0,这一步忽略对结果也不造成影响;单片机的最小电路图MSP430g2553简介:MSP430G2553性能参数DIP-20 工作电压范围:~;5种低功耗模式;16位的RISC 结构,指令周期;超低功耗运行模式-230μA;待机模式μA;关闭模式μA;可以在不到1μs的时间里超快速地从待机模式唤醒;基本时钟模块配置:具有四种校准频率并高达16MHz的内部频率;内部超低功耗LF振荡器;晶体;外部数字时钟源;两个16 位Timer_A,分别具有三个捕获比较寄存器;用于模拟信号比较功能或者斜率模数A/D转换的片载比较器;带内部基准、采样与保持以及自动扫描功能的10位200-ksps 模数A/D转换器;16KB闪存,512B的RAM;16个I/O口;这里给出了本次实验的最小电路图最小电路图4 软件设计程序模块本装置主要用到MSP430g2553单片机的IO功能程序设计中主要包括:1.单片机对温度传感器的数据接收模块;2.单片机对温湿度传感器的数据接收模块;3.对LCD屏的显示模块;软件设计流程图图软件流程图5调试本次设计最主要的工作之一就是对系统的调试部分,因为一个测量显示软件的主要功能就是显示正确的结果;开始显示的数据会因为采集的不准确和其他方面的误差导致接收到的数据不能正确表示想要的得到的数据,也可能会因为采集过程出现频繁的错误等问题;因此调试的工作极其重要,在温度传感器的采集过程中经过和标准的温度值的校准,测出了误差的范围和误差的大致规律最后在现实过程中消除了这种误差让温度测量更加准确稳定;在湿度传感器的调试过程中的工作更是复杂,湿度传感器可以返回温度和湿度值,但经过检测返回的温度值与实际的温度值偏差较大,而湿度的计算方法是在该温度条件下的空气中水含量的多少,这就使得测得的温度不准导致湿度不准确,最后查阅资料找到了湿度的测量计算方法;将返回的湿度值加权后再显示出来;这些工作很复杂湿度传感器的工作要求的时序很高就导致在时序配置上要花很大功夫一点不对就不能返回正确的结果屡屡出错;总之调试工作发杂多变;6总结本次设计的东西看起来很简单,好像没有什么技术含量;但当实际操作时想要完美的运行却遇到了重重的困难;因为MSP430是开始接触的单片机,之前也一直没有做过关于它的太多试验;修改驱动显示屏程序也花费了很长时间才将原来51单片机的程序移植过来,结果刷屏与显示与想要显示的位置不符,后来请教同学计算了LCD的显示位置才更改过来;接下来的湿度调试,因为开始找不到bsp_dht11温湿度传感器的原理图就在网上找了关于它的程序结果发现不能用不管怎么更改总是无法返回正确的数值,最后终于找到了关于该传感器的详细资料;发现该传感器的工作要求对时序的要求特别严格,最后精确计算了延时时间并且进行了延时时间的修改才能返回结果;但得到的湿度值与正常的湿度值存在较大的偏差,但没有标准湿度值可以进行比较于是选取了天气预报软件上面公布的湿度值进行校准;因为这次作业选用的是模块化的传感器且传感器对电压的要求不太严格~均可以,为了降低设计设计的复杂度就选取了给单片机供电的电压作为传感器和显示屏的供电电压;本次对单片机的实际制作成东西才感到动手的重要性,和一些看起来简单的东西也许不那么简单;在以后的学习中要增加动手的能力;参考文献1 杨家成.单片机原理与应用及C51程序设计.北京:清华大学出版社,20072 夏路易石宗义.Protel 99se电路原理图与电路板设计教程.北京:北京希望电子出版社,20043 李林功.单片机原理与应用——基于实例驱动和Proteus仿真.北京:科学出版社,20114 皮大能等. 单片机课程设计指导书. 北京:北京理工大学出版社,20105 MSP430单片机C语言应用程序设计实例精讲电子工业出版社附件程序主程序include<>include""include""include""include""include""void CLK_Init void ,0;LCD_ShowString70,68,""; //湿度显示}int main void{WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer unsigned int temp=0,temp1,temp2,temp3;//ucharRH_data_H = 0;P2DIR |= 0x1f;//设置P2为输出方式输出方式P2OUT |= 0X1f;BACK_COLOR=YELLOW;POINT_COLOR=BLUE; //背景色,画笔色CLK_Init;Lcd_Init;LCD_ClearYELLOW;DHT11_IO_Init;showjiemian;while1{temp=Read_Temp;temp1=temp/100;temp2=temp%100/10;temp3=temp%10;LCD_ShowNum56,42,temp1,2;//显示数字LCD_ShowNum80,42,temp2,1;//显示数字LCD_ShowNum88,42,temp3,1;//显示数字DHT11;LCD_ShowNum88,68, ucharRH_data_H,3;delay_ms1000;}}温度采集include<>include""include""void DS18B20_Init void//DS18B20初始化函数{DQ_OUT;DQ_L; //拉低总线delay_us480; //精确延时大于 480usDQ_H; //释放总线delay_us48;DQ_IN;DQ_OUT;DQ_H;delay_us360;}void DS18B20_WriteData u8 dat //写一个字节{u8 i;for i=0;i<8;i++//位计数值{DQ_L; //拉低总线产生写信号delay_us5;if dat&0x01 DQ_H;//此位数据是否为高,是高则将单总线拉高else DQ_L;//是低则将单总线拉低dat>>=1; //准备下一位数据的传送delay_us50;DQ_H; //释放总线,等待总线恢复delay_us8;}}u8 DS18B20_ReadData void//读一个字节{u8 i;u8 dat=0;for i=0;i<8;i++//位计数值{dat>>=1;//右移,准备接受新的数据位DQ_L; //拉低总线产生读信号delay_us5;DQ_H; //释放总线准备读数据delay_us5;//等待5微秒DQ_IN;//配置为输入,开始读取数据位_NOP;if READ_DQ//该位是否为高{dat|=0x80;//是就将此位置高}delay_us50;//等待50微秒DQ_OUT;DQ_H;delay_us5;}return dat;//将读到的一个字节返回}u16 Read_Temp void//读取温度{u16 temp_low,temp_high,d;float c;DS18B20_Init;//初始化,每次写命令都从初始化开始DS18B20_WriteData0xcc; //跳过ROM命令DS18B20_WriteData0x44; //温度转换命令DS18B20_Init;//初始化,每次写命令都从初始化开始DS18B20_WriteData0xcc; //跳过ROM命令DS18B20_WriteData0xbe; //temp_low=DS18B20_ReadData;//读温度低字节temp_high=DS18B20_ReadData; //读温度高字节temp_high<<=8;d=temp_high|temp_low;c=d;d=u16c100;return d; //返回16位变量}湿度采集include""include""include<>unsigned int uchartemp;unsigned charucharT_data_H,ucharT_data_L,ucharRH_data_H,ucharRH_data_L,ucharcheckda ta;unsigned charucharT_data_H_temp,ucharT_data_L_temp,ucharRH_data_H_temp,ucharRH_data _L_temp,ucharcheckdata_temp;void DHT11_IO_Init{P1SEL &= ~BIT0;}void COM void{unsigned char i;unsigned char ucharFLAG;uchartemp=0;P1DIR &= ~BIT0;for i=0;i<8;i++{ucharFLAG=2;while P1IN&0x01&&ucharFLAG++; delay_us30;uchartemp=uchartemp<<1;if P1IN&0x01{uchartemp |= 1;}ucharFLAG=1;while P1IN&0x01&&ucharFLAG++; }}void DHT11void{unsigned char ucharFLAG;P1DIR |= BIT0;//设置为输出口DATA_L;delay_ms20; //>18MSDATA_H;delay_us30;P1DIR &= ~BIT0;if P1IN&0x01{ucharFLAG=1;while P1IN&0x01&&ucharFLAG++;ucharFLAG=1;while P1IN&0x01&&ucharFLAG++;COM;ucharRH_data_H_temp=uchartemp;COM;ucharRH_data_L_temp=uchartemp;COM;ucharT_data_H_temp=uchartemp;COM;ucharT_data_L_temp=uchartemp;COM;ucharcheckdata_temp=uchartemp;uchartemp=ucharT_data_H_temp+ucharT_data_L_temp+ucharRH_data_H_temp+uc harRH_data_L_temp;if uchartemp==ucharcheckdata_temp{ucharRH_data_H=ucharRH_data_H_temp; ucharRH_data_L=ucharRH_data_L_temp; ucharT_data_H=ucharT_data_H_temp; ucharT_data_L=ucharT_data_L_temp; ucharcheckdata=ucharcheckdata_temp; }}else{ucharRH_data_H=12;ucharT_data_H=23;}//P2DIR |= BIT0;}显示include<>include""include""include""u16 BACK_COLOR, POINT_COLOR; //背景色,画笔色void LCD_Writ_Bus char da //串行数据写入{u8 i;for i=0; i<8; i++{if da & 0x80{SDA_H;}else{SDA_L;}SCK_L;da <<= 1;SCK_H;}}void LCD_WR_DATA8char da //发送数据-8位参数{AO_H;LCD_Writ_Busda;}void LCD_WR_DATA int da{AO_H;LCD_Writ_Busda>>8;LCD_Writ_Busda;}void LCD_WR_REG char da{AO_L;LCD_Writ_Busda;}void LCD_WR_REG_DATA int reg,int da{LCD_WR_REGreg;LCD_WR_DATAda;}void Address_set unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2{LCD_WR_REG0x2a;LCD_WR_DATA8x1>>8;LCD_WR_DATA8x1;LCD_WR_DATA8x2>>8;LCD_WR_DATA8x2;LCD_WR_REG0x2b;LCD_WR_DATA8y1>>8;LCD_WR_DATA8y1+32;LCD_WR_DATA8y2>>8;LCD_WR_DATA8y2+32;LCD_WR_REG0x2C;}void Lcd_Init void{//调用一次这些函数,免得编译的时候提示警告CS_H;/ifLCD_CS==0{LCD_WR_REG_DATA0,0;LCD_ShowString0,0," ";LCD_ShowNum0,0,0,0;LCD_Show2Num0,0,0,0;LCD_DrawPoint_big0,0;LCD_DrawRectangle0,0,0,0;Draw_Circle0,0,0;}/REST_H;delayms5;REST_L;delayms5;REST_H;CS_H;delayms5;CS_L; //打开片选使能LCD_WR_REG0x11; //Sleep outdelayms120; //Delay 120ms//------------------------------------ST7735S Frame Rate-----------------------------------------// LCD_WR_REG0xB1;LCD_WR_DATA80x05;LCD_WR_REG0x11;//Sleep exitdelayms 120;//ST7735R Frame RateLCD_WR_REG0xB1;LCD_WR_DATA80x01;LCD_WR_DATA80x2C; LCD_WR_DATA80x2D;LCD_WR_DATA80x01; LCD_WR_DATA80x2C; LCD_WR_DATA80x2D; LCD_WR_REG0xB3;LCD_WR_DATA80x01; LCD_WR_DATA80x2C; LCD_WR_DATA80x2D; LCD_WR_DATA80x01; LCD_WR_DATA80x2C; LCD_WR_DATA80x2D; LCD_WR_REG0xB4; //Column inversionLCD_WR_DATA80x07;//ST7735R Power SequenceLCD_WR_REG0xC0;LCD_WR_DATA80xA2; LCD_WR_DATA80x02; LCD_WR_DATA80x84; LCD_WR_REG0xC1; LCD_WR_DATA80xC5;LCD_WR_REG0xC2;LCD_WR_DATA80x0A; LCD_WR_DATA80x00;LCD_WR_REG0xC3;LCD_WR_DATA80x8A; LCD_WR_DATA80x2A;LCD_WR_REG0xC4;LCD_WR_DATA80x8A; LCD_WR_DATA80xEE;LCD_WR_REG0xC5; //VCOMLCD_WR_DATA80x0E;LCD_WR_REG0x36; //MX, MY, RGB modeLCD_WR_DATA80xC8;//ST7735R Gamma SequenceLCD_WR_DATA80x0f; LCD_WR_DATA80x1a;LCD_WR_DATA80x0f; LCD_WR_DATA80x18;LCD_WR_DATA80x2f; LCD_WR_DATA80x28;LCD_WR_DATA80x20; LCD_WR_DATA80x22;LCD_WR_DATA80x1f; LCD_WR_DATA80x1b;LCD_WR_DATA80x23; LCD_WR_DATA80x37; LCD_WR_DATA80x00; LCD_WR_DATA80x07;LCD_WR_DATA80x02; LCD_WR_DATA80x10;LCD_WR_REG0xe1;LCD_WR_DATA80x0f; LCD_WR_DATA80x1b;LCD_WR_DATA80x0f; LCD_WR_DATA80x17;LCD_WR_DATA80x33; LCD_WR_DATA80x2c;LCD_WR_DATA80x29; LCD_WR_DATA80x2e;LCD_WR_DATA80x30; LCD_WR_DATA80x30;LCD_WR_DATA80x39; LCD_WR_DATA80x3f;LCD_WR_DATA80x00; LCD_WR_DATA80x07;LCD_WR_DATA80x03; LCD_WR_DATA80x10;LCD_WR_REG0x2a;LCD_WR_DATA80x00;LCD_WR_DATA80x00;LCD_WR_DATA80x00;LCD_WR_DATA80x7f;LCD_WR_REG0x2b;LCD_WR_DATA80x00;LCD_WR_DATA80x00;LCD_WR_DATA80x00;LCD_WR_DATA80x7f;LCD_WR_REG0xF0; //Enable test commandLCD_WR_DATA80x01;LCD_WR_REG0xF6; //Disable ram power save mode LCD_WR_DATA80x00;LCD_WR_REG0x3A; //65k modeLCD_WR_DATA80x05;LCD_WR_REG0x29; //Display onLCD_WR_REG0x2C;}//清屏函数//Color:要清屏的填充色void LCD_Clear u16 Color{u8 VH,VL;u16 i,j;VH=Color>>8;VL=Color;Address_set0,0,LCD_W-1,160;for i=0;i<LCD_W;i++{for j=0;j<LCD_H;j++{LCD_WR_DATA8VH;LCD_WR_DATA8VL;}}}//在指定位置显示一个汉字3233大小//dcolor为内容颜色,gbcolor为背静颜色void showhanzi unsigned int x,unsigned int y,unsigned char index {unsigned char i,j;const unsigned char temp=hanzi;Address_setx,y,x+31,y+31; //设置区域temp+=index128;for j=0;j<128;j++{for i=0;i<8;i++{if temp&1<<i=0{LCD_WR_DATAPOINT_COLOR;}else{LCD_WR_DATABACK_COLOR;}}temp++;}}//在指定位置显示一个汉字1616大小//dcolor为内容颜色,gbcolor为背静颜色void showhanzi1unsigned int x,unsigned int y,unsigned char index,u16 p_color,u16 b_color{unsigned char i,j;const unsigned char temp=hanzi1;BACK_COLOR = b_color;POINT_COLOR = p_color;Address_setx,y,x+15,y+15; //设置区域temp+=index32;for j=0;j<32;j++{for i=0;i<8;i++{if temp&1<<i=0{LCD_WR_DATAPOINT_COLOR;}else{LCD_WR_DATABACK_COLOR;}}temp++;}}//画点//POINT_COLOR:此点的颜色void LCD_DrawPoint u16 x,u16 y{Address_setx,y,x,y;//设置光标位置LCD_WR_DATAPOINT_COLOR;}//画一个大点//POINT_COLOR:此点的颜色void LCD_DrawPoint_big u16 x,u16 y{LCD_Fillx-4,y-4,x+4,y+4,POINT_COLOR;}//在指定区域内填充指定颜色//区域大小:// xend-xstayend-ystavoid LCD_Fill u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color {u16 i,j;Address_setxsta,ysta,xend,yend; //设置光标位置for i=ysta;i<=yend;i++{for j=xsta;j<=xend;j++LCD_WR_DATAcolor;//设置光标位置}}//画线//x1,y1:起点坐标//x2,y2:终点坐标void LCD_DrawLine u16 x1, u16 y1, u16 x2, u16 y2{u16 t;int xerr=0,yerr=0,delta_x,delta_y,distance;int incx,incy,uRow,uCol;delta_x=x2-x1; //计算坐标增量delta_y=y2-y1;uRow=x1;uCol=y1;if delta_x>0incx=1; //设置单步方向else if delta_x==0incx=0;//垂直线else {incx=-1;delta_x=-delta_x;}if delta_y>0incy=1;else if delta_y==0incy=0;//水平线else{incy=-1;delta_y=-delta_y;}if delta_x>delta_ydistance=delta_x; //选取基本增量坐标轴else distance=delta_y;for t=0;t<=distance+1;t++ //画线输出{LCD_DrawPointuRow,uCol;//画点xerr+=delta_x ;yerr+=delta_y ;if xerr>distance{xerr-=distance;uRow+=incx;}if yerr>distance{yerr-=distance;uCol+=incy;}}}//画矩形void LCD_DrawRectangle u16 x1, u16 y1, u16 x2, u16 y2 {LCD_DrawLinex1,y1,x2,y1;LCD_DrawLinex1,y1,x1,y2;LCD_DrawLinex1,y2,x2,y2;LCD_DrawLinex2,y1,x2,y2;}//在指定位置画一个指定大小的圆//x,y:中心点//r :半径void Draw_Circle u16 x0,u16 y0,u8 r{int a,b;int di;a=0;b=r;di=3-r<<1; //判断下个点位置的标志while a<=b{LCD_DrawPointx0-b,y0-a; //3LCD_DrawPointx0+b,y0-a; //0LCD_DrawPointx0-a,y0+b; //1LCD_DrawPointx0-b,y0-a; //7LCD_DrawPointx0-a,y0-b; //2LCD_DrawPointx0+b,y0+a; //4LCD_DrawPointx0+a,y0-b; //5LCD_DrawPointx0+a,y0+b; //6LCD_DrawPointx0-b,y0+a;a++;//使用Bresenham算法画圆if di<0di +=4a+6;else{di+=10+4a-b;b--;}LCD_DrawPointx0+a,y0+b;}}//在指定位置显示一个字符//num:要显示的字符:" "--->"~"//mode:叠加方式1还是非叠加方式0//在指定位置显示一个字符//num:要显示的字符:" "--->"~"//mode:叠加方式1还是非叠加方式0void LCD_ShowChar u16 x,u16 y,u8 num,u8 mode{u8 temp;u8 pos,t;u16 x0=x;u16 colortemp=POINT_COLOR;if x>LCD_W-16||y>LCD_H-16return;//设置窗口num=num-' ';//得到偏移后的值Address_setx,y,x+8-1,y+16-1; //设置光标位置if mode //非叠加方式{for pos=0;pos<16;pos++{temp=asc2_1608u16num16+pos; //调用1608字体for t=0;t<8;t++{if temp&0x01POINT_COLOR=colortemp;else POINT_COLOR=BACK_COLOR;LCD_WR_DATAPOINT_COLOR;temp>>=1;x++;}x=x0;y++;}}else//叠加方式{for pos=0;pos<16;pos++{temp=asc2_1608u16num16+pos; //调用1608字体for t=0;t<8;t++{if temp&0x01LCD_DrawPointx+t,y+pos;//画一个点 temp>>=1;}}}POINT_COLOR=colortemp;}//m^n函数u32 mypow u8 m,u8 n{u32 result=1;while n--result=m;return result;}//显示2个数字//x,y :起点坐标//len :数字的位数//color:颜色//num:数值void LCD_ShowNum u16 x,u16 y,u32 num,u8 len{u8 t,temp;u8 enshow=0;num=u16num;for t=0;t<len;t++{temp=num/mypow10,len-t-1%10;if enshow==0&&t<len-1{if temp==0{LCD_ShowCharx+8t,y,' ',0;continue;}else enshow=1;}LCD_ShowCharx+8t,y,temp+48,0;}}//显示2个数字//x,y:起点坐标//num:数值0~99;void LCD_Show2Num u16 x,u16 y,u16 num,u8 len {u8 t,temp;for t=0;t<len;t++{temp=num/mypow10,len-t-1%10;LCD_ShowCharx+8t,y,temp+'0',0;}}//显示字符串//x,y:起点坐标//p:字符串起始地址//用16字体void LCD_ShowString u16 x,u16 y,const u8 p {while p='\0'{if x>LCD_W-16{x=0;y+=16;}if y>LCD_H-16{y=x=0;}LCD_ShowCharx,y,p,0;x+=8;p++;}}void showimage//显示4040图片{int i,j,k;for k=2;k<3;k++{for j=0;j<3;j++{Address_set40j,40k,40j+39,40k+39; //坐标设置for i=0;i<1600;i++{LCD_WR_DATA8imagei2+1; //发送颜色数据LCD_WR_DATA8imagei2;}}。

温湿度测量实验报告

温湿度测量实验报告

温湿度测量实验报告引言温湿度是日常生活中非常重要的气象参数,对于环境舒适度、农业生产、工业生产等都有着重要的影响。

因此,准确测量温湿度成为了科研和工程领域的重要任务。

本实验旨在通过使用一种温湿度传感器来测量环境的温湿度,并分析其测量结果的准确性。

实验装置1.Arduino开发板2.DHT11温湿度传感器3.杜邦线若干4.计算机实验步骤1.连接电路:将DHT11传感器通过杜邦线连接到Arduino开发板上。

确保连接正确且稳固。

2.编写代码:使用Arduino开发环境编写代码,将DHT11传感器与Arduino开发板进行通信。

在代码中实现温湿度测量的功能。

3.上传代码:将编写好的代码上传到Arduino开发板上,确保代码能够正确运行。

4.测试测量:将Arduino开发板连接到计算机,并打开串口监视器。

通过串口监视器可以实时查看DHT11传感器测量得到的温湿度值。

5.对比验证:测量环境中的温湿度,并使用其他准确的温湿度测量仪器进行对比,验证DHT11传感器的测量准确性。

6.记录测量结果:将DHT11传感器测量得到的温湿度值以及其他准确测量仪器的测量结果记录下来,方便后续分析和比较。

7.数据分析:将DHT11传感器测量得到的温湿度值与其他准确测量仪器的测量结果进行比较和分析,探究DHT11传感器的测量误差范围和稳定性。

8.结果讨论:根据数据分析的结果,讨论DHT11传感器的测量准确性以及在实际应用中的可靠性。

9.结论总结:总结实验结果,提出改进传感器测量准确性的建议,并展望未来温湿度测量技术的发展方向。

结果与讨论通过对DHT11传感器的实际测量以及与其他准确测量仪器的对比验证,我们得到了以下结果和结论: 1. DHT11传感器在一定范围内的温湿度测量结果与其他准确测量仪器基本吻合,具有较高的测量准确性。

2. 随着测量温度和湿度的增加,DHT11传感器的测量误差会逐渐增大,尤其是在极端的高温高湿环境中。

温度与湿度的测量

温度与湿度的测量

温度与湿度的测量引言:温度和湿度是我们日常生活中常常遇到的两个重要的气象参数。

无论是家庭生活还是工业生产,都需要对温度和湿度进行准确测量和控制。

本文将介绍温度和湿度的测量方法,包括传统的温度计和湿度计,以及现代的电子测量仪器。

一、温度的测量1. 传统温度计最常见的传统温度计是水银温度计。

它利用水银在温度变化时的膨胀和收缩来测量温度。

水银温度计具有精度高、响应速度快等特点,但也存在易破损、对环境污染等问题。

随着环境保护意识的提高,传统水银温度计的使用逐渐减少。

2. 现代电子温度计现代电子温度计通过利用温度与电阻之间的关系或温度与电压之间的关系来测量温度。

最常见的电子温度计是PT100电阻温度计和热电偶温度计。

PT100电阻温度计是根据铂电阻随温度变化而改变电阻值来测量温度的。

热电偶温度计则是利用两种不同材料的接触产生的热电效应来测量温度。

电子温度计具有精度高、抗干扰能力强等优点,广泛应用于工业自动化控制、医疗环境监测等领域。

二、湿度的测量1. 传统湿度计最常见的传统湿度计是湿度表。

湿度表通过测量空气中的水蒸气在一定温度下的饱和量来去测量湿度。

它包括干湿度计和毛发湿度计两种形式。

干湿度计通过测量湿度与干湿度计间的冷凝传热来测量湿度。

毛发湿度计则是利用纤维毛发的伸缩变化来测量空气的湿度。

传统湿度计具有结构简单、造价低等优点,但也存在响应慢、精度有限等局限。

2. 现代电子湿度计现代电子湿度计通过测量湿度对介质电容或电阻的影响来测量湿度。

最常见的是电容式湿度计。

电容式湿度计通过测量介质相对湿度对电容的影响来测量湿度。

另外,还有电阻式湿度计、电导式湿度计等。

电子湿度计具有响应快、精度高等优点,广泛应用于室内环境监测、农业生产等领域。

三、温湿度传感器为了更方便、更准确地测量温度和湿度,现代工程上常采用温湿度传感器。

温湿度传感器集温度和湿度测量于一体,输出数字信号,便于与计算机、仪器等设备连接。

常用的温湿度传感器有数字式温湿度传感器和模拟式温湿度传感器。

室内温度湿度检测规范

室内温度湿度检测规范

室内温度湿度检测规范简介本文档旨在规范室内温度湿度的检测方法和要求,以确保室内环境的舒适和安全。

目标本文档的目标是为室内温度湿度检测提供统一的标准和指导,以便在不同场所和情况下进行准确和可靠的测量。

检测工具室内温度湿度检测应使用经过校准的合适工具,例如温湿度计或传感器。

检测工具应符合国家标准,并定期进行校准和维护,以确保准确度和可靠性。

检测位置室内温度湿度的检测应选择合适的位置,以尽可能准确地反映整个室内环境。

应避免安装在受到热源、湿度源或遮挡物影响的位置。

多个检测点的安装可提供更全面的数据。

检测频率根据需要和情况的不同,室内温度湿度的检测频率可以有所不同。

通常建议进行定期检测,特别是在新建或装修后的室内环境调整阶段。

数据记录和分析检测得到的温度湿度数据应记录并保存,以备后续分析和参考。

数据记录应包括检测时间、位置、检测工具型号和校准情况等信息。

通过对数据进行分析,可以发现潜在的温湿度问题,并采取相应的措施进行调整和改进。

报告和建议根据检测和分析结果,相应的报告和建议应提供给相关责任人和管理者。

报告应包括检测数据、问题描述、原因分析以及针对问题的相应建议和措施。

建议的实施应有追踪和评估机制,以保证问题的解决和效果的持续。

质量控制室内温度湿度检测应建立质量控制体系,包括校准和维护程序、记录和分析要求,以及相关人员的培训和资质要求等。

质量控制措施的实施可以确保检测结果的准确性和可靠性。

法律责任室内温度湿度检测的相关工作应遵守法律法规和相关标准。

相关人员应具备相应的专业知识和资质。

检测结果的准确性和合法性对于室内环境的管理和安全至关重要。

结论本文档所述的室内温度湿度检测规范是确保室内环境舒适和安全的重要措施。

通过遵循本规范,可以实现准确、可靠的温湿度检测,并及时采取相应的措施优化室内环境。

混凝土中温度和湿度检测方法

混凝土中温度和湿度检测方法

混凝土中温度和湿度检测方法一、引言混凝土在建筑和土木工程中广泛应用。

为确保混凝土结构的质量和可靠性,需要对混凝土的温度和湿度进行检测。

本篇文章将介绍混凝土中温度和湿度检测的方法。

二、混凝土中温度检测方法1. 探针式温度计法探针式温度计法是一种常用的混凝土中温度检测方法。

该方法需要在混凝土中插入一根温度计探针,通过读取探针上的温度值来确定混凝土的温度。

探针式温度计的使用步骤如下:1)在混凝土浇筑前,将探针插入到混凝土模具中,并固定好。

2)待混凝土浇筑完成后,将温度计接入数据采集系统,并记录温度值。

探针式温度计的优点是测量精度高,测量结果准确可靠。

但是,该方法需要在混凝土浇筑前就插入温度计探针,因此需要提前规划和安排。

2. 红外线温度计法红外线温度计法是一种非接触式的混凝土中温度检测方法。

该方法通过使用红外线温度计来测量混凝土表面的温度。

红外线温度计的使用步骤如下:1)将红外线温度计对准混凝土表面。

2)按下测量按钮,等待温度计显示温度值。

红外线温度计的优点是操作简单方便,不需要在混凝土中插入任何探针。

但是,该方法只能测量混凝土表面的温度,无法测量混凝土内部的温度。

三、混凝土中湿度检测方法1. 湿度计法湿度计法是一种常用的混凝土中湿度检测方法。

该方法通过使用湿度计来测量混凝土中的湿度。

湿度计的使用步骤如下:1)将湿度计放置在混凝土表面。

2)等待一段时间后,读取湿度计上的湿度值。

湿度计法的优点是操作简单方便,可以在混凝土表面快速测量湿度值。

但是,该方法无法测量混凝土内部的湿度值。

2. 电阻率计法电阻率计法是一种基于混凝土电阻率变化来测量混凝土中湿度的方法。

该方法需要在混凝土中插入一根电极,并通过电阻率计来测量混凝土的电阻率。

电阻率计法的使用步骤如下:1)在混凝土中插入电极,并固定好。

2)将电阻率计接入电极,并读取电阻率值。

电阻率计法的优点是可以测量混凝土内部的湿度值,测量结果较为准确。

但是,该方法需要在混凝土中插入电极,因此需要提前规划和安排。

温湿度检测报告

温湿度检测报告

温湿度检测报告1. 引言本报告旨在介绍温湿度检测的原理、设备以及相关应用。

温湿度检测在各个领域都具有重要意义,尤其是在气象、农业、建筑以及工业生产等领域。

通过精确测量和监控环境的温湿度,我们能够更好地了解和改善所处环境的条件。

2. 检测原理温湿度检测是通过测量和记录环境中的温度和湿度来实现的。

温度是物体分子热运动的表现,常用单位为摄氏度(℃)或华氏度(℉)。

湿度是空气中水蒸汽含量的度量,通常以相对湿度(RH)百分比表示。

传统的温湿度检测仪器使用温湿度传感器,这些传感器可以根据物理或化学效应来测量温度和湿度。

常见的温度传感器有热电偶和电阻温度计,而湿度传感器则可使用电容、电阻或电化学方法来测量相对湿度。

3. 设备和仪器温湿度检测仪器通常包括以下部分:3.1 温度传感器温度传感器是测量和记录环境温度的关键组件。

常见的温度传感器包括:•热电偶:基于两种不同金属之间的热电效应,将温度转换为电压信号。

•热敏电阻:基于电阻与温度之间的关系,通过测量电阻值来计算温度。

•红外线传感器:利用物体发出的红外辐射来测量温度。

3.2 湿度传感器湿度传感器用于测量环境中的相对湿度。

常见的湿度传感器包括:•电容传感器:测量空气中水分含量对电容值的影响。

•电阻传感器:基于湿度对材料电阻的影响,将湿度转换为电阻值。

3.3 数据记录器数据记录器用于记录温湿度检测仪器所测得的数据。

记录器可采用内置储存器或外部存储介质,如SD卡或电脑连接接口。

记录仪通常具备时间戳和数据分析功能,方便用户对数据进行分析和处理。

4. 应用领域温湿度检测在各个领域都有广泛的应用,以下是其中一些常见的应用领域:4.1 气象学气象学需要准确测量和记录大气的温度和湿度。

这些数据对于预测天气趋势、气候研究以及天气预报至关重要。

4.2 农业农业生产对环境温湿度有严格的要求。

适宜的温湿度条件有助于作物生长和动物饲养。

温湿度检测可用于农田、温室和畜牧场等环境中,帮助农民监控和调节环境条件。

空气温度、湿度及风速的测量实验心得

空气温度、湿度及风速的测量实验心得

空气温度、湿度及风速的测量实验心得“温度计、风速计的测量实验”是一项对我们实验室很有用处的实验,它能够帮助我们了解空气中的湿度和温度。

通过观察不同天气下湿度的变化以及气流方向来研究影响空气质量的因素。

也可通过测量和比较不同季节里气流的强弱等方面获得更多的信息。

同时还要求我们学会制作风速计。

此次实验的内容主要包括:空气温度、湿度及风速的测量。

进行这个试验之前首先要准备好相关的仪器。

其中最重要的两样东西就是温度计与风速计。

它们各自都应该符合温度与湿度表所规定的条件。

首先温度计必须在量程范围内才可使用;接着风速计也需要经过校正后才可使用。

实验过程:①将温度计与风速计放在试验台上,再将温度计的红色玻璃泡浸入水中。

②按照课本上提供的图例安装好温度计和风速计并调整好零点和量程。

③分别记录温度值和风速值(注意数据要精确到0.1℃),如果有可能则可以拍摄成照片留存。

④关闭电源后,等待半小时后再读取一次温度值,然后根据日常生活习惯决定是否再继续进行观察。

⑤再观察几天后再从数据中推算出大致日期并写下总结。

实验心得:虽然做完这个试验觉得十分辛苦,但事实证明付出与收获往往成正比,从刚开始的毫无头绪到最终发现问题所在,从开始的三言两语到最终写下完美的报告,这些都离不开老师耐心细致地讲解与指导。

所以说,每当你感受到压力山大或者不知道怎么办的时候,请想起那句名言——凡事皆有可能!试验过程:①将温度计与风速计放在试验台上,再将温度计的红色玻璃泡浸入水中。

②按照课本上提供的图例安装好温度计和风速计并调整好零点和量程。

③分别记录温度值和风速值(注意数据要精确到0.1℃),如果有可能则可以拍摄成照片留存。

④关闭电源后,等待半小时后再读取一次温度值,然后根据日常生活习惯决定是否再继续进行观察。

⑤再观察几天后再从数据中推算出大致日期并写下总结。

实验心得:虽然做完这个试验觉得十分辛苦,但事实证明付出与收获往往成正比,从刚开始的毫无头绪到最终发现问题所在,从开始的三言两语到最终写下完美的报告,这些都离不开老师耐心细致地讲解与指导。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能测控系统课程大作业作业题目:环境温度测量及湿度检测学院名称:电气工程学院专业班级:测控1303班学生姓名:杜栋梁学号: 201323030320 完成时间:2016-6任课教师:王威目录1 课程大作业内容 (3)1.1 课题设计背景 (3)1.2 课题设计的意义 (3)1.3 设计目标 (3)2 系统设计方案 (4)2.1 温湿度传感器选型与论证 (4)2.2 显示屏的选择与论证 (4)2.2 信号采集电路 (5)2.3 供电电源的选择 (6)3 硬件设计 (6)3.1 结构框图 (7)3.2 温度信号采集电路 (7)3.2.1传感器简介 (8)3.3单片机的最小电路图 (9)4 软件设计 (10)4.1 程序模块 (10)4.2 软件设计流程图 (10)5调试 (11)6总结 (11)参考文献 (12)附件 (12)程序 (12)1 课程大作业内容1.1 课题设计背景随着科技的发展对对检测技术要求的不断增高,迫使新材料的开发及寻找检测能力的不断提升。

传感器的种类与测量精度以及测量稳定性也发生了巨大的变化,从最初的接触式测温到非接触式测温,膨胀式、热电阻式以及热电偶式测温,使温度检测领域得到了快速发展。

再加上单片机技术的不断发展,测量检测变得更加方便。

温湿度传感器除电阻式、电容式湿敏元件之外,还有电解质离子型湿敏元件、重量型湿敏元件(利用感湿膜重量的变化来改变振荡频率)、光强型湿敏元件、声表面波湿敏元件等。

湿敏元件的线性度及抗污染性差,在检测环境湿度时,湿敏元件要长期暴露在待测环境中,很容易被污染而影响其测量精度及长期稳定性。

在公共工作场所为了达到让人感到舒适的环境温度及湿度,往往需要对温度、湿度进行检测已达到最佳的效果。

本课题以ds18b20温度传感器为温度检测器件,设计了一个对单点温度实时检测的单片机温度检测系统。

以bsp_dht11湿度传感器为湿度检测器件。

1.2 课题设计的意义(1)、该设计具有以下优点:制作简单,便于使用,价格便宜,稳定可靠,功耗低省电。

(2)通过设计与制作可以达到这些目的:熟悉MSP430单片机技术的应用范围;掌握MSP430单片机编程的特点,提高实践操作能力能够在制作过程中发现并改正错误。

达到一定的解决问题的能力。

提高了动手的能力。

1.3 设计目标使用ds18b20温度传感器测量环境温度并完成A/D转换。

bsp_dht11湿度传感器测量湿度,把数据发送到MSP430中进行转换用LCD进行显示。

2 系统设计方案系统设计方案的选择是决定设计作品完整度与精度的重要前提,一个好的作品的完成需要选择比较多种方案,从多种方案中选择最优方案,才能使设计作品精度更高。

本次设计主要从实用性,稳定性,精度等级,可靠性,经济性等方面进行考虑。

在完成本次课程设计要求、目的的情况下尽可能的准确和经济的条件下进行选择。

2.1 温湿度传感器选型与论证本设计采用测量精度高,性能稳定可靠的ds18b20温度传感器作为温度检测器件和bsp_dht11温湿度传感器作为湿度监测器件。

尽管bsp_dht11也能够检测出环境温度,但该传感器的测温范围窄,精度不够,和要求测量的环境较为苛刻。

因此选用较为精确的ds18b20来测量温度。

该传感器具有适应性强检测迅速,受环境影响较小。

且对温度可以接触和非接触测量均可。

而其他传感器价格和测量条件较为苛刻因此不建议选取。

2.2 显示屏的选择与论证方案一:采用LCD1602显示。

LCD1602是一种专门用于显示字母、数字、符号等点阵式LCD,能够同时显示16x02即32个字符。

它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。

由于它不能显示汉字,而温度湿度的显示需要显示汉字,所以此方案不可行。

方案二:采用LCD5110显示。

LCD5110采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,支持多种串行通信协议,传输速率高达4Mbps,可全速写入显示数据,无等待时间。

它由84x48的点阵LCD组成,可显示汉字和字符。

LCD5110工作电压3.3V,正常显示时工作电流200uA以下,而且接口简单,体积小便于安装携带,速度快,价格便宜。

所以采用此方案,显示模块选择用LCD 5110。

但屏幕色彩较暗,在光线较强的地方无法清晰的辨别。

方案三:采用TFT彩屏显示。

TFT-LCD采用低压应用,低驱动电压,固体化使用安全性和可靠性提高;平板化,又轻薄,节省了大量原材料和使用空间;低功耗,它的功耗约为CRT显示器的十分之一,反射式TFT-LCD甚至只有CRT的百分之一左右,节省了大量的能源;高亮度,高对比度,高响应速度。

无辐射、无闪烁,对使用者的健康无损害。

适用范围宽,从-20℃到+50℃的温度范围内都可以正常使用,寿命超过3万小时,且价格便宜因此本次设计采用TFT-LCD作为显示屏。

2.2 信号采集电路ds18b20是一种64 位只读存储器储存器件的唯一片序列号。

高速暂存器含有两个字节的温度寄存器,这两个寄存器用来存储温度传感器输出的数据。

除此之外,高速暂存器提供一个直接的温度报警值寄存器(TH和TL),和一个字节的配置寄存器。

配置寄存器允许用户将温度的精度设定为9,10,11 或12 位。

TH,TL 和配置寄存器是非易失性的可擦除程序寄存器(EEPROM),所以存储的数据在器件掉电时不会消失。

ds18b20通过达拉斯公司独有的单总线协议依靠一个单线端口通讯。

当全部器件经由一个3态端口或者漏极开路端口(DQ引脚在ds18b20上的情况下)与总线连接的时候,控制线需要连接一个上拉电阻。

在这个总线系统中,微控制器(主器件)依靠每个器件独有的64位片序列号辨认总线上的器件和记录总线上的器件地址。

由于每个装置有一个独特的片序列码,总线可以连接的器件数目事实上是无限的。

ds18b20的另一个功能是可以在没有外部电源供电的情况下工作。

当总线处于高电平状态,DQ与上拉电阻连接通过单总线对器件供电。

同时处于高电平状态的总线信号对内部电容(Cpp)充电,在总线处于低电平状态时,该电容提供能量给器件。

这种提供能量的形式被称为“寄生电源”。

作为替代选择,ds18b20同样可以通过VDD引脚连接外部电源供电。

如下图2.1s18b20的工作原理图2.1用户单片机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发送响应信号,送出 40bit 的数据,并触发一次信采集。

信号发送如图所示。

数据时序图2.2bsp_dht11时序原理图2.22.3 供电电源的选择本设计采用标准USB数据线5V为该设计供电。

3 硬件设计硬件电路的设计是该系统重要的部分,是系统运行的前提,如果硬件设计的科学合理就能大大增加该系统功能的稳定性,可靠性。

系统软件的设计是以硬件设计为前提,硬件设计是单片机高效工作的前提与重要保障,但是只有软件和硬件都正确,并且软件与硬件能够相互兼容、协调工作才能使系统工作达到我们想要的效果。

本系统的硬件设计部分主要包括传感器电桥电路设计、运算放大电路的设计、单片机最小系统设计下面进行详细介绍。

3.1 结构框图本设计采用均采用3.3V电源供电,温度传感器和温湿度传感器采集到数据后发送到单片机,单片机根据接收到的数据进行处理后再LCD屏幕上显示。

如图3.1位系统结构框图。

图3.1 系统结构框图3.2 温度信号采集电路温度信号的获取关系到后续电路设计的难度,因此温度信号是获取是本设计的关键。

3.2.1传感器简介ds18b20的简介:独特的单线接口仅需一个端口引脚进行通讯每个器件有唯一的64位的序列号存储在内部存储器中简单的多点分布式测温应用无需外部器件可通过数据线供电。

供电范围为3.0V到5.5V测温范围为-55~+125℃(-67~+257℉)在-10~+85℃范围内精确度为±5℃温度计分辨率可以被使用者选择为9~12位最多在750ms 内将温度转换为12 位数字用户可定义的非易失性温度报警设置报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件与ds1822兼容的软件应用包括温度控制、工业系统、消费品、温度计或任何热感测系统bsp_dht11的简介:DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。

数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。

实际使用时发现小数位都是0,这一步忽略对结果也不造成影响。

3.3单片机的最小电路图MSP430g2553简介:MSP430G2553性能参数(DIP-20) 工作电压范围:1.8~3.6V。

5种低功耗模式。

16位的RISC结构,62.5ns指令周期。

超低功耗运行模式-230µA;待机模式-0.5µA;关闭模式-0.1µA;可以在不到1µs的时间里超快速地从待机模式唤醒。

基本时钟模块配置:具有四种校准频率并高达16MHz的内部频率;内部超低功耗LF振荡器;32.768KHz晶体;外部数字时钟源。

两个16 位Timer_A,分别具有三个捕获比较寄存器。

用于模拟信号比较功能或者斜率模数(A/D)转换的片载比较器。

带内部基准、采样与保持以及自动扫描功能的10位200-ksps 模数(A/D)转换器。

16KB闪存,512B的RAM。

16个I/O口。

这里给出了本次实验的最小电路图3.1最小电路图3.14 软件设计4.1 程序模块本装置主要用到MSP430g2553单片机的IO功能程序设计中主要包括:1.单片机对温度传感器的数据接收模块。

2.单片机对温湿度传感器的数据接收模块。

3.对LCD屏的显示模块。

4.2 软件设计流程图图4.1软件流程图5调试本次设计最主要的工作之一就是对系统的调试部分,因为一个测量显示软件的主要功能就是显示正确的结果。

开始显示的数据会因为采集的不准确和其他方面的误差导致接收到的数据不能正确表示想要的得到的数据,也可能会因为采集过程出现频繁的错误等问题。

因此调试的工作极其重要,在温度传感器的采集过程中经过和标准的温度值的校准,测出了误差的范围和误差的大致规律最后在现实过程中消除了这种误差让温度测量更加准确稳定。

在湿度传感器的调试过程中的工作更是复杂,湿度传感器可以返回温度和湿度值,但经过检测返回的温度值与实际的温度值偏差较大,而湿度的计算方法是在该温度条件下的空气中水含量的多少,这就使得测得的温度不准导致湿度不准确,最后查阅资料找到了湿度的测量计算方法。

相关文档
最新文档