我做一个步进电机的实验,用AT89C52单片机控制,用ULN2003做驱动电路,步进电机是5线的

用proteus仿真时可以实现,但是实际连线就有问题,电机一直抖动,求高手解决一下,这是我写的程序。外接电阻也换了,就是一直抖动。
ORG 0
NOP
CALL DLY
LOOP:JNB P1.0,FOR2
JMP REV2
JMP LOOP
FOR:MOV R0,#0
FOR1:MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
JZ FOR
MOV P2,A
JB P1.0,REV2
ACALL DLY
INC R0
JMP FOR1
REV:MOV R0,#5
REV1:MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
JZ REV
MOV P2,A
JNB P1.0,FOR1
ACALL DLY
INC R0
JMP REV1
FOR2:ACALL DLY
JMP FOR
REV2:ACALL DLY
JMP REV
DLY:MOV R1,#100
D1:MOV R2,#10
D2:MOV R3,#124
NOP
D3:NOP
NOP
DJNZ R3,D3
DJNZ R2,D2
DJNZ R1,D1
RET
TAB:DB 0CH,09H,03H,06H
DB 0
DB 0CH,06H,03H,09H
DB 0
END
我是不是没加消除抖动的程序,如果没加请高手帮忙。

你好,汇编的程序我看不懂,但是我用C语言编过步进电机转动的实验程序。
我想TAB:DB 0CH,09H,03H,06H 这句应该是表示步进电机A,A’,B,B’的通电顺序
DB 0CH,06H,03H,09H 这句表示反转。
四相六线制的步进电机没有这种通电相序。
你可以改成DB 01H,02H,04H,08H
DB 08H,04H,02H,01H 反转
或者DB 01H,03H,02H,06H,04H,0CH,08H,09H
DB 09H,08H,0CH,04H,06H,02H,03H,01H 反转
我用这种通电相序可以实现。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-16
请问你步进电机用来带动什么呢?本回答被提问者采纳