📄 irrecv.lst
字号:
388 1 }
389
390
391 /*******************************************************************
392 ** 函 数 名: convertIRRCode()
393 ** 输 入:
394 ** irrCode -- 红外码值
395 ** 输 出:
396 ** -- 键盘码值
397 ** 描 述: 将红外码值转换成对应的键盘码值。
398 ** 全局变量: 无
399 ** 调用模块: 无
400 ** 被调模块:
401 ** OnIRRecv -- 检测到正确的红外接收码后,通过IIC发送给主控
402 ** 作 者: 金雨和
403 ** 创建日期: 2005年11月02日
404 ** 修 改:
405 ** 日 期 版本 修改人 修改内容
406 ** 1.
407 ********************************************************************/
408 unsigned char convertIRRCode(unsigned char irrCode)
409 {
410 1 unsigned char rslt;
411 1
412 1 switch(irrCode)
413 1 {
414 2 case 0x1F:
415 2 rslt = 0x52;
416 2 break;
417 2 case 0x05:
418 2 rslt = 0x53;
419 2 break;
420 2 case 0x19:
421 2 rslt = 0x54;
422 2 break;
423 2 case 0x54:
424 2 rslt = 0x51;
425 2 break;
426 2 case 0x0A:
427 2 rslt = 0x32;
C51 COMPILER V7.09 IRRECV 12/05/2005 10:23:18 PAGE 8
428 2 break;
429 2 case 0x08:
430 2 rslt = 0x42;
431 2 break;
432 2 case 0x4A:
433 2 rslt = 0x38;
434 2 break;
435 2 case 0x44:
436 2 rslt = 0x34;
437 2 break;
438 2 case 0x0E:
439 2 rslt = 0x33;
440 2 break;
441 2 case 0x0C:
442 2 rslt = 0x48;
443 2 break;
444 2 case 0x4E:
445 2 rslt = 0x40;
446 2 break;
447 2 case 0x53:
448 2 rslt = 0x3B;
449 2 break;
450 2 case 0x12:
451 2 rslt = 0x37;
452 2 break;
453 2 case 0x10:
454 2 rslt = 0x3F;
455 2 break;
456 2 case 0x52:
457 2 rslt = 0x39;
458 2 break;
459 2 case 0x5C:
460 2 rslt = 0x3A;
461 2 break;
462 2 case 0x14:
463 2 rslt = 0x36;
464 2 break;
465 2 case 0x16:
466 2 rslt = 0x41;
467 2 break;
468 2 case 0x56:
469 2 rslt = 0x3E;
470 2 break;
471 2 case 0x57:
472 2 rslt = 0x56;
473 2 break;
474 2 case 0x02:
475 2 rslt = 0x50;
476 2 if(QUIETLED)
477 2 QUIETLED = 0;
478 2 else
479 2 QUIETLED = 1;
480 2 break;
481 2 case 0x59:
482 2 rslt = 0x49;
483 2 break;
484 2 case 0x00:
485 2 rslt = 0x4F;
486 2 if(MUTELED)
487 2 MUTELED = 0;
488 2 else
489 2 MUTELED = 1;
C51 COMPILER V7.09 IRRECV 12/05/2005 10:23:18 PAGE 9
490 2 break;
491 2 case 0x18:
492 2 rslt = 0x55;
493 2 break;
494 2 case 0x07:
495 2 rslt = 0x44;
496 2 break;
497 2 case 0x55:
498 2 rslt = 0x3C;
499 2 break;
500 2 case 0x15:
501 2 rslt = 0x43;
502 2 break;
503 2 case 0x58:
504 2 rslt = 0x47;
505 2 break;
506 2 case 0x43:
507 2 rslt = 0x57;
508 2 break;
509 2 case 0x5D:
510 2 rslt = 0x45;
511 2 break;
512 2 case 0x42:
513 2 rslt = 0x58;
514 2 break;
515 2 case 0x4F:
516 2 rslt = 0x46;
517 2 break;
518 2 default :
519 2 rslt = 0xFF;
520 2 break;
521 2 }
522 1 return rslt;
523 1 }
524
525
526 /*******************************************************************
527 ** 函 数 名: OnIRRecv()
528 ** 输 入: 无
529 ** 输 出: 无
530 ** 描 述: 检测到正确的红外接收码后,通过IIC发送给主控
531 ** 全局变量:
532 ** g_rsData -- 红外键码
533 ** g_ucI2CSendBuf_Len --发送的IIC数据长度
534 ** g_ucI2CSendBuf -- 发送的IIC数据缓冲
535 ** g_ucI2CSendBuf_offset -- 发送的IIC数据缓冲偏移值
536 ** 调用模块:
537 ** SendDataToBsp -- 通知CPU,IIC有数据发送
538 ** convertIRRCode -- 将红外码值转换成对应的键盘码值
539 ** 被调模块:
540 ** main -- 主控函数
541 ** 作 者:
542 ** 创建日期: 2005年11月01日
543 ** 修 改:
544 ** 日 期 版本 修改人 修改内容
545 ** 1.
546 ********************************************************************/
547 void OnIRRecv()
548 {
549 1 unsigned char sndCode;
550 1 if(g_rsFlag) //if Remote not active,waiting
551 1 {
C51 COMPILER V7.09 IRRECV 12/05/2005 10:23:18 PAGE 10
552 2 //IR_LED = 1; //turn on the led if a key coming
553 2 g_rsFlag= 0; //Ready for next ir receiving
554 2
555 2 /* 通过IIC发送数据给CPU */
556 2 sndCode = convertIRRCode(g_rsData);
557 2 if(sndCode == 0xFF)
558 2 return;
559 2 g_ucI2CSendBuf_Len = 2;
560 2 g_ucI2CSendBuf[0] = IRR;
561 2 g_ucI2CSendBuf[1] = sndCode;
562 2 g_ucI2CSendBuf_offset = 0;
563 2 IICSendIntToCPU(); //通知CPU,IIC有数据发送
564 2 }
565 1 else
566 1 {
567 2 ;//IR_LED = 0; //turn off the led if no key pressed
568 2 }
569 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 871 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
IDATA SIZE = ---- ----
BIT SIZE = 5 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -