📄 as5030.lst
字号:
;Address Opcode ASM
0x0000 0xC12C RJMP 301
0x0002 0xCFFE RJMP 0
0x0004 0xCFFD RJMP 0
0x0006 0xCFFC RJMP 0
0x0008 0xCFFB RJMP 0
0x000A 0xCFFA RJMP 0
0x000C 0xCFF9 RJMP 0
0x000E 0xCFF8 RJMP 0
0x0010 0xCFF7 RJMP 0
0x0012 0xCFF6 RJMP 0
0x0014 0xCFF5 RJMP 0
0x0016 0xCFF4 RJMP 0
0x0018 0xCFF3 RJMP 0
0x001A 0xCFF2 RJMP 0
0x001C 0xCFF1 RJMP 0
0x001E 0xCFF0 RJMP 0
0x0020 0xCFEF RJMP 0
0x0022 0xCFEE RJMP 0
0x0024 0xCFED RJMP 0
_Move_Delay:
;AS5030.c,27 :: void Move_Delay()
;AS5030.c,29 :: Delay_ms(500); // You can change the moving speed here
0x059E 0xE125 LDI R18, 21
0x05A0 0xE41B LDI R17, 75
0x05A2 0xEB0F LDI R16, 191
0x05A4 0x950A DEC R16
0x05A6 0xF7F1 BRNE $-1
0x05A8 0x951A DEC R17
0x05AA 0xF7E1 BRNE $-3
0x05AC 0x952A DEC R18
0x05AE 0xF7D1 BRNE $-5
0x05B0 0x0000 NOP
;AS5030.c,30 :: }
L_endMove_Delay:
0x05B2 0x9508 RET
; end of _Move_Delay
_main:
0x025A 0xE5BF LDI R27, 95
0x025C 0xBFBD OUT SPL, R27
0x025E 0xE0B4 LDI R27, 4
0x0260 0xBFBE OUT SPH, R27
0x0262 0xD1D7 RCALL 777
;AS5030.c,32 :: void main()
;AS5030.c,33 :: { LCD_RW = 0;
0x0264 0x98C7 CBI PORTB, 7
;AS5030.c,34 :: LCD_RW_Direction = 1;
0x0266 0x9ABF SBI DDRB, 7
;AS5030.c,35 :: Lcd_Init(); // Initialize LCD
0x0268 0xDEE1 RCALL _Lcd_Init+0
;AS5030.c,36 :: Lcd_Cmd(LCD_CLEAR); // Clear display
0x026A 0xE0B1 LDI R27, 1
0x026C 0x93BF PUSH R27
0x026E 0xD0AD RCALL _Lcd_Cmd+0
0x0270 0xB7AD IN R26, SPL
0x0272 0xB7BE IN R27, SPH
0x0274 0x9611 ADIW R26, 1
0x0276 0xBFAD OUT SPL, R26
0x0278 0xBFBE OUT SPH, R27
;AS5030.c,37 :: Lcd_Cmd(LCD_CURSOR_OFF); // Cursor off
0x027A 0xE0BC LDI R27, 12
0x027C 0x93BF PUSH R27
0x027E 0xD0A5 RCALL _Lcd_Cmd+0
0x0280 0xB7AD IN R26, SPL
0x0282 0xB7BE IN R27, SPH
0x0284 0x9611 ADIW R26, 1
0x0286 0xBFAD OUT SPL, R26
0x0288 0xBFBE OUT SPH, R27
;AS5030.c,39 :: Lcd_Out(1,6,txt3); // Write text in first row
0x028A 0xE0B0 LDI R27, hi_addr(_txt3+0)
0x028C 0x93BF PUSH R27
0x028E 0xE7BB LDI R27, _txt3+0
0x0290 0x93BF PUSH R27
0x0292 0xE0B6 LDI R27, 6
0x0294 0x93BF PUSH R27
0x0296 0xE0B1 LDI R27, 1
0x0298 0x93BF PUSH R27
0x029A 0xD108 RCALL _Lcd_Out+0
0x029C 0xB7AD IN R26, SPL
0x029E 0xB7BE IN R27, SPH
0x02A0 0x9614 ADIW R26, 4
0x02A2 0xBFAD OUT SPL, R26
0x02A4 0xBFBE OUT SPH, R27
;AS5030.c,40 :: Lcd_Out(2,6,txt4); // Write text in second row
0x02A6 0xE0B0 LDI R27, hi_addr(_txt4+0)
0x02A8 0x93BF PUSH R27
0x02AA 0xE8B3 LDI R27, _txt4+0
0x02AC 0x93BF PUSH R27
0x02AE 0xE0B6 LDI R27, 6
0x02B0 0x93BF PUSH R27
0x02B2 0xE0B2 LDI R27, 2
0x02B4 0x93BF PUSH R27
0x02B6 0xD0FA RCALL _Lcd_Out+0
0x02B8 0xB7AD IN R26, SPL
0x02BA 0xB7BE IN R27, SPH
0x02BC 0x9614 ADIW R26, 4
0x02BE 0xBFAD OUT SPL, R26
0x02C0 0xBFBE OUT SPH, R27
;AS5030.c,41 :: Delay_ms(2000);
0x02C2 0xE522 LDI R18, 82
0x02C4 0xE21B LDI R17, 43
0x02C6 0xE000 LDI R16, 0
0x02C8 0x950A DEC R16
0x02CA 0xF7F1 BRNE $-1
0x02CC 0x951A DEC R17
0x02CE 0xF7E1 BRNE $-3
0x02D0 0x952A DEC R18
0x02D2 0xF7D1 BRNE $-5
0x02D4 0x0000 NOP
0x02D6 0x0000 NOP
0x02D8 0x0000 NOP
0x02DA 0x0000 NOP
;AS5030.c,42 :: Lcd_Cmd(LCD_CLEAR); // Clear display
0x02DC 0xE0B1 LDI R27, 1
0x02DE 0x93BF PUSH R27
0x02E0 0xD074 RCALL _Lcd_Cmd+0
0x02E2 0xB7AD IN R26, SPL
0x02E4 0xB7BE IN R27, SPH
0x02E6 0x9611 ADIW R26, 1
0x02E8 0xBFAD OUT SPL, R26
0x02EA 0xBFBE OUT SPH, R27
;AS5030.c,44 :: Lcd_Out(1,1,txt1); // Write text in first row
0x02EC 0xE0B0 LDI R27, hi_addr(_txt1+0)
0x02EE 0x93BF PUSH R27
0x02F0 0xE6BA LDI R27, _txt1+0
0x02F2 0x93BF PUSH R27
0x02F4 0xE0B1 LDI R27, 1
0x02F6 0x93BF PUSH R27
0x02F8 0xE0B1 LDI R27, 1
0x02FA 0x93BF PUSH R27
0x02FC 0xD0D7 RCALL _Lcd_Out+0
0x02FE 0xB7AD IN R26, SPL
0x0300 0xB7BE IN R27, SPH
0x0302 0x9614 ADIW R26, 4
0x0304 0xBFAD OUT SPL, R26
0x0306 0xBFBE OUT SPH, R27
;AS5030.c,45 :: Lcd_Out(2,4,txt2); // Write text in second row
0x0308 0xE0B0 LDI R27, hi_addr(_txt2+0)
0x030A 0x93BF PUSH R27
0x030C 0xE6B0 LDI R27, _txt2+0
0x030E 0x93BF PUSH R27
0x0310 0xE0B4 LDI R27, 4
0x0312 0x93BF PUSH R27
0x0314 0xE0B2 LDI R27, 2
0x0316 0x93BF PUSH R27
0x0318 0xD0C9 RCALL _Lcd_Out+0
0x031A 0xB7AD IN R26, SPL
0x031C 0xB7BE IN R27, SPH
0x031E 0x9614 ADIW R26, 4
0x0320 0xBFAD OUT SPL, R26
0x0322 0xBFBE OUT SPH, R27
;AS5030.c,46 :: Delay_ms(2000);
0x0324 0xE522 LDI R18, 82
0x0326 0xE21B LDI R17, 43
0x0328 0xE000 LDI R16, 0
0x032A 0x950A DEC R16
0x032C 0xF7F1 BRNE $-1
0x032E 0x951A DEC R17
0x0330 0xF7E1 BRNE $-3
0x0332 0x952A DEC R18
0x0334 0xF7D1 BRNE $-5
0x0336 0x0000 NOP
0x0338 0x0000 NOP
0x033A 0x0000 NOP
0x033C 0x0000 NOP
;AS5030.c,49 :: for(i=0; i<4; i++)
0x033E 0xE0B0 LDI R27, 0
0x0340 0x008C93B0 STS _i+0, R27
L_main0:
0x0344 0x008C9100 LDS R16, _i+0
0x0348 0x3004 CPI R16, 4
0x034A 0xF488 BRSH L_main1
L__main13:
;AS5030.c,50 :: { Lcd_Cmd(LCD_SHIFT_RIGHT); // Move text to the right 4 times
0x034C 0xE1BC LDI R27, 28
0x034E 0x93BF PUSH R27
0x0350 0xD03C RCALL _Lcd_Cmd+0
0x0352 0xB7AD IN R26, SPL
0x0354 0xB7BE IN R27, SPH
0x0356 0x9611 ADIW R26, 1
0x0358 0xBFAD OUT SPL, R26
0x035A 0xBFBE OUT SPH, R27
;AS5030.c,51 :: Move_Delay();
0x035C 0xD120 RCALL _Move_Delay+0
;AS5030.c,49 :: for(i=0; i<4; i++)
0x035E 0x008C9100 LDS R16, _i+0
0x0362 0x5F0F SUBI R16, 255
0x0364 0x008C9300 STS _i+0, R16
;AS5030.c,52 :: }
0x0368 0xCFEF RJMP L_main0
L_main1:
;AS5030.c,53 :: while(1)
L_main3:
;AS5030.c,54 :: {for(i=0; i<7; i++)
0x036A 0xE0B0 LDI R27, 0
0x036C 0x008C93B0 STS _i+0, R27
L_main5:
0x0370 0x008C9100 LDS R16, _i+0
0x0374 0x3007 CPI R16, 7
0x0376 0xF488 BRSH L_main6
L__main14:
;AS5030.c,55 :: { Lcd_Cmd(LCD_SHIFT_LEFT); // Endless loop
0x0378 0xE1B8 LDI R27, 24
0x037A 0x93BF PUSH R27
0x037C 0xD026 RCALL _Lcd_Cmd+0
0x037E 0xB7AD IN R26, SPL
0x0380 0xB7BE IN R27, SPH
0x0382 0x9611 ADIW R26, 1
0x0384 0xBFAD OUT SPL, R26
0x0386 0xBFBE OUT SPH, R27
;AS5030.c,56 :: Move_Delay(); // Move text to the left 7 times
0x0388 0xD10A RCALL _Move_Delay+0
;AS5030.c,54 :: {for(i=0; i<7; i++)
0x038A 0x008C9100 LDS R16, _i+0
0x038E 0x5F0F SUBI R16, 255
0x0390 0x008C9300 STS _i+0, R16
;AS5030.c,57 :: }
0x0394 0xCFEF RJMP L_main5
L_main6:
;AS5030.c,58 :: for(i=0; i<7; i++)
0x0396 0xE0B0 LDI R27, 0
0x0398 0x008C93B0 STS _i+0, R27
L_main8:
0x039C 0x008C9100 LDS R16, _i+0
0x03A0 0x3007 CPI R16, 7
0x03A2 0xF488 BRSH L_main9
L__main15:
;AS5030.c,59 :: {Lcd_Cmd(LCD_SHIFT_RIGHT); // Move text to the right 7 times
0x03A4 0xE1BC LDI R27, 28
0x03A6 0x93BF PUSH R27
0x03A8 0xD010 RCALL _Lcd_Cmd+0
0x03AA 0xB7AD IN R26, SPL
0x03AC 0xB7BE IN R27, SPH
0x03AE 0x9611 ADIW R26, 1
0x03B0 0xBFAD OUT SPL, R26
0x03B2 0xBFBE OUT SPH, R27
;AS5030.c,60 :: Move_Delay();
0x03B4 0xD0F4 RCALL _Move_Delay+0
;AS5030.c,58 :: for(i=0; i<7; i++)
0x03B6 0x008C9100 LDS R16, _i+0
0x03BA 0x5F0F SUBI R16, 255
0x03BC 0x008C9300 STS _i+0, R16
;AS5030.c,61 :: }
0x03C0 0xCFEF RJMP L_main8
L_main9:
;AS5030.c,62 :: }
0x03C2 0xCFD5 RJMP L_main3
;AS5030.c,63 :: }
L_endmain:
0x03C4 0xC001 RJMP L_endmain
; end of _main
_Delay_50us:
;__Lib_Delays.c,18 :: void Delay_50us() {
;__Lib_Delays.c,19 :: Delay_us(50);
0x05DC 0xE805 LDI R16, 133
0x05DE 0x950A DEC R16
0x05E0 0xF7F1 BRNE $-1
0x05E2 0x0000 NOP
;__Lib_Delays.c,20 :: }
L_endDelay_50us:
0x05E4 0x9508 RET
; end of _Delay_50us
_Delay_1us:
;__Lib_Delays.c,6 :: void Delay_1us() {
;__Lib_Delays.c,7 :: Delay_us(1);
0x05C6 0xE002 LDI R16, 2
0x05C8 0x950A DEC R16
0x05CA 0xF7F1 BRNE $-1
0x05CC 0x0000 NOP
0x05CE 0x0000 NOP
;__Lib_Delays.c,8 :: }
L_endDelay_1us:
0x05D0 0x9508 RET
; end of _Delay_1us
_Delay_5500us:
;__Lib_Delays.c,30 :: void Delay_5500us() {
;__Lib_Delays.c,31 :: Delay_us(5500);
0x05B4 0xE31A LDI R17, 58
0x05B6 0xE203 LDI R16, 35
0x05B8 0x950A DEC R16
0x05BA 0xF7F1 BRNE $-1
0x05BC 0x951A DEC R17
0x05BE 0xF7E1 BRNE $-3
0x05C0 0x0000 NOP
0x05C2 0x0000 NOP
;__Lib_Delays.c,32 :: }
L_endDelay_5500us:
0x05C4 0x9508 RET
; end of _Delay_5500us
_Lcd_Chr_CP:
0x056A 0x93CF PUSH R28
0x056C 0x93DF PUSH R29
0x056E 0xB7CD IN R28, SPL
0x0570 0xB7DE IN R29, SPH
0x0572 0x9625 ADIW R28, 5
;__Lib_Lcd.c,50 ::
;__Lib_Lcd.c,52 ::
0x0574 0x008B91B0 LDS R27, __Lib_Lcd_cmd_status+0
0x0578 0x7FBE CBR R27, 1
0x057A 0x008B93B0 STS __Lib_Lcd_cmd_status+0, R27
;__Lib_Lcd.c,53 ::
0x057E 0x8108 LDD R16, Y+0
0x0580 0x930F PUSH R16
0x0582 0xDF23 RCALL _Lcd_Cmd+0
0x0584 0xB7AD IN R26, SPL
0x0586 0xB7BE IN R27, SPH
0x0588 0x9611 ADIW R26, 1
0x058A 0xBFAD OUT SPL, R26
0x058C 0xBFBE OUT SPH, R27
;__Lib_Lcd.c,54 ::
0x058E 0x008B91B0 LDS R27, __Lib_Lcd_cmd_status+0
0x0592 0x60B1 SBR R27, 1
0x0594 0x008B93B0 STS __Lib_Lcd_cmd_status+0, R27
;__Lib_Lcd.c,55 ::
L_endLcd_Chr_CP:
0x0598 0x91DF POP R29
0x059A 0x91CF POP R28
0x059C 0x9508 RET
; end of _Lcd_Chr_CP
_Lcd_Out:
0x04AC 0x93CF PUSH R28
0x04AE 0x93DF PUSH R29
0x04B0 0xB7CD IN R28, SPL
0x04B2 0xB7DE IN R29, SPH
0x04B4 0x9721 SBIW R28, 1
0x04B6 0xBFCD OUT SPL, R28
0x04B8 0xBFDE OUT SPH, R29
0x04BA 0x9621 ADIW R28, 1
;__Lib_Lcd.c,184 ::
;__Lib_Lcd.c,187 ::
0x04BC 0xC00F RJMP L_Lcd_Out11
;__Lib_Lcd.c,188 ::
L_Lcd_Out13:
0x04BE 0xE8B0 LDI R27, 128
0x04C0 0x83BD STD Y+5, R27
0x04C2 0xC019 RJMP L_Lcd_Out12
;__Lib_Lcd.c,189 ::
L_Lcd_Out14:
0x04C4 0xECB0 LDI R27, 192
0x04C6 0x83BD STD Y+5, R27
0x04C8 0xC016 RJMP L_Lcd_Out12
;__Lib_Lcd.c,190 ::
L_Lcd_Out15:
0x04CA 0xE9B4 LDI R27, 148
0x04CC 0x83BD STD Y+5, R27
0x04CE 0xC013 RJMP L_Lcd_Out12
;__Lib_Lcd.c,191 ::
L_Lcd_Out16:
0x04D0 0xEDB4 LDI R27, 212
0x04D2 0x83BD STD Y+5, R27
0x04D4 0xC010 RJMP L_Lcd_Out12
;__Lib_Lcd.c,192 ::
L_Lcd_Out17:
0x04D6 0xE8B0 LDI R27, 128
0x04D8 0x83BD STD Y+5, R27
;__Lib_Lcd.c,193 ::
0x04DA 0xC00D RJMP L_Lcd_Out12
L_Lcd_Out11:
0x04DC 0x810D LDD R16, Y+5
0x04DE 0x3001 CPI R16, 1
0x04E0 0xF371 BREQ L_Lcd_Out13
L__Lcd_Out35:
0x04E2 0x810D LDD R16, Y+5
0x04E4 0x3002 CPI R16, 2
0x04E6 0xF371 BREQ L_Lcd_Out14
L__Lcd_Out36:
0x04E8 0x810D LDD R16, Y+5
0x04EA 0x3003 CPI R16, 3
0x04EC 0xF371 BREQ L_Lcd_Out15
L__Lcd_Out37:
0x04EE 0x810D LDD R16, Y+5
0x04F0 0x3004 CPI R16, 4
0x04F2 0xF371 BREQ L_Lcd_Out16
L__Lcd_Out38:
0x04F4 0xCFF0 RJMP L_Lcd_Out17
L_Lcd_Out12:
;__Lib_Lcd.c,194 ::
0x04F6 0x811E LDD R17, Y+6
0x04F8 0x5011 SUBI R17, 1
0x04FA 0x810D LDD R16, Y+5
0x04FC 0x0F01 ADD R16, R17
0x04FE 0x830D STD Y+5, R16
;__Lib_Lcd.c,196 ::
0x0500 0x930F PUSH R16
0x0502 0xDF63 RCALL _Lcd_Cmd+0
0x0504 0xB7AD IN R26, SPL
0x0506 0xB7BE IN R27, SPH
0x0508 0x9611 ADIW R26, 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -