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

📄 main.lss

📁 avr单片机的ADC驱动程序
💻 LSS
📖 第 1 页 / 共 4 页
字号:
 254:	4f 93       	push	r20
 256:	5f 93       	push	r21
 258:	6f 93       	push	r22
 25a:	7f 93       	push	r23
 25c:	8f 93       	push	r24
 25e:	9f 93       	push	r25
 260:	af 93       	push	r26
 262:	bf 93       	push	r27
 264:	ef 93       	push	r30
 266:	ff 93       	push	r31
 268:	cf 93       	push	r28
 26a:	df 93       	push	r29
 26c:	cd b7       	in	r28, 0x3d	; 61
 26e:	de b7       	in	r29, 0x3e	; 62
 270:	6c 97       	sbiw	r28, 0x1c	; 28
 272:	de bf       	out	0x3e, r29	; 62
 274:	cd bf       	out	0x3d, r28	; 61
         //硬件自动清除ADIF标志位
        ADC_INT_SE=ADC;						//读取结果
 276:	80 91 24 00 	lds	r24, 0x0024
 27a:	90 91 25 00 	lds	r25, 0x0025
 27e:	90 93 23 01 	sts	0x0123, r25
 282:	80 93 22 01 	sts	0x0122, r24
    
        //实测的Vref引脚电压 =2556mV
   
       long temp32;
       temp32=(long) ADC_INT_SE*Vref;
 286:	80 91 22 01 	lds	r24, 0x0122
 28a:	90 91 23 01 	lds	r25, 0x0123
 28e:	aa 27       	eor	r26, r26
 290:	bb 27       	eor	r27, r27
 292:	24 ee       	ldi	r18, 0xE4	; 228
 294:	3c e0       	ldi	r19, 0x0C	; 12
 296:	40 e0       	ldi	r20, 0x00	; 0
 298:	50 e0       	ldi	r21, 0x00	; 0
 29a:	bc 01       	movw	r22, r24
 29c:	cd 01       	movw	r24, r26
 29e:	0e 94 1e 05 	call	0xa3c <__mulsi3>
 2a2:	dc 01       	movw	r26, r24
 2a4:	cb 01       	movw	r24, r22
 2a6:	89 83       	std	Y+1, r24	; 0x01
 2a8:	9a 83       	std	Y+2, r25	; 0x02
 2aa:	ab 83       	std	Y+3, r26	; 0x03
 2ac:	bc 83       	std	Y+4, r27	; 0x04
       LED_Volt=(unsigned int)(temp32/1024);
 2ae:	89 81       	ldd	r24, Y+1	; 0x01
 2b0:	9a 81       	ldd	r25, Y+2	; 0x02
 2b2:	ab 81       	ldd	r26, Y+3	; 0x03
 2b4:	bc 81       	ldd	r27, Y+4	; 0x04
 2b6:	89 8f       	std	Y+25, r24	; 0x19
 2b8:	9a 8f       	std	Y+26, r25	; 0x1a
 2ba:	ab 8f       	std	Y+27, r26	; 0x1b
 2bc:	bc 8f       	std	Y+28, r27	; 0x1c
 2be:	89 8d       	ldd	r24, Y+25	; 0x19
 2c0:	9a 8d       	ldd	r25, Y+26	; 0x1a
 2c2:	ab 8d       	ldd	r26, Y+27	; 0x1b
 2c4:	bc 8d       	ldd	r27, Y+28	; 0x1c
 2c6:	bb 23       	and	r27, r27
 2c8:	64 f4       	brge	.+24     	; 0x2e2 <__vector_21+0x9c>
 2ca:	89 8d       	ldd	r24, Y+25	; 0x19
 2cc:	9a 8d       	ldd	r25, Y+26	; 0x1a
 2ce:	ab 8d       	ldd	r26, Y+27	; 0x1b
 2d0:	bc 8d       	ldd	r27, Y+28	; 0x1c
 2d2:	81 50       	subi	r24, 0x01	; 1
 2d4:	9c 4f       	sbci	r25, 0xFC	; 252
 2d6:	af 4f       	sbci	r26, 0xFF	; 255
 2d8:	bf 4f       	sbci	r27, 0xFF	; 255
 2da:	89 8f       	std	Y+25, r24	; 0x19
 2dc:	9a 8f       	std	Y+26, r25	; 0x1a
 2de:	ab 8f       	std	Y+27, r26	; 0x1b
 2e0:	bc 8f       	std	Y+28, r27	; 0x1c
 2e2:	89 8d       	ldd	r24, Y+25	; 0x19
 2e4:	9a 8d       	ldd	r25, Y+26	; 0x1a
 2e6:	ab 8d       	ldd	r26, Y+27	; 0x1b
 2e8:	bc 8d       	ldd	r27, Y+28	; 0x1c
 2ea:	07 2e       	mov	r0, r23
 2ec:	7a e0       	ldi	r23, 0x0A	; 10
 2ee:	b5 95       	asr	r27
 2f0:	a7 95       	ror	r26
 2f2:	97 95       	ror	r25
 2f4:	87 95       	ror	r24
 2f6:	7a 95       	dec	r23
 2f8:	d1 f7       	brne	.-12     	; 0x2ee <__vector_21+0xa8>
 2fa:	70 2d       	mov	r23, r0
 2fc:	90 93 25 01 	sts	0x0125, r25
 300:	80 93 24 01 	sts	0x0124, r24

       uchar str[20];
	   delay100ms() ;
 304:	0e 94 f5 00 	call	0x1ea <delay100ms>
	    
	   sprintf(str, "%4d mV ",LED_Volt);
 308:	80 91 24 01 	lds	r24, 0x0124
 30c:	90 91 25 01 	lds	r25, 0x0125
 310:	9f 93       	push	r25
 312:	8f 93       	push	r24
 314:	80 e0       	ldi	r24, 0x00	; 0
 316:	91 e0       	ldi	r25, 0x01	; 1
 318:	9f 93       	push	r25
 31a:	8f 93       	push	r24
 31c:	ce 01       	movw	r24, r28
 31e:	05 96       	adiw	r24, 0x05	; 5
 320:	9f 93       	push	r25
 322:	8f 93       	push	r24
 324:	0e 94 e5 01 	call	0x3ca <sprintf>
 328:	ad b7       	in	r26, 0x3d	; 61
 32a:	be b7       	in	r27, 0x3e	; 62
 32c:	16 96       	adiw	r26, 0x06	; 6
 32e:	0f b6       	in	r0, 0x3f	; 63
 330:	f8 94       	cli
 332:	be bf       	out	0x3e, r27	; 62
 334:	0f be       	out	0x3f, r0	; 63
 336:	ad bf       	out	0x3d, r26	; 61
	   USART_Transmit_str("Hello! 这是ADC转换测试:\n");
 338:	88 e0       	ldi	r24, 0x08	; 8
 33a:	91 e0       	ldi	r25, 0x01	; 1
 33c:	0e 94 96 00 	call	0x12c <USART_Transmit_str>
	   USART_Transmit_str(str); 
 340:	ce 01       	movw	r24, r28
 342:	05 96       	adiw	r24, 0x05	; 5
 344:	0e 94 96 00 	call	0x12c <USART_Transmit_str>
	  //delay100ms() ;
	 
	  
	   ADCSRA |= _BV(ADSC);
 348:	80 91 26 00 	lds	r24, 0x0026
 34c:	80 64       	ori	r24, 0x40	; 64
 34e:	80 93 26 00 	sts	0x0026, r24
 352:	6c 96       	adiw	r28, 0x1c	; 28
 354:	f8 94       	cli
 356:	de bf       	out	0x3e, r29	; 62
 358:	cd bf       	out	0x3d, r28	; 61
 35a:	df 91       	pop	r29
 35c:	cf 91       	pop	r28
 35e:	ff 91       	pop	r31
 360:	ef 91       	pop	r30
 362:	bf 91       	pop	r27
 364:	af 91       	pop	r26
 366:	9f 91       	pop	r25
 368:	8f 91       	pop	r24
 36a:	7f 91       	pop	r23
 36c:	6f 91       	pop	r22
 36e:	5f 91       	pop	r21
 370:	4f 91       	pop	r20
 372:	3f 91       	pop	r19
 374:	2f 91       	pop	r18
 376:	0f 90       	pop	r0
 378:	0f be       	out	0x3f, r0	; 63
 37a:	0f 90       	pop	r0
 37c:	1f 90       	pop	r1
 37e:	18 95       	reti

00000380 <main>:

}


int main(void)
{
 380:	cf ef       	ldi	r28, 0xFF	; 255
 382:	d0 e1       	ldi	r29, 0x10	; 16
 384:	de bf       	out	0x3e, r29	; 62
 386:	cd bf       	out	0x3d, r28	; 61

    ADC_INT_SE=0; 
 388:	10 92 23 01 	sts	0x0123, r1
 38c:	10 92 22 01 	sts	0x0122, r1
    USART_Init();
 390:	0e 94 65 00 	call	0xca <USART_Init>
    //上电默认DDRx=0x00,PORTx=0x00 输入,无上拉电阻
    PORTB=0xFF;							//不用的管脚使能内部上拉电阻。
 394:	8f ef       	ldi	r24, 0xFF	; 255
 396:	80 93 38 00 	sts	0x0038, r24
    PORTC=0xFF;
 39a:	8f ef       	ldi	r24, 0xFF	; 255
 39c:	80 93 35 00 	sts	0x0035, r24
    PORTD=0xFF;
 3a0:	8f ef       	ldi	r24, 0xFF	; 255
 3a2:	80 93 32 00 	sts	0x0032, r24
    PORTF=~(1<<in_Single); //作ADC输入时,不可使能内部上拉电阻。
 3a6:	8e ef       	ldi	r24, 0xFE	; 254
 3a8:	80 93 62 00 	sts	0x0062, r24
    ADMUX=0;
 3ac:	10 92 27 00 	sts	0x0027, r1
    ADCSRA=_BV(ADEN)|_BV(ADSC)|_BV(ADIE)|_BV(ADPS2)|_BV(ADPS1);			//使能ADC,时钟64分频 125KHz@8MHz system clock
 3b0:	8e ec       	ldi	r24, 0xCE	; 206
 3b2:	80 93 26 00 	sts	0x0026, r24
    sei();								//使能全局中断
 3b6:	78 94       	sei
    ADCSRA|=_BV(ADSC);
 3b8:	80 91 26 00 	lds	r24, 0x0026
 3bc:	80 64       	ori	r24, 0x40	; 64
 3be:	80 93 26 00 	sts	0x0026, r24
    
       
       
}
 3c2:	80 e0       	ldi	r24, 0x00	; 0
 3c4:	90 e0       	ldi	r25, 0x00	; 0
 3c6:	0c 94 5f 05 	jmp	0xabe <_exit>

000003ca <sprintf>:
 3ca:	0f 93       	push	r16
 3cc:	1f 93       	push	r17
 3ce:	cf 93       	push	r28
 3d0:	df 93       	push	r29
 3d2:	cd b7       	in	r28, 0x3d	; 61
 3d4:	de b7       	in	r29, 0x3e	; 62
 3d6:	2e 97       	sbiw	r28, 0x0e	; 14
 3d8:	0f b6       	in	r0, 0x3f	; 63
 3da:	f8 94       	cli
 3dc:	de bf       	out	0x3e, r29	; 62
 3de:	0f be       	out	0x3f, r0	; 63
 3e0:	cd bf       	out	0x3d, r28	; 61
 3e2:	0d 89       	ldd	r16, Y+21	; 0x15
 3e4:	1e 89       	ldd	r17, Y+22	; 0x16
 3e6:	2f 89       	ldd	r18, Y+23	; 0x17
 3e8:	38 8d       	ldd	r19, Y+24	; 0x18
 3ea:	86 e0       	ldi	r24, 0x06	; 6
 3ec:	8c 83       	std	Y+4, r24	; 0x04
 3ee:	1a 83       	std	Y+2, r17	; 0x02
 3f0:	09 83       	std	Y+1, r16	; 0x01
 3f2:	8f ef       	ldi	r24, 0xFF	; 255
 3f4:	9f e7       	ldi	r25, 0x7F	; 127
 3f6:	9e 83       	std	Y+6, r25	; 0x06
 3f8:	8d 83       	std	Y+5, r24	; 0x05
 3fa:	ae 01       	movw	r20, r28
 3fc:	47 5e       	subi	r20, 0xE7	; 231
 3fe:	5f 4f       	sbci	r21, 0xFF	; 255
 400:	b9 01       	movw	r22, r18
 402:	ce 01       	movw	r24, r28
 404:	01 96       	adiw	r24, 0x01	; 1
 406:	0e 94 15 02 	call	0x42a <vfprintf>
 40a:	ef 81       	ldd	r30, Y+7	; 0x07
 40c:	f8 85       	ldd	r31, Y+8	; 0x08
 40e:	e0 0f       	add	r30, r16
 410:	f1 1f       	adc	r31, r17
 412:	10 82       	st	Z, r1
 414:	2e 96       	adiw	r28, 0x0e	; 14
 416:	0f b6       	in	r0, 0x3f	; 63
 418:	f8 94       	cli
 41a:	de bf       	out	0x3e, r29	; 62
 41c:	0f be       	out	0x3f, r0	; 63
 41e:	cd bf       	out	0x3d, r28	; 61
 420:	df 91       	pop	r29
 422:	cf 91       	pop	r28
 424:	1f 91       	pop	r17
 426:	0f 91       	pop	r16
 428:	08 95       	ret

0000042a <vfprintf>:
 42a:	2f 92       	push	r2
 42c:	3f 92       	push	r3
 42e:	4f 92       	push	r4
 430:	5f 92       	push	r5
 432:	6f 92       	push	r6
 434:	7f 92       	push	r7
 436:	8f 92       	push	r8
 438:	9f 92       	push	r9
 43a:	af 92       	push	r10
 43c:	bf 92       	push	r11
 43e:	cf 92       	push	r12
 440:	df 92       	push	r13
 442:	ef 92       	push	r14
 444:	ff 92       	push	r15
 446:	0f 93       	push	r16
 448:	1f 93       	push	r17
 44a:	cf 93       	push	r28
 44c:	df 93       	push	r29
 44e:	cd b7       	in	r28, 0x3d	; 61
 450:	de b7       	in	r29, 0x3e	; 62
 452:	62 97       	sbiw	r28, 0x12	; 18
 454:	0f b6       	in	r0, 0x3f	; 63
 456:	f8 94       	cli
 458:	de bf       	out	0x3e, r29	; 62
 45a:	0f be       	out	0x3f, r0	; 63
 45c:	cd bf       	out	0x3d, r28	; 61
 45e:	ee 24       	eor	r14, r14
 460:	ff 24       	eor	r15, r15
 462:	87 01       	movw	r16, r14
 464:	1c 01       	movw	r2, r24
 466:	7e 87       	std	Y+14, r23	; 0x0e
 468:	6d 87       	std	Y+13, r22	; 0x0d
 46a:	2a 01       	movw	r4, r20
 46c:	cc 24       	eor	r12, r12
 46e:	dd 24       	eor	r13, r13
 470:	fc 01       	movw	r30, r24
 472:	d7 82       	std	Z+7, r13	; 0x07
 474:	c6 82       	std	Z+6, r12	; 0x06
 476:	83 81       	ldd	r24, Z+3	; 0x03
 478:	81 fd       	sbrc	r24, 1
 47a:	68 c2       	rjmp	.+1232   	; 0x94c <vfprintf+0x522>
 47c:	8f ef       	ldi	r24, 0xFF	; 255
 47e:	9f ef       	ldi	r25, 0xFF	; 255
 480:	78 c2       	rjmp	.+1264   	; 0x972 <vfprintf+0x548>
 482:	8d 85       	ldd	r24, Y+13	; 0x0d
 484:	9e 85       	ldd	r25, Y+14	; 0x0e
 486:	01 96       	adiw	r24, 0x01	; 1
 488:	9e 87       	std	Y+14, r25	; 0x0e
 48a:	8d 87       	std	Y+13, r24	; 0x0d
 48c:	c0 fe       	sbrs	r12, 0
 48e:	4b c2       	rjmp	.+1174   	; 0x926 <vfprintf+0x4fc>
 490:	8f 85       	ldd	r24, Y+15	; 0x0f
 492:	80 53       	subi	r24, 0x30	; 48
 494:	8a 30       	cpi	r24, 0x0A	; 10
 496:	d0 f4       	brcc	.+52     	; 0x4cc <vfprintf+0xa2>
 498:	9f 85       	ldd	r25, Y+15	; 0x0f
 49a:	90 33       	cpi	r25, 0x30	; 48
 49c:	39 f4       	brne	.+14     	; 0x4ac <vfprintf+0x82>
 49e:	66 20       	and	r6, r6
 4a0:	29 f4       	brne	.+10     	; 0x4ac <vfprintf+0x82>
 4a2:	c3 fc       	sbrc	r12, 3
 4a4:	03 c0       	rjmp	.+6      	; 0x4ac <vfprintf+0x82>
 4a6:	e0 e0       	ldi	r30, 0x00	; 0
 4a8:	f1 e0       	ldi	r31, 0x01	; 1
 4aa:	8d c0       	rjmp	.+282    	; 0x5c6 <vfprintf+0x19c>
 4ac:	8a e0       	ldi	r24, 0x0A	; 10
 4ae:	68 9e       	mul	r6, r24
 4b0:	60 2c       	mov	r6, r0
 4b2:	11 24       	eor	r1, r1
 4b4:	ff 85       	ldd	r31, Y+15	; 0x0f
 4b6:	6f 0e       	add	r6, r31
 4b8:	20 ed       	ldi	r18, 0xD0	; 208
 4ba:	62 0e       	add	r6, r18
 4bc:	67 fe       	sbrs	r6, 7
 4be:	02 c0       	rjmp	.+4      	; 0x4c4 <vfprintf+0x9a>
 4c0:	5f e7       	ldi	r21, 0x7F	; 127
 4c2:	65 2e       	mov	r6, r21
 4c4:	c3 fc       	sbrc	r12, 3
 4c6:	42 c2       	rjmp	.+1156   	; 0x94c <vfprintf+0x522>
 4c8:	76 2c       	mov	r7, r6
 4ca:	40 c2       	rjmp	.+1152   	; 0x94c <vfprintf+0x522>
 4cc:	c3 fe       	sbrs	r12, 3
 4ce:	04 c0       	rjmp	.+8      	; 0x4d8 <vfprintf+0xae>
 4d0:	66 20       	and	r6, r6
 4d2:	11 f4       	brne	.+4      	; 0x4d8 <vfprintf+0xae>
 4d4:	41 e0       	ldi	r20, 0x01	; 1
 4d6:	64 2e       	mov	r6, r20
 4d8:	ef 85       	ldd	r30, Y+15	; 0x0f
 4da:	8e 2f       	mov	r24, r30
 4dc:	99 27       	eor	r25, r25
 4de:	87 fd       	sbrc	r24, 7
 4e0:	90 95       	com	r25
 4e2:	88 36       	cpi	r24, 0x68	; 104
 4e4:	91 05       	cpc	r25, r1
 4e6:	8c f5       	brge	.+98     	; 0x54a <vfprintf+0x120>
 4e8:	85 36       	cpi	r24, 0x65	; 101
 4ea:	91 05       	cpc	r25, r1
 4ec:	0c f0       	brlt	.+2      	; 0x4f0 <vfprintf+0xc6>
 4ee:	6e c0       	rjmp	.+220    	; 0x5cc <vfprintf+0x1a2>
 4f0:	83 35       	cpi	r24, 0x53	; 83
 4f2:	91 05       	cpc	r25, r1
 4f4:	09 f4       	brne	.+2      	; 0x4f8 <vfprintf+0xce>
 4f6:	93 c0       	rjmp	.+294    	; 0x61e <vfprintf+0x1f4>
 4f8:	84 35       	cpi	r24, 0x54	; 84
 4fa:	91 05       	cpc	r25, r1
 4fc:	cc f4       	brge	.+50     	; 0x530 <vfprintf+0x106>
 4fe:	8b 32       	cpi	r24, 0x2B	; 43
 500:	91 05       	cpc	r25, r1
 502:	09 f4       	brne	.+2      	; 0x506 <vfprintf+0xdc>
 504:	49 c0       	rjmp	.+146    	; 0x598 <vfprintf+0x16e>
 506:	8c 32       	cpi	r24, 0x2C	; 44
 508:	91 05       	cpc	r25, r1
 50a:	4c f4       	brge	.+18     	; 0x51e <vfprintf+0xf4>
 50c:	80 32       	cpi	r24, 0x20	; 32

⌨️ 快捷键说明

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