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

📄 step_motor.lss

📁 1. 以单极 2相磁化方式使步进电机正向旋转 2. 按中断开关的话
💻 LSS
字号:

step_motor.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000004  00800100  000001a4  00000238  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         000001a4  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          00000001  00800104  00800104  0000023c  2**0
                  ALLOC
  3 .noinit       00000000  00800105  00800105  0000023c  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  0000023c  2**0
                  CONTENTS
  5 .stab         000002f4  00000000  00000000  0000023c  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000570  00000000  00000000  00000530  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 46 00 	jmp	0x8c
   4:	0c 94 63 00 	jmp	0xc6
   8:	0c 94 63 00 	jmp	0xc6
   c:	0c 94 63 00 	jmp	0xc6
  10:	0c 94 63 00 	jmp	0xc6
  14:	0c 94 63 00 	jmp	0xc6
  18:	0c 94 63 00 	jmp	0xc6
  1c:	0c 94 63 00 	jmp	0xc6
  20:	0c 94 63 00 	jmp	0xc6
  24:	0c 94 63 00 	jmp	0xc6
  28:	0c 94 63 00 	jmp	0xc6
  2c:	0c 94 63 00 	jmp	0xc6
  30:	0c 94 63 00 	jmp	0xc6
  34:	0c 94 63 00 	jmp	0xc6
  38:	0c 94 63 00 	jmp	0xc6
  3c:	0c 94 63 00 	jmp	0xc6
  40:	0c 94 63 00 	jmp	0xc6
  44:	0c 94 63 00 	jmp	0xc6
  48:	0c 94 63 00 	jmp	0xc6
  4c:	0c 94 63 00 	jmp	0xc6
  50:	0c 94 63 00 	jmp	0xc6
  54:	0c 94 63 00 	jmp	0xc6
  58:	0c 94 63 00 	jmp	0xc6
  5c:	0c 94 63 00 	jmp	0xc6
  60:	0c 94 63 00 	jmp	0xc6
  64:	0c 94 63 00 	jmp	0xc6
  68:	0c 94 63 00 	jmp	0xc6
  6c:	0c 94 63 00 	jmp	0xc6
  70:	0c 94 63 00 	jmp	0xc6
  74:	0c 94 63 00 	jmp	0xc6
  78:	0c 94 63 00 	jmp	0xc6
  7c:	0c 94 63 00 	jmp	0xc6
  80:	0c 94 63 00 	jmp	0xc6
  84:	0c 94 63 00 	jmp	0xc6
  88:	0c 94 63 00 	jmp	0xc6

0000008c <__ctors_end>:
  8c:	11 24       	eor	r1, r1
  8e:	1f be       	out	0x3f, r1	; 63
  90:	cf ef       	ldi	r28, 0xFF	; 255
  92:	d0 e1       	ldi	r29, 0x10	; 16
  94:	de bf       	out	0x3e, r29	; 62
  96:	cd bf       	out	0x3d, r28	; 61

00000098 <__do_copy_data>:
  98:	11 e0       	ldi	r17, 0x01	; 1
  9a:	a0 e0       	ldi	r26, 0x00	; 0
  9c:	b1 e0       	ldi	r27, 0x01	; 1
  9e:	e4 ea       	ldi	r30, 0xA4	; 164
  a0:	f1 e0       	ldi	r31, 0x01	; 1
  a2:	00 e0       	ldi	r16, 0x00	; 0
  a4:	0b bf       	out	0x3b, r16	; 59
  a6:	02 c0       	rjmp	.+4      	; 0xac

000000a8 <.__do_copy_data_loop>:
  a8:	07 90       	elpm	r0, Z+
  aa:	0d 92       	st	X+, r0

000000ac <.__do_copy_data_start>:
  ac:	a4 30       	cpi	r26, 0x04	; 4
  ae:	b1 07       	cpc	r27, r17
  b0:	d9 f7       	brne	.-10     	; 0xa8

000000b2 <__do_clear_bss>:
  b2:	11 e0       	ldi	r17, 0x01	; 1
  b4:	a4 e0       	ldi	r26, 0x04	; 4
  b6:	b1 e0       	ldi	r27, 0x01	; 1
  b8:	01 c0       	rjmp	.+2      	; 0xbc

000000ba <.do_clear_bss_loop>:
  ba:	1d 92       	st	X+, r1

000000bc <.do_clear_bss_start>:
  bc:	a5 30       	cpi	r26, 0x05	; 5
  be:	b1 07       	cpc	r27, r17
  c0:	e1 f7       	brne	.-8      	; 0xba
  c2:	0c 94 65 00 	jmp	0xca

000000c6 <__bad_interrupt>:
  c6:	0c 94 00 00 	jmp	0x0

000000ca <main>:
void delay(unsigned int d1,unsigned int d2);
void go_step_2phase(unsigned int time);

int main(void)
{
  ca:	cf ef       	ldi	r28, 0xFF	; 255
  cc:	d0 e1       	ldi	r29, 0x10	; 16
  ce:	de bf       	out	0x3e, r29	; 62
  d0:	cd bf       	out	0x3d, r28	; 61
     DDRD=0xf0;
  d2:	80 ef       	ldi	r24, 0xF0	; 240
  d4:	80 93 31 00 	sts	0x0031, r24

	 while(1){
	     go_step_2phase(700);
  d8:	8c eb       	ldi	r24, 0xBC	; 188
  da:	92 e0       	ldi	r25, 0x02	; 2
  dc:	0e 94 a6 00 	call	0x14c
  e0:	fb cf       	rjmp	.-10     	; 0xd8

000000e2 <delay>:
		 }
	 }
	 
void delay(unsigned int d1,unsigned int d2)
{
  e2:	cf 93       	push	r28
  e4:	df 93       	push	r29
  e6:	cd b7       	in	r28, 0x3d	; 61
  e8:	de b7       	in	r29, 0x3e	; 62
  ea:	28 97       	sbiw	r28, 0x08	; 8
  ec:	0f b6       	in	r0, 0x3f	; 63
  ee:	f8 94       	cli
  f0:	de bf       	out	0x3e, r29	; 62
  f2:	0f be       	out	0x3f, r0	; 63
  f4:	cd bf       	out	0x3d, r28	; 61
  f6:	89 83       	std	Y+1, r24	; 0x01
  f8:	9a 83       	std	Y+2, r25	; 0x02
  fa:	6b 83       	std	Y+3, r22	; 0x03
  fc:	7c 83       	std	Y+4, r23	; 0x04
     unsigned int i,j;
	 
	 for(i=0;i<d1;i++){
  fe:	1d 82       	std	Y+5, r1	; 0x05
 100:	1e 82       	std	Y+6, r1	; 0x06
 102:	2d 81       	ldd	r18, Y+5	; 0x05
 104:	3e 81       	ldd	r19, Y+6	; 0x06
 106:	89 81       	ldd	r24, Y+1	; 0x01
 108:	9a 81       	ldd	r25, Y+2	; 0x02
 10a:	28 17       	cp	r18, r24
 10c:	39 07       	cpc	r19, r25
 10e:	a8 f4       	brcc	.+42     	; 0x13a
	     for(j=0;j<d2;j++);
 110:	1f 82       	std	Y+7, r1	; 0x07
 112:	18 86       	std	Y+8, r1	; 0x08
 114:	2f 81       	ldd	r18, Y+7	; 0x07
 116:	38 85       	ldd	r19, Y+8	; 0x08
 118:	8b 81       	ldd	r24, Y+3	; 0x03
 11a:	9c 81       	ldd	r25, Y+4	; 0x04
 11c:	28 17       	cp	r18, r24
 11e:	39 07       	cpc	r19, r25
 120:	30 f4       	brcc	.+12     	; 0x12e
 122:	8f 81       	ldd	r24, Y+7	; 0x07
 124:	98 85       	ldd	r25, Y+8	; 0x08
 126:	01 96       	adiw	r24, 0x01	; 1
 128:	8f 83       	std	Y+7, r24	; 0x07
 12a:	98 87       	std	Y+8, r25	; 0x08
 12c:	f3 cf       	rjmp	.-26     	; 0x114
 12e:	8d 81       	ldd	r24, Y+5	; 0x05
 130:	9e 81       	ldd	r25, Y+6	; 0x06
 132:	01 96       	adiw	r24, 0x01	; 1
 134:	8d 83       	std	Y+5, r24	; 0x05
 136:	9e 83       	std	Y+6, r25	; 0x06
 138:	e4 cf       	rjmp	.-56     	; 0x102
 13a:	28 96       	adiw	r28, 0x08	; 8
 13c:	0f b6       	in	r0, 0x3f	; 63
 13e:	f8 94       	cli
 140:	de bf       	out	0x3e, r29	; 62
 142:	0f be       	out	0x3f, r0	; 63
 144:	cd bf       	out	0x3d, r28	; 61
 146:	df 91       	pop	r29
 148:	cf 91       	pop	r28
 14a:	08 95       	ret

0000014c <go_step_2phase>:
		 }
	 }
	 
void go_step_2phase(unsigned int time)
{
 14c:	cf 93       	push	r28
 14e:	df 93       	push	r29
 150:	cd b7       	in	r28, 0x3d	; 61
 152:	de b7       	in	r29, 0x3e	; 62
 154:	22 97       	sbiw	r28, 0x02	; 2
 156:	0f b6       	in	r0, 0x3f	; 63
 158:	f8 94       	cli
 15a:	de bf       	out	0x3e, r29	; 62
 15c:	0f be       	out	0x3f, r0	; 63
 15e:	cd bf       	out	0x3d, r28	; 61
 160:	89 83       	std	Y+1, r24	; 0x01
 162:	9a 83       	std	Y+2, r25	; 0x02
     PORTD=two_phase[phase_pnt++]<<4;
 164:	a4 e0       	ldi	r26, 0x04	; 4
 166:	b1 e0       	ldi	r27, 0x01	; 1
 168:	2c 91       	ld	r18, X
 16a:	82 2f       	mov	r24, r18
 16c:	99 27       	eor	r25, r25
 16e:	fc 01       	movw	r30, r24
 170:	e0 50       	subi	r30, 0x00	; 0
 172:	ff 4f       	sbci	r31, 0xFF	; 255
 174:	80 81       	ld	r24, Z
 176:	82 95       	swap	r24
 178:	80 7f       	andi	r24, 0xF0	; 240
 17a:	2f 5f       	subi	r18, 0xFF	; 255
 17c:	2c 93       	st	X, r18
 17e:	80 93 32 00 	sts	0x0032, r24
	 phase_pnt&0x03;
 182:	80 91 04 01 	lds	r24, 0x0104
	 delay(time,100);
 186:	64 e6       	ldi	r22, 0x64	; 100
 188:	70 e0       	ldi	r23, 0x00	; 0
 18a:	89 81       	ldd	r24, Y+1	; 0x01
 18c:	9a 81       	ldd	r25, Y+2	; 0x02
 18e:	0e 94 71 00 	call	0xe2
 192:	22 96       	adiw	r28, 0x02	; 2
 194:	0f b6       	in	r0, 0x3f	; 63
 196:	f8 94       	cli
 198:	de bf       	out	0x3e, r29	; 62
 19a:	0f be       	out	0x3f, r0	; 63
 19c:	cd bf       	out	0x3d, r28	; 61
 19e:	df 91       	pop	r29
 1a0:	cf 91       	pop	r28
 1a2:	08 95       	ret

⌨️ 快捷键说明

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