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

📄 myusart.lss

📁 atmega128单片机的串口通讯程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:

myusart.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000280  00800100  0000266e  000026e2  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         0000266e  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .debug_aranges 00000060  00000000  00000000  00002962  2**0
                  CONTENTS, READONLY, DEBUGGING
  3 .debug_pubnames 00000179  00000000  00000000  000029c2  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_info   00000a62  00000000  00000000  00002b3b  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_abbrev 000001e2  00000000  00000000  0000359d  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_line   00000a92  00000000  00000000  0000377f  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_frame  000000d0  00000000  00000000  00004214  2**2
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_str    000001e0  00000000  00000000  000042e4  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
       0:	0c 94 46 00 	jmp	0x8c	; 0x8c <__ctors_end>
       4:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
       8:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
       c:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      10:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      14:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      18:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      1c:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      20:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      24:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      28:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      2c:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      30:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      34:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      38:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      3c:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      40:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      44:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      48:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      4c:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      50:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      54:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      58:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      5c:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      60:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      64:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      68:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      6c:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      70:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      74:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      78:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      7c:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      80:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      84:	0c 94 65 00 	jmp	0xca	; 0xca <__bad_interrupt>
      88:	0c 94 65 00 	jmp	0xca	; 0xca <__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:	13 e0       	ldi	r17, 0x03	; 3
      9a:	a0 e0       	ldi	r26, 0x00	; 0
      9c:	b1 e0       	ldi	r27, 0x01	; 1
      9e:	ee e6       	ldi	r30, 0x6E	; 110
      a0:	f6 e2       	ldi	r31, 0x26	; 38
      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:	a0 38       	cpi	r26, 0x80	; 128
      ae:	b1 07       	cpc	r27, r17
      b0:	d9 f7       	brne	.-10     	; 0xa8 <__do_copy_data+0x10>

000000b2 <__do_clear_bss>:
      b2:	13 e0       	ldi	r17, 0x03	; 3
      b4:	a0 e8       	ldi	r26, 0x80	; 128
      b6:	b3 e0       	ldi	r27, 0x03	; 3
      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:	a0 38       	cpi	r26, 0x80	; 128
      be:	b1 07       	cpc	r27, r17
      c0:	e1 f7       	brne	.-8      	; 0xba <.do_clear_bss_loop>
      c2:	0e 94 9b 0d 	call	0x1b36	; 0x1b36 <main>
      c6:	0c 94 35 13 	jmp	0x266a	; 0x266a <_exit>

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

000000ce <usart_transmit>:
unsigned char data_11[]={"AVR ISP下载接口\n\r"};
unsigned char data_12[]={"I2C,SPI接口单独引出,方便扩展\n\r"};
unsigned char data_13[]={"所有IO口全部引出,方便扩展实验及测试\n\r"};

void usart_transmit(unsigned char data)
{
      ce:	df 93       	push	r29
      d0:	cf 93       	push	r28
      d2:	0f 92       	push	r0
      d4:	cd b7       	in	r28, 0x3d	; 61
      d6:	de b7       	in	r29, 0x3e	; 62
      d8:	89 83       	std	Y+1, r24	; 0x01
   while(!(UCSR1A & (1<<UDRE1)));
      da:	eb e9       	ldi	r30, 0x9B	; 155
      dc:	f0 e0       	ldi	r31, 0x00	; 0
      de:	80 81       	ld	r24, Z
      e0:	88 2f       	mov	r24, r24
      e2:	90 e0       	ldi	r25, 0x00	; 0
      e4:	80 72       	andi	r24, 0x20	; 32
      e6:	90 70       	andi	r25, 0x00	; 0
      e8:	00 97       	sbiw	r24, 0x00	; 0
      ea:	b9 f3       	breq	.-18     	; 0xda <usart_transmit+0xc>
   UDR1 = data;
      ec:	ec e9       	ldi	r30, 0x9C	; 156
      ee:	f0 e0       	ldi	r31, 0x00	; 0
      f0:	89 81       	ldd	r24, Y+1	; 0x01
      f2:	80 83       	st	Z, r24
}
      f4:	0f 90       	pop	r0
      f6:	cf 91       	pop	r28
      f8:	df 91       	pop	r29
      fa:	08 95       	ret

000000fc <usart_receive>:

unsigned char usart_receive(void)
{
      fc:	df 93       	push	r29
      fe:	cf 93       	push	r28
     100:	cd b7       	in	r28, 0x3d	; 61
     102:	de b7       	in	r29, 0x3e	; 62
   while(!(UCSR1A & (1<<RXC1)));
     104:	eb e9       	ldi	r30, 0x9B	; 155
     106:	f0 e0       	ldi	r31, 0x00	; 0
     108:	80 81       	ld	r24, Z
     10a:	88 23       	and	r24, r24
     10c:	dc f7       	brge	.-10     	; 0x104 <usart_receive+0x8>
   return UDR1;
     10e:	ec e9       	ldi	r30, 0x9C	; 156
     110:	f0 e0       	ldi	r31, 0x00	; 0
     112:	80 81       	ld	r24, Z
}
     114:	cf 91       	pop	r28
     116:	df 91       	pop	r29
     118:	08 95       	ret

0000011a <data_write>:

void data_write(unsigned char *data,unsigned char data_len)
{
     11a:	df 93       	push	r29
     11c:	cf 93       	push	r28
     11e:	00 d0       	rcall	.+0      	; 0x120 <data_write+0x6>
     120:	00 d0       	rcall	.+0      	; 0x122 <data_write+0x8>
     122:	cd b7       	in	r28, 0x3d	; 61
     124:	de b7       	in	r29, 0x3e	; 62
     126:	9b 83       	std	Y+3, r25	; 0x03
     128:	8a 83       	std	Y+2, r24	; 0x02
     12a:	6c 83       	std	Y+4, r22	; 0x04
   unsigned char i;
   for(i=0;i<data_len;i++)
     12c:	19 82       	std	Y+1, r1	; 0x01
     12e:	0e c0       	rjmp	.+28     	; 0x14c <data_write+0x32>
   {
      usart_transmit(data[i]);
     130:	89 81       	ldd	r24, Y+1	; 0x01
     132:	28 2f       	mov	r18, r24
     134:	30 e0       	ldi	r19, 0x00	; 0
     136:	8a 81       	ldd	r24, Y+2	; 0x02
     138:	9b 81       	ldd	r25, Y+3	; 0x03
     13a:	fc 01       	movw	r30, r24
     13c:	e2 0f       	add	r30, r18
     13e:	f3 1f       	adc	r31, r19
     140:	80 81       	ld	r24, Z
     142:	0e 94 67 00 	call	0xce	; 0xce <usart_transmit>
}

void data_write(unsigned char *data,unsigned char data_len)
{
   unsigned char i;
   for(i=0;i<data_len;i++)
     146:	89 81       	ldd	r24, Y+1	; 0x01
     148:	8f 5f       	subi	r24, 0xFF	; 255
     14a:	89 83       	std	Y+1, r24	; 0x01
     14c:	99 81       	ldd	r25, Y+1	; 0x01
     14e:	8c 81       	ldd	r24, Y+4	; 0x04
     150:	98 17       	cp	r25, r24
     152:	70 f3       	brcs	.-36     	; 0x130 <data_write+0x16>
   {
      usart_transmit(data[i]);
	  //_delay_ms(5);此处若延时则会使中文显示为乱码;
   }
   
}
     154:	0f 90       	pop	r0
     156:	0f 90       	pop	r0
     158:	0f 90       	pop	r0
     15a:	0f 90       	pop	r0
     15c:	cf 91       	pop	r28
     15e:	df 91       	pop	r29
     160:	08 95       	ret

00000162 <info_display>:

void info_display(void)
{
     162:	0f 93       	push	r16
     164:	1f 93       	push	r17
     166:	df 93       	push	r29
     168:	cf 93       	push	r28
     16a:	cd b7       	in	r28, 0x3d	; 61
     16c:	de b7       	in	r29, 0x3e	; 62
     16e:	c4 5c       	subi	r28, 0xC4	; 196
     170:	d0 40       	sbci	r29, 0x00	; 0
     172:	0f b6       	in	r0, 0x3f	; 63
     174:	f8 94       	cli
     176:	de bf       	out	0x3e, r29	; 62
     178:	0f be       	out	0x3f, r0	; 63
     17a:	cd bf       	out	0x3d, r28	; 61
	data_write(data_00,16);	_delay_ms(256);
     17c:	80 e0       	ldi	r24, 0x00	; 0
     17e:	91 e0       	ldi	r25, 0x01	; 1
     180:	60 e1       	ldi	r22, 0x10	; 16
     182:	0e 94 8d 00 	call	0x11a	; 0x11a <data_write>
     186:	fe 01       	movw	r30, r28
     188:	ef 53       	subi	r30, 0x3F	; 63
     18a:	ff 4f       	sbci	r31, 0xFF	; 255
     18c:	80 e0       	ldi	r24, 0x00	; 0
     18e:	90 e0       	ldi	r25, 0x00	; 0
     190:	a0 e8       	ldi	r26, 0x80	; 128
     192:	b3 e4       	ldi	r27, 0x43	; 67
     194:	80 83       	st	Z, r24
     196:	91 83       	std	Z+1, r25	; 0x01
     198:	a2 83       	std	Z+2, r26	; 0x02
     19a:	b3 83       	std	Z+3, r27	; 0x03
 */
void
_delay_ms(double __ms)
{
	uint16_t __ticks;
	double __tmp = ((F_CPU) / 4e3) * __ms;
     19c:	8e 01       	movw	r16, r28
     19e:	03 54       	subi	r16, 0x43	; 67
     1a0:	1f 4f       	sbci	r17, 0xFF	; 255
     1a2:	fe 01       	movw	r30, r28
     1a4:	ef 53       	subi	r30, 0x3F	; 63
     1a6:	ff 4f       	sbci	r31, 0xFF	; 255
     1a8:	20 e0       	ldi	r18, 0x00	; 0
     1aa:	30 e0       	ldi	r19, 0x00	; 0
     1ac:	4a e7       	ldi	r20, 0x7A	; 122
     1ae:	55 e4       	ldi	r21, 0x45	; 69
     1b0:	60 81       	ld	r22, Z
     1b2:	71 81       	ldd	r23, Z+1	; 0x01
     1b4:	82 81       	ldd	r24, Z+2	; 0x02
     1b6:	93 81       	ldd	r25, Z+3	; 0x03
     1b8:	0e 94 7a 0f 	call	0x1ef4	; 0x1ef4 <__mulsf3>
     1bc:	dc 01       	movw	r26, r24
     1be:	cb 01       	movw	r24, r22
     1c0:	f8 01       	movw	r30, r16
     1c2:	80 83       	st	Z, r24
     1c4:	91 83       	std	Z+1, r25	; 0x01
     1c6:	a2 83       	std	Z+2, r26	; 0x02
     1c8:	b3 83       	std	Z+3, r27	; 0x03
	if (__tmp < 1.0)
     1ca:	fe 01       	movw	r30, r28
     1cc:	e3 54       	subi	r30, 0x43	; 67
     1ce:	ff 4f       	sbci	r31, 0xFF	; 255
     1d0:	20 e0       	ldi	r18, 0x00	; 0
     1d2:	30 e0       	ldi	r19, 0x00	; 0
     1d4:	40 e8       	ldi	r20, 0x80	; 128
     1d6:	5f e3       	ldi	r21, 0x3F	; 63
     1d8:	60 81       	ld	r22, Z
     1da:	71 81       	ldd	r23, Z+1	; 0x01
     1dc:	82 81       	ldd	r24, Z+2	; 0x02
     1de:	93 81       	ldd	r25, Z+3	; 0x03
     1e0:	0e 94 d4 10 	call	0x21a8	; 0x21a8 <__ltsf2>
     1e4:	88 23       	and	r24, r24
     1e6:	44 f4       	brge	.+16     	; 0x1f8 <info_display+0x96>
		__ticks = 1;
     1e8:	fe 01       	movw	r30, r28
     1ea:	e5 54       	subi	r30, 0x45	; 69
     1ec:	ff 4f       	sbci	r31, 0xFF	; 255
     1ee:	81 e0       	ldi	r24, 0x01	; 1
     1f0:	90 e0       	ldi	r25, 0x00	; 0
     1f2:	91 83       	std	Z+1, r25	; 0x01
     1f4:	80 83       	st	Z, r24
     1f6:	64 c0       	rjmp	.+200    	; 0x2c0 <info_display+0x15e>
	else if (__tmp > 65535)
     1f8:	fe 01       	movw	r30, r28
     1fa:	e3 54       	subi	r30, 0x43	; 67
     1fc:	ff 4f       	sbci	r31, 0xFF	; 255
     1fe:	20 e0       	ldi	r18, 0x00	; 0
     200:	3f ef       	ldi	r19, 0xFF	; 255
     202:	4f e7       	ldi	r20, 0x7F	; 127
     204:	57 e4       	ldi	r21, 0x47	; 71
     206:	60 81       	ld	r22, Z
     208:	71 81       	ldd	r23, Z+1	; 0x01
     20a:	82 81       	ldd	r24, Z+2	; 0x02
     20c:	93 81       	ldd	r25, Z+3	; 0x03
     20e:	0e 94 74 10 	call	0x20e8	; 0x20e8 <__gtsf2>
     212:	18 16       	cp	r1, r24
     214:	0c f0       	brlt	.+2      	; 0x218 <info_display+0xb6>
     216:	43 c0       	rjmp	.+134    	; 0x29e <info_display+0x13c>
	{
		//	__ticks = requested delay in 1/10 ms
		__ticks = (uint16_t) (__ms * 10.0);
     218:	fe 01       	movw	r30, r28
     21a:	ef 53       	subi	r30, 0x3F	; 63
     21c:	ff 4f       	sbci	r31, 0xFF	; 255
     21e:	20 e0       	ldi	r18, 0x00	; 0
     220:	30 e0       	ldi	r19, 0x00	; 0
     222:	40 e2       	ldi	r20, 0x20	; 32
     224:	51 e4       	ldi	r21, 0x41	; 65
     226:	60 81       	ld	r22, Z
     228:	71 81       	ldd	r23, Z+1	; 0x01
     22a:	82 81       	ldd	r24, Z+2	; 0x02

⌨️ 快捷键说明

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