C51 COMPILER V9.01 KEYAPP 02/19/2025 10:42:27 PAGE 1 C51 COMPILER V9.01, COMPILATION OF MODULE KEYAPP OBJECT MODULE PLACED IN .\output\KeyApp.obj COMPILER INVOKED BY: D:\Tool\Keil\C51\BIN\C51.EXE code_app\KeyApp.c LARGE OPTIMIZE(7,SIZE) REGFILE(.\output\MCUCore_Load -.ORC) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage;.\code_classb\iec60730_lib\include;.\cod -e_classb\iec60730_proc\Include;.\code_classb\config) DEBUG OBJECTEXTEND PRINT(.\output\KeyApp.lst) OBJECT(.\output\KeyAp -p.obj) line level source 1 /******************************************************************************** 2 Copyright (C), Sinowealth Electronic. Ltd. 3 Author: Sino 4 Version: V0.0 5 Date: 2020/04/26 6 History: 7 V2.0 2020/04/26 Preliminary 8 ********************************************************************************/ 9 #include "Main.h" 10 11 12 U8 xdata ucDsgingSpeed; 13 14 /************************************************************************************************* 15 * 函数名: KeySwitchSpeed 16 * 参 数: 无 17 * 返回值: 无 18 * 描 述: 按键调速,分为三挡 19 *************************************************************************************************/ 20 void KeySwitchSpeed(void) 21 { 22 1 bSlowDischarge = 0; 23 1 bMidDischarge = 0; 24 1 bFastDischarge = 0; 25 1 if(bDSGING) 26 1 { 27 2 if(ucDsgingSpeed == 0) 28 2 { 29 3 ucDsgingSpeed = 1; 30 3 bMidDischarge = 1; 31 3 McuPWM2Set(E2uiDSG1PWMFreq ,E2ucDSG1PWMRatioH); 32 3 McuPWM2En(); 33 3 } 34 2 else if(ucDsgingSpeed == 1) 35 2 { 36 3 ucDsgingSpeed = 2; 37 3 bFastDischarge = 1; 38 3 McuPWM2Set(E2uiDSG1PWMFreq, 100); 39 3 McuPWM2En(); 40 3 } 41 2 else 42 2 { 43 3 ucDsgingSpeed = 0; 44 3 bSlowDischarge = 1; 45 3 McuPWM2Set(E2uiDSG1PWMFreq ,E2ucDSG1PWMRatioL); 46 3 McuPWM2En(); 47 3 } 48 2 } 49 1 else 50 1 { 51 2 bSlowDischarge = 0; 52 2 bMidDischarge = 0; C51 COMPILER V9.01 KEYAPP 02/19/2025 10:42:27 PAGE 2 53 2 bFastDischarge = 0; 54 2 } 55 1 } 56 57 58 /************************************************************************************************* 59 * 函数名: KeyProcess 60 * 参 数: 无 61 * 返回值: 无 62 * 描 述: 当检测到有效按键后,处理对应按键 63 *************************************************************************************************/ 64 void KeyProcess(void) 65 { 66 1 if(bKeyFlg) 67 1 { 68 2 bKeyFlg = 0; //同一按键一直被按下,如果持续的时间足够长,则会先触发长按, -后触发长按持续,但目前我们没有用到长按持续状态 69 2 switch(ucKeyValue) 70 2 { 71 3 case KEY_ON_S: 72 3 KeySwitchSpeed(); 73 3 break; 74 3 75 3 case KEY_LED_S: 76 3 bLedDisFlg = 1; 77 3 ucLedTimeCnt = 0; 78 3 break; 79 3 80 3 case KEY_LED_L: //长按LED进PD模式 81 3 bPDFlg = 1; 82 3 break; 83 3 84 3 case KEY_ON_L: //长按唤醒按键2S,蓝牙电源开启/关闭 85 3 bLedDisBleFlg = ~bLedDisBleFlg; 86 3 if(bLedDisBleFlg) 87 3 { 88 4 BlueToothPowerEn(); 89 4 } 90 3 else 91 3 { 92 4 BlueToothPowerDis(); 93 4 } 94 3 break; 95 3 96 3 default: 97 3 break; 98 3 } 99 2 } 100 1 } 101 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 150 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = 1 ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)