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

📄 main.lss

📁 本程序为编码器调节电压,能校对:输出电压,输入电压,与校对调节输出的电压值,适合做通用数字电源程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     234:	20 f4       	brcc	.+8      	; 0x23e <adc_maxmin+0x72>
{
min_value=ret-*(xp+i);
     236:	80 81       	ld	r24, Z
     238:	a6 2f       	mov	r26, r22
     23a:	a8 1b       	sub	r26, r24
min_id=i;
     23c:	b4 2f       	mov	r27, r20
     23e:	4f 5f       	subi	r20, 0xFF	; 255
     240:	32 96       	adiw	r30, 0x02	; 2
     242:	4a 30       	cpi	r20, 0x0A	; 10
     244:	f8 f2       	brcs	.-66     	; 0x204 <adc_maxmin+0x38>
}
}
}
//去掉第一个和最大最小值后的平均值
ret=0;
     246:	60 e0       	ldi	r22, 0x00	; 0
     248:	70 e0       	ldi	r23, 0x00	; 0
for(i=1;i<10;i++)
     24a:	41 e0       	ldi	r20, 0x01	; 1
     24c:	fe 01       	movw	r30, r28
     24e:	32 96       	adiw	r30, 0x02	; 2
{
if((i!=min_id)&&(i!=max_id))
     250:	4b 17       	cp	r20, r27
     252:	31 f0       	breq	.+12     	; 0x260 <adc_maxmin+0x94>
     254:	41 17       	cp	r20, r17
     256:	21 f0       	breq	.+8      	; 0x260 <adc_maxmin+0x94>
ret+=*(xp+i);
     258:	80 81       	ld	r24, Z
     25a:	91 81       	ldd	r25, Z+1	; 0x01
     25c:	68 0f       	add	r22, r24
     25e:	79 1f       	adc	r23, r25
     260:	4f 5f       	subi	r20, 0xFF	; 255
     262:	32 96       	adiw	r30, 0x02	; 2
     264:	4a 30       	cpi	r20, 0x0A	; 10
     266:	a0 f3       	brcs	.-24     	; 0x250 <adc_maxmin+0x84>
}
if(min_id!=max_id)
     268:	b1 17       	cp	r27, r17
     26a:	31 f0       	breq	.+12     	; 0x278 <adc_maxmin+0xac>
ret/=7;
     26c:	cb 01       	movw	r24, r22
     26e:	67 e0       	ldi	r22, 0x07	; 7
     270:	70 e0       	ldi	r23, 0x00	; 0
     272:	0e 94 94 09 	call	0x1328 <__divmodhi4>
     276:	09 c0       	rjmp	.+18     	; 0x28a <adc_maxmin+0xbe>
else
ret/=8;
     278:	cb 01       	movw	r24, r22
     27a:	77 fd       	sbrc	r23, 7
     27c:	07 96       	adiw	r24, 0x07	; 7
     27e:	bc 01       	movw	r22, r24
     280:	93 e0       	ldi	r25, 0x03	; 3
     282:	75 95       	asr	r23
     284:	67 95       	ror	r22
     286:	9a 95       	dec	r25
     288:	e1 f7       	brne	.-8      	; 0x282 <adc_maxmin+0xb6>
return ret; 
}
     28a:	cb 01       	movw	r24, r22
     28c:	df 91       	pop	r29
     28e:	cf 91       	pop	r28
     290:	1f 91       	pop	r17
     292:	08 95       	ret

00000294 <adc_sy>:
void adc_sy(void){
static uch  x,y;
if(x>10){
     294:	80 91 82 00 	lds	r24, 0x0082
     298:	8b 30       	cpi	r24, 0x0B	; 11
     29a:	58 f1       	brcs	.+86     	; 0x2f2 <adc_sy+0x5e>
x=0;
     29c:	10 92 82 00 	sts	0x0082, r1
	if(y<10){
     2a0:	20 91 83 00 	lds	r18, 0x0083
     2a4:	2a 30       	cpi	r18, 0x0A	; 10
     2a6:	10 f5       	brcc	.+68     	; 0x2ec <adc_sy+0x58>
	vo_a[y]=adc_1;
     2a8:	e2 2f       	mov	r30, r18
     2aa:	ff 27       	eor	r31, r31
     2ac:	ee 0f       	add	r30, r30
     2ae:	ff 1f       	adc	r31, r31
     2b0:	df 01       	movw	r26, r30
     2b2:	a9 52       	subi	r26, 0x29	; 41
     2b4:	bf 4f       	sbci	r27, 0xFF	; 255
     2b6:	80 91 c0 00 	lds	r24, 0x00C0
     2ba:	90 91 c1 00 	lds	r25, 0x00C1
     2be:	8d 93       	st	X+, r24
     2c0:	9c 93       	st	X, r25
	vi_a[y]=adc_2;
     2c2:	df 01       	movw	r26, r30
     2c4:	ae 53       	subi	r26, 0x3E	; 62
     2c6:	bf 4f       	sbci	r27, 0xFF	; 255
     2c8:	80 91 be 00 	lds	r24, 0x00BE
     2cc:	90 91 bf 00 	lds	r25, 0x00BF
     2d0:	8d 93       	st	X+, r24
     2d2:	9c 93       	st	X, r25
	va_a[y]=adc_3;
     2d4:	e7 56       	subi	r30, 0x67	; 103
     2d6:	ff 4f       	sbci	r31, 0xFF	; 255
     2d8:	80 91 b2 00 	lds	r24, 0x00B2
     2dc:	90 91 b3 00 	lds	r25, 0x00B3
     2e0:	91 83       	std	Z+1, r25	; 0x01
     2e2:	80 83       	st	Z, r24
	 y++;
     2e4:	2f 5f       	subi	r18, 0xFF	; 255
     2e6:	20 93 83 00 	sts	0x0083, r18
     2ea:	06 c0       	rjmp	.+12     	; 0x2f8 <adc_sy+0x64>
	 }
	 else y=0;
     2ec:	10 92 83 00 	sts	0x0083, r1
     2f0:	03 c0       	rjmp	.+6      	; 0x2f8 <adc_sy+0x64>
	 }
	 else x++;
     2f2:	8f 5f       	subi	r24, 0xFF	; 255
     2f4:	80 93 82 00 	sts	0x0082, r24
if(y==10){
     2f8:	80 91 83 00 	lds	r24, 0x0083
     2fc:	8a 30       	cpi	r24, 0x0A	; 10
     2fe:	e9 f4       	brne	.+58     	; 0x33a <adc_sy+0xa6>
	vo2=adc_maxmin(vo_a,1);
     300:	61 e0       	ldi	r22, 0x01	; 1
     302:	87 ed       	ldi	r24, 0xD7	; 215
     304:	90 e0       	ldi	r25, 0x00	; 0
     306:	0e 94 e6 00 	call	0x1cc <adc_maxmin>
     30a:	90 93 b1 00 	sts	0x00B1, r25
     30e:	80 93 b0 00 	sts	0x00B0, r24
	vi2=adc_maxmin(vi_a,2);
     312:	62 e0       	ldi	r22, 0x02	; 2
     314:	82 ec       	ldi	r24, 0xC2	; 194
     316:	90 e0       	ldi	r25, 0x00	; 0
     318:	0e 94 e6 00 	call	0x1cc <adc_maxmin>
     31c:	90 93 06 01 	sts	0x0106, r25
     320:	80 93 05 01 	sts	0x0105, r24
	va2=adc_maxmin(va_a,3);
     324:	63 e0       	ldi	r22, 0x03	; 3
     326:	89 e9       	ldi	r24, 0x99	; 153
     328:	90 e0       	ldi	r25, 0x00	; 0
     32a:	0e 94 e6 00 	call	0x1cc <adc_maxmin>
     32e:	90 93 ae 00 	sts	0x00AE, r25
     332:	80 93 ad 00 	sts	0x00AD, r24
    y=0;
     336:	10 92 83 00 	sts	0x0083, r1
     33a:	08 95       	ret

0000033c <__vector_14>:
} 
	 }

SIGNAL(SIG_ADC)
{
     33c:	1f 92       	push	r1
     33e:	0f 92       	push	r0
     340:	0f b6       	in	r0, 0x3f	; 63
     342:	0f 92       	push	r0
     344:	11 24       	eor	r1, r1
     346:	8f 93       	push	r24
     348:	9f 93       	push	r25
if(ADMUX==0xC0){ADMUX=0xC1;adc_1=ADC;return;}
     34a:	87 b1       	in	r24, 0x07	; 7
     34c:	80 3c       	cpi	r24, 0xC0	; 192
     34e:	49 f4       	brne	.+18     	; 0x362 <__vector_14+0x26>
     350:	81 ec       	ldi	r24, 0xC1	; 193
     352:	87 b9       	out	0x07, r24	; 7
     354:	84 b1       	in	r24, 0x04	; 4
     356:	95 b1       	in	r25, 0x05	; 5
     358:	90 93 c1 00 	sts	0x00C1, r25
     35c:	80 93 c0 00 	sts	0x00C0, r24
     360:	0b c0       	rjmp	.+22     	; 0x378 <__vector_14+0x3c>
if(ADMUX==0xC1){ADMUX=0xC0;adc_2=ADC;return;}
     362:	87 b1       	in	r24, 0x07	; 7
     364:	81 3c       	cpi	r24, 0xC1	; 193
     366:	41 f4       	brne	.+16     	; 0x378 <__vector_14+0x3c>
     368:	80 ec       	ldi	r24, 0xC0	; 192
     36a:	87 b9       	out	0x07, r24	; 7
     36c:	84 b1       	in	r24, 0x04	; 4
     36e:	95 b1       	in	r25, 0x05	; 5
     370:	90 93 bf 00 	sts	0x00BF, r25
     374:	80 93 be 00 	sts	0x00BE, r24
     378:	9f 91       	pop	r25
     37a:	8f 91       	pop	r24
     37c:	0f 90       	pop	r0
     37e:	0f be       	out	0x3f, r0	; 63
     380:	0f 90       	pop	r0
     382:	1f 90       	pop	r1
     384:	18 95       	reti

00000386 <__vector_9>:
//if(ADMUX==0xC2){ADMUX=0xC0;adc_3=ADC;return;}
}
SIGNAL(SIG_OVERFLOW0) 
{
     386:	1f 92       	push	r1
     388:	0f 92       	push	r0
     38a:	0f b6       	in	r0, 0x3f	; 63
     38c:	0f 92       	push	r0
     38e:	11 24       	eor	r1, r1
     390:	2f 93       	push	r18
     392:	3f 93       	push	r19
     394:	4f 93       	push	r20
     396:	5f 93       	push	r21
     398:	6f 93       	push	r22
     39a:	7f 93       	push	r23
     39c:	8f 93       	push	r24
     39e:	9f 93       	push	r25
     3a0:	af 93       	push	r26
     3a2:	bf 93       	push	r27
     3a4:	ef 93       	push	r30
     3a6:	ff 93       	push	r31

 ADCSRA|=_BV(ADSC);
     3a8:	36 9a       	sbi	0x06, 6	; 6
 uch tep;
 tep=key_in&0xc0;
     3aa:	99 b3       	in	r25, 0x19	; 25
     3ac:	90 95       	com	r25
     3ae:	90 7c       	andi	r25, 0xC0	; 192
 ks2=tep;
     3b0:	90 93 96 00 	sts	0x0096, r25
 xiao=tep;
     3b4:	90 93 88 00 	sts	0x0088, r25
if(tep){
     3b8:	99 23       	and	r25, r25
     3ba:	59 f0       	breq	.+22     	; 0x3d2 <__vector_9+0x4c>
	if(ks==10){tep2=tep;ks++;}
     3bc:	80 91 8a 00 	lds	r24, 0x008A
     3c0:	28 2f       	mov	r18, r24
     3c2:	2f 5f       	subi	r18, 0xFF	; 255
     3c4:	8a 30       	cpi	r24, 0x0A	; 10
     3c6:	11 f4       	brne	.+4      	; 0x3cc <__vector_9+0x46>
     3c8:	90 93 eb 00 	sts	0x00EB, r25
	 else ks++;
     3cc:	20 93 8a 00 	sts	0x008A, r18
     3d0:	0d c0       	rjmp	.+26     	; 0x3ec <__vector_9+0x66>
	}
else{ks=0;if(tep2){key=tep2;make=1;}tep2=0;}
     3d2:	90 93 8a 00 	sts	0x008A, r25
     3d6:	80 91 eb 00 	lds	r24, 0x00EB
     3da:	88 23       	and	r24, r24
     3dc:	29 f0       	breq	.+10     	; 0x3e8 <__vector_9+0x62>
     3de:	80 93 d6 00 	sts	0x00D6, r24
     3e2:	81 e0       	ldi	r24, 0x01	; 1
     3e4:	80 93 07 01 	sts	0x0107, r24
     3e8:	90 93 eb 00 	sts	0x00EB, r25

  if(ch_s){
     3ec:	80 91 78 00 	lds	r24, 0x0078
     3f0:	88 23       	and	r24, r24
     3f2:	f9 f0       	breq	.+62     	; 0x432 <__vector_9+0xac>
              w_by(*ch_sp);ch_s=0;
     3f4:	e0 91 ba 00 	lds	r30, 0x00BA
     3f8:	f0 91 bb 00 	lds	r31, 0x00BB
     3fc:	80 81       	ld	r24, Z
     3fe:	0e 94 79 00 	call	0xf2 <w_by>
     402:	10 92 78 00 	sts	0x0078, r1
              if(ch_x<15){ch_x++;ch_sp++;}
     406:	80 91 89 00 	lds	r24, 0x0089
     40a:	8f 30       	cpi	r24, 0x0F	; 15
     40c:	48 f4       	brcc	.+18     	; 0x420 <__vector_9+0x9a>
     40e:	8f 5f       	subi	r24, 0xFF	; 255
     410:	80 93 89 00 	sts	0x0089, r24
     414:	80 91 ba 00 	lds	r24, 0x00BA
     418:	90 91 bb 00 	lds	r25, 0x00BB
     41c:	01 96       	adiw	r24, 0x01	; 1
     41e:	04 c0       	rjmp	.+8      	; 0x428 <__vector_9+0xa2>
               else {ch_x=0;ch_sp=&xy_ch;}
     420:	10 92 89 00 	sts	0x0089, r1
     424:	8e ee       	ldi	r24, 0xEE	; 238
     426:	90 e0       	ldi	r25, 0x00	; 0
     428:	90 93 bb 00 	sts	0x00BB, r25
     42c:	80 93 ba 00 	sts	0x00BA, r24
     430:	07 c0       	rjmp	.+14     	; 0x440 <__vector_9+0xba>
            }
else {xini(ch_x);ch_s=1;}
     432:	80 91 89 00 	lds	r24, 0x0089
     436:	0e 94 9b 00 	call	0x136 <xini>
     43a:	81 e0       	ldi	r24, 0x01	; 1
     43c:	80 93 78 00 	sts	0x0078, r24

 if(di1){DIL;di1--;}//第一次响
     440:	80 91 03 01 	lds	r24, 0x0103
     444:	88 23       	and	r24, r24
     446:	29 f0       	breq	.+10     	; 0x452 <__vector_9+0xcc>
     448:	97 98       	cbi	0x12, 7	; 18
     44a:	81 50       	subi	r24, 0x01	; 1
     44c:	80 93 03 01 	sts	0x0103, r24
     450:	12 c0       	rjmp	.+36     	; 0x476 <__stack+0x17>
  else {
    if(di2){di2--;DIH;}//第二次延时
     452:	80 91 af 00 	lds	r24, 0x00AF
     456:	88 23       	and	r24, r24
     458:	21 f0       	breq	.+8      	; 0x462 <__stack+0x3>
     45a:	81 50       	subi	r24, 0x01	; 1
     45c:	80 93 af 00 	sts	0x00AF, r24
     460:	09 c0       	rjmp	.+18     	; 0x474 <__stack+0x15>
	  else {if(di3){di3--;DIL;}else DIH;}//第三次响
     462:	80 91 bc 00 	lds	r24, 0x00BC
     466:	88 23       	and	r24, r24
     468:	29 f0       	breq	.+10     	; 0x474 <__stack+0x15>
     46a:	81 50       	subi	r24, 0x01	; 1
     46c:	80 93 bc 00 	sts	0x00BC, r24
     470:	97 98       	cbi	0x12, 7	; 18
     472:	01 c0       	rjmp	.+2      	; 0x476 <__stack+0x17>
     474:	97 9a       	sbi	0x12, 7	; 18
	  }
 TCNT0=250;//20MS
     476:	8a ef       	ldi	r24, 0xFA	; 250
     478:	82 bf       	out	0x32, r24	; 50
     47a:	ff 91       	pop	r31
     47c:	ef 91       	pop	r30
     47e:	bf 91       	pop	r27
     480:	af 91       	pop	r26
     482:	9f 91       	pop	r25
     484:	8f 91       	pop	r24
     486:	7f 91       	pop	r23
     488:	6f 91       	pop	r22
     48a:	5f 91       	pop	r21
     48c:	4f 91       	pop	r20
     48e:	3f 91       	pop	r19
     490:	2f 91       	pop	r18
     492:	0f 90       	pop	r0
     494:	0f be       	out	0x3f, r0	; 63
     496:	0f 90       	pop	r0
     498:	1f 90       	pop	r1
     49a:	18 95       	reti

0000049c <__vector_1>:
  // power++;
}
uch s_up;
uch s_down;
SIGNAL(SIG_INTERRUPT0){
     49c:	1f 92       	push	r1
     49e:	0f 92       	push	r0
     4a0:	0f b6       	in	r0, 0x3f	; 63
     4a2:	0f 92       	push	r0
     4a4:	11 24       	eor	r1, r1
     4a6:	2f 93       	push	r18
     4a8:	8f 93       	push	r24
     4aa:	9f 93       	push	r25
make=1;
     4ac:	21 e0       	ldi	r18, 0x01	; 1
     4ae:	20 93 07 01 	sts	0x0107, r18
if((PIND&0x0c)==0x0c)return;
     4b2:	80 b3       	in	r24, 0x10	; 16
     4b4:	99 27       	eor	r25, r25
     4b6:	8c 70       	andi	r24, 0x0C	; 12
     4b8:	90 70       	andi	r25, 0x00	; 0
     4ba:	0c 97       	sbiw	r24, 0x0c	; 12
     4bc:	59 f0       	breq	.+22     	; 0x4d4 <__vector_1+0x38>
if(s_down){s_down=0;return;}
     4be:	80 91 00 01 	lds	r24, 0x0100
     4c2:	88 23       	and	r24, r24
     4c4:	19 f0       	breq	.+6      	; 0x4cc <__vector_1+0x30>
     4c6:	10 92 00 01 	sts	0x0100, r1
     4ca:	04 c0       	rjmp	.+8      	; 0x4d4 <__vector_1+0x38>
 s_up=1;
     4cc:	20 93 b8 00 	sts	0x00B8, r18
 int_=1;
     4d0:	20 93 04 01 	sts	0x0104, r18
     4d4:	9f 91       	pop	r25
     4d6:	8f 91       	pop	r24
     4d8:	2f 91       	pop	r18
     4da:	0f 90       	pop	r0
     4dc:	0f be       	out	0x3f, r0	; 63
     4de:	0f 90       	pop	r0
     4e0:	1f 90       	pop	r1
     4e2:	18 95       	reti

000004e4 <__vector_2>:
}
SIGNAL(SIG_INTERRUPT1){
     4e4:	1f 92       	push	r1
     4e6:	0f 92       	push	r0
     4e8:	0f b6       	in	r0, 0x3f	; 63
     4ea:	0f 92       	push	r0
     4ec:	11 24       	eor	r1, r1
     4ee:	2f 93       	push	r18
     4f0:	8f 93       	push	r24
     4f2:	9f 93       	push	r25

⌨️ 快捷键说明

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