📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 02/06/2009 10:34:28 PAGE 8
428 6 {
429 7 makecode=_f2_PS2;
430 7 MS[pointer]=makecode;
431 7 pointer++;
432 7 TwoMcodeFlag=0;
433 7 }
434 6 break;
435 6 case 0xef://gd-------f7
436 6 if(pointer<BUFFNUM)
437 6 {
438 7 makecode=_f7_PS2;
439 7 MS[pointer]=makecode;
440 7 pointer++;
441 7 TwoMcodeFlag=0;
442 7 }
443 6 break;
444 6 case 0xdf://id------f9
445 6 if(pointer<BUFFNUM)
446 6 {
447 7 makecode=_f9_PS2;
448 7 MS[pointer]=makecode;
449 7 pointer++;
450 7 TwoMcodeFlag=0;
451 7 }
452 6 break;
453 6 case 0xbf://f4-----o
454 6 if(pointer<BUFFNUM)
455 6 {
456 7 makecode=_o_PS2;
457 7 MS[pointer]=makecode;
458 7 pointer++;
459 7 TwoMcodeFlag=0;
460 7 }
461 6 break;
462 6 case 0x7f://#1------y
463 6 if(pointer<BUFFNUM)
464 6 {
465 7 LED2=!LED2;
466 7 makecode=_y_PS2;
467 7 MS[pointer]=makecode;
468 7 pointer++;
469 7 TwoMcodeFlag=0;
470 7 }
471 6
472 6 break;
473 6 }
474 5 }
475 4 else if(DatTemp2==0xfb)//e
476 4 {
477 5 SomeKeyKeepFlag=1;
478 5 }
479 4 break;
480 4 case 0x1f://P1.5=0
481 4 if(!SomeKeyEnableFlag)
482 4 {
483 5 SomeKeyEnableFlag=1;
484 5 switch(DatTemp2)
485 5 {
486 6 case 0xfe://tab
487 6 if(pointer<BUFFNUM)
488 6 {
489 7 makecode=_tab_PS2;
C51 COMPILER V7.50 MAIN 02/06/2009 10:34:28 PAGE 9
490 7 MS[pointer]=makecode;
491 7 pointer++;
492 7 TwoMcodeFlag=0;
493 7 }
494 6 break;
495 6 case 0xfd://a/b
496 6 if(pointer<BUFFNUM)
497 6 {
498 7 makecode=_ab_PS2;
499 7 MS[pointer]=makecode;
500 7 pointer++;
501 7 TwoMcodeFlag=0;
502 7 }
503 6 break;
504 6 case 0xfb://main
505 6 if(pointer<BUFFNUM)
506 6 {
507 7 makecode=_esc_PS2;
508 7 MS[pointer]=makecode;
509 7 pointer++;
510 7 TwoMcodeFlag=0;
511 7 }
512 6 break;
513 6 case 0xf7://down
514 6 if(pointer<BUFFNUM)
515 6 {
516 7 MS[pointer]=0xe0;
517 7 pointer++;
518 7 makecode=_down_PS2;
519 7 MS[pointer]=makecode;
520 7 pointer++;
521 7 TwoMcodeFlag=1;
522 7 }
523 6 break;
524 6 case 0xef://up
525 6 if(pointer<BUFFNUM)
526 6 {
527 7 MS[pointer]=0xe0;
528 7 pointer++;
529 7 makecode=_up_PS2;
530 7 MS[pointer]=makecode;
531 7 pointer++;
532 7 TwoMcodeFlag=1;
533 7 }
534 6 break;
535 6 case 0xdf://hand
536 6 if(pointer<BUFFNUM)
537 6 {
538 7 LED4=!LED4;
539 7 makecode=_hand_PS2;
540 7 MS[pointer]=makecode;
541 7 pointer++;
542 7 TwoMcodeFlag=0;
543 7 }
544 6 break;
545 6 case 0xbf://fappy
546 6 if(pointer<BUFFNUM)
547 6 {
548 7 LED1=!LED1;
549 7 makecode=_fap_PS2;
550 7 MS[pointer]=makecode;
551 7 pointer++;
C51 COMPILER V7.50 MAIN 02/06/2009 10:34:28 PAGE 10
552 7 TwoMcodeFlag=0;
553 7 }
554 6 break;
555 6 case 0x7f://#2-----n
556 6 if(pointer<BUFFNUM)
557 6 {
558 7 LED3=!LED3;
559 7 makecode=_n_PS2;
560 7 MS[pointer]=makecode;
561 7 pointer++;
562 7 TwoMcodeFlag=0;
563 7 }
564 6 break;
565 6 }
566 5 }
567 4 break;
568 4 case 0x3f://键盘松开
569 4 SomeKeyEnableFlag=0;
570 4 if(makecode!=0)
571 4 {
572 5 if(TwoMcodeFlag)
573 5 {//双键码
574 6 MS[pointer++]=0xe0;
575 6 MS[pointer++]=0xf0;
576 6 MS[pointer++]=makecode;
577 6 }
578 5 else
579 5 {//单键码
580 6 MS[pointer++]=0xf0;
581 6 MS[pointer++]=makecode;
582 6 }
583 5 }
584 4 break;
585 4 default://多个键盘按下
586 4 if(SomeKeyEnableFlag)//
587 4 {
588 5 SomeKeyKeepFlag=0;
589 5 SomeKeyKeepTime=0;
590 5 SomeKeyEnableFlag=0;
591 5 }
592 4 break;
593 4 }
594 3 ReadKeyOnceFlag=0;
595 3 }
596 2
597 2 //===============长时间按键处理
598 2 /*
599 2 if(SomeKeyKeepTime>=KEYKEEPTIME)
600 2 {
601 2 if(pointer<BUFFNUM)
602 2 {
603 2 SomeKeyKeepTime=0;
604 2 MS[pointer]=makecode;
605 2 pointer++;
606 2 }
607 2
608 2 }
609 2 */
610 2 //===============键盘值发送,缓冲区重整理
611 2
612 2 if(MS[0]!=0)
613 2 {
C51 COMPILER V7.50 MAIN 02/06/2009 10:34:28 PAGE 11
614 3 if(!SendByte(MS[0]))
615 3 {
616 4 for(i=0;i<BUFFNUM;i++)
617 4 MS[i]=MS[i+1];
618 4 MS[BUFFNUM]=0;
619 4 }
620 3 }
621 2 //==============指针指向第一个空缓冲区
622 2 pointer=0;
623 2 while((MS[pointer]!=0)&&(pointer<BUFFNUM))
624 2 pointer++;
625 2 //===============
626 2 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
627 2 }//for end
628 1 }//main end
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1403 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 30 1
IDATA SIZE = ---- ----
BIT SIZE = 7 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -