📄 hal_led.lst
字号:
\ 000042 7403 MOV A,#0x3
\ 000044 12.... LCALL ?XSTACK_DISP0_8
\ 000047 D0E0 POP A
\ 000049 FA MOV R2,A
\ 00004A E0 MOVX A,@DPTR
\ 00004B 5A ANL A,R2
\ 00004C 7003 JNZ $+5
\ 00004E 02.... LJMP ??HalLedUpdate_2 & 0xFFFF
262 {
263 if (sts->mode & HAL_LED_MODE_BLINK)
\ 000051 7401 MOV A,#0x1
\ 000053 12.... LCALL ?XSTACK_DISP0_8
\ 000056 12.... LCALL ?Subroutine4 & 0xFFFF
\ ??CrossCallReturnLabel_5:
\ 000059 4003 JC $+5
\ 00005B 02.... LJMP ??HalLedUpdate_3 & 0xFFFF
264 {
265 time = osal_GetSystemClock();
\ 00005E ; Setup parameters for call to function osal_GetSystemClock
\ 00005E 90.... MOV DPTR,#(osal_GetSystemClock & 0xffff)
\ 000061 74.. MOV A,#((osal_GetSystemClock >> 16) & 0xff)
\ 000063 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000066 8A.. MOV ?V0 + 0,R2
\ 000068 8B.. MOV ?V0 + 1,R3
\ 00006A 8C.. MOV ?V0 + 2,R4
\ 00006C 8D.. MOV ?V0 + 3,R5
\ 00006E 7406 MOV A,#0x6
\ 000070 12.... LCALL ?XSTACK_DISP0_8
\ 000073 78.. MOV R0,#?V0 + 0
\ 000075 12.... LCALL ?L_MOV_TO_X
266 if (time >= sts->next)
\ 000078 7406 MOV A,#0x6
\ 00007A 12.... LCALL ?XSTACK_DISP0_8
\ 00007D C082 PUSH DPL
\ 00007F C083 PUSH DPH
\ 000081 7401 MOV A,#0x1
\ 000083 12.... LCALL ?XSTACK_DISP0_8
\ 000086 12.... LCALL ?Subroutine2 & 0xFFFF
\ ??CrossCallReturnLabel_0:
\ 000089 12.... LCALL ?L_MOV_X
\ 00008C D083 POP DPH
\ 00008E D082 POP DPL
\ 000090 78.. MOV R0,#?V0 + 0
\ 000092 12.... LCALL ?UL_GT_X
\ 000095 5003 JNC $+5
\ 000097 02.... LJMP ??HalLedUpdate_4 & 0xFFFF
267 {
268 if (sts->mode & HAL_LED_MODE_ON)
\ 00009A 7401 MOV A,#0x1
\ 00009C 12.... LCALL ?XSTACK_DISP0_8
\ 00009F 12.... LCALL ?Subroutine5 & 0xFFFF
\ ??CrossCallReturnLabel_7:
\ 0000A2 A2E0 MOV C,0xE0 /* A */.0
\ 0000A4 7401 MOV A,#0x1
\ 0000A6 5050 JNC ??HalLedUpdate_5
269 {
270 pct = 100 - sts->onPct; /* Percentage of cycle for off */
\ 0000A8 12.... LCALL ?XSTACK_DISP0_8
\ 0000AB 12.... LCALL ?Subroutine7 & 0xFFFF
\ ??CrossCallReturnLabel_12:
\ 0000AE FA MOV R2,A
\ 0000AF 7464 MOV A,#0x64
\ 0000B1 C3 CLR C
\ 0000B2 9A SUBB A,R2
\ 0000B3 F5.. MOV ?V0 + 4,A
271 sts->mode &= ~HAL_LED_MODE_ON; /* Say it's not on */
\ 0000B5 7401 MOV A,#0x1
\ 0000B7 12.... LCALL ?XSTACK_DISP0_8
\ 0000BA 12.... LCALL ??Subroutine8_0 & 0xFFFF
\ ??CrossCallReturnLabel_14:
\ 0000BD C2E0 CLR 0xE0 /* A */.0
\ 0000BF F0 MOVX @DPTR,A
272 HalLedOnOff (led, HAL_LED_MODE_OFF); /* Turn it off */
\ 0000C0 ; Setup parameters for call to function HalLedOnOff
\ 0000C0 7A00 MOV R2,#0x0
\ 0000C2 12.... LCALL ?Subroutine3 & 0xFFFF
\ ??CrossCallReturnLabel_2:
\ 0000C5 12.... LCALL ?BCALL ; Banked call to: DPTR()
273
274 if (!(sts->mode & HAL_LED_MODE_FLASH))
\ 0000C8 7401 MOV A,#0x1
\ 0000CA 12.... LCALL ?XSTACK_DISP0_8
\ 0000CD 12.... LCALL ?Subroutine5 & 0xFFFF
\ ??CrossCallReturnLabel_8:
\ 0000D0 A2E2 MOV C,0xE0 /* A */.2
\ 0000D2 403F JC ??HalLedUpdate_6
275 {
276 sts->todo--; /* Not continuous, reduce count */
\ 0000D4 7401 MOV A,#0x1
\ 0000D6 12.... LCALL ?XSTACK_DISP0_8
\ 0000D9 E0 MOVX A,@DPTR
\ 0000DA 2401 ADD A,#0x1
\ 0000DC 08 INC R0
\ 0000DD A3 INC DPTR
\ 0000DE E0 MOVX A,@DPTR
\ 0000DF 3400 ADDC A,#0x0
\ 0000E1 F9 MOV R1,A
\ 0000E2 8882 MOV DPL,R0
\ 0000E4 8983 MOV DPH,R1
\ 0000E6 E0 MOVX A,@DPTR
\ 0000E7 14 DEC A
\ 0000E8 F0 MOVX @DPTR,A
277 if (!sts->todo)
\ 0000E9 7028 JNZ ??HalLedUpdate_6
278 {
279 sts->mode ^= HAL_LED_MODE_BLINK; /* No more blinks */
\ 0000EB 7401 MOV A,#0x1
\ 0000ED 12.... LCALL ?XSTACK_DISP0_8
\ 0000F0 12.... LCALL ?Subroutine5 & 0xFFFF
\ ??CrossCallReturnLabel_9:
\ 0000F3 6402 XRL A,#0x2
\ 0000F5 F0 MOVX @DPTR,A
\ 0000F6 801B SJMP ??HalLedUpdate_6
280 }
281 }
282 }
283 else
284 {
285 pct = sts->onPct; /* Percentage of cycle for on */
\ ??HalLedUpdate_5:
\ 0000F8 12.... LCALL ?XSTACK_DISP0_8
\ 0000FB 12.... LCALL ?Subroutine7 & 0xFFFF
\ ??CrossCallReturnLabel_13:
\ 0000FE F5.. MOV ?V0 + 4,A
286 sts->mode |= HAL_LED_MODE_ON; /* Say it's on */
\ 000100 7401 MOV A,#0x1
\ 000102 12.... LCALL ?XSTACK_DISP0_8
\ 000105 12.... LCALL ??Subroutine8_0 & 0xFFFF
\ ??CrossCallReturnLabel_15:
\ 000108 D2E0 SETB 0xE0 /* A */.0
\ 00010A F0 MOVX @DPTR,A
287 HalLedOnOff (led, HAL_LED_MODE_ON); /* Turn it on */
\ 00010B ; Setup parameters for call to function HalLedOnOff
\ 00010B 7A01 MOV R2,#0x1
\ 00010D 12.... LCALL ?Subroutine3 & 0xFFFF
\ ??CrossCallReturnLabel_3:
\ 000110 12.... LCALL ?BCALL ; Banked call to: DPTR()
288 }
289
290 if (sts->mode & HAL_LED_MODE_BLINK)
\ ??HalLedUpdate_6:
\ 000113 7401 MOV A,#0x1
\ 000115 12.... LCALL ?XSTACK_DISP0_8
\ 000118 12.... LCALL ?Subroutine4 & 0xFFFF
\ ??CrossCallReturnLabel_6:
\ 00011B 5059 JNC ??HalLedUpdate_7
291 {
292 wait = (((uint32)pct * (uint32)sts->time) / 100);
\ 00011D 75..00 MOV ?V0 + 5,#0x0
\ 000120 75..00 MOV ?V0 + 6,#0x0
\ 000123 75..00 MOV ?V0 + 7,#0x0
\ 000126 7401 MOV A,#0x1
\ 000128 12.... LCALL ?XSTACK_DISP0_8
\ 00012B 12.... LCALL ?Subroutine9 & 0xFFFF
\ ??CrossCallReturnLabel_18:
\ 00012E E0 MOVX A,@DPTR
\ 00012F F5.. MOV ?V0 + 0,A
\ 000131 A3 INC DPTR
\ 000132 E0 MOVX A,@DPTR
\ 000133 F5.. MOV ?V0 + 1,A
\ 000135 75..00 MOV ?V0 + 2,#0x0
\ 000138 75..00 MOV ?V0 + 3,#0x0
\ 00013B 78.. MOV R0,#?V0 + 4
\ 00013D 79.. MOV R1,#?V0 + 0
\ 00013F 12.... LCALL ?L_MUL
\ 000142 90.... MOV DPTR,#__Constant_64
\ 000145 78.. MOV R0,#?V0 + 0
\ 000147 12.... LCALL ?L_MOV_X
\ 00014A 78.. MOV R0,#?V0 + 4
\ 00014C 79.. MOV R1,#?V0 + 0
\ 00014E 12.... LCALL ?UL_DIV_MOD
\ 000151 AE.. MOV R6,?V0 + 4
\ 000153 AF.. MOV R7,?V0 + 5
293 sts->next = time + wait;
\ 000155 7406 MOV A,#0x6
\ 000157 12.... LCALL ?XSTACK_DISP0_8
\ 00015A 8E.. MOV ?V0 + 0,R6
\ 00015C 8F.. MOV ?V0 + 1,R7
\ 00015E 75..00 MOV ?V0 + 2,#0x0
\ 000161 75..00 MOV ?V0 + 3,#0x0
\ 000164 78.. MOV R0,#?V0 + 0
\ 000166 12.... LCALL ?L_ADD_X
\ 000169 7401 MOV A,#0x1
\ 00016B 12.... LCALL ?XSTACK_DISP0_8
\ 00016E 12.... LCALL ?Subroutine2 & 0xFFFF
\ ??CrossCallReturnLabel_1:
\ 000171 12.... LCALL ?L_MOV_TO_X
\ 000174 804F SJMP ??HalLedUpdate_8
294 }
295 else
296 {
297 /* no more blink, no more wait */
298 wait = 0;
\ ??HalLedUpdate_7:
\ 000176 7E00 MOV R6,#0x0
\ 000178 7F00 MOV R7,#0x0
299 /* After blinking, set the LED back to the state before it blinks */
300 HalLedSet (led, ((preBlinkState & led)!=0)?HAL_LED_MODE_ON:HAL_LED_MODE_OFF);
\ 00017A 85..82 MOV DPL,?XSP + 0
\ 00017D 85..83 MOV DPH,?XSP + 1
\ 000180 E0 MOVX A,@DPTR
\ 000181 90.... MOV DPTR,#??preBlinkState
\ 000184 FA MOV R2,A
\ 000185 E0 MOVX A,@DPTR
\ 000186 5A ANL A,R2
\ 000187 6004 JZ ??HalLedUpdate_9
\ 000189 7A01 MOV R2,#0x1
\ 00018B 8002 SJMP ??HalLedUpdate_10
\ ??HalLedUpdate_9:
\ 00018D 7A00 MOV R2,#0x0
\ ??HalLedUpdate_10:
\ 00018F ; Setup parameters for call to function HalLedSet
\ 00018F 85..82 MOV DPL,?XSP + 0
\ 000192 85..83 MOV DPH,?XSP + 1
\ 000195 E0 MOVX A,@DPTR
\ 000196 F9 MOV R1,A
\ 000197 90.... MOV DPTR,#(HalLedSet & 0xffff)
\ 00019A 74.. MOV A,#((HalLedSet >> 16) & 0xff)
\ 00019C 12.... LCALL ?BCALL ; Banked call to: DPTR()
301 /* Clear the saved bit */
302 preBlinkState &= ~led;
\ 00019F 85..82 MOV DPL,?XSP + 0
\ 0001A2 85..83 MOV DPH,?XSP + 1
\ 0001A5 E0 MOVX A,@DPTR
\ 0001A6 F4 CPL A
\ 0001A7 FA MOV R2,A
\ 0001A8 90.... MOV DPTR,#??preBlinkState
\ 0001AB E0 MOVX A,@DPTR
\ 0001AC 5A ANL A,R2
\ 0001AD F0 MOVX @DPTR,A
\ 0001AE 8015 SJMP ??HalLedUpdate_8
303 }
304 }
305 else
306 {
307 wait = sts->next - time; /* Time left */
\ ??HalLedUpdate_4:
\ 0001B0 7406 MOV A,#0x6
\ 0001B2 12.... LCALL ?XSTACK_DISP0_8
\ 0001B5 78.. MOV R0,#?V0 + 4
\ 0001B7 12.... LCALL ?L_MOV_X
\ 0001BA E5.. MOV A,?V0 + 0
\ 0001BC C3 CLR C
\ 0001BD 95.. SUBB A,?V0 + 4
\ 0001BF FE MOV R6,A
\ 0001C0 E5.. MOV A,?V0 + 1
\ 0001C2 95.. SUBB A,?V0 + 5
\ 0001C4 FF MOV R7,A
308 }
309
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -