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

📄 led.c

📁 基于89s52的空调模拟系统的实现
💻 C
📖 第 1 页 / 共 2 页
字号:
	function=1;
	lcd_page=2;
}

void log_control()
{
     gotoxy(0x00,0x00);
    lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab1,240);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
	function=0;
	lcd_page=1;
}

void remote_control()
{
    gotoxy(0x00,0x20);
	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab3,180);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			 
	function=0;
	lcd_page=3;
}

void up_temp_control()
{	 	 char 	delta;
	 real_temp=show[0]*10+show[1];
	 dest_temp=dest_tem[0]*10+dest_tem[1];
delta=dest_temp-real_temp;
	 if(delta>2)
	 {
	 gotoxy(0x00,0x60);
	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab8,30);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
     } 
	 else if ((delta<2))
	 {
	 gotoxy(0x00,0x60);
	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab9,30);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
	 }
}
void up_temp()
{
	 uint i;
	 gotoxy(0x00,0x00);
  	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab4,240);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
  
	 	gotoxy(0x0a,0x50);
	 for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(dest_tem[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	gotoxy(0x11,0x50);
	 for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(dest_humid[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	function=2;
	 lcd_page=2;
}

void down_temp_control()
{		 char delta;
  real_temp=show[0]*10+show[1];
	 dest_temp=dest_tem[0]*10+dest_tem[1];
delta=real_temp-dest_temp;
	 if(delta>2)
	 {
	 gotoxy(0x00,0x60);
	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab10,30);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
     } 
	 else if ((delta<2))
	 {
	 gotoxy(0x00,0x60);
	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab11,30);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
	 }
}
void down_temp()
{	 
	uint i;
	gotoxy(0x00,0x00);
  	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab5,240);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
	
	 	 	gotoxy(0x0a,0x50);
	 for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(dest_tem[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	gotoxy(0x11,0x50);
	 for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(dest_humid[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	function=3;
	 lcd_page=2;
}

void up_humidity_control()
{		 char 	delta;
  	 real_humidity=humidity[0]*10+humidity[1];
	 dest_humidity=dest_humid[0]*10+dest_humid[1];
delta=dest_humidity-real_humidity;
	 if(delta>2)
	 {
	 gotoxy(0x00,0x60);
	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab12,30);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
     } 
	 else if ((delta<2))
	 {
	 gotoxy(0x00,0x60);
	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab13,30);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
	 }
}
void up_humidity()
{
uint i;
	 	 gotoxy(0x00,0x00);
  	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab6,240);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  

	  	 	gotoxy(0x0a,0x50);
	 for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(dest_tem[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	gotoxy(0x11,0x50);
	 for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(dest_humid[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	function=4;
	 lcd_page=2;
}

void down_humidity_control()
{  	 char delta	 ;
   real_humidity=humidity[0]*10+humidity[1];
	  	 dest_humidity=dest_humid[0]*10+dest_humid[1];
	delta=real_humidity-dest_humidity;
	  if(delta>2)
	 {
	 gotoxy(0x00,0x60);
	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab14,30);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
     } 
	 else if ((delta<2))
	 {
	 gotoxy(0x00,0x60);
	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab15,30);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
	 }
}
void down_humidity()
{
	 	uint i;
		 gotoxy(0x00,0x00);
  	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab7,240);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
	
	   	 	gotoxy(0x0a,0x50);
	 for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(dest_tem[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	gotoxy(0x11,0x50);
	 for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(dest_humid[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	function=5;
	 lcd_page=2;
}

void change_control()
{
;
}
void change()
{
	uint i;
	gotoxy(0x00,0x00);
  	lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
    lcd_character(tab16,240);
    lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
	
	  gotoxy(0x0a,0x50);
	 for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(dest_tem[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	gotoxy(0x11,0x50);
	 for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(dest_humid[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	function=6;
	 lcd_page=2;
}

void incre_temp()
{
    uint i;
	temp[1]++;
	if(temp[1]>9){temp[0]++;temp[1]=0;}
	if(temp[0]>=5){temp[0]=5;temp[1]=0;}
	gotoxy(0x0a,0x20);
     for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(temp[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	 lcd_page=2;
}

void decre_temp()
{
	uint i;
	temp[1]--;
	if(temp[1]<0){temp[0]--;temp[1]=9;}
	if(temp[0]<=0){temp[0]=0;temp[1]=0;}
	gotoxy(0x0a,0x20);
     for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(temp[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	 lcd_page=2;
}

void incre_humidity()
{
     uint i;
	 humidity[1]++;
	if(humidity[1]>9){humidity[0]++;humidity[1]=0;}
	if(humidity[0]>=10){humidity[0]=9;humidity[1]=9;}
	gotoxy(0x0a,0x30);
     for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(humidity[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	 lcd_page=2;
}

void decre_humidity()
{
 uint i;
	humidity[1]--;
	if(humidity[1]<0){humidity[0]--;humidity[1]=9;}
	if(humidity[0]<=0){humidity[0]=0;humidity[1]=0;}
	gotoxy(0x0a,0x30);
     for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(humidity[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	 lcd_page=2;
}

void incre_out_humidity()
{
     uint i;
	 out_humidity[1]++;
	if(out_humidity[1]>9){out_humidity[0]++;out_humidity[1]=0;}
	if(out_humidity[0]>=10){out_humidity[0]=9;out_humidity[1]=9;}
	gotoxy(0x0a,0x40);
     for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(out_humidity[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	 lcd_page=2;
}

void decre_out_humidity()
{
 uint i;
	out_humidity[1]--;
	if(out_humidity[1]<0){out_humidity[0]--;out_humidity[1]=9;}
	if(out_humidity[0]<=0){out_humidity[0]=0;out_humidity[1]=0;}
	gotoxy(0x0a,0x40);
     for(i=0;i<2;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(out_humidity[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
	 lcd_page=2;
}



uchar touch_confirm(uint x,uint y)
{
uchar key_status=0;
if 			  ((x>150)&&(x<250)&&(y>150)&&(y<250) ) key_status=1;
else if	  ((x>630)&&(x<670)&&(y>380)&&(y<430) ) key_status=2;
else if	  ((x>550)&&(x<600)&&(y>480)&&(y<550) ) key_status=3;
else if	  ((x>480)&&(x<530)&&(y>480)&&(y<550) ) key_status=4;
else if	  ((x>400)&&(x<450)&&(y>480)&&(y<550) ) key_status=5;
else if	  ((x>300)&&(x<350)&&(y>480)&&(y<550) ) key_status=6;
else if	  ((x>200)&&(x<250)&&(y>480)&&(y<550) ) key_status=7;
else if	  ((x>150)&&(x<200)&&(y>480)&&(y<550) ) key_status=14;
else if	  ((x>550)&&(x<600)&&(y>400)&&(y<450) ) key_status=8;
else if	  ((x>550)&&(x<600)&&(y>300)&&(y<350) ) key_status=9;
else if	  ((x>450)&&(x<500)&&(y>400)&&(y<450) ) key_status=10;
else if	  ((x>450)&&(x<500)&&(y>300)&&(y<350) ) key_status=11;	
else if	  ((x>380)&&(x<430)&&(y>400)&&(y<450) ) key_status=12;
else if	  ((x>380)&&(x<430)&&(y>300)&&(y<350) ) key_status=13;							 
return(key_status);
}

void key_control(uchar status)
{
switch(status)
{
case 1:{switch(lcd_page)
			{
			case 1:{auto_perform();break;}
        	case 2:
			case 3:{log_control();break;}
			}
		break;	  }
case 2: {switch(lcd_page)
			{
		    case 2:{remote_control();break;}
			}
		 break;	 }
case 3:{switch(lcd_page)
             {
			 case 3:{auto_perform();break;}
			 }
	      break;	}
case 4:{switch (lcd_page)
			{
			case 3:{up_temp();break;}
			}
		break;			 }
case 5:{switch(lcd_page)
			{
			case 3:{down_temp();break;}
			}
		break;		  }
case 6: {switch(lcd_page)   		
			{
			case 3:{up_humidity();break;}
			}
		break;	   }
case 7:{switch(lcd_page)
			{
			case 3:{down_humidity();break;}
			}
		break;	 }
case 14:{switch(lcd_page)
			{
			case 3:{change();break;}
			}
		break;	 }
case 8:{switch(lcd_page)
            {
			case 2:{incre_temp();break;}
			}
		break;	}
case 9:{switch (lcd_page)
			{
			case 2:{decre_temp();break;}
			}
		break;	 }
case 10:{switch (lcd_page)
			{
			case 2:{incre_humidity();break;}
			}
		break;	}
case 11:{switch(lcd_page)
			{
			case 2:{decre_humidity();break;}
			}
			break;	 }
case 12:{switch (lcd_page)
			{
			case 2:{incre_out_humidity();break;}
			}
		break;	}

case 13:{switch(lcd_page)
			{
			case 2:{decre_out_humidity();break;}
			}
			break;	 }
default:break;		 
}
  
}
//.............................................
void get_touch(void) small
{
  uchar reg_rddata,i;
  uint touchx,touchy,key_status;
  
  lcd_regwrite(0xc0,0xc0);  //TOUCH ON
  
//  if((touch_test() & 0x40))
  {
    while(!(lcd_regread(0xc1) & 0x80))
	delay1(1);
    touchy = touch_y();
    touchx = touch_x();
  //  if((touchy<900)&&(touchy>100)&&(touchx<900)&&(touchx>100))
	{
	//    key_status=touch_confirm(touchx,touchy);

//	key_control(key_status);
/*	gotoxy(0x18,0x50);
	lcd_regwrite(0x12,0x91);
      lcd_datawrite(key_status+0x30);
	  	lcd_regwrite(0x12,0x90);
	  	gotoxy(0x18,0x60);
	lcd_regwrite(0x12,0x91);
      lcd_datawrite(lcd_page+0x30);
	  	lcd_regwrite(0x12,0x90);  */
	//	auto_control();
    tabx[0] = touchx/1000;
    tabx[1] = (touchx%1000)/100;
    tabx[2] = ((touchx%1000)%100)/10;
    tabx[3] = ((touchx%1000)%100)%10;
    
    taby[0] = touchy/1000;
    taby[1] = (touchy%1000)/100;
    taby[2] = ((touchy%1000)%100)/10;
    taby[3] = ((touchy%1000)%100)%10;
    
  /*  reg_rddata = lcd_regread(0x10);
    reg_rddata |= 0x10;
    lcd_regwrite(0x10,reg_rddata);	 */
    

    
    gotoxy(0x10,0x70);
    for(i=0;i<4;i++)
    {
	lcd_regwrite(0x12,0x91);
      lcd_datawrite(tabx[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }
    
    gotoxy(0x14,0x70);
    for(i=0;i<4;i++)
    {
   	lcd_regwrite(0x12,0x91);
      lcd_datawrite(taby[i]+0x30);
	  	lcd_regwrite(0x12,0x90);
    }

  /*  reg_rddata = lcd_regread(0x10);
    reg_rddata &= 0xef;
    lcd_regwrite(0x10,reg_rddata); */
    
  //  delay1 (240);
  }
 // lcd_regwrite(0xc0,0x00);  //TOUCH OFF

	}
}

//=============================================
void main (void)
{  

SP=0x60;
   P0=0xff;
   P1=0xff;
   P2=0xff;
   P3=0xff;
//	delay1(1000)	;
 lcd_reset();
 //  P0=0xff;
  lcd_initial();
//  delay1(2000);
lcd_clear();
  delay1(20);

      lcd_regwrite(0x10,0x2b);
 //  delay1(5);
    lcd_regwrite(0x00,0xcd);
    gotoxy(0x00,0x00);
	delay1(5);
	 lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
   lcd_character(tab2,240);
   
 lcd_regwrite(0x12,0x90); // memory access mode register(awrr)			  
 lcd_page=1;
// delay1(5000);
  

  while(1)
   { 
     
//   gettemp();
 
   get_touch();
 /*  if(lcd_page==2)
   {
   switch (function)
   {case 1:{auto_perform_control();break;}
   case	2:{up_temp_control();break;}
    case   3:  {down_temp_control();break;}
	case  4:  {up_humidity_control();break;}
	case 5:    {down_humidity_control();break;}  
	case 6:{change_control();break;}
	} 
   } */
  }
  }  

⌨️ 快捷键说明

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