C51 COMPILER V9.57.0.0 LED 06/14/2024 11:08:36 PAGE 1 C51 COMPILER V9.57.0.0, COMPILATION OF MODULE LED OBJECT MODULE PLACED IN .\Objects\led.obj COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\UsrSrc\led\led.c ROM(COMPACT) OPTIMIZE(9,SIZE) BROWSE INCDIR(..\UsrIn -c\adc;..\UsrInc\charger;..\UsrInc\discharge;..\UsrInc\gpio;..\UsrInc\hall;..\UsrInc\i2c_simu;..\UsrInc\inc;..\UsrInc\key -;..\UsrInc\led;..\UsrInc\mtp;..\UsrInc\pwm;..\UsrInc\sleep;..\UsrInc\system;..\UsrInc\uart;..\UsrInc\userapp;..\UsrInc\v -ox;..\UsrInc\vox_comm;..\UsrInc\watchdog;..\UsrInc\bat;..\UsrInc\timer) DEBUG OBJECTEXTEND CODE PRINT(.\Listings\led.lst -) TABS(2) OBJECT(.\Objects\led.obj) line level source 1 /* 2 ****************************************************************************** 3 * 4 * @file led.c 5 * @brief led module 6 * @ic TP3102 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/04 Alex build this file 18 ******************************************************************************/ 19 /*_____ I N C L U D E S ____________________________________________________*/ 20 21 #include "led.h" 22 23 24 #ifdef LED_DISPLAY 25 26 /******************************************************************************\ 27 Macro definitions 28 \******************************************************************************/ 29 30 /******************************************************************************\ 31 Variables definitions 32 \******************************************************************************/ 33 static idata TS_LED_INFO LED; 34 35 idata uint8_t Display_Sta = LED_OFF; // ÏÔʾ״̬ 36 37 /******************************************************************************\ 38 Functions definitions 39 \******************************************************************************/ 40 #if 0 /* * º¯ÊýÃû³Æ : LED_Init * ¹¦ÄÜÃèÊö : LED³õʼ»¯ * ²Î Êý : NONE * ·µ»ØÖµ : NONE */ /******************************************************************************/ void LED_Init(void) /******************************************************************************/ { SFRADDR = P0_OE; C51 COMPILER V9.57.0.0 LED 06/14/2024 11:08:36 PAGE 2 SFRDATA |= 0x08; SFRADDR = P0_DRV; SFRDATA = 0x0C; pin_LED_1 = 0; } #endif 60 /* 61 * º¯ÊýÃû³Æ : LED_Set 62 * ¹¦ÄÜÃèÊö : LED¹¤×÷·½Ê½ÉèÖà 63 * ²Î Êý : State£º¹¤×÷·½Ê½ / Period:ÉÁ˸ÖÜÆÚ(ƵÂÊ£¬µ¥Î»ms) / Times:ÉÁ˸´ÎÊý£¬µ±´ÎÊýµÈÓÚ0xffʱ£¬Ò»Ö -±ÉÁ¡£ 64 * ·µ»ØÖµ : NONE 65 */ 66 /******************************************************************************/ 67 void LED_Set(uint8_t State,uint8_t Period,uint8_t Times) 68 /******************************************************************************/ 69 { 70 1 LED.State = State; 71 1 LED.Flash_Duty = Period / 2; 72 1 LED.Flash_Period = Period; 73 1 LED.Flash_Times = Times; 74 1 LED.Timer = 0; 75 1 } 76 77 /* 78 * º¯ÊýÃû³Æ : LED_Service 79 * ¹¦ÄÜÃèÊö : LEDÇý¶¯£¬Ðè·ÅÔÚ100msʱ¼äƬÖÐ 80 * ²Î Êý : NONE 81 * ·µ»ØÖµ : NONE 82 */ 83 /******************************************************************************/ 84 void LED_Drv(void) 85 /******************************************************************************/ 86 { 87 1 switch(LED.State) 88 1 { 89 2 case LED_ON: 90 2 LEDR_ON(); 91 2 break; 92 2 93 2 case LED_OFF: 94 2 LEDR_OFF(); 95 2 break; 96 2 97 2 case LED_FLASH: 98 2 if( LED.Timer < LED.Flash_Duty ) 99 2 { 100 3 LEDR_ON(); 101 3 } 102 2 else 103 2 { 104 3 LEDR_OFF(); 105 3 } 106 2 107 2 if( LED.Timer >= LED.Flash_Period )//LED.Timer[i]±íʾÀÛ¼ÓµÄʱ¼ä 108 2 { 109 3 LED.Timer = 0; 110 3 111 3 if( LED.Flash_Times == 0xff ) 112 3 { C51 COMPILER V9.57.0.0 LED 06/14/2024 11:08:36 PAGE 3 113 4 //LED.State = LED_KEEP_FLASHING; 114 4 break; 115 4 } 116 3 else 117 3 { 118 4 if( LED.Flash_Times > 0 ) 119 4 { 120 5 LED.Flash_Times--; 121 5 } 122 4 123 4 if( LED.Flash_Times == 0 ) 124 4 { 125 5 LED.State = LED_OFF; 126 5 } 127 4 } 128 3 } 129 2 130 2 break; 131 2 #if 0 case LED_KEEP_FLASHING: if( LED.Timer <= LED.Flash_Duty ) { LEDR_ON(); } else { LEDR_OFF(); } if( LED.Timer >= LED.Flash_Period ) { LED.Timer = 0; } break; #endif 147 2 default: 148 2 LEDR_OFF(); 149 2 break; 150 2 151 2 } 152 1 153 1 Display_Sta = LED.State; // »ñÈ¡µ±Ç°LED¹¤×÷״̬¡£ 154 1 155 1 LED.Timer += LED_PLUS_TIME; 156 1 } 157 158 #endif 159 160 C51 COMPILER V9.57.0.0 LED 06/14/2024 11:08:36 PAGE 4 ASSEMBLY LISTING OF GENERATED OBJECT CODE ; FUNCTION _LED_Set (BEGIN) ; SOURCE LINE # 67 ;---- Variable 'Period' assigned to Register 'R5' ---- ;---- Variable 'Times' assigned to Register 'R3' ---- ;---- Variable 'State' assigned to Register 'R7' ---- ; SOURCE LINE # 69 ; SOURCE LINE # 70 0000 7800 R MOV R0,#LOW LED 0002 A607 MOV @R0,AR7 ; SOURCE LINE # 71 0004 ED MOV A,R5 0005 C3 CLR C 0006 13 RRC A 0007 08 INC R0 0008 F6 MOV @R0,A ; SOURCE LINE # 72 0009 08 INC R0 000A A605 MOV @R0,AR5 ; SOURCE LINE # 73 000C 08 INC R0 000D A603 MOV @R0,AR3 ; SOURCE LINE # 74 000F E4 CLR A 0010 08 INC R0 0011 F6 MOV @R0,A ; SOURCE LINE # 75 0012 22 RET ; FUNCTION _LED_Set (END) ; FUNCTION LED_Drv (BEGIN) ; SOURCE LINE # 84 ; SOURCE LINE # 86 ; SOURCE LINE # 87 0000 7800 R MOV R0,#LOW LED 0002 E6 MOV A,@R0 0003 603D JZ ?C0013 0005 24FE ADD A,#0FEH 0007 6007 JZ ?C0005 0009 04 INC A 000A 7036 JNZ ?C0013 ; SOURCE LINE # 88 ; SOURCE LINE # 89 000C ?C0003: ; SOURCE LINE # 90 000C D283 SETB pin_LED_1 ; SOURCE LINE # 91 000E 8034 SJMP ?C0002 ; SOURCE LINE # 93 ; SOURCE LINE # 97 0010 ?C0005: ; SOURCE LINE # 98 0010 7800 R MOV R0,#LOW LED+04H 0012 E6 MOV A,@R0 0013 FF MOV R7,A 0014 C3 CLR C 0015 7800 R MOV R0,#LOW LED+01H 0017 96 SUBB A,@R0 0018 5004 JNC ?C0006 ; SOURCE LINE # 99 C51 COMPILER V9.57.0.0 LED 06/14/2024 11:08:36 PAGE 5 ; SOURCE LINE # 100 001A D283 SETB pin_LED_1 ; SOURCE LINE # 101 001C 8002 SJMP ?C0007 001E ?C0006: ; SOURCE LINE # 103 ; SOURCE LINE # 104 001E C283 CLR pin_LED_1 ; SOURCE LINE # 105 0020 ?C0007: ; SOURCE LINE # 107 0020 EF MOV A,R7 0021 C3 CLR C 0022 7800 R MOV R0,#LOW LED+02H 0024 96 SUBB A,@R0 0025 401D JC ?C0002 ; SOURCE LINE # 108 ; SOURCE LINE # 109 0027 E4 CLR A 0028 7800 R MOV R0,#LOW LED+04H 002A F6 MOV @R0,A ; SOURCE LINE # 111 002B 18 DEC R0 002C E6 MOV A,@R0 002D FF MOV R7,A 002E F4 CPL A 002F 6013 JZ ?C0002 ; SOURCE LINE # 112 ; SOURCE LINE # 114 ; SOURCE LINE # 115 ; SOURCE LINE # 117 ; SOURCE LINE # 118 0031 EF MOV A,R7 0032 D3 SETB C 0033 9400 SUBB A,#00H 0035 4001 JC ?C0011 ; SOURCE LINE # 119 ; SOURCE LINE # 120 0037 16 DEC @R0 ; SOURCE LINE # 121 0038 ?C0011: ; SOURCE LINE # 123 0038 7800 R MOV R0,#LOW LED+03H 003A E6 MOV A,@R0 003B 7007 JNZ ?C0002 ; SOURCE LINE # 124 ; SOURCE LINE # 125 003D 7800 R MOV R0,#LOW LED 003F F6 MOV @R0,A ; SOURCE LINE # 126 ; SOURCE LINE # 127 ; SOURCE LINE # 128 ; SOURCE LINE # 130 0040 8002 SJMP ?C0002 ; SOURCE LINE # 147 0042 ?C0013: ; SOURCE LINE # 148 0042 C283 CLR pin_LED_1 ; SOURCE LINE # 149 ; SOURCE LINE # 151 0044 ?C0002: ; SOURCE LINE # 153 C51 COMPILER V9.57.0.0 LED 06/14/2024 11:08:36 PAGE 6 0044 7800 R MOV R0,#LOW LED 0046 E6 MOV A,@R0 0047 7800 R MOV R0,#LOW Display_Sta 0049 F6 MOV @R0,A ; SOURCE LINE # 155 004A 18 DEC R0 004B 06 INC @R0 ; SOURCE LINE # 156 004C 22 RET ; FUNCTION LED_Drv (END) MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 96 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = 6 ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)