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

📄 usart.lss

📁 AVR单片机ATmega128的串口通讯程序
💻 LSS
字号:

usart.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000000  00800100  000001a0  00000234  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         000001a0  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          00000001  00800100  00800100  00000234  2**0
                  ALLOC
  3 .noinit       00000000  00800101  00800101  00000234  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000234  2**0
                  CONTENTS
  5 .stab         00000498  00000000  00000000  00000234  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000664  00000000  00000000  000006cc  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

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

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 ea       	ldi	r30, 0xA0	; 160
  a0:	f1 e0       	ldi	r31, 0x01	; 1
  a2:	00 e0       	ldi	r16, 0x00	; 0
  a4:	0b bf       	out	0x3b, r16	; 59
  a6:	02 c0       	rjmp	.+4      	; 0xac

000000a8 <.__do_copy_data_loop>:
  a8:	07 90       	elpm	r0, Z+
  aa:	0d 92       	st	X+, r0

000000ac <.__do_copy_data_start>:
  ac:	a0 30       	cpi	r26, 0x00	; 0
  ae:	b1 07       	cpc	r27, r17
  b0:	d9 f7       	brne	.-10     	; 0xa8

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

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

000000bc <.do_clear_bss_start>:
  bc:	a1 30       	cpi	r26, 0x01	; 1
  be:	b1 07       	cpc	r27, r17
  c0:	e1 f7       	brne	.-8      	; 0xba
  c2:	0c 94 be 00 	jmp	0x17c

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

000000ca <port_init>:

unsigned char j;

void port_init(void){
     DDRA=0XFF;
  ca:	8f ef       	ldi	r24, 0xFF	; 255
  cc:	8a bb       	out	0x1a, r24	; 26
	 PORTA=0XFF;
  ce:	8b bb       	out	0x1b, r24	; 27
	 DDRC=0X00;
  d0:	14 ba       	out	0x14, r1	; 20
	 PORTC=0XFF;
  d2:	85 bb       	out	0x15, r24	; 21
  d4:	08 95       	ret

000000d6 <usart0_init>:
	}
	
void usart0_init(void){
     UBRR0L=0X19;
  d6:	89 e1       	ldi	r24, 0x19	; 25
  d8:	89 b9       	out	0x09, r24	; 9
	 UBRR0H=0X00;
  da:	10 92 90 00 	sts	0x0090, r1
	 UCSR0B=(1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0);
  de:	88 e9       	ldi	r24, 0x98	; 152
  e0:	8a b9       	out	0x0a, r24	; 10
	 UCSR0C=(1<<UCSZ01)|(1<<UCSZ00);
  e2:	86 e0       	ldi	r24, 0x06	; 6
  e4:	80 93 95 00 	sts	0x0095, r24
  e8:	08 95       	ret

000000ea <usart0_transmit>:
	}
	
void usart0_transmit(unsigned char data){
     while(!(UCSR0A&(1<<UDRE0)));
  ea:	5d 9b       	sbis	0x0b, 5	; 11
  ec:	fe cf       	rjmp	.-4      	; 0xea
	 UDR0=data;
  ee:	8c b9       	out	0x0c, r24	; 12
  f0:	08 95       	ret

000000f2 <__vector_18>:
	}
	
SIGNAL(SIG_USART0_RECV){
  f2:	1f 92       	push	r1
  f4:	0f 92       	push	r0
  f6:	0f b6       	in	r0, 0x3f	; 63
  f8:	0f 92       	push	r0
  fa:	11 24       	eor	r1, r1
  fc:	8f 93       	push	r24
  fe:	9f 93       	push	r25
     j=UDR0;
 100:	8c b1       	in	r24, 0x0c	; 12
 102:	80 93 00 01 	sts	0x0100, r24
	 switch(j){
 106:	99 27       	eor	r25, r25
 108:	85 33       	cpi	r24, 0x35	; 53
 10a:	91 05       	cpc	r25, r1
 10c:	31 f1       	breq	.+76     	; 0x15a
 10e:	86 33       	cpi	r24, 0x36	; 54
 110:	91 05       	cpc	r25, r1
 112:	7c f4       	brge	.+30     	; 0x132
 114:	82 33       	cpi	r24, 0x32	; 50
 116:	91 05       	cpc	r25, r1
 118:	d1 f0       	breq	.+52     	; 0x14e
 11a:	83 33       	cpi	r24, 0x33	; 51
 11c:	91 05       	cpc	r25, r1
 11e:	1c f4       	brge	.+6      	; 0x126
 120:	c1 97       	sbiw	r24, 0x31	; 49
 122:	99 f0       	breq	.+38     	; 0x14a
 124:	24 c0       	rjmp	.+72     	; 0x16e
 126:	83 33       	cpi	r24, 0x33	; 51
 128:	91 05       	cpc	r25, r1
 12a:	99 f0       	breq	.+38     	; 0x152
 12c:	c4 97       	sbiw	r24, 0x34	; 52
 12e:	99 f0       	breq	.+38     	; 0x156
 130:	1e c0       	rjmp	.+60     	; 0x16e
 132:	87 33       	cpi	r24, 0x37	; 55
 134:	91 05       	cpc	r25, r1
 136:	a9 f0       	breq	.+42     	; 0x162
 138:	87 33       	cpi	r24, 0x37	; 55
 13a:	91 05       	cpc	r25, r1
 13c:	84 f0       	brlt	.+32     	; 0x15e
 13e:	88 33       	cpi	r24, 0x38	; 56
 140:	91 05       	cpc	r25, r1
 142:	89 f0       	breq	.+34     	; 0x166
 144:	c9 97       	sbiw	r24, 0x39	; 57
 146:	91 f0       	breq	.+36     	; 0x16c
 148:	12 c0       	rjmp	.+36     	; 0x16e
	     case 0X31: PORTA=0B11111110; break;
 14a:	8e ef       	ldi	r24, 0xFE	; 254
 14c:	0d c0       	rjmp	.+26     	; 0x168
		 case 0X32: PORTA=0B11111101; break;
 14e:	8d ef       	ldi	r24, 0xFD	; 253
 150:	0b c0       	rjmp	.+22     	; 0x168
		 case 0X33: PORTA=0B11111011; break;
 152:	8b ef       	ldi	r24, 0xFB	; 251
 154:	09 c0       	rjmp	.+18     	; 0x168
		 case 0X34: PORTA=0B11110111; break;
 156:	87 ef       	ldi	r24, 0xF7	; 247
 158:	07 c0       	rjmp	.+14     	; 0x168
		 case 0X35: PORTA=0B11101111; break;
 15a:	8f ee       	ldi	r24, 0xEF	; 239
 15c:	05 c0       	rjmp	.+10     	; 0x168
		 case 0X36: PORTA=0B11011111; break;
 15e:	8f ed       	ldi	r24, 0xDF	; 223
 160:	03 c0       	rjmp	.+6      	; 0x168
		 case 0X37: PORTA=0B10111111; break;
 162:	8f eb       	ldi	r24, 0xBF	; 191
 164:	01 c0       	rjmp	.+2      	; 0x168
		 case 0X38: PORTA=0B01111111; break;
 166:	8f e7       	ldi	r24, 0x7F	; 127
 168:	8b bb       	out	0x1b, r24	; 27
 16a:	01 c0       	rjmp	.+2      	; 0x16e
		 case 0X39: PORTA=0B00000000; break;
 16c:	1b ba       	out	0x1b, r1	; 27
 16e:	9f 91       	pop	r25
 170:	8f 91       	pop	r24
 172:	0f 90       	pop	r0
 174:	0f be       	out	0x3f, r0	; 63
 176:	0f 90       	pop	r0
 178:	1f 90       	pop	r1
 17a:	18 95       	reti

0000017c <main>:
		 default: break;
		}
	}
	
int main(void){
 17c:	cf ef       	ldi	r28, 0xFF	; 255
 17e:	d0 e1       	ldi	r29, 0x10	; 16
 180:	de bf       	out	0x3e, r29	; 62
 182:	cd bf       	out	0x3d, r28	; 61
     unsigned char i,m;
	 cli();
 184:	f8 94       	cli
     port_init();
 186:	0e 94 65 00 	call	0xca
	 usart0_init();
 18a:	0e 94 6b 00 	call	0xd6
	 sei();
 18e:	78 94       	sei
 190:	c9 e0       	ldi	r28, 0x09	; 9
	 for(m=0;m<10;m++){
	     i=PINC;
 192:	83 b3       	in	r24, 0x13	; 19
		 usart0_transmit(i);
 194:	0e 94 75 00 	call	0xea
 198:	c1 50       	subi	r28, 0x01	; 1
 19a:	c7 ff       	sbrs	r28, 7
 19c:	fa cf       	rjmp	.-12     	; 0x192
		}
	 for(;;){
 19e:	ff cf       	rjmp	.-2      	; 0x19e

⌨️ 快捷键说明

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