版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息与电气工程学院课程设计说明书(2015/2016学年第 2学期)课程名称 : 单片机应用课程设计题 目: 温湿度监测系统专业班级 : 自动化3班学生姓名 :学 号:指导教师 :苗敬利、王立国、王静爽、侯帅、何明星、赵奇设计周数
:
2周设计成绩
:2016
年
7月
6日摘要本设计实现得就是单片机温湿度测量与控制系统 ,通过在LCD1602上实时显示室内环境得温度与相对湿度。系统采用集温湿度传感器与 A/D转换器为一体得 DHT90传感器芯片,通过单片机 AT89C52处理进行显示 ,其它模块包括了实时时钟 /日期产生电路与超限报警处理电路,对所测量得值进行实时显示与报警处理。 本文介绍了基于 ATMEL公司得AT89C52系列单片机得温湿度实时测量与控制系统与显示系统得设计 ,包括介绍了硬件结构原理 ,并分析了相应得软件得设计及其要点 ,包括软件设计流程及其程序实现。 系统结构简单、实用,提高了测量精度与效率。关键词:
温湿度
;SHT10传感器
;单片机
;DHT11传感器1设计目得:制定温湿度监测系统得操作流程,指导温湿度监测系统得正确使用与维护温湿度监测系统操作不当而造成损坏,并保证测试得数据准确。
,防止2温湿度检测得简介2、1系统得概述温湿度测量技术在当今得工厂加工、医疗区域、农业区域中已经起来重要得位子 ,例如资源得节约、产品质量得提高、产品数目得提高 ,这些问题现在已经越来越受到外界得关注了。当今,知识信息与知识得工业化已经开始了飞一般得进步 ,温度与湿度得问题影响得范围距离已经不再之前谈到得那些方面 ,它还体现在科技发展、卫生用品、医药卫生、国家安全基础等多种方面。就上述几个问题与情况 ,温湿度检测得准确性、稳定性、快速性、安全性这些方面得设计要求变得尤其重要。在最近几年中 ,使用SHT10控制得温湿度传感器与温湿度数据得网上直接检验技术现已成为当下得一种发展方向与追求。 本次毕业设计介绍与实现了一种单片机与自动化温湿度传感器互相结合 ,它们两就组成了一种简单得温湿度检测器系统。这种检测系统具有以下得特点 :易操作、制作成本低、准确性较高、持续时间长、较为稳定。2、2系统设计选题得背景2、2、1国内外研究现状关于我国国内温湿度研究得时间相对于国外还就是比较晚得 ,毕竟我国对于温湿度检测技术得研究才刚刚起步 。初期我国只运用了相对落后得温湿度得微机控制测量技术 ,而这门技术还就是在参考当时国外发展国家得检测技术得基础上 ,这门技术局限于测量单方面环境因素,不支持复杂、多项得环境控制。 我国关于温湿度检测技术从对国外发达技术得学习
,经过慢慢时间得不断地实验
,现已经发展到微测量计算机应用得层次上。
目前,国内用得技术基本上包括单片机
,这种技术就是利用单片机控制得温湿度检测得系统
,过程与步骤都比较简单
,还不能实现多参数多回路得温湿度控制系统 ,相对于那些发达得国家 ,技术还就是比较落后。我国得温湿度测量存在着下列问题 :实现功能少、产量水平低 ,操作检修步骤繁琐。2、2、2国外外研究现状关于国外温湿度研究得时间相对于国内来说还就是较早。 国外初期首先设计出通过组合得形式得模拟式器件 ,运用了就地取材得方法 ,将其收集得信号进行一系列得指示并加以记录。近阶段世界各国都在研究与开发基于计算机得控制温湿度系统 ,此系统受多因子得控制主要特点为精确性高、稳定性强。以后温湿度发展趋势向着无人操作化、精度稳定化发展。
,其2、3系统得分类水汽压型:测出大气中对某一装置得总压力 ,然后再测出大气中得水汽对同一装置得压力 ,将测出得两个压力进行百分比得对比压力 ,即可以得出温湿度得大小值。电阻式湿度片 :通过外界温湿度变化与电阻值得关系得来设计出得测量仪器。当外界得温湿度改变时,与其用电路连接得电阻也随之改变。温湿度片就就是这里得核心器件,它可以感应到外界温湿度得变化。干湿球温度表 :通过两只完全相同得温度表 ,使她们并列在一起 ,其中用一只温度表测量气温,另外一支温度表表头需要缠绕着浸透过纯蒸馏水得脱脂纱布 ,这两种温度表结合起来就就是干湿球温度表。2、4系统设计得内容与要求对某一特定环境下用温室度传感器感受到温度与湿度变化 ,把这种变化转化为电信号输入到单片机中,然后进行各端口得控制使其数据显示在 LCD显示屏上,完成了对仓库额得温室与湿度得测量。要求误差在上下 10%之内。3数据采集部分3、1温度传感器采用热电阻温度传感器。热电阻就是利用导体得电阻随温度变化得特性制成得测温元件。现应用较多得有铂、铜、镍等热电阻。其主要得特点为精度高、测量范围大、便于远距离测量。 铂得物理、化学性能极稳定 ,耐氧化能力强,易提纯,复制性好,工业性好,电阻率较高,因此,铂电阻用于工业检测中高精密测温与温度标准。缺点就是价格贵,温度系数小,受到磁场影响大,在还原介质中易被玷污变脆。按IEC标准测温范围200~650℃,百度电阻比W(100)=1、3850时,R0
为100Ω与
10Ω,其允许得测量误差
A级为±(0、15℃+0、002|t|),B级为±
(0、3℃+0、005|t|)
。
铜电阻得温度系数比铂电阻大
,价格低
,也易于提纯与加工
;但其电阻率小
,在腐蚀性介质中使用稳定性差。在工业中用于
50~180℃测温。3、2湿度传感器测量空气湿度得方式很多,其原理就是根据某种物质从其周围得空气吸收水分后引起得物理或化学性质得变化,间接地获得该物质得吸水量及周围空气得湿度。电容式、电阻式与湿涨式湿敏原件分别就是根据其高分子材料吸湿后得介电常数、电阻率与体积随之发生变化而进行湿度测量得。采用HS1100/HS1101湿度传感器。HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度得增大而增大。不需校准得完全互换性,高可靠性与长期稳定性,快速响应时间,专利设计得固态聚合物结构,由顶端接触(HS1100)与侧面接触(HS1101)两种封装产品,适用于线性电压输出与频率输出两种电路,适宜于制造流水线上得自动插件与自动装配过程等。相对湿度在 1%—100%RH范围内;电容量由 16pF变到200pF,其误差不大于± 2%RH;响应时间小于 5s;温度系数为 0、04pF/℃。3、3采用得传感器大连北方测控工程有限公司生产得温湿度传感器 DHT90,将两者得功能集成在一起 ,并且输出得就是数字信号 ,不需要再进行 A/D转换,其温度测量得范围为 40℃~123、8℃,分辨率为0、01℃;测湿范围为0~100%RH,分辨率为0、03%RH。综合上面各种设计得技术要求与传感器得特性,考虑到设计简约化,选择使用传感器DHT90,输出得就是数字信号,不需要进行A/D转换,简化了系统设计。4系统设计方案4、1系统框架图本系统由单片机主控电路
,DHT11温湿度采集模块
,1602
液晶显示模块
3部分组成
,下图为框架图。4、2、1方案一:采用温湿度一体化得传感器 DHT11采集温湿度数据 ,DHT11数字温湿度传感传感器 单片机AT89C52 液晶显示 1602器就是一款含有已校准数字信号输出得温湿度复合传感器。 它应用专用得数字模块采集技术与温湿度传感技术
,确保产品具有极高得可靠性与卓越得长期稳定性。传感器包括一个电阻式感湿元件与一个
NTC测温元件
,并与一个高性能
8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。DHT11原理图
DHT11
实物图4、2、2方案二:由于本实验proteus库中无dht11模块,使用sht11代替。为了营造无人瞧守状态,本次设计中还应用了远程通信系统。方案一中系统得控制核心就是AT89C52单片机,它得主要作用就是读取温湿度传感器工作时得内部参数,测试得结果可以显示在LCD上面。4、3系统功能模块设计4、3、1中央控制单元本次温湿度检测系统设计中 ,由单片机组成得中央控制单元有十分重要得作用。这就是整个系统得大脑 ,它发出操作命令指挥系统工作。该单片机不仅可以控制 LCD显示屏幕得工作状态,还可以时时刻刻管理着监测着外部环境得温湿度得变化得温湿度传感器得工作状态。依照所需设计得要求与控制得目得 ,本次毕业设计选择了 AT89C52芯片,该芯片里面包含4kBytesISP 得能多次烧入得 Flash器件,就是一类简单高效率得 CMOS8位芯片。AT89C52芯片就是使用了 ATMEL公司厂家中得较为先进高级得控制与制作技术做为支持动力。AT89C52芯片还包括MCS52系统得操作命令与89C52管脚得排列,其中较重要得8位CPU与ISPFlash存储单元就是它得核心部件。AT89C52芯片得系统功能具有巨大得优势,它可以满足设计中系统稳定运行得基本要求。AT89C52芯片具16位可编程定时计数器3个,有引脚40个,全双工串行通信口2个,外部双向输入 /输出(I/O) 端口32个,外中断口 2个,读写口线结构如下图所示 :
2个,AT89C52芯片得管脚单片机4、3、2晶振电路模块与复位电路模块晶振电路模块 :单片机得工作条件就是要在时钟驱动得作用下才可以稳定得进行工作
,所需得电容大小通常为 30PF。单片机工作时需要一个信号脉冲 ,晶振得作用就就是提供这个信号脉冲。在时钟驱动作用下 ,晶振电路所提供得信号脉冲就就是单片机得工作速度。举个例子来说明,一个频率为12MHZ得晶振电路芯片,它得工作速度就是12MHZ每秒得运行速度,与我们使用得电脑手机得CPU一个道理。就于多大得频率才能使单片机更好得更稳点得工作得问题,一般情况下其工作时所需要得频率在24MHZ左右,超过这个值,系统工作就不稳定了。单片机系统得工作速度取决于时钟信号,其内部镶有时钟振荡电路,在单片机得外部接通一个振荡源就可以工作了。复位电路模块:复位电路在设计得系统中起着重要得作用,它保障了设计得系统可以在稳定得环境下工作,复位电路得主要作用功能就就是上电复位。当复位信号消除得时候,系统微机电路才可以稳定高效得工作,消除复位信号得条件就是VCC得电压在4、7V与5、2V之间,只有在提供稳定无误差得时钟信号才能实现本次得设计。下图为其仿真图:晶振电路与复位电路4、3、3显示模块LCD显示电路就是本系统得功能具体体现得重要模块,实现了对温湿度检测得液晶屏控制得功能。温湿度显示电路得组成有SHT10温湿度传感器、LCD液晶显示屏幕。其显示模块先接受来自单片机处理后得信号,再将其结果显示在液晶屏幕。STC89C52得P2口接1602得8位数据线,通过输出数据控制1602显示不同得提示字符。1602本身内置各种字符,还可以自定义显示字符。本设计中根据不同场合1602会显示各种提示字符。P0、0~P0、2接1602控制端,其中P0、0接使能端E,写操作时,使能端下降沿有效。P0、1接读写控制端R/W,R/W=0,读操作;R/W=1,写操作。P0、2接寄存器选择端RS,RS=0,写操作时指向指令寄存器,读操作时指向地址寄存器;RS=1,无论读操作还就是写操作都指向数据寄存器。LCD1602得VSS为电源地,需接地;VDD为电源电压;V0为LCD驱动电压,接电位器,通过调节电位器控制显示得亮度,使LCD显示清晰而无黑影。背光电源线LCD正负两端分别接电源与地即可。。下图为其仿真图:显示模块4、3、4温湿度传感器利用型号为 SHT10得温湿度传感器来测试仓库得温度与湿度。下图为其仿真图 :温湿度传感器仿真图上三个按键:↑↓?来控制操作。当?打到左边时为湿度得调节,当?打到右边得时候为温度得调节;↑就是增大按键,↓就是减小按键。系统得仿真与调试5、1Proteus 对系统仿真根据设计要求,从Proteus元件库中找到所需要用到得元件,画好电路图并且检查有无错误。最后通过keiluVision软件编写得C语言程序,转换成HEX文件下载到画好得得电路上进行调试。以下就是系统得仿真电路图 :系统运行图5、2LCD得仿真Lcd运行图5、3硬件运行结果运行结果图实物运行图总结历经两周得课设 ,又懂得了很多得知识 ,在这两周得时间里 ,感受良多吧可以算就是。因为我们做得课设里面因为 proteus 库中没有 DHT11元件,导致我们做了将近一个星期得课设全部推翻。无奈得对着那一堆程序没日没夜得改着。 从一开始得不了解 ,觉得很复杂,有传感器、单片机与 1602,最麻烦得就是还要编程序 ;到最后得完成 ,对各个模块都有了更深认知。 本设计综合利用单片机技术、传感器技术、数字电子技术与 LCD显示等科学知识 ,完成了单片机控制得温度、湿度与显示装置得设计 ,比较系统地介绍了硬件得组成及设计方法并利用单片机C语言完成了系统软件得设计。把传感器技术应用到单片机控制系统中,实现了对环境温度与湿度得数据采集与读取。2、利用LCD液晶得显示技术完成了环境温度、湿度及显示电路得设计。在本设计得基础上皆有继电器模块,可以外接调温调湿电器,把功能扩展延伸为实现对环境温湿度得控制。整个系统软硬件搭配合理,设计、开发、维护方便,性价比高原理图得绘制使我从新学习了一次 proteus, 对软件种元器件更加熟悉 ,画仿真图时更为流畅。在进行设计之前有着很多要解决得问题 ,比如元器件得选择问题、各个模块得设计与主程序得编程。通过这次设计 ,我从到图书馆得网站查找相应得资料应用到对应电路参与设计得思考。每个模块都要经过多次得设计 ,不断得试验,让我对之前在学校所学得书本上得理论知识有了更为深刻得了解。 在完成毕业设计得过程就是一次难得得理论与实际相结合得过程,在这段时间我更为深刻得理解与掌握了大学期间所学得一些知识 ,例如C语言得编程、数字模拟电路、单片机得简单应用、 proteus 与keil 软件得使用与设计。在设计过程中 ,由于时间与本人能力得限制 ,设计中存在一些需要改进与优化得地方。 测量精度有待进一步提高 ,软件设计也存在不合理之处。 但从设计过程中 ,对于单片机有更进一步得认识,对用于单片机仿真得软件操作能力也明显提高 ,通过此设计,本人受益颇丰。参考文献[1] 李全利等编著、 《单片机原理及应用》、北京 :清华大学出版社 ,2006、02:14~36、杨西明,朱骐主编、《单片机编程与应用入门》、北京:机械工业出版社,2004、06:24~38、先锋工作室编著、《单片机程序设计实例》、北京:清华大学出版社,2003、01:68~78、谢宜仁主编、《单片机实用技术问答》、北京:人民邮电出版社,2003、02:11~20、[5]孙江宏,李良玉等编著、 《Protel99 电路设计与应用》、北京 :机械工业出版社 ,2004、07、房小翠,王金凤编著、《单片机实用系统设计技术》、北京:国防工业出版社,1999、06、南建辉等编著、《MCS51单片机原理及其应用实例》、北京:清华大学出版社,2004、03、[8] 何宏主编、 《单片机原理与接口技术》、北京 :国防工业出版社 ,2006、07:15~30叶健斌、《基于单片机嵌入式系统得GPS应用》、电子质量,2008:(7)16~24、[10]王静、《通用库房温湿度测控系统》、青岛:中国海洋大学,2009、05:30~33、[11]刘宝元,张玉虹、《基于单片机得温湿度监控系统设计》、国外电子测量技术,2009、12、[12]陈汝全、《实用微机与单片机控制技术》、成都:电子科技大学出版,2005、06:16~17、附录1:DHT11程序//湿度2090温度050采样间隔1S#include<intrins、h>#include"lcd、h"sbitDQ=P3^7;//DTH11ucharcodeASCII[]="0123456789%c";ucharcodetable0[]="Hum:00";ucharcodetable1[]="Tem:00";uchartem;ucharhum;display0[2]={0,0};display1[2]={0,0};//************************** 延时函数voiddelay_ms(uintz){uintx,y;for(x=z;x>0;x)for(y=114;y>0;y);}//**************************
初始化
DTH11bitInit_DTH11{bitflag;ucharnum;DQ=0;delay_ms(19); //>18msDQ=1;for(num=0;num<10;num++); //2040us
34
、7usfor(num=0;num<12;num++);flag=DQ;for(num=0;num<11;num++);//DTH
响应
80usfor(num=0;num<24;num++);
//DTH
拉高
80usreturnflag;}//****************************ucharDTH11_RD_CHAR
读DTH11数据{ucharbyte=0;ucharnum;ucharnum1;while(DQ==1);for(num1=0;num1<8;num1++){while(DQ==0);byte<<=1; // 高位在前for(num=0;DQ==1;num++);if(num<10)byte|=0x00;elsebyte|=0x01;}returnbyte;}//******************************
读取
DTH11温度与湿度voidDTH11_DUSHU{ucharnum;if(Init_DTH11==0){hum=DTH11_RD_CHAR; //比正常值高 7度左右DTH11_RD_CHAR;tem=DTH11_RD_CHAR;DTH11_RD_CHAR;DTH11_RD_CHAR;for(num=0;num<17;num++);//
最后
BIT
输出后拉低总线
50usDQ=1;}}//***********************************voidDisplay_DTH11{display0[1]=hum/10%10;display0[0]=hum%10;LcdShowStr(0,0,table0);DisplayOneChar(8,0,ASCII[display0[1]]);DisplayOneChar(9,0,ASCII[display0[0]]);
显示函数DisplayOneChar(10,0,ASCII[10]); //display1[1]=tem/10%10;display1[0]=tem%10;LcdShowStr(0,1,table1);DisplayOneChar(8,1,ASCII[display1[1]]);DisplayOneChar(9,1,ASCII[display1[0]]);
显示湿度DisplayOneChar(10,1,0xdf);DisplayOneChar(11,1,ASCII[11]); // 显示温度}//******************************* 主函数main{tem=0;hum=0;delay_ms(1000); //DTH11 开始1s有错误输出InitLcd1602;while(1){DTH11_DUSHU;Display_DTH11;delay_ms(2000);}}附录2:SHT10程序#include<reg51 、h>#include<intrins 、h>#defineucharunsignedchar#definenoACK0 //继续传输数据 ,用于判断就是否结束通讯#defineACK 1 // 结束数据传输;// 地址 命令读/写#defineSTATUS_REG_W0x06 //000 0011 0#defineSTATUS_REG_R0x07 //000 0011 1#defineMEASURE_TEMP0x03 //000 0001 1#defineMEASURE_HUMI0x05 //000 0010 1#defineRESET 0x1e //000 1111 0enum{TEMP,HUMI};sbitDATA=P2^5;sbitSCK=P2^4;sbitRS=P2^0;sbitRW=P2^1;sbitE=P2^2;sfrDBPort=0x80;
//P0=0x80,P1=0x90,P2=0xA0,P3=0xB0
、数据端口/******** DS1602
函数声明
********/voidLCD_Initial;voidGotoXY(unsignedcharx,unsignedchary);voidPrint(unsignedchar*str);voidLCD_Write(bitstyle,unsignedcharinput);/********SHT10函数声明voids_connectionreset(void);
********/chars_measure(unsignedchar*p_value,unsignedchar*p_checksum,unsignedcharmode);voidcalc_sth10(float*p_humidity,float*p_temperature);//floatcalc_dewpoint(floath,floatt);/****************************************************************/写字节程序chars_write_byte(unsignedcharvalue){unsignedchari,error=0;for(i=0x80;i>0;i>>=1) // 高位为1,循环右移{if (i&value) DATA=1; //与要发送得数相与 ,结果为发送得位elseDATA=0;SCK=1;_nop_;_nop_;_nop_; // 延时3usSCK=0;}DATA=1; // 释放数据线SCK=1;error=DATA; // 检查应答信号 ,确认通讯正常_nop_;_nop_;_nop_;SCK=0;DATA=1;returnerror; //error=1 通讯错误}//读字节程序chars_read_byte(unsignedcharack)//{unsignedchari,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_;SCK=0;_nop_;_nop_;_nop_;
// 如果就是校验 ,读取完后结// 延时3usDATA=1; // 释放数据线returnval;}启动传输voids_transstart(void)//generatesatransmissionstart// _____ ________//DATA: |_______|______SCK:___||___||______{DATA=1;SCK=0; // 准备_nop_;SCK=1;_nop_;DATA=0;_nop_;SCK=0;_nop_;_nop_;_nop_;SCK=1;_nop_;DATA=1;_nop_;SCK=0;}连接复位voids_connectionreset(void)//municationreset:DATAline=1andatleast9SCKcyclesfollowedbytransstart// _____________________________________________________ ________//DATA: |_______|// _ _ _ _ _ _ _ _ _ ___ ___//SCK:__||__||__||__||__||__||__||__||__||______| |___| |______{unsignedchari;DATA=1;SCK=0; // 准备for(i=0;i<9;i++) //DATA 保持高,SCK时钟触发9次,发送启动传输
,通迅即复位{SCK=1;SCK=0;}s_transstart;
//
启动传输}//软复位程序chars_softreset(void)//resetsthesensorbyasoftreset{unsignedcharerror=0;s_connectionreset;
//
启动连接复位error+=s_write_byte(RESET);
//
发送复位命令returnerror;
//error=1
通讯错误}/*读状态寄存器chars_read_statusreg(unsignedchar*p_value,unsignedchar*p_checksum)//readsthestatusregisterwithchecksum(8bit){unsignedcharerror=0;s_transstart; //transmissionstarterror=s_write_byte(STATUS_REG_R);//sendmandtosensor*p_value=s_read_byte(ACK); //read status
register(8bit)*p_checksum=s_read_byte(noACK); //readchecksum(8bit)returnerror;//error=1incaseofnoresponseformthesensor}写状态寄存器chars_write_statusreg(unsignedchar*p_value)writesthestatusregisterwithchecksum(8bit){unsignedcharerror=0;s_transstart; //transmissionstarterror+=s_write_byte(STATUS_REG_W);//sendmandtosensorerror+=s_write_byte(*p_value); //send value of statusregisterreturnerror; //error>=1incaseofnoresponseformthesensor}*/温湿度测量chars_measure(unsignedchar*p_value,unsignedchar*p_checksum,unsignedcharmode)进行温度或者湿度转换,由参数mode决定转换内容;{// enum{TEMP,HUMI}; //已经在头文件中定义unsignederror=0;unsignedinti;s_transstart; // 启动传输switch(mode) // 选择发送命令{case TEMP :error+=s_write_byte(MEASURE_TEMP);break; // 测量温度caseHUMI: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);//readCRC 校验码returnerror; // error=1 通讯错误}温湿度值标度变换及温度补偿voidcalc_sth10(float*p_humidity,float*p_temperature){constfloatC1=4、0;//12位湿度精度修正公式constfloatC2=+0、0405;//12位湿度精度修正公式constfloatC3=0、0000028;//12位湿度精度修正公式constfloatT1=+0、01;//14位温度精度5V条件修正公式const float T2=+0、00008; // 14位温度精度 5V条件 修正公式floatrh=*p_humidity;//rh:12位湿度floatt=*p_temperature;//t:14位温度floatrh_lin;//rh_lin:湿度linear值floatrh_true;//rh_true:湿度ture值floatt_C;//t_C:温度℃t_C=t*0、0140;//补偿温度rh_lin=C3*rh*rh+C2*rh+C1;//相对湿度非线性补偿rh_true=(t_C25)*(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;
//
返回湿度结果}从相对温度与湿度计算露点/*floatcalc_dewpoint(floath,floatt){floatlogEx,dew_point;logEx=0、66077+7、5*t/(237 、3+t)+(log10(h)2);dew_point=(logEx0 、66077)*237、3/(0、66077+7、5logEx);returndew_point;}*//***********************************************************************************************************************************************************///DS1602程序(1602、c)://#include<tou 、h>内部等待函数**************************************************************unsignedcharLCD_Wait(void){RS=0;RW=1;_nop_;E=1;_nop_;E=0;returnDBPort;}向LCD写入命令或数据********************************************************#defineLCD_MAND#defineLCD_DATA
0 //mand1 //Data#defineLCD_CLEAR_SCREEN
0x01
//
清屏#defineLCD_HOMING 0x02 //voidLCD_Write(bitstyle,unsignedcharinput){
光标返回原点E=0;RS=style;RW=0;
_nop_;DBPort=input; _nop_;//
注意顺序E=1; _nop_;//E=0; _nop_;
注意顺序LCD_Wait;}//设置显示模式 ************************************************************#defineLCD_SHOW0x04//显示开#defineLCD_HIDE0x00//显示关#defineLCD_CURSOR0x02//显示光标#defineLCD_NO_CURSOR0x00//无光标#defineLCD_FLASH0x01//光标闪动#defineLCD_NO_FLASH0x00//光标不闪动voidLCD_SetDisplay(unsignedcharDisplayMode){LCD_Write(LCD_MAND,0x08|DisplayMode);}//设置输入模式 ************************************************************#defineLCD_AC_UP0x02#defineLCD_AC_DOWN0x00//default#defineLCD_MOVE0x01//画面可平移#defineLCD_NO_MOVE0x00//defaultvoidLCD_SetInput(unsignedcharInputMode){LCD_Write(LCD_MAND,0x04|InputMode);}初始化LCD************************************************************voidLCD_Initial{E=0;LCD_Write(LCD_MAND,0x38); //8 位数据端口,2行显示,5*7点阵LCD_Write(LCD_MAND,0x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); // 开启显示, 无光标LCD_Write(LCD_MAND,LCD_CLEAR_SCREEN); // 清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC 递增, 画面不动}液晶字符输入得位置************************voidGotoXY(unsignedcharx,unsignedchary){if(y==0)LCD_Write(LCD_MAND,0x80|x);if(y==1)LCD_Write(LCD_MAND,0x80|(x0x40));}将字符输出到液晶显示voidPr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国脚踏机构总成行业投资前景及策略咨询研究报告
- 营运部年度工作总结
- 2024至2030年中国智能型电子密码保险箱数据监测研究报告
- 2024至2030年貂尾加革圆顶帽项目投资价值分析报告
- 2024至2030年水晶电话护目灯项目投资价值分析报告
- 2024至2030年板网矩鞍填料项目投资价值分析报告
- 2024至2030年咀嚼片项目投资价值分析报告
- 松木桩基础处理方案
- 新进厂职工安全培训试题及完整答案【必刷】
- 新版车间安全培训试题及完整答案(各地真题)
- 小学综合实践活动-剪纸教学设计学情分析教材分析课后反思
- 新能源汽车电池性能测评
- 幼儿园公开课:大班语言《相反国》课件(优化版)
- 多格列艾汀片-药品临床应用解读
- 《法律与自由》课件
- 幼儿园小朋友可爱卡通恐龙风格餐前播报餐前分享
- 非计划性拔管的预防措施
- 陕西省西安三中2023-2024学年八年级上学期期中物理试卷
- 2022级西学中班《方剂学》 考试试题
- 2025年蛇年春联带横批-蛇年对联大全新春对联集锦
- 山东省菏泽市牡丹区2023-2024学年七年级上学期期中数学试题(含解析)
评论
0/150
提交评论