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

📄 1602shizhong.lss

📁 时钟电路和程序
💻 LSS
📖 第 1 页 / 共 3 页
字号:
 42c:	86 30       	cpi	r24, 0x06	; 6
 42e:	41 f0       	breq	.+16     	; 0x440 <time_change+0x98>
 430:	80 91 7c 00 	lds	r24, 0x007C
 434:	89 30       	cpi	r24, 0x09	; 9
 436:	21 f0       	breq	.+8      	; 0x440 <time_change+0x98>
 438:	80 91 7c 00 	lds	r24, 0x007C
 43c:	8b 30       	cpi	r24, 0x0B	; 11
 43e:	29 f4       	brne	.+10     	; 0x44a <time_change+0xa2>
						  { if(data[3]==31) 
 440:	80 91 7b 00 	lds	r24, 0x007B
 444:	8f 31       	cpi	r24, 0x1F	; 31
 446:	09 f5       	brne	.+66     	; 0x48a <__stack+0x2b>
 448:	19 c0       	rjmp	.+50     	; 0x47c <__stack+0x1d>
						     {data[4]++;data[3]=0;}
                          }
                    else if(data[4]==2) 
 44a:	80 91 7c 00 	lds	r24, 0x007C
 44e:	82 30       	cpi	r24, 0x02	; 2
 450:	89 f4       	brne	.+34     	; 0x474 <__stack+0x15>
						 { if(data[5]%4==0)
 452:	80 91 7d 00 	lds	r24, 0x007D
 456:	90 e0       	ldi	r25, 0x00	; 0
 458:	83 70       	andi	r24, 0x03	; 3
 45a:	90 70       	andi	r25, 0x00	; 0
 45c:	89 2b       	or	r24, r25
 45e:	29 f4       	brne	.+10     	; 0x46a <__stack+0xb>
						     { if(data[3]==30)
 460:	80 91 7b 00 	lds	r24, 0x007B
 464:	8e 31       	cpi	r24, 0x1E	; 30
 466:	89 f4       	brne	.+34     	; 0x48a <__stack+0x2b>
 468:	09 c0       	rjmp	.+18     	; 0x47c <__stack+0x1d>
							     {data[4]++;data[3]=0;}
							  }
                           else if(data[3]==29)
 46a:	80 91 7b 00 	lds	r24, 0x007B
 46e:	8d 31       	cpi	r24, 0x1D	; 29
 470:	61 f4       	brne	.+24     	; 0x48a <__stack+0x2b>
 472:	04 c0       	rjmp	.+8      	; 0x47c <__stack+0x1d>
							    { data[4]++;data[3]=0;}
                         }
                    else  if(data[3]==32)
 474:	80 91 7b 00 	lds	r24, 0x007B
 478:	80 32       	cpi	r24, 0x20	; 32
 47a:	39 f4       	brne	.+14     	; 0x48a <__stack+0x2b>
							    { data[4]++;data[3]=0;}
 47c:	80 91 7c 00 	lds	r24, 0x007C
 480:	8f 5f       	subi	r24, 0xFF	; 255
 482:	80 93 7c 00 	sts	0x007C, r24
 486:	10 92 7b 00 	sts	0x007B, r1

						  
			     	 if(data[4]==12)  { data[5]++;data[4]=0; }
 48a:	80 91 7c 00 	lds	r24, 0x007C
 48e:	8c 30       	cpi	r24, 0x0C	; 12
 490:	39 f4       	brne	.+14     	; 0x4a0 <__stack+0x41>
 492:	80 91 7d 00 	lds	r24, 0x007D
 496:	8f 5f       	subi	r24, 0xFF	; 255
 498:	80 93 7d 00 	sts	0x007D, r24
 49c:	10 92 7c 00 	sts	0x007C, r1
 4a0:	08 95       	ret

000004a2 <set_time>:
	     }
   
 }

void set_time(void)
{  //很笨的方法
 4a2:	8c e0       	ldi	r24, 0x0C	; 12
 4a4:	87 bb       	out	0x17, r24	; 23
        int t=0,i;
		//*set=data[7];
		DDRB=0X0C;
        PORTB=(1<<PB2);
 4a6:	84 e0       	ldi	r24, 0x04	; 4
 4a8:	88 bb       	out	0x18, r24	; 24
 4aa:	20 e0       	ldi	r18, 0x00	; 0
 4ac:	30 e0       	ldi	r19, 0x00	; 0
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
 4ae:	69 e1       	ldi	r22, 0x19	; 25
 4b0:	70 e0       	ldi	r23, 0x00	; 0
			        if(data[t]==24) data[t]=0;
              }
			
			}
		}  t++; 
		   PORTB=(1<<PB3);
 4b2:	40 ed       	ldi	r20, 0xD0	; 208
 4b4:	57 e0       	ldi	r21, 0x07	; 7
 4b6:	a8 e0       	ldi	r26, 0x08	; 8
		//*set=data[7];
		DDRB=0X0C;
        PORTB=(1<<PB2);
	for(i=0;i<2;i++)		
	{
		if(PINB&0X10)
 4b8:	b4 9b       	sbis	0x16, 4	; 22
 4ba:	14 c0       	rjmp	.+40     	; 0x4e4 <set_time+0x42>
 4bc:	cb 01       	movw	r24, r22
 4be:	01 97       	sbiw	r24, 0x01	; 1
 4c0:	f1 f7       	brne	.-4      	; 0x4be <set_time+0x1c>
		{
			_delay_ms(10);
			if(PINB&0x10)
 4c2:	b4 9b       	sbis	0x16, 4	; 22
 4c4:	0f c0       	rjmp	.+30     	; 0x4e4 <set_time+0x42>
 4c6:	ca 01       	movw	r24, r20
 4c8:	01 97       	sbiw	r24, 0x01	; 1
 4ca:	f1 f7       	brne	.-4      	; 0x4c8 <set_time+0x26>
			{   _delay_ms(800); 
			    if(!(PINB&0X10))
 4cc:	b4 99       	sbic	0x16, 4	; 22
 4ce:	0a c0       	rjmp	.+20     	; 0x4e4 <set_time+0x42>
              {     data[t]++;
 4d0:	f9 01       	movw	r30, r18
 4d2:	e8 58       	subi	r30, 0x88	; 136
 4d4:	ff 4f       	sbci	r31, 0xFF	; 255
 4d6:	80 81       	ld	r24, Z
 4d8:	8f 5f       	subi	r24, 0xFF	; 255
 4da:	80 83       	st	Z, r24
			        if(data[t]==60) data[t]=0;
 4dc:	80 81       	ld	r24, Z
 4de:	8c 33       	cpi	r24, 0x3C	; 60
 4e0:	09 f4       	brne	.+2      	; 0x4e4 <set_time+0x42>
 4e2:	10 82       	st	Z, r1
	     }
   
 }

void set_time(void)
{  //很笨的方法
 4e4:	c9 01       	movw	r24, r18
 4e6:	01 96       	adiw	r24, 0x01	; 1
			        if(data[t]==60) data[t]=0;
              }
			
			}
		}  t++;
		if(PINB&0X20)
 4e8:	b5 9b       	sbis	0x16, 5	; 22
 4ea:	14 c0       	rjmp	.+40     	; 0x514 <set_time+0x72>
 4ec:	fb 01       	movw	r30, r22
 4ee:	31 97       	sbiw	r30, 0x01	; 1
 4f0:	f1 f7       	brne	.-4      	; 0x4ee <set_time+0x4c>
		{
			_delay_ms(10);
			if(PINB&0x20)
 4f2:	b5 9b       	sbis	0x16, 5	; 22
 4f4:	0f c0       	rjmp	.+30     	; 0x514 <set_time+0x72>
 4f6:	fa 01       	movw	r30, r20
 4f8:	31 97       	sbiw	r30, 0x01	; 1
 4fa:	f1 f7       	brne	.-4      	; 0x4f8 <set_time+0x56>
			{   _delay_ms(800); 
			    if(!(PINB&0X20))
 4fc:	b5 99       	sbic	0x16, 5	; 22
 4fe:	0a c0       	rjmp	.+20     	; 0x514 <set_time+0x72>
              {     data[t]++;
 500:	fc 01       	movw	r30, r24
 502:	e8 58       	subi	r30, 0x88	; 136
 504:	ff 4f       	sbci	r31, 0xFF	; 255
 506:	80 81       	ld	r24, Z
 508:	8f 5f       	subi	r24, 0xFF	; 255
 50a:	80 83       	st	Z, r24
			        if(data[t]==60) data[t]=0;
 50c:	80 81       	ld	r24, Z
 50e:	8c 33       	cpi	r24, 0x3C	; 60
 510:	09 f4       	brne	.+2      	; 0x514 <set_time+0x72>
 512:	10 82       	st	Z, r1
 514:	c9 01       	movw	r24, r18
 516:	02 96       	adiw	r24, 0x02	; 2
              }
			
			}
		}  t++;
		if(PINB&0X40)
 518:	b6 9b       	sbis	0x16, 6	; 22
 51a:	14 c0       	rjmp	.+40     	; 0x544 <set_time+0xa2>
 51c:	fb 01       	movw	r30, r22
 51e:	31 97       	sbiw	r30, 0x01	; 1
 520:	f1 f7       	brne	.-4      	; 0x51e <set_time+0x7c>
		{
			_delay_ms(10);
			if(PINB&0x40)
 522:	b6 9b       	sbis	0x16, 6	; 22
 524:	0f c0       	rjmp	.+30     	; 0x544 <set_time+0xa2>
 526:	fa 01       	movw	r30, r20
 528:	31 97       	sbiw	r30, 0x01	; 1
 52a:	f1 f7       	brne	.-4      	; 0x528 <set_time+0x86>
			{   _delay_ms(800); 
			    if(!(PINB&0X40))
 52c:	b6 99       	sbic	0x16, 6	; 22
 52e:	0a c0       	rjmp	.+20     	; 0x544 <set_time+0xa2>
              {     data[t]++;
 530:	fc 01       	movw	r30, r24
 532:	e8 58       	subi	r30, 0x88	; 136
 534:	ff 4f       	sbci	r31, 0xFF	; 255
 536:	80 81       	ld	r24, Z
 538:	8f 5f       	subi	r24, 0xFF	; 255
 53a:	80 83       	st	Z, r24
			        if(data[t]==24) data[t]=0;
 53c:	80 81       	ld	r24, Z
 53e:	88 31       	cpi	r24, 0x18	; 24
 540:	09 f4       	brne	.+2      	; 0x544 <set_time+0xa2>
 542:	10 82       	st	Z, r1
              }
			
			}
		}  t++; 
		   PORTB=(1<<PB3);
 544:	a8 bb       	out	0x18, r26	; 24
{  //很笨的方法
        int t=0,i;
		//*set=data[7];
		DDRB=0X0C;
        PORTB=(1<<PB2);
	for(i=0;i<2;i++)		
 546:	23 30       	cpi	r18, 0x03	; 3
 548:	31 05       	cpc	r19, r1
 54a:	19 f0       	breq	.+6      	; 0x552 <set_time+0xb0>
 54c:	2d 5f       	subi	r18, 0xFD	; 253
 54e:	3f 4f       	sbci	r19, 0xFF	; 255
 550:	b3 cf       	rjmp	.-154    	; 0x4b8 <set_time+0x16>
 552:	08 95       	ret

00000554 <__vector_8>:


	  

SIGNAL(SIG_OVERFLOW1)  //溢出中断
  {
 554:	1f 92       	push	r1
 556:	0f 92       	push	r0
 558:	0f b6       	in	r0, 0x3f	; 63
 55a:	0f 92       	push	r0
 55c:	11 24       	eor	r1, r1
 55e:	8f 93       	push	r24
  
  		TCNT1H=0x3c;   // 重装载
 560:	8c e3       	ldi	r24, 0x3C	; 60
 562:	8d bd       	out	0x2d, r24	; 45
		TCNT1L=0xb0;
 564:	80 eb       	ldi	r24, 0xB0	; 176
 566:	8c bd       	out	0x2c, r24	; 44
	    j++;
 568:	80 91 80 00 	lds	r24, 0x0080
 56c:	8f 5f       	subi	r24, 0xFF	; 255
 56e:	80 93 80 00 	sts	0x0080, r24
	
  }
 572:	8f 91       	pop	r24
 574:	0f 90       	pop	r0
 576:	0f be       	out	0x3f, r0	; 63
 578:	0f 90       	pop	r0
 57a:	1f 90       	pop	r1
 57c:	18 95       	reti

0000057e <initialize_timer>:

  			 
 void initialize_timer(void)  //设置中断类型,并开中断
  {     
 57e:	8c e3       	ldi	r24, 0x3C	; 60
 580:	8d bd       	out	0x2d, r24	; 45
       
		
  		TCNT1H=0x3c;
		TCNT1L=0xb0;
 582:	80 eb       	ldi	r24, 0xB0	; 176
 584:	8c bd       	out	0x2c, r24	; 44
	//	TCCR1A=0x00; 
		TCCR1B=0X01;
 586:	81 e0       	ldi	r24, 0x01	; 1
 588:	8e bd       	out	0x2e, r24	; 46
		TIMSK=0X04;
 58a:	84 e0       	ldi	r24, 0x04	; 4
 58c:	89 bf       	out	0x39, r24	; 57
		sei();
 58e:	78 94       	sei
  }
 590:	08 95       	ret

00000592 <main>:
  TIMSK = 0x00; //timer interrupt sources
  SEI(); //re-enable interrupts
}========*/

int main(void)
{
 592:	cf 92       	push	r12
 594:	ef 92       	push	r14
 596:	0f 93       	push	r16
  			 
 void initialize_timer(void)  //设置中断类型,并开中断
  {     
       
		
  		TCNT1H=0x3c;
 598:	8c e3       	ldi	r24, 0x3C	; 60
 59a:	8d bd       	out	0x2d, r24	; 45
		TCNT1L=0xb0;
 59c:	80 eb       	ldi	r24, 0xB0	; 176
 59e:	8c bd       	out	0x2c, r24	; 44
	//	TCCR1A=0x00; 
		TCCR1B=0X01;
 5a0:	81 e0       	ldi	r24, 0x01	; 1
 5a2:	8e bd       	out	0x2e, r24	; 46
		TIMSK=0X04;
 5a4:	84 e0       	ldi	r24, 0x04	; 4
 5a6:	89 bf       	out	0x39, r24	; 57
		sei();
 5a8:	78 94       	sei
int main(void)
{
  // init_devices();
  
  initialize_timer();
  LCD_init();
 5aa:	0e 94 6e 00 	call	0xdc	; 0xdc <LCD_init>
   for(;;)
  {  
   LCD_time(data[2],data[1],data[0],data[3],data[4],data[5],data[6]); 
 5ae:	c0 90 7e 00 	lds	r12, 0x007E
 5b2:	e0 90 7d 00 	lds	r14, 0x007D
 5b6:	00 91 7c 00 	lds	r16, 0x007C
 5ba:	20 91 7b 00 	lds	r18, 0x007B
 5be:	40 91 78 00 	lds	r20, 0x0078
 5c2:	60 91 79 00 	lds	r22, 0x0079
 5c6:	80 91 7a 00 	lds	r24, 0x007A
 5ca:	0e 94 cb 00 	call	0x196	; 0x196 <LCD_time>
   time_change();
 5ce:	0e 94 d4 01 	call	0x3a8	; 0x3a8 <time_change>
   set_time();
 5d2:	0e 94 51 02 	call	0x4a2	; 0x4a2 <set_time>
 5d6:	eb cf       	rjmp	.-42     	; 0x5ae <main+0x1c>

000005d8 <__udivmodqi4>:
 5d8:	99 1b       	sub	r25, r25
 5da:	79 e0       	ldi	r23, 0x09	; 9
 5dc:	04 c0       	rjmp	.+8      	; 0x5e6 <__udivmodqi4_ep>

000005de <__udivmodqi4_loop>:
 5de:	99 1f       	adc	r25, r25
 5e0:	96 17       	cp	r25, r22
 5e2:	08 f0       	brcs	.+2      	; 0x5e6 <__udivmodqi4_ep>
 5e4:	96 1b       	sub	r25, r22

000005e6 <__udivmodqi4_ep>:
 5e6:	88 1f       	adc	r24, r24
 5e8:	7a 95       	dec	r23
 5ea:	c9 f7       	brne	.-14     	; 0x5de <__udivmodqi4_loop>
 5ec:	80 95       	com	r24
 5ee:	08 95       	ret

000005f0 <_exit>:
 5f0:	f8 94       	cli

000005f2 <__stop_program>:
 5f2:	ff cf       	rjmp	.-2      	; 0x5f2 <__stop_program>

⌨️ 快捷键说明

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