keyproc.lst
来自「一个带收音的功放程序, VFD显示驱动用一个非常实用的方法, 稍加修改即可换成不」· LST 代码 · 共 804 行 · 第 1/5 页
LST
804 行
616 5 else
617 5 {
618 6 if(Current_State == TUNER)
619 6 Tuner_MuteOFF_Display();
620 6 Mute_Switch = 0;
621 6 AV_STANDBY = 0;
622 6 }
623 5
624 5 break;
625 5
626 5 case KEY_0:
627 5 case KEY_1:
628 5 case KEY_2:
629 5 case KEY_3:
630 5 case KEY_4:
631 5 case KEY_5PLUS:
632 5 if(Current_State == TUNER)
633 5 Proc_Tuner_Memory();
634 5 break;
635 5
636 5 case MEMORY_KEY:
637 5 if(Current_State == TUNER)
638 5 {
639 6 if(Memory_Start == 0)
640 6 {
641 7 String_Display[0] = 'M';
642 7 String_Display[1] = 'E';
643 7 String_Display[2] = 'M';
644 7 String_Display[3] = '0';
645 7 String_Display[4] = '0';
646 7 VFD_DisplayString(String_Display,5);
647 7 Memory_Start = 1; //存贮标志
648 7 NumberKey_Dealed = 0;
649 7 TO_MAIN_DISPLAY = 400;
650 7 Digital_Number = 0;
651 7 }
652 6 else
653 6 {
654 7 if(Digital_Number > 0)
655 7 {
656 8 if(FM_AM_Select == FM_MODE)
657 8 {
658 9
659 9 I2C_PutByte(A24C02, (Digital_Number-1)* 2 + FM_Start, DeltFMFreq & 0xFF );
660 9 DelayX1ms(2);
661 9 I2C_PutByte(A24C02, (Digital_Number-1)* 2 + FM_Start + 1, (BYTE) ((DeltFMFreq & 0xFF00) >> 8) )
-;
662 9 }
663 8 else
664 8 {
665 9 I2C_PutByte(A24C02, (AM_Start + Digital_Number - 1), (BYTE)(DeltAMFreq & 0xFF) );
666 9 }
667 8 }
668 7 Memory_Start = 0;
669 7 NumberKey_Dealed = 0;
670 7 String_Display[3] = (Digital_Number / 10) + '0';
671 7 String_Display[4] = (Digital_Number % 10) + '0';
672 7 TO_MAIN_DISPLAY = 80;
673 7 Digital_Number = 0;
674 7 VFD_DisplayString(String_Display,5);
C51 COMPILER V7.20 KEYPROC 06/30/2005 14:02:57 PAGE 12
675 7 }
676 6 }
677 5 break;
678 5
679 5 default:
680 5 break;
681 5 }
682 4
683 4 }
684 3 }
685 2 Current_Key = NO_KEY;
686 2 }
687 1 }
688
689
690
691 void Power_Proc(void)
692 {
693 1 if(POWER_Status == 0)
694 1 {
695 2 Tuner_Channel_Init();
696 2 FMAM_PRESSED = 0;
697 2 Auto_Scan_Enable = Auto_Scan_Stop;
698 2 Auto_Scan_Start = 0;
699 2 Manual_Scan_Flag = 0;
700 2 Auto_Is_Reach = 0;
701 2 Mono_Stereo_Select = Tuner_STEREO;
702 2 FM_AM_Select = FM_MODE;
703 2 Channel_Display = 100;
704 2 VFD_WriteLedPort(0x0);
705 2 Tuner_Open();
706 2 VFD_DisplayOn();
707 2 DelayX1ms(10);
708 2 Mute_Switch = 0;
709 2 Volume_Control = 1;
710 2 Current_State = TUNER;
711 2 Source_Set();
712 2 Current_Volume = 15; //所有的总音量
713 2 Center_Volume = 15; //中置音量
714 2 BASS_Volume = 15; //重低音音量
715 2 SL_Volume = 15; //SL音量
716 2 SR_Volume = 15; //SR音量
717 2 FL_Volume = 15; //FL音量
718 2 FR_Volume = 15; //FR音量
719 2 Memory_Start = 0;
720 2 Digital_Number = 0;
721 2 Volume_Tune(ALLCH_Vol);
722 2 TO_MAIN_DISPLAY = 25;
723 2 POWER_Status = 1;
724 2 AV_STANDBY = 0;
725 2
726 2
727 2 }
728 1 else if(POWER_Status == 1)
729 1 {
730 2 Volume_Control = 0;
731 2 AV_STANDBY = 1;
732 2 Current_State = STANDBY;
733 2 VFD_WriteLedPort(0xF);
734 2 VFD_ClearALL();
735 2 Mute_Switch = 1;
736 2 Current_State = STANDBY;
C51 COMPILER V7.20 KEYPROC 06/30/2005 14:02:57 PAGE 13
737 2 POWER_Status = 0;
738 2
739 2 }
740 1 Current_Key = NO_KEY;
741 1 }
742
743 void Difference_Value(void)
744 {
745 1 if(VOL_Difference == 10)
746 1 {
747 2 String_Display[3] = '1';
748 2 String_Display[4] = '0';
749 2 }
750 1 else
751 1 {
752 2 String_Display[3] = '0';
753 2 String_Display[4] = '0' + VOL_Difference;
754 2 }
755 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2190 ----
CONSTANT SIZE = 69 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?