/******************************************************************************** Copyright (C), Sinowealth Electronic. Ltd. Author: Sino Version: V0.0 Date: 2020/04/26 History: V2.0 2020/04/26 Preliminary ********************************************************************************/ #include "Main.h" BOOL bLedDisFlg; //LED显示标志 BOOL bLedDisBleFlg; //蓝牙开启时显示 U8 xdata ucLedTimeCnt; U8 xdata ucLedChgFlickCnt; U8 xdata ucLedBleFlickCnt; /************************************************************************************************* * 函数名: LedGetDisNum * 参 数: Rsoc:剩余容量百分比 * 返回值: 无 * 描 述: 根据剩余容量百分比,计算当前显示的LED数 *************************************************************************************************/ U8 LedGetDisNum(U16 Rsoc) { if(Rsoc > 80) { return 5; } else if(Rsoc > 60) { return 4; } else if(Rsoc > 40) { return 3; } else if(Rsoc > 20) { return 2; } else if(Rsoc > 0) { return 1; } else { return 0; } } /************************************************************************************************* * 函数名: LedAutoOff * 参 数: 无 * 返回值: 无 * 描 述: 按键显示LED持续5S后,关闭LED显示 *************************************************************************************************/ void LedAutoOff(void) { if(bLedDisFlg) { if(++ucLedTimeCnt >= 100) //100*50mS { ucLedTimeCnt = 0; bLedDisFlg = 0; } } } /************************************************************************************************* * 函数名: LedDisplay * 参 数: 无 * 返回值: 无 * 描 述: 显示LED 充电时,充电LED指示灯以500mS周期闪烁 蓝牙开启时,蓝牙指示灯以250mS周期闪烁 显示容量时,LED开启5s后,自动熄灭 *************************************************************************************************/ void LedDisplay(void) { U8 LedDisNum; if(bCHGING) //显示充电状态 { if(++ucLedChgFlickCnt >= 10) //10*50mS { ucLedChgFlickCnt = 0; IO_LED_CHARGE ^= 1; } } else { IO_LED_CHARGE = 0; } if(bLedDisBleFlg) //显示蓝牙开启状态 { if(++ucLedBleFlickCnt >= 5) //5*50mS { ucLedBleFlickCnt = 0; // IO_LED_BLE ^= 1; } } else { // IO_LED_BLE = 0; } if(bLedDisFlg) //显示容量信息 { LedDisNum = LedGetDisNum(Info.uiRSOC); if(LedDisNum == 0) { // LEDAllOff(); } if(LedDisNum == 1) { // LED1On(); } else if(LedDisNum == 2) { // LED1On(); LED2On(); } else if(LedDisNum == 3) { // LED1On(); LED2On(); LED3On(); } else if(LedDisNum == 4) { // LED1On(); LED2On(); LED3On(); LED4On(); } else if(LedDisNum == 5) { // LEDAllOn(); } } else { // LEDAllOff(); } LedAutoOff(); //定时5s关闭容量LED显示 }