📄 ifr_ir.lst
字号:
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 + -