家庭室内环境检测系统设计 毕业论文(6)

2019-04-13 20:46

天津工业大学2015届毕业论文

第四章

4.1编程语言选择

系统软件设计

C语言是在国际上应用最广泛的编程语言之一,它既可以直接对计算机产生控制作用,又涵盖了编程语言的大部分优点,其结构丰富多变,运用起来更加便捷,语言句式简便,程序构造清楚,可用于多种编程平台适应性更强。

4.2程序设计流程4.2.1温湿度测量模块

与温湿度测量电路设计相对应来设计软件模块,将DHT11传感器感应到的实测值,通过微处理器进行A/D转换成数字信号显示在数码管上。以这个数值和预设值相比较,若设定值在10~24摄氏度之间时不报警,若在此范围外,则红色二极管亮起,报警电路启动。如果下次监测得到的实测值在此范围内,则二极管报警电路停止工作[25]。

微处理器发出启动信号,DHT11从低耗能模式开启到高速运转模式,主控制器完成启动信号后,温湿度传感器发出40bit的数据,同时开启采集电路,当数据采集结束后,会自动调整回到低耗能模式。微处理器和温湿度传感器交互中:总线保持在高电压位置,主控制器会将电压降低以此等候温湿度传感器的回响。如4-1所示。

开始初始化延时采集温度值读取温度值数值转换传送数码管N温湿度超出预设值Y报警程序结束图4-1温湿度软件设计流程图

20

天津工业大学2015届毕业论文

温湿度监测模块部分程序:#includecharread_data(void);sbitDHT=P1^1;sbitled1=P2^4;

sbitLHJ_A=P2^0;//管脚定义74HC138(3-8)译码器输入控制信号线sbitLHJ_B=P2^1;sbitLHJ_C=P2^2;

/********************///宏定义,定义数码管显示第几位

#defineSMG_1LHJ_C=0;LHJ_B=0;LHJ_A=0//译码器的输入脚,全0选择第一位数码管。#defineSMG_2LHJ_C=0;LHJ_B=0;LHJ_A=1//译码器的输入脚,001选择第二位数码管。#defineSMG_3LHJ_C=0;LHJ_B=1;LHJ_A=0//同上类推#defineSMG_4LHJ_C=0;LHJ_B=1;LHJ_A=1#defineSMG_5LHJ_C=1;LHJ_B=0;LHJ_A=0#defineSMG_6LHJ_C=1;LHJ_B=0;LHJ_A=1#defineSMG_7LHJ_C=1;LHJ_B=1;LHJ_A=0#defineSMG_8LHJ_C=1;LHJ_B=1;LHJ_A=1unsignedcharledTable_P[]=

{0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x40,0x3e,0x00};unsignedcharledTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};unsignedcharshiZ,shiX,wenZ,wenX,check;unsignedchartr_shiZ,tr_shiX,tr_wenZ,tr_wenX;unsignedcharflag;unsignedintn=20,m;voiddelay_1ms(unsignedinti)

{unsignedintj=88;or(;i>0;i--){while(j>0)j--;}}voiddelay_10us()

{unsignedchari;i--;i--;i--;i--;i--;i--;}

/******************************************//************初始化及采集程序**************//******************************************/voidread_init()

{DHT=0;//主机使DHT11低电平并延时至少18msdelay_1ms(21);

21

天津工业大学2015届毕业论文

DHT=1;//主机置DHT11高电平20~40us,并等待从机相应delay_10us();delay_10us();delay_10us();delay_10us();DHT=1;if(!DHT)//从机发出相应信号

{flag=2;while((!DHT)&&flag++);flag=2;while(DHT&&flag++);//开始采集数据tr_shiZ=read_data();//采集湿度整数部分tr_shiX=read_data();//采集湿度小数部分tr_wenZ=read_data();//采集温度整数部分tr_wenX=read_data();//采集温度小数部分check=read_data();//采集校验位DHT=1;}}

/******************************************//*************温湿度读取函数***************//******************************************/charread_data()

{unsignedchari,num,temp;num=0;for(i=0;i<8;i++){flag=2;while((!DHT)&&flag++);delay_10us();delay_10us();delay_10us();if(DHT==1){temp=1;flag=2;while(DHT&&flag++);}else

temp=0;num<<=1;num|=temp;}return(num);}voidmain()

{unsignedchartemp;EA=1;ET0=1;PX0=1;PT0=0;TMOD=0x01;TR0=1;EX0=1;IT0=0;while(1){

read_init();

temp=tr_shiZ+tr_shiX+tr_wenZ+tr_wenX;if(check==temp)

{shiZ=tr_shiZ;shiX=tr_shiX;wenZ=tr_wenZ;wenX=tr_wenX;}}}voiddisplay()interrupt1

{TH0=(65536-50000)/256;TL0=(65536-50000)%6;for(m=3;m>0;m--){if(wenZ>24||wenZ<10)led1=1;if(wenZ<24&&wenZ>10)led1=0;

22

天津工业大学2015届毕业论文

SMG_1;P0=ledTable[wenX];delay_1ms(50);SMG_2;P0=ledTable[wenX/10];delay_1ms(50);SMG_3;P0=ledTable_P[wenZ];delay_1ms(50);SMG_4;P0=ledTable[wenZ/10];delay_1ms(50);SMG_5;P0=ledTable[shiX];delay_1ms(50);SMG_6;P0=ledTable[shiX/10];delay_1ms(50);SMG_7;P0=ledTable_P[shiZ];delay_1ms(50);SMG_8;P0=ledTable[shiZ/10];delay_1ms(50);}}

4.2.2燃气监测模块

如果燃气浓度超过预设好的值的时候,微处理器AT89S52通过CHO引脚将数字量转变成模拟量,触发声光警戒系统,并且阀门切断、排气扇自动开启,直到燃气浓度低于设定的值,蜂鸣器停止工作,LED指示灯依旧一直保持开启的状态。如4-2所示。

开始程序初始化气体浓度采集A/D转换采集数据>设定值Y报警程序N延时程序关闭蜂鸣器结束图4-2燃气模块程序流程

23

天津工业大学2015届毕业论文

4.2.3甲醛监测模块

该装置在检测甲醛气体时,通过ADC8032气体感应传感器将感应到的电信号通过专用器件转变成电压信号,经过微处理器AT89S52的DI引脚将电压信号转为数字信号(即模拟信号改成数字信号)。当测量数值超过设定值时,二极管发出报警。如4-3所示。

开始程序初始化气体浓度采集A/D转换采集数据>设定值Y报警程序N延时程序关闭蜂鸣器结束图4-3甲醛检测模块软件流程图

甲醛浓度采集主程序如下所示:/*----------------------------初始化AD

----------------------------*/voidInitADC()

{P1ASF=0x01;//P1^0作为模拟功能AD口

24


家庭室内环境检测系统设计 毕业论文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:蒸馏酒与配制酒中酒精度测量结果的不确定度评定

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: