📄 步进电机.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 + -