📄 elevator.lst
字号:
7bc: a4 e0 ldi r26, 0x04 ; 4
7be: 03 c0 rjmp .+6 ; 0x7c6 <out_put+0xc8>
7c0: ab e0 ldi r26, 0x0B ; 11
7c2: 01 c0 rjmp .+2 ; 0x7c6 <out_put+0xc8>
7c4: ac e0 ldi r26, 0x0C ; 12
break;
default:
break;
}
bin=a;
7c6: a0 93 fe 01 sts 0x01FE, r26
*seg=fnd[bin];
7ca: e0 91 de 01 lds r30, 0x01DE
7ce: f0 91 df 01 lds r31, 0x01DF
7d2: bb 27 eor r27, r27
7d4: a0 50 subi r26, 0x00 ; 0
7d6: bf 4f sbci r27, 0xFF ; 255
7d8: 8c 91 ld r24, X
7da: 80 83 st Z, r24
7dc: 08 95 ret
000007de <initializemotor>:
}
//=============================================================
// 功能模块: 电机模块
// 实现功能: 实现电机的正转反转与加速减速
// 包含函数: void initializemotor(void) 电机初始化,电机开始运转
// SIGNAL(SIG_OVERFLOW0) 定义溢出中断0,用于控制电机运转
// void go_step_1phase(void) 控制电机正转与反转
// SIGNAL(SIG_INTERRUPT0) 外部中断0控制电机加速
// SIGNAL(SIG_INTERRUPT6) 外部中断6控制电机减速
//=============================================================
void initializemotor(void)
{EIMSK=0X41;
7de: 81 e4 ldi r24, 0x41 ; 65
7e0: 89 bf out 0x39, r24 ; 57
EICRA=0X02;
7e2: 82 e0 ldi r24, 0x02 ; 2
7e4: 80 93 6a 00 sts 0x006A, r24
EICRB=0X20;
7e8: 80 e2 ldi r24, 0x20 ; 32
7ea: 8a bf out 0x3a, r24 ; 58
TCNT0=stepspeed;
7ec: 80 91 11 01 lds r24, 0x0111
7f0: 82 bf out 0x32, r24 ; 50
TCCR0=0X07;
7f2: 87 e0 ldi r24, 0x07 ; 7
7f4: 83 bf out 0x33, r24 ; 51
TIMSK=0X01;
7f6: 81 e0 ldi r24, 0x01 ; 1
7f8: 87 bf out 0x37, r24 ; 55
sei();
7fa: 78 94 sei
7fc: 08 95 ret
000007fe <display>:
7fe: 4f 92 push r4
800: 5f 92 push r5
802: 6f 92 push r6
804: 7f 92 push r7
806: 8f 92 push r8
808: 9f 92 push r9
80a: af 92 push r10
80c: bf 92 push r11
80e: cf 92 push r12
810: df 92 push r13
812: ef 92 push r14
814: ff 92 push r15
816: 0f 93 push r16
818: 1f 93 push r17
81a: cf 93 push r28
81c: df 93 push r29
81e: 2c 01 movw r4, r24
820: 3b 01 movw r6, r22
822: cc 24 eor r12, r12
824: 21 e0 ldi r18, 0x01 ; 1
826: 82 2e mov r8, r18
828: 91 2c mov r9, r1
82a: 90 e8 ldi r25, 0x80 ; 128
82c: a9 2e mov r10, r25
82e: b1 2c mov r11, r1
830: 73 01 movw r14, r6
832: 82 01 movw r16, r4
834: c0 e0 ldi r28, 0x00 ; 0
836: d0 e0 ldi r29, 0x00 ; 0
838: 87 e0 ldi r24, 0x07 ; 7
83a: d8 2e mov r13, r24
83c: 16 c0 rjmp .+44 ; 0x86a <display+0x6c>
83e: e0 91 e2 01 lds r30, 0x01E2
842: f0 91 e3 01 lds r31, 0x01E3
846: c4 01 movw r24, r8
848: 0c 2e mov r0, r28
84a: 02 c0 rjmp .+4 ; 0x850 <display+0x52>
84c: 88 0f add r24, r24
84e: 99 1f adc r25, r25
850: 0a 94 dec r0
852: e2 f7 brpl .-8 ; 0x84c <display+0x4e>
854: 80 83 st Z, r24
856: 66 e4 ldi r22, 0x46 ; 70
858: 70 e0 ldi r23, 0x00 ; 0
85a: 84 e6 ldi r24, 0x64 ; 100
85c: 90 e0 ldi r25, 0x00 ; 0
85e: 0e 94 ea 02 call 0x5d4 <delay>
862: da 94 dec r13
864: 21 96 adiw r28, 0x01 ; 1
866: d7 fc sbrc r13, 7
868: 2a c0 rjmp .+84 ; 0x8be <display+0xc0>
86a: e0 91 f4 01 lds r30, 0x01F4
86e: f0 91 f5 01 lds r31, 0x01F5
872: d8 01 movw r26, r16
874: 8d 91 ld r24, X+
876: 8d 01 movw r16, r26
878: 80 83 st Z, r24
87a: e0 91 f6 01 lds r30, 0x01F6
87e: f0 91 f7 01 lds r31, 0x01F7
882: d7 01 movw r26, r14
884: 8d 91 ld r24, X+
886: 7d 01 movw r14, r26
888: 80 83 st Z, r24
88a: 80 91 c8 01 lds r24, 0x01C8
88e: 88 23 and r24, r24
890: b1 f2 breq .-84 ; 0x83e <display+0x40>
892: e0 91 e2 01 lds r30, 0x01E2
896: f0 91 e3 01 lds r31, 0x01E3
89a: c5 01 movw r24, r10
89c: 0c 2e mov r0, r28
89e: 02 c0 rjmp .+4 ; 0x8a4 <display+0xa6>
8a0: 95 95 asr r25
8a2: 87 95 ror r24
8a4: 0a 94 dec r0
8a6: e2 f7 brpl .-8 ; 0x8a0 <display+0xa2>
8a8: 80 83 st Z, r24
8aa: 66 e4 ldi r22, 0x46 ; 70
8ac: 70 e0 ldi r23, 0x00 ; 0
8ae: 84 e6 ldi r24, 0x64 ; 100
8b0: 90 e0 ldi r25, 0x00 ; 0
8b2: 0e 94 ea 02 call 0x5d4 <delay>
8b6: da 94 dec r13
8b8: 21 96 adiw r28, 0x01 ; 1
8ba: d7 fe sbrs r13, 7
8bc: d6 cf rjmp .-84 ; 0x86a <display+0x6c>
8be: c3 94 inc r12
8c0: be e0 ldi r27, 0x0E ; 14
8c2: bc 15 cp r27, r12
8c4: 08 f0 brcs .+2 ; 0x8c8 <display+0xca>
8c6: b4 cf rjmp .-152 ; 0x830 <display+0x32>
8c8: df 91 pop r29
8ca: cf 91 pop r28
8cc: 1f 91 pop r17
8ce: 0f 91 pop r16
8d0: ff 90 pop r15
8d2: ef 90 pop r14
8d4: df 90 pop r13
8d6: cf 90 pop r12
8d8: bf 90 pop r11
8da: af 90 pop r10
8dc: 9f 90 pop r9
8de: 8f 90 pop r8
8e0: 7f 90 pop r7
8e2: 6f 90 pop r6
8e4: 5f 90 pop r5
8e6: 4f 90 pop r4
8e8: 08 95 ret
000008ea <move>:
8ea: ef 92 push r14
8ec: ff 92 push r15
8ee: 0f 93 push r16
8f0: 1f 93 push r17
8f2: cf 93 push r28
8f4: df 93 push r29
8f6: 8c 01 movw r16, r24
8f8: 70 e0 ldi r23, 0x00 ; 0
8fa: 37 e0 ldi r19, 0x07 ; 7
8fc: 36 1b sub r19, r22
8fe: 80 91 10 01 lds r24, 0x0110
902: 48 2f mov r20, r24
904: 55 27 eor r21, r21
906: 44 0f add r20, r20
908: 55 1f adc r21, r21
90a: 44 0f add r20, r20
90c: 55 1f adc r21, r21
90e: 44 0f add r20, r20
910: 55 1f adc r21, r21
912: 7a 01 movw r14, r20
914: e3 2f mov r30, r19
916: ff 27 eor r31, r31
918: ea 52 subi r30, 0x2A ; 42
91a: fe 4f sbci r31, 0xFE ; 254
91c: d8 01 movw r26, r16
91e: a7 0f add r26, r23
920: b1 1d adc r27, r1
922: 8c 91 ld r24, X
924: 80 83 st Z, r24
926: 80 91 c8 01 lds r24, 0x01C8
92a: 88 23 and r24, r24
92c: e9 f4 brne .+58 ; 0x968 <move+0x7e>
92e: cc ee ldi r28, 0xEC ; 236
930: d1 e0 ldi r29, 0x01 ; 1
932: f7 01 movw r30, r14
934: e1 59 subi r30, 0x91 ; 145
936: fe 4f sbci r31, 0xFE ; 254
938: a6 ed ldi r26, 0xD6 ; 214
93a: b1 e0 ldi r27, 0x01 ; 1
93c: 27 e0 ldi r18, 0x07 ; 7
93e: 8d 91 ld r24, X+
940: 91 91 ld r25, Z+
942: 89 2b or r24, r25
944: 89 93 st Y+, r24
946: 21 50 subi r18, 0x01 ; 1
948: 27 ff sbrs r18, 7
94a: f9 cf rjmp .-14 ; 0x93e <move+0x54>
94c: 1d c0 rjmp .+58 ; 0x988 <move+0x9e>
94e: e3 2f mov r30, r19
950: ff 27 eor r31, r31
952: ea 52 subi r30, 0x2A ; 42
954: fe 4f sbci r31, 0xFE ; 254
956: d8 01 movw r26, r16
958: a7 0f add r26, r23
95a: b1 1d adc r27, r1
95c: 8c 91 ld r24, X
95e: 80 83 st Z, r24
960: 80 91 c8 01 lds r24, 0x01C8
964: 88 23 and r24, r24
966: 19 f3 breq .-58 ; 0x92e <move+0x44>
968: cc ee ldi r28, 0xEC ; 236
96a: d1 e0 ldi r29, 0x01 ; 1
96c: fa 01 movw r30, r20
96e: ea 58 subi r30, 0x8A ; 138
970: fe 4f sbci r31, 0xFE ; 254
972: a6 ed ldi r26, 0xD6 ; 214
974: b1 e0 ldi r27, 0x01 ; 1
976: 27 e0 ldi r18, 0x07 ; 7
978: 8d 91 ld r24, X+
97a: 90 81 ld r25, Z
97c: 31 97 sbiw r30, 0x01 ; 1
97e: 89 2b or r24, r25
980: 89 93 st Y+, r24
982: 21 50 subi r18, 0x01 ; 1
984: 27 ff sbrs r18, 7
986: f8 cf rjmp .-16 ; 0x978 <move+0x8e>
988: 3f 5f subi r19, 0xFF ; 255
98a: 7f 5f subi r23, 0xFF ; 255
98c: 61 50 subi r22, 0x01 ; 1
98e: f8 f6 brcc .-66 ; 0x94e <move+0x64>
990: df 91 pop r29
992: cf 91 pop r28
994: 1f 91 pop r17
996: 0f 91 pop r16
998: ff 90 pop r15
99a: ef 90 pop r14
99c: 08 95 ret
0000099e <matrix>:
99e: 0f 93 push r16
9a0: 1f 93 push r17
9a2: cf 93 push r28
9a4: 8c 01 movw r16, r24
9a6: c0 e0 ldi r28, 0x00 ; 0
9a8: 6c 2f mov r22, r28
9aa: c8 01 movw r24, r16
9ac: 0e 94 75 04 call 0x8ea <move>
9b0: 6b ec ldi r22, 0xCB ; 203
9b2: 71 e0 ldi r23, 0x01 ; 1
9b4: 8c ee ldi r24, 0xEC ; 236
9b6: 91 e0 ldi r25, 0x01 ; 1
9b8: 0e 94 ff 03 call 0x7fe <display>
9bc: cf 5f subi r28, 0xFF ; 255
9be: c8 30 cpi r28, 0x08 ; 8
9c0: 98 f3 brcs .-26 ; 0x9a8 <matrix+0xa>
9c2: e6 ed ldi r30, 0xD6 ; 214
9c4: f1 e0 ldi r31, 0x01 ; 1
9c6: c7 e0 ldi r28, 0x07 ; 7
9c8: 11 92 st Z+, r1
9ca: c1 50 subi r28, 0x01 ; 1
9cc: c7 ff sbrs r28, 7
9ce: fc cf rjmp .-8 ; 0x9c8 <matrix+0x2a>
9d0: cf 91 pop r28
9d2: 1f 91 pop r17
9d4: 0f 91 pop r16
9d6: 08 95 ret
000009d8 <go_step_1phase>:
}
SIGNAL(SIG_OVERFLOW0)
{ go_step_1phase();
TCNT0=stepspeed;}
void go_step_1phase(void)
{if(!dir)
9d8: 80 91 c8 01 lds r24, 0x01C8
9dc: 88 23 and r24, r24
9de: 99 f4 brne .+38 ; 0xa06 <go_step_1phase+0x2e>
{PORTD=(one_phase1[phase_pnt1++]<<4);phase_pnt1&=0x03;}
9e0: 90 91 ca 01 lds r25, 0x01CA
9e4: e9 2f mov r30, r25
9e6: ff 27 eor r31, r31
9e8: ea 5e subi r30, 0xEA ; 234
9ea: fe 4f sbci r31, 0xFE ; 254
9ec: 80 81 ld r24, Z
9ee: 82 95 swap r24
9f0: 80 7f andi r24, 0xF0 ; 240
9f2: 9f 5f subi r25, 0xFF ; 255
9f4: 90 93 ca 01 sts 0x01CA, r25
9f8: 82 bb out 0x12, r24 ; 18
9fa: 80 91 ca 01 lds r24, 0x01CA
9fe: 83 70 andi r24, 0x03 ; 3
a00: 80 93 ca 01 sts 0x01CA, r24
a04: 08 95 ret
else
{PORTD=(one_phase2[phase_pnt2++]<<4);phase_pnt2&=0x03;}
a06: 90 91 c9 01 lds r25, 0x01C9
a0a: e9 2f mov r30, r25
a0c: ff 27 eor r31, r31
a0e: ee 5e subi r30, 0xEE ; 238
a10: fe 4f sbci r31, 0xFE ; 254
a12: 80 81 ld r24, Z
a14: 82 95 swap r24
a16: 80 7f andi r24, 0xF0 ; 240
a18: 9f 5f subi r25, 0xFF ; 255
a1a: 90 93 c9 01 sts 0x01C9, r25
a1e: 82 bb out 0x12, r24 ; 18
a20: 80 91 c9 01 lds r24, 0x01C9
a24: 83 70 andi r24, 0x03 ; 3
a26: 80 93 c9 01 sts 0x01C9, r24
a2a: 08 95 ret
00000a2c <__vector_16>:
a2c: 1f 92 push r1
a2e: 0f 92 push r0
a30: 0f b6 in r0, 0x3f ; 63
a32: 0f 92 push r0
a34: 11 24 eor r1, r1
a36: 2f 93 push r18
a38: 3f 93 push r19
a3a: 4f 93 push r20
a3c: 5f 93 push r21
a3e: 6f 93 push r22
a40: 7f 93 push r23
a42: 8f 93 push r24
a44: 9f 93 push r25
a46: af 93 push r26
a48: bf 93 push r27
a4a: ef 93 push r30
a4c: ff 93 push r31
a4e: 0e 94 ec 04 call 0x9d8 <go_step_1phase>
a52: 80 91 11 01 lds r24, 0x0111
a56: 82 bf out 0x32, r24 ; 50
a58: ff 91 pop r31
a5a: ef 91 pop r30
a5c: bf 91 pop r27
a5e: af 91 pop r26
a60: 9f 91 pop r25
a62: 8f 91 pop r24
a64: 7f 91 pop r23
a66: 6f 91 pop r22
a68: 5f 91 pop r21
a6a: 4f 91 pop r20
a6c: 3f 91 pop r19
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -