ZDBMS/output/Led.lst

185 lines
7.4 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

C51 COMPILER V9.01 LED 02/13/2025 10:07:27 PAGE 1
C51 COMPILER V9.01, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN .\output\Led.obj
COMPILER INVOKED BY: D:\Tool\Keil\C51\BIN\C51.EXE code_app\Led.c LARGE OPTIMIZE(7,SIZE) REGFILE(.\output\MCUCore_Load.OR
-C) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage;.\code_classb\iec60730_lib\include;.\code_c
-lassb\iec60730_proc\Include;.\code_classb\config) DEBUG OBJECTEXTEND PRINT(.\output\Led.lst) OBJECT(.\output\Led.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 BOOL bLedDisFlg; //LED显示标志
13 BOOL bLedDisBleFlg; //蓝牙开启时显示
14 U8 xdata ucLedTimeCnt;
15 U8 xdata ucLedChgFlickCnt;
16 U8 xdata ucLedBleFlickCnt;
17
18 /*************************************************************************************************
19 * 函数名: LedGetDisNum
20 * 参 数: Rsoc剩余容量百分比
21 * 返回值: 无
22 * 描 述: 根据剩余容量百分比计算当前显示的LED数
23 *************************************************************************************************/
24 U8 LedGetDisNum(U16 Rsoc)
25 {
26 1 if(Rsoc > 80)
27 1 {
28 2 return 5;
29 2 }
30 1 else if(Rsoc > 60)
31 1 {
32 2 return 4;
33 2 }
34 1 else if(Rsoc > 40)
35 1 {
36 2 return 3;
37 2 }
38 1 else if(Rsoc > 20)
39 1 {
40 2 return 2;
41 2 }
42 1 else if(Rsoc > 0)
43 1 {
44 2 return 1;
45 2 }
46 1 else
47 1 {
48 2 return 0;
49 2 }
50 1 }
51
52
53 /*************************************************************************************************
C51 COMPILER V9.01 LED 02/13/2025 10:07:27 PAGE 2
54 * 函数名: LedAutoOff
55 * 参 数: 无
56 * 返回值: 无
57 * 描 述: 按键显示LED持续5S后关闭LED显示
58 *************************************************************************************************/
59 void LedAutoOff(void)
60 {
61 1 if(bLedDisFlg)
62 1 {
63 2 if(++ucLedTimeCnt >= 100) //100*50mS
64 2 {
65 3 ucLedTimeCnt = 0;
66 3 bLedDisFlg = 0;
67 3 }
68 2 }
69 1 }
70
71 /*************************************************************************************************
72 * 函数名: LedDisplay
73 * 参 数: 无
74 * 返回值: 无
75 * 描 述: 显示LED
76 充电时充电LED指示灯以500mS周期闪烁
77 蓝牙开启时蓝牙指示灯以250mS周期闪烁
78 显示容量时LED开启5s后自动熄灭
79 *************************************************************************************************/
80 void LedDisplay(void)
81 {
82 1 U8 LedDisNum;
83 1
84 1 if(bCHGING) //显示充电状态
85 1 {
86 2 if(++ucLedChgFlickCnt >= 10) //10*50mS
87 2 {
88 3 ucLedChgFlickCnt = 0;
89 3 IO_LED_CHARGE ^= 1;
90 3 }
91 2 }
92 1 else
93 1 {
94 2 IO_LED_CHARGE = 0;
95 2 }
96 1
97 1 if(bLedDisBleFlg) //显示蓝牙开启状态
98 1 {
99 2 if(++ucLedBleFlickCnt >= 5) //5*50mS
100 2 {
101 3 ucLedBleFlickCnt = 0;
102 3 // IO_LED_BLE ^= 1;
103 3 }
104 2 }
105 1 else
106 1 {
107 2 // IO_LED_BLE = 0;
108 2 }
109 1
110 1 if(bLedDisFlg) //显示容量信息
111 1 {
112 2 LedDisNum = LedGetDisNum(Info.uiRSOC);
113 2 if(LedDisNum == 0)
114 2 {
115 3 // LEDAllOff();
C51 COMPILER V9.01 LED 02/13/2025 10:07:27 PAGE 3
116 3 }
117 2 if(LedDisNum == 1)
118 2 {
119 3 // LED1On();
120 3 }
121 2 else if(LedDisNum == 2)
122 2 {
123 3 // LED1On();
124 3 LED2On();
125 3 }
126 2 else if(LedDisNum == 3)
127 2 {
128 3 // LED1On();
129 3 LED2On();
130 3 LED3On();
131 3 }
132 2 else if(LedDisNum == 4)
133 2 {
134 3 // LED1On();
135 3 LED2On();
136 3 LED3On();
137 3 LED4On();
138 3 }
139 2 else if(LedDisNum == 5)
140 2 {
141 3 // LEDAllOn();
142 3 }
143 2 }
144 1 else
145 1 {
146 2 // LEDAllOff();
147 2 }
148 1
149 1 LedAutoOff(); //定时5s关闭容量LED显示
150 1 }
151
152
153
154
155
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 174 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 3 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)