温度光强采集报警系统概要_第1页
温度光强采集报警系统概要_第2页
温度光强采集报警系统概要_第3页
温度光强采集报警系统概要_第4页
温度光强采集报警系统概要_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

实验总成绩: 装 订 线报告份数: 温度光强采集报警系统通信与信息工程学院 专业课程设计报告专业班级: 学生姓名: 学号(班内序号): 年 月 日一、设计内容1题目:温度光强采集报警系统 基本部分要求:(1)采用单片机温度的采集。(2)通过者液晶显示采集到的数字。(3)当温度超过设定的值进行声光报警,用发光二极管闪烁报警。发挥部分要求:(1)将采集到的数据通过串口传给PC ,PC 端进行显示。(2)通过按键可以切换华氏温度和摄氏温度显示。2设计思路本次课程设计主要是51单片机温度的采集,采集到的数字显示在液晶屏上。通过键盘控制温度的上限,当温度超过上限时,采用二极管闪烁和蜂鸣器鸣响进行声光报警。4*4矩阵键盘控制温度上限以及切换华氏温度和摄氏温度显示。主要涉及了温度的测量、显示以及实现简单控制。硬件方面有五个模块,即AT89S52单片机主控模块、DHT11传感器模块、LCD1602液晶显示模块、报警模块以及4*4键盘模块。其中AT89S52单片机主控模块已经给出,我们只需适当增加驱动电路即可。传感器模块使用的是DHT11数字温湿度传感器。通过DHT11检测出当前环境下的温湿度,将所测数据交给AT单片机进行分析和处理,并分别存入不同数组以便显示时候用。1602液晶显示模块就是实现温度检测值和上限值的显示。其分两行显示,上边一行显示湿度,下边显示温度上限值,正常工作的时候可以通过按键调节上限值,当温度超过上限值时,二极管闪烁并且蜂鸣器鸣响报警。通过虚拟终端显示检测到的温度值。报警模块实现了检测值超过上限值的时候二极管闪烁并且蜂鸣器鸣响报警。无论温度超出范围二极管和蜂鸣器都是以相同频率的闪烁及声音进行报警提示。提醒此时温度数据出现异常、需及时调整实验室内温度。4*4矩阵键盘模块通过+(加)-(减)两个按键来上限值设置功能;通过*(乘)/(除)两个按键来切换华氏温度和摄氏温度转换功能。3、 设计和学习步骤(1)分析题目并查找资料;(2)编写程序并用Proteus仿真;(3)在实物上进行液晶的调试;(4)传感器实物的调试;(5)加装键盘模块和二极管蜂鸣器报警模块的实物调试。4、总体设计框图按照系统功能的具体要求,在保证实现其功能的基础上,尽可能降低系统成本。总体设计方案围绕上述思想,初步确定系统的方案如下图所示。仿真时使用SHT11代替DHT11液晶1602LCDDHT11温度传感器超上限报警模块4*4键盘模块单片机最小系统从图中可以看出,系统单片机最小系统模块、DHT11传感器模块、1602字符液晶显示模块、4*4矩阵键盘模块、报警模块组成。在方案设计中,外围模块采用并行控制,以简化系统,提高控制精度。该设计以AT89S52单片机为控制核心,实现温湿度采集及显示的基本功能。5、DHT11传感器简介(查找的资料)DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。(1)引脚介绍:Pin1:(VDD),电源引脚,供电电压为35.5V。Pin2:(DATA),串行数据,单总线。Pin3:(NC),空脚,请悬浮。Pin4(VDD),接地端,电源负极。(2)接口说明 :建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。(3)数据帧的描述:DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。(4)电气特性:VDD=5V,T = 25,除非特殊标注表2-1 DHT11的电气特性参数条件Mintypmax单位供电DC355.5V供电电流测量0.52.5mA平均0.21mA待机100150uA采样周期秒1次注:采样周期间隔不得低于1秒钟。(5)时序描述:用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。二、电路图 1、总体电路连接图 本次课程设计使用的主控模块是由老师给出的一个AT89S52为核心的最小系统。使用的时候将P1口作为与液晶的数据传输口,P2口作为键盘的数据传输口,P1.0P1.1作为与传感器SHT11通信的数据口, P3.4P3.6作为分别于液晶的E和RS、RW端相连接,以控制液晶显示;P1.6接蜂鸣器控制端,P1.7接二极管控制端,以控制报警模块工作。2、各模块控制电路图(1)51单片机固定端口模块连接图(2)4*4矩阵按键模块连接图(3)液晶显示连接图(4)传感器与二极管和蜂鸣器报警模块连接图三、上机程序部分代码:#ifndef _TOU_H_#define _TOU_H_#include#include #define uint unsigned int#define uchar unsigned charenum TEMP;sbit RS = P35;sbit RW = P36;sbit E = P34;sfr DBPort = 0x80; /P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口sbit DATA = P11;sbit SCK = P10;sbit LED=P17; /定义led输出端口sbit SPK=P16; /定义喇叭端口unsigned char frq; void DelayUs2x(unsigned char t);/函数声明 void DelayMs(unsigned char t);void DelayUs2x(unsigned char t) while(-t);void DelayMs(unsigned char t) while(t-) DelayUs2x(245); DelayUs2x(245); /* DS1602函数声明 */void LCD_Initial();void GotoXY(unsigned char x, unsigned char y);void Print(unsigned char *str);void LCD_Write(bit style, unsigned char input);/* SHT10函数声明 */void s_connectionreset(void);char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode);void calc_sth10(float *p_temperature);#endif#define noACK 0/继续传输数据,用于判断是否结束通讯#define ACK 1 /结束数据传输;/#define STATUS_REG_W 0x06 /000 0011 0/#define STATUS_REG_R 0x07 /000 0011 1#define MEASURE_TEMP 0x03 /000 0001 1#define RESET 0x1e /000 1111 0/写字节程序char s_write_byte(unsigned char value) unsigned char i,error=0; for (i=0x80;i0;i=1) /高位为1,循环右移 if (i&value) DATA=1; /和要发送的数相与,结果为发送的位 else DATA=0; SCK=1; _nop_();_nop_();_nop_(); /延时3us SCK=0;DATA=1; /释放数据线SCK=1; error=DATA; /检查应答信号,确认通讯正常_nop_();_nop_();_nop_();SCK=0; DATA=1;return error; /error=1 通讯错误/读字节程序char s_read_byte(unsigned char ack) unsigned char i,val=0;DATA=1; /释放数据线for(i=0x80;i0;i=1) /高位为1,循环右移 SCK=1; if(DATA) val=(val|i); /读一位数据线的值 SCK=0; DATA=!ack; /如果是校验,读取完后结束通讯;SCK=1; _nop_();_nop_();_nop_(); /延时3us SCK=0; _nop_();_nop_();_nop_(); DATA=1; /释放数据线return val;/启动传输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; /连接复位void s_connectionreset(void) unsigned char i; DATA=1; SCK=0; /准备for(i=0;i9;i+) /DATA保持高,SCK时钟触发9次,发送启动传输, SCK=1; SCK=0;s_transstart(); char s_softreset(void) unsigned char error=0; s_connectionreset(); /启动连接复位error+=s_write_byte(RESET); /发送复位命令return error; /error=1 通讯错误char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode) unsigned error=0;unsigned int i;s_transstart(); /启动传输switch(mode) /选择发送命令 case TEMP : error+=s_write_byte(MEASURE_TEMP); break; /测量温度 default : break; for (i=0;i28) SPK=SPK; DelayMs(100); /调用延时程序;更改延时数字可以更改延时长度;LED=LED; /将P口赋值 0,对外输出低电平 DelayMs(100); /调用延时程序;更改延时数字可以更改延时长度; /#includetypedef union /定义共用同类型 unsigned int i;float f; value;void main() unsigned int temp;value temp_val;/定义wenduunsigned char error; /用于检验是否出现错误unsigned char checksum;/CRC uchar wendu6;/用于记录摄氏温度/华氏度 = 32 + 摄氏度 1.8LCD_Initial(); /初始化液晶 GotoXY(0,0); /选择温度显示位置 Print(TEMP: C); /5格空格/GotoXY(0,0);/Print(TEMP2: %F)/打印华氏温度s_connectionreset(); /启动连接复位while(1)error=0; /初始化error=0,即没有错误error+=s_measure(unsigned char*)&temp_val.i,&checksum,TEMP); /温度测量 if(error!=0) s_connectionreset(); /如果发生错误,系统复位 else temp_val.f=(float)temp_val.i; /转换为浮点数 calc_sth10(&temp_val.f); /修正相对温度 temp=temp_val.f*10; GotoXY(5,0);/设置温度显示位置 wendu0=temp/1000+0; /温度百位 wendu1=temp%1000/100+0; /温度十位 wendu2=temp%100/10+0;/温度个位 wendu3=0x2E;/小数点 wendu4=temp%10+0;/温度小数点后第一位Print(wendu);/输出温度 LEDSPK(unsigned int)wendu);/华氏度 = 32 + 摄氏度 1.8 /wendu2=32+wendu*1.8;/Print(wendu2); DelayMs(800); /等待足够长的时间,以现行下一次转换 4、 调试结果及结论 结论里我用的是完整的程序,自己画了仿真图。(1)本系统所要实现的功能是:1.温度实时检测及显示。通过LCD1602实时地显示传感器SHT11检测到的温度值,并且固定时间检测更新显示一次。2.报警上限值的手动设置。通过三个按键实现温度值的设置,使得系统更加人性化、智能化,具有更高的实用价值。3.当温度超出上限值时能自动报警。通过蜂鸣器发出声音并使闪烁灯闪烁实现报警,以提醒用户做出相应的改进措施。(2)仿真图实现的内容:1、显示检测到的温度(27摄氏度)及上限值(30摄氏度):2、通过*(乘)按键来切换到华氏温度;/(除)按键切换到摄氏温度3、通过+(加)-(减)两个按键来设置上限值(26摄氏度)低于当前温度,二极管闪烁及蜂鸣器鸣响报警。(3)课题的背景资料温度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度湿度的检测与控制。并且随着人们生活水平的提高,人们对自己的生存环境越来越关注。而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度湿度的检测及控制就非常有必要了。8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实力也很多。使用8051单片机能够实现温湿度全程的自动控制,而且8051单片机易于学习掌握,性价比高。使用8051型单片机设计温湿度控制系统,可以即时精确的反应温室内的温度以及适度的变化。完成诸如升温到特定的温度、降温到特定的温度。在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。将此系统应用到温室当中无疑为植被生长提供了更加适宜的环境。对于大棚种植和花圃、花卉栽培,必须在某些特定环境安装温湿度装置对其进行监控。本系统可以及时、精确的反映室内的温度以及湿度的

温馨提示

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

最新文档

评论

0/150

提交评论