⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.lss

📁 AVR单片机AD采集
💻 LSS
📖 第 1 页 / 共 2 页
字号:

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 + -