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

📄 step motor.lst

📁 微型电机的驱动
💻 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 + -