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

📄 hjmcu.lss

📁 很实用的单片机例程
💻 LSS
字号:

hjmcu.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000146  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000002a  00800060  00000146  000001da  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000001  0080008a  0080008a  00000204  2**0
                  ALLOC
  3 .noinit       00000000  0080008b  0080008b  00000204  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000204  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  00000204  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  00000570  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000014  00000000  00000000  000005f4  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 0000007b  00000000  00000000  00000608  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   00000133  00000000  00000000  00000683  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 000000a5  00000000  00000000  000007b6  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   0000011a  00000000  00000000  0000085b  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    000000c7  00000000  00000000  00000975  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54 <__ctors_end>
   4:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
   8:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
   c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  10:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  14:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  18:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  1c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  20:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  24:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  28:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  2c:	0c 94 7e 00 	jmp	0xfc <__vector_11>
  30:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  34:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  38:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  3c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  40:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  44:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  48:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  4c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  50:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>

00000054 <__ctors_end>:
  54:	11 24       	eor	r1, r1
  56:	1f be       	out	0x3f, r1	; 63
  58:	cf e5       	ldi	r28, 0x5F	; 95
  5a:	d4 e0       	ldi	r29, 0x04	; 4
  5c:	de bf       	out	0x3e, r29	; 62
  5e:	cd bf       	out	0x3d, r28	; 61

00000060 <__do_copy_data>:
  60:	10 e0       	ldi	r17, 0x00	; 0
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	e6 e4       	ldi	r30, 0x46	; 70
  68:	f1 e0       	ldi	r31, 0x01	; 1
  6a:	02 c0       	rjmp	.+4      	; 0x70 <.do_copy_data_start>

0000006c <.do_copy_data_loop>:
  6c:	05 90       	lpm	r0, Z+
  6e:	0d 92       	st	X+, r0

00000070 <.do_copy_data_start>:
  70:	aa 38       	cpi	r26, 0x8A	; 138
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	aa e8       	ldi	r26, 0x8A	; 138
  7a:	b0 e0       	ldi	r27, 0x00	; 0
  7c:	01 c0       	rjmp	.+2      	; 0x80 <.do_clear_bss_start>

0000007e <.do_clear_bss_loop>:
  7e:	1d 92       	st	X+, r1

00000080 <.do_clear_bss_start>:
  80:	ab 38       	cpi	r26, 0x8B	; 139
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 6c 00 	jmp	0xd8 <main>

0000008a <__bad_interrupt>:
  8a:	0c 94 00 00 	jmp	0x0 <__vectors>

0000008e <Port_Init>:

//端口状态初始化设置函数
void Port_Init()
{
	PORTD = 0X00;          //USART的发送接收端口分别为PD0和PD1
  8e:	12 ba       	out	0x12, r1	; 18
	DDRD |= (1 << PD1);   //PD0为接收端口,置为输入口;PD1为发送端口,置为输出口
  90:	89 9a       	sbi	0x11, 1	; 17
  92:	08 95       	ret

00000094 <Usart_Init>:
}

//USART寄存器配置函数
void Usart_Init()
{
	UCSRA = 0X00;	
  94:	1b b8       	out	0x0b, r1	; 11
	UCSRC |= (1<<URSEL) | (1 << UCSZ1) | (1 << UCSZ0);  //异步,数据格式8,N,1
  96:	80 b5       	in	r24, 0x20	; 32
  98:	86 68       	ori	r24, 0x86	; 134
  9a:	80 bd       	out	0x20, r24	; 32
	     //UCSRC寄存器与UBRRH寄存器共用相同的I/O地址,写 UCSRC 时, URSEL 应设置为 1。
	UBRRL = (F_CPU / BAUD / 16 - 1) % 256;    //波特率设置
  9c:	8d e4       	ldi	r24, 0x4D	; 77
  9e:	89 b9       	out	0x09, r24	; 9
	UBRRH = (F_CPU / BAUD / 16 - 1) / 256;		
  a0:	10 bc       	out	0x20, r1	; 32
	UCSRB |= (1 << RXCIE) | (1 << RXEN) | (1 << TXEN);    //发送使能
  a2:	8a b1       	in	r24, 0x0a	; 10
  a4:	88 69       	ori	r24, 0x98	; 152
  a6:	8a b9       	out	0x0a, r24	; 10
  a8:	08 95       	ret

000000aa <Usart_PutChar>:
	
}

//字节发送函数
void Usart_PutChar(unsigned char cTXData)
{
	while( !(UCSRA & (1 << UDRE)) );  //只有数据寄存器为空时才能发送数据
  aa:	5d 9b       	sbis	0x0b, 5	; 11
  ac:	fe cf       	rjmp	.-4      	; 0xaa <Usart_PutChar>
	UDR = cTXData;	                 //发送数据送USART I/O数据寄存器-UDR
  ae:	8c b9       	out	0x0c, r24	; 12
  b0:	08 95       	ret

000000b2 <Usart_PutString>:
}

//接收中断函数
ISR(USART_RXC_vect )
{
	unsigned char Rev;
	Rev = UDR;              //从USART I/O数据寄存器-UDR中读出数据
	Usart_PutChar(Rev);    //将接收到的数据发送
}


void Usart_PutString(unsigned char *pcString)
{
  b2:	cf 93       	push	r28
  b4:	df 93       	push	r29
  b6:	ec 01       	movw	r28, r24
	while (*pcString)
	{
		Usart_PutChar(*pcString++);
  b8:	88 81       	ld	r24, Y
  ba:	88 23       	and	r24, r24
  bc:	21 f0       	breq	.+8      	; 0xc6 <Usart_PutString+0x14>
  be:	89 91       	ld	r24, Y+
  c0:	0e 94 55 00 	call	0xaa <Usart_PutChar>
  c4:	f9 cf       	rjmp	.-14     	; 0xb8 <Usart_PutString+0x6>
	}
	Usart_PutChar(0x0D);
  c6:	8d e0       	ldi	r24, 0x0D	; 13
  c8:	0e 94 55 00 	call	0xaa <Usart_PutChar>
	Usart_PutChar(0x0A);  //结尾发送回车换行
  cc:	8a e0       	ldi	r24, 0x0A	; 10
  ce:	0e 94 55 00 	call	0xaa <Usart_PutChar>
  d2:	df 91       	pop	r29
  d4:	cf 91       	pop	r28
  d6:	08 95       	ret

000000d8 <main>:
  d8:	cf e5       	ldi	r28, 0x5F	; 95
  da:	d4 e0       	ldi	r29, 0x04	; 4
  dc:	de bf       	out	0x3e, r29	; 62
  de:	cd bf       	out	0x3d, r28	; 61
  e0:	0e 94 47 00 	call	0x8e <Port_Init>
  e4:	0e 94 4a 00 	call	0x94 <Usart_Init>
  e8:	80 e6       	ldi	r24, 0x60	; 96
  ea:	90 e0       	ldi	r25, 0x00	; 0
  ec:	0e 94 59 00 	call	0xb2 <Usart_PutString>
  f0:	81 e7       	ldi	r24, 0x71	; 113
  f2:	90 e0       	ldi	r25, 0x00	; 0
  f4:	0e 94 59 00 	call	0xb2 <Usart_PutString>
  f8:	78 94       	sei
  fa:	ff cf       	rjmp	.-2      	; 0xfa <main+0x22>

000000fc <__vector_11>:
  fc:	1f 92       	push	r1
  fe:	0f 92       	push	r0
 100:	0f b6       	in	r0, 0x3f	; 63
 102:	0f 92       	push	r0
 104:	11 24       	eor	r1, r1
 106:	2f 93       	push	r18
 108:	3f 93       	push	r19
 10a:	4f 93       	push	r20
 10c:	5f 93       	push	r21
 10e:	6f 93       	push	r22
 110:	7f 93       	push	r23
 112:	8f 93       	push	r24
 114:	9f 93       	push	r25
 116:	af 93       	push	r26
 118:	bf 93       	push	r27
 11a:	ef 93       	push	r30
 11c:	ff 93       	push	r31
 11e:	8c b1       	in	r24, 0x0c	; 12
 120:	0e 94 55 00 	call	0xaa <Usart_PutChar>
 124:	ff 91       	pop	r31
 126:	ef 91       	pop	r30
 128:	bf 91       	pop	r27
 12a:	af 91       	pop	r26
 12c:	9f 91       	pop	r25
 12e:	8f 91       	pop	r24
 130:	7f 91       	pop	r23
 132:	6f 91       	pop	r22
 134:	5f 91       	pop	r21
 136:	4f 91       	pop	r20
 138:	3f 91       	pop	r19
 13a:	2f 91       	pop	r18
 13c:	0f 90       	pop	r0
 13e:	0f be       	out	0x3f, r0	; 63
 140:	0f 90       	pop	r0
 142:	1f 90       	pop	r1
 144:	18 95       	reti

⌨️ 快捷键说明

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