📄 main.lss
字号:
254: 4f 93 push r20
256: 5f 93 push r21
258: 6f 93 push r22
25a: 7f 93 push r23
25c: 8f 93 push r24
25e: 9f 93 push r25
260: af 93 push r26
262: bf 93 push r27
264: ef 93 push r30
266: ff 93 push r31
268: cf 93 push r28
26a: df 93 push r29
26c: cd b7 in r28, 0x3d ; 61
26e: de b7 in r29, 0x3e ; 62
270: 6c 97 sbiw r28, 0x1c ; 28
272: de bf out 0x3e, r29 ; 62
274: cd bf out 0x3d, r28 ; 61
//硬件自动清除ADIF标志位
ADC_INT_SE=ADC; //读取结果
276: 80 91 24 00 lds r24, 0x0024
27a: 90 91 25 00 lds r25, 0x0025
27e: 90 93 23 01 sts 0x0123, r25
282: 80 93 22 01 sts 0x0122, r24
//实测的Vref引脚电压 =2556mV
long temp32;
temp32=(long) ADC_INT_SE*Vref;
286: 80 91 22 01 lds r24, 0x0122
28a: 90 91 23 01 lds r25, 0x0123
28e: aa 27 eor r26, r26
290: bb 27 eor r27, r27
292: 24 ee ldi r18, 0xE4 ; 228
294: 3c e0 ldi r19, 0x0C ; 12
296: 40 e0 ldi r20, 0x00 ; 0
298: 50 e0 ldi r21, 0x00 ; 0
29a: bc 01 movw r22, r24
29c: cd 01 movw r24, r26
29e: 0e 94 1e 05 call 0xa3c <__mulsi3>
2a2: dc 01 movw r26, r24
2a4: cb 01 movw r24, r22
2a6: 89 83 std Y+1, r24 ; 0x01
2a8: 9a 83 std Y+2, r25 ; 0x02
2aa: ab 83 std Y+3, r26 ; 0x03
2ac: bc 83 std Y+4, r27 ; 0x04
LED_Volt=(unsigned int)(temp32/1024);
2ae: 89 81 ldd r24, Y+1 ; 0x01
2b0: 9a 81 ldd r25, Y+2 ; 0x02
2b2: ab 81 ldd r26, Y+3 ; 0x03
2b4: bc 81 ldd r27, Y+4 ; 0x04
2b6: 89 8f std Y+25, r24 ; 0x19
2b8: 9a 8f std Y+26, r25 ; 0x1a
2ba: ab 8f std Y+27, r26 ; 0x1b
2bc: bc 8f std Y+28, r27 ; 0x1c
2be: 89 8d ldd r24, Y+25 ; 0x19
2c0: 9a 8d ldd r25, Y+26 ; 0x1a
2c2: ab 8d ldd r26, Y+27 ; 0x1b
2c4: bc 8d ldd r27, Y+28 ; 0x1c
2c6: bb 23 and r27, r27
2c8: 64 f4 brge .+24 ; 0x2e2 <__vector_21+0x9c>
2ca: 89 8d ldd r24, Y+25 ; 0x19
2cc: 9a 8d ldd r25, Y+26 ; 0x1a
2ce: ab 8d ldd r26, Y+27 ; 0x1b
2d0: bc 8d ldd r27, Y+28 ; 0x1c
2d2: 81 50 subi r24, 0x01 ; 1
2d4: 9c 4f sbci r25, 0xFC ; 252
2d6: af 4f sbci r26, 0xFF ; 255
2d8: bf 4f sbci r27, 0xFF ; 255
2da: 89 8f std Y+25, r24 ; 0x19
2dc: 9a 8f std Y+26, r25 ; 0x1a
2de: ab 8f std Y+27, r26 ; 0x1b
2e0: bc 8f std Y+28, r27 ; 0x1c
2e2: 89 8d ldd r24, Y+25 ; 0x19
2e4: 9a 8d ldd r25, Y+26 ; 0x1a
2e6: ab 8d ldd r26, Y+27 ; 0x1b
2e8: bc 8d ldd r27, Y+28 ; 0x1c
2ea: 07 2e mov r0, r23
2ec: 7a e0 ldi r23, 0x0A ; 10
2ee: b5 95 asr r27
2f0: a7 95 ror r26
2f2: 97 95 ror r25
2f4: 87 95 ror r24
2f6: 7a 95 dec r23
2f8: d1 f7 brne .-12 ; 0x2ee <__vector_21+0xa8>
2fa: 70 2d mov r23, r0
2fc: 90 93 25 01 sts 0x0125, r25
300: 80 93 24 01 sts 0x0124, r24
uchar str[20];
delay100ms() ;
304: 0e 94 f5 00 call 0x1ea <delay100ms>
sprintf(str, "%4d mV ",LED_Volt);
308: 80 91 24 01 lds r24, 0x0124
30c: 90 91 25 01 lds r25, 0x0125
310: 9f 93 push r25
312: 8f 93 push r24
314: 80 e0 ldi r24, 0x00 ; 0
316: 91 e0 ldi r25, 0x01 ; 1
318: 9f 93 push r25
31a: 8f 93 push r24
31c: ce 01 movw r24, r28
31e: 05 96 adiw r24, 0x05 ; 5
320: 9f 93 push r25
322: 8f 93 push r24
324: 0e 94 e5 01 call 0x3ca <sprintf>
328: ad b7 in r26, 0x3d ; 61
32a: be b7 in r27, 0x3e ; 62
32c: 16 96 adiw r26, 0x06 ; 6
32e: 0f b6 in r0, 0x3f ; 63
330: f8 94 cli
332: be bf out 0x3e, r27 ; 62
334: 0f be out 0x3f, r0 ; 63
336: ad bf out 0x3d, r26 ; 61
USART_Transmit_str("Hello! 这是ADC转换测试:\n");
338: 88 e0 ldi r24, 0x08 ; 8
33a: 91 e0 ldi r25, 0x01 ; 1
33c: 0e 94 96 00 call 0x12c <USART_Transmit_str>
USART_Transmit_str(str);
340: ce 01 movw r24, r28
342: 05 96 adiw r24, 0x05 ; 5
344: 0e 94 96 00 call 0x12c <USART_Transmit_str>
//delay100ms() ;
ADCSRA |= _BV(ADSC);
348: 80 91 26 00 lds r24, 0x0026
34c: 80 64 ori r24, 0x40 ; 64
34e: 80 93 26 00 sts 0x0026, r24
352: 6c 96 adiw r28, 0x1c ; 28
354: f8 94 cli
356: de bf out 0x3e, r29 ; 62
358: cd bf out 0x3d, r28 ; 61
35a: df 91 pop r29
35c: cf 91 pop r28
35e: ff 91 pop r31
360: ef 91 pop r30
362: bf 91 pop r27
364: af 91 pop r26
366: 9f 91 pop r25
368: 8f 91 pop r24
36a: 7f 91 pop r23
36c: 6f 91 pop r22
36e: 5f 91 pop r21
370: 4f 91 pop r20
372: 3f 91 pop r19
374: 2f 91 pop r18
376: 0f 90 pop r0
378: 0f be out 0x3f, r0 ; 63
37a: 0f 90 pop r0
37c: 1f 90 pop r1
37e: 18 95 reti
00000380 <main>:
}
int main(void)
{
380: cf ef ldi r28, 0xFF ; 255
382: d0 e1 ldi r29, 0x10 ; 16
384: de bf out 0x3e, r29 ; 62
386: cd bf out 0x3d, r28 ; 61
ADC_INT_SE=0;
388: 10 92 23 01 sts 0x0123, r1
38c: 10 92 22 01 sts 0x0122, r1
USART_Init();
390: 0e 94 65 00 call 0xca <USART_Init>
//上电默认DDRx=0x00,PORTx=0x00 输入,无上拉电阻
PORTB=0xFF; //不用的管脚使能内部上拉电阻。
394: 8f ef ldi r24, 0xFF ; 255
396: 80 93 38 00 sts 0x0038, r24
PORTC=0xFF;
39a: 8f ef ldi r24, 0xFF ; 255
39c: 80 93 35 00 sts 0x0035, r24
PORTD=0xFF;
3a0: 8f ef ldi r24, 0xFF ; 255
3a2: 80 93 32 00 sts 0x0032, r24
PORTF=~(1<<in_Single); //作ADC输入时,不可使能内部上拉电阻。
3a6: 8e ef ldi r24, 0xFE ; 254
3a8: 80 93 62 00 sts 0x0062, r24
ADMUX=0;
3ac: 10 92 27 00 sts 0x0027, r1
ADCSRA=_BV(ADEN)|_BV(ADSC)|_BV(ADIE)|_BV(ADPS2)|_BV(ADPS1); //使能ADC,时钟64分频 125KHz@8MHz system clock
3b0: 8e ec ldi r24, 0xCE ; 206
3b2: 80 93 26 00 sts 0x0026, r24
sei(); //使能全局中断
3b6: 78 94 sei
ADCSRA|=_BV(ADSC);
3b8: 80 91 26 00 lds r24, 0x0026
3bc: 80 64 ori r24, 0x40 ; 64
3be: 80 93 26 00 sts 0x0026, r24
}
3c2: 80 e0 ldi r24, 0x00 ; 0
3c4: 90 e0 ldi r25, 0x00 ; 0
3c6: 0c 94 5f 05 jmp 0xabe <_exit>
000003ca <sprintf>:
3ca: 0f 93 push r16
3cc: 1f 93 push r17
3ce: cf 93 push r28
3d0: df 93 push r29
3d2: cd b7 in r28, 0x3d ; 61
3d4: de b7 in r29, 0x3e ; 62
3d6: 2e 97 sbiw r28, 0x0e ; 14
3d8: 0f b6 in r0, 0x3f ; 63
3da: f8 94 cli
3dc: de bf out 0x3e, r29 ; 62
3de: 0f be out 0x3f, r0 ; 63
3e0: cd bf out 0x3d, r28 ; 61
3e2: 0d 89 ldd r16, Y+21 ; 0x15
3e4: 1e 89 ldd r17, Y+22 ; 0x16
3e6: 2f 89 ldd r18, Y+23 ; 0x17
3e8: 38 8d ldd r19, Y+24 ; 0x18
3ea: 86 e0 ldi r24, 0x06 ; 6
3ec: 8c 83 std Y+4, r24 ; 0x04
3ee: 1a 83 std Y+2, r17 ; 0x02
3f0: 09 83 std Y+1, r16 ; 0x01
3f2: 8f ef ldi r24, 0xFF ; 255
3f4: 9f e7 ldi r25, 0x7F ; 127
3f6: 9e 83 std Y+6, r25 ; 0x06
3f8: 8d 83 std Y+5, r24 ; 0x05
3fa: ae 01 movw r20, r28
3fc: 47 5e subi r20, 0xE7 ; 231
3fe: 5f 4f sbci r21, 0xFF ; 255
400: b9 01 movw r22, r18
402: ce 01 movw r24, r28
404: 01 96 adiw r24, 0x01 ; 1
406: 0e 94 15 02 call 0x42a <vfprintf>
40a: ef 81 ldd r30, Y+7 ; 0x07
40c: f8 85 ldd r31, Y+8 ; 0x08
40e: e0 0f add r30, r16
410: f1 1f adc r31, r17
412: 10 82 st Z, r1
414: 2e 96 adiw r28, 0x0e ; 14
416: 0f b6 in r0, 0x3f ; 63
418: f8 94 cli
41a: de bf out 0x3e, r29 ; 62
41c: 0f be out 0x3f, r0 ; 63
41e: cd bf out 0x3d, r28 ; 61
420: df 91 pop r29
422: cf 91 pop r28
424: 1f 91 pop r17
426: 0f 91 pop r16
428: 08 95 ret
0000042a <vfprintf>:
42a: 2f 92 push r2
42c: 3f 92 push r3
42e: 4f 92 push r4
430: 5f 92 push r5
432: 6f 92 push r6
434: 7f 92 push r7
436: 8f 92 push r8
438: 9f 92 push r9
43a: af 92 push r10
43c: bf 92 push r11
43e: cf 92 push r12
440: df 92 push r13
442: ef 92 push r14
444: ff 92 push r15
446: 0f 93 push r16
448: 1f 93 push r17
44a: cf 93 push r28
44c: df 93 push r29
44e: cd b7 in r28, 0x3d ; 61
450: de b7 in r29, 0x3e ; 62
452: 62 97 sbiw r28, 0x12 ; 18
454: 0f b6 in r0, 0x3f ; 63
456: f8 94 cli
458: de bf out 0x3e, r29 ; 62
45a: 0f be out 0x3f, r0 ; 63
45c: cd bf out 0x3d, r28 ; 61
45e: ee 24 eor r14, r14
460: ff 24 eor r15, r15
462: 87 01 movw r16, r14
464: 1c 01 movw r2, r24
466: 7e 87 std Y+14, r23 ; 0x0e
468: 6d 87 std Y+13, r22 ; 0x0d
46a: 2a 01 movw r4, r20
46c: cc 24 eor r12, r12
46e: dd 24 eor r13, r13
470: fc 01 movw r30, r24
472: d7 82 std Z+7, r13 ; 0x07
474: c6 82 std Z+6, r12 ; 0x06
476: 83 81 ldd r24, Z+3 ; 0x03
478: 81 fd sbrc r24, 1
47a: 68 c2 rjmp .+1232 ; 0x94c <vfprintf+0x522>
47c: 8f ef ldi r24, 0xFF ; 255
47e: 9f ef ldi r25, 0xFF ; 255
480: 78 c2 rjmp .+1264 ; 0x972 <vfprintf+0x548>
482: 8d 85 ldd r24, Y+13 ; 0x0d
484: 9e 85 ldd r25, Y+14 ; 0x0e
486: 01 96 adiw r24, 0x01 ; 1
488: 9e 87 std Y+14, r25 ; 0x0e
48a: 8d 87 std Y+13, r24 ; 0x0d
48c: c0 fe sbrs r12, 0
48e: 4b c2 rjmp .+1174 ; 0x926 <vfprintf+0x4fc>
490: 8f 85 ldd r24, Y+15 ; 0x0f
492: 80 53 subi r24, 0x30 ; 48
494: 8a 30 cpi r24, 0x0A ; 10
496: d0 f4 brcc .+52 ; 0x4cc <vfprintf+0xa2>
498: 9f 85 ldd r25, Y+15 ; 0x0f
49a: 90 33 cpi r25, 0x30 ; 48
49c: 39 f4 brne .+14 ; 0x4ac <vfprintf+0x82>
49e: 66 20 and r6, r6
4a0: 29 f4 brne .+10 ; 0x4ac <vfprintf+0x82>
4a2: c3 fc sbrc r12, 3
4a4: 03 c0 rjmp .+6 ; 0x4ac <vfprintf+0x82>
4a6: e0 e0 ldi r30, 0x00 ; 0
4a8: f1 e0 ldi r31, 0x01 ; 1
4aa: 8d c0 rjmp .+282 ; 0x5c6 <vfprintf+0x19c>
4ac: 8a e0 ldi r24, 0x0A ; 10
4ae: 68 9e mul r6, r24
4b0: 60 2c mov r6, r0
4b2: 11 24 eor r1, r1
4b4: ff 85 ldd r31, Y+15 ; 0x0f
4b6: 6f 0e add r6, r31
4b8: 20 ed ldi r18, 0xD0 ; 208
4ba: 62 0e add r6, r18
4bc: 67 fe sbrs r6, 7
4be: 02 c0 rjmp .+4 ; 0x4c4 <vfprintf+0x9a>
4c0: 5f e7 ldi r21, 0x7F ; 127
4c2: 65 2e mov r6, r21
4c4: c3 fc sbrc r12, 3
4c6: 42 c2 rjmp .+1156 ; 0x94c <vfprintf+0x522>
4c8: 76 2c mov r7, r6
4ca: 40 c2 rjmp .+1152 ; 0x94c <vfprintf+0x522>
4cc: c3 fe sbrs r12, 3
4ce: 04 c0 rjmp .+8 ; 0x4d8 <vfprintf+0xae>
4d0: 66 20 and r6, r6
4d2: 11 f4 brne .+4 ; 0x4d8 <vfprintf+0xae>
4d4: 41 e0 ldi r20, 0x01 ; 1
4d6: 64 2e mov r6, r20
4d8: ef 85 ldd r30, Y+15 ; 0x0f
4da: 8e 2f mov r24, r30
4dc: 99 27 eor r25, r25
4de: 87 fd sbrc r24, 7
4e0: 90 95 com r25
4e2: 88 36 cpi r24, 0x68 ; 104
4e4: 91 05 cpc r25, r1
4e6: 8c f5 brge .+98 ; 0x54a <vfprintf+0x120>
4e8: 85 36 cpi r24, 0x65 ; 101
4ea: 91 05 cpc r25, r1
4ec: 0c f0 brlt .+2 ; 0x4f0 <vfprintf+0xc6>
4ee: 6e c0 rjmp .+220 ; 0x5cc <vfprintf+0x1a2>
4f0: 83 35 cpi r24, 0x53 ; 83
4f2: 91 05 cpc r25, r1
4f4: 09 f4 brne .+2 ; 0x4f8 <vfprintf+0xce>
4f6: 93 c0 rjmp .+294 ; 0x61e <vfprintf+0x1f4>
4f8: 84 35 cpi r24, 0x54 ; 84
4fa: 91 05 cpc r25, r1
4fc: cc f4 brge .+50 ; 0x530 <vfprintf+0x106>
4fe: 8b 32 cpi r24, 0x2B ; 43
500: 91 05 cpc r25, r1
502: 09 f4 brne .+2 ; 0x506 <vfprintf+0xdc>
504: 49 c0 rjmp .+146 ; 0x598 <vfprintf+0x16e>
506: 8c 32 cpi r24, 0x2C ; 44
508: 91 05 cpc r25, r1
50a: 4c f4 brge .+18 ; 0x51e <vfprintf+0xf4>
50c: 80 32 cpi r24, 0x20 ; 32
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -