Stepper motor control board

Program 3:-

This is also easy program. Now three keys are used and three LEDs are used. Please refer table. The speed of motor is again fixed at 20 RPM. The mode is double coil excitation.

Org 00h
mov r0,#01h         ; initileze key count
mov p1,#0ffh        ; P1 as input port
lop:   mov a,p1
cjne a,#0ffh,jmp
ajmp lop               ; loop until any key is pressed

jmp:     clr p0.0              ; indicates keypress
loop:    rrc a
jnc num                ; get key no.
inc r0
sjmp loop
num: acall dely          ; key debounce delay
setb p0.0

cjne r0,#01h,nxt   ; for 1st key rotate motor
acall clkwise          ; clock wise
sjmp over
nxt: cjne r0,#02h,nxt2  ; for 2nd key
acall aclkwise           ; rotate anticlock
nxt2:   cjne r0,#03h,over ; for 3rd key
mov p2,#00h             ; stop motor
over:   mov r0,#01h
sjmp lop          ; jump to loop again

clkwise:
lop:   clr p0.1
mov p2,#03h        ; at a time two coils
acall delay            ; energized in double
mov p2,#06h        ; coil excitation mode
acall delay
setb p0.1
mov p2,#0Ch
acall delay
mov p2,#09h
acall delay
mov p1, #0FFh      ; continue loop
mov a,p1               ; until any key is
cjne a,#0FFh,out   ; not pressed
sjmp lop
out:   ret
aclkwise:
lop1: clr p0.1
mov p2,#03h
acall delay
mov p2,#09h        ; revert the pulse
acall delay            ; sequence for
setb p0.1
mov p2,#0Ch        ; anticlockwise
acall delay
mov p2,#06h
acall delay
mov p1, #0FFh
mov a,p1
cjne a,#0FFh,out1
sjmp lop1
out1:  ret

delay:
mov r5,#0Fh         ; load count 15
lop2: mov r6,#FAh      ; give 1 ms delay
lop1:nop                    ; so it gives full
nop                       ; 15 ms delay
djnz r6,lop1          ; to give speed
djnz r5,lop2           ; of 20 RPM
ret

dely:
mov r5,#0C8h          ; load count 200
lop2: mov r6,#0FAh       ; for 200ms delay
lop1:nop
nop
djnz r6,lop1
djnz r5,lop2
ret
end

Program 4:-
This  program is same as above but now the mode is changed to half step and RPM is now 30.

Org 00h
mov r0,#01h        ; initileze key count
mov p1,#0ffh       ; P1 as input port
lop:   mov a,p1
cjne a,#0ffh,jmp
ajmp lop               ; loop until any key is pressed

jmp:     clr p0.0              ; indicates keypress
loop:    rrc a
jnc num                ; get key no.
inc r0
sjmp loop
num: acall dely         ; key debounce delay
setb p0.0

cjne r0,#01h,nxt      ; for 1st key
acall clkwise             ; rotate motor
sjmp over                  ; clock wise
nxt: cjne r0,#02h,nxt2  ; for 2nd key
acall aclkwise           ; rotate anticlock
nxt2:   cjne r0,#03h,over  ; for 3rd key
mov p2,#00h             ; stop motor
over:   mov r0,#01h
sjmp lop                     ; jump to loop again

clkwise:
lop:   clr p0.1
mov p2,#01h         ; alternate pulses
acall delay             ; given one from
mov p2,#03h         ; single coil second
acall delay              ; from double coil
mov p2,#02h         ; in half step mod
acall delay
mov p2,#06h
acall delay
setb p0.1
mov p2,#04h
acall delay
mov p2,#0Ch
acall delay
mov p2,#08h
acall delay
mov p2,#09h
acall delay
mov p1, #0FFh       ; continue loop
mov a,p1                ; until any key is
cjne a,#0FFh,out   ; not pressed
sjmp lop
out:   ret
aclkwise:
lop1: clr p0.1
mov p2,#01h
acall delay
mov p2,#03h         ; revert the pulse
acall delay             ; sequence for
mov p2,#08h        ; anticlockwise
acall delay
mov p2,#09h
acall delay
setb p0.1
mov p2,#04h
acall delay
mov p2,#0Ch
acall delay
mov p2,#02h
acall delay
mov p2,#06h
acall delay
mov p1, #0FFh
mov a,p1
cjne a,#0FFh,out1
sjmp lop1
out1:  ret
delay:
mov r5,#0Ah          ; load count 10
lop2: mov r6,#FAh         ; give 1 ms delay
lop1: nop                        ; so it gives full
nop                         ; 10 ms delay
djnz r6,lop1            ; to give speed
djnz r5,lop2            ; of 30 RPM
ret
dely:
mov r5,#0C8h         ; load count 200
lop2: mov r6,#0FAh        ; for 200ms delay
lop1: nop
nop
djnz r6,lop1
djnz r5,lop2
ret
end

Editorial Team
Editorial Team

We are a group of young techies trying to provide the best study material for all Electronic and Computer science students. We are publishing Microcontroller projects, Basic Electronics, Digital Electronics, Computer projects and also c/c++, java programs.

34 thoughts on “Stepper motor control board

  1. da program gives syntax error when it is build in keil software.
    its give error for cjne a,#0ffh,jmp. n
    jmp clr p0.0……..

  2. it also gives error here
    lop2:mov r6,#FAh ; give 1 ms delay :the error is undefined symbol(pass 2).
    lop2: mov r6,#0FAh ; for 200ms delay : attempt to define already defined label.
    lop1: nop attempt to define already defined label.

  3. hi plz tell me abt these error in program
    n i m using of Seiko epson EM-198.
    will it operate with 7805.

  4. Hi replace “dely” function as given below.
    ———————-
    dely:
    mov r5,#0C8h ; load count 200
    lop22: mov r6,#0FAh ; for 200ms delay
    lop11:nop
    nop
    djnz r6,lop11
    djnz r5,lop22
    ret
    ———————–

  5. Nothing seems to be easier than seeing someone whom you can help but not helping.
    I suggest we start giving it a try. Give love to the ones that need it.
    God will appreciate it.

  6. I’m new here on the forum, found it by searching google. I look forward to chatting about various topics with all of you.

  7. very good circuit … can you mail the full details and explainations of the circuit.

  8. can u tell me how to control pitman motor using at89s51 through h bridge give ,jut move the motor in forward and reverse direction ,and also give me a small cobe to drive the motor through h bridge using at89s51

  9. А телефон свой не оставите? Хотелось бы кое-что обсудить по теме.

  10. hey the project is nice but is there any problem in the programs is they give error

  11. Nice project for learners. Is it available in kit form at a reasonable price?
    Are the problems solved or still existing?

  12. AS THIS IS IN ASSEMBLY AND NOT IN ‘C’ DONT USE KEIL USE “ASEM” OR “RAISONANCE” INSTEAD.

  13. hello sir,
    I am a final year student of electronics and communication engineering and project implementation. please i need the complete circuit diagram. and I sincerely request you to send the full schematic of the “high-rise car park automation systems” my email id nguyenlinh1092@gmail.com

  14. Hi to every one, since I am truly keen of reading this blog post to be updated daily. It contains pleasant information.

Leave a Reply

Your email address will not be published. Required fields are marked *

Get the latest updates on your inbox

Be the first to receive the latest updates from Codesdoc by signing up to our email subscription.

    StudentProjects.in