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

📄 fj4.asm

📁 接收遥控器
💻 ASM
📖 第 1 页 / 共 2 页
字号:
            while (TI==0);
            TI=0;

            if (vol_adj)
            	vol_display();
            else
            	led_display();

            SBUF=fjfs_da3;
            while (TI==0);
            TI=0;
                          
            if (vol_adj)
            	vol_display();
            else
            	led_display();
            
            SBUF=fjfs_da2+fjfs_da3;
            while (TI==0);
            TI=0;

            sio_ri();
            if (!no_sio_da)
              {
         	     RI=0;
          	     fjjs_da3=SBUF; 
               }        
            else
               	return;
        	                  
            fjjs_da3=~fjjs_da3;
            if ((fjjs_da3&0x7f)==addr)
               {
                  delay_a=0;
	              led_normal=0;
              	  sio_ri(); 
                  if (!no_sio_da)
                    {
         	           RI=0;
         	           fjjs_da4=SBUF;
                     }        
                   else
                 	  return;
          
                  sio_ri();
                  if (!no_sio_da)
                    {
         	           RI=0;
         	           fjjs_da5=SBUF;
                    }
                    else
                 	  return;                    
                    
                  sio_ri();
                  if (!no_sio_da)
                    {
         	           RI=0;
         	           fjjs_da6=SBUF; 
                    }        
                   else 
                 	  return;                                
                  delay_a=0;
	              led_normal=0;
                  SM2=1;
                  data_cl();
     	       }
         }                    
	}
}

void sio_ri()
{
    unsigned int i;
    i=2500;   //1500
    no_sio_da=0;
    RI=0;
    while(!RI)
    {
    	i--;
	    if (display_bz==1)
	    {
           if (vol_adj)
           	   vol_display();
            else
               led_display();
	    }

    	if (i==0)
    	{
    	   no_sio_da=1;	
    	   break;
	     }
	}	
}

/*----------------------------------------------------------*/
void key_k1()
{

   question=0;
   fun_code=(fun_code+1)&0x03;
   led_state=led_state&0xf8|fun_select[fun_code];	
   switch (fun_code)
   {
   	case 0:
  	    w_busy=1;
        w_use=1;
        fjfs_da3=fun0_2*10+fun0_3;          
   	    lednum_a=0x0a;
   	    lednum_b=(fjfs_da3)/10;
   	    lednum_c=(fjfs_da3)%10;
        break;
   	case 1:
  	    w_busy=1;
        w_use=1;
   	    lednum_a=0x0c;
        lednum_b=0x0c;
        lednum_c=0x0c;
        fjfs_da3=addr;
        break;        
   	case 2:
  	    w_busy=1;
        w_use=1;
        fjfs_da3=fun2_1*100+fun2_2*10+fun2_3;
        lednum_a=(fjfs_da3)/100;
        lednum_b=((fjfs_da3)%100)/10;
        lednum_c=((fjfs_da3)%100)%10;
        break;        
   	case 3:
   	    lednum_a=0x0a;
        fjfs_da3=fun3_2*10+fun3_3;  
  	    lednum_b=(fjfs_da3+1)/10;
   	    lednum_c=(fjfs_da3+1)%10;
   }
    fjfs_da2=((fun_code+1)<<4)&0x70;
    fjfs_da2|=question;
}

/*----------------------------------------------------------*/
void key_k2()
{
   question=0;
   switch (fun_code)
   {
   	case 0:
//  	    w_busy=1;
//          w_use=1;
        break;        
   	case 1:
//  	    w_busy=1;
//          w_use=1;
        break;        
   	case 2:
  	    w_busy=1;
        w_use=1;
        if (fun2_1<2)
            fun2_1++;
        else
            fun2_1=0;
        lednum_a=(fun2_1*100+fun2_2*10+fun2_3)/100;
        break;        
   	case 3:
   	    ;
   }
}

/*----------------------------------------------------------*/
void key_k3()
{
   question=0;
   switch (fun_code)
   {
   	case 0:
  	    w_busy=1;
        w_use=1;
        if (fun0_2<0x09)
            fun0_2++;
        else
            fun0_2=0;
        lednum_b=(fun0_2*10+fun0_3)/10;
        break;        
   	case 1:
  	    w_busy=1;
        w_use=1;
        break;        
   	case 2:
  	    w_busy=1;
        w_use=1;
   	    if (fun2_1==2)
   	       lednum_max=5;
   	    else
   	       lednum_max=9;   	       
        if (fun2_2<lednum_max)
            fun2_2++;
        else
            fun2_2=0;
        lednum_b=((fun2_1*100+fun2_2*10+fun2_3)%100)/10;
        break;        
   	case 3:
        if (fun3_2<0x01)
            fun3_2++;
        else
            fun3_2=0;
        fjfs_da3=fun3_2*10+fun3_3;
  	    lednum_b=(fjfs_da3+1)/10;
   }

}

/*----------------------------------------------------------*/
void key_k4()
{
   question=0;
   switch (fun_code)
   {
   	case 0:
  	    w_busy=1;
        w_use=1;
        if (fun0_3<0x09)
            fun0_3++;
        else
            fun0_3=0;
        lednum_c=(fun0_2*10+fun0_3)%10;
        break;        
   	case 1:
  	    w_busy=1;
        w_use=1;
        break;        
   	case 2:
  	    w_busy=1;
        w_use=1;
   	    if ((fun2_1==2)&(fun2_2==5))
   	       lednum_max=5;
   	    else
   	       lednum_max=9;   	        
        if (fun2_3<lednum_max)
            fun2_3++;
        else
            fun2_3=0;
        lednum_c=((fun2_1*100+fun2_2*10+fun2_3)%100)%10;
        break;        
   	case 3:
        if (fun3_2==1)
            lednum_max=5;
        else
            lednum_max=9;              
        if (fun3_3<lednum_max)
            fun3_3++;
        else
            fun3_3=0;
        fjfs_da3=fun3_2*10+fun3_3;
        lednum_c=(fjfs_da3+1)%10;
   }
}

/*----------------------------------------------------------*/
void key_k5()
{
  ok_sta1=0;
  switch (fun_code)
   {
   	case 0:
   	    if (ok0_push)
   	    {
   	       ok0_push=0;
           question=0x01;
           fjfs_da2=((fun_code+1)<<4)&0x70;
           fjfs_da2|=question;
           fjfs_da3=fun0_2*10+fun0_3;  
        }  
        break;        
        
   	case 1:
   	    if (ok1_push)
   	    {
   	       ok1_push=0;
           question=0x01;   	       
           fjfs_da2=((fun_code+1)<<4)&0x70;
           fjfs_da2|=question;       
           fjfs_da3=addr;  
        }  
        break;        
        
   	case 2:
   	    if (ok2_push)
   	    {
   	       ok2_push=0;
           question=0x01;   	       
           fjfs_da2=((fun_code+1)<<4)&0x70;
           fjfs_da2|=question;
           fjfs_da3=fun2_1*100+fun2_2*10+fun2_3;     	
        }  
        break;
        
   	case 3:
   	    if (ok3_push)
   	    {
   	       ok3_push=0;
           question=0x01;   	       
           fjfs_da2=((fun_code+1)<<4)&0x70;
           fjfs_da2|=question;
           fjfs_da3=fun3_2*10+fun3_3;  
        }  
   }

   beep_b=0;
   sound_=0;
   w_busy=1;
   w_use=1;
	
}

/*----------------------------------------------------------*/
void key_k6()
{
   ok_sta1=1;
   question=1;
   fjfs_da2=((fun_code+1)<<4)|0x80;
   fjfs_da2|=question;
    switch (fun_code)
   {
   	case 0:
        gb_ask=1;
   	    ok0_push=1;
        fjfs_da3=fun0_2*10+fun0_3;
        break;        
   	case 1:
        gb_ask=1;
        fjfs_da3=addr;
   	    ok1_push=1;
        break;        
   	case 2:
        gb_ask=1;
   	    ok2_push=1;
        fjfs_da3=fun2_1*100+fun2_2*10+fun2_3;     	
        break;        
   	case 3:
   	    ok3_push=1;
        fjfs_da3=fun3_2*10+fun3_3;  
   }
}

void data_cl()
{
    temp_da4=fjjs_da4&0x0f;
    fjjs_da4=fjjs_da4>>4;
    fjjs_da5|=0x44;
    temp_da5=fjjs_da5&0x0f; 
    fjjs_da5=fjjs_da5>>4;
    temp_da6=fjjs_da6&0x0f;
    fjjs_da6=fjjs_da6>>4;
    
    bit_temp=((old_da3==fjjs_da3)&(old_da4==fjjs_da4)&(old_da5==fjjs_da5)&(old_da6==fjjs_da6));
    
    if ((temp_da4==fjjs_da4)&(temp_da5==fjjs_da5)&(temp_da6==fjjs_da6)&(!bit_temp))
       {
         old_da3=fjjs_da3;
         old_da4=fjjs_da4;
         old_da5=fjjs_da5;
         old_da6=fjjs_da6;
         question=0;
         bit_temp=(fjjs_da3&0x80)&&(addr==0);
         if (bit_temp&&force_bit) 
	         return;
      	 if (bit_temp&&(!force_bit))
      	  {
 		     vol_adj=1;  gb_ask=0;   sound_=1;
             ok_sta1=1;  w_busy=1;   w_use=0;
             cancel_sta1=0;          force_bit=1;
      	     return;
  		   }

	     if (!bit_temp&&force_bit)
           {	     
              vol_adj=0;    cancel_sta1=0;
          	  force_bit=0;  w_busy=1;   w_use=1;
              sound_=0;     beep_b=0;   ok_sta1=0;
         	  ok0_push=0;   ok1_push=0;
         	  ok2_push=0;   ok3_push=0;
              talking=0;              
              fjfs_da2=((fun_code+1)<<4)&0x70;
              fjfs_da2|=question;
 			  return;	                
            }
           
//         led_state&=0xf8|fun_select[fun_code];
//         if ((!(fjjs_da4==addr)) &&((fjjs_da6&&0x7)==0x4))   //2004.09.15
         
         if (!(fjjs_da4==addr))
           {
//  	         	  question=1; 
              lednum_a=0x0a;
              fun3_2=(fjjs_da4+1)/10;
              lednum_b=(fjjs_da4+1)/10;
         	  fun3_3=fjjs_da4%10;
         	  lednum_c=(fjjs_da4+1)%10;
         	  sound_=1;
         	  ok3_push=1;
     	      fun_code=0x03;         	  
              led_state=led_state&0xf8|fun_select[fun_code];
              temp_da4=fjfs_da2&0x80;
//  	            fjfs_da2=((fun_code+1)<<4)|temp_da4;
//		            fjfs_da2|=question;
       	      fjfs_da2=((fun_code+1)<<4)|0x80;
           	  fjfs_da2|=question;
   	          fjfs_da3=fun3_2*10+fun3_3;  
        	 }
         
	     
//	     if (!((fjjs_da6&&0x7)==(fun_code+1)))
//	         return;
	         
         switch(fjjs_da5&0x03)
           {
             case 0:
	     	    w_busy=1;
	            w_use=1;
                break;
             case 1:
                led_state=led_state&0xf8|fun_select[fun_code];	
	            vol_adj=1;
   	            gb_ask=0;
                sound_=1;
                ok_sta1=1;
	     	    w_busy=1;
    	        w_use=0;
           	    cancel_sta1=0;
           	    if (fun_code==0x03)
           	       ok3_push=1;
//         	    fjfs_da2=((fun_code+1)<<4)|0x80;
//             	fjfs_da2|=question;
         	    break;
         	 case 2:
                vol_adj=0;
	            w_busy=0;
	            w_use=1;
                sound_=0;
	            beep_b=0;                
	            ok_sta1=0;
         	    ok0_push=0;
         	    ok1_push=0;
         	    ok2_push=0;
         	    ok3_push=0;
                fjfs_da2=((fun_code+1)<<4)&0x70;
                fjfs_da2|=question;
         	    break;
         	  case 3:
//   	            gb_ask=0; 
	            vol_adj=0;
       	        cancel_sta1=0;
//          	    force_bit=0;
	            w_busy=1;
	            w_use=1;
                sound_=0;
	            beep_b=0;
	            talking=0;
	            ok_sta1=0;
         	    ok0_push=0;
         	    ok1_push=0;
         	    ok2_push=0;
         	    ok3_push=0;
                fjfs_da2=((fun_code+1)<<4)&0x70;
                fjfs_da2|=question;
     	   }
       }
}

⌨️ 快捷键说明

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