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Ç壩£¬²»ÄÜÓà |= £¬Ð -èÒªÓà = £» 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)