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

📄 hjmcu.lss

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

hjmcu.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000296  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000028  00800060  00000296  0000032a  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000002  00800088  00800088  00000352  2**0
                  ALLOC
  3 .noinit       00000000  0080008a  0080008a  00000352  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000352  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  00000354  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  000006c0  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000014  00000000  00000000  00000744  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 00000094  00000000  00000000  00000758  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   0000020b  00000000  00000000  000007ec  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 00000139  00000000  00000000  000009f7  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   000001a5  00000000  00000000  00000b30  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    00000123  00000000  00000000  00000cd5  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 f3 00 	jmp	0x1e6 <__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 e9       	ldi	r30, 0x96	; 150
  68:	f2 e0       	ldi	r31, 0x02	; 2
  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:	a8 38       	cpi	r26, 0x88	; 136
  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:	a8 e8       	ldi	r26, 0x88	; 136
  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:	aa 38       	cpi	r26, 0x8A	; 138
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 78 00 	jmp	0xf0 <main>

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

0000008e <Port_Init>:

//端口状态初始化设置函数
void Port_Init()
{
	PORTA = 0X00;         
  8e:	1b ba       	out	0x1b, r1	; 27
	DDRA = 0x00;   //ADC通道设置为输入口,高阻态	
  90:	1a ba       	out	0x1a, r1	; 26
  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 <AD_Init>:
	
}

//字节发送函数
void Usart_PutChar(unsigned char cTXData)
{
	while( !(UCSRA & (1 << UDRE)) );  //只有数据寄存器为空时才能发送数据
	UDR = cTXData;	                 //发送数据送USART I/O数据寄存器-UDR
}

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


void Usart_PutString(unsigned char *pcString)
{
	while (*pcString)
	{
		Usart_PutChar(*pcString++);   
	}
	Usart_PutChar(0x0D);
	Usart_PutChar(0x0A);  //结尾发送回车换行
}

//AD转换初始化函数
void AD_Init()
{
	ADMUX |= (1 << REFS0);             //ADC参考电压为AVcc,ADC结果右对齐,选择通道ADC0
  aa:	3e 9a       	sbi	0x07, 6	; 7
	ADCSRA |= (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1);   //使能AD转换,ADC时钟64分频
  ac:	86 b1       	in	r24, 0x06	; 6
  ae:	86 68       	ori	r24, 0x86	; 134
  b0:	86 b9       	out	0x06, r24	; 6
  b2:	08 95       	ret

000000b4 <AD_GetData>:
}

//AD转换函数
unsigned int AD_GetData()
{
	ADCSRA |= (1 << ADSC);     //开始AD转换
  b4:	36 9a       	sbi	0x06, 6	; 6
	while(!(ADCSRA & (1 << ADIF)));    //等待转换完成
  b6:	34 9b       	sbis	0x06, 4	; 6
  b8:	fe cf       	rjmp	.-4      	; 0xb6 <AD_GetData+0x2>
	ADCSRA |= (1 << ADIF);	          //清零ADC中断标志位
  ba:	34 9a       	sbi	0x06, 4	; 6
	
	return ADC;        //返回ADC值
  bc:	84 b1       	in	r24, 0x04	; 4
  be:	95 b1       	in	r25, 0x05	; 5
  c0:	08 95       	ret

000000c2 <Usart_PutChar>:
  c2:	5d 9b       	sbis	0x0b, 5	; 11
  c4:	fe cf       	rjmp	.-4      	; 0xc2 <Usart_PutChar>
  c6:	8c b9       	out	0x0c, r24	; 12
  c8:	08 95       	ret

000000ca <Usart_PutString>:
  ca:	cf 93       	push	r28
  cc:	df 93       	push	r29
  ce:	ec 01       	movw	r28, r24
  d0:	88 81       	ld	r24, Y
  d2:	88 23       	and	r24, r24
  d4:	21 f0       	breq	.+8      	; 0xde <Usart_PutString+0x14>
  d6:	89 91       	ld	r24, Y+
  d8:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
  dc:	f9 cf       	rjmp	.-14     	; 0xd0 <Usart_PutString+0x6>
  de:	8d e0       	ldi	r24, 0x0D	; 13
  e0:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
  e4:	8a e0       	ldi	r24, 0x0A	; 10
  e6:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
  ea:	df 91       	pop	r29
  ec:	cf 91       	pop	r28
  ee:	08 95       	ret

000000f0 <main>:
  f0:	cf e5       	ldi	r28, 0x5F	; 95
  f2:	d4 e0       	ldi	r29, 0x04	; 4
  f4:	de bf       	out	0x3e, r29	; 62
  f6:	cd bf       	out	0x3d, r28	; 61
  f8:	0e 94 47 00 	call	0x8e <Port_Init>
  fc:	0e 94 4a 00 	call	0x94 <Usart_Init>
 100:	0e 94 55 00 	call	0xaa <AD_Init>
 104:	80 e6       	ldi	r24, 0x60	; 96
 106:	90 e0       	ldi	r25, 0x00	; 0
 108:	0e 94 65 00 	call	0xca <Usart_PutString>
 10c:	8f e6       	ldi	r24, 0x6F	; 111
 10e:	90 e0       	ldi	r25, 0x00	; 0
 110:	0e 94 65 00 	call	0xca <Usart_PutString>
 114:	78 94       	sei
 116:	0e 94 5a 00 	call	0xb4 <AD_GetData>
 11a:	aa 27       	eor	r26, r26
 11c:	bb 27       	eor	r27, r27
 11e:	bc 01       	movw	r22, r24
 120:	cd 01       	movw	r24, r26
 122:	22 e9       	ldi	r18, 0x92	; 146
 124:	33 e1       	ldi	r19, 0x13	; 19
 126:	40 e0       	ldi	r20, 0x00	; 0
 128:	50 e0       	ldi	r21, 0x00	; 0
 12a:	0e 94 18 01 	call	0x230 <__mulsi3>
 12e:	97 ff       	sbrs	r25, 7
 130:	04 c0       	rjmp	.+8      	; 0x13a <main+0x4a>
 132:	61 50       	subi	r22, 0x01	; 1
 134:	7c 4f       	sbci	r23, 0xFC	; 252
 136:	8f 4f       	sbci	r24, 0xFF	; 255
 138:	9f 4f       	sbci	r25, 0xFF	; 255
 13a:	dc 01       	movw	r26, r24
 13c:	cb 01       	movw	r24, r22
 13e:	2a e0       	ldi	r18, 0x0A	; 10
 140:	b5 95       	asr	r27
 142:	a7 95       	ror	r26
 144:	97 95       	ror	r25
 146:	87 95       	ror	r24
 148:	2a 95       	dec	r18
 14a:	d1 f7       	brne	.-12     	; 0x140 <main+0x50>
 14c:	90 93 89 00 	sts	0x0089, r25
 150:	80 93 88 00 	sts	0x0088, r24
 154:	68 ee       	ldi	r22, 0xE8	; 232
 156:	73 e0       	ldi	r23, 0x03	; 3
 158:	0e 94 37 01 	call	0x26e <__udivmodhi4>
 15c:	cb 01       	movw	r24, r22
 15e:	80 5d       	subi	r24, 0xD0	; 208
 160:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
 164:	8e e2       	ldi	r24, 0x2E	; 46
 166:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
 16a:	80 91 88 00 	lds	r24, 0x0088
 16e:	90 91 89 00 	lds	r25, 0x0089
 172:	68 ee       	ldi	r22, 0xE8	; 232
 174:	73 e0       	ldi	r23, 0x03	; 3
 176:	0e 94 37 01 	call	0x26e <__udivmodhi4>
 17a:	64 e6       	ldi	r22, 0x64	; 100
 17c:	70 e0       	ldi	r23, 0x00	; 0
 17e:	0e 94 37 01 	call	0x26e <__udivmodhi4>
 182:	cb 01       	movw	r24, r22
 184:	80 5d       	subi	r24, 0xD0	; 208
 186:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
 18a:	80 91 88 00 	lds	r24, 0x0088
 18e:	90 91 89 00 	lds	r25, 0x0089
 192:	64 e6       	ldi	r22, 0x64	; 100
 194:	70 e0       	ldi	r23, 0x00	; 0
 196:	0e 94 37 01 	call	0x26e <__udivmodhi4>
 19a:	6a e0       	ldi	r22, 0x0A	; 10
 19c:	70 e0       	ldi	r23, 0x00	; 0
 19e:	0e 94 37 01 	call	0x26e <__udivmodhi4>
 1a2:	cb 01       	movw	r24, r22
 1a4:	80 5d       	subi	r24, 0xD0	; 208
 1a6:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
 1aa:	80 91 88 00 	lds	r24, 0x0088
 1ae:	90 91 89 00 	lds	r25, 0x0089
 1b2:	6a e0       	ldi	r22, 0x0A	; 10
 1b4:	70 e0       	ldi	r23, 0x00	; 0
 1b6:	0e 94 37 01 	call	0x26e <__udivmodhi4>
 1ba:	80 5d       	subi	r24, 0xD0	; 208
 1bc:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
 1c0:	86 e5       	ldi	r24, 0x56	; 86
 1c2:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
 1c6:	8d e0       	ldi	r24, 0x0D	; 13
 1c8:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
 1cc:	8a e0       	ldi	r24, 0x0A	; 10
 1ce:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
 1d2:	e0 e0       	ldi	r30, 0x00	; 0
 1d4:	f0 e0       	ldi	r31, 0x00	; 0
 1d6:	2d e1       	ldi	r18, 0x1D	; 29
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
 1d8:	cf 01       	movw	r24, r30
 1da:	01 97       	sbiw	r24, 0x01	; 1
 1dc:	f1 f7       	brne	.-4      	; 0x1da <main+0xea>
 1de:	21 50       	subi	r18, 0x01	; 1
 1e0:	27 ff       	sbrs	r18, 7
 1e2:	fa cf       	rjmp	.-12     	; 0x1d8 <main+0xe8>
 1e4:	98 cf       	rjmp	.-208    	; 0x116 <main+0x26>

000001e6 <__vector_11>:
 1e6:	1f 92       	push	r1
 1e8:	0f 92       	push	r0
 1ea:	0f b6       	in	r0, 0x3f	; 63
 1ec:	0f 92       	push	r0
 1ee:	11 24       	eor	r1, r1
 1f0:	2f 93       	push	r18
 1f2:	3f 93       	push	r19
 1f4:	4f 93       	push	r20
 1f6:	5f 93       	push	r21
 1f8:	6f 93       	push	r22
 1fa:	7f 93       	push	r23
 1fc:	8f 93       	push	r24
 1fe:	9f 93       	push	r25
 200:	af 93       	push	r26
 202:	bf 93       	push	r27
 204:	ef 93       	push	r30
 206:	ff 93       	push	r31
 208:	8c b1       	in	r24, 0x0c	; 12
 20a:	0e 94 61 00 	call	0xc2 <Usart_PutChar>
 20e:	ff 91       	pop	r31
 210:	ef 91       	pop	r30
 212:	bf 91       	pop	r27
 214:	af 91       	pop	r26
 216:	9f 91       	pop	r25
 218:	8f 91       	pop	r24
 21a:	7f 91       	pop	r23
 21c:	6f 91       	pop	r22
 21e:	5f 91       	pop	r21
 220:	4f 91       	pop	r20
 222:	3f 91       	pop	r19
 224:	2f 91       	pop	r18
 226:	0f 90       	pop	r0
 228:	0f be       	out	0x3f, r0	; 63
 22a:	0f 90       	pop	r0
 22c:	1f 90       	pop	r1
 22e:	18 95       	reti

00000230 <__mulsi3>:
 230:	62 9f       	mul	r22, r18
 232:	d0 01       	movw	r26, r0
 234:	73 9f       	mul	r23, r19
 236:	f0 01       	movw	r30, r0
 238:	82 9f       	mul	r24, r18
 23a:	e0 0d       	add	r30, r0
 23c:	f1 1d       	adc	r31, r1
 23e:	64 9f       	mul	r22, r20
 240:	e0 0d       	add	r30, r0
 242:	f1 1d       	adc	r31, r1
 244:	92 9f       	mul	r25, r18
 246:	f0 0d       	add	r31, r0
 248:	83 9f       	mul	r24, r19
 24a:	f0 0d       	add	r31, r0
 24c:	74 9f       	mul	r23, r20
 24e:	f0 0d       	add	r31, r0
 250:	65 9f       	mul	r22, r21
 252:	f0 0d       	add	r31, r0
 254:	99 27       	eor	r25, r25
 256:	72 9f       	mul	r23, r18
 258:	b0 0d       	add	r27, r0
 25a:	e1 1d       	adc	r30, r1
 25c:	f9 1f       	adc	r31, r25
 25e:	63 9f       	mul	r22, r19
 260:	b0 0d       	add	r27, r0
 262:	e1 1d       	adc	r30, r1
 264:	f9 1f       	adc	r31, r25
 266:	bd 01       	movw	r22, r26
 268:	cf 01       	movw	r24, r30
 26a:	11 24       	eor	r1, r1
 26c:	08 95       	ret

0000026e <__udivmodhi4>:
 26e:	aa 1b       	sub	r26, r26
 270:	bb 1b       	sub	r27, r27
 272:	51 e1       	ldi	r21, 0x11	; 17
 274:	07 c0       	rjmp	.+14     	; 0x284 <__udivmodhi4_ep>

00000276 <__udivmodhi4_loop>:
 276:	aa 1f       	adc	r26, r26
 278:	bb 1f       	adc	r27, r27
 27a:	a6 17       	cp	r26, r22
 27c:	b7 07       	cpc	r27, r23
 27e:	10 f0       	brcs	.+4      	; 0x284 <__udivmodhi4_ep>
 280:	a6 1b       	sub	r26, r22
 282:	b7 0b       	sbc	r27, r23

00000284 <__udivmodhi4_ep>:
 284:	88 1f       	adc	r24, r24
 286:	99 1f       	adc	r25, r25
 288:	5a 95       	dec	r21
 28a:	a9 f7       	brne	.-22     	; 0x276 <__udivmodhi4_loop>
 28c:	80 95       	com	r24
 28e:	90 95       	com	r25
 290:	bc 01       	movw	r22, r24
 292:	cd 01       	movw	r24, r26
 294:	08 95       	ret

⌨️ 快捷键说明

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