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

📄 function_sel.c

📁 红外线芯片在单020片机中的使用程序。精简
💻 C
字号:

#include "function.h"
#include "intrins.h"
unsigned char   enter_flag=1 ; m=0;
unsigned char n=0; 
unsigned char c, key=0;
unsigned char  mima[6];
unsigned char code cmp[]={1,2,3,4,5,6};
unsigned char code rst[]={0xe4,0xc0,0xe0,0xc0,0xe0,0x32};  // 复位代码
//(*((void (*)())(rst)))();  // 执行上一行代码,将rst数组当函数调用
sbit  LED = P2^0;
void Delay () 
{
unsigned char j=0 ;
unsigned char y=0;
for(y=0;y<255;y++)
     for(j=0;j<255;j++);           //延时两秒  
for(y=0;y<255;y++)
     for(j=0;j<255;j++); 
 for(y=0;y<255;y++)
     for(j=0;j<255;j++);           //延时两秒  
for(y=0;y<255;y++)
     for(j=0;j<255;j++);                     
}


void Function_Sel ()
  {
	key=ACC ;
//	P3=ACC;
    switch(key)		  //遥控板的键植.
			{
				case 0xF2 :   //1健。
				  if ( enter_flag==1)
				  {
 					WriteLCD_Data(0x2A);
		   		    mima[n]=1;
					n++;
				  }
				 if ( enter_flag == 2)
				   P2=0xfe ;
				break;
				case 0xE6 :   // 2健
				  if ( enter_flag==1)
				   {
					WriteLCD_Data(0x2A);
		   		    mima[n]=2;
					n++;
				   }
				  if ( enter_flag == 2)
				     P2=0xfd ;
				break;

				case 0xE4 :    //3健
			 	  if ( enter_flag==1)
				  {
					WriteLCD_Data(0x2A);
		   		    mima[n]=3;
					n++;
				  }
				if ( enter_flag == 2)
				   P2=0xfb ;
				break; 

				case 0xFE :    //4健 
			 	  if ( enter_flag==1)
				  {                       
					WriteLCD_Data(0x2A);
		   		    mima[n]=4;
					n++;
				  }
				if ( enter_flag == 2)
				   P2=0xf7 ;
					break;
				case 0xEE :	   //5健
				  if ( enter_flag==1)
				  {
					WriteLCD_Data(0x2A);
		   		    mima[n]=5;
					n++;
				   }
				  if ( enter_flag == 2)
				   P2=0xef ;
					break;
				case  0xEA :   //6健
				   if ( enter_flag==1)
				   {
					WriteLCD_Data(0x2A);
		   		    mima[n]=6;
					n++;
					}
				if ( enter_flag == 2)
				   P2=0xdf ;
					break;
			   	case 0xE8 :    //7健
				   if ( enter_flag==1)
				   {
					WriteLCD_Data(0x2A);
		   		    mima[n]=7;
					n++;
				   }
				  if ( enter_flag == 2)
				   P2=0xbf ;
						break; 
				case 0xF9 :    //8健 
				  if ( enter_flag==1)
				  {                       
				    WriteLCD_Data(0x2A);
		   		    mima[n]=8;
					n++;
				   }
		  	   if ( enter_flag == 2)
				   P2=0x7f ;
					break;
				case 0xED :	   //9健
				  if ( enter_flag==1)
				  {
 					WriteLCD_Data(0x2A);
		   		    mima[n]=9;
					n++;
				  }
					break;
				case  0xE9 :   //0健
				  if ( enter_flag==1)
				  {
 					WriteLCD_Data(0x2A);
		   		    mima[n]=0;
					n++;
				   }
					break;
				case 0xFA :    //确认健
				   enter_flag++ ;
				  	n=0;
				    for (c=0;c<=5;c++ )
				       {
				   	   	if (mima[c]==cmp[c] )
						 {
						   n++;
						  }
					    }
					if(n==6)
					   {
					   	WriteLCD_Command(0x01);	  //清屏
					    WriteLCD(0x90,0,"系统启动........");  
						Delay();
						Delay();
						WriteLCD_Command(0x01);	  //清屏
					    WriteLCD(0x91,0 ,"开关打开了!!");
						LED=0 ; 
						Delay();
					    }
					  
					else
					  {
					   WriteLCD_Command(0x01);	  //清屏 
					   WriteLCD(0x8A,0,"密码错误");
 					   Delay();
					   WriteLCD_Command(0x01);	  //清屏 
					   WriteLCD(0x81,0,"重新输入密码");	                
					   WriteLCD_Command(0x8A);
					   enter_flag = 1 ;
					   n=0;
					   c=0;	 
					   }

       			  		break;

				 case 0xF3 :	   //后退健
				     (*((void (*)())(rst)))();
					 break;

				case 0xF1 :    //上健

						break; 
				case 0xE5 :    //下健 
				  break;

				case 0xF5 :	   //左健

					break;
				case  0xE1 :   //右健

					break;
			   	case 0xE3 :    //菜单健

					break;

				 case 0xF6 :   //开关机健。

				    break; 
				 default :
					break;
			  // WriteLCD_Command(0x98) ;
         }	
  }
 

⌨️ 快捷键说明

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