Stepper Motor interfacing with Microcontrollers: Programming Stepper motor
►Programming Full step Sequence►C ProgrammingI am assuming that stepper motor is connected at Port 1.0 to Port 1.3. Adjusting the delay will increase or decrease the speed of the motor. Here just for demonstration i have taken some delay, you can change it as you want.
[Tip: Do testing..

]
CODE:
#include <REG2051.H>.
#define stepper P1
void delay();
void main(){
while(1){
stepper = 0x0C;
delay();
stepper = 0x06;
delay();
stepper = 0x03;
delay();
stepper = 0x09;
delay();
}
}
void delay(){
unsigned char i,j,k;
for(i=0;i<6;i++)
for(j=0;j<255;j++)
for(k=0;k<255;k++);
}
►Assembly ProgrammingCODE:
org 0H
stepper equ P1
main:
mov stepper, #0CH
acall delay
mov stepper, #06H
acall delay
mov stepper, #03H
acall delay
mov stepper, #09H
acall delay
sjmp main
delay:
mov r7,#4
wait2:
mov r6,#0FFH
wait1:
mov r5,#0FFH
wait:
djnz r5,wait
djnz r6,wait1
djnz r7,wait2
ret
end
The working of the above code can be seen in the demo animation below.
►Programming Half step Sequence►C ProgrammingJust the main routine changes rest everything remains same, i mean same delay routine.
CODE:
void main(){
while(1){
stepper = 0x08;
delay();
stepper = 0x0C;
delay();
stepper = 0x04;
delay();
stepper = 0x06;
delay();
stepper = 0x02;
delay();
stepper = 0x03;
delay();
stepper = 0x01;
delay();
stepper = 0x09;
delay();
}
}
►Assembly ProgrammingHere also the main routine changes rest everything remains same.
CODE:
main:
mov stepper, #08H
acall delay
mov stepper, #0CH
acall delay
mov stepper, #04H
acall delay
mov stepper, #06H
acall delay
mov stepper, #02H
acall delay
mov stepper, #03H
acall delay
mov stepper, #01H
acall delay
mov stepper, #09H
acall delay
sjmp main
The working of the above code can be seen in the demo animation below.
►Programming for 2-wire connection of Unipolar Stepper Motor►C ProgrammingCODE:
void main(){
while(1){
stepper = 0x03;
delay();
stepper = 0x01;
delay();
stepper = 0x00;
delay();
stepper = 0x02;
delay();
}
}
►Assembly ProgrammingCODE:
main:
mov stepper, #03H
acall delay
mov stepper, #01H
acall delay
mov stepper, #00H
acall delay
mov stepper, #02H
acall delay
sjmp main
The working of the above code can be seen in the demo animation below.
►Programming for Bipolar Stepper Motor►C ProgrammingCODE:
void main(){
while(1){
stepper = 0x08;
delay();
stepper = 0x02;
delay();
stepper = 0x04;
delay();
stepper = 0x01;
delay();
}
}
►Assembly ProgrammingCODE:
main:
mov stepper, #08H
acall delay
mov stepper, #02H
acall delay
mov stepper, #04H
acall delay
mov stepper, #01H
acall delay
sjmp main
Now you're ready to use stepper motors. If you have any doubts, please post in the
forum.
◄ Previous Page | Next Page ►
Back to main
Google Search for Microcontrollers!