基于单片机的温湿度检测仪的设修改

上传人:仙*** 文档编号:102205842 上传时间:2022-06-06 格式:DOC 页数:26 大小:592KB
收藏 版权申诉 举报 下载
基于单片机的温湿度检测仪的设修改_第1页
第1页 / 共26页
基于单片机的温湿度检测仪的设修改_第2页
第2页 / 共26页
基于单片机的温湿度检测仪的设修改_第3页
第3页 / 共26页
资源描述:

《基于单片机的温湿度检测仪的设修改》由会员分享,可在线阅读,更多相关《基于单片机的温湿度检测仪的设修改(26页珍藏版)》请在装配图网上搜索。

1、基于单片机的温湿度检测仪的设计环境的温湿度对保管好图书,延长图书寿命有很大关系。因为图书纸由于存放年深日久而缓慢变质,这种变化过程称为自然老化。高温、潮湿、低温和干燥对档案的破坏作用是很缓慢的,我们肉眼感觉不到,但日积月累,不适宜的温湿度对纸质档案的危害就表现出来。温湿度对档案制成材料的影响很大,高温高湿会使纸水解、老化速度加快,会使危害档案制成材料的霉菌、细菌繁殖,会使光化作用增强,会使有害气体、灰尘吸附能力增大。因此, 这就要求我们采取科学的保护措施,控制与调节库房温湿度,减缓档案制成材料的损坏速度,最大限度地延长档案寿命。档案作为一种不可生资源,对于国家各个领域的发展都有着重要的保存和参

2、考价值。根据科学的数据证实,大多数蛀虫和霉菌的生存温度在10摄氏度以上,低于这个温度,害虫即丧失活动能力和停止繁殖,而相对湿度在65%以下,多数霉菌就无常发育。因此,有条件的收藏室,书画库房温度宜控制在10到18摄氏度,相对湿度应控制在50%-65%之间,这样可以抑制害虫、霉菌的生长繁殖,有利于书画纸的保养。倘若将相对湿度降至45%以下,并持续较长的时间,纸又会因干燥而脆裂,造成物理性朽坏。所以,保持相对湿度50%-65%以及10-18摄氏度的温湿度环境,是对书画保藏的一个严格要求。温度是表示物体冷热程度的物理量,微观上来讲是物体分子热运动的剧烈程度。在整个宇宙当中,温度无处不存在。无论在地球

3、上还是在月球上,也无论是在炽热的太阳上还是在阴冷的冥王星上,这一切无不由于空间位置的不同而存在着温度的差别。湿度是表示大气干燥程度的物理量。在一定的温度下在一定体积的空气里含有的水汽越少,则空气越干燥;水汽越多,则空气越潮湿。空气的干湿程度叫做湿度。在此意义下,常用绝对湿度、相对湿度、比较湿度、混合比、饱和差以及露点等物理量来表示。湿度表示气体中的水蒸汽含量,有绝对湿度和相对湿度两种表示方法。绝对湿度是一定体积的空气中含有的水蒸气的质量,一般其单位是克/立方米,绝对湿度的最大限度是饱和状态下的最高湿度;相对湿度是绝对湿度与最高湿度之间的比,它的值显示水蒸气的饱和度有多高。温度、湿度和人类的生产

4、、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度、湿度的检测与控制。并且随着人们生活水平的提高,人们对自己的生存环境越来越关注,而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度、湿度的检测就非常有必要了。目 录摘要一、温、湿度测量的目的及要求二、设计所需元件清单三、单片机实现温、湿度测量3.1 原理图及说明3.2 设计理念及实现方法四、温、湿度传感器及液晶显示12864简介及应用4.1温、湿度传感器4.2 液晶显示12864简介及应用五、各个模块设计流程图5.1 温度测量程序流程图5.2 湿度测量程序流程图5

5、.3 显示程序流程图六、VC、VB界面显示结论参考文献附录一、源程序代码附录二、硬件实现与仿真图摘 要随着科学技术的日新月异,人类社会取得了长足的进步!在居家生活、工农业生产、气象、环保、国防、科研、航天等部门,经常需要对环境中的湿度和温度进行测量及控制。本设计设计了一个智能化的温湿度测量应用系统。本系统采用技术成熟的DHT11作为测量湿度和温度的传感器。控制系统芯片采用技术成熟,功能强大、价位低廉大众化的AT89C51单片机。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感

6、器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。每个DHT11传感器都在精确的湿度校验箱中进行校准。校准系数以程序的形式储存在OTP存中,传感器部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。LCD显示电路,声光报警电路都由AT89C51单片机控制。同时设计了能给系统提供稳定工作电压的电源电路。为了提高系统的抗干扰性能,对湿度、温度的检测采用了硬件抗干扰和软件抗干扰的综合方法。最后设计了系统各个功能部分的软件程序。由本设计课题做成的温湿度检测系统结构简单、价格便宜、量程宽,具有较高的可靠性、安全性及实用性。AbstractWit

7、h the rapid development of science and technology, human society has achieved great progress! In the life that occupy the home, industry, agriculture, national defense, weather, environmental protection and scientific research departments, such as aerospace, often need to the environment humidity an

8、d temperature measurement and control. The design of an intelligent humidity measuring the application systems. The system adopts the technology DHT11 as measuring the humidity and temperature sensor. Control system chip adopt mature technology, powerful, price cheap popular AT89C51. Each DHT11 sens

9、ors are accurate calibration of humidity in calibration. In the form of calibration coefficient of the program memory, OTP stored in sensor signal detection in the internal process to call these calibration factor. Wired system, system integration serial interface becomes easy. LCD display circuit,

10、sound-light alarm circuit controlled by AT89C51. The system can be designed to provide a stable working voltage of power supply circuit. In order to improve the system of anti-jamming performance of temperature, humidity, using the hardware and software anti-interference synthesis method. Finally th

11、e design of the system software program each function. By this design task to make the temperature and humidity of the detection system structure is simple, cheap price, wide range, high reliability, safety and practicality.一、温湿度测量的目的及要求1、作品设计目的在图书馆中,书籍的保护对温、湿度要求非常严格。对于面积不同的房间由于气流及图书分布的影响,图书的种类的影响,温

12、湿度值可能会有较大的区别。所以应根据图书馆各个房间的实际面积在房间加装温湿度传感器,以实时客观检测房间的温、湿度。在监控本系统,温湿度一体化传感器将把检测到的温湿度值实时传送到监控主机中,并在监控界面上以图形形式直观地表现出来。管理员可实时了解房间各点的实际温湿度值,一旦房间实际温、湿度值越限,系统将自动弹出报警框并触发报警,提示管理员通过调节送风口的位置、数量,设定空调的运行温湿度值,尽可能让房间各点的温湿度趋向合理,确保房间设备的安全正常运行。 2、作品设计容及要求1设计一个温湿度侧量电路,要求:用51单片机通过编程来控制温湿度的显示液晶要准确显示外界的温、湿度的大小具有超温、湿度测量报警

13、装置2用中、小规模集成电路组成测量系统,并在实验仪器上进行组装、调试。3画出各单元电路图、整机功能框图和逻辑电路图,写出设计和实验总结报告二、设计所需元件清单 电源 液晶显示显示器 51单片机芯片1块。 DHT11湿度传感器1个 排阻2排 电阻若干 20pf电容若干 蜂鸣器1个。 32768HZ时钟晶体1个 回弹开关1个 按钮开关2个三、单片机实现温湿度测量1、原理图容下所示:由控制器单片机51、复位电路、DHT11温湿度检测系统、报警电路及12864显示系统组成。 片机2、湿度模块控制流程图:3、显示模块流程图:4、DHT11的温度报警子程序图:5、万年历程序流程图:五、设计总结VC界面显示

14、图参考文献1 侯建军. 电子技术基础实验、综合设计与课程设计.:高教 2007,10第一版2 童诗白,华成英模拟电子技术基础:清华大学教研组编3 阎石数字电子技术基础。:清华大学教研组编4 朝青单片机原理及接口技术 :航空航天大学2005,10.第三版5 蔡方凯单片机原理及基于单片机的嵌入式系统设计 中国水利水电20076 永枫单片机应用实训教程电子科技大学出版,20057 自美电子线路设计、实验、测试华中理工大学,20008 郭天祥十天学会单片机。电子工业,20089 .aosong./Html/DownView.asp?ID=15&SortID=4附录一 /*/远程监测的工厂温湿度检测仪/

15、*/#include#define uchar unsigned char#define uint unsigned int/*端口定义*/sbit LCD_RS=P35; /寄存器选择输入sbit LCD_RW=P36;/液晶读/写控制sbit LCD_EN=P34;/液晶使能控制sbit LCD_PSB=P37;/串/并方式控制sbit s1=P20;/调时开/关sbit s2=P21;/调时+sbit s3=P22;/调时-sbit buzzer=P27;/蜂鸣器sbit P2_6=P26; /P2.6口为通讯口连接DHT11typedef unsigned char U8;typede

16、f unsigned int U16;char sec,min,hour,week,day=1,month=1,year;uchar a,flag,flag2;uchar s1num;uchar code dis1=20XX01月01日;uchar code dis2=00时00分00秒;uchar code dis3=温度:00 星期日;uchar code dis4=湿度:00 上传.;uchar code dis5=0x20,0x20,0xce,0xc2,0xb1,0xa8,0xbe,0xaf; /空温报警uchar code dis6=0x20,0x20,0xca,0xaa,0xb1,

17、0xa8,0xbe,0xaf; /空湿报警uchar code dis7=0xce,0xc2,0xca,0xaa,0xb1,0xa8,0xbe,0xaf; /温湿报警uchar code dis8=0x20,0x20,0xc9,0xcf,0xb4,0xab,0x2e,0x2e; /空上传.uchar code disx=0xc8,0xd5,0xd2,0xbb,0xb6,0xfe,0xc8,0xfd,0xcb,0xc4,0xce,0xe5,0xc1,0xf9;/日,一,二,三,四,五,六/-定义区-/U8 U8FLAG,k;U8 U8count,U8temp;U8 U8T_data_H,U8T_

18、data_L,U8RH_data_H,U8RH_data_L,U8checkdata,U8T_data_H1,U8T_data_L1,U8RH_data_H1,U8RH_data_L1;U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8 U8comdata;U8 outdata5; /定义发送的字节数 U8 indata5;U8 count, count_r=0;U8 str5=ZPF ;U16 U16temp1,U16temp2;/*延时1ms子函数*/void de

19、layuint x,y;for0;x-for0;y-;/*延时子函数*/void Delay2 U8 i; for0;j-fori=0;i;/*延时10us子函数*/void Delay_10usU8 i;i-;i-;i-;i-;i-;i-;/*发送字符串子函数*/SendDataoutdata0 = a0; outdata1 = a1;outdata2 = a2;outdata3 = a3;count = 1;SBUF=outdata0;/*写指令子函数*/*RS=0,RW=0,E=0,D0-D7=指令码*/void write_LCD_RS=0;LCD_RW=0;LCD_EN=0;P0=;

20、delay;LCD_EN=1;delay;LCD_EN=0;/*写数据子函数*/*RS=1,RW=0,E=0,D0-D7=数据*/void write_datLCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delay;LCD_EN=1;delay;LCD_EN=0;/*设定显示位置*/void lcd_posuchar pos;if X=0x80;else if X=0x90;else if X=0x88;else if X=0x98;pos=X+Y;write_;/*LCD初始化设定*/void initLCD_PSB=1; /并口方式write_; /基本指令操作del

21、ay;write_; /显示开,关光标delay;write_; /清除LCD的显示容delay;TMOD=0x21;TH0=0x4c;TL0=0x00;ET0=1;EA=1;TR0=1;TH1 = 253; / 设置初值TL1 = 253;TR1 = 1; / 开始计时SCON = 0x50; /工作方式1,波特率9600bps,允许接收 ES = 1;EA = 1; / 打开所以中断 TI = 0;RI = 0;SendData; /发送到串口 Delay2; /*写年月日子函数*/void write_ymduchar shi,ge;shi=dat/10;ge=dat%10;write_

22、;write_dat;write_dat;/*写时分秒子函数*/void write_hmsuchar shi,ge;shi=dat/10;ge=dat%10;write_;write_dat;write_dat;/*温度显示子函数*/void write_temwrite_;write_dat;write_dat; /*湿度显示子函数*/void write_humwrite_;write_dat;write_dat; void COMU8 i;fori=0;i U8FLAG=2;while&U8FLAG+;Delay_10us;Delay_10us;Delay_10us;U8temp=0;

23、ifU8temp=1;U8FLAG=2;while&U8FLAG+;/超时则跳出for循环 ifbreak;/判断数据位是0还是1 / 如果高电平高过预定0高电平值则数据位为 1 U8comdata=1;U8comdata|=U8temp; /*温湿度读取子函数*/void RH/主机拉低18ms P2_6=0;Delay2;P2_6=1;/总线由上拉电阻拉高 主机延时20usDelay_10us;Delay_10us;Delay_10us;Delay_10us;/主机设为输入 判断从机响应信号 P2_6=1;/判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if /T ! U8

24、FLAG=2;/判断从机是否发出 80us 的低电平响应信号是否结束 while&U8FLAG+;U8FLAG=2;/判断从机是否发出 80us 的高电平,如发出则进入数据接收状态while&U8FLAG+;/数据接收状态 COM;U8RH_data_H_temp=U8comdata;COM;U8RH_data_L_temp=U8comdata;COM;U8T_data_H_temp=U8comdata;COM;U8T_data_L_temp=U8comdata;COM;U8checkdata_temp=U8comdata;P2_6=1;/数据校验 U8temp=;ifU8RH_data_H1

25、=U8RH_data_H_temp;U8RH_data_L1=U8RH_data_L_temp;U8T_data_H1=U8T_data_H_temp;U8T_data_L1=U8T_data_L_temp;U8checkdata=U8checkdata_temp;U8RH_data_H=U8RH_data_H1/10;U8RH_data_L=U8RH_data_H1%10;U8T_data_H=U8T_data_H1/10;U8T_data_L=U8T_data_H1%10;/*键盘扫描子函数*/ void keyscanifdelay;/延时5ms去抖动!ifwhile;s1num+;if

26、TR0=0;write_;write_;ifwrite_;if/TR0=0; 上一次已经停了。write_;/write_;if/TR0=0; 上一次已经停了。write_;/write_;if/TR0=0; 上一次已经停了。write_;/write_;上一次光标已闪烁if/TR0=0; 上一次已经停了。write_;/write_;上一次光标已闪烁ifwrite_;ifs1num=0;TR0=1;write_;if/*按键计数加*/ifdelay;ifwhile;/消抖,否则就会一下加很多/*调节修改显示的位置*/ifyear+;ifyear=0;/刷新年!write_ymd;write_

27、;ifmonth+;ifmonth=1;/刷新月!write_ymd;write_;ifday+;ifday=1;/刷新日!write_ymd;write_;ifhour+;ifhour=0;/刷新时!write_hms;write_;ifmin+;ifmin=0;/刷新分!write_hms;write_;ifsec+;ifsec=0;/刷新秒!write_hms;write_;ifuchar i;week+;ifweek=0;/刷新星期! i=2*week;whileiwrite_dat;i+; write_;/*按键计数减*/ifdelay;ifwhile;/消抖,否则就会一下加很多/*

28、调节修改显示的位置*/ifyear-;ifyear=99;write_ymd;write_;ifmonth-;ifmonth=12;write_ymd;write_;ifday-;ifday=31;write_ymd;write_;ifhour-;ifhour=23;write_hms;write_;ifmin-;ifmin=59;write_hms;write_;ifsec-;ifsec=59;write_hms;write_;ifuchar i;week-;ifweek=6;i=2*week;whileiwrite_dat;i+;write_;/*蜂鸣器报时和流水灯全闪时间长短*/void

29、 delay1 uint i,j;fori=0;i for0;j-/display;延时应包含这两个子函数,否则只显示一个数,即不扫描keyscan;buzzer=buzzer;/不是buzzer=0;而且两个循环才是一叫一停P1=P1;/八个流水灯全闪烁void mainuchar i;init;/*从第一行第一个字符的位置开始显示*/lcd_pos;i=0;whilewrite_dat;i+;/*从第二行第一个字符的位置开始显示*/lcd_pos;i=0;whilewrite_dat;i+;/*从第三行第一个字符的位置开始显示*/lcd_pos;i=0;whilewrite_dat;i+;

30、/*从第四行第一个字符的位置开始显示*/lcd_pos;i=0;whilewrite_dat;i+;whilekeyscan;/*让蜂鸣器间隔报小时数*/if delay1;if/if delay1;开机就会叫24下,故采用23 59 59delay12*;RH;if /串口显示程序 /- str0=U8RH_data_H+0x30; str1=U8RH_data_L+0x30; str2=U8T_data_H+0x30; str3=U8T_data_L+0x30; str4=U8checkdata+0x30; SendData ; /发送到串口 /读取模块数据周期不易小于 2S write_

31、tem; write_hum; if2/温度=30度,蜂鸣器间隔叫,一边的四灯亮 P1=0x0f;buzzer=0;delay;P1=0xff;buzzer=1; if8/湿度=90度,蜂鸣器间隔叫,一边的四灯亮 P1=0xf0;buzzer=0;delay;P1=0xff;buzzer=1; if2|U8RH_data_H8 if2&U8RH_data_H /显示空温报警write_;i=0;whileiwrite_dat;i+; write_;if8&U8T_data_H /显示空湿报警write_;i=0;whileiwrite_dat;i+; write_;if8&U8T_data_H

32、2 /显示温湿报警write_;i=0;whileiwrite_dat;i+; write_; else /显示空上传. write_;i=0;whileiwrite_dat;i+; write_; /Delay2;/*万年历中断*/ void timer_0 interrupt 1uchar i;flag2=0;TH0=0x4c;TL0=0x00;a+;ifa=0;sec+;flag2=1;ifsec=0;min+;if min=0;hour+;ifhour=0;day+;week+;ifweek=0;flag=&|;/闰年的判断条件/*闰年二月29天*/ifday=1;month+;wri

33、te_ymd;/*其余二月28天*/ifday=1;month+;write_ymd;/*30天的月份*/if&day=31day=1;month+;write_ymd;/*31天的月份*/if&day=32day=1;month+;ifmonth=1;year+;write_ymd;write_ymd;write_ymd;write_;/写入修改星期数i=2*week; whileiwrite_dat;i+;write_;write_hms;write_hms;write_hms;/*串口发送中断子函数*/void RSINTR interrupt 4 using 2if /发送中断 TI=0;if /发送完5位数据 SBUF=outdatacount;count+;附录二硬件实现26 / 26

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!