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

📄 function_sel.c

📁 次程序为在89S52中对红外遥控的解码程序
💻 C
字号:

#include "function.h"
#include "intrins.h"


unsigned char flag=0 ;

unsigned char m=0;
unsigned char   n=0; 
unsigned char  key=0;
unsigned char flag_up=0; 
unsigned char flag_down=0 ;
unsigned char flag_left=0 ;
unsigned char add=0;
unsigned char fb=0;
unsigned char sin=0;
unsigned char sanjb=0;
unsigned char flag_out =0;
//unsigned char flag_fb =0;
//unsigned char flag_sanjb=0;

unsigned char code rst[]={0xe4,0xc0,0xe0,0xc0,0xe0,0x32};  // 复位代码



void delay ( unsigned char a)
   {
     unsigned char j ;
 	 for(a=0;a<255;a++)
        for(j=0;j<255;j++);           //延时两秒
	}



void Function_Sel ()
  {
    //unsigned char i,c  ;
	key=ACC ;
	P3=ACC;
    switch(key)		  //遥控板的键植.
			{
				case 0xF2 :   //1健。
				     WriteLCD_Data(0x31 )	;

				    break;
				case 0xE6 :   // 2健
				     WriteLCD_Data(0x32 )	;
                    
				    break;

				case 0xE4 :    //3健
				     WriteLCD_Data(0x33 )	;
            		  
				    break; 

				case 0xFE :    //4健 
				     WriteLCD_Data(0x34 )	;                       
		
					break;
				case 0xEE :	   //5健
				    WriteLCD_Data(0x35)	;
				 

					break;
				case  0xEA :   //6健
				    WriteLCD_Data(0x36 )	;
				
					break;
			   	case 0xE8 :    //7健
				     WriteLCD_Data(0x37 )	;
            
					break; 
				case 0xF9 :    //8健
				     WriteLCD_Data(0x38 )	;                        
				
					break;
				case 0xED :	   //9健
				     WriteLCD_Data(0x39 )	;
				
					break;
				case  0xE9 :   //0健
				     WriteLCD_Data(0x30 )	;
				
					break;
				case 0xFA :    //确认健 
				 if(flag_out==0)
                  {
				   	 WriteLCD_Command(0x01);	  //清屏
					 if( sin==1)
					 {
					  WriteLCD(0x82,0,"正弦波输出    请设置输出频率频率:         Hz");
					 }
					 if( fb==1)
					 {
					  WriteLCD(0x82,0,"方波输出      请设置输出频率频率:         Hz");

					 }
					 if(sanjb==1)
					 {
					  WriteLCD(0x82,0,"三角波输出    请设置输出频率频率:         Hz");
					 }
					WriteLCD_Command(0x8A );
				  }
				  
				 if (flag_out ==1)
					{
					 WriteLCD(0x99,0,"你可以测试了");
					 flag_out=0;
					 }
				    flag_out++;

       			  	break;

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

				case 0xF1 :    //上健
				   	 WriteLCD_Command(0x01);	  //清屏
					 WriteLCD(0x82,0,"正弦波输出      方波输出        三角波输出");
				//	 WriteLCD(0x92,0,"方波输出");
				//	 WriteLCD(0x8A,0,"三角波输出");
					 flag_up++;
				     if(flag_up ==1)
				       {
					    WriteLCD_Command(0x80 );
					    WriteLCD_Data(0x04 )	;
						sin=1;
                        fb=0;
                        sanjb=0;
					   }

					     if(flag_up==2)
					        {
							 WriteLCD_Command(0x90 );
							 WriteLCD_Data(0x04);
							 sin=0;
                             fb= 1;
                             sanjb=0;
					         }

						      if(flag_up==3)
					            { 
								 WriteLCD_Command(0x88 );
							     WriteLCD_Data(0x04);
								 sin=0;
                                 fb=0;
                                 sanjb=1;
								 flag_up=0;
					            }

					break; 
				case 0xE5 :    //下健 

				case 0xF5 :	   //左健

					 break;
				case  0xE1 :   //右健

					break;
			   	case 0xE3 :    //菜单健
					WriteLCD_Command(0x01);	  //清屏
					WriteLCD(0x90,0,"功能选择请按UP键测量信号按DOWN键");
				//	WriteLCD(0x88,0,"自定义请按DOWN键");
	
					break;

				 case 0xF6 :   //开关机健。

				    break; 

				  
				 default :
					break;
			 
	}		
}
 
  

⌨️ 快捷键说明

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