📄 adc.lss
字号:
adc.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000000 00800100 00000340 000003d4 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000340 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000002 00800100 00800100 000003d4 2**0
ALLOC
3 .noinit 00000000 00800102 00800102 000003d4 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000003d4 2**0
CONTENTS
5 .debug_aranges 00000028 00000000 00000000 000003d4 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 0000009e 00000000 00000000 000003fc 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 0000030d 00000000 00000000 0000049a 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 00000139 00000000 00000000 000007a7 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 0000029c 00000000 00000000 000008e0 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_str 0000000d 00000000 00000000 00000b7c 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 19 c0 rjmp .+50 ; 0x34
2: 32 c0 rjmp .+100 ; 0x68
4: 31 c0 rjmp .+98 ; 0x68
6: 30 c0 rjmp .+96 ; 0x68
8: 2f c0 rjmp .+94 ; 0x68
a: 2e c0 rjmp .+92 ; 0x68
c: 2d c0 rjmp .+90 ; 0x68
e: 2c c0 rjmp .+88 ; 0x68
10: 2b c0 rjmp .+86 ; 0x68
12: 97 c0 rjmp .+302 ; 0x142
14: 29 c0 rjmp .+82 ; 0x68
16: 28 c0 rjmp .+80 ; 0x68
18: 27 c0 rjmp .+78 ; 0x68
1a: 26 c0 rjmp .+76 ; 0x68
1c: 25 c0 rjmp .+74 ; 0x68
1e: 24 c0 rjmp .+72 ; 0x68
20: 23 c0 rjmp .+70 ; 0x68
22: 22 c0 rjmp .+68 ; 0x68
24: 21 c0 rjmp .+66 ; 0x68
26: 20 c0 rjmp .+64 ; 0x68
28: 1f c0 rjmp .+62 ; 0x68
2a: 1e c0 rjmp .+60 ; 0x68
2c: 1d c0 rjmp .+58 ; 0x68
2e: 1c c0 rjmp .+56 ; 0x68
30: 1b c0 rjmp .+54 ; 0x68
32: 1a c0 rjmp .+52 ; 0x68
00000034 <__ctors_end>:
34: 11 24 eor r1, r1
36: 1f be out 0x3f, r1 ; 63
38: cf ef ldi r28, 0xFF ; 255
3a: d2 e0 ldi r29, 0x02 ; 2
3c: de bf out 0x3e, r29 ; 62
3e: cd bf out 0x3d, r28 ; 61
00000040 <__do_copy_data>:
40: 11 e0 ldi r17, 0x01 ; 1
42: a0 e0 ldi r26, 0x00 ; 0
44: b1 e0 ldi r27, 0x01 ; 1
46: e0 e4 ldi r30, 0x40 ; 64
48: f3 e0 ldi r31, 0x03 ; 3
4a: 02 c0 rjmp .+4 ; 0x50
0000004c <.do_copy_data_loop>:
4c: 05 90 lpm r0, Z+
4e: 0d 92 st X+, r0
00000050 <.do_copy_data_start>:
50: a0 30 cpi r26, 0x00 ; 0
52: b1 07 cpc r27, r17
54: d9 f7 brne .-10 ; 0x4c
00000056 <__do_clear_bss>:
56: 11 e0 ldi r17, 0x01 ; 1
58: a0 e0 ldi r26, 0x00 ; 0
5a: b1 e0 ldi r27, 0x01 ; 1
5c: 01 c0 rjmp .+2 ; 0x60
0000005e <.do_clear_bss_loop>:
5e: 1d 92 st X+, r1
00000060 <.do_clear_bss_start>:
60: a2 30 cpi r26, 0x02 ; 2
62: b1 07 cpc r27, r17
64: e1 f7 brne .-8 ; 0x5e
66: 11 c0 rjmp .+34 ; 0x8a
00000068 <__bad_interrupt>:
68: cb cf rjmp .-106 ; 0x0
0000006a <adc_init>:
unsigned int dtime=0;
void delay_l(int time);//单位是100us
void puts(char *s,unsigned char i);
void adc_init()
{
6a: cf 93 push r28
6c: df 93 push r29
6e: cd b7 in r28, 0x3d ; 61
70: de b7 in r29, 0x3e ; 62
DIDR0=(1<<ADC0D);//选择ADC0脚为AD输入脚
72: 81 e0 ldi r24, 0x01 ; 1
74: 80 93 7e 00 sts 0x007E, r24
ADMUX=0x40;//0通道,AVcc作为参考
78: 80 e4 ldi r24, 0x40 ; 64
7a: 80 93 7c 00 sts 0x007C, r24
ADCSRA=(1<<ADEN)|(0<<ADSC)|(1<<ADIF)|0x07;//开启AD
7e: 87 e9 ldi r24, 0x97 ; 151
80: 80 93 7a 00 sts 0x007A, r24
84: df 91 pop r29
86: cf 91 pop r28
88: 08 95 ret
0000008a <main>:
}
void main()
{
8a: c5 ef ldi r28, 0xF5 ; 245
8c: d2 e0 ldi r29, 0x02 ; 2
8e: de bf out 0x3e, r29 ; 62
90: cd bf out 0x3d, r28 ; 61
unsigned int a;
char buffer[8];
CLKPR=(1<<CLKPCE);
92: 80 e8 ldi r24, 0x80 ; 128
94: 80 93 61 00 sts 0x0061, r24
CLKPR=0;
98: 10 92 61 00 sts 0x0061, r1
uart_init();
9c: f8 d0 rcall .+496 ; 0x28e
adc_init();
9e: e5 df rcall .-54 ; 0x6a
timer2_init();
a0: 3f d0 rcall .+126 ; 0x120
sei();
a2: 78 94 sei
itoa(3654,buffer,10);
a4: ce 01 movw r24, r28
a6: 03 96 adiw r24, 0x03 ; 3
a8: 4a e0 ldi r20, 0x0A ; 10
aa: 50 e0 ldi r21, 0x00 ; 0
ac: bc 01 movw r22, r24
ae: 86 e4 ldi r24, 0x46 ; 70
b0: 9e e0 ldi r25, 0x0E ; 14
b2: ff d0 rcall .+510 ; 0x2b2
while(1)
{
PRR&=~(1<<PRADC);
b4: 80 91 64 00 lds r24, 0x0064
b8: 8e 7f andi r24, 0xFE ; 254
ba: 80 93 64 00 sts 0x0064, r24
ADMUX=0x40;
be: 80 e4 ldi r24, 0x40 ; 64
c0: 80 93 7c 00 sts 0x007C, r24
ADCSRA|=(1<<ADSC);
c4: 80 91 7a 00 lds r24, 0x007A
c8: 80 64 ori r24, 0x40 ; 64
ca: 80 93 7a 00 sts 0x007A, r24
while(!(ADCSRA&(1<<ADIF)));
ce: 80 91 7a 00 lds r24, 0x007A
d2: 99 27 eor r25, r25
d4: 92 95 swap r25
d6: 82 95 swap r24
d8: 8f 70 andi r24, 0x0F ; 15
da: 89 27 eor r24, r25
dc: 9f 70 andi r25, 0x0F ; 15
de: 89 27 eor r24, r25
e0: 81 70 andi r24, 0x01 ; 1
e2: 90 70 andi r25, 0x00 ; 0
e4: 00 97 sbiw r24, 0x00 ; 0
e6: 09 f4 brne .+2 ; 0xea
e8: f2 cf rjmp .-28 ; 0xce
ADCSRA|=(1<<ADIF);
ea: 80 91 7a 00 lds r24, 0x007A
ee: 80 61 ori r24, 0x10 ; 16
f0: 80 93 7a 00 sts 0x007A, r24
a=ADC;
f4: 80 91 78 00 lds r24, 0x0078
f8: 90 91 79 00 lds r25, 0x0079
fc: 89 83 std Y+1, r24 ; 0x01
fe: 9a 83 std Y+2, r25 ; 0x02
itoa(a,buffer,10);
100: ce 01 movw r24, r28
102: 03 96 adiw r24, 0x03 ; 3
104: 4a e0 ldi r20, 0x0A ; 10
106: 50 e0 ldi r21, 0x00 ; 0
108: bc 01 movw r22, r24
10a: 89 81 ldd r24, Y+1 ; 0x01
10c: 9a 81 ldd r25, Y+2 ; 0x02
10e: d1 d0 rcall .+418 ; 0x2b2
puts(buffer,4);
110: ce 01 movw r24, r28
112: 03 96 adiw r24, 0x03 ; 3
114: 64 e0 ldi r22, 0x04 ; 4
116: 96 d0 rcall .+300 ; 0x244
delay_l(1000);
118: 88 ee ldi r24, 0xE8 ; 232
11a: 93 e0 ldi r25, 0x03 ; 3
11c: 32 d0 rcall .+100 ; 0x182
11e: ca cf rjmp .-108 ; 0xb4
00000120 <timer2_init>:
}
}
void timer2_init(void)
{
120: cf 93 push r28
122: df 93 push r29
124: cd b7 in r28, 0x3d ; 61
126: de b7 in r29, 0x3e ; 62
TIMSK2 = 0x00;
128: 10 92 70 00 sts 0x0070, r1
ASSR = 0; //同步时钟
12c: 10 92 b6 00 sts 0x00B6, r1
TCNT2 = 5; //定时时间100us,20M晶振
130: 85 e0 ldi r24, 0x05 ; 5
132: 80 93 b2 00 sts 0x00B2, r24
TCCR2B = (0<<CS22)|(1<<CS21)|(0<<CS20); //分频比8,0x07
136: 82 e0 ldi r24, 0x02 ; 2
138: 80 93 b1 00 sts 0x00B1, r24
13c: df 91 pop r29
13e: cf 91 pop r28
140: 08 95 ret
00000142 <__vector_9>:
}
SIGNAL(SIG_OVERFLOW2)
{
142: 1f 92 push r1
144: 0f 92 push r0
146: 0f b6 in r0, 0x3f ; 63
148: 0f 92 push r0
14a: 11 24 eor r1, r1
14c: 8f 93 push r24
14e: 9f 93 push r25
150: cf 93 push r28
152: df 93 push r29
154: cd b7 in r28, 0x3d ; 61
156: de b7 in r29, 0x3e ; 62
TCNT2 = 5;
158: 85 e0 ldi r24, 0x05 ; 5
15a: 80 93 b2 00 sts 0x00B2, r24
dtime++;
15e: 80 91 00 01 lds r24, 0x0100
162: 90 91 01 01 lds r25, 0x0101
166: 01 96 adiw r24, 0x01 ; 1
168: 90 93 01 01 sts 0x0101, r25
16c: 80 93 00 01 sts 0x0100, r24
170: df 91 pop r29
172: cf 91 pop r28
174: 9f 91 pop r25
176: 8f 91 pop r24
178: 0f 90 pop r0
17a: 0f be out 0x3f, r0 ; 63
17c: 0f 90 pop r0
17e: 1f 90 pop r1
180: 18 95 reti
00000182 <delay_l>:
}
void delay_l(int time)//单位是100us
{
182: cf 93 push r28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -