基于89S52单片机的温湿度检测与控制系统的设计_第1页
基于89S52单片机的温湿度检测与控制系统的设计_第2页
基于89S52单片机的温湿度检测与控制系统的设计_第3页
基于89S52单片机的温湿度检测与控制系统的设计_第4页
基于89S52单片机的温湿度检测与控制系统的设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1基于单片机的温湿度检测与控制系统摘要:温湿度是生活生产中的重要的参数。本设计为基于单片机的温湿度检测与控制系统,采用模块化、层次化设计。用新型的智能温温度传感器 SHT10 主要实现对温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机 AT89S52 进行数据的分析和处理,为显示和报警电路提供信号,实现对温湿度的控制报警。报警系统根据设定报警的上下限值实现报警功能,显示部分采用字符型 TC1602 液晶显示所测温湿度值。系统电路简单、集成度高、工作稳定、调试方便、检测精度高,具有一定的实用价值。关键词:温湿度;SHT10;单片机;AT89S52;检测;报警2MCU-based temperature and humidity testing and control systemABSTRACTTemperature and humidity is the important parameter in the living and production.This design is MCU-based temperature and humidity detection system, it adopts modular layering design, and use temperature and humidity of new intelligent sensor SHT10 mainly realization to the examination of temperature and humidity. The temperature and humidity signals are collected by sensors and convert the signal into digital signal, then use the AT89S52 microcontroller for data analysis and processing, provided for the display and alarm signal circuit, to achieve control and alarm of temperature and humidity. Report to the police system according to enactment the top and bottom limit reporting to the police be worth realization to report to the police function and show part adoption character list type the TC1602 LCD show temperature and humidity s value measured.The system electric circuit is simple, high integration, work stability, adjust to try convenience, high examination accuracy , and have definitely practical value.Keyword: Temperature and humidity; SHT10; MCU; AT89S52; Detection; Alarm0目 录1、引言 .12、设计内容及方案 .22.1 设计内容 .22.2 方案选择 .32.2.1 温湿度传感器的选择 .32.2.2 显示器的选择 .33、系统的硬件选择及设计原理 .43.1 温湿度传感器 SHT10.43.1.1 接口定义 .43.1.2 电路特性 .53.1.3 传感器特点 .63.1.4 技术参数 .63.2 单片机选择与介绍 .73.2.1 主要性能 .73.2.2 AT89S52 介绍 .83.2.3 脚 口 介 绍 .93.3 复 位 电 路 .103.4 晶振电路 .113.5 显示电路 .123.6 报警电路 .133.7 键盘设定模块 .143.8 稳压电路 .144、软件设计 .154.1 主程序模块 .164.2 SHT10 初始化流程 .164.3 LCD 初始模块 .175、调试 .195.1 软件调试 .195.1.1 Proteus 软 件 .195.1.2 Keil C51 软 件 .2015.2 根据原理图焊接电路板 .235.3 硬件调试 .255.3.1 程序下载 .255.3.2 检测显示 .265.3.3 控制显示 .265.3.4 温度报警 .275.3.5 湿度报警 .276、小 结 .28参考文献 .28致 谢 .30ABSTRACT .31附录 .3221、引言温度和湿度的检测和控制是许多行业的重要工作之一,不论是货品仓库、生产车间,都需要有规定的温度和湿度,然而温度和湿度却是最不易保障的指标,针对这一情况,研制可靠且实用的温度和湿度检测与控制系统就显得非常重要。温湿度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用。在生产中,温湿度的高低对产品的质量影响很大。由于温湿度的检测控制不当,可能使我们导致无法估计的经济损失。为保证日常工作的顺利进行,首要问题是加强生产车间内温度与湿度的监测工作,但传统的方法过于粗糙,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。目前,在低温条件下(通常指100以下),温湿度的测量已经相对成熟。利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快的开发。但人们对它的要求越来越高,要为现代人工作、科研、学习、生活提供更好的更方便的设施就需要从数字单片机技术入手,一切向着数字化,智能化控制方向发展。对于国内外对温湿度检测的研究,从复杂模拟量检测到现在的数字智能化检测越发的成熟,随着科技的进步,现在的对于温湿度研究,检测系统向着智能化、小型化、低功耗的方向发展。在发展过程中,以单片机为核心的温湿度控制系统发展为体积小、操作简单、量程宽、性能稳定、测量精度高,等诸多优点在生产生活的各个方面实现着至关重要的作用1。温湿度传感器除电阻式、电容式湿敏元件之外,还有电解质离子型湿敏元件、重量型湿敏元件(利用感湿膜重量的变化来改变振荡频率) 、光强型湿敏元件、声表面波湿敏元件等。湿敏元件的线性度及抗污染性差,在检测环境湿度时,湿敏元件要长期暴露在待测环境中,很容易被污染而影响其测量精度及长期稳定性2。2002 年 Sensiron 公司在世界上率先研制成功 SHT10 型智能化温度/温度传感器,体积与火柴头相近。它们不仅能准确测量相对温度,还能测量温度和露点。测量相对温度的范围是 0100%,分辨力达 0.03%RH,最高精度为2%RH。测量温度的范围是-40+123.8,分辨力为 0.01。测量露点的精度 癈DATA2SCK3U2SHT10X1CRYSTALC12pC22p R14k7D11N4148 D21N4148 D31N4148 D41N4148移 动 /设 置 增 加 减 少 确 定LS?SOUNDER图 5.2 仿真电路图5.1.2 Keil C51 软 件Keil C51 软件是 Keil Software 公司推出的 uVision3,是一款可用于多种 8051 MCU的集成开发环境(IDE),该 IDE 同时也是 PK51 及其它开发套件的一个重要组件。除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标 MCU,包括指令集、片上外围设备及外部信号等。其提供逻辑分析器,可监控基于 MCU I/O 引脚和外设状态变化下的程序变量。编辑的 C 或汇编文件,分别由 C51 及 A51 编译器编译生成目标文件(.OBJ) 。目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件(.ABS) 。ABS 文件由 OH51 转换成标准的 HEX 文件,以供调试器使用进行源代码调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如 EPROM 中。注意晶振的频率,默认的是 11.0592MHz,可以根据需要修改。调试时注意 PC 机与仿真器之间始终保持通信联络,导致独立 Keil 仿真器上一个指示数据接收的 LED 不断闪亮。使用 Keil C51 时,打开界面,并非即刻能够编辑程序的窗口,需要新建文件和设置,其步骤如下:打开 Keil 的操作界面,在“Project”中选择“New uVision Project”新建一个文件,并命名(注意此时命名时不需要加后缀) ,如“温湿度”即可,确定后会弹出选择单片机的窗口。在相应的产品里选择所需要的单片机型号,本设计所用的单片机是 Atmel AT89S52,则在相应的栏目里选中。然后接下来的窗口选择“是” ,然后新建,在页面里面编辑程序,命名,要注意的是这次命名需要加后缀,如“温湿度.c” 。在主窗口侧边栏找到“Target 1” ,右击其子标题栏“Source Group 1”选择“Add 26Files to Group Source Group 1”。选择保存的“温湿度.c”文件添加,并在下拉单点击打开,此时,编译开始,指示灯亮。顺序编译,若出现错误,编译窗口下会出现错误提示,双击错误提示,则插入符号将出现在有错的地方,根据提示对程序进行修改,保存,再编译至无错,否则无法生成“HEX”格式。在主菜单栏里选择“Project”按出下拉单,选择“Options for Target Target 1 ”,在该窗口下,将晶振的频率(Xtel (MHz))设置为 12MHz,然后选择“Output”在“Create HEX File”前面打钩,OK。在继续编译后出现“create hex file from” ,编译完成,此时文件就可以被单片机识别应用,导入即可。图 5.3 Keil C51 软 件 打 开 界 面5.1.3 仿真打开用 Proteus 软件编辑好的电路图,双击单片机导入程序,如图 5.4 所示。27图 5.4 程序导入界面导入程序仿真后,如图 5.5 所示,其结果显示编辑的程序,以及电路图符合设计要求。检测精度也在范围之内。图 5.5 仿真结果图5.2 根据原理图焊接电路板28按照设计的电路图焊接电路板,原理图如图 5.6a 和图 5.6b。焊接时要牢记注意点,短路、虚焊都不要出现,在焊接每一次完成后都要认真检查有没有出现错误,避免在总体的焊接完毕后,出现不知所以的问题。 所以在焊接时严格按照电路图焊接。XTAL1XTAL2RSTVCC12233445566778899R1。P14P15P30P31P33P34P35P37VCCP00P01P02P03P04P05P06P07VCCC630pFC730pFXTAL1XTAL2上上上上12M12Y1P20P21P22P23P24P25P26P27P10P11P12P13P17P32P36C110uFRST上上上上R210KVCCEA/VPP31XTAL119XTAL218RST9P3.7(RD)17P3.6(WR)16P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P1.0(T2)1P1.1(T2EX)2P1.23P1.34P1.45P1.5(MOSI)6P1.6(MISO)7P1.7(SCK)8(AD0)P0.0 39(AD1)P0.1 38(AD2)P0.2 37(AD3)P0.3 36(AD4)P0.4 35(AD5)P0.5 34(AD6)P0.6 33(AD7)P0.7 32(A8)P2.0 21(A9)P2.1 22(A10)P2.2 23(A11)P2.3 24(A12)P2.4 25(A13)P2.5 26(A14)P2.6 27(A15)P2.7 28PSEN 29ALE/PROG 30(TXD)P3.1 11(RXD)P3.0 10GND 20VCC 40U1AT89S52P16RXDTXDALEPSENVCCMOSIMISOSCKRES1SW-PBS1S3S2S4P23P22P21P20上上/上上上上上上上上+B1。VCCR85.1KP36Q1NPNR65.1KVCCD21N4148D51N4148D61N4148D71N4148P33图 5.6a 原理图29VSS1VCC2V03RS4RW5E6A07A18A29A310A411A512A613A714BLA15BLK16LCD1602U3 LCD1602VCCW1 10KP25P26P27P00P01P02P03P04P05P06P071602上上上上VCCPOWER IN13OUT 2GNDU2L7805C3100UFC4100UF上上 上上 7805C5104。C2104VCCR31KD1VCCR710KP15上上 上1 2 3 4U4 SHT10P16VCCR41KD3R51KD4VCC VCCP14P15上 上POWER。6-15V 。图 5.6b 原理图焊接完成后检查电路板焊接情况,用万用表检查电路是否存在短路、虚焊。检查完毕确认没有问题的情况下加电测试。实物电路板如图 5.7 所示。30图 5.7 电路板实物图5.3 硬件调试5.3.1 程序下载在程序下载过程中使用的是 progisp 下载器,该下载器支持所有 AVR 芯片的编程,主要用于下载 AVR 程序和 ATM 程序。下载器装载单片机后与计算机连接,整理在 Keil 软件里编译好的程序,准备完毕后就可以下载程序。打开下 载 软 件 Progisp,点击菜单选择“调入 Flash(F)”,选择需要下载的“HEX 文件” ,打开文件,点击软件“自动”按键,软件就可以自动把程序烧录到单片机内。提示下载成功,烧录完毕。如图 5.8 所示为单片机程序烧录硬件。31图 5.8 程序下载器硬件5.3.2 检测显示在此检查无误后,下载程序进行调试。加电后,在一切正常的情况下,电源指示灯绿色亮,系统 2 秒的初始化后, LCD 正确显示温湿度。如图 5.9 所示,显示的是温度 24.7,湿度是 43.4%RH。图 5.9 温湿度显示5.3.3 控制显示 32设置界面如图 5.10 所示。T1、T2 分别问温度的上下限,H1、H2 分别为湿度的上下限。图 5.10 系统设置显示5.3.4 温度报警在温湿度上下限的报警中,当设置温度上限在 20时,如图 5.11 所示。图 5.11 温度设定上线实际温度为 25.2,高于设定的上限温度,此时系统声光报警,如图 5.12 所示。33图 5.12 温度报警5.3.5 湿度报警在相对湿度阈值报警的设置中,当把相对湿度上限设定为 40%时,如图 5.13 所示。图 5.13 初设定湿度上限实际相对湿度为 44.2%,高于设定的上限湿度值,根据程序设定系统声光报警如图5.14 所示。34图 5.14 关于湿度报警显示图6、小 结在设计中,主要是以 AT89S52 单片机为核心的,对温度和湿度的检测与控制智能化进行了简单的设计与阐述。对 MCS-51 单片机系统的温湿度检测控制原理与结构进行了论述。本次设计可以说是软硬结合,又以硬件为主,软件程序为辅。给出了检测系统与控制系统的各部分电路以及相对应的程序。采用模块化、层次化设计。用新型的智能集成温温度传感器 SHT10 主要实现对温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机 AT89S52 进行数据的分析和处理,为显示和报警电路提供信号,实现对温湿度的控制报警。报警系统根据设定报警的上下限值实现报警功能,显示部分采用字符型 TC1602 液晶显示所测温湿度值。实验证明该设计系统实现了对环境温湿度精确控制,达到了相应的效果,系统电路简单、集成度高、工作稳定、调试方便、检测精度高,具有一定的实用价值。参考文献:1 沙占友 智能化集成温度传感器原理与应用 机械工业出版社20022-52 沙占友 葛家怡 马洪涛等 集成化智能传感器原理与应用 电子工业出版社200474-813 徐爱钧 智能化测量控制仪表原理与设计 北京航空航天大学出版社2007114-126354 ATMEL 公司 AT89S52 的技术手册 5 周航慈 单片机应用程序设计技术 北京航空航天大学出版社2000189-2146 白静 数字电路与逻辑设计 西安电子科技大学出版社200937-567 何希才 常用传感器应用电路的设计与实践 科学出版社2007165-1708 何希才 传感器及其应用 国防工业出版社200174-789 张敏 基于单片机的多通道温湿度检测系统设计 机电产品开发与创新2008-2(11):23-2510张军 彭宣戈 嵌入式系统硬件抗干扰技术 嵌入式网络技术应用2006-16(2):31-3611龙泽明 顾立志 王桂莲 MCS-51 单片机原理及工程应用 国防工业出版社200542-4712刘仲娥 张维新 宋文洋 敏感元器件与应用 青岛海洋大学出版社199346-12513唐颖 单片机原理与应用及 C51 程序设计 北京大学出版社200814-1814佟玲 杨玉芬 张本华 智能温湿度监控系统的组成及发展 农机化研究2006-39(3):24-2615Cheng Huarui Du HongqiAutomatic control system of temperature and humidity in storeroom2001-17(3):17-1936致 谢回首自己走过的大学生活,心中倍感复杂,但是当我写完这篇毕业论文时,随如释负重,却又有些失落。首先我要感谢*能够给我一个继续深造的机会。诚挚的感谢我的论文指导老师*老师,他能在忙碌的教学生活中审查、修改我的论文。同时我也要感谢在这曾经教育过我的老师,在你们一丝不苟,细致严谨的作风中,我也渐渐受到你们的熏陶,他们精心的指导和严谨的思路给了我许多启发。至此,我的论文在指导老师张加宏的悉心指导下完成的。导师渊博的专业知识,严谨的逻辑思维,不仅仅教会我怎么去做,更是教会我怎么发现问题和解决问题,从选题,定题开始,一直到最后论文反反复复的修改,张老师总是以专业的标准来严格要求我,在张老师深刻细致的指导下,我的研究思维和设计理念有了很大的提高,我的毕业论文能够顺利完成还是要对张老师说声谢谢。感谢大学生活中陪伴我的同学、朋友,在他们的陪同下,我收到了很多宝贵的简易和意见,有了他们的陪伴,支持,我完成了这一设计,他们是我大学生活的一部分,不仅改善了我生活学习习惯,更让我知道了为人处事的道理。37从论文选题到搜集资料,写稿到初稿,再到反复修改,器件经历了喜悦、聒噪、彷徨和挣扎,写论文的过程中心情太复杂,但是在自己不断的探索努力及老师指导下,最终完成,心中不免有些成就感。也让我对本专业的只是有了进一步的了解,查阅书籍,翻看问下,从朦朦胧胧到豁然开朗,我感觉我在成长。这次设计使我在今后的专业工作中打下了一定的基础。因为本人专业技术水平有限,有不足之处还请阅读者包含指点。最后我希望南京信息工程大学滨江学院越办越好,也祝愿我的老师同学事业有成。机会永远在有准备的人手中!38附录#include#include#include #include #include 1602.h#include sht10.h#define uchar unsigned char#define uint unsigned int#define KEY_CANCEL 0x08#define KEY_UP 0x04#define KEY_DOWN 0x02#define KEY_ENTER 0x01/uchar xdata key_lcd_val_tmp12;/临时保存用户设置的数据,当用户按 ENTER 键时写入相应寄存器/uchar current_page=1;/记录当前正在显示的页面,初始状态显示第一页uchar is_setting_system = 0;/记录系统是否处于设置系统状态=1,默认是显示页面状态=0uint key_value = 0; /键值为零uchar key_value_valid = 0;/系统可以处理新键值uchar j;sbit Beep =P36;sbit LED_RED =P15;sbit LED_GREEN=P14; sbit KEY01=P20;sbit KEY02=P21;sbit KEY03=P22;sbit KEY04=P23; void delay(uint);void Init();void delay_LCM(uint); /LCD 延时子程序void initLCM( void); /LCD 初始化子程序void lcd_wait(void); /LCD 检测忙子程序void WriteCommandLCM(uchar WCLCM,uchar BusyC); /写指令到 ICM 子函数void WriteDataLCM(uchar WDLCM); /写数据到 LCM 子函数void DisplayOneChar(uchar X,uchar Y,uchar DData); /显示指定坐标的一个字符子函数void DisplayListChar(uchar X,uchar Y,uchar code *DData); /显示指定坐标的一串字符子函数void weishu1(float m); void display(void); 39void alarm(void);void handle_key_lcd1602(void);/处理按键与 lcd1602 显示,while 循环中直接使用/*main funcation*/void main(void) /*/uint temp,humi;/ uint Temp_CHA;/ float humi_val;/ float temp_val; /定义两个共同体,一个用于湿度,一个用于温度/ float dew_point; /用于记录露点值uchar error; /用于检验是否出现错误uchar checksum;/CRCbit temp_f;unsigned char HUMI,TEMP;HUMI=0X01;TEMP=0X02;temp_f=1;/ uchar wendu6;/用于记录温度/ uchar shidu6;/用于记录湿度/*/delay(500); /系统延时 500ms 启动/t=0; /采样值存储单元初始化为 0initLCM( );Init();LED_GREEN=0;Beep =1;delay(1000);Beep =0;WriteCommandLCM(0x01,1); /清显示屏DisplayListChar(0,0,str1);DisplayListChar(0,1,str2);s_softreset();/s_connectionreset(); /启动连接复位while(1)handle_key_lcd1602();if( is_setting_system = 0 )error=0; /初始化 error=0,即没有错误error+=s_measure(unsigned char*) /温度测量error+=s_measure(unsigned char*) /湿度测量if(error!=0) s_connectionreset(); /如果发生错误,系统复位else40 humi_val.f=(float)humi_val.i; /转换为浮点数temp_val.f=(float)temp_val.i; /转换为浮点数calc_sth10( /修正相对湿度及温度/ dew_point=calc_dewpoint(humi_val.f,temp_val.f); /计算 e dew_pointtemp=temp_val.f*10;humi=humi_val.f*10;Temp_bai=temp/1000; /温度百位Temp_shi=temp%1000/100; /温度十位Temp_ge =temp%100/10; /温度个位Temp_fen=temp%10; /温度小数点后第一位Humi_bai=humi/1000; /湿度百位Humi_shi=humi%1000/100; /湿度十位Humi_ge =humi%100/10; /湿度个位Humi_fen=humi%10; /湿度小数点后第一位 alarm();if( Temp_bai !=0) & ( Temp_bai !=1) )temp=temp*-1.0+10.0;Temp_shi=temp%1000/100; /温度十位Temp_ge =temp%100/10; /温度个位Temp_fen=temp%10; /温度小数点后第一位/*Temp_CHA=Temp_shi*100+Temp_ge*10+Temp_fen;Temp_CHA=55.0-Temp_CHA;Temp_shi=Temp_CHA/100; /温度十位Temp_ge =Temp_CHA%100/10; /温度个位Temp_fen=Temp_CHA%10; /温度小数点后第一位*/display0();elsedisplay1();display2();elsehandle_key_lcd1602();/*/void Init()41/TMOD=0x11;/TL1=0x3C;/TH1=0xB0;EA=1;/ ET1=1; /定时器 1 允许IT1=1;EX1=1; /外部中断 1 允许/ TR1=1; /定时器 1 运行/*延时 K*1ms,12.000mhz*/void delay(uint k)uint i,j;for(i=0;i=sht_temp1)Beep =1;LED_RED =0;LED_GREEN=1;delay(500);elseBeep =0;42LED_RED =1;LED_GREEN=0; if(sht_temp=sht_humi1)Beep =1;LED_RED =0;LED_GREEN=1;delay(500);elseBeep =0;LED_RED =1;LED_GREEN=0;if(sht_humi=124

温馨提示

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

评论

0/150

提交评论