📄 step motor.lst
字号:
文件:STEP MOTOR.c 盛群编译器版本 2.86 页次1
; 15: void isr_8(){} // timer/event 0
15 0000 __acsr EQU [023H]
15 0000 __adcr EQU [022H]
15 0000 __adrh EQU [021H]
15 0000 __adrl EQU [020H]
15 0000 __pwm EQU [01aH]
15 0000 __pdc EQU [019H]
15 0000 __pd EQU [018H]
15 0000 __pbc EQU [015H]
15 0000 __pb EQU [014H]
15 0000 __pac EQU [013H]
15 0000 __pa EQU [012H]
15 0000 __tmrc EQU [0eH]
15 0000 __tmr EQU [0dH]
15 0000 __intc EQU [0bH]
15 0000 __status EQU [0aH]
15 0000 __tblh EQU [08H]
15 0000 __tblp EQU [07H]
15 0000 __pcl EQU [06H]
15 0000 __acc EQU [05H]
15 0000 __mp1 EQU [03H]
15 0000 __iar1 EQU [02H]
15 0000 __mp0 EQU [01H]
15 0000 __iar0 EQU [00H]
15 0000 @@isr_8 .SECTION AT 08H 'CODE'
15 0000 2800 R JMP _isr_8
15 0000 @isr_8 .SECTION 'CODE'
15 0000 _isr_8 PROC
15 0000 0080 E MOV VA,A
15 0001 070A MOV A,[0AH]
15 0002 0080 E MOV VS,A
15 0003 L1:
15 0003 0700 E MOV A,VS
15 0004 008A MOV [0AH],A
15 0005 0700 E MOV A,VA
15 0006 0004 RETI
15 0007 _isr_8 ENDP
15 0000 @isr_8 .SECTION 'DATA'
; 17: void isr_14(){_nop();
17 0000 @@isr_14 .SECTION AT 014H 'CODE'
17 0000 2800 R JMP _isr_14
17 0000 @isr_14 .SECTION 'CODE'
17 0000 _isr_14 PROC
17 0000 0080 E MOV VA,A
17 0001 070A MOV A,[0AH]
17 0002 0080 E MOV VS,A
17 0003 0000 NOP
; 18: _nop();
18 0004 0000 NOP
; 19: _nop();}
19 0005 0000 NOP
19 0006 L2:
19 0006 0700 E MOV A,VS
19 0007 008A MOV [0AH],A
文件:STEP MOTOR.c 盛群编译器版本 2.86 页次2
文件:STEP MOTOR.C 盛群编译器版本 2.86 页次2
19 0008 0700 E MOV A,VA
19 0009 0004 RETI
19 000A _isr_14 ENDP
19 0000 @isr_14 .SECTION 'DATA'
; 22: {
22 0000 @@isr_4 .SECTION AT 04H 'CODE'
22 0000 2800 R JMP _isr_4
22 0000 @isr_4 .SECTION 'CODE'
22 0000 _isr_4 PROC
22 0000 0080 E MOV VA,A
22 0001 070A MOV A,[0AH]
22 0002 0080 E MOV VS,A
22 0003 L3:
22 0003 0700 E MOV A,VS
22 0004 008A MOV [0AH],A
22 0005 0700 E MOV A,VA
22 0006 0004 RETI
22 0007 _isr_4 ENDP
22 0000 @isr_4 .SECTION 'DATA'
; 26: {
26 0000 @io_init .SECTION 'CODE'
26 0000 PUBLIC _io_init
26 0000 _io_init PROC
; 27: _pac=0x00; // "1"=input
27 0000 1F13 CLR __pac
; 28: _pa=0x0f0;
28 0001 0FF0 MOV A,0f0h
28 0002 0092 MOV __pa,A
; 29: _pbc=0xff;
29 0003 1F95 SET __pbc
; 30: _pb=0x00;
30 0004 1F14 CLR __pb
30 0005 L4:
30 0005 0003 RET
30 0006 _io_init ENDP
; 34: {
34 0000 @left_1 .SECTION 'CODE'
34 0000 PUBLIC _left_1
34 0000 _left_1 PROC
; 33: char left_1(char left)
33 0000 PUBLIC left_10
33 0000 00 LOCAL left_10 DB ? ; left
; 37: _acc=0x80;
37 0000 0F80 MOV A,080h
37 0001 0085 MOV __acc,A
; 38: result=(_acc&left);
38 0002 0705 MOV A,__acc
38 0003 0600 R AND A,left_10
文件:STEP MOTOR.c 盛群编译器版本 2.86 页次3
38 0004 0080 R MOV b0_5,A
38 0005 0700 R MOV A,b0_5
38 0006 0080 R MOV CR1,A
; 39: _acc=result;
39 0007 0700 R MOV A,CR1
39 0008 0085 MOV __acc,A
; 40: mid=(left<<1);
文件:STEP MOTOR.C 盛群编译器版本 2.86 页次3
40 0009 340A CLR [0AH].0
40 000A 1A00 R RLCA left_10
40 000B 0080 R MOV CR2,A
; 41: _acc=mid;
41 000C 0700 R MOV A,CR2
41 000D 0085 MOV __acc,A
; 42: if(result)
42 000E 1080 R SZ CR1
42 000F 2800 R JMP L12
42 0010 2800 R JMP L6
42 0011 L12:
; 43: {_acc=_acc+1;
43 0011 1485 INC __acc
43 0012 L6:
; 45: result=_acc;
45 0012 0705 MOV A,__acc
45 0013 0080 R MOV CR1,A
; 46: _pa=result;
46 0014 0700 R MOV A,CR1
46 0015 0092 MOV __pa,A
; 47: _pa=0x0f0;
47 0016 0FF0 MOV A,0f0h
47 0017 0092 MOV __pa,A
; 48: for(u=0;u<100;i++);
48 0018 1F00 R CLR _u
48 0019 2800 R JMP L11
48 001A L8:
48 001A L9:
48 001A 1480 R INC _i
48 001B L11:
48 001B 0700 R MOV A,_u
48 001C 0A64 SUB A,064h
48 001D 380A SNZ [0ah].0
48 001E 2800 R JMP L8
48 001F L5:
48 001F 0003 RET
48 0001 00 LOCAL b0_5 DB ?
; 35: char result;
35 0002 00 LOCAL CR1 DB ? ; result
; 36: char mid;
文件:STEP MOTOR.c 盛群编译器版本 2.86 页次4
36 0003 00 LOCAL CR2 DB ? ; mid
36 0020 _left_1 ENDP
; 51: {
51 0000 @MAIN .SECTION 'CODE'
51 0000 _main PROC
51 0000 begin:
; 54: io_init();
54 0000 2000 R CALL _io_init
; 55: _pa=0x0f0;
55 0001 0FF0 MOV A,0f0h
55 0002 0092 MOV __pa,A
; 57: c_result=0xf7;
文件:STEP MOTOR.C 盛群编译器版本 2.86 页次4
57 0003 0FF7 MOV A,0f7h
57 0004 0080 R MOV CR3,A
; 59: for(i=0;i<100;i++)
59 0005 1F00 R CLR _i
59 0006 2800 R JMP L17
59 0007 L14:
; 61: c_result=left_1(c_result);
61 0007 0700 R MOV A,CR3
61 0008 0080 R MOV left_10,A
61 0009 2000 R CALL _left_1
61 000A 0080 R MOV CR3,A
; 62: if(c_result==0x07f)
62 000B 0F7F MOV A,07fh
62 000C 0400 R XOR A,CR3
62 000D 390A SNZ [0ah].2
62 000E 2800 R JMP L18
; 63: { c_result=0x0f7;}
63 000F 0FF7 MOV A,0f7h
63 0010 0080 R MOV CR3,A
63 0011 L18:
63 0011 L15:
; 59: for(i=0;i<100;i++)
59 0011 1480 R INC _i
59 0012 L17:
59 0012 0700 R MOV A,_i
59 0013 0A64 SUB A,064h
59 0014 380A SNZ [0ah].0
59 0015 2800 R JMP L14
59 0016 L13:
; 65: }
65 0016 2800 R JMP $
; 53: char c_result;
53 0000 00 LOCAL CR3 DB ? ; c_result
53 0017 _main ENDP
53 0017 PUBLIC _u
文件:STEP MOTOR.c 盛群编译器版本 2.86 页次5
53 0000 @u .SECTION 'DATA'
; 6: unsigned int i,u;
6 0000 00 _u DB ? ; u
6 0001 PUBLIC _i
6 0000 @i .SECTION 'DATA'
6 0000 00 _i DB ? ; i
6 0001 PUBLIC _percent_light
6 0000 @percent_light .SECTION 'DATA'
; 5: unsigned int percent_light;
5 0000 00 _percent_light DB ? ; percent_light
5 0001 PUBLIC _highbit
5 0000 @highbit .SECTION 'DATA'
; 4: unsigned char highbit;
4 0000 00 _highbit DB ? ; highbit
文件:STEP MOTOR.C 盛群编译器版本 2.86 页次5
4 0001 PUBLIC _mtp
4 0000 @mtp .SECTION 'DATA'
; 3: char mtp;
3 0000 00 _mtp DB ? ; mtp
; 50: void main()
50 0000 STARTSEC .SECTION 'CODE'
50 0000 STARTUP:
50 0000 0003 RET
50 0001 EXTERN VA:BYTE
50 0001 EXTERN VS:BYTE
50 0000 @CODE .SECTION AT 0 'CODE'
50 0000 2800 R JMP begin
50 0001 @DUMMY PROC
50 0001 2000 R CALL _main
50 0002 @DUMMY ENDP
50 0002 ROMBANK 0 @DUMMYNOP
50 0000 @DUMMYNOP .SECTION AT 03ffh 'CODE'
50 0000 0000 nop
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -