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

📄 main.lss

📁 avr单片机的ADC驱动程序
💻 LSS
📖 第 1 页 / 共 4 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000022  00800100  00000ac0  00000b54  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         00000ac0  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          00000004  00800122  00800122  00000b76  2**0
                  ALLOC
  3 .noinit       00000000  00800126  00800126  00000b76  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000b76  2**0
                  CONTENTS
  5 .stab         00000408  00000000  00000000  00000b78  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  00000f80  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000014  00000000  00000000  00001004  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 000000bf  00000000  00000000  00001018  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   000002ac  00000000  00000000  000010d7  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 000000be  00000000  00000000  00001383  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   000001e6  00000000  00000000  00001441  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    0000000d  00000000  00000000  00001627  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 46 00 	jmp	0x8c <__ctors_end>
   4:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
   8:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
   c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  10:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  14:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  18:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  1c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  20:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  24:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  28:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  2c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  30:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  34:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  38:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  3c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  40:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  44:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  48:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  4c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  50:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  54:	0c 94 23 01 	jmp	0x246 <__vector_21>
  58:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  5c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  60:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  64:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  68:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  6c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  70:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  74:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  78:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  7c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  80:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  84:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  88:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>

0000008c <__ctors_end>:
  8c:	11 24       	eor	r1, r1
  8e:	1f be       	out	0x3f, r1	; 63
  90:	cf ef       	ldi	r28, 0xFF	; 255
  92:	d0 e1       	ldi	r29, 0x10	; 16
  94:	de bf       	out	0x3e, r29	; 62
  96:	cd bf       	out	0x3d, r28	; 61

00000098 <__do_copy_data>:
  98:	11 e0       	ldi	r17, 0x01	; 1
  9a:	a0 e0       	ldi	r26, 0x00	; 0
  9c:	b1 e0       	ldi	r27, 0x01	; 1
  9e:	e0 ec       	ldi	r30, 0xC0	; 192
  a0:	fa e0       	ldi	r31, 0x0A	; 10
  a2:	00 e0       	ldi	r16, 0x00	; 0
  a4:	0b bf       	out	0x3b, r16	; 59
  a6:	02 c0       	rjmp	.+4      	; 0xac <__do_copy_data+0x14>
  a8:	07 90       	elpm	r0, Z+
  aa:	0d 92       	st	X+, r0
  ac:	a2 32       	cpi	r26, 0x22	; 34
  ae:	b1 07       	cpc	r27, r17
  b0:	d9 f7       	brne	.-10     	; 0xa8 <__do_copy_data+0x10>

000000b2 <__do_clear_bss>:
  b2:	11 e0       	ldi	r17, 0x01	; 1
  b4:	a2 e2       	ldi	r26, 0x22	; 34
  b6:	b1 e0       	ldi	r27, 0x01	; 1
  b8:	01 c0       	rjmp	.+2      	; 0xbc <.do_clear_bss_start>

000000ba <.do_clear_bss_loop>:
  ba:	1d 92       	st	X+, r1

000000bc <.do_clear_bss_start>:
  bc:	a6 32       	cpi	r26, 0x26	; 38
  be:	b1 07       	cpc	r27, r17
  c0:	e1 f7       	brne	.-8      	; 0xba <.do_clear_bss_loop>
  c2:	0c 94 c0 01 	jmp	0x380 <main>

000000c6 <__bad_interrupt>:
  c6:	0c 94 00 00 	jmp	0x0 <__vectors>

000000ca <USART_Init>:


/////////////////////////////////////////////////
void USART_Init(void )
{
  ca:	cf 93       	push	r28
  cc:	df 93       	push	r29
  ce:	cd b7       	in	r28, 0x3d	; 61
  d0:	de b7       	in	r29, 0x3e	; 62
/* 设置波特率*/
UBRR0H=0;		
  d2:	10 92 90 00 	sts	0x0090, r1
	UBRR0L=47;//9600
  d6:	8f e2       	ldi	r24, 0x2F	; 47
  d8:	80 93 29 00 	sts	0x0029, r24
/* 接收器与发送器使能 */
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
  dc:	88 e1       	ldi	r24, 0x18	; 24
  de:	80 93 2a 00 	sts	0x002A, r24
/* 设置帧格式: 8 个数据位, 2个停止位 */
UCSR0C = (1<<USBS0)|(3<<UCSZ0);
  e2:	8e e0       	ldi	r24, 0x0E	; 14
  e4:	80 93 95 00 	sts	0x0095, r24
  e8:	df 91       	pop	r29
  ea:	cf 91       	pop	r28
  ec:	08 95       	ret

000000ee <USART_Transmit_bit>:
}

void USART_Transmit_bit( unsigned char data )
{
  ee:	cf 93       	push	r28
  f0:	df 93       	push	r29
  f2:	cd b7       	in	r28, 0x3d	; 61
  f4:	de b7       	in	r29, 0x3e	; 62
  f6:	21 97       	sbiw	r28, 0x01	; 1
  f8:	0f b6       	in	r0, 0x3f	; 63
  fa:	f8 94       	cli
  fc:	de bf       	out	0x3e, r29	; 62
  fe:	0f be       	out	0x3f, r0	; 63
 100:	cd bf       	out	0x3d, r28	; 61
 102:	89 83       	std	Y+1, r24	; 0x01
/* 等待发送缓冲器为空 */
while ( !( UCSR0A & (1<<UDRE0)) );
 104:	80 91 2b 00 	lds	r24, 0x002B
 108:	99 27       	eor	r25, r25
 10a:	80 72       	andi	r24, 0x20	; 32
 10c:	90 70       	andi	r25, 0x00	; 0
 10e:	00 97       	sbiw	r24, 0x00	; 0
 110:	09 f4       	brne	.+2      	; 0x114 <USART_Transmit_bit+0x26>
 112:	f8 cf       	rjmp	.-16     	; 0x104 <USART_Transmit_bit+0x16>
/* 将数据放入缓冲器,发送数据 */
UDR0 = data;
 114:	89 81       	ldd	r24, Y+1	; 0x01
 116:	80 93 2c 00 	sts	0x002C, r24
 11a:	21 96       	adiw	r28, 0x01	; 1
 11c:	0f b6       	in	r0, 0x3f	; 63
 11e:	f8 94       	cli
 120:	de bf       	out	0x3e, r29	; 62
 122:	0f be       	out	0x3f, r0	; 63
 124:	cd bf       	out	0x3d, r28	; 61
 126:	df 91       	pop	r29
 128:	cf 91       	pop	r28
 12a:	08 95       	ret

0000012c <USART_Transmit_str>:
}
void USART_Transmit_str (unsigned char  *str)
{
 12c:	cf 93       	push	r28
 12e:	df 93       	push	r29
 130:	cd b7       	in	r28, 0x3d	; 61
 132:	de b7       	in	r29, 0x3e	; 62
 134:	22 97       	sbiw	r28, 0x02	; 2
 136:	0f b6       	in	r0, 0x3f	; 63
 138:	f8 94       	cli
 13a:	de bf       	out	0x3e, r29	; 62
 13c:	0f be       	out	0x3f, r0	; 63
 13e:	cd bf       	out	0x3d, r28	; 61
 140:	9a 83       	std	Y+2, r25	; 0x02
 142:	89 83       	std	Y+1, r24	; 0x01
	while (1) 
	{
		if (*str == '\0')	break;		// 遇到结束符,退出
 144:	e9 81       	ldd	r30, Y+1	; 0x01
 146:	fa 81       	ldd	r31, Y+2	; 0x02
 148:	80 81       	ld	r24, Z
 14a:	88 23       	and	r24, r24
 14c:	09 f4       	brne	.+2      	; 0x150 <USART_Transmit_str+0x24>
 14e:	09 c0       	rjmp	.+18     	; 0x162 <USART_Transmit_str+0x36>
		USART_Transmit_bit(*str++);			// 发送数据
 150:	e9 81       	ldd	r30, Y+1	; 0x01
 152:	fa 81       	ldd	r31, Y+2	; 0x02
 154:	80 81       	ld	r24, Z
 156:	31 96       	adiw	r30, 0x01	; 1
 158:	fa 83       	std	Y+2, r31	; 0x02
 15a:	e9 83       	std	Y+1, r30	; 0x01
 15c:	0e 94 77 00 	call	0xee <USART_Transmit_bit>
 160:	f1 cf       	rjmp	.-30     	; 0x144 <USART_Transmit_str+0x18>
 162:	22 96       	adiw	r28, 0x02	; 2
 164:	0f b6       	in	r0, 0x3f	; 63
 166:	f8 94       	cli
 168:	de bf       	out	0x3e, r29	; 62
 16a:	0f be       	out	0x3f, r0	; 63
 16c:	cd bf       	out	0x3d, r28	; 61
 16e:	df 91       	pop	r29
 170:	cf 91       	pop	r28
 172:	08 95       	ret

00000174 <USART_Receive_bit>:
	}
}

unsigned char USART_Receive_bit( void )
{
 174:	cf 93       	push	r28
 176:	df 93       	push	r29
 178:	cd b7       	in	r28, 0x3d	; 61
 17a:	de b7       	in	r29, 0x3e	; 62
/* 等待接收数据 */
while ( !(UCSR0A & (1<<RXC0)) );
 17c:	80 91 2b 00 	lds	r24, 0x002B
 180:	88 23       	and	r24, r24
 182:	0c f0       	brlt	.+2      	; 0x186 <USART_Receive_bit+0x12>
 184:	fb cf       	rjmp	.-10     	; 0x17c <USART_Receive_bit+0x8>
/* 从缓冲器中获取并返回数据 */
return UDR0;
 186:	80 91 2c 00 	lds	r24, 0x002C
 18a:	99 27       	eor	r25, r25
 18c:	df 91       	pop	r29
 18e:	cf 91       	pop	r28
 190:	08 95       	ret

00000192 <USART_Receive_str>:
}

void USART_Receive_str (unsigned char *s, int n)
{
 192:	cf 93       	push	r28
 194:	df 93       	push	r29
 196:	cd b7       	in	r28, 0x3d	; 61
 198:	de b7       	in	r29, 0x3e	; 62
 19a:	24 97       	sbiw	r28, 0x04	; 4
 19c:	0f b6       	in	r0, 0x3f	; 63
 19e:	f8 94       	cli
 1a0:	de bf       	out	0x3e, r29	; 62
 1a2:	0f be       	out	0x3f, r0	; 63
 1a4:	cd bf       	out	0x3d, r28	; 61
 1a6:	9a 83       	std	Y+2, r25	; 0x02
 1a8:	89 83       	std	Y+1, r24	; 0x01
 1aa:	7c 83       	std	Y+4, r23	; 0x04
 1ac:	6b 83       	std	Y+3, r22	; 0x03
	for ( ; n>0; n--)
 1ae:	8b 81       	ldd	r24, Y+3	; 0x03
 1b0:	9c 81       	ldd	r25, Y+4	; 0x04
 1b2:	18 16       	cp	r1, r24
 1b4:	19 06       	cpc	r1, r25
 1b6:	84 f4       	brge	.+32     	; 0x1d8 <USART_Receive_str+0x46>
	{
		*s++ = USART_Receive_bit();
 1b8:	0e 94 ba 00 	call	0x174 <USART_Receive_bit>
 1bc:	28 2f       	mov	r18, r24
 1be:	89 81       	ldd	r24, Y+1	; 0x01
 1c0:	9a 81       	ldd	r25, Y+2	; 0x02
 1c2:	fc 01       	movw	r30, r24
 1c4:	20 83       	st	Z, r18
 1c6:	01 96       	adiw	r24, 0x01	; 1
 1c8:	9a 83       	std	Y+2, r25	; 0x02
 1ca:	89 83       	std	Y+1, r24	; 0x01
 1cc:	8b 81       	ldd	r24, Y+3	; 0x03
 1ce:	9c 81       	ldd	r25, Y+4	; 0x04
 1d0:	01 97       	sbiw	r24, 0x01	; 1
 1d2:	9c 83       	std	Y+4, r25	; 0x04
 1d4:	8b 83       	std	Y+3, r24	; 0x03
 1d6:	eb cf       	rjmp	.-42     	; 0x1ae <USART_Receive_str+0x1c>
 1d8:	24 96       	adiw	r28, 0x04	; 4
 1da:	0f b6       	in	r0, 0x3f	; 63
 1dc:	f8 94       	cli
 1de:	de bf       	out	0x3e, r29	; 62
 1e0:	0f be       	out	0x3f, r0	; 63
 1e2:	cd bf       	out	0x3d, r28	; 61
 1e4:	df 91       	pop	r29
 1e6:	cf 91       	pop	r28
 1e8:	08 95       	ret

000001ea <delay100ms>:
unsigned int LED_Volt;					//变换后的电压mV
//仿真时在watch窗口,监控这些全局变量。

void delay100ms(void) 
{ 
 1ea:	cf 93       	push	r28
 1ec:	df 93       	push	r29
 1ee:	cd b7       	in	r28, 0x3d	; 61
 1f0:	de b7       	in	r29, 0x3e	; 62
 1f2:	24 97       	sbiw	r28, 0x04	; 4
 1f4:	0f b6       	in	r0, 0x3f	; 63
 1f6:	f8 94       	cli
 1f8:	de bf       	out	0x3e, r29	; 62
 1fa:	0f be       	out	0x3f, r0	; 63
 1fc:	cd bf       	out	0x3d, r28	; 61
 int i,j; 
 for(j = 0;j<31;j++) 
 1fe:	1c 82       	std	Y+4, r1	; 0x04
 200:	1b 82       	std	Y+3, r1	; 0x03
 202:	8b 81       	ldd	r24, Y+3	; 0x03
 204:	9c 81       	ldd	r25, Y+4	; 0x04
 206:	8f 31       	cpi	r24, 0x1F	; 31
 208:	91 05       	cpc	r25, r1
 20a:	a4 f4       	brge	.+40     	; 0x234 <delay100ms+0x4a>
 for(i = 0;i<2330;i++);//7.3728MHz的晶振 
 20c:	1a 82       	std	Y+2, r1	; 0x02
 20e:	19 82       	std	Y+1, r1	; 0x01
 210:	89 81       	ldd	r24, Y+1	; 0x01
 212:	9a 81       	ldd	r25, Y+2	; 0x02
 214:	29 e0       	ldi	r18, 0x09	; 9
 216:	8a 31       	cpi	r24, 0x1A	; 26
 218:	92 07       	cpc	r25, r18
 21a:	34 f4       	brge	.+12     	; 0x228 <delay100ms+0x3e>
 21c:	89 81       	ldd	r24, Y+1	; 0x01
 21e:	9a 81       	ldd	r25, Y+2	; 0x02
 220:	01 96       	adiw	r24, 0x01	; 1
 222:	9a 83       	std	Y+2, r25	; 0x02
 224:	89 83       	std	Y+1, r24	; 0x01
 226:	f4 cf       	rjmp	.-24     	; 0x210 <delay100ms+0x26>
 228:	8b 81       	ldd	r24, Y+3	; 0x03
 22a:	9c 81       	ldd	r25, Y+4	; 0x04
 22c:	01 96       	adiw	r24, 0x01	; 1
 22e:	9c 83       	std	Y+4, r25	; 0x04
 230:	8b 83       	std	Y+3, r24	; 0x03
 232:	e7 cf       	rjmp	.-50     	; 0x202 <delay100ms+0x18>
 234:	24 96       	adiw	r28, 0x04	; 4
 236:	0f b6       	in	r0, 0x3f	; 63
 238:	f8 94       	cli
 23a:	de bf       	out	0x3e, r29	; 62
 23c:	0f be       	out	0x3f, r0	; 63
 23e:	cd bf       	out	0x3d, r28	; 61
 240:	df 91       	pop	r29
 242:	cf 91       	pop	r28
 244:	08 95       	ret

00000246 <__vector_21>:
} 

SIGNAL(SIG_ADC) //ADC中断服务程序
{
 246:	1f 92       	push	r1
 248:	0f 92       	push	r0
 24a:	0f b6       	in	r0, 0x3f	; 63
 24c:	0f 92       	push	r0
 24e:	11 24       	eor	r1, r1
 250:	2f 93       	push	r18
 252:	3f 93       	push	r19

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -