469 lines
20 KiB
Plaintext
469 lines
20 KiB
Plaintext
C51 COMPILER V9.57.0.0 SYSTEM 06/14/2024 11:08:37 PAGE 1
|
||
|
||
|
||
C51 COMPILER V9.57.0.0, COMPILATION OF MODULE SYSTEM
|
||
OBJECT MODULE PLACED IN .\Objects\system.obj
|
||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\UsrSrc\system\system.c ROM(COMPACT) OPTIMIZE(9,SIZE) BROWSE INCDIR(..
|
||
-\UsrInc\adc;..\UsrInc\charger;..\UsrInc\discharge;..\UsrInc\gpio;..\UsrInc\hall;..\UsrInc\i2c_simu;..\UsrInc\inc;..\UsrI
|
||
-nc\key;..\UsrInc\led;..\UsrInc\mtp;..\UsrInc\pwm;..\UsrInc\sleep;..\UsrInc\system;..\UsrInc\uart;..\UsrInc\userapp;..\Us
|
||
-rInc\vox;..\UsrInc\vox_comm;..\UsrInc\watchdog;..\UsrInc\bat;..\UsrInc\timer) DEBUG OBJECTEXTEND CODE PRINT(.\Listings\s
|
||
-ystem.lst) TABS(2) OBJECT(.\Objects\system.obj)
|
||
|
||
line level source
|
||
|
||
1 /*
|
||
2 ******************************************************************************
|
||
3 *
|
||
4 * @file system.c
|
||
5 * @brief system module
|
||
6 *
|
||
7 *
|
||
8 * @version 1.0
|
||
9 * @date 2022/08/04 15:00:40
|
||
10 * @author Alex Xu
|
||
11 *
|
||
12 * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd.
|
||
13 * All Rights Reserved
|
||
14 *
|
||
15 * History:
|
||
16 * Revision Date Author Desc
|
||
17 * 1.0.0 2022/08/15 Alex build this file
|
||
18 * Attention:1、由于同一个Byte的中断标志位,会分配在不同的中断中,对于清中断标志位(写1清),不能用 |= ,<>
|
||
-枰<><E69EB0> = ;
|
||
19 例如:IRQ_FLAG10 = 0x02; //Clear bit0,bit1 interrupt flag
|
||
20 2、外部中断0,主要是用于系统唤醒功能,中断处理函数中无需作逻辑功能处理,必需预留接口!
|
||
21 ******************************************************************************/
|
||
22 /*_____ I N C L U D E S ____________________________________________________*/
|
||
23
|
||
24 #include "system.h"
|
||
25 #include "gpio.h"
|
||
26 #include "adc.h"
|
||
27 #include "hall.h"
|
||
28 #include "key.h"
|
||
29 #include "sleep.h"
|
||
30 #include "uart.h"
|
||
31 #include "bat.h"
|
||
32 #include "sys_tim.h"
|
||
33 #include "charger_module.h"
|
||
34 #include "discharge_module.h"
|
||
35 #include "led.h"
|
||
36 #include "vox_module.h"
|
||
37 #include "watchdog.h"
|
||
38 #include "userapp.h"
|
||
39
|
||
40 /******************************************************************************\
|
||
41 Macro definitions
|
||
42 \******************************************************************************/
|
||
43
|
||
44 /******************************************************************************\
|
||
45 Variables definitions
|
||
46 \******************************************************************************/
|
||
47
|
||
48 /******************************************************************************\
|
||
49 Functions definitions
|
||
50 \******************************************************************************/
|
||
C51 COMPILER V9.57.0.0 SYSTEM 06/14/2024 11:08:37 PAGE 2
|
||
|
||
51
|
||
52
|
||
53 /*
|
||
54 *******************************************************************************
|
||
55 * void System_Init(void)
|
||
56 *
|
||
57 * Description : System Initialization
|
||
58 *
|
||
59 * Arguments : NONE
|
||
60
|
||
61 * Returns : NONE
|
||
62
|
||
63 * Notes : NONE
|
||
64 *
|
||
65 *******************************************************************************
|
||
66 */
|
||
67 void System_Init(void)
|
||
68 {
|
||
69 1 CLKPRE = 0x00; //frequency division: 2^0, 12M 后续根据系统功耗情况调整。
|
||
70 1
|
||
71 1 /* test,开启IO LDO bias和增加100uA负载。*/
|
||
72 1 SFRADDR = 0x89;
|
||
73 1 SFRDATA |= 0x80;
|
||
74 1
|
||
75 1 /*test*/
|
||
76 1 SFRADDR = P0_PD;
|
||
77 1 SFRDATA &= ~0x03;
|
||
78 1
|
||
79 1 #if UART0_ENABLE
|
||
80 1
|
||
81 1 SFRADDR = P0_PU;
|
||
82 1 SFRDATA = 0x03;
|
||
83 1
|
||
84 1 //UART0_Init();
|
||
85 1 SFRADDR = MFP_CTL0;
|
||
86 1 SFRDATA = 0x05; //P01 as UART's TX,P00 as UART's RX
|
||
87 1
|
||
88 1 BD = 1; //Select additional Baudrate generator
|
||
89 1 PCON |= 0x80; //Baudrate double enable
|
||
90 1
|
||
91 1 //baudrate set
|
||
92 1 S0RELH = HIBYTE(S0REL_VALUE);
|
||
93 1 S0RELL = LOBYTE(S0REL_VALUE);//s0rel=1023, baudrate = fclk/32 = 187.5k
|
||
94 1
|
||
95 1 S0CON = 0xD0; //SCON: MODE 3, 9-bit UART, RI enable, EVEN Parity
|
||
96 1
|
||
97 1 TI0 = 1;
|
||
98 1 RI0 = 1;
|
||
99 1 ES0 = 1; //Enable UART0 IRQ
|
||
100 1
|
||
101 1 #endif
|
||
102 1
|
||
103 1 #if VOX_ENABLE
|
||
104 1 //Vox_init(); //上电后,尽快初始化VOX为自动识别模式,为后续识别VOX是否有LOADON做好准备。
|
||
105 1 VOX_CTL0 = 0xC3; //VOX 负载接入、存在识别功能使能,负载自动识别。打开Vox vds钳压环使能(主要用于VOX 5V
|
||
-输出)。
|
||
106 1 /*
|
||
107 1 SFRADDR = VOX_CON0; //设置VOX输出500mA,负载识别电流2.5uA。
|
||
108 1 SFRDATA &= 0xE0;
|
||
109 1 SFRDATA |= (VOX_IOUT_500MA << 3) | VOX_ADT_Cur_2_5UA;
|
||
110 1 */
|
||
111 1 #endif
|
||
C51 COMPILER V9.57.0.0 SYSTEM 06/14/2024 11:08:37 PAGE 3
|
||
|
||
112 1
|
||
113 1 //Sys_Tim0_Init();
|
||
114 1 //TMOD &= 0xF0;
|
||
115 1 TMOD = 0x01; //mode 1, 16bit timer
|
||
116 1
|
||
117 1 TH0 = C_TIM0_Reload >> 8;
|
||
118 1 TL0 = C_TIM0_Reload & 0xFF;
|
||
119 1
|
||
120 1 ET0 = 1; //enable time0 interrupt
|
||
121 1 TR0 = 1; //time0 run
|
||
122 1
|
||
123 1 #if TIMER1_ENABLE
|
||
|
||
//Sys_Tim1_Init();
|
||
|
||
TMOD |= 0x10; //mode 1, 16bit timer
|
||
|
||
TH1 = C_TIM1_Reload >> 8;
|
||
TL1 = C_TIM1_Reload & 0xFF;
|
||
|
||
ET1 = 1; //enable time1 interrupt
|
||
TR1 = 1; //time1 run
|
||
|
||
#endif
|
||
136 1 /*test,set P1.0 output*/
|
||
137 1 #if 0
|
||
SFRADDR = P1_OE;
|
||
SFRDATA = 0x01;
|
||
P10 = 0;
|
||
#endif
|
||
142 1 /*COM_CTRL Set*/
|
||
143 1 SFRADDR = P0_OE;
|
||
144 1 SFRDATA = 0x0C; //COM_CTRL(P02)、LED(P03)配置为GPIO输出
|
||
145 1
|
||
146 1 // COM_CTRL = ON; //P02设置高:用于VOUT;设置低:用于UART。
|
||
147 1
|
||
148 1 #ifdef LED_DISPLAY
|
||
149 1 // LED_Init(); // LED pin 配置为GPIO输出
|
||
150 1
|
||
151 1 SFRADDR = P0_DRV;
|
||
152 1 SFRDATA = 0x0C;
|
||
153 1
|
||
154 1 pin_LED_1 = 0;
|
||
155 1 #endif
|
||
156 1
|
||
157 1 #if WTG_ENABLE
|
||
158 1 /* 65ms */
|
||
159 1 WDTREL = 0x00; //WDTPS = 0,wdt_f = wdt_f1/2;WDTPS = 1,wdt_f = wdt_f1/32;
|
||
160 1 /* 1s */
|
||
161 1 // WDTREL = 0x80; //WDTPS = 0,wdt_f = wdt_f1/2;WDTPS = 1,wdt_f = wdt_f1/32;
|
||
162 1 #endif
|
||
163 1
|
||
164 1 #ifdef ADC_NTC_ENABLE
|
||
165 1
|
||
166 1 SFRADDR = MFP_CTL1; //Set P07 Pinmux As AD4 Function
|
||
167 1 SFRDATA |= 0x80;
|
||
168 1
|
||
169 1 SFRADDR = ADCCS_CTL0; //AD0~AD4 GPIO constant 20uA current source enable.
|
||
170 1 SFRDATA = 0x10;
|
||
171 1
|
||
172 1 #endif
|
||
173 1
|
||
C51 COMPILER V9.57.0.0 SYSTEM 06/14/2024 11:08:37 PAGE 4
|
||
|
||
174 1 /* Interrupt Enable 根据应用选择必要的中断 */
|
||
175 1 SFRADDR = IRQ_EN3; //INT2 --- VOX EDGE LOADON
|
||
176 1 SFRDATA = 0x3C;
|
||
177 1
|
||
178 1 SFRADDR = IRQ_EN10; //INT4 --- Hall interrupt enable.
|
||
179 1 SFRDATA = 0x0C;
|
||
180 1
|
||
181 1 /* 开外部中断使能 */
|
||
182 1 EX0 = 1;
|
||
183 1 EX2 = 1;
|
||
184 1 EX4 = 1;
|
||
185 1
|
||
186 1 EAL = 1; //开总中断。
|
||
187 1
|
||
188 1 IRQ_FLAG9 = 0x1C; //清 Charge complete Int、Tricle/Fast Charge Time expire Int
|
||
189 1 IRQ_FLAG10 = 0xC0; //清 VBUS Plugin\Plugout Int
|
||
190 1 IRQ_FLAG0 = 0x0C; //Vox短路保护
|
||
191 1
|
||
192 1 #if CHARGER_ENABLE
|
||
193 1
|
||
194 1 SFRADDR = PMU_CTL7; //合封芯片关闭VBUS OV检测使能
|
||
195 1 SFRDATA &= ~0x20;
|
||
196 1
|
||
197 1 CHG_CTL |= 0x10; //开启充电超时使能
|
||
198 1
|
||
199 1 SFRADDR = REG_CHG0;
|
||
200 1 SFRDATA |= 0x04; //关VDPM环
|
||
201 1
|
||
202 1 #endif
|
||
203 1
|
||
204 1 #if SLEEP_ENABLE
|
||
205 1 Decnt_SleepDelay = ENTER_STANDBYMODE_CNT;
|
||
206 1 #endif
|
||
207 1
|
||
208 1 }
|
||
209
|
||
210 /*
|
||
211 *******************************************************************************
|
||
212 * void EX0_isr(void ) interrupt Interrupt_Vector_IE0
|
||
213 *
|
||
214 * Description : System External Intterupt 0
|
||
215 *
|
||
216 * Arguments : NONE
|
||
217
|
||
218 * Returns : NONE
|
||
219
|
||
220 * Notes : NONE
|
||
221 *
|
||
222 *******************************************************************************
|
||
223 */
|
||
224 void EX0_isr(void) interrupt Interrupt_Vector_IE0
|
||
225 {
|
||
226 1
|
||
227 1 }
|
||
228
|
||
229 /*
|
||
230 *******************************************************************************
|
||
231 * void EX2_isr(void) interrupt Interrupt_Vector_IE2
|
||
232 *
|
||
233 * Description : System External Intterupt 2
|
||
234 *
|
||
235 * Arguments : NONE
|
||
C51 COMPILER V9.57.0.0 SYSTEM 06/14/2024 11:08:37 PAGE 5
|
||
|
||
236
|
||
237 * Returns : NONE
|
||
238
|
||
239 * Notes : NONE
|
||
240 *
|
||
241 *******************************************************************************
|
||
242 */
|
||
243
|
||
244 void EX2_isr(void) interrupt Interrupt_Vector_IE2
|
||
245 {
|
||
246 1 IRQ_FLAG3 = 0x3C;
|
||
247 1
|
||
248 1 #if SLEEP_ENABLE
|
||
249 1 // if( !Enter_Sleep_Cnt_Restart_Flag )
|
||
250 1 {
|
||
251 2 Enter_Sleep_Cnt_Restart_Flag = 1;
|
||
252 2 }
|
||
253 1 #endif
|
||
254 1 }
|
||
255
|
||
256 /*
|
||
257 *******************************************************************************
|
||
258 * void EX4_isr(void) interrupt Interrupt_Vector_IE4
|
||
259 *
|
||
260 * Description : System External Intterupt 4
|
||
261 *
|
||
262 * Arguments : NONE
|
||
263
|
||
264 * Returns : NONE
|
||
265
|
||
266 * Notes : NONE
|
||
267 *
|
||
268 *******************************************************************************
|
||
269 */
|
||
270 void EX4_isr(void) interrupt Interrupt_Vector_IE4
|
||
271 {
|
||
272 1
|
||
273 1 IRQ_FLAG10 = 0x0C;
|
||
274 1
|
||
275 1 #if SLEEP_ENABLE
|
||
276 1
|
||
277 1 //if( !Enter_Sleep_Cnt_Restart_Flag )
|
||
278 1 {
|
||
279 2 Enter_Sleep_Cnt_Restart_Flag = 1;
|
||
280 2 }
|
||
281 1
|
||
282 1 #endif
|
||
283 1 }
|
||
284
|
||
C51 COMPILER V9.57.0.0 SYSTEM 06/14/2024 11:08:37 PAGE 6
|
||
|
||
ASSEMBLY LISTING OF GENERATED OBJECT CODE
|
||
|
||
|
||
; FUNCTION System_Init (BEGIN)
|
||
; SOURCE LINE # 67
|
||
; SOURCE LINE # 68
|
||
; SOURCE LINE # 69
|
||
0000 E4 CLR A
|
||
0001 F5D2 MOV CLKPRE,A
|
||
; SOURCE LINE # 72
|
||
0003 75FE89 MOV SFRADDR,#089H
|
||
; SOURCE LINE # 73
|
||
0006 43FF80 ORL SFRDATA,#080H
|
||
; SOURCE LINE # 76
|
||
0009 75FE01 MOV SFRADDR,#01H
|
||
; SOURCE LINE # 77
|
||
000C 53FFFC ANL SFRDATA,#0FCH
|
||
; SOURCE LINE # 81
|
||
000F F5FE MOV SFRADDR,A
|
||
; SOURCE LINE # 82
|
||
0011 75FF03 MOV SFRDATA,#03H
|
||
; SOURCE LINE # 85
|
||
0014 75FE0E MOV SFRADDR,#0EH
|
||
; SOURCE LINE # 86
|
||
0017 75FF05 MOV SFRDATA,#05H
|
||
; SOURCE LINE # 88
|
||
001A D2DF SETB BD
|
||
; SOURCE LINE # 89
|
||
001C 438780 ORL PCON,#080H
|
||
; SOURCE LINE # 92
|
||
001F 75BA03 MOV S0RELH,#03H
|
||
; SOURCE LINE # 93
|
||
0022 75AAFD MOV S0RELL,#0FDH
|
||
; SOURCE LINE # 95
|
||
0025 7598D0 MOV S0CON,#0D0H
|
||
; SOURCE LINE # 97
|
||
0028 D299 SETB TI0
|
||
; SOURCE LINE # 98
|
||
002A D298 SETB RI0
|
||
; SOURCE LINE # 99
|
||
002C D2AC SETB ES0
|
||
; SOURCE LINE # 105
|
||
002E 75B7C3 MOV VOX_CTL0,#0C3H
|
||
; SOURCE LINE # 115
|
||
0031 758901 MOV TMOD,#01H
|
||
; SOURCE LINE # 117
|
||
0034 758CFC MOV TH0,#0FCH
|
||
; SOURCE LINE # 118
|
||
0037 758A17 MOV TL0,#017H
|
||
; SOURCE LINE # 120
|
||
003A D2A9 SETB ET0
|
||
; SOURCE LINE # 121
|
||
003C D28C SETB TR0
|
||
; SOURCE LINE # 143
|
||
003E 75FE06 MOV SFRADDR,#06H
|
||
; SOURCE LINE # 144
|
||
0041 75FF0C MOV SFRDATA,#0CH
|
||
; SOURCE LINE # 151
|
||
0044 75FE03 MOV SFRADDR,#03H
|
||
; SOURCE LINE # 152
|
||
0047 75FF0C MOV SFRDATA,#0CH
|
||
; SOURCE LINE # 154
|
||
C51 COMPILER V9.57.0.0 SYSTEM 06/14/2024 11:08:37 PAGE 7
|
||
|
||
004A C283 CLR pin_LED_1
|
||
; SOURCE LINE # 159
|
||
004C F586 MOV WDTREL,A
|
||
; SOURCE LINE # 166
|
||
004E 75FE0F MOV SFRADDR,#0FH
|
||
; SOURCE LINE # 167
|
||
0051 43FF80 ORL SFRDATA,#080H
|
||
; SOURCE LINE # 169
|
||
0054 75FE4F MOV SFRADDR,#04FH
|
||
; SOURCE LINE # 170
|
||
0057 75FF10 MOV SFRDATA,#010H
|
||
; SOURCE LINE # 175
|
||
005A 75FE17 MOV SFRADDR,#017H
|
||
; SOURCE LINE # 176
|
||
005D 75FF3C MOV SFRDATA,#03CH
|
||
; SOURCE LINE # 178
|
||
0060 75FE1E MOV SFRADDR,#01EH
|
||
; SOURCE LINE # 179
|
||
0063 75FF0C MOV SFRDATA,#0CH
|
||
; SOURCE LINE # 182
|
||
0066 D2A8 SETB EX0
|
||
; SOURCE LINE # 183
|
||
0068 D2B9 SETB EX2
|
||
; SOURCE LINE # 184
|
||
006A D2BB SETB EX4
|
||
; SOURCE LINE # 186
|
||
006C D2AF SETB EAL
|
||
; SOURCE LINE # 188
|
||
006E 75F21C MOV IRQ_FLAG9,#01CH
|
||
; SOURCE LINE # 189
|
||
0071 75F3C0 MOV IRQ_FLAG10,#0C0H
|
||
; SOURCE LINE # 190
|
||
0074 75E80C MOV IRQ_FLAG0,#0CH
|
||
; SOURCE LINE # 194
|
||
0077 75FE87 MOV SFRADDR,#087H
|
||
; SOURCE LINE # 195
|
||
007A 53FFDF ANL SFRDATA,#0DFH
|
||
; SOURCE LINE # 197
|
||
007D 43B310 ORL CHG_CTL,#010H
|
||
; SOURCE LINE # 199
|
||
0080 75FE70 MOV SFRADDR,#070H
|
||
; SOURCE LINE # 200
|
||
0083 43FF04 ORL SFRDATA,#04H
|
||
; SOURCE LINE # 205
|
||
0086 75000A E MOV Decnt_SleepDelay,#0AH
|
||
; SOURCE LINE # 208
|
||
0089 22 RET
|
||
; FUNCTION System_Init (END)
|
||
|
||
; FUNCTION EX0_isr (BEGIN)
|
||
; SOURCE LINE # 224
|
||
; SOURCE LINE # 227
|
||
0000 32 RETI
|
||
; FUNCTION EX0_isr (END)
|
||
|
||
; FUNCTION EX2_isr (BEGIN)
|
||
; SOURCE LINE # 244
|
||
; SOURCE LINE # 246
|
||
0000 75EB3C MOV IRQ_FLAG3,#03CH
|
||
; SOURCE LINE # 250
|
||
; SOURCE LINE # 251
|
||
0003 D200 E SETB Enter_Sleep_Cnt_Restart_Flag
|
||
C51 COMPILER V9.57.0.0 SYSTEM 06/14/2024 11:08:37 PAGE 8
|
||
|
||
; SOURCE LINE # 252
|
||
; SOURCE LINE # 254
|
||
0005 32 RETI
|
||
; FUNCTION EX2_isr (END)
|
||
|
||
; FUNCTION EX4_isr (BEGIN)
|
||
; SOURCE LINE # 270
|
||
; SOURCE LINE # 273
|
||
0000 75F30C MOV IRQ_FLAG10,#0CH
|
||
; SOURCE LINE # 278
|
||
; SOURCE LINE # 279
|
||
0003 D200 E SETB Enter_Sleep_Cnt_Restart_Flag
|
||
; SOURCE LINE # 280
|
||
; SOURCE LINE # 283
|
||
0005 32 RETI
|
||
; FUNCTION EX4_isr (END)
|
||
|
||
|
||
|
||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||
CODE SIZE = 151 ----
|
||
CONSTANT SIZE = ---- ----
|
||
XDATA SIZE = ---- ----
|
||
PDATA SIZE = ---- ----
|
||
DATA SIZE = ---- ----
|
||
IDATA SIZE = ---- ----
|
||
BIT SIZE = ---- ----
|
||
END OF MODULE INFORMATION.
|
||
|
||
|
||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|