Both_Way_Comm_SY8833/Project/Listings/system.lst

469 lines
20 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.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)