📄 avr_gy-27.lst
字号:
287 940E 031F CALL elpm32
289 933A ST R19,-Y
28A 932A ST R18,-Y
28B 931A ST R17,-Y
28C 930A ST R16,-Y
28D 0181 MOVW R16,R2
28E 0192 MOVW R18,R4
28F 940E 0409 CALL fpadd2
291 830C STD Y+4,R16
292 831D STD Y+5,R17
293 832E STD Y+6,R18
294 833F STD Y+7,R19
(0054) angle*=10;
295 EE04 LDI R16,0xE4
296 E010 LDI R17,0
297 940E 031F CALL elpm32
299 01CE MOVW R24,R28
29A 9604 ADIW R24,4
29B 939A ST R25,-Y
29C 938A ST R24,-Y
29D 940E 0601 CALL fpmule1
29F 830C STD Y+4,R16
2A0 831D STD Y+5,R17
2A1 832E STD Y+6,R18
2A2 833F STD Y+7,R19
(0055)
(0056) conversion(angle); //转换出显示需要的数据
2A3 810C LDD R16,Y+4
2A4 811D LDD R17,Y+5
2A5 812E LDD R18,Y+6
2A6 813F LDD R19,Y+7
2A7 940E 042D CALL fpint
2A9 DF66 RCALL _conversion
(0057) LCD_write_char(0,0,'A'); //第0行,第0列 显示A
2AA E481 LDI R24,0x41
2AB 8388 STD Y+0,R24
2AC 2722 CLR R18
2AD 2700 CLR R16
2AE DF55 RCALL _LCD_write_char
(0058) LCD_write_char(1,0,'n'); //
2AF E68E LDI R24,0x6E
2B0 8388 STD Y+0,R24
2B1 2722 CLR R18
2B2 E001 LDI R16,1
2B3 DF50 RCALL _LCD_write_char
(0059) LCD_write_char(2,0,'g'); //
2B4 E687 LDI R24,0x67
2B5 8388 STD Y+0,R24
2B6 2722 CLR R18
2B7 E002 LDI R16,2
2B8 DF4B RCALL _LCD_write_char
(0060) LCD_write_char(3,0,'l'); //
2B9 E68C LDI R24,0x6C
2BA 8388 STD Y+0,R24
2BB 2722 CLR R18
2BC E003 LDI R16,3
2BD DF46 RCALL _LCD_write_char
(0061) LCD_write_char(4,0,'e'); //
2BE E685 LDI R24,0x65
2BF 8388 STD Y+0,R24
2C0 2722 CLR R18
2C1 E004 LDI R16,4
2C2 DF41 RCALL _LCD_write_char
(0062) LCD_write_char(5,0,':');
2C3 E38A LDI R24,0x3A
2C4 8388 STD Y+0,R24
2C5 2722 CLR R18
2C6 E005 LDI R16,5
2C7 DF3C RCALL _LCD_write_char
(0063) LCD_write_char(6,0,display[1]);
2C8 9020 0201 LDS R2,display+1
2CA 8228 STD Y+0,R2
2CB 2722 CLR R18
2CC E006 LDI R16,6
2CD DF36 RCALL _LCD_write_char
(0064) LCD_write_char(7,0,display[2]);
2CE 9020 0202 LDS R2,display+2
2D0 8228 STD Y+0,R2
2D1 2722 CLR R18
2D2 E007 LDI R16,7
2D3 DF30 RCALL _LCD_write_char
(0065) LCD_write_char(8,0,display[3]);
2D4 9020 0203 LDS R2,display+3
2D6 8228 STD Y+0,R2
2D7 2722 CLR R18
2D8 E008 LDI R16,0x8
2D9 DF2A RCALL _LCD_write_char
(0066) LCD_write_char(9,0,'.');
2DA E28E LDI R24,0x2E
2DB 8388 STD Y+0,R24
2DC 2722 CLR R18
2DD E009 LDI R16,0x9
2DE DF25 RCALL _LCD_write_char
(0067) LCD_write_char(10,0,display[4]);
2DF 9020 0204 LDS R2,0x0204
2E1 8228 STD Y+0,R2
2E2 2722 CLR R18
2E3 E00A LDI R16,0xA
2E4 DF1F RCALL _LCD_write_char
(0068) LCD_write_char(11,0,0xdf);
2E5 ED8F LDI R24,0xDF
2E6 8388 STD Y+0,R24
2E7 2722 CLR R18
2E8 E00B LDI R16,0xB
2E9 DF1A RCALL _LCD_write_char
2EA 962C ADIW R28,0xC
2EB 940C 0333 JMP pop_xgset00FC
(0069)
(0070) }
(0071)
(0072) /*******************************
(0073) 主程序
(0074) *******************************/
(0075) void main(void)
(0076) {
(0077) unsigned char i;
(0078) delay_nms(50); //lcd上电延时
_main:
i --> Y,+1
2ED E302 LDI R16,0x32
2EE E010 LDI R17,0
2EF DE00 RCALL _delay_nms
(0079) LCD_init(); //lcd初始化
2F0 DE98 RCALL _LCD_init
2F1 C00A RJMP 0x02FC
(0080)
(0081) while(1){ //循环
(0082) I2C_Write(0x02,0x00); //模式寄存器写0
2F2 2722 CLR R18
2F3 E002 LDI R16,2
2F4 DE09 RCALL _I2C_Write
(0083) delay_nms(50);
2F5 E302 LDI R16,0x32
2F6 E010 LDI R17,0
2F7 DDF8 RCALL _delay_nms
(0084) display_angle(); //显示角度
2F8 DF5A RCALL _display_angle
(0085) delay_nms(50);
FILE: <library>
2F9 E302 LDI R16,0x32
2FA E010 LDI R17,0
2FB DDF4 RCALL _delay_nms
2FC CFF5 RJMP 0x02F2
2FD 9508 RET
push_arg4:
2FE 933A ST R19,-Y
2FF 932A ST R18,-Y
push_arg2:
300 931A ST R17,-Y
301 930A ST R16,-Y
302 9508 RET
mod16u:
303 9468 BSET 6
304 C001 RJMP xdiv16u
div16u:
305 94E8 BCLR 6
xdiv16u:
306 92EA ST R14,-Y
307 92FA ST R15,-Y
308 938A ST R24,-Y
309 24EE CLR R14
30A 24FF CLR R15
30B E180 LDI R24,0x10
30C 0F00 LSL R16
30D 1F11 ROL R17
30E 1CEE ROL R14
30F 1CFF ROL R15
310 16E2 CP R14,R18
311 06F3 CPC R15,R19
312 F018 BCS 0x0316
313 1AE2 SUB R14,R18
314 0AF3 SBC R15,R19
315 9503 INC R16
316 958A DEC R24
317 F7A1 BNE 0x030C
318 F416 BRTC 0x031B
319 2D0E MOV R16,R14
31A 2D1F MOV R17,R15
31B 9189 LD R24,Y+
31C 90F9 LD R15,Y+
31D 90E9 LD R14,Y+
31E 9508 RET
elpm32:
31F 93EA ST R30,-Y
320 93FA ST R31,-Y
321 920A ST R0,-Y
322 2FE0 MOV R30,R16
323 2FF1 MOV R31,R17
324 95D8 ELPM
325 2D00 MOV R16,R0
326 9631 ADIW R30,1
327 95D8 ELPM
328 2D10 MOV R17,R0
329 9631 ADIW R30,1
32A 95D8 ELPM
32B 2D20 MOV R18,R0
32C 9631 ADIW R30,1
32D 95D8 ELPM
32E 2D30 MOV R19,R0
32F 9009 LD R0,Y+
330 91F9 LD R31,Y+
331 91E9 LD R30,Y+
332 9508 RET
pop_xgset00FC:
333 90A9 LD R10,Y+
334 90B9 LD R11,Y+
335 90C9 LD R12,Y+
336 90D9 LD R13,Y+
337 90E9 LD R14,Y+
338 90F9 LD R15,Y+
339 9508 RET
push_xgsetF0FC:
33A 937A ST R23,-Y
33B 936A ST R22,-Y
push_xgset30FC:
33C 935A ST R21,-Y
33D 934A ST R20,-Y
push_xgset00FC:
33E 92FA ST R15,-Y
33F 92EA ST R14,-Y
push_xgset003C:
340 92DA ST R13,-Y
341 92CA ST R12,-Y
342 92BA ST R11,-Y
343 92AA ST R10,-Y
344 9508 RET
push_xgset300C:
345 935A ST R21,-Y
346 934A ST R20,-Y
347 92BA ST R11,-Y
348 92AA ST R10,-Y
349 9508 RET
pop_xgset300C:
34A 90A9 LD R10,Y+
34B 90B9 LD R11,Y+
34C 9149 LD R20,Y+
34D 9159 LD R21,Y+
34E 9508 RET
push_xgsetF000:
34F 937A ST R23,-Y
350 936A ST R22,-Y
351 935A ST R21,-Y
352 934A ST R20,-Y
353 9508 RET
pop_xgsetF000:
354 9149 LD R20,Y+
355 9159 LD R21,Y+
356 9169 LD R22,Y+
357 9179 LD R23,Y+
358 9508 RET
push_xgsetF00C:
359 937A ST R23,-Y
35A 936A ST R22,-Y
35B 935A ST R21,-Y
35C 934A ST R20,-Y
35D 92BA ST R11,-Y
35E 92AA ST R10,-Y
35F 9508 RET
pop_xgsetF00C:
360 90A9 LD R10,Y+
361 90B9 LD R11,Y+
362 9149 LD R20,Y+
363 9159 LD R21,Y+
364 9169 LD R22,Y+
365 9179 LD R23,Y+
366 9508 RET
push_xgset303C:
367 935A ST R21,-Y
368 934A ST R20,-Y
369 92DA ST R13,-Y
36A 92CA ST R12,-Y
36B 92BA ST R11,-Y
36C 92AA ST R10,-Y
36D 9508 RET
pop_xgset303C:
36E 90A9 LD R10,Y+
36F 90B9 LD R11,Y+
370 90C9 LD R12,Y+
371 90D9 LD R13,Y+
372 9149 LD R20,Y+
373 9159 LD R21,Y+
374 9508 RET
neg32:
375 9500 COM R16
376 9510 COM R17
377 9520 COM R18
378 9530 COM R19
379 5F0F SUBI R16,0xFF
37A 4F1F SBCI R17,0xFF
37B 4F2F SBCI R18,0xFF
37C 4F3F SBCI R19,0xFF
37D 9508 RET
lsl32:
37E 920F PUSH R0
37F 9009 LD R0,Y+
380 2000 TST R0
381 F031 BEQ 0x0388
382 0F00 LSL R16
383 1F11 ROL R17
384 1F22 ROL R18
385 1F33 ROL R19
386 940A DEC R0
387 CFF8 RJMP 0x0380
388 900F POP R0
389 9508 RET
fpsub:
38A 9468 BSET 6
38B C001 RJMP fpadd_alt
fpadd:
38C 94E8 BCLR 6
fpadd_alt:
38D 940E 0593 CALL saveR8toR25
38F 940E 0529 CALL unpacks
391 F409 BNE 0x0393
392 C047 RJMP 0x03DA
393 2EE6 MOV R14,R22
394 2ED5 MOV R13,R21
395 2EC4 MOV R12,R20
396 2EB3 MOV R11,R19
397 2EA2 MOV R10,R18
398 2E91 MOV R9,R17
399 2E80 MOV R8,R16
39A 8100 LDD R16,Z+0
39B 8111 LDD R17,Z+1
39C 8122 LDD R18,Z+2
39D 8133 LDD R19,Z+3
39E 940E 0529 CALL unpacks
3A0 F409 BNE 0x03A2
3A1 C043 RJMP 0x03E5
3A2 2F84 MOV R24,R20
3A3 2F95 MOV R25,R21
3A4 198C SUB R24,R12
3A5 099D SBC R25,R13
3A6 F0B9 BEQ 0x03BE
3A7 F472 BPL 0x03B6
3A8 9590 COM R25
3A9 9580 COM R24
3AA 9601 ADIW R24,1
3AB 2D4C MOV R20,R12
3AC 2D5D MOV R21,R13
3AD 3188 CPI R24,0x18
3AE F5B0 BCC 0x03E5
3AF 9535 ASR R19
3B0 9527 ROR R18
3B1 9517 ROR R17
3B2 9507 ROR R16
3B3 9701 SBIW R24,1
3B4 F7D1 BNE 0x03AF
3B5 C008 RJMP 0x03BE
3B6 3188 CPI R24,0x18
3B7 F510 BCC 0x03DA
3B8 94B5 ASR R11
3B9 94A7 ROR R10
3BA 9497 ROR R9
3BB 9487 ROR R8
3BC 9701 SBIW R24,1
3BD F7D1 BNE 0x03B8
3BE 2766 CLR R22
3BF F02E BRTS 0x03C5
3C0 0D08 ADD R16,R8
3C1 1D19 ADC R17,R9
3C2 1D2A ADC R18,R10
3C3 1D3B ADC R19,R11
3C4 C009 RJMP 0x03CE
3C5 1A80 SUB R8,R16
3C6 0A91 SBC R9,R17
3C7 0AA2 SBC R10,R18
3C8 0AB3 SBC R11,R19
3C9 2D08 MOV R16,R8
3CA 2D19 MOV R17,R9
3CB 2D2A MOV R18,R10
3CC 2D3B MOV R19,R11
3CD 2333 TST R19
3CE F41A BPL 0x03D2
3CF 940E 0375 CALL neg32
3D1 E860 LDI R22,0x80
3D2 940E 054E CALL normalize_and_pack
3D4 C002 RJMP 0x03D7
3D5 940E 057C CALL pack
3D7 940E 05A2 CALL restoreR8toR25
3D9 9508 RET
3DA 8100 LDD R16,Z+0
3DB 8111 LDD R17,Z+1
3DC 8122 LDD R18,Z+2
3DD 8133 LDD R19,Z+3
3DE F7C6 BRTC 0x03D7
3DF 940E 0531 CALL tstR16_R19
3E1 F3A9 BEQ 0x03D7
3E2 E840 LDI R20,0x80
3E3 2734 EOR R19,R20
3E4 CFF2 RJMP 0x03D7
3E5 2D08 MOV R16,R8
3E6 2D19 MOV R17,R9
3E7 2D2A MOV R18,R10
3E8 2D3B MOV R19,R11
3E9 2D4C MOV R20,R12
3EA 2D5D MOV R21,R13
3EB 2D6E MOV R22,R14
3EC 2333 TST R19
3ED F73A BPL 0x03D5
3EE 940E 0375 CALL neg32
3F0 E860 LDI R22,0x80
3F1 CFE3 RJMP 0x03D5
fpadd1:
3F2 93FA ST R31,-Y
3F3 93EA ST R30,-Y
3F4 81EA LDD R30,Y+2
3F5 81FB LDD R31,Y+3
3F6 940E 038C CALL fpadd
3F8 91E9 LD R30,Y+
3F9 91F9 LD R31,Y+
3FA 9622 ADIW R28,2
3FB 9508 RET
fpadd1x:
3FC 93FA ST R31,-Y
3FD 93EA ST R30,-Y
3FE 81EA LDD R30,Y+2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -