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

📄 main.lss

📁 本程序为编码器调节电压,能校对:输出电压,输入电压,与校对调节输出的电压值,适合做通用数字电源程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
make=1;//有修改
     4f4:	21 e0       	ldi	r18, 0x01	; 1
     4f6:	20 93 07 01 	sts	0x0107, r18
if((PIND&0x0c)==0x0c)return;
     4fa:	80 b3       	in	r24, 0x10	; 16
     4fc:	99 27       	eor	r25, r25
     4fe:	8c 70       	andi	r24, 0x0C	; 12
     500:	90 70       	andi	r25, 0x00	; 0
     502:	0c 97       	sbiw	r24, 0x0c	; 12
     504:	61 f0       	breq	.+24     	; 0x51e <__vector_2+0x3a>
if(s_up){s_up=0;return;}
     506:	80 91 b8 00 	lds	r24, 0x00B8
     50a:	88 23       	and	r24, r24
     50c:	19 f0       	breq	.+6      	; 0x514 <__vector_2+0x30>
     50e:	10 92 b8 00 	sts	0x00B8, r1
     512:	05 c0       	rjmp	.+10     	; 0x51e <__vector_2+0x3a>
 s_down=1;
     514:	20 93 00 01 	sts	0x0100, r18
 int_=2;
     518:	82 e0       	ldi	r24, 0x02	; 2
     51a:	80 93 04 01 	sts	0x0104, r24
     51e:	9f 91       	pop	r25
     520:	8f 91       	pop	r24
     522:	2f 91       	pop	r18
     524:	0f 90       	pop	r0
     526:	0f be       	out	0x3f, r0	; 63
     528:	0f 90       	pop	r0
     52a:	1f 90       	pop	r1
     52c:	18 95       	reti

0000052e <daly>:
}

void daly(void){
  uch x,y;
    for(x=100;x!=0;x--);
     52e:	84 e6       	ldi	r24, 0x64	; 100
     530:	82 53       	subi	r24, 0x32	; 50
     532:	f1 f7       	brne	.-4      	; 0x530 <daly+0x2>
    for(y=250;y!=0;y--)for(x=250;x!=0;x--);
     534:	9a ef       	ldi	r25, 0xFA	; 250
     536:	8a ef       	ldi	r24, 0xFA	; 250
     538:	81 50       	subi	r24, 0x01	; 1
     53a:	f1 f7       	brne	.-4      	; 0x538 <daly+0xa>
     53c:	91 50       	subi	r25, 0x01	; 1
     53e:	d9 f7       	brne	.-10     	; 0x536 <daly+0x8>
     540:	08 95       	ret

00000542 <ini>:
	}

void ini(void){
  
    PORTD=0xff;
     542:	8f ef       	ldi	r24, 0xFF	; 255
     544:	82 bb       	out	0x12, r24	; 18
	PORTB=0xff;
     546:	88 bb       	out	0x18, r24	; 24
	DDRB=0xff;
     548:	87 bb       	out	0x17, r24	; 23
	DDRC=0xff;
     54a:	84 bb       	out	0x14, r24	; 20
	DDRA=0x0;
     54c:	1a ba       	out	0x1a, r1	; 26
	DDRD=0xf0;
     54e:	80 ef       	ldi	r24, 0xF0	; 240
     550:	81 bb       	out	0x11, r24	; 17
daly();
     552:	0e 94 97 02 	call	0x52e <daly>
    cli();
     556:	f8 94       	cli
	c_b(ASSR,AS2);
     558:	82 b5       	in	r24, 0x22	; 34
     55a:	87 7f       	andi	r24, 0xF7	; 247
     55c:	82 bd       	out	0x22, r24	; 34
	s_b(MCUCSR,JTD);s_b(MCUCSR,JTD);//关闭JTAG
     55e:	84 b7       	in	r24, 0x34	; 52
     560:	80 68       	ori	r24, 0x80	; 128
     562:	84 bf       	out	0x34, r24	; 52
     564:	84 b7       	in	r24, 0x34	; 52
     566:	80 68       	ori	r24, 0x80	; 128
     568:	84 bf       	out	0x34, r24	; 52
    ADMUX=0xC0;//选择第七通道换转
     56a:	90 ec       	ldi	r25, 0xC0	; 192
     56c:	97 b9       	out	0x07, r25	; 7
	ADCSRA=_BV(ADEN)|_BV(ADSC)|_BV(ADPS0)|_BV(ADSC)|_BV(ADIE);
     56e:	89 ec       	ldi	r24, 0xC9	; 201
     570:	86 b9       	out	0x06, r24	; 6

	GICR=0xc0;//设置中断
     572:	9b bf       	out	0x3b, r25	; 59
	MCUCR=0x0f;
     574:	8f e0       	ldi	r24, 0x0F	; 15
     576:	85 bf       	out	0x35, r24	; 53
	
	TCCR0=(1<<CS02)|(1<<CS00);
     578:	85 e0       	ldi	r24, 0x05	; 5
     57a:	83 bf       	out	0x33, r24	; 51
	TCCR1A=(1<<WGM11)|0xa0;
     57c:	82 ea       	ldi	r24, 0xA2	; 162
     57e:	8f bd       	out	0x2f, r24	; 47
	TCCR1B=(1<<WGM13)|(1<<CS10);//
     580:	81 e1       	ldi	r24, 0x11	; 17
     582:	8e bd       	out	0x2e, r24	; 46
	ICR1=2000;
     584:	80 ed       	ldi	r24, 0xD0	; 208
     586:	97 e0       	ldi	r25, 0x07	; 7
     588:	97 bd       	out	0x27, r25	; 39
     58a:	86 bd       	out	0x26, r24	; 38
	lcdini();
     58c:	0e 94 a2 00 	call	0x144 <lcdini>
	ch_sp=&xy_ch;
     590:	8e ee       	ldi	r24, 0xEE	; 238
     592:	90 e0       	ldi	r25, 0x00	; 0
     594:	90 93 bb 00 	sts	0x00BB, r25
     598:	80 93 ba 00 	sts	0x00BA, r24
	ch_x=0;
     59c:	10 92 89 00 	sts	0x0089, r1
	xini(0);
     5a0:	80 e0       	ldi	r24, 0x00	; 0
     5a2:	0e 94 9b 00 	call	0x136 <xini>
	dlay(80);
     5a6:	80 e5       	ldi	r24, 0x50	; 80
     5a8:	90 e0       	ldi	r25, 0x00	; 0
     5aa:	0e 94 4f 00 	call	0x9e <dlay>
	TCNT0=220;
     5ae:	8c ed       	ldi	r24, 0xDC	; 220
     5b0:	82 bf       	out	0x32, r24	; 50
	
	
	TIMSK=(1<<TOIE0);
     5b2:	81 e0       	ldi	r24, 0x01	; 1
     5b4:	89 bf       	out	0x39, r24	; 57
	sei();
     5b6:	78 94       	sei
     5b8:	08 95       	ret

000005ba <shu_f>:
	
  }
  uch dip;//小数点
  uch shu_z;//符号
  uch _shu[6];
  void shu_f(int x){
     5ba:	9c 01       	movw	r18, r24
  uint tep;
    if(x<0){shu_z=1;x=~x+1;}
     5bc:	97 ff       	sbrs	r25, 7
     5be:	06 c0       	rjmp	.+12     	; 0x5cc <shu_f+0x12>
     5c0:	81 e0       	ldi	r24, 0x01	; 1
     5c2:	80 93 b9 00 	sts	0x00B9, r24
     5c6:	30 95       	com	r19
     5c8:	21 95       	neg	r18
     5ca:	3f 4f       	sbci	r19, 0xFF	; 255
	_shu[3]=x/1000;
     5cc:	c9 01       	movw	r24, r18
     5ce:	68 ee       	ldi	r22, 0xE8	; 232
     5d0:	73 e0       	ldi	r23, 0x03	; 3
     5d2:	0e 94 94 09 	call	0x1328 <__divmodhi4>
     5d6:	60 93 93 00 	sts	0x0093, r22
	tep=x%1000;
     5da:	c9 01       	movw	r24, r18
     5dc:	68 ee       	ldi	r22, 0xE8	; 232
     5de:	73 e0       	ldi	r23, 0x03	; 3
     5e0:	0e 94 94 09 	call	0x1328 <__divmodhi4>
     5e4:	9c 01       	movw	r18, r24
	_shu[2]=tep/100;
     5e6:	64 e6       	ldi	r22, 0x64	; 100
     5e8:	70 e0       	ldi	r23, 0x00	; 0
     5ea:	0e 94 80 09 	call	0x1300 <__udivmodhi4>
     5ee:	60 93 92 00 	sts	0x0092, r22
	x=tep%100;
     5f2:	c9 01       	movw	r24, r18
     5f4:	64 e6       	ldi	r22, 0x64	; 100
     5f6:	70 e0       	ldi	r23, 0x00	; 0
     5f8:	0e 94 80 09 	call	0x1300 <__udivmodhi4>
     5fc:	9c 01       	movw	r18, r24
	_shu[1]=x/10;
     5fe:	6a e0       	ldi	r22, 0x0A	; 10
     600:	70 e0       	ldi	r23, 0x00	; 0
     602:	0e 94 94 09 	call	0x1328 <__divmodhi4>
     606:	60 93 91 00 	sts	0x0091, r22
    _shu[0]=x%10; 
     60a:	c9 01       	movw	r24, r18
     60c:	6a e0       	ldi	r22, 0x0A	; 10
     60e:	70 e0       	ldi	r23, 0x00	; 0
     610:	0e 94 94 09 	call	0x1328 <__divmodhi4>
     614:	80 93 90 00 	sts	0x0090, r24
     618:	08 95       	ret

0000061a <di_OA>:
	}
  void di_OA(int x,uch a){//下行显示电流
     61a:	ff 92       	push	r15
     61c:	0f 93       	push	r16
     61e:	1f 93       	push	r17
     620:	16 2f       	mov	r17, r22
   shu_f(x);
     622:	0e 94 dd 02 	call	0x5ba <shu_f>
   xy_ch[a][0]='V';
     626:	01 2f       	mov	r16, r17
     628:	11 27       	eor	r17, r17
     62a:	33 e0       	ldi	r19, 0x03	; 3
     62c:	00 0f       	add	r16, r16
     62e:	11 1f       	adc	r17, r17
     630:	3a 95       	dec	r19
     632:	e1 f7       	brne	.-8      	; 0x62c <di_OA+0x12>
     634:	02 51       	subi	r16, 0x12	; 18
     636:	1f 4f       	sbci	r17, 0xFF	; 255
     638:	86 e5       	ldi	r24, 0x56	; 86
     63a:	f8 01       	movw	r30, r16
     63c:	80 83       	st	Z, r24
   xy_ch[a][1]='A';
     63e:	21 e4       	ldi	r18, 0x41	; 65
     640:	f2 2e       	mov	r15, r18
     642:	f1 82       	std	Z+1, r15	; 0x01
   xy_ch[a][2]=':';
     644:	8a e3       	ldi	r24, 0x3A	; 58
     646:	82 83       	std	Z+2, r24	; 0x02
   xy_ch[a][3]=ascii_s(_shu[2]);
     648:	80 91 92 00 	lds	r24, 0x0092
     64c:	0e 94 47 00 	call	0x8e <ascii_s>
     650:	f8 01       	movw	r30, r16
     652:	83 83       	std	Z+3, r24	; 0x03
    xy_ch[a][4]='.';
     654:	8e e2       	ldi	r24, 0x2E	; 46
     656:	84 83       	std	Z+4, r24	; 0x04
   xy_ch[a][5]=ascii_s(_shu[1]);
     658:	80 91 91 00 	lds	r24, 0x0091
     65c:	0e 94 47 00 	call	0x8e <ascii_s>
     660:	f8 01       	movw	r30, r16
     662:	85 83       	std	Z+5, r24	; 0x05
   xy_ch[a][6]=ascii_s(_shu[0]);
     664:	80 91 90 00 	lds	r24, 0x0090
     668:	0e 94 47 00 	call	0x8e <ascii_s>
     66c:	f8 01       	movw	r30, r16
     66e:	86 83       	std	Z+6, r24	; 0x06
   xy_ch[a][7]='A';
     670:	f7 82       	std	Z+7, r15	; 0x07
     672:	1f 91       	pop	r17
     674:	0f 91       	pop	r16
     676:	ff 90       	pop	r15
     678:	08 95       	ret

0000067a <di_VI>:
  }
  void di_VI(int x,uch a){//下行显示输入电压
     67a:	ff 92       	push	r15
     67c:	0f 93       	push	r16
     67e:	1f 93       	push	r17
     680:	16 2f       	mov	r17, r22
   shu_f(x);
     682:	0e 94 dd 02 	call	0x5ba <shu_f>
   xy_ch[a][0]='V';
     686:	01 2f       	mov	r16, r17
     688:	11 27       	eor	r17, r17
     68a:	53 e0       	ldi	r21, 0x03	; 3
     68c:	00 0f       	add	r16, r16
     68e:	11 1f       	adc	r17, r17
     690:	5a 95       	dec	r21
     692:	e1 f7       	brne	.-8      	; 0x68c <di_VI+0x12>
     694:	02 51       	subi	r16, 0x12	; 18
     696:	1f 4f       	sbci	r17, 0xFF	; 255
     698:	46 e5       	ldi	r20, 0x56	; 86
     69a:	f4 2e       	mov	r15, r20
     69c:	f8 01       	movw	r30, r16
     69e:	f0 82       	st	Z, r15
   xy_ch[a][1]='I';
     6a0:	89 e4       	ldi	r24, 0x49	; 73
     6a2:	81 83       	std	Z+1, r24	; 0x01
   xy_ch[a][2]=':';
     6a4:	8a e3       	ldi	r24, 0x3A	; 58
     6a6:	82 83       	std	Z+2, r24	; 0x02
   xy_ch[a][3]=ascii_s(_shu[2]);
     6a8:	80 91 92 00 	lds	r24, 0x0092
     6ac:	0e 94 47 00 	call	0x8e <ascii_s>
     6b0:	f8 01       	movw	r30, r16
     6b2:	83 83       	std	Z+3, r24	; 0x03
   xy_ch[a][4]=ascii_s(_shu[1]);
     6b4:	80 91 91 00 	lds	r24, 0x0091
     6b8:	0e 94 47 00 	call	0x8e <ascii_s>
     6bc:	f8 01       	movw	r30, r16
     6be:	84 83       	std	Z+4, r24	; 0x04
   xy_ch[a][5]='.';
     6c0:	8e e2       	ldi	r24, 0x2E	; 46
     6c2:	85 83       	std	Z+5, r24	; 0x05
   xy_ch[a][6]=ascii_s(_shu[0]);
     6c4:	80 91 90 00 	lds	r24, 0x0090
     6c8:	0e 94 47 00 	call	0x8e <ascii_s>
     6cc:	f8 01       	movw	r30, r16
     6ce:	86 83       	std	Z+6, r24	; 0x06
   xy_ch[a][7]='V';
     6d0:	f7 82       	std	Z+7, r15	; 0x07
     6d2:	1f 91       	pop	r17
     6d4:	0f 91       	pop	r16
     6d6:	ff 90       	pop	r15
     6d8:	08 95       	ret

000006da <di_Vo>:
  }
  void di_Vo(int x,uch a){//下行显示输出电压
     6da:	ff 92       	push	r15
     6dc:	0f 93       	push	r16
     6de:	1f 93       	push	r17
     6e0:	16 2f       	mov	r17, r22
   shu_f(x);
     6e2:	0e 94 dd 02 	call	0x5ba <shu_f>
   xy_ch[a][0]='V';
     6e6:	01 2f       	mov	r16, r17
     6e8:	11 27       	eor	r17, r17
     6ea:	73 e0       	ldi	r23, 0x03	; 3
     6ec:	00 0f       	add	r16, r16
     6ee:	11 1f       	adc	r17, r17
     6f0:	7a 95       	dec	r23
     6f2:	e1 f7       	brne	.-8      	; 0x6ec <di_Vo+0x12>
     6f4:	02 51       	subi	r16, 0x12	; 18
     6f6:	1f 4f       	sbci	r17, 0xFF	; 255
     6f8:	66 e5       	ldi	r22, 0x56	; 86
     6fa:	f6 2e       	mov	r15, r22
     6fc:	f8 01       	movw	r30, r16
     6fe:	f0 82       	st	Z, r15
   xy_ch[a][1]='o';
     700:	8f e6       	ldi	r24, 0x6F	; 111
     702:	81 83       	std	Z+1, r24	; 0x01
   xy_ch[a][2]=':';
     704:	8a e3       	ldi	r24, 0x3A	; 58
     706:	82 83       	std	Z+2, r24	; 0x02
   xy_ch[a][3]=ascii_s(_shu[2]);
     708:	80 91 92 00 	lds	r24, 0x0092
     70c:	0e 94 47 00 	call	0x8e <ascii_s>
     710:	f8 01       	movw	r30, r16
     712:	83 83       	std	Z+3, r24	; 0x03
   xy_ch[a][4]=ascii_s(_shu[1]);
     714:	80 91 91 00 	lds	r24, 0x0091
     718:	0e 94 47 00 	call	0x8e <ascii_s>
     71c:	f8 01       	movw	r30, r16
     71e:	84 83       	std	Z+4, r24	; 0x04
   xy_ch[a][5]='.';
     720:	8e e2       	ldi	r24, 0x2E	; 46
     722:	85 83       	std	Z+5, r24	; 0x05
   xy_ch[a][6]=ascii_s(_shu[0]);
     724:	80 91 90 00 	lds	r24, 0x0090
     728:	0e 94 47 00 	call	0x8e <ascii_s>
     72c:	f8 01       	movw	r30, r16
     72e:	86 83       	std	Z+6, r24	; 0x06
   xy_ch[a][7]='V';
     730:	f7 82       	std	Z+7, r15	; 0x07
     732:	1f 91       	pop	r17
     734:	0f 91       	pop	r16
     736:	ff 90       	pop	r15
     738:	08 95       	ret

0000073a <di_Vout>:
  }
  void di_Vout(int x,uch a){//下行显示输入电压
     73a:	0f 93       	push	r16
     73c:	1f 93       	push	r17
     73e:	cf 93       	push	r28
     740:	16 2f       	mov	r17, r22
   shu_f(x);
     742:	0e 94 dd 02 	call	0x5ba <shu_f>
   xy_ch[a][0]='V';
     746:	01 2f       	mov	r16, r17
     748:	11 27       	eor	r17, r17
     74a:	e3 e0       	ldi	r30, 0x03	; 3
     74c:	00 0f       	add	r16, r16
     74e:	11 1f       	adc	r17, r17
     750:	ea 95       	dec	r30
     752:	e1 f7       	brne	.-8      	; 0x74c <di_Vout+0x12>
     754:	02 51       	subi	r16, 0x12	; 18
     756:	1f 4f       	sbci	r17, 0xFF	; 255
     758:	c6 e5       	ldi	r28, 0x56	; 86
     75a:	f8 01       	movw	r30, r16
     75c:	c0 83       	st	Z, r28
   xy_ch[a][1]='O';
     75e:	8f e4       	ldi	r24, 0x4F	; 79
     760:	81 83       	std	Z+1, r24	; 0x01
   xy_ch[a][2]=':';
     762:	8a e3       	ldi	r24, 0x3A	; 58
     764:	82 83       	std	Z+2, r24	; 0x02
   xy_ch[a][3]=ascii_s(_shu[2]);
     766:	80 91 92 00 	lds	r24, 0x0092
     76a:	0e 94 47 00 	call	0x8e <ascii_s>

⌨️ 快捷键说明

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