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

📄 ifr_ir.lst

📁 里面包含了LCD显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
 292   2                switch(cycle1)
 293   2                  {
 294   3                        case 0:if(dat_dat<=9) 
 295   3                                         {
 296   4                                                temp[0]=dat_dat;b_light=0;b_repeat=0;b_light1=0;number_ent=0;                   
 297   4                                         }
 298   3                                       else if(b_light)
 299   3                                         {if(dat_dat==0x0b){b_check=1;}else if(dat_dat==0x0c){b_check1=1;}}
 300   3                                       else if(b_repeat)
 301   3                                         {if(dat_dat==0x0b){b_check=1;}else if(dat_dat==0x0c){b_check1=1;}}
 302   3                                       else {b_keychoose1=1;}
 303   3                                       break;
C51 COMPILER V7.50   IFR_IR                                                                09/17/2007 09:47:22 PAGE 6   

 304   3                        case 1:
 305   3                                       if(dat_dat<=9)
 306   3                                         {
 307   4                                               temp[1]=temp[0]*10+dat_dat;
 308   4                                         }
 309   3                                       else if(dat_dat==0x0b){b_check=1;}
 310   3                                       else if(dat_dat==0x0c){b_check1=1;}
 311   3                       break;
 312   3                        case 2:
 313   3                       if(dat_dat<=9)
 314   3                                              {
 315   4                                                temp[2]=temp[1]*10+dat_dat;number_d=dat_dat;
 316   4                                              }
 317   3                                       else if(dat_dat==0x0b){b_check=1;}
 318   3                                       else if(dat_dat==0x0c){b_check1=1;}
 319   3                               break;
 320   3                        case 3:
 321   3                       if(dat_dat<=9){b_keychoose1=1;}
 322   3                                       else if(dat_dat==0x0b){b_check=1;}
 323   3                                       else if(dat_dat==0x0c){b_check1=1;}
 324   3      
 325   3                                       if(temp[1]>25){b_keychoose1=1;}
 326   3                                       else {if(number_d>5){b_keychoose1=1;}}                                                  
 327   3                                       break;
 328   3                        case 4:b_keychoose1=1;break;
 329   3                        default:break;
 330   3                      }
 331   2                 cycle1++;
 332   2               }
 333   1                if(b_keychoose1)
 334   1                  {
 335   2                    cycle1=0;b_check1=0;b_check=0;
 336   2                        b_keychoose1=0;
 337   2                      }
 338   1      
 339   1                if(b_check1||b_check)
 340   1                 {
 341   2                        if(b_check){b_keytwo=1;}
 342   2                        else if(b_check1)     {b_keythree=1;}
 343   2                        
 344   2                        if(cycle1==1)
 345   2                          {
 346   3                            cycle1=0;
 347   3                                b_checkok=1;
 348   3                                if(!b_light1) 
 349   3                                 {
 350   4                                   b_zero=0;
 351   4                                 }
 352   3                          }
 353   2                        else if(cycle1==2)
 354   2                          {
 355   3                                temp[3]=temp[0];
 356   3                                if(temp[3]==0x00)b_light1=1;
 357   3                                cycle1=0;
 358   3                                b_checkok=1;
 359   3                              }
 360   2                        else if(cycle1==3)
 361   2                          {
 362   3                                temp[3]=temp[1]%256;
 363   3                                if(temp[3]==0x00){b_zero=0;}
 364   3                                cycle1=0;
 365   3                                b_checkok=1;            
C51 COMPILER V7.50   IFR_IR                                                                09/17/2007 09:47:22 PAGE 7   

 366   3                              }
 367   2                        else if(cycle1==4)
 368   2                          {
 369   3                                temp[3]=temp[2]%256;
 370   3                                if(temp[3]==0x00){b_zero=0;}
 371   3                                cycle1=0;
 372   3                                b_checkok=1;                    
 373   3                              }                             
 374   2                 }       
 375   1           if(b_checkok)
 376   1                {
 377   2                        b_checkok=0;
 378   2                        b_send1=1;
 379   2      
 380   2                        if((!number_ent)&&((!b_repeat)&&(!b_light)))
 381   2                          {
 382   3                               number_ent=temp[3];
 383   3                               data_com(temp[3]);
 384   3                              }
 385   2                        else
 386   2                         {
 387   3                                data_com(number_ent);
 388   3                         }
 389   2                }   
 390   1      }
 391          
 392          //****************************************************
 393          //function:
 394          //input   :无  
 395          //output  :无   
 396          //modify  :2007-9-10     
 397          //*****************************************************
 398          void fuzhi(void)
 399           {
 400   1         eeprom_eares(0x8400);
 401   1         eeprom_write(0x8400,0x7f);
 402   1         eeprom_write(0x8401,0x80);
 403   1         eeprom_write(0x8402,0x07);
 404   1         eeprom_write(0x8403,0x08);
 405   1         eeprom_write(0x8404,0x09);
 406   1         eeprom_write(0x8405,0x0A);
 407   1         eeprom_write(0x8406,0x1B);
 408   1         eeprom_write(0x8407,0x1F);
 409   1         eeprom_write(0x8408,0x0C);
 410   1         eeprom_write(0x8409,0x0D);
 411   1         eeprom_write(0x840a,0x0E);
 412   1         eeprom_write(0x840b,0x06);
 413   1         eeprom_write(0x840c,0x01);
 414   1         eeprom_write(0x840d,0x03);
 415   1       }
 416          
 417          //****************************************************
 418          //function:
 419          //input   :无  
 420          //output  :无   
 421          //modify  :2007-9-10     
 422          //*****************************************************
 423          void ifr_key_deal(uchar dat1)
 424            {
 425   1                 b_send=1;
 426   1      
 427   1                if(keyvalue==1)
C51 COMPILER V7.50   IFR_IR                                                                09/17/2007 09:47:22 PAGE 8   

 428   1                  {
 429   2                          if(dat1==eeprom_read(0x8002)) {checkok(0x01);}
 430   2                     else if(dat1==eeprom_read(0x8003)) {checkok(0x02);}
 431   2                     else if(dat1==eeprom_read(0x8004)) {checkok(0x03);}
 432   2                     else if(dat1==eeprom_read(0x8005)) {checkok(0x04);}
 433   2                     else if(dat1==eeprom_read(0x8006)) {checkok(0x05);}
 434   2                     else if(dat1==eeprom_read(0x8007)) {checkok(0x06);}
 435   2                     else if(dat1==eeprom_read(0x8008)) {checkok(0x07);}
 436   2                     else if(dat1==eeprom_read(0x8009)) {checkok(0x08);}
 437   2                     else if(dat1==eeprom_read(0x800a)) {checkok(0x09);}
 438   2                     else if(dat1==eeprom_read(0x800b)) {checkok(0x00);}
 439   2                     else if(dat1==eeprom_read(0x800c)) {checkok(0x0b);}
 440   2                     else if(dat1==eeprom_read(0x800d)) {checkok(0x0c);}
 441   2                  }
 442   1                 else if(keyvalue==2)
 443   1                   {
 444   2                          if(dat1==eeprom_read(0x8402)) {checkok(0x01);}
 445   2                     else if(dat1==eeprom_read(0x8403)) {checkok(0x02);}
 446   2                     else if(dat1==eeprom_read(0x8404)) {checkok(0x03);}
 447   2                     else if(dat1==eeprom_read(0x8405)) {checkok(0x04);}
 448   2                     else if(dat1==eeprom_read(0x8406)) {checkok(0x05);}
 449   2                     else if(dat1==eeprom_read(0x8407)) {checkok(0x06);}
 450   2                     else if(dat1==eeprom_read(0x8408)) {checkok(0x07);}
 451   2                     else if(dat1==eeprom_read(0x8409)) {checkok(0x08);}
 452   2                     else if(dat1==eeprom_read(0x840a)) {checkok(0x09);}
 453   2                     else if(dat1==eeprom_read(0x840b)) {checkok(0x00);}
 454   2                     else if(dat1==eeprom_read(0x840c)) {checkok(0x0b);}
 455   2                     else if(dat1==eeprom_read(0x840d)) {checkok(0x0c);}                 
 456   2                       }
 457   1      
 458   1        }
 459           
 460          //****************************************************
 461          //function:LEM2200数据的重组      
 462          //input   :无
 463          //output  :无    
 464          //modify  :2007-7-05    
 465          //*****************************************************
 466          void data_com(uchar K_ifr_Dat)
 467           {
 468   1               uchar I_tx_buf[18]=0;
 469   1      
 470   1               if((K_ifr_Dat==0)&&(b_zero))
 471   1                 {
 472   2                        temp[0]=K_ifr_Dat;b_light=1;b_repeat=0;
 473   2                 }
 474   1               else
 475   1                {
 476   2                       temp[0]=K_ifr_Dat+ADDR_ID0[2];b_repeat=1;b_light=0;
 477   2            }
 478   1                         
 479   1              if(!b_study)  //只有进入学习时此标志才为 1
 480   1                {
 481   2      
 482   2                        I_tx_buf[0]=ADDR_ID0[0];      //基地址
 483   2                    I_tx_buf[1]=ADDR_ID0[1];
 484   2                        I_tx_buf[2]=temp[0];
 485   2      
 486   2                        I_tx_buf[5]=b_zero;
 487   2                        b_zero=1;
 488   2      
 489   2                        if(b_keytwo){I_tx_buf[3]=3;}
C51 COMPILER V7.50   IFR_IR                                                                09/17/2007 09:47:22 PAGE 9   

 490   2                        else if(b_keythree){I_tx_buf[3]=5;}
 491   2                        b_keytwo=0; b_keythree=0;
 492   2      
 493   2                       I_tx_buf[4] = temp[0];
 494   2                   Lme_Data_Write(I_tx_buf,18);//写数据带发送命令
 495   2                       delay(100);
 496   2                } 
 497   1              else if(b_study==1)       //只有进入学习时此标志才为 1   
 498   1                {                             
 499   2                      if(b_send1) //发射时为1,返回来一个值时为0  
 500   2                       {
 501   3                              b_send1=0;
 502   3                              led_ray11(2);
 503   3                              I_tx_buf[0]=ADDR_ID0[0];
 504   3                      I_tx_buf[1]=ADDR_ID0[1];
 505   3                              I_tx_buf[2]=temp[0];
 506   3                              I_tx_buf[3]=0x55;
 507   3                              I_tx_buf[5]=0x99;
 508   3                      I_tx_buf[6]=0x99;
 509   3                              Lme_Data_Write(I_tx_buf,18);    
 510   3                      }
 511   2               }   
 512   1       }
 513                  
 514          //****************************************************
 515          //function:       
 516          //input   :无     
 517          //output  :无    
 518          //modify  :2007-9-11  
 519          //*****************************************************
 520          bit Find_ifrcode2(void)
 521           {
 522   1         uchar i;
 523   1      
 524   1         if((eeprom_read(0x8401)==ifr_buf[0])&&(eeprom_read(0x8400)==ifr_buf[1]))
 525   1           { 
 526   2                for(i=2;i<14;i++)
 527   2              {
 528   3                         if(eeprom_read(0x8400+i)==ifr_buf[2])
 529   3                           {
 530   4                                 keyvalue=2;return 1;
 531   4                               }
 532   3                  }
 533   2                }
 534   1      
 535   1         if((eeprom_read(0x8000)==ifr_buf[0])&&(eeprom_read(0x8001)==ifr_buf[1]))
 536   1           {
 537   2                for(i=2;i<14;i++)
 538   2              {
 539   3                         if(eeprom_read(0x8000+i)==ifr_buf[2])
 540   3                           {
 541   4                                 keyvalue=1;return 1;
 542   4                               }
 543   3                  }
 544   2                }
 545   1       }
 546          
 547          //****************************************************
 548          //function:       
 549          //input   :无
 550          //output  :无     
 551          //modify  :2007-9-11    
C51 COMPILER V7.50   IFR_IR                                                                09/17/2007 09:47:22 PAGE 10  

 552          //*****************************************************
 553          void ifr_administer(void)
 554            {
 555   1           if(!b_ifr)return;
 556   1               b_ifr=0;
 557   1               if(Find_ifrcode2())      //find code   
 558   1                {      
 559   2                       ifr_key_deal(ifr_buf[2]);
 560   2                }     
 561   1        }
 562          
 563          
 564          //****************************************************
 565          //function:       
 566          //input   :无
 567          //output  :无    
 568          //modify  :2007-9-11  
 569          //*****************************************************
 570          void rx_led_on_off(uchar r_led_buf[])
 571           {
 572   1         add_show(r_led_buf[0],r_led_buf[1],r_led_buf[2],r_led_buf[3]);
 573   1       }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2233    ----
   CONSTANT SIZE    =     21    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6      34
   IDATA SIZE       =     10    ----
   BIT SIZE         =     11       4
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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