Motor Stepper 2
Gambar 3.10. Interface motor stepper ke mikrokontroler
;Percobaan 3.6.1
;Program memutar motor stepper kekanan
Org 0h
Start: Mov P1,#11111110b
Acall delay
Mov P1, #11111101b
Acall delay
Mov P1,#11111011b
Acall delay
Mov P1,#11110111b
Acall delay
sjmp Start
;==============
;Subrutin Delay
;==============
Delay: Mov R0,#255 ; isi register R0 dengan 5
Delay1: Mov R1,#0FFh ; isi register R1 dengan FFh
Delay2: Mov R2,#0FFh ; isi register R2 dengan FFh
DJNZ R2,$ ; kurangi R2 dengan 1 dan loncat ke baris ini
DJNZ R0,Delay1 ; kurangi R0 dengan 1 dan loncat ke delay1 bila R0
Ret ; tidak nol
End
;Percobaan 3.6.2
;Program memutar motor stepper kekiri
Org 0h
Start: Mov P1,#11110111b
Acall delay
Mov P1, #11111011b
Acall delay
Mov P1,#11111101b
Acall delay
Mov P1,#11111110b
Acall delay
sjmp Start
;==============
;Subrutin Delay
;==============
Delay: Mov R0,#0ffh ; isi register R0 dengan 5
Delay1: Mov R1,#0FFh ; isi register R1 dengan FFh
Delay2: Mov R2,#0FFh ; isi register R2 dengan FFh
DJNZ R2,$ ; kurangi R2 dengan 1 dan loncat ke baris ini
DJNZ R0,Delay1 ; kurangi R0 dengan 1 dan loncat ke delay1 bila R0
Ret ; tidak nol
End
;Percobaan 3.6.3
;Program memutar motor stepper kekanan dengan instruksi Rotate Right
Org 0h
Mov R3,#3 ; R3 = 3
Start: Mov A,#11110111b ; A =11110111b
Putar: Mov P1, A ; P1 = A
Acall delay ; memanggil waktu tunda
RR A ; A = 11111011b
DJNZ R3,Putar ; R3 = R3 - 1, Jika R3 ≠ 0 maka lompat ke Putar
; jika R3 = 0 maka lanjutkan program selanjutnya
Sjmp Start
;==============
;Subrutin Delay
;==============
Delay: Mov R0,#0ffh ; isi register R0 dengan 5
Delay1: Mov R1,#0FFh ; isi register R1 dengan FFh
Delay2: Mov R2,#0FFh ; isi register R2 dengan FFh
DJNZ R2,$ ; kurangi R2 dengan 1 dan loncat ke baris ini
DJNZ R0,Delay1 ; kurangi R0 dengan 1 dan loncat ke delay1 bila R0
Ret ; tidak nol
End
;Percobaan 3.6.4
;Rencanakan Program memutar motor stepper ke kiri
;dengan instruksi Rotate Left
No comments:
Post a Comment