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

📄 pran.lss

📁 asm file for download
💻 LSS
📖 第 1 页 / 共 2 页
字号:
	if(ontime != 0)   {
 254:	80 91 6e 00 	lds	r24, 0x006E
 258:	90 91 6f 00 	lds	r25, 0x006F
 25c:	89 2b       	or	r24, r25
 25e:	51 f0       	breq	.+20     	; 0x274
	      PORTD = 0x0;	//switch off the buzzer	
 260:	12 ba       	out	0x12, r1	; 18
	      offtime++;
 262:	80 91 60 00 	lds	r24, 0x0060
 266:	90 91 61 00 	lds	r25, 0x0061
 26a:	01 96       	adiw	r24, 0x01	; 1
 26c:	90 93 61 00 	sts	0x0061, r25
 270:	80 93 60 00 	sts	0x0060, r24
	}		
	
	if(timer_count == 120)   {
 274:	28 37       	cpi	r18, 0x78	; 120
 276:	31 05       	cpc	r19, r1
 278:	19 f5       	brne	.+70     	; 0x2c0
		count--;
 27a:	80 91 66 00 	lds	r24, 0x0066
 27e:	90 91 67 00 	lds	r25, 0x0067
 282:	01 97       	sbiw	r24, 0x01	; 1
 284:	90 93 67 00 	sts	0x0067, r25
 288:	80 93 66 00 	sts	0x0066, r24
		if(count == 0)   {
 28c:	00 97       	sbiw	r24, 0x00	; 0
 28e:	79 f4       	brne	.+30     	; 0x2ae
		   decode_count(count);
 290:	a9 d0       	rcall	.+338    	; 0x3e4
			PORTD = 0x10;
 292:	80 e1       	ldi	r24, 0x10	; 16
 294:	82 bb       	out	0x12, r24	; 18
		   for(i=0 ; i<200 ; i++)
 296:	27 ec       	ldi	r18, 0xC7	; 199
 298:	30 e0       	ldi	r19, 0x00	; 0
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
 29a:	80 e3       	ldi	r24, 0x30	; 48
 29c:	95 e7       	ldi	r25, 0x75	; 117
	__asm__ volatile (
 29e:	01 97       	sbiw	r24, 0x01	; 1
 2a0:	f1 f7       	brne	.-4      	; 0x29e
 2a2:	21 50       	subi	r18, 0x01	; 1
 2a4:	30 40       	sbci	r19, 0x00	; 0
 2a6:	37 ff       	sbrs	r19, 7
 2a8:	f8 cf       	rjmp	.-16     	; 0x29a
			_delay_loop_2(30000);
			for(;;)
			   PORTD = 0x0;
 2aa:	12 ba       	out	0x12, r1	; 18
 2ac:	fe cf       	rjmp	.-4      	; 0x2aa
		}
		decode_count(count);
 2ae:	80 91 66 00 	lds	r24, 0x0066
 2b2:	90 91 67 00 	lds	r25, 0x0067
 2b6:	96 d0       	rcall	.+300    	; 0x3e4
		timer_count = 0;
 2b8:	10 92 69 00 	sts	0x0069, r1
 2bc:	10 92 68 00 	sts	0x0068, r1
	}
	
	OCR1A = 0x1e84;
 2c0:	84 e8       	ldi	r24, 0x84	; 132
 2c2:	9e e1       	ldi	r25, 0x1E	; 30
 2c4:	9b bd       	out	0x2b, r25	; 43
 2c6:	8a bd       	out	0x2a, r24	; 42
	TCNT1 = 0xe17c;
 2c8:	8c e7       	ldi	r24, 0x7C	; 124
 2ca:	91 ee       	ldi	r25, 0xE1	; 225
 2cc:	9d bd       	out	0x2d, r25	; 45
 2ce:	8c bd       	out	0x2c, r24	; 44
	TCCR1B = 0x04;
 2d0:	84 e0       	ldi	r24, 0x04	; 4
 2d2:	8e bd       	out	0x2e, r24	; 46
	TIMSK = 0x14;	
 2d4:	84 e1       	ldi	r24, 0x14	; 20
 2d6:	89 bf       	out	0x39, r24	; 57
}
 2d8:	ff 91       	pop	r31
 2da:	ef 91       	pop	r30
 2dc:	bf 91       	pop	r27
 2de:	af 91       	pop	r26
 2e0:	9f 91       	pop	r25
 2e2:	8f 91       	pop	r24
 2e4:	7f 91       	pop	r23
 2e6:	6f 91       	pop	r22
 2e8:	5f 91       	pop	r21
 2ea:	4f 91       	pop	r20
 2ec:	3f 91       	pop	r19
 2ee:	2f 91       	pop	r18
 2f0:	0f 90       	pop	r0
 2f2:	0f be       	out	0x3f, r0	; 63
 2f4:	0f 90       	pop	r0
 2f6:	1f 90       	pop	r1
 2f8:	18 95       	reti

000002fa <__vector_8>:

ISR(SIG_OVERFLOW1)
{
 2fa:	1f 92       	push	r1
 2fc:	0f 92       	push	r0
 2fe:	0f b6       	in	r0, 0x3f	; 63
 300:	0f 92       	push	r0
 302:	11 24       	eor	r1, r1
 304:	2f 93       	push	r18
 306:	3f 93       	push	r19
 308:	5f 93       	push	r21
 30a:	6f 93       	push	r22
 30c:	7f 93       	push	r23
 30e:	8f 93       	push	r24
 310:	9f 93       	push	r25
 312:	af 93       	push	r26
 314:	bf 93       	push	r27
   if(offtime % offtimetemp == 0)   {
 316:	80 91 60 00 	lds	r24, 0x0060
 31a:	90 91 61 00 	lds	r25, 0x0061
 31e:	20 91 62 00 	lds	r18, 0x0062
 322:	30 91 63 00 	lds	r19, 0x0063
 326:	b9 01       	movw	r22, r18
 328:	91 d0       	rcall	.+290    	; 0x44c
 32a:	89 2b       	or	r24, r25
 32c:	59 f4       	brne	.+22     	; 0x344
	   PORTD = 0x10;	//switch on the buzzer	
 32e:	80 e1       	ldi	r24, 0x10	; 16
 330:	82 bb       	out	0x12, r24	; 18
	   ontime++;
 332:	80 91 6e 00 	lds	r24, 0x006E
 336:	90 91 6f 00 	lds	r25, 0x006F
 33a:	01 96       	adiw	r24, 0x01	; 1
 33c:	90 93 6f 00 	sts	0x006F, r25
 340:	80 93 6e 00 	sts	0x006E, r24
   }
}
 344:	bf 91       	pop	r27
 346:	af 91       	pop	r26
 348:	9f 91       	pop	r25
 34a:	8f 91       	pop	r24
 34c:	7f 91       	pop	r23
 34e:	6f 91       	pop	r22
 350:	5f 91       	pop	r21
 352:	3f 91       	pop	r19
 354:	2f 91       	pop	r18
 356:	0f 90       	pop	r0
 358:	0f be       	out	0x3f, r0	; 63
 35a:	0f 90       	pop	r0
 35c:	1f 90       	pop	r1
 35e:	18 95       	reti

00000360 <send_data_to_decoder_high>:

uint8_t send_data_to_decoder_high(int digit)
{
	uint8_t pass = 0x00;
 360:	20 e0       	ldi	r18, 0x00	; 0
	
	switch(digit)
 362:	aa 27       	eor	r26, r26
 364:	97 fd       	sbrc	r25, 7
 366:	a0 95       	com	r26
 368:	ba 2f       	mov	r27, r26
 36a:	fc 01       	movw	r30, r24
 36c:	0a 97       	sbiw	r24, 0x0a	; 10
 36e:	b0 f4       	brcc	.+44     	; 0x39c
 370:	eb 5e       	subi	r30, 0xEB	; 235
 372:	ff 4f       	sbci	r31, 0xFF	; 255
 374:	09 94       	ijmp
	{
		case 0:	pass = 0x00;
 376:	20 e0       	ldi	r18, 0x00	; 0
			break;
 378:	11 c0       	rjmp	.+34     	; 0x39c
			
		case 1:	pass = 0x10;
 37a:	20 e1       	ldi	r18, 0x10	; 16
			break;
 37c:	0f c0       	rjmp	.+30     	; 0x39c
			
		case 2:	pass = 0x20;
 37e:	20 e2       	ldi	r18, 0x20	; 32
			break;
 380:	0d c0       	rjmp	.+26     	; 0x39c
			
		case 3:	pass = 0x30;
 382:	20 e3       	ldi	r18, 0x30	; 48
			break;
 384:	0b c0       	rjmp	.+22     	; 0x39c
				
		case 4:	pass = 0x40;
 386:	20 e4       	ldi	r18, 0x40	; 64
			break;
 388:	09 c0       	rjmp	.+18     	; 0x39c
		
		case 5:	pass = 0x50;
 38a:	20 e5       	ldi	r18, 0x50	; 80
			break;
 38c:	07 c0       	rjmp	.+14     	; 0x39c
			
		case 6:	pass = 0x60;
 38e:	20 e6       	ldi	r18, 0x60	; 96
			break;
 390:	05 c0       	rjmp	.+10     	; 0x39c
			
		case 7:	pass = 0x70;
 392:	20 e7       	ldi	r18, 0x70	; 112
			break;
 394:	03 c0       	rjmp	.+6      	; 0x39c
			
		case 8:	pass = 0x80;
 396:	20 e8       	ldi	r18, 0x80	; 128
			break;
 398:	01 c0       	rjmp	.+2      	; 0x39c
			
		case 9:	pass = 0x90;
 39a:	20 e9       	ldi	r18, 0x90	; 144
			break;			
	}
	return pass;
 39c:	82 2f       	mov	r24, r18
 39e:	99 27       	eor	r25, r25
}
 3a0:	08 95       	ret

000003a2 <send_data_to_decoder_low>:

uint8_t send_data_to_decoder_low(int digit)
{
	uint8_t pass = 0x00;
 3a2:	20 e0       	ldi	r18, 0x00	; 0
	
	switch(digit)
 3a4:	aa 27       	eor	r26, r26
 3a6:	97 fd       	sbrc	r25, 7
 3a8:	a0 95       	com	r26
 3aa:	ba 2f       	mov	r27, r26
 3ac:	fc 01       	movw	r30, r24
 3ae:	0a 97       	sbiw	r24, 0x0a	; 10
 3b0:	b0 f4       	brcc	.+44     	; 0x3de
 3b2:	e1 5e       	subi	r30, 0xE1	; 225
 3b4:	ff 4f       	sbci	r31, 0xFF	; 255
 3b6:	09 94       	ijmp
	{
		case 0:	pass = 0x00;
 3b8:	20 e0       	ldi	r18, 0x00	; 0
			break;
 3ba:	11 c0       	rjmp	.+34     	; 0x3de
			
		case 1:	pass = 0x01;
 3bc:	21 e0       	ldi	r18, 0x01	; 1
			break;
 3be:	0f c0       	rjmp	.+30     	; 0x3de
			
		case 2:	pass = 0x02;
 3c0:	22 e0       	ldi	r18, 0x02	; 2
			break;
 3c2:	0d c0       	rjmp	.+26     	; 0x3de
			
		case 3:	pass = 0x03;
 3c4:	23 e0       	ldi	r18, 0x03	; 3
			break;
 3c6:	0b c0       	rjmp	.+22     	; 0x3de
				
		case 4:	pass = 0x04;
 3c8:	24 e0       	ldi	r18, 0x04	; 4
			break;
 3ca:	09 c0       	rjmp	.+18     	; 0x3de
		
		case 5:	pass = 0x05;
 3cc:	25 e0       	ldi	r18, 0x05	; 5
			break;
 3ce:	07 c0       	rjmp	.+14     	; 0x3de
			
		case 6:	pass = 0x06;
 3d0:	26 e0       	ldi	r18, 0x06	; 6
			break;
 3d2:	05 c0       	rjmp	.+10     	; 0x3de
			
		case 7:	pass = 0x07;
 3d4:	27 e0       	ldi	r18, 0x07	; 7
			break;
 3d6:	03 c0       	rjmp	.+6      	; 0x3de
			
		case 8:	pass = 0x08;
 3d8:	28 e0       	ldi	r18, 0x08	; 8
			break;
 3da:	01 c0       	rjmp	.+2      	; 0x3de
			
		case 9:	pass = 0x09;
 3dc:	29 e0       	ldi	r18, 0x09	; 9
			break;			
	}
	return pass;
 3de:	82 2f       	mov	r24, r18
 3e0:	99 27       	eor	r25, r25
}
 3e2:	08 95       	ret

000003e4 <decode_count>:

void decode_count(int county)
{
	PORTC = send_data_to_decoder_high(county);	
 3e4:	bd df       	rcall	.-134    	; 0x360
 3e6:	85 bb       	out	0x15, r24	; 21
}
 3e8:	08 95       	ret

000003ea <decode_buzzer_count>:

void decode_buzzer_count(int county)
{
 3ea:	ef 92       	push	r14
 3ec:	ff 92       	push	r15
 3ee:	0f 93       	push	r16
 3f0:	1f 93       	push	r17
 3f2:	7c 01       	movw	r14, r24
	int digit1,digit2;
	
	digit2 = county/10;
 3f4:	6a e0       	ldi	r22, 0x0A	; 10
 3f6:	70 e0       	ldi	r23, 0x00	; 0
 3f8:	29 d0       	rcall	.+82     	; 0x44c
 3fa:	8b 01       	movw	r16, r22
	PORTB = send_data_to_decoder_low(digit2);
 3fc:	cb 01       	movw	r24, r22
 3fe:	d1 df       	rcall	.-94     	; 0x3a2
 400:	88 bb       	out	0x18, r24	; 24
	
	digit1 = (county - digit2 * 10); 
 402:	c8 01       	movw	r24, r16
 404:	23 e0       	ldi	r18, 0x03	; 3
 406:	88 0f       	add	r24, r24
 408:	99 1f       	adc	r25, r25
 40a:	2a 95       	dec	r18
 40c:	e1 f7       	brne	.-8      	; 0x406
 40e:	80 0f       	add	r24, r16
 410:	91 1f       	adc	r25, r17
 412:	80 0f       	add	r24, r16
 414:	91 1f       	adc	r25, r17
 416:	e8 1a       	sub	r14, r24
 418:	f9 0a       	sbc	r15, r25
	PORTB |= send_data_to_decoder_high(digit1);
 41a:	c7 01       	movw	r24, r14
 41c:	a1 df       	rcall	.-190    	; 0x360
 41e:	98 2f       	mov	r25, r24
 420:	88 b3       	in	r24, 0x18	; 24
 422:	89 2b       	or	r24, r25
 424:	88 bb       	out	0x18, r24	; 24
}
 426:	1f 91       	pop	r17
 428:	0f 91       	pop	r16
 42a:	ff 90       	pop	r15
 42c:	ef 90       	pop	r14
 42e:	08 95       	ret

00000430 <main>:


int main(void)
{
 430:	cf e5       	ldi	r28, 0x5F	; 95
 432:	d2 e0       	ldi	r29, 0x02	; 2
 434:	de bf       	out	0x3e, r29	; 62
 436:	cd bf       	out	0x3d, r28	; 61
	io_init();
 438:	28 de       	rcall	.-944    	; 0x8a
	extint_init();	
 43a:	32 de       	rcall	.-924    	; 0xa0
	
	sei();	
 43c:	78 94       	sei
	
	decode_buzzer_count(10);
 43e:	8a e0       	ldi	r24, 0x0A	; 10
 440:	90 e0       	ldi	r25, 0x00	; 0
 442:	d3 df       	rcall	.-90     	; 0x3ea
	decode_count(0);
 444:	80 e0       	ldi	r24, 0x00	; 0
 446:	90 e0       	ldi	r25, 0x00	; 0
 448:	cd df       	rcall	.-102    	; 0x3e4
	
	while(1){}
 44a:	ff cf       	rjmp	.-2      	; 0x44a

0000044c <__divmodhi4>:
	
	return 0;
}
 44c:	97 fb       	bst	r25, 7
 44e:	09 2e       	mov	r0, r25
 450:	07 26       	eor	r0, r23
 452:	0a d0       	rcall	.+20     	; 0x468
 454:	77 fd       	sbrc	r23, 7
 456:	04 d0       	rcall	.+8      	; 0x460
 458:	0c d0       	rcall	.+24     	; 0x472
 45a:	06 d0       	rcall	.+12     	; 0x468
 45c:	00 20       	and	r0, r0
 45e:	1a f4       	brpl	.+6      	; 0x466

00000460 <__divmodhi4_neg2>:
 460:	70 95       	com	r23
 462:	61 95       	neg	r22
 464:	7f 4f       	sbci	r23, 0xFF	; 255

00000466 <__divmodhi4_exit>:
 466:	08 95       	ret

00000468 <__divmodhi4_neg1>:
 468:	f6 f7       	brtc	.-4      	; 0x466
 46a:	90 95       	com	r25
 46c:	81 95       	neg	r24
 46e:	9f 4f       	sbci	r25, 0xFF	; 255
 470:	08 95       	ret

00000472 <__udivmodhi4>:
 472:	aa 1b       	sub	r26, r26
 474:	bb 1b       	sub	r27, r27
 476:	51 e1       	ldi	r21, 0x11	; 17
 478:	07 c0       	rjmp	.+14     	; 0x488

0000047a <__udivmodhi4_loop>:
 47a:	aa 1f       	adc	r26, r26
 47c:	bb 1f       	adc	r27, r27
 47e:	a6 17       	cp	r26, r22
 480:	b7 07       	cpc	r27, r23
 482:	10 f0       	brcs	.+4      	; 0x488
 484:	a6 1b       	sub	r26, r22
 486:	b7 0b       	sbc	r27, r23

00000488 <__udivmodhi4_ep>:
 488:	88 1f       	adc	r24, r24
 48a:	99 1f       	adc	r25, r25
 48c:	5a 95       	dec	r21
 48e:	a9 f7       	brne	.-22     	; 0x47a
 490:	80 95       	com	r24
 492:	90 95       	com	r25
 494:	bc 01       	movw	r22, r24
 496:	cd 01       	movw	r24, r26
 498:	08 95       	ret

0000049a <_exit>:
 49a:	ff cf       	rjmp	.-2      	; 0x49a

⌨️ 快捷键说明

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