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

📄 main.lss

📁 本程序为编码器调节电压,能校对:输出电压,输入电压,与校对调节输出的电压值,适合做通用数字电源程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     a3c:	10 92 d6 00 	sts	0x00D6, r1
    tep1= moxin(1024,0,V_max,0,tep_vo);//值对应电压值
     a40:	8e 01       	movw	r16, r28
     a42:	20 e0       	ldi	r18, 0x00	; 0
     a44:	30 e0       	ldi	r19, 0x00	; 0
     a46:	4c e2       	ldi	r20, 0x2C	; 44
     a48:	51 e0       	ldi	r21, 0x01	; 1
     a4a:	b9 01       	movw	r22, r18
     a4c:	80 e0       	ldi	r24, 0x00	; 0
     a4e:	94 e0       	ldi	r25, 0x04	; 4
     a50:	0e 94 07 04 	call	0x80e <moxin>
	x1=tep1;
     a54:	9c 01       	movw	r18, r24
     a56:	44 27       	eor	r20, r20
     a58:	55 27       	eor	r21, r21
	x2=vo2;
     a5a:	80 91 b0 00 	lds	r24, 0x00B0
     a5e:	90 91 b1 00 	lds	r25, 0x00B1
     a62:	aa 27       	eor	r26, r26
     a64:	bb 27       	eor	r27, r27
    x3=1024*x2/x1;
     a66:	0a e0       	ldi	r16, 0x0A	; 10
     a68:	88 0f       	add	r24, r24
     a6a:	99 1f       	adc	r25, r25
     a6c:	aa 1f       	adc	r26, r26
     a6e:	bb 1f       	adc	r27, r27
     a70:	0a 95       	dec	r16
     a72:	d1 f7       	brne	.-12     	; 0xa68 <vo_xiao+0x90>
     a74:	bc 01       	movw	r22, r24
     a76:	cd 01       	movw	r24, r26
     a78:	0e 94 c9 09 	call	0x1392 <__divmodsi4>
     a7c:	ba 01       	movw	r22, r20
     a7e:	a9 01       	movw	r20, r18
	vo_kh=x3;
     a80:	50 93 98 00 	sts	0x0098, r21
     a84:	40 93 97 00 	sts	0x0097, r20
    Write a word \c value to EEPROM address \c addr. */

void 
eeprom_write_word (uint16_t *addr,uint16_t value)
{
     a88:	22 e0       	ldi	r18, 0x02	; 2
     a8a:	30 e0       	ldi	r19, 0x00	; 0
  asm volatile (
     a8c:	d9 01       	movw	r26, r18
     a8e:	0a 01       	movw	r0, r20
     a90:	0e 94 e9 09 	call	0x13d2 <__eeprom_write_word_1C1D1E>
    eeprom_write_word(vohas,vo_kh);
	tep1= moxin(1024,0,vo_kh,0,vo2);
     a94:	00 91 b0 00 	lds	r16, 0x00B0
     a98:	10 91 b1 00 	lds	r17, 0x00B1
     a9c:	20 e0       	ldi	r18, 0x00	; 0
     a9e:	30 e0       	ldi	r19, 0x00	; 0
     aa0:	40 91 97 00 	lds	r20, 0x0097
     aa4:	50 91 98 00 	lds	r21, 0x0098
     aa8:	b9 01       	movw	r22, r18
     aaa:	80 e0       	ldi	r24, 0x00	; 0
     aac:	94 e0       	ldi	r25, 0x04	; 4
     aae:	0e 94 07 04 	call	0x80e <moxin>
	vo= moxin(V_max,0,1024,0,tep1);
     ab2:	8c 01       	movw	r16, r24
     ab4:	20 e0       	ldi	r18, 0x00	; 0
     ab6:	30 e0       	ldi	r19, 0x00	; 0
     ab8:	40 e0       	ldi	r20, 0x00	; 0
     aba:	54 e0       	ldi	r21, 0x04	; 4
     abc:	b9 01       	movw	r22, r18
     abe:	8c e2       	ldi	r24, 0x2C	; 44
     ac0:	91 e0       	ldi	r25, 0x01	; 1
     ac2:	0e 94 07 04 	call	0x80e <moxin>
     ac6:	90 93 85 00 	sts	0x0085, r25
     aca:	80 93 84 00 	sts	0x0084, r24
	
	di_Vo(vo,1);
     ace:	61 e0       	ldi	r22, 0x01	; 1
     ad0:	0e 94 6d 03 	call	0x6da <di_Vo>
	daly();daly();daly();
     ad4:	0e 94 97 02 	call	0x52e <daly>
     ad8:	0e 94 97 02 	call	0x52e <daly>
     adc:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     ae0:	0e 94 97 02 	call	0x52e <daly>
     ae4:	0e 94 97 02 	call	0x52e <daly>
     ae8:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     aec:	0e 94 97 02 	call	0x52e <daly>
     af0:	0e 94 97 02 	call	0x52e <daly>
     af4:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     af8:	0e 94 97 02 	call	0x52e <daly>
     afc:	0e 94 97 02 	call	0x52e <daly>
     b00:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     b04:	0e 94 97 02 	call	0x52e <daly>
     b08:	0e 94 97 02 	call	0x52e <daly>
     b0c:	0e 94 97 02 	call	0x52e <daly>
   }
   if(key==fun){key=0;return;}
     b10:	80 91 d6 00 	lds	r24, 0x00D6
     b14:	80 34       	cpi	r24, 0x40	; 64
     b16:	09 f0       	breq	.+2      	; 0xb1a <vo_xiao+0x142>
     b18:	6b cf       	rjmp	.-298    	; 0x9f0 <vo_xiao+0x18>
     b1a:	10 92 d6 00 	sts	0x00D6, r1
     b1e:	df 91       	pop	r29
     b20:	cf 91       	pop	r28
     b22:	1f 91       	pop	r17
     b24:	0f 91       	pop	r16
     b26:	08 95       	ret

00000b28 <po_xiao>:
 }
 }
  void po_xiao(void){//输入电压校对
     b28:	0f 93       	push	r16
     b2a:	1f 93       	push	r17
     b2c:	cf 93       	push	r28
  uint mo_tep;
  uch out_s;
  uint po_tep;
 
  out_s=1;
     b2e:	c1 e0       	ldi	r28, 0x01	; 1
  PWM_our=po_kl;
     b30:	80 91 01 01 	lds	r24, 0x0101
     b34:	90 91 02 01 	lds	r25, 0x0102
     b38:	9b bd       	out	0x2b, r25	; 43
     b3a:	8a bd       	out	0x2a, r24	; 42
  
  while(1){
   
   
   shu_f(PWM_our);
     b3c:	8a b5       	in	r24, 0x2a	; 42
     b3e:	9b b5       	in	r25, 0x2b	; 43
     b40:	0e 94 dd 02 	call	0x5ba <shu_f>
   xy_ch[0][1]='_';
     b44:	8f e5       	ldi	r24, 0x5F	; 95
     b46:	80 93 ef 00 	sts	0x00EF, r24
   xy_ch[0][2]='X';
     b4a:	88 e5       	ldi	r24, 0x58	; 88
     b4c:	80 93 f0 00 	sts	0x00F0, r24
   xy_ch[0][3]=' ';
     b50:	80 e2       	ldi	r24, 0x20	; 32
     b52:	80 93 f1 00 	sts	0x00F1, r24
   xy_ch[0][4]=ascii_s(_shu[3]);
     b56:	80 91 93 00 	lds	r24, 0x0093
     b5a:	0e 94 47 00 	call	0x8e <ascii_s>
     b5e:	80 93 f2 00 	sts	0x00F2, r24
   xy_ch[0][5]=ascii_s(_shu[2]);
     b62:	80 91 92 00 	lds	r24, 0x0092
     b66:	0e 94 47 00 	call	0x8e <ascii_s>
     b6a:	80 93 f3 00 	sts	0x00F3, r24
   xy_ch[0][6]=ascii_s(_shu[1]);
     b6e:	80 91 91 00 	lds	r24, 0x0091
     b72:	0e 94 47 00 	call	0x8e <ascii_s>
     b76:	80 93 f4 00 	sts	0x00F4, r24
   xy_ch[0][7]=ascii_s(_shu[0]);
     b7a:	80 91 90 00 	lds	r24, 0x0090
     b7e:	0e 94 47 00 	call	0x8e <ascii_s>
     b82:	80 93 f5 00 	sts	0x00F5, r24
     b86:	90 91 d6 00 	lds	r25, 0x00D6
  if(out_s==1){
     b8a:	c1 30       	cpi	r28, 0x01	; 1
     b8c:	09 f0       	breq	.+2      	; 0xb90 <po_xiao+0x68>
     b8e:	3c c0       	rjmp	.+120    	; 0xc08 <po_xiao+0xe0>
     xy_ch[0][0]='L';
     b90:	8c e4       	ldi	r24, 0x4C	; 76
     b92:	80 93 ee 00 	sts	0x00EE, r24

     if(key==set){
     b96:	90 38       	cpi	r25, 0x80	; 128
     b98:	09 f0       	breq	.+2      	; 0xb9c <po_xiao+0x74>
     b9a:	8d c0       	rjmp	.+282    	; 0xcb6 <po_xiao+0x18e>
	 out_s=0;
     b9c:	c0 e0       	ldi	r28, 0x00	; 0
     key=0;
     b9e:	c0 93 d6 00 	sts	0x00D6, r28
	 po_kl=PWM_our;
     ba2:	8a b5       	in	r24, 0x2a	; 42
     ba4:	9b b5       	in	r25, 0x2b	; 43
     ba6:	90 93 02 01 	sts	0x0102, r25
     baa:	80 93 01 01 	sts	0x0101, r24
    Write a word \c value to EEPROM address \c addr. */

void 
eeprom_write_word (uint16_t *addr,uint16_t value)
{
     bae:	a8 e0       	ldi	r26, 0x08	; 8
     bb0:	b0 e0       	ldi	r27, 0x00	; 0
  asm volatile (
     bb2:	0c 01       	movw	r0, r24
     bb4:	0e 94 e9 09 	call	0x13d2 <__eeprom_write_word_1C1D1E>
	
     eeprom_write_word(polas,po_kl);
	di_AD(po_kl,0);
     bb8:	6c 2f       	mov	r22, r28
     bba:	80 91 01 01 	lds	r24, 0x0101
     bbe:	90 91 02 01 	lds	r25, 0x0102
     bc2:	0e 94 d5 03 	call	0x7aa <di_AD>
	daly();daly();daly();
     bc6:	0e 94 97 02 	call	0x52e <daly>
     bca:	0e 94 97 02 	call	0x52e <daly>
     bce:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     bd2:	0e 94 97 02 	call	0x52e <daly>
     bd6:	0e 94 97 02 	call	0x52e <daly>
     bda:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     bde:	0e 94 97 02 	call	0x52e <daly>
     be2:	0e 94 97 02 	call	0x52e <daly>
     be6:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     bea:	0e 94 97 02 	call	0x52e <daly>
     bee:	0e 94 97 02 	call	0x52e <daly>
     bf2:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     bf6:	0e 94 97 02 	call	0x52e <daly>
     bfa:	0e 94 97 02 	call	0x52e <daly>
     bfe:	0e 94 97 02 	call	0x52e <daly>
	PWM_our=666;
     c02:	8a e9       	ldi	r24, 0x9A	; 154
     c04:	92 e0       	ldi	r25, 0x02	; 2
     c06:	55 c0       	rjmp	.+170    	; 0xcb2 <po_xiao+0x18a>
	 }
 }
	else {
	xy_ch[0][0]='H';
     c08:	88 e4       	ldi	r24, 0x48	; 72
     c0a:	80 93 ee 00 	sts	0x00EE, r24
    if(key==set){out_s=1;
     c0e:	90 38       	cpi	r25, 0x80	; 128
     c10:	09 f0       	breq	.+2      	; 0xc14 <po_xiao+0xec>
     c12:	51 c0       	rjmp	.+162    	; 0xcb6 <po_xiao+0x18e>
     c14:	c1 e0       	ldi	r28, 0x01	; 1
     key=0; 
     c16:	10 92 d6 00 	sts	0x00D6, r1
     po_tep=moxin(2000,0,V_max,0,vo);
     c1a:	00 91 84 00 	lds	r16, 0x0084
     c1e:	10 91 85 00 	lds	r17, 0x0085
     c22:	20 e0       	ldi	r18, 0x00	; 0
     c24:	30 e0       	ldi	r19, 0x00	; 0
     c26:	4c e2       	ldi	r20, 0x2C	; 44
     c28:	51 e0       	ldi	r21, 0x01	; 1
     c2a:	b9 01       	movw	r22, r18
     c2c:	80 ed       	ldi	r24, 0xD0	; 208
     c2e:	97 e0       	ldi	r25, 0x07	; 7
     c30:	0e 94 07 04 	call	0x80e <moxin>
	 po_kh=moxin(2000,0,PWM_our,po_kl,po_tep);
     c34:	8c 01       	movw	r16, r24
     c36:	20 91 01 01 	lds	r18, 0x0101
     c3a:	30 91 02 01 	lds	r19, 0x0102
     c3e:	4a b5       	in	r20, 0x2a	; 42
     c40:	5b b5       	in	r21, 0x2b	; 43
     c42:	60 e0       	ldi	r22, 0x00	; 0
     c44:	70 e0       	ldi	r23, 0x00	; 0
     c46:	80 ed       	ldi	r24, 0xD0	; 208
     c48:	97 e0       	ldi	r25, 0x07	; 7
     c4a:	0e 94 07 04 	call	0x80e <moxin>
     c4e:	90 93 09 01 	sts	0x0109, r25
     c52:	80 93 08 01 	sts	0x0108, r24
    Write a word \c value to EEPROM address \c addr. */

void 
eeprom_write_word (uint16_t *addr,uint16_t value)
{
     c56:	a6 e0       	ldi	r26, 0x06	; 6
     c58:	b0 e0       	ldi	r27, 0x00	; 0
  asm volatile (
     c5a:	0c 01       	movw	r0, r24
     c5c:	0e 94 e9 09 	call	0x13d2 <__eeprom_write_word_1C1D1E>
	 
    eeprom_write_word(pohas,po_kh);
	di_AD(po_kh,0);;
     c60:	60 e0       	ldi	r22, 0x00	; 0
     c62:	80 91 08 01 	lds	r24, 0x0108
     c66:	90 91 09 01 	lds	r25, 0x0109
     c6a:	0e 94 d5 03 	call	0x7aa <di_AD>
	daly();daly();daly();
     c6e:	0e 94 97 02 	call	0x52e <daly>
     c72:	0e 94 97 02 	call	0x52e <daly>
     c76:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     c7a:	0e 94 97 02 	call	0x52e <daly>
     c7e:	0e 94 97 02 	call	0x52e <daly>
     c82:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     c86:	0e 94 97 02 	call	0x52e <daly>
     c8a:	0e 94 97 02 	call	0x52e <daly>
     c8e:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     c92:	0e 94 97 02 	call	0x52e <daly>
     c96:	0e 94 97 02 	call	0x52e <daly>
     c9a:	0e 94 97 02 	call	0x52e <daly>
	daly();daly();daly();
     c9e:	0e 94 97 02 	call	0x52e <daly>
     ca2:	0e 94 97 02 	call	0x52e <daly>
     ca6:	0e 94 97 02 	call	0x52e <daly>
	PWM_our=po_kl;
     caa:	80 91 01 01 	lds	r24, 0x0101
     cae:	90 91 02 01 	lds	r25, 0x0102
     cb2:	9b bd       	out	0x2b, r25	; 43
     cb4:	8a bd       	out	0x2a, r24	; 42
      }
 
 }
      adc_sy();
     cb6:	0e 94 4a 01 	call	0x294 <adc_sy>
	  mo_tep= moxin(1024,0,vo_kh,0,vo2);
     cba:	00 91 b0 00 	lds	r16, 0x00B0
     cbe:	10 91 b1 00 	lds	r17, 0x00B1
     cc2:	20 e0       	ldi	r18, 0x00	; 0
     cc4:	30 e0       	ldi	r19, 0x00	; 0
     cc6:	40 91 97 00 	lds	r20, 0x0097
     cca:	50 91 98 00 	lds	r21, 0x0098
     cce:	b9 01       	movw	r22, r18
     cd0:	80 e0       	ldi	r24, 0x00	; 0
     cd2:	94 e0       	ldi	r25, 0x04	; 4
     cd4:	0e 94 07 04 	call	0x80e <moxin>
	  vo= moxin(V_max,0,1024,0,mo_tep);
     cd8:	8c 01       	movw	r16, r24
     cda:	20 e0       	ldi	r18, 0x00	; 0
     cdc:	30 e0       	ldi	r19, 0x00	; 0
     cde:	40 e0       	ldi	r20, 0x00	; 0
     ce0:	54 e0       	ldi	r21, 0x04	; 4
     ce2:	b9 01       	movw	r22, r18
     ce4:	8c e2       	ldi	r24, 0x2C	; 44
     ce6:	91 e0       	ldi	r25, 0x01	; 1
     ce8:	0e 94 07 04 	call	0x80e <moxin>
     cec:	90 93 85 00 	sts	0x0085, r25
     cf0:	80 93 84 00 	sts	0x0084, r24
	  di_Vo(vo,1);
     cf4:	61 e0       	ldi	r22, 0x01	; 1
     cf6:	0e 94 6d 03 	call	0x6da <di_Vo>
   if(int_==1){if(PWM_our<2000)PWM_our++;int_=0;}
     cfa:	80 91 04 01 	lds	r24, 0x0104
     cfe:	81 30       	cpi	r24, 0x01	; 1
     d00:	61 f4       	brne	.+24     	; 0xd1a <po_xiao+0x1f2>
     d02:	8a b5       	in	r24, 0x2a	; 42
     d04:	9b b5       	in	r25, 0x2b	; 43
     d06:	80 5d       	subi	r24, 0xD0	; 208
     d08:	97 40       	sbci	r25, 0x07	; 7
     d0a:	28 f4       	brcc	.+10     	; 0xd16 <po_xiao+0x1ee>
     d0c:	8a b5       	in	r24, 0x2a	; 42
     d0e:	9b b5       	in	r25, 0x2b	; 43
     d10:	01 96       	adiw	r24, 0x01	; 1
     d12:	9b bd       	out	0x2b, r25	; 43
     d14:	8a bd       	out	0x2a, r24	; 42
     d16:	10 92 04 01 	sts	0x0104, r1
   if(int_==2){if(PWM_our>0)PWM_our--;int_=0;}
     d1a:	80 91 04 01 	lds	r24, 0x0104
     d1e:	82 30       	cpi	r24, 0x02	; 2
     d20:	59 f4       	brne	.+22     	; 0xd38 <po_xiao+0x210>
     d22:	8a b5       	in	r24, 0x2a	; 42
     d24:	9b b5       	in	r25, 0x2b	; 43
     d26:	89 2b       	or	r24, r25
     d28:	29 f0       	breq	.+10     	; 0xd34 <po_xiao+0x20c>
     d2a:	8a b5       	in	r24, 0x2a	; 42
     d2c:	9b b5       	in	r25, 0x2b	; 43
     d2e:	01 97       	sbiw	r24, 0x01	; 1
     d30:	9b bd       	out	0x2b, r25	; 43
     d32:	8a bd       	out	0x2a, r24	; 42
     d34:	10 92 04 01 	sts	0x0104, r1
   
   if(key==fun){key=0;return;}
     d38:	80 91 d6 00 	lds	r24, 0x00D6
     d3c:	80 34       	cpi	r24, 0x40	; 64
     d3e:	09 f0       	breq	.+2      	; 0xd42 <po_xiao+0x21a>
     d40:	fd ce       	rjmp	.-518    	; 0xb3c <po_xiao+0x14>
     d42:	10 92 d6 00 	sts	0x00D6, r1
     d46:	cf 91       	pop	r28
     d48:	1f 91       	pop	r17
     d4a:	0f 91       	pop	r16
     d4c:	08 95       	ret

00000d4e <pwxd>:
 }
 }
 char xiao_chs[][8]={//上行
                       {"Vi_Xiao ",},
					   {"Vo_Xiao ",},
					  

⌨️ 快捷键说明

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