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

📄 main.lss

📁 这是用M16做的jtag与stk500(正确说应该是ISP)合二为一的
💻 LSS
📖 第 1 页 / 共 5 页
字号:
		delay_ms(rx_buf[8]);
    3646:	80 91 78 00 	lds	r24, 0x0078
    364a:	99 27       	eor	r25, r25
    364c:	0e 94 b3 19 	call	0x3366	; 0x3366 <delay_ms>
		delay_ms(10);
    3650:	8a e0       	ldi	r24, 0x0A	; 10
    3652:	90 e0       	ldi	r25, 0x00	; 0
    3654:	0e 94 b3 19 	call	0x3366	; 0x3366 <delay_ms>
	
		spi(rx_buf[13]);
    3658:	80 91 7d 00 	lds	r24, 0x007D
    365c:	8f b9       	out	0x0f, r24	; 15
    365e:	77 9b       	sbis	0x0e, 7	; 14
    3660:	fe cf       	rjmp	.-4      	; 0x365e <EnterProgmodeIsp+0x46>
    3662:	8f b1       	in	r24, 0x0f	; 15
		delay_ms(rx_buf[10]);
    3664:	80 91 7a 00 	lds	r24, 0x007A
    3668:	99 27       	eor	r25, r25
    366a:	0e 94 b3 19 	call	0x3366	; 0x3366 <delay_ms>
		spi(rx_buf[14]);
    366e:	80 91 7e 00 	lds	r24, 0x007E
    3672:	8f b9       	out	0x0f, r24	; 15
    3674:	77 9b       	sbis	0x0e, 7	; 14
    3676:	fe cf       	rjmp	.-4      	; 0x3674 <EnterProgmodeIsp+0x5c>
    3678:	8f b1       	in	r24, 0x0f	; 15
		delay_ms(rx_buf[10]);
    367a:	80 91 7a 00 	lds	r24, 0x007A
    367e:	99 27       	eor	r25, r25
    3680:	0e 94 b3 19 	call	0x3366	; 0x3366 <delay_ms>
		tmp=spi(rx_buf[15]);
    3684:	80 91 7f 00 	lds	r24, 0x007F
    3688:	8f b9       	out	0x0f, r24	; 15
    368a:	77 9b       	sbis	0x0e, 7	; 14
    368c:	fe cf       	rjmp	.-4      	; 0x368a <EnterProgmodeIsp+0x72>
    368e:	1f b1       	in	r17, 0x0f	; 15
		delay_ms(rx_buf[10]);
    3690:	80 91 7a 00 	lds	r24, 0x007A
    3694:	99 27       	eor	r25, r25
    3696:	0e 94 b3 19 	call	0x3366	; 0x3366 <delay_ms>
		spi(rx_buf[16]);
    369a:	80 91 80 00 	lds	r24, 0x0080
    369e:	8f b9       	out	0x0f, r24	; 15
    36a0:	77 9b       	sbis	0x0e, 7	; 14
    36a2:	fe cf       	rjmp	.-4      	; 0x36a0 <EnterProgmodeIsp+0x88>
    36a4:	8f b1       	in	r24, 0x0f	; 15
		
		if(tmp==0x53)
    36a6:	13 35       	cpi	r17, 0x53	; 83
    36a8:	19 f4       	brne	.+6      	; 0x36b0 <EnterProgmodeIsp+0x98>
		{
			tx_buf[6] = STATUS_CMD_OK; 
    36aa:	10 92 89 01 	sts	0x0189, r1
    36ae:	03 c0       	rjmp	.+6      	; 0x36b6 <EnterProgmodeIsp+0x9e>
		}
			
		else tx_buf[6] = STATUS_CMD_FAILED; 
    36b0:	80 ec       	ldi	r24, 0xC0	; 192
    36b2:	80 93 89 01 	sts	0x0189, r24
	}
	
	if(rx_buf[11]==0x69)										//this is 89s51 set reset
    36b6:	80 91 7b 00 	lds	r24, 0x007B
    36ba:	89 36       	cpi	r24, 0x69	; 105
    36bc:	c9 f5       	brne	.+114    	; 0x3730 <EnterProgmodeIsp+0x118>
	{
		reset_PORT |= _BV(reset);									//reset 1
    36be:	c1 9a       	sbi	0x18, 1	; 24
		delay_ms(rx_buf[8]);
    36c0:	80 91 78 00 	lds	r24, 0x0078
    36c4:	99 27       	eor	r25, r25
    36c6:	0e 94 b3 19 	call	0x3366	; 0x3366 <delay_ms>
		delay_ms(10);
    36ca:	8a e0       	ldi	r24, 0x0A	; 10
    36cc:	90 e0       	ldi	r25, 0x00	; 0
    36ce:	0e 94 b3 19 	call	0x3366	; 0x3366 <delay_ms>
		
		
		spi(rx_buf[13]);
    36d2:	80 91 7d 00 	lds	r24, 0x007D
    36d6:	8f b9       	out	0x0f, r24	; 15
    36d8:	77 9b       	sbis	0x0e, 7	; 14
    36da:	fe cf       	rjmp	.-4      	; 0x36d8 <EnterProgmodeIsp+0xc0>
    36dc:	8f b1       	in	r24, 0x0f	; 15
		delay_ms(rx_buf[10]);
    36de:	80 91 7a 00 	lds	r24, 0x007A
    36e2:	99 27       	eor	r25, r25
    36e4:	0e 94 b3 19 	call	0x3366	; 0x3366 <delay_ms>
		spi(rx_buf[14]);
    36e8:	80 91 7e 00 	lds	r24, 0x007E
    36ec:	8f b9       	out	0x0f, r24	; 15
    36ee:	77 9b       	sbis	0x0e, 7	; 14
    36f0:	fe cf       	rjmp	.-4      	; 0x36ee <EnterProgmodeIsp+0xd6>
    36f2:	8f b1       	in	r24, 0x0f	; 15
		delay_ms(rx_buf[10]);
    36f4:	80 91 7a 00 	lds	r24, 0x007A
    36f8:	99 27       	eor	r25, r25
    36fa:	0e 94 b3 19 	call	0x3366	; 0x3366 <delay_ms>
		spi(rx_buf[15]);
    36fe:	80 91 7f 00 	lds	r24, 0x007F
    3702:	8f b9       	out	0x0f, r24	; 15
    3704:	77 9b       	sbis	0x0e, 7	; 14
    3706:	fe cf       	rjmp	.-4      	; 0x3704 <EnterProgmodeIsp+0xec>
    3708:	8f b1       	in	r24, 0x0f	; 15
		delay_ms(rx_buf[10]);
    370a:	80 91 7a 00 	lds	r24, 0x007A
    370e:	99 27       	eor	r25, r25
    3710:	0e 94 b3 19 	call	0x3366	; 0x3366 <delay_ms>
		tmp=spi(rx_buf[16]);
    3714:	80 91 80 00 	lds	r24, 0x0080
    3718:	8f b9       	out	0x0f, r24	; 15
    371a:	77 9b       	sbis	0x0e, 7	; 14
    371c:	fe cf       	rjmp	.-4      	; 0x371a <EnterProgmodeIsp+0x102>
    371e:	8f b1       	in	r24, 0x0f	; 15
		
		if(tmp==0x69)
    3720:	89 36       	cpi	r24, 0x69	; 105
    3722:	19 f4       	brne	.+6      	; 0x372a <EnterProgmodeIsp+0x112>
		{
			tx_buf[6] = STATUS_CMD_OK; 
    3724:	10 92 89 01 	sts	0x0189, r1
    3728:	03 c0       	rjmp	.+6      	; 0x3730 <EnterProgmodeIsp+0x118>
		}
		
		else tx_buf[6] = STATUS_CMD_FAILED; 
    372a:	80 ec       	ldi	r24, 0xC0	; 192
    372c:	80 93 89 01 	sts	0x0189, r24
    3730:	1f 91       	pop	r17
    3732:	08 95       	ret

00003734 <cmdEnterProgmodeIsp>:
    3734:	10 92 85 01 	sts	0x0185, r1
    3738:	82 e0       	ldi	r24, 0x02	; 2
    373a:	80 93 86 01 	sts	0x0186, r24
    373e:	0e 94 0c 1b 	call	0x3618	; 0x3618 <EnterProgmodeIsp>
    3742:	08 95       	ret

00003744 <ReadfusebitIsp>:
	}
}
void ReadfusebitIsp(void)
{
    3744:	cf 93       	push	r28
    3746:	df 93       	push	r29
    3748:	cd b7       	in	r28, 0x3d	; 61
    374a:	de b7       	in	r29, 0x3e	; 62
    374c:	24 97       	sbiw	r28, 0x04	; 4
    374e:	0f b6       	in	r0, 0x3f	; 63
    3750:	f8 94       	cli
    3752:	de bf       	out	0x3e, r29	; 62
    3754:	0f be       	out	0x3f, r0	; 63
    3756:	cd bf       	out	0x3d, r28	; 61
	char k[4];
	
	
	tx_buf[messagesize1]=0;  		// set message length
    3758:	10 92 85 01 	sts	0x0185, r1
	tx_buf[messagesize0]=4;
    375c:	84 e0       	ldi	r24, 0x04	; 4
    375e:	80 93 86 01 	sts	0x0186, r24
	
	tx_buf[6] = STATUS_CMD_OK;
    3762:	10 92 89 01 	sts	0x0189, r1
	
	
	
	k[0]=spi(rx_buf[7]);
    3766:	80 91 77 00 	lds	r24, 0x0077
    376a:	8f b9       	out	0x0f, r24	; 15
    376c:	77 9b       	sbis	0x0e, 7	; 14
    376e:	fe cf       	rjmp	.-4      	; 0x376c <ReadfusebitIsp+0x28>
    3770:	3f b1       	in	r19, 0x0f	; 15
	k[1]=spi(rx_buf[8]);
    3772:	80 91 78 00 	lds	r24, 0x0078
    3776:	8f b9       	out	0x0f, r24	; 15
    3778:	77 9b       	sbis	0x0e, 7	; 14
    377a:	fe cf       	rjmp	.-4      	; 0x3778 <ReadfusebitIsp+0x34>
    377c:	2f b1       	in	r18, 0x0f	; 15
	k[2]=spi(rx_buf[9]);
    377e:	80 91 79 00 	lds	r24, 0x0079
    3782:	8f b9       	out	0x0f, r24	; 15
    3784:	77 9b       	sbis	0x0e, 7	; 14
    3786:	fe cf       	rjmp	.-4      	; 0x3784 <ReadfusebitIsp+0x40>
    3788:	9f b1       	in	r25, 0x0f	; 15
	k[3]=spi(rx_buf[10]);
    378a:	80 91 7a 00 	lds	r24, 0x007A
    378e:	8f b9       	out	0x0f, r24	; 15
    3790:	77 9b       	sbis	0x0e, 7	; 14
    3792:	fe cf       	rjmp	.-4      	; 0x3790 <ReadfusebitIsp+0x4c>
    3794:	8f b1       	in	r24, 0x0f	; 15
    3796:	39 83       	std	Y+1, r19	; 0x01
    3798:	2a 83       	std	Y+2, r18	; 0x02
    379a:	9b 83       	std	Y+3, r25	; 0x03
    379c:	8c 83       	std	Y+4, r24	; 0x04
	
	tx_buf[7]=k[rx_buf[6]-1];
    379e:	80 91 76 00 	lds	r24, 0x0076
    37a2:	fe 01       	movw	r30, r28
    37a4:	e8 0f       	add	r30, r24
    37a6:	f1 1d       	adc	r31, r1
    37a8:	80 81       	ld	r24, Z
    37aa:	80 93 8a 01 	sts	0x018A, r24
	tx_buf[8] = STATUS_CMD_OK;	
    37ae:	10 92 8b 01 	sts	0x018B, r1
    37b2:	24 96       	adiw	r28, 0x04	; 4
    37b4:	0f b6       	in	r0, 0x3f	; 63
    37b6:	f8 94       	cli
    37b8:	de bf       	out	0x3e, r29	; 62
    37ba:	0f be       	out	0x3f, r0	; 63
    37bc:	cd bf       	out	0x3d, r28	; 61
    37be:	df 91       	pop	r29
    37c0:	cf 91       	pop	r28
    37c2:	08 95       	ret

000037c4 <cmdreadfuseisp>:
    37c4:	88 e1       	ldi	r24, 0x18	; 24
    37c6:	80 93 88 01 	sts	0x0188, r24
    37ca:	0e 94 a2 1b 	call	0x3744	; 0x3744 <ReadfusebitIsp>
    37ce:	08 95       	ret

000037d0 <cmdreadlockisp>:
    37d0:	8a e1       	ldi	r24, 0x1A	; 26
    37d2:	80 93 88 01 	sts	0x0188, r24
    37d6:	0e 94 a2 1b 	call	0x3744	; 0x3744 <ReadfusebitIsp>
    37da:	08 95       	ret

000037dc <cmdreadosccalisp>:
    37dc:	8c e1       	ldi	r24, 0x1C	; 28
    37de:	80 93 88 01 	sts	0x0188, r24
    37e2:	0e 94 a2 1b 	call	0x3744	; 0x3744 <ReadfusebitIsp>
    37e6:	08 95       	ret

000037e8 <cmdReadSignatureIsp>:
    37e8:	8b e1       	ldi	r24, 0x1B	; 27
    37ea:	80 93 88 01 	sts	0x0188, r24
    37ee:	0e 94 a2 1b 	call	0x3744	; 0x3744 <ReadfusebitIsp>
    37f2:	08 95       	ret

000037f4 <programfuseisp>:

}

void programfuseisp(void)
{
    37f4:	10 92 85 01 	sts	0x0185, r1
	tx_buf[messagesize1]=0;  		// set message length
	tx_buf[messagesize0]=3;
    37f8:	83 e0       	ldi	r24, 0x03	; 3
    37fa:	80 93 86 01 	sts	0x0186, r24

	spi(rx_buf[6]);
    37fe:	80 91 76 00 	lds	r24, 0x0076
    3802:	8f b9       	out	0x0f, r24	; 15
    3804:	77 9b       	sbis	0x0e, 7	; 14
    3806:	fe cf       	rjmp	.-4      	; 0x3804 <programfuseisp+0x10>
    3808:	8f b1       	in	r24, 0x0f	; 15
	spi(rx_buf[7]);
    380a:	80 91 77 00 	lds	r24, 0x0077
    380e:	8f b9       	out	0x0f, r24	; 15
    3810:	77 9b       	sbis	0x0e, 7	; 14
    3812:	fe cf       	rjmp	.-4      	; 0x3810 <programfuseisp+0x1c>
    3814:	8f b1       	in	r24, 0x0f	; 15
	spi(rx_buf[8]);
    3816:	80 91 78 00 	lds	r24, 0x0078
    381a:	8f b9       	out	0x0f, r24	; 15
    381c:	77 9b       	sbis	0x0e, 7	; 14
    381e:	fe cf       	rjmp	.-4      	; 0x381c <programfuseisp+0x28>
    3820:	8f b1       	in	r24, 0x0f	; 15
	spi(rx_buf[9]);
    3822:	80 91 79 00 	lds	r24, 0x0079
    3826:	8f b9       	out	0x0f, r24	; 15
    3828:	77 9b       	sbis	0x0e, 7	; 14
    382a:	fe cf       	rjmp	.-4      	; 0x3828 <programfuseisp+0x34>
    382c:	8f b1       	in	r24, 0x0f	; 15

	tx_buf[6] = STATUS_CMD_OK;
    382e:	10 92 89 01 	sts	0x0189, r1
	tx_buf[7] = STATUS_CMD_OK;
    3832:	10 92 8a 01 	sts	0x018A, r1
    3836:	08 95       	ret

00003838 <cmdprogramfuseisp>:
    3838:	0e 94 fa 1b 	call	0x37f4	; 0x37f4 <programfuseisp>
    383c:	87 e1       	ldi	r24, 0x17	; 23
    383e:	80 93 88 01 	sts	0x0188, r24
    3842:	08 95       	ret

00003844 <cmdprogramlockisp>:
    3844:	0e 94 fa 1b 	call	0x37f4	; 0x37f4 <programfuseisp>
    3848:	89 e1       	ldi	r24, 0x19	; 25
    384a:	80 93 88 01 	sts	0x0188, r24
    384e:	08 95       	ret

00003850 <SetParameter>:

}

void SetParameter(void)
{
    3850:	80 91 76 00 	lds	r24, 0x0076
    3854:	87 39       	cpi	r24, 0x97	; 151
    3856:	69 f0       	breq	.+26     	; 0x3872 <SetParameter+0x22>
	switch(rx_buf[6])
    3858:	88 39       	cpi	r24, 0x98	; 152
    385a:	89 f0       	breq	.+34     	; 0x387e <SetParameter+0x2e>
    385c:	86 39       	cpi	r24, 0x96	; 150
    385e:	c9 f4       	brne	.+50     	; 0x3892 <SetParameter+0x42>
	{
		case PARAM_OSC_PSCALE:
		{
			TCCR1B=0x08|(0x03&rx_buf[7]);
    3860:	90 91 77 00 	lds	r25, 0x0077
    3864:	89 2f       	mov	r24, r25
    3866:	83 70       	andi	r24, 0x03	; 3
    3868:	88 60       	ori	r24, 0x08	; 8
    386a:	8e bd       	out	0x2e, r24	; 46
			pscalefsys=rx_buf[7];							// Set timer operation mode and prescaler					
    386c:	90 93 61 00 	sts	0x0061, r25
    3870:	08 95       	ret
		}
		break;
		
		case PARAM_OSC_CMATCH:
		{
			OCR1AL=rx_buf[7];
    3872:	80 91 77 00 	lds	r24, 0x0077
    3876:	8a bd       	out	0x2a, r24	; 42
			cmatchdef=rx_buf[7];							//Set compare match value
    3878:	80 93 6f 00 	sts	0x006F, r24
    387c:	08 95       	ret
		}
		break;
		
		case PARAM_SCK_DURATION:
		{
			SPCR=0x50;
    387e:	80 e5       	ldi	r24, 0x50	; 80
    3880:	8d b9       	out	0x0d, r24	; 13
			SPCR|=(0x3&rx_buf[7]);								//set spi clock
    3882:	9d b1       	in	r25, 0x0d	; 13
    3884:	80 91 77 00 	lds	r24, 0x0077
    3888:	83 70       	andi	r24, 0x03	; 3
    388a:	98 2b       	or	r25, r24
    388c:	9d b9       	out	0x0d, r25	; 13
			sckdurationdef=(0x3&rx_buf[7]);
    388e:	80 93 60 00 	sts	0x0060, r24
    3892:	08 95       	ret

00003894 <cmdSetParameter>:
    3894:	1f 93       	push	r17
    3896:	10 92 85 01 	sts	0x0185, r1
    389a:	12 e0       	ldi	r17, 0x02	; 2
    389c:	10 93 86 01 	sts	0x0186, r17
    38a0:	0e 94 28 1c 	call	0x3850	; 0x3850 <SetParameter>
    38a4:	10 93 88 01 	sts	0x0188, r17
    38a8:	10 92 89 01 	sts	0x0189, r1
    38ac:	1f 91       	pop	r17
    38ae:	08 95       	ret

000038b0 <main>:
    38b0:	ba 9a       	sbi	0x17, 2	; 23
    38b2:	8d 9a       	sbi	0x11, 5	; 17
    38b4:	1b b8       	out	0x0b, r1	; 11
    38b6:	88 e1       	ldi	r24, 0x18	; 24
    38b8:	8a b9       	out	0x0a, r24	; 10
    38ba:	86 e8       	ldi	r24, 0x86	; 134
    38bc:	80 bd       	out	0x20, r24	; 32
    38be:	10 bc       	out	0x20, r1	; 32
    38c0:	83 e0       	ldi	r24, 0x03	; 3
    38c2:	89 b9       	out	0x09, r24	; 9
    38c4:	80 e5       	ldi	r24, 0

⌨️ 快捷键说明

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