⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wenshidu.c

📁 利用keil 51实现温湿度模块的控制程序
💻 C
字号:
#include<reg52.h>
#include <absacc.h>
#include <intrins.h>
 #define uint unsigned int
#define uchar unsigned char
 sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_0=P2^0;

#include  "display_led.H"
#include  "get_freq.H"
#include  "get_hum.H"
#include  "qudoudong.H"
#include  "delay2s.H"
#include  "delay5ms.H"
 #include  "ds18b20.H"


void main(){
bit flag=0;
float tt;//中间变量
uint t;//中间变量
float alarm_temp=40;//原始温度报警值
float alarm_hum=80;//原始湿度报警值
for (;;)
{if(P2_5==0) 
    {dlms();if(P2_5==0)
    	        {if (flag ==0) 
    	        	   {tt=ds1820();
    	        		  display_led(tt);
    	        	 	  flag=1;}}//显示温度
               else {t=getfreq();
               	     tt=get_hum(t);
               	      diaplay_led(tt);
               	       flag=0;}}     //显示湿度
 else   {if(flag==0)  
 	         {tt=ds1820();
 		           display_led(tt);
 		          flag=0;}}//无键按下显示温度
         else {(flag==1) 
       	      {t=getfreq();
       	     	tt=get_hum(t);
       	 	    diaplay_led(tt);
       	 	      flag=1;}}

 if(P2_4==0)//按一次报警值减一
    {dlms();if(P2_4==0)  
 	             {if(flag==1) 
 	             	 {display_led(alarm_temp);//显示温度的时候设置温度
 		              while()
 		                {if(P2_4==0) 
 		                {dlms();if(P2_4==0) 
 		                	      {alarm_temp--;
 		                	      display_led(alarm_temp);}}
 		                        if(P2_6==0)
 		                        	{dlms();
 		                        	if(P2_6==0) break;}}}}}//按下s4退出
 		 	         else  {display_led(alarm_hum);//显示湿度的时候设置温度
 		 			           while()
 		                    {if(P2_4==0) 
 		                    	  {dlms();if(P2_4==0) 
 		                                {alarm_hum--;
 		                    	          display_led(alarm_hum);}}
 		                         if(P2_6==0)
 		                         	{dlms();	
 		                           if(P2_6==0)  break;}}}//按下s4退出
 if(P2_7==0)//按一次报警值加一
	   {dlms();if(P2_7==0)  
 	             {if(flag==1) {display_led(alarm_temp);
 		              while()
 		                 {if(P2_7==0) {dlms();
 		                 	if(P2_7==0) 
 		                 		{alarm_temp++;
 		                 	display_led(alarm_temp);}}
 		                    if(P2_6==0)
 		                    	{dlms();
 		                    	if(P2_6==0) break;}}}}}
 		 	        else  {display_led(alarm_hum);
 		 			           while()
 		                    {if(P2_7==0)  
 		                    	{dlms();if(P2_7==0)
 		                    		       { alarm_hum++;
 		                    		      display_led(alarm_hum);}}
 		                               if(P2_6==0)
 		                               	{dlms();
 		                               		if(P2_6==0) break;}}}
	
	
 
 if(P2_6==0)  //进入休眠省电状态
  {delay2s() ;
  	if(P2_6==0) 
  		{ P1_0=0;
  			P1_1=0; 
  			 P2_0=0;
  			 P2_1=0;
  			 P2_2=0;
  			 P_3=0;    
	       while() 
	       {if (P2_6==0)
	       	    {delay2s();if(P2_6==0) break;}}}}//长按后退出

}
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -