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

📄 main.lss

📁 M8+1302+18b20+8位数码管的sch和gcc源程序 数码管显示
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     5a6:	80 93 61 00 	sts	0x0061, r24
	display_buffer[2]=0;//空
     5aa:	80 93 62 00 	sts	0x0062, r24
	display_buffer[3]=0;//空
     5ae:	80 93 63 00 	sts	0x0063, r24
	display_buffer[4]=0x5b;//2
     5b2:	8b e5       	ldi	r24, 0x5B	; 91
     5b4:	80 93 64 00 	sts	0x0064, r24
	display_buffer[5]=0x3f;//0
     5b8:	8f e3       	ldi	r24, 0x3F	; 63
     5ba:	80 93 65 00 	sts	0x0065, r24
	//年
	temp=(year&0xf0)>>4;
     5be:	20 91 81 00 	lds	r18, 0x0081
     5c2:	82 2f       	mov	r24, r18
     5c4:	99 27       	eor	r25, r25
     5c6:	e4 e0       	ldi	r30, 0x04	; 4
     5c8:	96 95       	lsr	r25
     5ca:	87 95       	ror	r24
     5cc:	ea 95       	dec	r30
     5ce:	e1 f7       	brne	.-8      	; 0x5c8 <display_year+0x28>
	display_buffer[6]=pgm_read_byte(display_code+temp);
     5d0:	e8 2f       	mov	r30, r24
     5d2:	ff 27       	eor	r31, r31
     5d4:	ea 5d       	subi	r30, 0xDA	; 218
     5d6:	ff 4f       	sbci	r31, 0xFF	; 255
     5d8:	84 91       	lpm	r24, Z
     5da:	80 93 66 00 	sts	0x0066, r24
	temp=year&0x0f;
     5de:	2f 70       	andi	r18, 0x0F	; 15
	display_buffer[7]=pgm_read_byte(display_code+temp);
     5e0:	e2 2f       	mov	r30, r18
     5e2:	ff 27       	eor	r31, r31
     5e4:	ea 5d       	subi	r30, 0xDA	; 218
     5e6:	ff 4f       	sbci	r31, 0xFF	; 255
     5e8:	84 91       	lpm	r24, Z
     5ea:	80 93 67 00 	sts	0x0067, r24
     5ee:	08 95       	ret

000005f0 <display_timer>:
}
void display_timer(uchar number,uchar timer_hour,uchar timer_minute)
{
     5f0:	26 2f       	mov	r18, r22
     5f2:	34 2f       	mov	r19, r20
	uchar temp=0;
     5f4:	90 e0       	ldi	r25, 0x00	; 0
	display_buffer[0]=pgm_read_byte(display_code+number);
     5f6:	e8 2f       	mov	r30, r24
     5f8:	ff 27       	eor	r31, r31
     5fa:	ea 5d       	subi	r30, 0xDA	; 218
     5fc:	ff 4f       	sbci	r31, 0xFF	; 255
     5fe:	84 91       	lpm	r24, Z
     600:	80 93 60 00 	sts	0x0060, r24
	display_buffer[1]=0x00;//空
     604:	90 93 61 00 	sts	0x0061, r25
	display_buffer[2]=0x00;//空
     608:	90 93 62 00 	sts	0x0062, r25
	//hour
	temp=(timer_hour&0xf0)>>4;
     60c:	86 2f       	mov	r24, r22
     60e:	99 27       	eor	r25, r25
     610:	a4 e0       	ldi	r26, 0x04	; 4
     612:	96 95       	lsr	r25
     614:	87 95       	ror	r24
     616:	aa 95       	dec	r26
     618:	e1 f7       	brne	.-8      	; 0x612 <display_timer+0x22>
	display_buffer[3]=pgm_read_byte(display_code+temp);
     61a:	e8 2f       	mov	r30, r24
     61c:	ff 27       	eor	r31, r31
     61e:	ea 5d       	subi	r30, 0xDA	; 218
     620:	ff 4f       	sbci	r31, 0xFF	; 255
     622:	84 91       	lpm	r24, Z
     624:	80 93 63 00 	sts	0x0063, r24
	temp=timer_hour&0x0f;
     628:	2f 70       	andi	r18, 0x0F	; 15
	display_buffer[4]=pgm_read_byte(display_code+temp);
     62a:	e2 2f       	mov	r30, r18
     62c:	ff 27       	eor	r31, r31
     62e:	ea 5d       	subi	r30, 0xDA	; 218
     630:	ff 4f       	sbci	r31, 0xFF	; 255
     632:	84 91       	lpm	r24, Z
     634:	80 93 64 00 	sts	0x0064, r24
	
	display_buffer[5]=0x40;//-
     638:	80 e4       	ldi	r24, 0x40	; 64
     63a:	80 93 65 00 	sts	0x0065, r24
	//minute
	temp=(timer_minute&0xf0)>>4;
     63e:	84 2f       	mov	r24, r20
     640:	99 27       	eor	r25, r25
     642:	f4 e0       	ldi	r31, 0x04	; 4
     644:	96 95       	lsr	r25
     646:	87 95       	ror	r24
     648:	fa 95       	dec	r31
     64a:	e1 f7       	brne	.-8      	; 0x644 <display_timer+0x54>
	display_buffer[6]=pgm_read_byte(display_code+temp);
     64c:	e8 2f       	mov	r30, r24
     64e:	ff 27       	eor	r31, r31
     650:	ea 5d       	subi	r30, 0xDA	; 218
     652:	ff 4f       	sbci	r31, 0xFF	; 255
     654:	84 91       	lpm	r24, Z
     656:	80 93 66 00 	sts	0x0066, r24
	temp=timer_minute&0x0f;
     65a:	3f 70       	andi	r19, 0x0F	; 15
	display_buffer[7]=pgm_read_byte(display_code+temp);
     65c:	e3 2f       	mov	r30, r19
     65e:	ff 27       	eor	r31, r31
     660:	ea 5d       	subi	r30, 0xDA	; 218
     662:	ff 4f       	sbci	r31, 0xFF	; 255
     664:	84 91       	lpm	r24, Z
     666:	80 93 67 00 	sts	0x0067, r24
     66a:	08 95       	ret

0000066c <check_timer>:
}
void check_timer(void)
{
	if(timer0_hour) flag|=1<<timer0_available;
     66c:	e0 91 75 00 	lds	r30, 0x0075
     670:	ee 23       	and	r30, r30
     672:	31 f0       	breq	.+12     	; 0x680 <check_timer+0x14>
     674:	80 91 78 00 	lds	r24, 0x0078
     678:	84 60       	ori	r24, 0x04	; 4
     67a:	80 93 78 00 	sts	0x0078, r24
     67e:	0b c0       	rjmp	.+22     	; 0x696 <check_timer+0x2a>
	else if(timer0_minute) flag|=1<<timer0_available;
     680:	80 91 74 00 	lds	r24, 0x0074
     684:	90 91 78 00 	lds	r25, 0x0078
     688:	88 23       	and	r24, r24
     68a:	11 f0       	breq	.+4      	; 0x690 <check_timer+0x24>
     68c:	94 60       	ori	r25, 0x04	; 4
     68e:	01 c0       	rjmp	.+2      	; 0x692 <check_timer+0x26>
	else flag&=~(1<<timer0_available);
     690:	9b 7f       	andi	r25, 0xFB	; 251
     692:	90 93 78 00 	sts	0x0078, r25

	if(timer1_hour) flag|=1<<timer1_available;
     696:	70 91 73 00 	lds	r23, 0x0073
     69a:	77 23       	and	r23, r23
     69c:	31 f0       	breq	.+12     	; 0x6aa <check_timer+0x3e>
     69e:	80 91 78 00 	lds	r24, 0x0078
     6a2:	88 60       	ori	r24, 0x08	; 8
     6a4:	80 93 78 00 	sts	0x0078, r24
     6a8:	0b c0       	rjmp	.+22     	; 0x6c0 <check_timer+0x54>
	else if(timer1_minute) flag|=1<<timer1_available;
     6aa:	80 91 72 00 	lds	r24, 0x0072
     6ae:	90 91 78 00 	lds	r25, 0x0078
     6b2:	88 23       	and	r24, r24
     6b4:	11 f0       	breq	.+4      	; 0x6ba <check_timer+0x4e>
     6b6:	98 60       	ori	r25, 0x08	; 8
     6b8:	01 c0       	rjmp	.+2      	; 0x6bc <check_timer+0x50>
	else flag&=~(1<<timer1_available);
     6ba:	97 7f       	andi	r25, 0xF7	; 247
     6bc:	90 93 78 00 	sts	0x0078, r25

	if(timer2_hour) flag|=1<<timer2_available;
     6c0:	60 91 71 00 	lds	r22, 0x0071
     6c4:	66 23       	and	r22, r22
     6c6:	31 f0       	breq	.+12     	; 0x6d4 <check_timer+0x68>
     6c8:	80 91 78 00 	lds	r24, 0x0078
     6cc:	80 61       	ori	r24, 0x10	; 16
     6ce:	80 93 78 00 	sts	0x0078, r24
     6d2:	0b c0       	rjmp	.+22     	; 0x6ea <check_timer+0x7e>
	else if(timer2_minute) flag|=1<<timer2_available;
     6d4:	80 91 70 00 	lds	r24, 0x0070
     6d8:	90 91 78 00 	lds	r25, 0x0078
     6dc:	88 23       	and	r24, r24
     6de:	11 f0       	breq	.+4      	; 0x6e4 <check_timer+0x78>
     6e0:	90 61       	ori	r25, 0x10	; 16
     6e2:	01 c0       	rjmp	.+2      	; 0x6e6 <check_timer+0x7a>
	else flag&=~(1<<timer2_available);
     6e4:	9f 7e       	andi	r25, 0xEF	; 239
     6e6:	90 93 78 00 	sts	0x0078, r25

	if(timer3_hour) flag|=1<<timer3_available;
     6ea:	50 91 6f 00 	lds	r21, 0x006F
     6ee:	55 23       	and	r21, r21
     6f0:	31 f0       	breq	.+12     	; 0x6fe <check_timer+0x92>
     6f2:	80 91 78 00 	lds	r24, 0x0078
     6f6:	80 62       	ori	r24, 0x20	; 32
     6f8:	80 93 78 00 	sts	0x0078, r24
     6fc:	0b c0       	rjmp	.+22     	; 0x714 <check_timer+0xa8>
	else if(timer3_minute) flag|=1<<timer3_available;
     6fe:	80 91 6e 00 	lds	r24, 0x006E
     702:	90 91 78 00 	lds	r25, 0x0078
     706:	88 23       	and	r24, r24
     708:	11 f0       	breq	.+4      	; 0x70e <check_timer+0xa2>
     70a:	90 62       	ori	r25, 0x20	; 32
     70c:	01 c0       	rjmp	.+2      	; 0x710 <check_timer+0xa4>
	else flag&=~(1<<timer3_available);
     70e:	9f 7d       	andi	r25, 0xDF	; 223
     710:	90 93 78 00 	sts	0x0078, r25

	if(timer4_hour) flag|=1<<timer4_available;
     714:	40 91 6d 00 	lds	r20, 0x006D
     718:	44 23       	and	r20, r20
     71a:	31 f0       	breq	.+12     	; 0x728 <check_timer+0xbc>
     71c:	80 91 78 00 	lds	r24, 0x0078
     720:	80 64       	ori	r24, 0x40	; 64
     722:	80 93 78 00 	sts	0x0078, r24
     726:	0b c0       	rjmp	.+22     	; 0x73e <check_timer+0xd2>
	else if(timer4_minute) flag|=1<<timer4_available;
     728:	80 91 6c 00 	lds	r24, 0x006C
     72c:	90 91 78 00 	lds	r25, 0x0078
     730:	88 23       	and	r24, r24
     732:	11 f0       	breq	.+4      	; 0x738 <check_timer+0xcc>
     734:	90 64       	ori	r25, 0x40	; 64
     736:	01 c0       	rjmp	.+2      	; 0x73a <check_timer+0xce>
	else flag&=~(1<<timer4_available);
     738:	9f 7b       	andi	r25, 0xBF	; 191
     73a:	90 93 78 00 	sts	0x0078, r25

	if(timer5_hour) flag|=1<<timer5_available;
     73e:	30 91 6b 00 	lds	r19, 0x006B
     742:	33 23       	and	r19, r19
     744:	31 f0       	breq	.+12     	; 0x752 <check_timer+0xe6>
     746:	80 91 78 00 	lds	r24, 0x0078
     74a:	80 68       	ori	r24, 0x80	; 128
     74c:	80 93 78 00 	sts	0x0078, r24
     750:	0b c0       	rjmp	.+22     	; 0x768 <check_timer+0xfc>
	else if(timer5_minute) flag|=1<<timer5_available;
     752:	80 91 6a 00 	lds	r24, 0x006A
     756:	90 91 78 00 	lds	r25, 0x0078
     75a:	88 23       	and	r24, r24
     75c:	11 f0       	breq	.+4      	; 0x762 <check_timer+0xf6>
     75e:	90 68       	ori	r25, 0x80	; 128
     760:	01 c0       	rjmp	.+2      	; 0x764 <check_timer+0xf8>
	else flag&=~(1<<timer5_available);
     762:	9f 77       	andi	r25, 0x7F	; 127
     764:	90 93 78 00 	sts	0x0078, r25

	if(flag&(1<<timer0_available))
     768:	20 91 78 00 	lds	r18, 0x0078
     76c:	22 ff       	sbrs	r18, 2
     76e:	0d c0       	rjmp	.+26     	; 0x78a <check_timer+0x11e>
	{
		if(timer0_hour==hour)
     770:	80 91 7d 00 	lds	r24, 0x007D
     774:	e8 17       	cp	r30, r24
     776:	49 f4       	brne	.+18     	; 0x78a <check_timer+0x11e>
		{
			if(timer0_minute==minute) flag|=1<<buzzer_flag;
     778:	90 91 74 00 	lds	r25, 0x0074
     77c:	80 91 7c 00 	lds	r24, 0x007C
     780:	98 17       	cp	r25, r24
     782:	19 f4       	brne	.+6      	; 0x78a <check_timer+0x11e>
     784:	22 60       	ori	r18, 0x02	; 2
     786:	20 93 78 00 	sts	0x0078, r18
		}
	}	
	
	if(flag&(1<<timer1_available))
     78a:	20 91 78 00 	lds	r18, 0x0078
     78e:	23 ff       	sbrs	r18, 3
     790:	0d c0       	rjmp	.+26     	; 0x7ac <check_timer+0x140>
	{
		if(timer1_hour==hour)
     792:	80 91 7d 00 	lds	r24, 0x007D
     796:	78 17       	cp	r23, r24
     798:	49 f4       	brne	.+18     	; 0x7ac <check_timer+0x140>
		{
			if(timer1_minute==minute) flag|=1<<buzzer_flag;
     79a:	90 91 72 00 	lds	r25, 0x0072
     79e:	80 91 7c 00 	lds	r24, 0x007C
     7a2:	98 17       	cp	r25, r24
     7a4:	19 f4       	brne	.+6      	; 0x7ac <check_timer+0x140>
     7a6:	22 60       	ori	r18, 0x02	; 2
     7a8:	20 93 78 00 	sts	0x0078, r18
		}
	}
	
	if(flag&(1<<timer2_available))
     7ac:	20 91 78 00 	lds	r18, 0x0078
     7b0:	24 ff       	sbrs	r18, 4
     7b2:	0d c0       	rjmp	.+26     	; 0x7ce <check_timer+0x162>
	{
		if(timer2_hour==hour)
     7b4:	80 91 7d 00 	lds	r24, 0x007D
     7b8:	68 17       	cp	r22, r24
     7ba:	49 f4       	brne	.+18     	; 0x7ce <check_timer+0x162>
		{
			if(timer2_minute==minute) flag|=1<<buzzer_flag;
     7bc:	90 91 70 00 	lds	r25, 0x0070
     7c0:	80 91 7c 00 	lds	r24, 0x007C
     7c4:	98 17       	cp	r25, r24
     7c6:	19 f4       	brne	.+6      	; 0x7ce <check_timer+0x162>
     7c8:	22 60       	ori	r18, 0x02	; 2
     7ca:	20 93 78 00 	sts	0x0078, r18
		}
	}
	
	if(flag&(1<<timer3_available))
     7ce:	20 91 78 00 	lds	r18, 0x0078
     7d2:	25 ff       	sbrs	r18, 5
     7d4:	0d c0       	rjmp	.+26     	; 0x7f0 <check_timer+0x184>
	{
		if(timer3_hour==hour)
     7d6:	80 91 7d 00 	lds	r24, 0x007D
     7da:	58 17       	cp	r21, r24
     7dc:	49 f4       	brne	.+18     	; 0x7f0 <check_timer+0x184>
		{
			if(timer3_minute==minute) flag|=1<<buzzer_flag;
     7de:	90 91 6e 00 	lds	r25, 0x006E
     7e2:	80 91 7c 00 	lds	r24, 0x007C
     7e6:	98 17       	cp	r25, r24
     7e8:	19 f4       	brne	.+6      	; 0x7f0 <check_timer+0x184>
     7ea:	22 60       	ori	r18, 0x02	; 2
     7ec:	20 93 78 00 	sts	0x0078, r18
		}
	}
	
	if(flag&(1<<timer4_available))
     7f0:	20 91 78 00 	lds	r18, 0x0078
     7f4:	26 ff       	sbrs	r18, 6
     7f6:	0d c0       	rjmp	.+26     	; 0x812 <check_timer+0x1a6>
	{
		if(timer4_hour==hour)
     7f8:	80 91 7d 00 	lds	r24, 0x007D
     7fc:	48 17       	cp	r20, r24
     7fe:	49 f4       	brne	.+18     	; 0x812 <check_timer+0x1a6>
		{
			if(timer4_minute==minute) flag|=1<<buzzer_flag;
     800:	90 91 6c 00 	lds	r25, 0x006C
     804:	80 91 7c 00 	lds	r24, 0x007C
     808:	98 17       	cp	r25, r24
     80a:	19 f4       	brne	.+6      	; 0x812 <check_timer+0x1a6>
     80c:	22 60       	ori	r18, 0x02	; 2
     80e:	20 93 78 00 	sts	0x0078, r18
		}
	}
	
	if(flag&(1<<timer5_available))
     812:	20 91 78 00 	lds	r18, 0x0078
     816:	27 ff       	sbrs	r18, 7
     818:	0d c0       	rjmp	.+26     	; 0x834 <check_timer+0x1c8>
	{
		if(timer5_hour==hour)
     81a:	80 91 7d 00 	lds	r24, 0x007D
     81e:	38 17       	cp	r19, r24
     820:	49 f4       	brne	.+18     	; 0x834 <check_timer+0x1c8>
		{
			if(timer5_minute==minute) flag|=1<<buzzer_flag;
     822:	90 91 6a 00 	lds	r25, 0x006A
     826:	80 91 7c 00 	lds	r24, 0x007C
     82a:	98 17       	cp	r25, r24
     82c:	19 f4       	brne	.+6      	; 0x834 <check_timer+0x1c8>
     82e:	22 60       	ori	r18, 0x02	; 2

⌨️ 快捷键说明

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