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

📄 步进电机.txt

📁 machine pulse control
💻 TXT
字号:
 bujin
;晶振12MHZ,2006-06-26, hujia1995@sina.com
  CP1    EQU  P0.2 ;脉冲输出
  GK1   EQU  P1.3 ;节拍信号
          
  GK1BIT  BIT  00H
  GK1BIT0 BIT  01H
  GK1BITL BIT  02H    
  CPBIT  BIT  03H
  S1BIT  BIT  04H
        S2BIT  BIT  05H
        S3BIT  BIT  06H
  
  T0H   EQU 030H
  T0L   EQU 031H  
  PULSEH  EQU 032H ;需要发的脉冲数
  PULSEL  EQU 033H
  RNUMH  EQU 034H ;脉冲计数
  RNUML  EQU 035H
  ENUMH  EQU 036H
  ENUML  EQU 037H
  SNUMH  EQU 038H
  SNUML  EQU 039H    
  TL   EQU 03AH  
  SUDU  EQU 03BH ;最高速
  
  ORG    0000H
        LJMP   MAIN
        ORG    000BH 
        MOV TL,TL0
        LJMP   CTC0  
  ORG 30H
MAIN: MOV P0,#0FFH
  MOV   SP,#080H
  MOV TMOD,#011H
    
  MOV A,#0FFH
        MOV B,#0AH
DLAY: NOP
  DJNZ ACC,DLAY
  MOV A,#0FFH
  DJNZ B,DLAY  
  
  MOV SUDU,#09H  ;脉冲最高频率在此修改
  MOV PULSEH,#004H ;需要发的脉冲数在此修改,4B0H=1200
  MOV PULSEL,#0B0H
  LCALL LNK
   
  CLR  GK1BITL
  MOV TH0,#00H
  MOV TL0,#00H  
  SETB   ET0
        SETB   TR0 
        SETB EA
  
   
LOOP: NOP
  NOP
  NOP
  
  MOV C,GK1
  JC  JR10
  JNB  GK1BIT0,JR11
  AJMP JR12
JR10: JB  GK1BIT0,JR11
  AJMP JR12
JR11: MOV GK1BIT,C
JR12: MOV GK1BIT0,C
  
  JB  GK1BIT,LOOP1
  JNB  GK1BITL,LOOP1
  JB  CPBIT,LOOP1   
  CLR  TR0
  MOV RNUMH,#00H
  MOV RNUML,#00H
  CLR  S1BIT 
        CLR  S3BIT
        SETB S2BIT
        MOV T0H,#0F7H
        MOV T0L,#06FH
        SETB CPBIT
        SETB TR0
        
LOOP1: MOV C,GK1BIT
  MOV GK1BITL,C
 
  LJMP LOOP 
  NOP
  NOP
  NOP  

;===  
CTC0:   PUSH   PSW 
        PUSH   DPH  
        PUSH   DPL  
        PUSH   ACC  
        MOV A,TL
  MOV  DPTR,#REP
  JMP  @A+DPTR
REP: NOP
  NOP
  NOP
  NOP
  NOP
  NOP
  NOP
  NOP
  NOP
  NOP
  NOP
  NOP
  NOP
  
  MOV   TH0,T0H 
        MOV   TL0,T0L  
  JB  CPBIT,RP01
  LJMP RP4
RP01: CLR  CP1
  MOV A,RNUML  
  ADD A,#01H
  MOV RNUML,A
  MOV A,RNUMH
  ADDC A,#00H
  MOV RNUMH,A
  JB  S3BIT,RPE0 
  JB  S1BIT,JRPS0  
  JB  S2BIT,RPQ0  
  LJMP RP2  

RPQ0: MOV A,RNUML 
  CJNE A,ENUML,RPQ1
  MOV A,RNUMH
  CJNE A,ENUMH,RPQ1
  CLR  S2BIT
  SETB S3BIT
  LJMP RPE0
  
RPQ1: MOV A,RNUML
  ADD A,RNUML
  MOV R3,A
  MOV A,RNUMH  
  ADDC A,RNUMH  
  MOV R2,A
   MOV DPTR,#TAB0
   MOV A,DPL
  ADD A,R3
  MOV DPL,A
  MOV A,DPH
  ADDC A,R2
  MOV DPH,A
  
  MOV A,#00H
  MOVC A,@A+DPTR
  MOV T0H,A
  MOV A,#01H
  MOVC A,@A+DPTR
  MOV T0L,A 
  ADD A,#022H
  MOV T0L,A
  MOV A,T0H
  ADDC A,#00H
  MOV T0H,A
  LJMP RP2
          
RPE0: MOV A,RNUML
  CJNE A,SNUML,RPE1
  MOV A,RNUMH
  CJNE A,SNUMH,RPE1
  CLR  S2BIT
  CLR  S3BIT
  SETB S1BIT
JRPS0: LJMP RPS0

RPE1: MOV DPTR,#TAB0
   MOV A,R3
  ADD A,DPL
  MOV DPL,A
   MOV A,R2
  ADDC A,DPH
  MOV DPH,A
  MOV A,#00H
  MOVC A,@A+DPTR
  MOV T0H,A
  MOV A,#01H
  MOVC A,@A+DPTR
  MOV T0L,A 
  ADD A,#022H
  MOV T0L,A
  MOV A,T0H
  ADDC A,#00H
  MOV T0H,A
  LJMP RP2

RPS0: CLR  C 
  MOV A,PULSEL
  SUBB A,RNUML   
  MOV R3,A
  MOV A,PULSEH  
  SUBB A,RNUMH
  MOV R2,A
  MOV A,R3  
  ADD A,R3
  MOV R3,A
  MOV A,R2
  ADDC A,R2
  MOV R2,A
  
   MOV DPTR,#TAB0
   MOV A,DPL
  ADD A,R3
  MOV DPL,A
  MOV A,DPH
  ADDC A,R2
  MOV DPH,A
  
  MOV A,#00H
  MOVC A,@A+DPTR
  MOV T0H,A
  MOV A,#01H
  MOVC A,@A+DPTR
  MOV T0L,A 
  ADD A,#022H
  MOV T0L,A
  MOV A,T0H
  ADDC A,#00H
  MOV T0H,A
  ;=======
RP2: MOV A,RNUML
  CLR  C
  SUBB A,PULSEL
  MOV A,RNUMH
  SUBB A,PULSEH
  JC  RP4
  CLR  CPBIT
  CLR  S1BIT
  MOV T0H,#0F7H
  MOV T0L,#06FH
   
RP4: POP    ACC 
        POP    DPL 
        POP    DPH 
        POP    PSW
        SETB CP1
        RETI
;===============================
LNK: MOV A,SUDU
  CLR  C
  RLC  A
  MOV  DPTR,#SXS  
  JMP  @A+DPTR
SXS: AJMP  SX0  ;0.45K
  AJMP  SX1  ;1K
  AJMP  SX2  ;1.5K
  AJMP  SX3  ;2K
  AJMP  SX4  ;2.5K
  AJMP  SX5  ;3K
  AJMP  SX6  ;4K
  AJMP  SX7  ;5K
  AJMP  SX8  ;6K
  AJMP  SX9  ;7K
  NOP
  NOP
  NOP
  NOP
SX0: MOV ENUML,#002H 
  MOV ENUMH,#000H
  AJMP XSE
SX1: MOV ENUML,#009H  ;1K
  MOV ENUMH,#000H
  MOV SNUML,#018H
  MOV SNUMH,#0FCH
  AJMP XSD  
SX2: MOV ENUML,#017H  ;1.5K
  MOV ENUMH,#000H
  MOV SNUML,#065H
  MOV SNUMH,#0FDH
  AJMP XSD
SX3: MOV ENUML,#02AH  ;2K
  MOV ENUMH,#000H
  MOV SNUML,#00CH
  MOV SNUMH,#0FEH
  AJMP XSD
SX4: MOV ENUML,#043H  ;2.5K
  MOV ENUMH,#000H
  MOV SNUML,#070H
  MOV SNUMH,#0FEH
  AJMP XSD  
SX5: MOV ENUML,#061H  ;3K
  MOV ENUMH,#000H
  MOV SNUML,#0B2H
  MOV SNUMH,#0FEH
  AJMP XSD 
SX6: MOV ENUML,#0B0H  ;4K
  MOV ENUMH,#000H
  MOV SNUML,#006H
  MOV SNUMH,#0FFH
  AJMP XSD 
SX7: MOV ENUML,#0B0H  ;5K
  MOV ENUMH,#000H
  MOV SNUML,#006H
  MOV SNUMH,#0FFH
  AJMP XSD 
SX8: MOV ENUML,#0B0H  ;6K
  MOV ENUMH,#000H
  MOV SNUML,#006H
  MOV SNUMH,#0FFH
  AJMP XSD 
SX9: MOV ENUML,#0B0H  ;7K
  MOV ENUMH,#000H
  MOV SNUML,#006H
  MOV SNUMH,#0FFH

XSD: 
  MOV A,ENUML
  ADD A,ENUML
  MOV R3,A
  MOV A,ENUMH  
  ADDC A,ENUMH  
  MOV R2,A
   MOV DPTR,#TAB0
   MOV A,DPL
  ADD A,R3
  MOV DPL,A
  MOV A,DPH
  ADDC A,R2
  MOV DPH,A
  
  MOV A,#00H
  MOVC A,@A+DPTR
  MOV B,A
  MOV A,#01H
  MOVC A,@A+DPTR
  CLR  C
  SUBB A,SNUML
  MOV A,B
  SUBB A,SNUMH
  JNC  XSE
  MOV A,ENUML
  ADD A,#01H
  MOV ENUML,A
  MOV A,ENUMH
  ADDC A,#00H
  MOV ENUMH,A
  MOV A,ENUML
  CLR  C
  SUBB A,#0B0H
  MOV A,ENUMH
  SUBB A,#000H
  JC  XSD
  MOV ENUMH,#000H 
  MOV ENUML,#0B0H
    
XSE: CLR  C
  MOV A,ENUML
  RLC  A
  MOV SNUML,A
  MOV A,ENUMH
  RLC  A
  MOV SNUMH,A
  MOV A,PULSEL
  CLR  C
  SUBB A,SNUML
  MOV A,PULSEH
  SUBB A,SNUMH
  JNC  DL21
  MOV A,PULSEH
  CLR  C
  RRC A
  MOV ENUMH,A 
  MOV A,PULSEL
  RRC A
  MOV ENUML,A
DL21: CLR  C
  MOV A,PULSEL  
  SUBB A,ENUML
  MOV SNUML,A
  MOV A,PULSEH
  SUBB A,ENUMH
  MOV SNUMH,A
  RET


TAB0:
 DB 0F7H, 06FH
 DB 0F7H, 0DCH
 
 DB 0F8H, 01EH
 DB 0F9H, 044H
 DB 0FAH, 006H
 DB 0FAH, 092H
 DB 0FAH, 0FDH
 DB 0FBH, 053H
 DB 0FBH, 09AH
 DB 0FBH, 0D5H
 DB 0FCH, 008H
 DB 0FCH, 034H
 DB 0FCH, 05BH
 DB 0FCH, 07EH
 DB 0FCH, 09DH
 DB 0FCH, 0B9H
 DB 0FCH, 0D2H
 DB 0FCH, 0EAH
 DB 0FCH, 0FFH
 DB 0FDH, 013H
 DB 0FDH, 025H
 DB 0FDH, 036H
 DB 0FDH, 046H
 DB 0FDH, 055H
 DB 0FDH, 063H
 DB 0FDH, 070H
 DB 0FDH, 07CH
 DB 0FDH, 088H
 DB 0FDH, 093H
 DB 0FDH, 09DH
 DB 0FDH, 0A7H
 DB 0FDH, 0B1H
 DB 0FDH, 0BAH
 DB 0FDH, 0C3H
 DB 0FDH, 0CBH
 DB 0FDH, 0D3H
 DB 0FDH, 0DBH
 DB 0FDH, 0E2H
 DB 0FDH, 0E9H
 DB 0FDH, 0F0H
 DB 0FDH, 0F6H
 DB 0FDH, 0FDH
 DB 0FEH, 003H
 DB 0FEH, 009H
 DB 0FEH, 00EH
 DB 0FEH, 014H
 DB 0FEH, 019H
 DB 0FEH, 01EH
 DB 0FEH, 023H
 DB 0FEH, 028H
 DB 0FEH, 02CH
 DB 0FEH, 031H
 DB 0FEH, 035H
 DB 0FEH, 03AH
 DB 0FEH, 03EH
 DB 0FEH, 042H
 DB 0FEH, 046H
 DB 0FEH, 04AH
 DB 0FEH, 04DH
 DB 0FEH, 051H
 DB 0FEH, 055H
 DB 0FEH, 058H
 DB 0FEH, 05CH
 DB 0FEH, 05FH
 DB 0FEH, 062H
 DB 0FEH, 065H
 DB 0FEH, 068H
 DB 0FEH, 06BH
 DB 0FEH, 06EH
 DB 0FEH, 071H
 DB 0FEH, 074H
 DB 0FEH, 077H
 DB 0FEH, 079H
 DB 0FEH, 07CH
 DB 0FEH, 07FH
 DB 0FEH, 081H
 DB 0FEH, 084H
 DB 0FEH, 086H
 DB 0FEH, 089H
 DB 0FEH, 08BH
 DB 0FEH, 08DH
 DB 0FEH, 090H
 DB 0FEH, 092H
 DB 0FEH, 094H
 DB 0FEH, 096H
 DB 0FEH, 098H
 DB 0FEH, 09AH
 DB 0FEH, 09CH
 DB 0FEH, 09EH
 DB 0FEH, 0A0H
 DB 0FEH, 0A2H
 DB 0FEH, 0A4H
 DB 0FEH, 0A6H
 DB 0FEH, 0A8H
 DB 0FEH, 0AAH
 DB 0FEH, 0ACH
 DB 0FEH, 0ADH
 DB 0FEH, 0AFH
 DB 0FEH, 0B1H
 DB 0FEH, 0B2H
 DB 0FEH, 0B4H
 DB 0FEH, 0B6H
 DB 0FEH, 0B7H
 DB 0FEH, 0B9H
 DB 0FEH, 0BAH
 DB 0FEH, 0BCH
 DB 0FEH, 0BEH
 DB 0FEH, 0BFH
 DB 0FEH, 0C0H
 DB 0FEH, 0C2H
 DB 0FEH, 0C3H
 DB 0FEH, 0C5H
 DB 0FEH, 0C6H
 DB 0FEH, 0C8H
 DB 0FEH, 0C9H
 DB 0FEH, 0CAH
 DB 0FEH, 0CCH
 DB 0FEH, 0CDH
 DB 0FEH, 0CEH
 DB 0FEH, 0CFH
 DB 0FEH, 0D1H
 DB 0FEH, 0D2H
 DB 0FEH, 0D3H
 DB 0FEH, 0D4H
 DB 0FEH, 0D6H
 DB 0FEH, 0D7H
 DB 0FEH, 0D8H
 DB 0FEH, 0D9H
 DB 0FEH, 0DAH
 DB 0FEH, 0DBH
 DB 0FEH, 0DDH
 DB 0FEH, 0DEH
 DB 0FEH, 0DFH
 DB 0FEH, 0E0H
 DB 0FEH, 0E1H
 DB 0FEH, 0E2H
 DB 0FEH, 0E3H
 DB 0FEH, 0E4H
 DB 0FEH, 0E5H
 DB 0FEH, 0E6H
 DB 0FEH, 0E7H
 DB 0FEH, 0E8H
 DB 0FEH, 0E9H
 DB 0FEH, 0EAH
 DB 0FEH, 0EBH
 DB 0FEH, 0ECH
 DB 0FEH, 0EDH
 DB 0FEH, 0EEH
 DB 0FEH, 0EFH
 DB 0FEH, 0F0H
 DB 0FEH, 0F1H
 DB 0FEH, 0F1H
 DB 0FEH, 0F2H
 DB 0FEH, 0F3H
 DB 0FEH, 0F4H
 DB 0FEH, 0F5H
 DB 0FEH, 0F6H
 DB 0FEH, 0F7H
 DB 0FEH, 0F7H
 DB 0FEH, 0F8H
 DB 0FEH, 0F9H
 DB 0FEH, 0FAH
 DB 0FEH, 0FBH
 DB 0FEH, 0FCH
 DB 0FEH, 0FCH
 DB 0FEH, 0FDH
 DB 0FEH, 0FEH
 DB 0FEH, 0FFH
 DB 0FEH, 0FFH
 DB 0FFH, 000H
 DB 0FFH, 001H
 DB 0FFH, 002H
 DB 0FFH, 002H
 DB 0FFH, 003H
 DB 0FFH, 004H
 DB 0FFH, 005H
 DB 0FFH, 005H
 DB 0FFH, 006H
 
 
END

⌨️ 快捷键说明

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