Anda di halaman 1dari 12

2

MODUL PERKULIAHAN

PERANCANGAN
BERBASIS
MIKROPROSESSO
R

stepper motor

Abstrak Sub-CPMK

stepper motor Mampu menjelaskan dan memahami


Studi kasus stepper motor

Fakultas Program Studi Tatap Muka Disusun Oleh

05
Baradista Dimas Leotman, ST, M.Pd
Fakultas Teknik Teknik Elektro
Definisi
Timer
Timer atau pewaktu adalah sarana untuk menghitung durasi kejadian seperti halnya
stopwatch. Biasanya peran Timer juga merangkap Counter atau pencacah. Sedikit berbeda
dengan Timer, Counter merupakan sarana untuk mencacah atau menghitung jumlah
kejadian, jumlah barang atau lainnya. Tasbeh adalah contoh counter yang digunakan untuk
mencacah banyaknya dzikir.
Prosesor 8051 dilengkapi dengan I/O internal yang terdiri dari Sarana akses data
Paralel, Sarana Komunikasi Serial, Sarana untuk Timer/Counter dan Sarana untuk
Interupsi. Sarana Timer/Counter berupa 2 buah Timer/Counter yang dapat digunakan
dengan 4 macam cara atau mode. Ada 6 Register yang terkait dengan penggunaan
Timer/Counter, semuanya terletak pada SFR, Register tsb adalah TMOD, TCON, TH1,
TL1, TH0 dan TL0. Sebelum digunakan, Timer/Counter tsb harus di-setting melalui
pengisian TMOD dengan angka biner tertentu. Berikut ini adalah gambar yang terkait
dengan pengisian register TMOD atau Timer Mode.
TMOD: TIMER/COUNTER MODE CONTROL REGISTER. NOT BIT ADDRESSABLE.

Gambar 5.1. Register TMOD

Nibble atau 4-bit kiri digunakan untuk setting Timer atau Counter 1 sedangkan Nibble atau
4-bit kanan digunakan untuk Timer atau Counter 0. Keterangan masing-masing bit adalah
sebagai berikut,
GATE : Bit ini dipakai untuk menentukan kendali ON/OFF timer. Jika bit ini
LOW, maka kendali dilakukan secara software atau program, Timer1 akan
ON selama bit TR1 pada Register TCON bernilai HIGH. Tetapi jika bit ini
HIGH, berarti ON/OFF Timer atau Counter bergantung pada kondisi pin
INT, Timer 1 akan ON selama pin INT1 bernilai HIGH.

2021 Perancangan Berbasis Mikroprosesor


2 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
C/T : Bit ini dipakai untuk menentukan jenis operasi. Jika bit ini HIGH, berarti
alat ini digunakan sebagai Counter, tetapi jika bit ini LOW, alat ini
digunakan sebagai Timer.
M1 M0 : Adalah pasangan bit untuk menentukan 1 dari 4 mode operasi. Jika
pasangan ini bernilai 00 berarti Timer/Counter bekerja pada mode 0
dengan kapasitas maksimum 13-bit atau 8192 pulsa. Jika M1M0 = 01 atau
mode 1, maka kapasitas maksimumnya 16-bit atau 65536 pulsa.
Sedangkan Mode 2 merupakan mode auto reload dengan kapasitas 8-bit
atau 256 pulsa. Pada mode 2 ini, selama TimerX running, isi register TLx
terus bertambah. Jika TLx overflow, maka TFx aktif dan TLx diisi ulang
dengan data yang berada pada THx.

Misalnya kita ingin menggunakan Timer/Counter 0 sebagai Timer 16-bit. Maka bit-
bit setting yang kita berikan untuk TMOD adalah data biner “xxxx 0001”. Tanda x atau
don’t care berarti bahwa bit-bit tsb tidak terkait dengan Timer/Counter 0. Gambar di bawah
ini adalah diagram operasi Timer 16-bit.

Gambar 5.2. Diagram operasi Timer 16-bit.

Sebelum penjelasan diagram tsb, perhatikanlah ilustrasi berikut ini. Bayangkan


sebuah ordometer pada kendaraan bermotor. Ordometer ini berukuran 6 digit dengan digit
paling kanan berupa kelipatan 100 meter. Tulisan 002341 pada ordometer ini menandakan
bahwa kendaraan tsb telah berjalan sejauh 234,1 km sejak angka pada ordometer di-set
000000. Jika kendaraan terus bergerak konstan dengan kecepatan 100 m/s, maka angka
pada ordometer akan bertambah satu setiap detik. Hal ini akan berlanjut terus sampai
ordometer mencapai angka 999999, kemudian 000000. Peralihan dari bilangan 999999 ke
000000 disebut keadaan overflow atau meluap.
Jika kendaraan bergerak konstan, maka perubahan display ordometer akan
berlangsung teratur, sehingga kita dapat menggunakannya sebagai Timer atau stopwatch.

2021 Perancangan Berbasis Mikroprosesor


3 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Misalkan pada saat start, display ordometer menunjukkan angka 996400. Maka pada saat
overflow kendaraan tersebut telah berjalan sejauh 360 km atau 3600 detik.
Prinsip kerja Timer digital mirip dengan cara kerja ordometer, sehingga kita dapat
menggunakan analogi ordometer dengan Timer Digital. Angka yang tertera pada display
ordometer dapat dianalogikan dengan angka yang berada pada pasangan register TH dan
TL. Bertambahnya angka pada display ordometer disebabkan oleh bergeraknya kendaraan,
sedangkan bertambahnya isi THx TLx disebabkan oleh bit TRx. Jika TRx HIGH, maka
pasangan register THx TLx akan bertambah setiap satu siklus mesin, 12 kali periode
kristal. Jika prosesor menggunakan kristal 12 MHz, maka selama TRx HIGH, isi pasangan
register THx TLx akan bertambah 1 setiap 1 s. Jika keadaan ini berlangsung terus, maka
suatu saat pasangan THx TLx akan mengalami overflow, pada saat itu bit TFx akan
menjadi HIGH.
Jika kita menginginkan Timer 0 sebagai stopwatch durasi 10 ms, maka yang perlu
kita lakukan adalah sebagai berikut,
MOV TMOD, #00010001B ;mode Timer 16-bit
CLR TR0 ;Timer 0 OFF
MOV TH0,#0F0H ;pasangan TH0 TL0 diisi F0D8H
MOV TL0,#0D8H ;atau 10000 pulsa sebelum overflow
SETB TR0 ;Timer 0 ON
JNB TF0,$ ;tunggu di sini sampai terjadi overflow, yaitu
tunggu selama 10 ms
CLR TF0 ;matikan indikator overflow.
Jika kita menggunakan assembler ASM51, maka pengisian TH dan TL dapat dilakukan
lebih mudah, yaitu :
MOV TH0,#HIGH - 10000 ;pasangan TH0 TL0 diisi F0D8H
MOV TL0,# LOW - 10000 ;atau 10000 pulsa sebelum overflow

Berikut ini adalah contoh penggunaan Timer dalam program penggerak motor
stepper. Misalnya kita menggunakan prosesor 8051 untuk menggerakkan motor stepper 4-
bit. Pin kendali motor stepper yang terdiri dari 4-bit dihubungkan dengan 4-bit LSB dari
Port 1. Gambar 5.3. memperlihatkan skema rangkaian pengganti untuk motor stepper 4-bit.
Kabel kendalinya adalah kabel hitam, kuning, orange dan coklat. Saklar pada gambar 5.3.

2021 Perancangan Berbasis Mikroprosesor


4 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
dapat direalisasikan dengan menggunakan rangkaian transistor seperti tampak pada gambar
5.4.
Penggunaan dioda pada rangkaian gambar 5.4. ditujukan untuk membuang arus
balik yang terlalu besar yang berasal dari beban induktif ketika transistor berubah dari
kondisi ON ke OFF. Dioda ini disebut dioda free wheeling. Biasanya dioda ini digunakan
pada rangkaian transistor saklar dengan beban yang bersifat induktif.
Bit kendali yang dihubungkan ke prosesor adalah 1a, 1b, 2a dan 2b. Jika keempat
bit kendali ini diberi nilai LOW, maka motor stepper dalam keadaan free, release, bebas,
lepas atau loncer. Tetapi jika 1 atau 2 dari 4 bit kendali ini diberi nilai HIGH sedangkan
sisanya LOW, maka motor stepper akan terkunci pada posisi tertentu. Jika kondisi HIGH
dan LOW pada bit kendali ini digeser 1-bit, maka motor akan berputar sebanyak 1-step.

Gambar 5.3. Skema rangkaian pengganti untuk sebuah motor stepper 4-bit.

2021 Perancangan Berbasis Mikroprosesor


5 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Gambar 5.4. Rangkaian Saklar Transistor untuk menggerakkan motor stepper.

Resolusi dan kecepatan gerak motor stepper beragam, pada contoh ini motor
stepper bergerak dengan resolusi 1,8 per step dengan kecepatan maksimum 33 Hz atau 33
step per detik. Karena kecepatan gerak motor stepper sangat lambat jika dibandingkan
dengan kecepatan prosesor menggeser bit, maka prosesor perlu menunggu beberapa
milidetik sebelum memberikan bit kendali baru ke motor stepper. Misalnya kita ingin
menggerakkan motor stepper sejauh 100 step ke kanan dengan kecepatan 10 step per detik,
4-bit kendali motor stepper dihubungkan dengan 4-bit LSB Port 1. Maka program yang
harus kita buat adalah sebagai berikut.
Misalnya, pertama kali, LSB Port1 diberi bit 1100, kemudian 0110, kemudian 0011, 1001, 1100 dst
sampai 100 kali geser bit ke kanan. Tetapi harus ada jeda waktu pada setiap geseran, sesuai
dengan kecepatan gerak yang diinginkan. Interval antar step adalah 0,1 detik atau 100 ms. Maka
secara garis besar, kerja program terdiri dari 3 langkah yang diulang 100 kali, yaitu:

Kirim data ke Port 1

Geser data 1-bit ke kanan

Delay selama 100 ms

Delay maksimum untuk counter 16-bit adalah 65535 pulsa atau 65535 mikrodetik. Berarti delay
harus diulang, misal 10000 pulsa diulang 10 kali.

2021 Perancangan Berbasis Mikroprosesor


6 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
MOV TMOD,#00000001B

MOV A,#11001100B

MOV LoopX,#100

ULANG: MOV P1,A

RR A

MOV LoopX+1,#10

TUNDA: CLR TR0

MOV TH0,# HIGH -10000

MOV TL0, ,# LOW –10000

SETB TR0

JNB TF0,$

CLR TF0

DJNZ LoopX+1,TUNDA

DJNZ LoopX,ULANG

Jika kita tulis program lengkap dengan nama file stepper.asm, maka setelah diasembli dengan
ASM51 akan dihasilkan file stepper.lst seperti berikut,

2021 Perancangan Berbasis Mikroprosesor


7 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
1 $MOD51
2 DSEG
0030 3 ORG 30H
0030 4 LoopX DS 2
5
6 CSEG
0000 7 ORG 0
0000 020030 8 LJMP START
0030 9 ORG 30H
0030 10 START:
0030 758901 11 MOV TMOD,#00000001B
0033 74CC 12 MOV A,#11001100B
0035 753064 13 MOV LoopX,#100
0038 F590 14 ULANG: MOV P1,A
003A 03 15 RR A
003B 75310A 16 MOV LoopX+1,#10
003E C28C 17 TUNDA: CLR TR0
0040 758CD8 18 MOV TH0,# HIGH -10000
0043 758AF0 19 MOV TL0,# LOW -10000
0046 D28C 20 SETB TR0
0048 308DFD 21 JNB TF0,$
004B C28D 22 CLR TF0
004D D531EE 23 DJNZ LoopX+1,TUNDA
0050 D530E5 24 DJNZ LoopX,ULANG
25
26 END
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
LOOPX D ADDR 0030H
P1 D ADDR 0090H PREDEFINED
START C ADDR 0030H
TF0 B ADDR 008DH PREDEFINED
TH0 D ADDR 008CH PREDEFINED
TL0 D ADDR 008AH PREDEFINED
TMOD D ADDR 0089H PREDEFINED
TR0 B ADDR 008CH PREDEFINED
TUNDA C ADDR 003EH
ULANG C ADDR 0038H

Dari listing program di atas terlihat bahwa instruksi yang berada dalam kotak besar
diulang 100 kali dengan menggunakan LoopX sebagai counter, sedangkan instruksi yang
berada dalam kotak kecil diulang 10 kali dengan menggunakan LoopX+1 sebagai counter.

2021 Perancangan Berbasis Mikroprosesor


8 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
LoopX adalah RAM internal alamat 30H sedangkan LoopX+1 adalah RAM internal
alamat 31H.
Pada baris ke-11 TMOD diisi dengan data biner demikian agar Timer 0
berkapasitas 16-bit. Pada baris ke-12 register A diisi harga biner awal untuk menggerakkan
motor stepper.
Setiap kali pengulangan, dilakukan 3 hal, yaitu beri data biner ke Port 1, geser data
biner, dan delay selama 100 ms. Hal pertama dilakukan sesuai tulisan pada baris ke-14, hal
kedua pada baris ke-15, sedangkan hal ketiga yaitu delay 100 ms dilakukan dengan
mengulang penundaan 10000 s sebanyak 10 kali agar diperoleh delay 100000 s atau 100
ms, seperti tertulis pada baris ke-17 sampai ke-22.
Contoh di atas adalah contoh program yang hanya menggerakkan 1 motor stepper
4-bit, jika kita ingin menggerakkan lebih dari 1 motor stepper dalam waktu yang
bersamaan, ada beberapa pilihan cara, antara lain :
a. Mengalokasikan 4-bit I/O lainnya untuk motor stepper lain, misalnya 4-bit LSB
untuk stepper 1, sedangkan 4-bit MSB untuk stepper 2. Cara ini cocok untuk jumlah
motor stepper sedikit, selama 32-pin I/O prosesor 8051 masih dapat digunakan.
b. Menggunakan selektor atau demultiplekser digital dan buffer D-FF.
D-FF diletakkan di antara motor driver dengan prosesor, gunanya untuk latch atau
penahan data agar output D-FF yang terhubung ke motor driver tidak berubah
walaupun input D-FF yang berasal dari prosesor sudah berubah, kecuali jika D-FF
di-enable (izin untuk mengubah nilai output sesuai dengan input). Komponen TTL
untuk D-FF antara lain 74LS374, di mana kesempatan perubahan 8-bit output
diberikan pada saat transisi enable dari LOW ke HIGH atau positive edge. Setiap
enable D-FF dihubungkan dengan output encoder yang inputnya berasal dari
prosesor.
Dari 2 cara di atas, pada modul ini hanya akan dijelaskan satu, yaitu yang pertama.
Misalnya, 4-bit LSB Port 1 dihubungkan dengan pin kendali motor stepper pertama,
sedangkan 4-bit MSB Port 1 dihubungkan dengan pin kendali motor stepper kedua. Jika
kita ingin menggerakkan motor stepper pertama ke kanan 100 step bersamaan dengan
menggerakkan motor kedua ke kiri 20 step, maka kita dapat membuat programnya seperti
berikut ini.
Untuk mempermudah penjelasan, listing program dilengkapi dengan 2 kotak besar
dan 3 kotak kecil. Kotak besar atas adalah potongan program untuk inisialisasi, sedangkan

2021 Perancangan Berbasis Mikroprosesor


9 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
kotak besar bawah adalah potongan program untuk menggerakkan 2 motor stepper. Kotak
besar bawah terdiri dari 3 kotak kecil, yaitu kotak kecil berisi instruksi penggeser data
untuk motor1, penggeser untuk motor2, dan instruksi delay 100 ms. Jika delay untuk motor
1 dan motor 2 berbeda, cara seperti ini tidak tepat, harus digunakan cara lain yang
melibatkan sistem interupsi.
Untuk membatasi jumlah step, diletakkan 2 pasang instruksi seperti tampak pada
baris ke-24-25 dan baris ke-32-33. CJNE, Compare and Jump if Not Equal adalah instruksi
untuk membandingkan nilai yang tersimpan di STEP1 atau STEP2 dengan 100 atau 50.
Jika tidak sama, maka eksekusi program lompat ke lokasi instruksi yang labelnya tertulis di
akhir instruksi CJNE, yaitu KANAN atau KIRI.
1 $MOD51
2 DSEG
0030 3 ORG 30H
0030 4 LoopT: DS 1
0031 5 M1: DS 1 ;buffer utk data stepper 1
0032 6 M2: DS 1 ;buffer utk data stepper 2
7
8 STEP1 EQU R6 ;jumlah step motor 1
9 STEP2 EQU R7 ;jumlah step motor 2
10
11 CSEG
0000 12 ORG 0
0000 020030 13 LJMP START
0030 14 ORG 30H
0030 15 START:
0030 758901 16 MOV TMOD,#00000001B
0033 74CC 17 MOV A,#11001100B
0035 F531 18 MOV M1,A
0037 F532 19 MOV M2,A
0039 E4 20 CLR A
003A FE 21 MOV STEP1,A ;step = 0
003B FF 22 MOV STEP2,A
23
003C BE6402 24 CEK1: CJNE STEP1,#100,KANAN
003F 8008 25 SJMP CEK2
0041 E531 26 KANAN: MOV A,M1
0043 03 27 RR A
0044 F590 28 MOV P1,A
0046 F531 29 MOV M1,A

2021 Perancangan Berbasis Mikroprosesor


10 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
0048 0E 30 INC STEP1
31
0049 BF3202 32 CEK2: CJNE STEP2,#50,KIRI
004C 8008 33 SJMP DELAY
004E E532 34 KIRI: MOV A,M2
0050 23 35 RL A
0051 F590 36 MOV P1,A
0053 F532 37 MOV M2,A
0055 0F 38 INC STEP2
39
0056 75300A 40 DELAY: MOV LoopT,#10
0059 C28C 41 TUNDA: CLR TR0 ;delay 100 ms
005B 758CD8 42 MOV TH0,# HIGH -10000
005E 758AF0 43 MOV TL0,# LOW -10000
0061 D28C 44 SETB TR0
0063 308DFD 45 JNB TF0,$
0066 C28D 46 CLR TF0
0068 D530EE 47 DJNZ LoopT,TUNDA
48
006B 02003C 49 LJMP CEK1
50
51 END

2021 Perancangan Berbasis Mikroprosesor


11 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Daftar Pustaka
1. Pitowarno,Endra. mikroprosesor & interfacing. penerbit andi, Yogyakarta,2005

2. Haryanto,Agus. Memebuat aplikasi sederhana dengan microsoft access. Kuliah umum ilmu
komputer.com

3. Wahana komputer. Panduan praktis pemrograman borland delphi 7.0. penerbit


andi,yogyakarta,2003.

4. Prasetia,Retna. Teori dan praktek interfacing port paralel dan port serial computer dengan visual
basic 6.0 ,penerbit andi yogyakarta,2004.

2021 Perancangan Berbasis Mikroprosesor


12 Baradista Dimas Leotman, ST, M.Pd
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/

Anda mungkin juga menyukai