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

📄 485.lss

📁 458通讯
💻 LSS
字号:

485.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000001b6  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000003c  00800060  000001b6  0000024a  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000069  0080009c  0080009c  00000286  2**0
                  ALLOC
  3 .noinit       00000000  00800105  00800105  00000286  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000286  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  00000288  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  000005f4  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000014  00000000  00000000  00000678  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 000000d8  00000000  00000000  0000068c  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   00000222  00000000  00000000  00000764  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 000000f0  00000000  00000000  00000986  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   000001c4  00000000  00000000  00000a76  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    000000e0  00000000  00000000  00000c3a  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	12 c0       	rjmp	.+36     	; 0x26 <__ctors_end>
   2:	2b c0       	rjmp	.+86     	; 0x5a <__bad_interrupt>
   4:	2a c0       	rjmp	.+84     	; 0x5a <__bad_interrupt>
   6:	29 c0       	rjmp	.+82     	; 0x5a <__bad_interrupt>
   8:	28 c0       	rjmp	.+80     	; 0x5a <__bad_interrupt>
   a:	27 c0       	rjmp	.+78     	; 0x5a <__bad_interrupt>
   c:	26 c0       	rjmp	.+76     	; 0x5a <__bad_interrupt>
   e:	25 c0       	rjmp	.+74     	; 0x5a <__bad_interrupt>
  10:	c3 c0       	rjmp	.+390    	; 0x198 <__vector_8>
  12:	23 c0       	rjmp	.+70     	; 0x5a <__bad_interrupt>
  14:	22 c0       	rjmp	.+68     	; 0x5a <__bad_interrupt>
  16:	7d c0       	rjmp	.+250    	; 0x112 <__vector_11>
  18:	20 c0       	rjmp	.+64     	; 0x5a <__bad_interrupt>
  1a:	1f c0       	rjmp	.+62     	; 0x5a <__bad_interrupt>
  1c:	1e c0       	rjmp	.+60     	; 0x5a <__bad_interrupt>
  1e:	1d c0       	rjmp	.+58     	; 0x5a <__bad_interrupt>
  20:	1c c0       	rjmp	.+56     	; 0x5a <__bad_interrupt>
  22:	1b c0       	rjmp	.+54     	; 0x5a <__bad_interrupt>
  24:	1a c0       	rjmp	.+52     	; 0x5a <__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:	e6 eb       	ldi	r30, 0xB6	; 182
  3a:	f1 e0       	ldi	r31, 0x01	; 1
  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:	ac 39       	cpi	r26, 0x9C	; 156
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e <.do_copy_data_loop>

00000048 <__do_clear_bss>:
  48:	11 e0       	ldi	r17, 0x01	; 1
  4a:	ac e9       	ldi	r26, 0x9C	; 156
  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:	a5 30       	cpi	r26, 0x05	; 5
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50 <.do_clear_bss_loop>
  58:	2d c0       	rjmp	.+90     	; 0xb4 <main>

0000005a <__bad_interrupt>:
  5a:	d2 cf       	rjmp	.-92     	; 0x0 <__vectors>

0000005c <delay_us>:

void delay_us(int time)
{
    do
	time--;
  5c:	01 97       	sbiw	r24, 0x01	; 1
  5e:	82 30       	cpi	r24, 0x02	; 2
  60:	91 05       	cpc	r25, r1
  62:	e4 f7       	brge	.-8      	; 0x5c <delay_us>
  64:	08 95       	ret

00000066 <delay_ms>:
    while(time>1);
}
void delay_ms(unsigned int time)
{
  66:	cf 93       	push	r28
  68:	df 93       	push	r29
  6a:	ec 01       	movw	r28, r24
    while(time!=0)
	{
	    delay_us(1000);
		time--;
  6c:	89 2b       	or	r24, r25
  6e:	29 f0       	breq	.+10     	; 0x7a <delay_ms+0x14>
  70:	88 ee       	ldi	r24, 0xE8	; 232
  72:	93 e0       	ldi	r25, 0x03	; 3
  74:	f3 df       	rcall	.-26     	; 0x5c <delay_us>
  76:	21 97       	sbiw	r28, 0x01	; 1
  78:	d9 f7       	brne	.-10     	; 0x70 <delay_ms+0xa>
  7a:	df 91       	pop	r29
  7c:	cf 91       	pop	r28
  7e:	08 95       	ret

00000080 <comInit>:
	}
}
int main(void)
{
//    uchar Trans_OK;
    memset(buffer,0,100);
    PORTd_INIT();
	cli();
	comInit();
	sei();
	t_485("ni hao ma?\n");
	t_485("Hello! da jia hao,wo shi tiao zao tuan zhang;\n");
	while(1)
	{
#if INT==0
		do
		{
		    buffer[buf_p++]=r_485();
		}
		while(buffer[buf_p-1]!=0xff);
		t_485(buffer);
		memset(buffer,0,100);
		buf_p=0;
#else
        if(T_flag)
		{
			t_485(buffer);
			memset(buffer,0,100);
			buf_p=0;
			T_flag = 0;
		}
#endif
	}
}

void comInit(void)                           //串口初始化
{
	//UCSRB=0x98;
	UCSRB = 
  80:	88 e9       	ldi	r24, 0x98	; 152
  82:	8a b9       	out	0x0a, r24	; 10
	#if INT == 1
	(1<<RXCIE)/*接收结束中断使能|*/|
	#endif
	(1<<RXEN)/*接收使能*/|(1<<TXEN)/*发送使能*/;
	UBRRL=25;//25;//25; // baud=9600 UBRR=CK/(baud*16) -1 for 脉冲
  84:	89 e1       	ldi	r24, 0x19	; 25
  86:	89 b9       	out	0x09, r24	; 9
  88:	08 95       	ret

0000008a <USART_Transmit>:
	
}

void USART_Transmit( unsigned char usrdata )
{  
	while (!( UCSRA & (1<<UDRE)) );
  8a:	5d 9b       	sbis	0x0b, 5	; 11
  8c:	fe cf       	rjmp	.-4      	; 0x8a <USART_Transmit>
	  UDR = usrdata;
  8e:	8c b9       	out	0x0c, r24	; 12
  90:	08 95       	ret

00000092 <t_485>:
}

//-----------------------

void t_485(unsigned char *s)
{
  92:	cf 93       	push	r28
  94:	df 93       	push	r29
  96:	ec 01       	movw	r28, r24
	set_485_enable();
  98:	94 9a       	sbi	0x12, 4	; 18
	while(*s!=0)
	{
	    USART_Transmit(*s++);
  9a:	88 81       	ld	r24, Y
  9c:	88 23       	and	r24, r24
  9e:	19 f0       	breq	.+6      	; 0xa6 <t_485+0x14>
  a0:	89 91       	ld	r24, Y+
  a2:	f3 df       	rcall	.-26     	; 0x8a <USART_Transmit>
  a4:	fa cf       	rjmp	.-12     	; 0x9a <t_485+0x8>
	}
	delay_us(1350);
  a6:	86 e4       	ldi	r24, 0x46	; 70
  a8:	95 e0       	ldi	r25, 0x05	; 5
  aa:	d8 df       	rcall	.-80     	; 0x5c <delay_us>
	clr_485_disable();
  ac:	94 98       	cbi	0x12, 4	; 18
  ae:	df 91       	pop	r29
  b0:	cf 91       	pop	r28
  b2:	08 95       	ret

000000b4 <main>:
  b4:	cf e5       	ldi	r28, 0x5F	; 95
  b6:	d4 e0       	ldi	r29, 0x04	; 4
  b8:	de bf       	out	0x3e, r29	; 62
  ba:	cd bf       	out	0x3d, r28	; 61
  bc:	c1 ea       	ldi	r28, 0xA1	; 161
  be:	d0 e0       	ldi	r29, 0x00	; 0
  c0:	84 e6       	ldi	r24, 0x64	; 100
  c2:	fe 01       	movw	r30, r28
  c4:	11 92       	st	Z+, r1
  c6:	8a 95       	dec	r24
  c8:	e9 f7       	brne	.-6      	; 0xc4 <main+0x10>
  ca:	8c 9a       	sbi	0x11, 4	; 17
  cc:	94 98       	cbi	0x12, 4	; 18
  ce:	f8 94       	cli
  d0:	d7 df       	rcall	.-82     	; 0x80 <comInit>
  d2:	78 94       	sei
  d4:	80 e6       	ldi	r24, 0x60	; 96
  d6:	90 e0       	ldi	r25, 0x00	; 0
  d8:	dc df       	rcall	.-72     	; 0x92 <t_485>
  da:	8c e6       	ldi	r24, 0x6C	; 108
  dc:	90 e0       	ldi	r25, 0x00	; 0
  de:	d9 df       	rcall	.-78     	; 0x92 <t_485>
  e0:	80 91 9f 00 	lds	r24, 0x009F
  e4:	88 23       	and	r24, r24
  e6:	e1 f3       	breq	.-8      	; 0xe0 <main+0x2c>
  e8:	81 ea       	ldi	r24, 0xA1	; 161
  ea:	90 e0       	ldi	r25, 0x00	; 0
  ec:	d2 df       	rcall	.-92     	; 0x92 <t_485>
  ee:	84 e6       	ldi	r24, 0x64	; 100
  f0:	fe 01       	movw	r30, r28
  f2:	11 92       	st	Z+, r1
  f4:	8a 95       	dec	r24
  f6:	e9 f7       	brne	.-6      	; 0xf2 <main+0x3e>
  f8:	10 92 9e 00 	sts	0x009E, r1
  fc:	10 92 9f 00 	sts	0x009F, r1
 100:	ef cf       	rjmp	.-34     	; 0xe0 <main+0x2c>

00000102 <r_485>:
}

uchar r_485(void)
{
//    clr_485_disable();
    uchar num;
	while(!(UCSRA & (1<<RXC)));
 102:	5f 9b       	sbis	0x0b, 7	; 11
 104:	fe cf       	rjmp	.-4      	; 0x102 <r_485>
	delay_us(50);
 106:	82 e3       	ldi	r24, 0x32	; 50
 108:	90 e0       	ldi	r25, 0x00	; 0
 10a:	a8 df       	rcall	.-176    	; 0x5c <delay_us>
	num = UDR;
 10c:	8c b1       	in	r24, 0x0c	; 12
	return num;
}
 10e:	99 27       	eor	r25, r25
 110:	08 95       	ret

00000112 <__vector_11>:
#if INT==1
ISR(SIG_UART_RECV)    //串口接受中断
{
 112:	1f 92       	push	r1
 114:	0f 92       	push	r0
 116:	0f b6       	in	r0, 0x3f	; 63
 118:	0f 92       	push	r0
 11a:	11 24       	eor	r1, r1
 11c:	2f 93       	push	r18
 11e:	3f 93       	push	r19
 120:	4f 93       	push	r20
 122:	5f 93       	push	r21
 124:	6f 93       	push	r22
 126:	7f 93       	push	r23
 128:	8f 93       	push	r24
 12a:	9f 93       	push	r25
 12c:	af 93       	push	r26
 12e:	bf 93       	push	r27
 130:	ef 93       	push	r30
 132:	ff 93       	push	r31
    buffer[buf_p]=UDR;
 134:	80 91 9e 00 	lds	r24, 0x009E
 138:	e8 2f       	mov	r30, r24
 13a:	ff 27       	eor	r31, r31
 13c:	ef 55       	subi	r30, 0x5F	; 95
 13e:	ff 4f       	sbci	r31, 0xFF	; 255
 140:	8c b1       	in	r24, 0x0c	; 12
 142:	80 83       	st	Z, r24
	delay_us(40);
 144:	88 e2       	ldi	r24, 0x28	; 40
 146:	90 e0       	ldi	r25, 0x00	; 0
 148:	89 df       	rcall	.-238    	; 0x5c <delay_us>
	if(buffer[buf_p]==0xff)T_flag=1;
 14a:	90 91 9e 00 	lds	r25, 0x009E
 14e:	e9 2f       	mov	r30, r25
 150:	ff 27       	eor	r31, r31
 152:	ef 55       	subi	r30, 0x5F	; 95
 154:	ff 4f       	sbci	r31, 0xFF	; 255
 156:	80 81       	ld	r24, Z
 158:	8f 3f       	cpi	r24, 0xFF	; 255
 15a:	19 f4       	brne	.+6      	; 0x162 <__vector_11+0x50>
 15c:	81 e0       	ldi	r24, 0x01	; 1
 15e:	80 93 9f 00 	sts	0x009F, r24
	buf_p++;
 162:	9f 5f       	subi	r25, 0xFF	; 255
 164:	90 93 9e 00 	sts	0x009E, r25
 168:	ff 91       	pop	r31
 16a:	ef 91       	pop	r30
 16c:	bf 91       	pop	r27
 16e:	af 91       	pop	r26
 170:	9f 91       	pop	r25
 172:	8f 91       	pop	r24
 174:	7f 91       	pop	r23
 176:	6f 91       	pop	r22
 178:	5f 91       	pop	r21
 17a:	4f 91       	pop	r20
 17c:	3f 91       	pop	r19
 17e:	2f 91       	pop	r18
 180:	0f 90       	pop	r0
 182:	0f be       	out	0x3f, r0	; 63
 184:	0f 90       	pop	r0
 186:	1f 90       	pop	r1
 188:	18 95       	reti

0000018a <Timer1_init>:
}
#endif

void Timer1_init(void)
{
    TCCR1B = 0b00000001;     //无分频
 18a:	81 e0       	ldi	r24, 0x01	; 1
 18c:	8e bd       	out	0x2e, r24	; 46
    TCNT1 = 0xf70c;          //4M时0.5个字符-0.000573s产生一个中断
 18e:	8c e0       	ldi	r24, 0x0C	; 12
 190:	97 ef       	ldi	r25, 0xF7	; 247
 192:	9d bd       	out	0x2d, r25	; 45
 194:	8c bd       	out	0x2c, r24	; 44
 196:	08 95       	ret

00000198 <__vector_8>:
//	TIMSK = 0b00000100;      //使能T1中断
}
ISR(SIG_OVERFLOW1)
{   
 198:	1f 92       	push	r1
 19a:	0f 92       	push	r0
 19c:	0f b6       	in	r0, 0x3f	; 63
 19e:	0f 92       	push	r0
 1a0:	11 24       	eor	r1, r1
 1a2:	8f 93       	push	r24
    CLR_T1_INTR();
 1a4:	89 b7       	in	r24, 0x39	; 57
 1a6:	8b 7f       	andi	r24, 0xFB	; 251
 1a8:	89 bf       	out	0x39, r24	; 57
 1aa:	8f 91       	pop	r24
 1ac:	0f 90       	pop	r0
 1ae:	0f be       	out	0x3f, r0	; 63
 1b0:	0f 90       	pop	r0
 1b2:	1f 90       	pop	r1
 1b4:	18 95       	reti

⌨️ 快捷键说明

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