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

📄 main.lss

📁 24位
💻 LSS
📖 第 1 页 / 共 3 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000438  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .bss          00000001  00800060  00000438  000004ac  2**0
                  ALLOC
  2 .debug_aranges 00000020  00000000  00000000  000004ac  2**0
                  CONTENTS, READONLY, DEBUGGING
  3 .debug_pubnames 000000e2  00000000  00000000  000004cc  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_info   0000054b  00000000  00000000  000005ae  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_abbrev 000001f1  00000000  00000000  00000af9  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_line   0000051e  00000000  00000000  00000cea  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_frame  000000f0  00000000  00000000  00001208  2**2
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_str    000000eb  00000000  00000000  000012f8  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_loc    00000213  00000000  00000000  000013e3  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	12 c0       	rjmp	.+36     	; 0x26 <__ctors_end>
   2:	2c c0       	rjmp	.+88     	; 0x5c <__bad_interrupt>
   4:	2b c0       	rjmp	.+86     	; 0x5c <__bad_interrupt>
   6:	2a c0       	rjmp	.+84     	; 0x5c <__bad_interrupt>
   8:	29 c0       	rjmp	.+82     	; 0x5c <__bad_interrupt>
   a:	28 c0       	rjmp	.+80     	; 0x5c <__bad_interrupt>
   c:	27 c0       	rjmp	.+78     	; 0x5c <__bad_interrupt>
   e:	26 c0       	rjmp	.+76     	; 0x5c <__bad_interrupt>
  10:	25 c0       	rjmp	.+74     	; 0x5c <__bad_interrupt>
  12:	24 c0       	rjmp	.+72     	; 0x5c <__bad_interrupt>
  14:	23 c0       	rjmp	.+70     	; 0x5c <__bad_interrupt>
  16:	34 c0       	rjmp	.+104    	; 0x80 <__vector_11>
  18:	21 c0       	rjmp	.+66     	; 0x5c <__bad_interrupt>
  1a:	41 c0       	rjmp	.+130    	; 0x9e <__vector_13>
  1c:	1f c0       	rjmp	.+62     	; 0x5c <__bad_interrupt>
  1e:	1e c0       	rjmp	.+60     	; 0x5c <__bad_interrupt>
  20:	1d c0       	rjmp	.+58     	; 0x5c <__bad_interrupt>
  22:	1c c0       	rjmp	.+56     	; 0x5c <__bad_interrupt>
  24:	1b c0       	rjmp	.+54     	; 0x5c <__bad_interrupt>

00000026 <__ctors_end>:
  26:	11 24       	eor	r1, r1
  28:	1f be       	out	0x3f, r1	; 63
  2a:	cf e5       	ldi	r28, 0x5F	; 95
  2c:	d4 e0       	ldi	r29, 0x04	; 4
  2e:	de bf       	out	0x3e, r29	; 62
  30:	cd bf       	out	0x3d, r28	; 61

00000032 <__do_copy_data>:
  32:	10 e0       	ldi	r17, 0x00	; 0
  34:	a0 e6       	ldi	r26, 0x60	; 96
  36:	b0 e0       	ldi	r27, 0x00	; 0
  38:	e8 e3       	ldi	r30, 0x38	; 56
  3a:	f4 e0       	ldi	r31, 0x04	; 4
  3c:	02 c0       	rjmp	.+4      	; 0x42 <.do_copy_data_start>

0000003e <.do_copy_data_loop>:
  3e:	05 90       	lpm	r0, Z+
  40:	0d 92       	st	X+, r0

00000042 <.do_copy_data_start>:
  42:	a0 36       	cpi	r26, 0x60	; 96
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e <.do_copy_data_loop>

00000048 <__do_clear_bss>:
  48:	10 e0       	ldi	r17, 0x00	; 0
  4a:	a0 e6       	ldi	r26, 0x60	; 96
  4c:	b0 e0       	ldi	r27, 0x00	; 0
  4e:	01 c0       	rjmp	.+2      	; 0x52 <.do_clear_bss_start>

00000050 <.do_clear_bss_loop>:
  50:	1d 92       	st	X+, r1

00000052 <.do_clear_bss_start>:
  52:	a1 36       	cpi	r26, 0x61	; 97
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50 <.do_clear_bss_loop>
  58:	52 d1       	rcall	.+676    	; 0x2fe <main>
  5a:	ec c1       	rjmp	.+984    	; 0x434 <_exit>

0000005c <__bad_interrupt>:
  5c:	d1 cf       	rjmp	.-94     	; 0x0 <__vectors>

0000005e <USART_Init>:

volatile unsigned char sum=0;    //定义全局的指令变量

//设置串口的参数
void USART_Init( unsigned int baud )
{
  5e:	10 bc       	out	0x20, r1	; 32
/* 设置波特率9600*/
UBRRH = 0;
UBRRL = 47;
  60:	8f e2       	ldi	r24, 0x2F	; 47
  62:	89 b9       	out	0x09, r24	; 9
/* 接收器与发送器使能*/
UCSRB = (1<<TXCIE)|(1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
  64:	88 ed       	ldi	r24, 0xD8	; 216
  66:	8a b9       	out	0x0a, r24	; 10
/* 设置帧格式: 8 个数据位, 2 个停止位*/
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
  68:	8e e8       	ldi	r24, 0x8E	; 142
  6a:	80 bd       	out	0x20, r24	; 32
}
  6c:	08 95       	ret

0000006e <USART_Transmit>:



void USART_Transmit( unsigned char data )
{PORTD|=(1<<PD2);   //485输出使能
  6e:	92 9a       	sbi	0x12, 2	; 18
/* 等待发送缓冲器为空 */
while ( !( UCSRA & (1<<UDRE)) )
  70:	5d 9b       	sbis	0x0b, 5	; 11
  72:	fe cf       	rjmp	.-4      	; 0x70 <USART_Transmit+0x2>
;
/* 将数据放入缓冲器,发送数据 */
UDR = data;
  74:	8c b9       	out	0x0c, r24	; 12
}
  76:	08 95       	ret

00000078 <USART_Receive>:



unsigned char USART_Receive( void )
{
  78:	5f 9b       	sbis	0x0b, 7	; 11
  7a:	fe cf       	rjmp	.-4      	; 0x78 <USART_Receive>
/* 等待接收数据*/
while ( !(UCSRA & (1<<RXC)) )
;
/* 从缓冲器中获取并返回数据*/
return UDR;
  7c:	8c b1       	in	r24, 0x0c	; 12
}
  7e:	08 95       	ret

00000080 <__vector_11>:



SIGNAL (SIG_UART_RECV)  //接收中断
 {sum=UDR;}   
  80:	1f 92       	push	r1
  82:	0f 92       	push	r0
  84:	0f b6       	in	r0, 0x3f	; 63
  86:	0f 92       	push	r0
  88:	11 24       	eor	r1, r1
  8a:	8f 93       	push	r24
  8c:	8c b1       	in	r24, 0x0c	; 12
  8e:	80 93 60 00 	sts	0x0060, r24
  92:	8f 91       	pop	r24
  94:	0f 90       	pop	r0
  96:	0f be       	out	0x3f, r0	; 63
  98:	0f 90       	pop	r0
  9a:	1f 90       	pop	r1
  9c:	18 95       	reti

0000009e <__vector_13>:

SIGNAL (SIG_UART_TRANS) //发送结束中断
 {PORTD&=~(1<<PD2); }    //485输入使能
  9e:	1f 92       	push	r1
  a0:	0f 92       	push	r0
  a2:	0f b6       	in	r0, 0x3f	; 63
  a4:	0f 92       	push	r0
  a6:	11 24       	eor	r1, r1
  a8:	92 98       	cbi	0x12, 2	; 18
  aa:	0f 90       	pop	r0
  ac:	0f be       	out	0x3f, r0	; 63
  ae:	0f 90       	pop	r0
  b0:	1f 90       	pop	r1
  b2:	18 95       	reti

000000b4 <delay_us>:


/*************************************************************************************/
volatile void delay_us(unsigned char a)   //挺时1uS
{ 
  b4:	df 93       	push	r29
  b6:	cf 93       	push	r28
  b8:	00 d0       	rcall	.+0      	; 0xba <delay_us+0x6>
  ba:	00 d0       	rcall	.+0      	; 0xbc <delay_us+0x8>
  bc:	cd b7       	in	r28, 0x3d	; 61
  be:	de b7       	in	r29, 0x3e	; 62
 volatile unsigned int i=0,j=0;
  c0:	1a 82       	std	Y+2, r1	; 0x02
  c2:	19 82       	std	Y+1, r1	; 0x01
  c4:	1c 82       	std	Y+4, r1	; 0x04
  c6:	1b 82       	std	Y+3, r1	; 0x03
 for(i=0;i<a;i++)
  c8:	1a 82       	std	Y+2, r1	; 0x02
  ca:	19 82       	std	Y+1, r1	; 0x01
  cc:	28 2f       	mov	r18, r24
  ce:	30 e0       	ldi	r19, 0x00	; 0
  d0:	11 c0       	rjmp	.+34     	; 0xf4 <delay_us+0x40>
 for(j=0;j<50;j++)
  d2:	1c 82       	std	Y+4, r1	; 0x04
  d4:	1b 82       	std	Y+3, r1	; 0x03
  d6:	05 c0       	rjmp	.+10     	; 0xe2 <delay_us+0x2e>
  d8:	8b 81       	ldd	r24, Y+3	; 0x03
  da:	9c 81       	ldd	r25, Y+4	; 0x04
  dc:	01 96       	adiw	r24, 0x01	; 1
  de:	9c 83       	std	Y+4, r25	; 0x04
  e0:	8b 83       	std	Y+3, r24	; 0x03
  e2:	8b 81       	ldd	r24, Y+3	; 0x03
  e4:	9c 81       	ldd	r25, Y+4	; 0x04
  e6:	c2 97       	sbiw	r24, 0x32	; 50
  e8:	b8 f3       	brcs	.-18     	; 0xd8 <delay_us+0x24>

/*************************************************************************************/
volatile void delay_us(unsigned char a)   //挺时1uS
{ 
 volatile unsigned int i=0,j=0;
 for(i=0;i<a;i++)
  ea:	89 81       	ldd	r24, Y+1	; 0x01
  ec:	9a 81       	ldd	r25, Y+2	; 0x02
  ee:	01 96       	adiw	r24, 0x01	; 1
  f0:	9a 83       	std	Y+2, r25	; 0x02
  f2:	89 83       	std	Y+1, r24	; 0x01
  f4:	89 81       	ldd	r24, Y+1	; 0x01
  f6:	9a 81       	ldd	r25, Y+2	; 0x02
  f8:	82 17       	cp	r24, r18
  fa:	93 07       	cpc	r25, r19
  fc:	50 f3       	brcs	.-44     	; 0xd2 <delay_us+0x1e>
 for(j=0;j<50;j++)
 ;
}
  fe:	0f 90       	pop	r0
 100:	0f 90       	pop	r0
 102:	0f 90       	pop	r0
 104:	0f 90       	pop	r0
 106:	cf 91       	pop	r28
 108:	df 91       	pop	r29
 10a:	08 95       	ret

0000010c <ads_senddata>:

/*************************************************************************************/
//ads126发送一字节的数据 
unsigned char ads_senddata(unsigned char data)  //SPI发送数据,要在外部保证SS = 0 
{
 10c:	8f b9       	out	0x0f, r24	; 15
SPDR = data;                //启动数据传输 
while((SPSR & 0x80) == 0); // 等待传输结束 
 10e:	77 9b       	sbis	0x0e, 7	; 14
 110:	fe cf       	rjmp	.-4      	; 0x10e <ads_senddata+0x2>
data = SPDR; 
 112:	8f b1       	in	r24, 0x0f	; 15
return data; 
}
 114:	08 95       	ret

00000116 <ad_write>:

/*************************************************************************************/
void ad_write(unsigned char reg,unsigned char data)//写寄存器。选择寄存器地址,写入的数据。
{              
 116:	df 93       	push	r29
 118:	cf 93       	push	r28
 11a:	00 d0       	rcall	.+0      	; 0x11c <ad_write+0x6>
 11c:	00 d0       	rcall	.+0      	; 0x11e <ad_write+0x8>
 11e:	cd b7       	in	r28, 0x3d	; 61
 120:	de b7       	in	r29, 0x3e	; 62
     PORTB&=~(1<<PB1);      //SPI的CS=0使能
 122:	c1 98       	cbi	0x18, 1	; 24
     while((PIND&0X8)!=0); //DRDY信号高时才能写寄存器   
 124:	83 99       	sbic	0x10, 3	; 16
 126:	fe cf       	rjmp	.-4      	; 0x124 <ad_write+0xe>
     ads_senddata(0x50+reg);//选择写入寄存器     
 128:	80 5b       	subi	r24, 0xB0	; 176

/*************************************************************************************/
//ads126发送一字节的数据 
unsigned char ads_senddata(unsigned char data)  //SPI发送数据,要在外部保证SS = 0 
{
SPDR = data;                //启动数据传输 
 12a:	8f b9       	out	0x0f, r24	; 15
while((SPSR & 0x80) == 0); // 等待传输结束 
 12c:	77 9b       	sbis	0x0e, 7	; 14
 12e:	fe cf       	rjmp	.-4      	; 0x12c <ad_write+0x16>
data = SPDR; 
 130:	8f b1       	in	r24, 0x0f	; 15

/*************************************************************************************/
//ads126发送一字节的数据 
unsigned char ads_senddata(unsigned char data)  //SPI发送数据,要在外部保证SS = 0 
{
SPDR = data;                //启动数据传输 
 132:	1f b8       	out	0x0f, r1	; 15
while((SPSR & 0x80) == 0); // 等待传输结束 
 134:	77 9b       	sbis	0x0e, 7	; 14
 136:	fe cf       	rjmp	.-4      	; 0x134 <ad_write+0x1e>
data = SPDR; 
 138:	8f b1       	in	r24, 0x0f	; 15

/*************************************************************************************/
//ads126发送一字节的数据 
unsigned char ads_senddata(unsigned char data)  //SPI发送数据,要在外部保证SS = 0 
{
SPDR = data;                //启动数据传输 
 13a:	6f b9       	out	0x0f, r22	; 15
while((SPSR & 0x80) == 0); // 等待传输结束 
 13c:	77 9b       	sbis	0x0e, 7	; 14
 13e:	fe cf       	rjmp	.-4      	; 0x13c <ad_write+0x26>
data = SPDR; 
 140:	8f b1       	in	r24, 0x0f	; 15
     PORTB&=~(1<<PB1);      //SPI的CS=0使能
     while((PIND&0X8)!=0); //DRDY信号高时才能写寄存器   
     ads_senddata(0x50+reg);//选择写入寄存器     
     ads_senddata(0x00);    //写入1个寄存器     
     ads_senddata(data);    //写入数据
     PORTB|=(1<<PB1);       //SPI的CS=1,停止
 142:	c1 9a       	sbi	0x18, 1	; 24


/*************************************************************************************/
volatile void delay_us(unsigned char a)   //挺时1uS
{ 
 volatile unsigned int i=0,j=0;
 144:	1a 82       	std	Y+2, r1	; 0x02
 146:	19 82       	std	Y+1, r1	; 0x01
 148:	1c 82       	std	Y+4, r1	; 0x04
 14a:	1b 82       	std	Y+3, r1	; 0x03
 for(i=0;i<a;i++)
 14c:	1a 82       	std	Y+2, r1	; 0x02
 14e:	19 82       	std	Y+1, r1	; 0x01
 150:	11 c0       	rjmp	.+34     	; 0x174 <ad_write+0x5e>

⌨️ 快捷键说明

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