Anda di halaman 1dari 109

ALAT BANTU BELAJAR MOTOR LANGKAH

TUGAS AKHIR

Diajukan untuk memenuhi salah satu syarat


memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro

Disusun oleh
Nama Mahasiswa : ANDI SUSANTO
Nomor Mahasiswa : 025114025

PROGRAM STUDI TEKNIK ELEKTRO


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007

i
STEPPER MOTOR LEARNING TOOL

FINAL PROJECT

Presented as Partial Fulfillment of the Requirements


to obstain the Sarjana Teknik Degree
in Electrical Engineering

By :
Student Name : ANDI SUSANTO
Student Number : 025114025

ELECTRICAL ENGINEERING STUDY PROGRAM


SCIENCE AND TEGNOLOGI FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2007

ii
iii
iv
PERNYATAAN KEASLIAN KARYA

“Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini

tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam

kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah”

Yogyakarta, September 2007

Penulis,

Andi Susanto

v
HALAMAN MOTTO

Tidak ada hal yang tidak mungkin….

Banggakanlah Orang tuamu.........

Kill or to be killed…………………

Dengan doa,
Aku pintar…..…..
Aku bisa…………
Aku sanggup……

vi
HALAMAN PERSEMBAHAN

KUPERSEMBAHKAN KARYA TULIS INI KEPADA:

Sang juru selamatku

&

vii
INTISARI

Salah satu dari pembelajaran motor elektrik didalam teknik elektro adalah
motor stepper. Untuk mempelajara cara kerja motor stepper lebih baik digunakan alat
bantu belajar. Tujuan dari alat belajar atau alat pelatian adalah membantu masyarakat
yang ingin mempelajari teknologi dengan mudah dan cepat.
Skripsi ini membahas tentang alat bantu belajar motor stepper. Peralatan ini
terdiri dari saklar untuk memilih mode, motor stepper dengan jarum penunjuk sudut,
LCD untuk menampilkan informasinya dan indicator LED. Piranti pengendali yang
lain adalah tombol START dan tombol RESET. Ada dua jenis waktu tunda: waktu
tunda otomatis dan waktu tunda manual. LCD digunakan untuk tampilan kendali pola
motor stepper danbesar pulsa juga arah putaran motor stepper. Mode untuk
mengoperasikan motor stepper adalah langkah penuh eksitasi tunggal, langkah penuh
eksitasi ganda, langkah setengah. Indicator LED digunakan untuk mendeteksi adanya
aktivitas dari koil. Pengendali utama digunakan mikrokontroler AT89S51.
Hasilnya adalah motor stepper bekerja dengan baik. Dengan menggunakan
control panel pengguna dapat belajar mengoperasikan motor stepper dengan mudah
dan cepat.

Kata kunci: motor stepper, alat Bantu belajar, aplikasi mikrokontroler.

viii
ABSTRACT
One of the electric motor studied in electrical engineering is stepper motor. To
learn how stepper motor works it better using trainer board. The purpose of teaching
tools or trainer board is help people who want learn the technology easily and fast.
This paper discussed about stepper motor learning tool. This equipment
consists of switch to select mode, stepper motor with angle pointer, LCD to display
information and some LED indicator. Another control device are START button and
RESET button. There are two options for delay generation : automatic delay time and
manual delay time. LCD used to display motor stepper control pattern and number of
pulses also stepper motor direction. Mode for Motor stepper operation are FULL
STEP single excitation, FULL STEP double excitation , HALF STEP. LED indicator
used to indicate activity of coil. The main controller used a AT89S51 microcontroller.
The results are motor stepper work well. Using control panel user can learn the
operation of motor stepper easily and fast.

Keywords: motor stepper, trainer board, microcontroller application.

ix
KATA PENGANTAR

Puji syukur penulis panjatkan kepada tuhan yesus kristus atas berkat dan
rahmat-Nya, sehingga penulis akhirnya dapat menyelesaikan tugas akhir ini dengan
baik.
Dalam penulisan tugas akhir ini penulis menyadari bahwa ada begitu banyak
yang telah memberikan bimbingan, dorongan, tenaga, perhatian dan bantuan sehingga
tugas akhir ini dapat terselesaikan. Oleh karena itu dengan segala kerendahan hati
penulis ingin mengucapkan terima kasih kepada:
1. Tuhan Yesus kristus atas rahmat, penyertaan dan keajaiban-keajaiban yang
telah diberikan-Nya.
2. Bapak Ir. Greg. Heliarko, S.J., S.S., B.ST., M.A., M.Sc. selaku dekan
fakultas sains dan teknologi.
3. Bapak Augustinus Bayu Primawan, ST., M.Eng. selaku ketua jurusan
fakultas sains dan teknologi.
4. Bapak B.Djoko Untoro S., SSi., M.T selaku pembimbing I terima kasih
atas ide-ide, bimbingan dan dorongan yang tidak henti-hentinya sehingga
sekripsi ini dapat selesai dengan baik.
5. seluruh dosen Teknik Elektro atas ilmuyang telah diberikan selama kuliah
di Universitas Sanata Dharma Yogyakarta.
6. Seluruh staff sekretariat Fakultas Sains dan Teknologi, terutama Pak Djito
yang dengan sabar dan keramahan memberikan semua yang dibutuhkan.
7. Papa dan mama yang tercinta, terimakasih atas dorongan, semangat dan
dukungan, pengorbanan, dan doanya.
8. Kakak dan adikku yang kusayangi terimakasih atas doanya, dan
dukungannya.
9. Angga, Gompis trima kasih buat sumbangan pikirannya dan
kebanyolannya.
10. Suming alias Samiung, trima kasih Scannernya.
11. Anak-anak kost “PATRIA” kompak terus dengan ide-ide yang tidak
masuk akal : Dadiet, Seul, Dedi, Joe (Burung), Angga, Andi (Kura2
ngebut), Si bro, Gompis, Ade, dan masih banyak lagi.

x
12. Roby, terima kasih bantuan nyelesaikan hardwarenya dan Ido alias Bendol
terima kasih buat info halaman-halaman skripsi
13. PC-ku dan DOTA-ku alat pembantu penghilang stress.
14. Teman-teman seperjuangan teknik elektro 2002 : Wawan or Ticus, Harex,
yoga, Alex, Andek, Ari(Gepeng), Clemen, Plentong, Ari.W, Kobo,
Mikael, Danni (Lele laut) dan temen-temen yang lain semuanya.
Terimakasih sepiritnya.
15. Dan seluruh pihak yang telah ambil bagian dalam proses penulisan tugas
akhir ini yang terlalu banyak jika disebutkan satu-persatu.

Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih jauh dari
sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir ini
sangat diharapkan. Akhir kata semoga tugas akhir ini dapat bermanfaat bagi semua
pihak. Terima kasih.

Yogyakarta, 24 September 2007

Penulis

xi
DAFTAR ISI

Halaman
JUDUL ……………………………………………………………… i
HALAMAN PERSETUJUAN……………………………………... iii
HALAMAN PENGESAHAN……………………………………… iv
PERNYATAAN KEASLIAN KARYA…………………………….v
HALAMAN MOTTO………………………………………………. vi
HALAMAN PERSEMBAHAN…………………………………….vii
INTIARI….......................................................................................... viii
ABSTRACT………………………………………………………….ix
KATA PENGANTAR……………………………………………….x
DAFTAR ISI………………………………………………………... xii
DAFTAR GAMBAR……………………………………………….. xv
DAFTAR TABEL…………………………………………………... xvii
BAB I PENDAHULUAN…………………………………………....1
1.1 Latar Belakang Masalah………………………………...1
1.2 Tujuan Penelitian………………………………………..2
1.3 Manfaat Penelitian………………………………………2
1.4 Perumusan Masalah……………………………………..2
1.5 Batasan Masalah………………………………………...2
1.6 Metodologi Penelitian…………………………………..2
1.7 Sistematika Penulisan………………………………….. 3
BAB II LANDASAN TEORI………………………………………. 4
2.1 Motor Stepper………………………………………….. 4
2.1.1 Metode langkah penuh (Full step)………………. 6
2.1.1.1 Metode langkah penuh eksitasi tunggal… 6
2.1.1.2 Metode langkah penuh eksitasi ganda….. 7
2.1.2 Metode langkah setengah (half step)……………. 8

xii
2.2 LCD(Liquid Crystal Display)………………………….. 9
2.2.1 LCD M1632…………………………………….. 9
2.2.2 Register………………………………………….. 9
2.2.3 DDRAM (Display Data RAM)…………………..9
2.2.4 CGRAM (Character Generator RAM)…………..10
2.2.5 Pin-pin pada LCD……………………………….. 11
2.2.6 Pengoperasian instruksi…………………………. 11
2.3 Mikrokontroler AT89S51……………………………… 13
2.3.1 Struktur Memori………………………………… 14
2.3.2 Set instruksi dan pemograman assembly………... 14
2.3.3 Set instruksi dalam MCS51………………………15
2.3.3.1 Kelompok penyalinan data………………15
2.3.3.2 Kelompok instruksi aritmatik……………15
2.3.3.3 Kelompok instruksi logika……………… 16
2.3.3.4 Kelompok instruksi jump………………..16
2.3.3.5 Kelompok SUB – RUTIN……………….17
2.3.3.6 Kelompok instruksi loncat bersyarat…….17
2.3.3.7 Kelompok instruksi proses dan test……...17
2.4 Penguat arus motor stepper…………………………….. .17

BAB III RANCANGAN PENELITIAN……………………………19


3.1 Diagram Blok……………………………………………19
3.2 Perancangan hardware…………………………………..20
3.2.1 Rangkaian saklar………………………………….20
3.2.2 Rangkaian tombol…………………………………21
3.2.3 Rangkaian mikrokontroler AT89S51…………….. 21
3.2.4 Penguat arus……………………………………… 22
3.2.5 Rangkaian indicator LED………………………… 24
3.3 Perancangan software…………………………………… 24

xiii
3.3.1 Pemograman AT89S51 untuk kendali LCD……… 26
3.3.2 Pemograman untuk mencari nilai pola dan sudut… 28
3.3.3 Pemograman untuk delay………………………… 30

BAB IV HASIL DAN PEMBAHASAN……………………………. 31


4.1 Pengujian perangkat keras……………………………… 31
4.1.1 Rangkaian Catu Daya............................................. 31
4.1.2 Rangkaian kendali (Mikrocontroler AT89S51)...... 32
4.1.3 Pengujian indicator………………………………. 37
4.1.4 Pengujian penguat arus…………………………… 37

4.1.5 Pengujian tampilan LCD…………………………. 38


4.1.6 Pengujian putaran motor…………………………. 40
4.2 Pengujian alat oleh pengguna…………………………… 41
4.2.1 Pengoperasian alat……………………………….. 41
4.2.2 Pemahaman motor stepper……………………….. 42
4.2.3 Pemahaman tampilan…………………………….. 42
4.2.4 Kendala pengoperasian…………………………… 43
4.2.5 Kemasan (Box)…………………………………… 43
4.2.6 Kekurangan………………………………………. 43
4.2.7 Kaitan dengan dunia pendidikan…………………. 44

BAB V PENUTUP…………………………………………………… 45
5.1 Kesimpulan……………………………………………… 45
5.2 Saran-saran……………………………………………… 46

DAFTAR PUSTAKA

xiv
DAFTAR GAMBAR

Halaman

Gambar 2.1 Konstruksi Motor stepper………………………………. . 4


Gambar 2.2 Mode fullstep eksitasi tunggal…………………………… 7
Gambar 2.3 Langkah penuh eksitasi ganda………………………….. . 8
Gambar 2.4 Diagram alir proses instruksi……………………………. 12
Gambar 2.5 konfigurasi pin mikrokontroler AT89S51………………. 14
Gambar 2.6 Penguat arus motor stepper……………………………… 18
Gambar 3.1. Diagram blok stepper motor learning tool……………… 19
Gambar 3.2 Panel kendali…………………………………………….. 20
Gambar 3.3. Rangkaian saklar………………………………………… 20
Gambar 3.4 Rangkaian tombol……………………………………….. 21
Gambar 3.5. Gambar rangkaian mikrokontroler AT89S51…………… 21
Gambar 3.6 Rangkaian penguat arus…………………………………. 23
Gambar 3.7 Rangkaian indicator LED……………………………….. 24
Gambar 3.8 Diagram alir secara umum ……………………………… 25
Gambar 3.9 Diagram alir inisialisasi LCD…………………………… 26
Gambar 3.10 Subrutine bersih layar LCD……………………………. 27
Gambar 3.11 Diagram alir menampilkan karakter pada LCD………. . 27
Gambar 3.12 Diagram alir mengubah karakter pada LCD…………… 27
Gambar 3.13 Mencari besar nilai pola……………………………….. 28
Gambar 3.14 Mencari besar pulsa……………………………………. 29
Gambar 3.15 Menghitung besar nilay delay otomatis………………... 30
Gambar 4.1 Perangkat keras dengan bagian-bagiannya……………… 31
Gambar 4.2 Grafik tombol saat ditekan selama 1 detik……………… 35
Gambar 4.3 Tampilan utama…………………………………………. 38

xv
Gambar 4.4 Tampilan full step eksitasi tunggal…………………….. 38
Gambar 4.5 Tampilan full step eksitasi ganda ……………………… 39
Gambar 4.6 Tampilan half step……………………………………… 39

xvi
DAFTAR TABEL

Halaman
Tabel 2.1 Pemberian tegangan untuk full step eksitasi tunggal……… 6
Tabel 2.2 Pemberian tegangan untuk full step eksitasi ganda………... 7
Tabel 2.3 Tabel pemberian tegangan untuk langkah setengah ……… 8
Tabel 2.4 Peta memori (memory map)……………………………….. 10
Tabel 2.5 Tabel sandi ASCII untuk setiap karakter………………….. 10
Tabel 2.6 Pin-pin LCD M1632……………………………………….. 11
Tabel 2.7 Register penyeleksi ………………………………………… 12
Tabel 2.8 Operational code LCD……………………………………… 13
Tabel 4.1 Pengamatan level tegangan catu............................................ 32
Tabel 4.2 Pengujian level tegangan port 3 pada half step…………….. 33
Tabel 4.3 Pengujian level tegangan pada full step eksitasi tunggal…. .. 34
Tabel 4.4 Pengujian level tegangan pada full step eksitasi ganda….. .. 35
Tabel 4.5 Pengujian tegangan saklar…………………………………. 36
Tabel 4.6 Pengujian indikator LED…………………………………… 37
Tabel 4.7 pengujian arus dari rangkaian penguat arus………………... 37
Tabel 4.8 Pengujian putaran motor…………………………………… 40

xvii
BAB I

PENDAHULUAN

1.1 LATAR BELAKANG


Perkembangan teknologi yang pesat sekarang ini motot stepper banyak kita
jumpai pada alat-alat yang membutuhkan putaran sebagai kendalinya. Motor stepper
banyak juga kita jumpai didalam dunia industri dan keamanan. Antara lain kita dapat
jumpai pada printer, plotter, lengan robot, monitoring keadaan ruang, dan masih
banyak lagi yang lain yang menggunakan motor stepper sebagai penggeraknya. Motor
stepper lebih banyak digunakan sebagai penggerak dibandingkan dengan motor
induksi, dikarenakan motor stepper dapat diatur arah gerak putarannya, baik
berlawanan arah jarum jam (counter clock wise, CCW) maupun searah jarum
jam(clock wise, CW), serta dapat diatur pada posii atau sudut berapakah motor
stepper akan berhenti. Motor stepper berhenti tanpa ada pengereman.
Mikrokontroler didalam dunia teknologi sangat dibutuhkan karena dapat
menggantikan beberapa macam fungsi dari IC digital. Hingga saat ini mikrokontroler
dikembangkan terus sehingga kita hanya perlu satu chip saja untuk menjalankan suatu
rangkaian elektronika. MCS51 merupakan sebagai dasar untuk kita belajar agar kita
dapat dengan mudah mempelajari dari perkembangan mikrokontroler yang semakin
maju.
Penampil suatu keluaran alat dikembangkan hingga saat ini agar tampilan
keluaran dari suatu alat lebih menarik dan juga agar keluaran dapat lebih dimengerti
dan dibaca. LCD banyak digunakan dalam alat – alat yang menggunakan rangkaian
digital. LCD bentuknya lebih ramping, ringan dan mudah diatur tampilannya
dibandingkan dengan layar tabung.

1
1.2 Tujuan
Tujuan dari penelitian ini adalah untuk membuat alat stepper motor learning
tool.

1.3 Manfaat
Manfaat yang dapat dicapai dari pembuatan stepper motor learning tool
adalah untuk memudahkan kita mempelajari cara kerja motor stepper.

1.4 Rumusan masalah


Permasalahan yang dapat dirumuskan pada pembuatan alat ini adalah sebagai berikut:

1. Interface yang digunakan untuk menyambungkan motor stepper dengan


mikrokontroler.
2. Mengembalikan kedudukan motor stepper ke posisi semula.

1.5 Batasan masalah


1. Penampil pola dan pulsa digunakan LCD M1632.
2. AT89S51 digunakan sebagai pengendali untuk mengeluarkan tampilan pola
dan besar pulsa pada LCD dan sebagai pengendali putaran motor stepper.
3. Motor stepper bergerak searah jarum jam(CW) dan berlawanan jarum
jam(CCW).
4. Ada dua metode untuk menjalankan motor stepper yaitu half step dan full
step.
5. Metode full step dibagi menjadi dua yaitu eksitasi tunggal dan eksitasi ganda.
6. Setelah motor stepper berputar 1 kali (400 step untuk mode half step dan 200
step untuk mode full step) maka mikrokontroler akan kembali ke awal
program.

1.6 Metodologi penelitian


Metode yang digunakan dalam pembuatan alat ini adalah mengumpulkan
sejumlah referensi atau literature dari perpustakaan, internet, dan sebagainya,
merancang pembuatan rangkaian saklar dan tombol ke mikrokontroler, membuat
program per modenya, merancang pembuatan rangkaian interface dengan
menggunakan transistor.

2
1.7 Sistematika penulisan
Sistematika penulisan laporan ini adalah sebagai berikut:

BAB I : PENDAHULUAN
Latar belakang, tujuan manfaat, batasan masalah, rumusan
masalah, metodologi penelitian dan sistematika penulisan.
BAB II : DASAR TEORI
Motor stepper, metode langkah penuh (full step), metode langkah
setengah (half step), LCD (Liquid Crystal Display), LCD M1632,
mikrokontroler AT89S51, penguat arus motor stepper.
BAB III : PERANCANGAN ALAT
Berisi tentang blok diagram perancanga, perancangan perangkat
keras (hardware) dan perancangan perangkat lunak (software) dari
alat yang akan dibuat.
BAB IV : HASIL DAN PEMBAHASAN
Berisi hasil perancangan, hasil pengujian, dan pembahasan analisa.
BAB V : KESIMPULAN DAN SARAN
Bab yang berisi tentang kesimpulan akhir dan saran – saran penulis
tentang alat yang dibuat.

3
BAB II
LANDASAN TEORI
2.1 Motor stepper
Motor stepper merupakan salah satu jenis motor elektrik yang dapat
dikendalikan posisi sudutnya secara diskrit. Prinsip kerja motor stepper mirip dengan
DC motor, yaitu sama-sama dicatu dengan tegangan DC untuk memperoleh medan
magnet. Perbedaan antara motor stepper dengan motor dc yaitu motor dc mempunyai
magnet tetap pada stator, sedangkan motor stepper mempunyai magnet tetap pada
rotor. Untuk konstruksi motor stepper diperlihatkan pada gambar 2.1.

Gambar 2.1 Konstruksi Motor Stepper

Motor stepper tidak dapat bergerak dengan sendirinya. Motor stepper bergerak
secara step by step sesuai dengan spesifikasinya, dan bergerak dari satu step ke step
berikutnya memerlukan waktu. Motor stepper pada kecepatan yang rendah akan
menghasilkan torsi yang besar.
Kita dapat mengatur sudut dengan cara mengatur banyak pulsa yang
dimasukkan secara bergantian dan berurutan pada setiap lilitan. Untuk setiap langkah
penuh pemberian pulsa pada motor stepper tertentu memiliki besar sudut sebesar 1.80
(derajat). Motor stepper memiliki beberapa keuntungan yang dibutuhkan dalam
pembuatan alat yang membutuhkan ketepatan tinggi ,dikarenakan motor stepper
mempunyai ketelitian dan ketepatan serta keterulangan yang tinggi. Penggunaan
motor stepper banyak digunakan dalam pengendalian gerak putaran dalam dunia
industri.
Motor stepper tidak merespon sinyal clock, motor stepper mempunyai
beberapa lilitan dimana lilitan-lilitan tersebut harus dicatu (tegangan) dahulu dengan

4
suatu urutan tertentu agar dapat berotasi. Membalik urutan pemberian tegangan
tersebut akan menyebabkan putaran motor stepper yang berbalik arah. Jika sinyal
kontrol tidak terkirim sesuai dengan perintah maka motor stepper tidak akan berputar
atau tidak bergerak.
Karakteristik dari motor stepper adalah sebagai berikut:
• Voltage
Tiap motor stepper mempunyai tegangan rata-rata yang biasanya
tertulis pada tiap unitnya atau tercantum pada datasheet masing-
masing motor stepper. Tegangan rata-rata ini harus diperhatikan
dengan seksama karena bila melebihi dari tegangan rata-rata ini akan
menimbulkan panas yang terlalu besar pada motor stepper yang
menyebabkan kinerja putarannya tidak maksimal atau bahkan motor
stepper akan rusak dengan sendirinya.
• Resistance
Resistance ini akan menentukan arus yang mengalir, selain itu juga
akan mempengaruhi torsi dan kecepatan maksimum dari motor
stepper.
• Degrees step by step
Derajat per langkahnya adalah faktor terpenting dalam pemilihan
motor stepper sesuai dengan aplikasinya. Dalam pengoperasiannya kita
dapat menggunakan 2 prinsip yaitu full-step atau half-step. Dengan
full-step berarti motor stepper akan berputar sesuai dengan spesifikasi
derajat step by step, sedangkan half-step berarti motor stepper akan
berputar setengah derajat step by step dari spesifikasi motor stepper
tersebut.
Untuk mengendalikan motor stepper tergantung pada cara kita memberikan
sinyal tegangan pada lilitan tiap motor. Ada beberapa metode yang dapat kita
gunakan dalam pengendalian motor stepper yaitu : metode full step dan
metode half step.

5
2.1.1 Metode langkah penuh (Full step)
Metode ini ada dua bagian yaitu:

2.1.1.1 Metode langkah penuh eksitasi tunggal


Pemberian tegangan dilakukan secara bergantian pada setiap lilitan atau
kumparan dari motor stepper tersebut pada setiap langkahnya. Pemberian tegangan
untuk bekerja full step eksitasi tunggal dengan arah CW (Clock Wise) dan dengan
arah CCW (Counter Clock Wise) dapat dilihat dalam tabel 2.1:

Tabel 2.1 Pemberian tegangan untuk bekerja full step eksitasi tunggal

Fullstep eksitasi tunggal


Tegangan yang diberikan pada lilitan
Arah putar searah jarum Arah putar berlawanan
jam arah jarum jam

L3 L2 L1 L0 L3 L2 L1 L0
1 1 0 0 0 0 0 0 1
2 0 1 0 0 0 0 1 0
3 0 0 1 0 0 1 0 0
4 0 0 0 1 1 0 0 0

Pada fullstep, suatu titik pada sebuah kutub magnet di rotor akan kembali
mendapat tarikan medan magnet stator pada lilitan yang sama setelah step ke 4
berikutnya dapat diberikan lagi mulai dari step 1. setiap step, rotor bergerak searah
atau berlawanan dengan jarum jam sebesar spesifikasi derajat step by step dari motor
stepper. Setiap step hanya menarik sebuah kutub saja.
Untuk motor stepper yang digunakan didalam tugas akhir ini dengan sudut
1,80 setiap langkahnya. Pada gambar 2.2 ditunjukkan ilustrasi pemberian tegangan
pada lilitan untuk mode fullstep.

6
Gambar 2.2 Mode fullstep eksitasi tunggal

2.1.1.2 Metode langkah penuh eksitasi ganda


Pemberian tegangan dilakukan sekaligus untuk dua kumparan atau lilitan
pada setiap langkahnya. Pemberian tegangan untuk bekerja full step eksitasi ganda
dengan arah CW (clock wise) dan dengan arah CCW (counter clock wise) dapat
dilihat dalam tabel 2.2:

Tabel 2.2 Pemberian tegangan untuk bekerja fullstep eksitasi ganda

Fullstep eksitasi ganda


Tegangan yang diberikan pada lilitan
Arah putar searah jarum Arah putar berlawanan
jam arah jarum jam

L3 L2 L1 L0 L3 L2 L1 L0
1 1 1 0 0 0 0 1 1
2 0 1 1 0 0 1 1 0
3 0 0 1 1 1 1 0 0
4 1 0 0 1 1 0 0 1

Untuk ilustrasi gerak rotor dapat dilihat gambar 2.3 dengan besar sudutnya
adalah sebesar 1.80 setiap langkanya.

7
Gambar 2.3 Langkah penuh eksitasi ganda.

2.1.2 Metode langkah setengah (half step)


Metode ini merupakan gabungan dari dua metode yaitu metode langkah penuh
eksitasi tunggal dan metode langkah penuh eksitasi ganda. Untuk memutar motor
dengan metode ini ialah dengan menggunakan cara pemberian tegangan pada satu dan
dua lilitan secara bergantian. Pada metode ini setiap langkah menghasilkan sudut
sebesar 0,90. kita dapat melihat tabel 2.3 untuk metode langkah setengah sebagai
berikut:
Tabel 2.3 Tabel pemberian tegangan untuk langkah setengah

Fullstep eksitasi ganda


Tegangan yang diberikan pada lilitan
Arah putar searah jarum Arah putar berlawanan
jam arah jarum jam

L3 L2 L1 L0 L3 L2 L1 L0
1 1 0 0 0 0 0 0 1
2 1 1 0 0 0 0 1 1
3 0 1 0 0 0 0 1 0
4 0 1 1 0 0 1 1 0
5 0 0 1 0 0 1 0 0
6 0 0 1 1 1 1 0 0
7 0 0 0 1 1 0 0 0
8 1 0 0 1 1 0 0 1

8
2.2 LCD(Liquid Crystal Display)
Liquid Crystal Display atau yang sering disingkat sebagai LCD ini merupakan
suatu alat yang banyak digunakan sebagai penampil karakter. Pemakaian daya LCD
lebih rendah daripada pemakaian daya pada Light Emitting Dioda atau yang sering
disingkat dengan LED. Sedangkan kekurangan dari pemakaian LCD ialah salah
satunya pada layer LCD, karena pada umumnya sukar dapat dilihat dalam kondisi
ruangan yang sedikit pencahayaannya. Kontras gambar akan terlihat buruk jika
pencahayaannya kurang dan layar akan lebih sukar untuk dibaca. Lifetime LCD
tergantung pada pencahayaannya (illumination). LCD paling banyak digunakan
adalah LCD monokrom dengan satu warna.

2.2.1 LCD M1632


Pada alat tugas akhir kuliah ini LCD yang digunakan adalah LCD buatan
Seiko dengan seri M1632. M1632 adalah LCD dot matrik yang membutuhkan daya
yang kecil. LCD M1632 mempunyai 16 karakter, dua baris matrik 5 x7 . Kapasitas
RAM adalah sebesar 80 byte atau 80 karakter maksimum. Dibangun dengan reset
otomatis saat power dihidupkan. Membutuhkan tegangan +5V. dengan suhu saat
beroperasi sebesar 00C hingga 500C.

2.2.2 Register
Ada dua jenis pengontrol dari register delapan bit yaitu : instruction register
(IR) dan the data register (DR). Register-register tersebut dipilih oleh register select
(RS).
Instruction register (IR) menyimpan kode-kode instruksi antara lain
membersihkan karakter pada layer, menggeser cursor, memberikan informasi alamat
dari display data RAM (DD RAM) dan character generator RAM (CG RAM).
Data register (DR) menyimpan data sementara untuk ditulis ke DDRAM atau
CG RAM, atau membaca dari DD RAM atau CG RAM.

2.2.3 DDRAM (Display Data RAM)


DD RAM mempunyai kapasitas 80 x 8 bits atau 80 byte ndan menyimpan data
tampilan sebanyak 80 byte karakter. DDRAM menyimpan karakter-karakter yang

9
dikirim (sandi ASCII) dan yang akan ditampilkan pada layer LCD. Peta memori
(memory map) dari DDRAM dapat digambarkan pada tabel 2.4 sebagai berikut:

Tabel 2.4 Peta memori (memory map)


Posisi kursor 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Baris satu 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

Baris dua C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF

2.2.4 CGRAM (Character Generator RAM)


CG RAM merupakan penghasil karakter dengan menggunakan sandi ASCII
kemudian dikirim ke DDRAM untuk ditampilkan ke layer LCD. Untuk sandi
ASCII pada setiap karakter ditunjukkan pada tabel 2.5.
Tabel 2.5 Tabel sandi ASCII untuk setiap karakter

Pada tabel 2.4 diatas, 16 sandi pertama yaitu sandi 0000 0000 hingga 0000
1111 (00h-ffh) merupakan CGRAM yang digunakan untuk karakter grafis. Sandi
0001 0000 hingga 0001 1111 (10h-1fh) tidak digunakan dan hanya menampilkan
karakter kosong. Sandi karakter ASCII yang umum digunakan adalah mulai sandi
0010 0000 hingga 0111 1111 (20h-7fh). Sandi 1000 0000 hingga sandi 1001 1111
(80h-9fh) digunakan untuk menampilkan karakter kosong dan kode 1010 000
hingga 1101 1111 (A0h-Dfh) merupakan karakter jepang.

10
2.2.5 Pin-pin pada LCD
Pada tabel 2.6 ditunjukkan pin-pin yan digunakan dalam LCD M1632.
Tabel 2.6 Pin-pin LCD M1632

Pada tabel 2.6 diatas kaki 1 dan 3 disambungkan dengan 0v atau ground
sedangkan dari kaki 2 disambungkan dengan vcc power suplly 5v dengan toleransi
sebesar 10% atau sebesar 4,5v hingga sebesar 5,5v. Agar LCD dapat mengetahui
apakah yang dikirim merupakan data atau instruksi maka digunakan kaki 4 (RS).
Untuk RS diberi sinyal high maka LCD membaca masukan sebagai data, sedangkan
jika RS diberi sinyal low maka LCD akan membaca masukan sebagai instruksi. Kaki
5 merupakan kaki yang digunakan untuk menulis data ke LCD atau membaca data
dari LCD. Pada alat TA stepper motor learning tool data dari LCD tidak pernah
dibaca oleh MCS51 maka pada pin 5 disambungkan dengan ground. Pin 6 merupakan
pin enable, pin ini digunakan untuk memberikan sinyal detak (clock) ke LCD bahwa
sedang dilakukan pengiriman data. Pin 7 hingga pin 14 merupakan pin untuk data.
Sedangkan pin 15 dan pin 16 merupakan pin untuk mengatur kontras dari layer LCD.

2.2.6 Pengoperasian instruksi


Mode pengoperasia terdiri atas pengoperasian 8 bit atau 4 bit, hal ini
tergantung dari mode pengoperasian yang dipilih oleh pengguna alat. Pada
pengoperasian 8 bit dibutuhkan 8 jalur data yaitu pin DB0 hingga pin DB7 untuk
melakukan pengiriman data, sedangkan pada pengoperasian 4 bit pin yang dibutuhkan
juga 4 jalur yaitu DB0 hingga pin DB3 untuk mengirimkan data 4 bit. Pengoperasian

11
internal pada LCD dikontrol oleh keadaan jalur RS dan R/W. untuk pengoperasian-
pengoperasian dapat dilihat pada tabel 2.7 sebagai berikut:
Tabel 2.7 Register penyeleksi
RS R/W Pengoperasian
0 0 IR(instruction register)menulis penoperasian
internal
0 1 Membaca busy flag (DB7)dan pencacahan
alamat (DB0 ke DB6)
1 0 DR(Data register)menulis sebagai
pengoperasian
1 1 DR(data register)membaca sebagai
pengopersaian internal

Sebelum menampilkan karakter pada LCD dibutuhkan beberapa instruksi


untuk proses inisialisasi dan konfigurasi LCD terlebih dahulu, agar jalur-jalur atau
pin-pin pada LCD tersebut dapat berfungsi sebagai mana mestinya. Proses
inisialisasi ini digunakan untuk mengenali LCD yang akan digunakan apakah
tampilan satu baris atau dua baris, untuk mengenali mode pengiriman data dan juga
untuk mengenali pola matriksnya. Untuk melihat proses inisialisasi pada LCD
dapat digambarkan secara diagram alir pada gambar 2.4

Start

RS = 0

Instruksi inisialisasi
disiapkan

E=0

Instruksi diterima LCD

E=1

RS = 1

finish

Gambar 2.4 Diagram alir proses instruksi

Sedangkan untuk melihat beberapa sandi-sandi operasional untuk instruksi-


instruksi dapat dilihat dalam tabel2.8. Dalam tabel2.8 diperlihatkan beberapa instruksi
yang digunakan dalam pengaturan tampilan LCD antara lain membersihkan layer dan
kursor kembali ke posisi semula, menggeser kursor, mengembalikan kursor ke kolom
satu baris satu (alamat 80h), membuat kursor berkedip.

12
Tabel 2.8 Operational code LCD

2.3 Mikrokontroler AT89S51


AT89S51 adalah mikrokontroler keluaran Atmel dengan 4K byte flash
PEROM (Programmable And Read Only Memory), AT89S51 merupakan memori
dengan teknologi nonvolatile memory, isi memori tersebut dapat diisi ulang ataupun
dihapus berkali-kali. Gambar 2.5 menunjukkan konfigurasi pin-pin untuk
mikrokontroller AT89S51.

13
Gambar 2.5 Konfigurasi pin mikrokontroler AT89S51

2.3.1 Struktur memori


AT89S51 mempunyai struktur memori yang terdiri atas:
• RAM internal, memori sebesar 128 byte yang biasanya digunakan untuk
menyimpan variable atau data yang bersifat sementara.
• Special Function Register (Register fungsi khusus), memori yang berisi
register-register yang mempunyai fungsi-fungsi khusus yang disediakan
oleh mikrokontroler tersebut. Seperti timer, serial dan lain-lain.
• Flash PEROM, memori yang digunakan untuk menyimpan instruksi-
instruksi MCS51.

2.3.2 Set instruksi dan pemograman assembly


Operan dalam pemograman mikrokontroler adalah data yang tersimpan
dalam memori, register dan input/output (I/O). instruksi yang dikenal secara umum
dikelompokkan menjadi beberapa kelompok yaitu instruksi untuk memindah data,
aritmatika, operasi logika, pengaturan aliran program dan beberapa hal khusus.
Kombinasi dari instruksi dan operan itulah yang membentuk instruksi pengatur kerja
mikrokontroler.
Data atau operan biasa berada ditempat yang berbeda sehingga dikenal
beberapa cara untuk mengakses data/operan tersebut yang dinamakan sebagai mode
pengalamatan (addressing mode). Mode pengalamatan ada 5 macam yaitu:
1. Pengalamatan segera (immediate addressing).
2. Pengalamatan langsung (direct addressing).

14
3. Pengalamatan tidak langsung (indirect addressing).
4. Pengalamatan register (register addressing).
5. Pengalamatan kode tidak langsung (code indirect addressing)

2.3.3 Set instruksi dalam MCS51


Secara keseluruhan MCS51 mempunyai 255 macam instruksi, instruksi
tersebut dikelompokkan sebagai berikut:

2.3.3.1 Kelompok penyalinan data


Instruksi dasar untuk kelompok ini adalah MOV, singkatan dari move yang
artinya memindah, meskipun demikian lebih tepat instruksi ini diartikan sebagai
menyalin data.

2.3.3.2 Kelompok instruksi aritmatik


Instruksi-instruksi dalam kelompok ini selalu melibatkan accumulator.
Instruksi ini terdiri dari berbagai macam antara lain:
• Instruksi ADD dan ADDC
Kedua instruksi ini selalu melibatkan akumulator. Isi akumulator A
ditambah dengan suatu bilangn (dalam ukuran 1 byte) maka hasil
penjumlahan akan ditampung kembali pada akumulator. Dalam operasi
ini carry (C flag dalam PSW – program status word) berfungsi sebagai
penampung limpahan (overflow) hasil jumlahan. ADDC sama dengan
ADD hanya saja instruksi ADDC nilai bit carry dalam proses
sebelumnya dijumlahkan bersamaan.
• Instruksi SUBB
Instruksi akumulator A dikurangi dengan bilangan (1 byte) beserta
dengan nilai bit carry. Hasil pengurangan akan ditampung kembali
dalam akumulator.
• Instruksi DA A
Instruksi DA A (Decimal Adjust) dipakai setelah instruksi ADD, ADDC,
atau SUBB, digunakan untuk merubah nilai biner 8 bit yang tersimpan
dalam akumulator menjadi 2 digit bilangan dalam format BCD (Binary
Coded Decimal).

15
• Instruksi mul AB
Bilangan biner 8 bit dalam akumulator A dikalikan dengan bilangan
biner 8 bit dalam register B. hasil perkalian berupa biner 16 bit, 8 bit
bilangan biner yang bagian atas (hight byte) disimpan di register B,
sedangkan 8 bit yang lainnya (low byte) disimpan di akumulator A.
• Instruksi DIV AB
Bilangan biner 8 bit dalam akumulator A dibagi dengan bilangan biner 8
bit dalam register B. hasil pembagian berupa bilangan biner 8 bit
ditampung di akumulator A, sedangkan sisa pembagian berupa bilangan
biner 8 bit di tampung di register B.

• Instruksi DEC dan INC


Instruksi DEC digunakan untuk menurunkan suatu nilai (1 byte), yang
tersimpan dalam salah satu dari empat macam: akumulator, register, nilai
langsung dan tidak langsung. Sedangkan INC digunakan untuk
menaikkan satu nilai (1 byte).
• Instruksi INC DPTR
Instruksi ini adalah satu-satunya instruksi penaikkan (increment) yang
bekerja pada data 16 bit yaitu DPTR. Yaitu menaikan penunjuk data
sebesar 1.

2.3.3.3 Kelompok instruksi logika


Kelompok instruksi ini dipakai untuk melakukan operasi logika, yaitu operasi AND
(instruksi ANL), operasi OR (instruksi ORL), operasi exclusive-OR (instruksi XRL),
operasi clear (instruksi CLR), instruksi negasi atau komplemen (instruksi CPL),
operasi penggeseran kanan atau kiri (instruksi RR, RRC, RL, RLC) serta operasi
penukaran data (instruksi SWAP).

2.3.3.4 Kelompok instruksi jump


Mikrokontroler MCS51 mempunyai 3 macam instruksi jump, yakni instruksi
LJMP (long jump), instruksi AJMP (absolute jump) dan instruksi SJMP (short jump).
Perbedaan dari ketiga instruksi ini adalah instruksi LJMP mepunyai ukuran 3 byte,
sedangkan instruksi AJMP dan SJMP hanya 2 byte.

16
2.3.3.5 Kelompok SUB – RUTIN
Sub-rutin merupakan kumpulan instruksi yang karena berbagai pertimbangan
dipisahkan dari program utama. Bagian-bagian deprogram utama akan ‘memanggil’
(CALL) sub-rutin, artinya mikrokontroler sementara meningggalkan aliran program
utama untuk mengerjakan instruksi-instruksi dalam sub-rutin, selesai mengerjakan
sub-rutin mikrokontroler kembali ke aliran program utama. Satu-satunya cara untuk
kembali ke program dari eksekusi sub-rutine adalah menggunakan instruksi ret pada
akhir sub-rutin. Sedangkan untuk memanggil sub-rutin digunakan ACALL atau
LCALL.

2.3.3.6 Kelompok instruksi loncat bersyarat

Instruksi jump bersyarat merupakan instruksi inti bagi mikrokontroler, tanpa


kelompok instruklsi ini program yang ditulis tidak banyak berarti. Instruksi-instruksi
yaitu antara lain: jz, jnz, jc, jnc, jb, jnb dan jbc.

2.3.3.7 Kelompok instruksi proses dan test


Instruksi-instruksi ini melakukan suatu proses terlebih dahulu, kemudian
memantau hasil proses untuk menentukan apakah harus melompat atau tidak. Ada dua
instruksi proses dan test yaitu instruksi DJNZ dan instruksi CJNE.

2.4 Penguat arus motor stepper


Untuk menggerakkan motor stepper dibutuhkan daya yang besar. Daya
keluaran dari MCS51 belum mampu menggerakkan motor stepper, untuk itu
diperlukan rangkaian tambahan yang dapat menghasilkan daya yang dapat cukup
untuk menggerakkan motor stepper tersebut. Rangkaian penggerak motor stepper
terdiri dari resistor, transistor dan dioda. Transistor yang digunakan adalah transistor
daya tipe NPN. Basis transistor akan memberikan arus basis yang menyebabkan
transistor akan bekerja. Dioda diperlukan untuk membuang energi dalam bentuk
medan listrik yang timbul pada lilitan motor pada saat transistor dalam keadaan tidak
bekerja sehingga tidak merusak transistor.

17
Gambar 2.6 Penguat arus motor stepper.

Transistor difungsikan sebagai penguat arus dengan membuat transistor


bekerja didaerah aktif. Diasumsikan bahwa besar arus maksimum yang diserap motor
stepper sama dengan arus Ic saat saturasi. Maka kita dapat menentukan besar Ic
maksimum dengan persamaan 2.1 sebagai berikut:
Vcc
I c ( maks ) = I c ( sat ) = …………………………………..persamaan 2.1
Rc
dengan persamaan 2.1 maka besarnya arus basis maksimum yang terjadi adalah:
I c (maks )
Ib = …………………………………………….persamaan 2.2
β
dari persamaan 2.2 diatas kita dapat menentukan besarnya Rb sebagai berikut:
Vb − Vbe
Rb = …………………………………………...persamaan 2.3
Ib

18
BAB III
RANCANGAN PENELITIAN

3.1 Diagram Blok


Gambar 3.1 dibawah ini merupakan gambar diagram blok dari rangkaian
stepper motor learning tool:

saklar LCD

Tombol reset AT89S51 Indikator LED

Penguat arus

Tombol start Motor stepper

Tombol
next

Gambar 3.1. Diagram blok stepper motor learning tool

Mikrokontroler membaca urutan saklar yang digunakan untuk mengatur jenis


masukan yang akan digunakan untuk menjalankan motor stepper. Untuk menjalankan
motor stepper terdapat dua jenis waktu tunda yang digunakan, yaitu dengan rangkaian
RC dan dengan tombol next. Waktu tunda yang menggunakan rangkaian RC dapat
kita atur waktu untuk menjalankan motor stepper perlangkahnya. Sedangkan waktu
tunda dengan tombol next waktu dari step ke step tergantung kapan kita menekan
tombol next. LCD pada rangkaian stepper motor learning tool dipergunakan untuk
mempermudah untuk melihat tampilan, tanpa menggunakan LCD kita masih dapat
menjalankan motor stepper. Pada rangkaian stepper motor learning tool dilengkapi
dengan indicator yang berupa rangkaian LED untuk dapat melihat pola dari motor.
Arus yang keluar dari mikrokontroler AT89S51 belum dapat menjalankan motor
stepper untuk itu dipergunakan penguat arus. Arus keluaran dari port mikrokontroler
AT89S51 di supply oleh penguat arus untuk agar arus cukup menjalankan motor
stepper.

19
Gambar untuk susunan panel kendali ditunjukkan pada gambar 3.2 dibawah
ini:

Gambar 3.2 Panel kendali

3.2 Perancangan hardware


3.2.1 Rangkaian saklar
Perancangan saklar ini dirancang sedemikian rupa sehingga saat dipilih, pada
port mikrokontroler diberikan keadaan low (0) ataupun high(1). Untuk itu agar saklar
memberikan sinyal low (0) ataupun high(1) maka satu kaki pada saklar disambungkan
dengan ground dan kaki yang lain pada Vcc. Saat salah satu kaki saklar yang tidak
dipilih maka kondisi yang terjadi pada kaki mikrokontroler adalah mendapatkan
tegangan high (1). Saat kaki port pada mikrokontroler tidak tersambung dengan
rangkaian atau jalur apapun (no connect) maka kaki mikro tersebut berkeadaan high
(1). Untuk gambar 3.3 dibawah ini merupakan rangkaian saklar yang akan dipasang
pada mikrokontroler.

Gambar 3.3. Rangkaian saklar

20
3.2.2 Rangkaian tombol
Rangkaian tombol ini fungsinya sama dengan rangkaian saklar yaitu
memberikan nilai keadaan high (1) dan low (0). Hanya saja pada rangkaian tombol
memberikan nilai keadaan hanya sesaat ditekan, saat dilepas akan kembali kenilai
keadaan semula. Nilai keadaan high diperoleh saat tombol tidak ditekan sedangkan
untuk nilai keadaan low diperoleh saat tombol ditekan. Pada gambar 3.4 ditunjukkan
gambar rangkaian tombol yang salah satu kakinya terhubung pada ground.

Gambar 3.4 Rangkaian tombol

3.2.4 Rangkaian mikrokontroler AT89S51


Pada gambar 3.5 ditunjukkan gambar rangkaian mikrokontroler AT89S51
yang digunakan untuk mengendalikan putaran pada motor stepper, mengolah data
input yang berupa tombol dan saklar, mengatur tampilan dari LCD.

Gambar 3.5. Gambar rangkaian mikrokontroler AT89S51

21
Port-port yang digunakan untuk memberikan nilai masukan pada
mikrokontroler adalah port2 dan port3. Pada port3 tidak digunakan semuanya untuk
memberi masukan dalam hal ini yang digunakan sebagai masukan p3.0, p3.1, p3.2
sedangkan p3.3 dan p3.4 digunakan sebagai kendali untuk waktu tunda dan p3.6 dan
p3.7 sebagai kendali LCD. Port-port yang digunakan sebagai keluaran adalah port0
dan port2. port0 digunakan sebagai kendali memutar motor stepper, fungsi yang
dikeluarkan oleh port0 ini antara lain menjalankan motor stepper searah jarum jam
ataupun berlainan jarum jam, dengan metode step yang digunakan adalah full step
eksitasi tunggal, full step eksitasi ganda dan half step.
Sedangkan port2 digunakan untuk mengendalikan tampilan pada LCD. LCD
membutuhkan 10 bit masukan yaitu 1 bit enable, 1 bit RS dan 8 bit data. Untuk itu
digunakan 2 port untuk mengendalikan LCD antara lain port 2 dan sisanya pada port
3. Pada port 3 hanya digunakan 2 bit saja yaitu p3.6 sebagai enable yaitu yang
berfungsi sebagai pemberian sinyal clock setelah selesai memberikan data. P3.7
sebagai RS yang berfungsi untuk memberi informasi kepada LCD bahwa data yang
dikirim berupa data atau berupa instruksi.

3.2.1 Penguat arus


Untuk menggerakkan motor stepper dibutuhkan daya yang besar. Keluran arus
maksimal pada mikrokontroler adalah sebesar 1mA, sedangkan arus yang dibutuhkan
untuk menggerakkan motor stepper adalah sebesar 0,9 A. Daya keluaran dari MCS51
belum mampu menggerakkan motor stepper, untuk itu diperlukan rangkaian
tambahan yang dapat menghasilkan daya yang dapat cukup untuk menggerakkan
motor stepper tersebut. Rangkaian penggerak motor stepper terdiri dari resistor,
transistor dan dioda. Transistor yang digunakan adalah transistor daya tipe NPN.
Basis transistor akan memberikan arus basis yang menyebabkan transistor akan
bekerja. Dioda diperlukan untuk membuang energi dalam bentuk medan listrik yang
timbul pada lilitan motor pada saat transistor dalam keadaan tidak bekerja sehingga
tidak merusak transistor.
Rangkaian penguat arus berfungsi untuk menguatkan arus untuk menjalankan
motor stepper. Pada gambar 3.6 diperlihatkan rangkaian penguat arus motor stepper.

22
Gambar 3.6 Rangkaian penguat arus

Transistor difungsikan sebagai penguat arus dengan membuat transistor


bekerja didaerah aktif. Diasumsikan bahwa besar arus maksimum yang diserap motor
stepper adalah 1A. Maka kita dapat menentukan besarnya Ic dengan mengetahui arus
yang dibutuhkan untuk menggerakkan motor, yaitu Ic sebesar 1A maka kita dapat
mencari β dengan persamaan 3.1 sebagai berikut:
IC = βI b ………………………………persamaan 3.1
Ic
β =
Ib
1A
=
1mA
= 1000
Dengan persamaan 3.1 maka besarnya Rc adalah:
Vcc
Rc = ……………………………persamaan 3.2
Ic

12
=
1A
= 12Ω
Dari persamaan 3.2 diatas kita dapat menentukan besarnya Rbsebagai berikut:
Vb − Vbe
Rb = …………………………..persamaan 3.2
Ib

5 − 1 .4
Rb =
1.10 −3
Rb = 3,6 KΩ

23
3.2.5 Rangkaian indicator LED
Rangkaian ini terdiri dari 4 led yang pada kaki katoda dijadikan satu (common
katoda) dan disambungkan dengan tegangan ground. Sehingga LED akan menyala
saat diberika kondisi high (1). Resistor dalam rangkaian LED digunakan sebagai
pembatas arus dan nilainya didapat dari persamaan 3.4sebagai berikut:
VCC − VLED
ILED = ………………………persamaan 3.4
R
Sehingga ,
VCC − VLED
R = ………………………persamaan 3.5
I LED
Diketahui nilai VCC = 5v , VLED adalah 2,2 v dan ILED sebesar 10mA, maka
dari persamaan (2.1) didapat nilai R:
5 - 2,2
R =
10.10 −3
= 280 Ω …………………………….persamaan 3.6
untuk mendapatkan nilai resistor yang sesuai dengan pasaran yang ada maka
digunakan resistor sebesar 270 Ω. Pada gambar 3.7 ditunjukkan rangkaian indicator
LED.

Gambar 3.7 Rangkaian indicator LED

3.3 Perancangan software


Pada gambar 3.8 ditunjukkan diagram alir secara umum untuk keseluruhan
program mikrokontroler. Untuk pertamakali alat dihidupkan maka pengguna alat akan
diberikan pilihan untuk menekan tombol start, penggunaan tombol start ini agar
pengguna dapat memberikan pilihan mode dan arah yang akan digunakan sebelum
motor stepper berjalan. Setelah tombol start ditekan maka mikrokontroler akan mulai
membaca pilihan pada saklar. Untuk pertama pembacaan saklar mikrokontroler akan
membaca delay yang akan digunakan untuk menjalankan motor stepper, apakah

24
waktu tunda yang digunakan secara manual atau secara otomatis. Jika pengguna
menggunakan waktu tunda manual maka mikrokontroler akan menjalankan motor dan
memberi tampilan pada LCD setelah mendapatkan perintah dari user dengan menekan
tombol next. Sedangkan waktu tunda yang digunakan otomatis maka mikrokontroler
akan mengendalikan rangkaian RC dan menjalankan motor dan menampilkan pada
LCD setelah rangkaian RC memberikan nilai keadaan high (1) pada mikrokontroler.

Start
A
Masukkan delay, metode,
arah, besar delay yg akan
digunakan

Baca saklar metode, arah, besar delay

Tidak

Tombol start ditekan?

Ya

CW atau
Ya CW ? Tidak
CCW?

Tidak Putar motor CW Putar motor CCW

Tidak

Menghitung
besar pulsa

Mencari besar
nilai pola
Sudah 400
step?
Sudah 400
Tampilkan pola dan step?
besar pulsa pada
LCD

Manual? Tidak
Ya

Tidak Hitung besar


nilai delay
Ya otomatis
Tombol next Ya
ditekan? Jalankan delay

Ya

Tidak tidak

Tombol reset
ditekan?

Ya

A A A

Gambar 3.8 Diagram alir secara umum

25
3.3.1 Pemograman AT89S51 untuk kendali LCD
Pada perancangan untuk mengendalikan LCD maka kita dapat memprogram
AT89S51 untuk memberikan keluaran sebagai pengendali enable, RS, data masukan,
dan waktu tunda.
Untuk pertamakali sesaat setelah LCD dinyalakan maka kita perlukan untuk
menginisialisasi LCD terlebih dahulu. Secara diagram alir digambarkan pada gambar
3.9. Untuk pemberian instrupsi enable kita dapat membuat sebuah subrutine karena
pada program enable ini akan digunakan beberapakali dalam pemograman. Untuk
gambar 3.9a merupakan diagram alir untuk inisialisasi secara keseluruhan, sedangkan
untuk gambar 3.9b merupakan diagram alir subrutine untuk enable, dan gambar 3.9c
merupakan diagram alir untuk inisialisasi LCD dengan memanggil subroutine.

S ta rt

RS = 0

In s tru k s i d is ia p k a n S ta rt S ta rt

E = 0 E = 0 RS = 0

Tunda 5m s Tunda 5m s In s tru k s i d is ia p k a n

E = 1 E = 1 C a ll e n a b le

fin is h fin is h fin is h

(a ) (b ) (c )

Gambar 3.9 Diagram alir inisialisasi LCD

Setelah penginisialisasian LCD maka kita perlu untuk membersihkan layar


LCD. Pemberian program untuk membersihkan LCD ini diberikan diawal
dikarenakan saat program mendapat pilihan reset maka program akan meloncat pada
awal program, maka LCD harus dibersihkan terlebih dahulu untuk tampilan
selanjutnya.
Pada gambar 3.10 dibawah ini merupakan diagram alir dari subrutine program
untuk menghapus layar LCD dan kursor kembali ke kolom satu baris satu. Pada
program untuk membersihkan layar juga dibuat subrutine dikarenakan akan
digunakan beberapakali dalam pemograman.

26
S ta r t

RS = 0

D a ta 0 1 h

C a ll e n a b le

fin is h

Gambar 3.10 Subrutine bersih layar LCD

Agar mudah dan untuk memperkecil memori mikrokontroleryang digunakan


maka dalam menampilkan karakter-karakter dalam LCD digunakan subrutine-
subrutine sehingga kita dapat memanggil sewaktu-waktu saat kita membutuhkan
tampilan karakter tersebut. Pada gambar 3.11 ditunjukkan diagram alir untuk
menampilkan karakter pada LCD.
S ta r t

RS = 1

D a ta k a r a k te r
A S C II d ik ir im k a n

C a ll e n a b le

F in is h

Gambar 3.11 Diagram alir menampilkan karakter pada LCD

Saat menjalankan motor stepper dan menampilkannya pada LCD, tampilan


akan tetap sama tiap stepnya hanya yang berubah adalah pola dan besar pulsa saja.
Untuk itu kita dapat menetapkan alamat yang akan dirubah karakternya pada tampilan
LCD. Gambar 3.12 adalah diagram alir untuk mengubah karakter yang berubah pada
LCD yaitu pola dan besar pulsanya.
S ta rt

RS = 0

D a ta in s tr u k s i
a la m a t y a n g a k a n
d ir u b a h
k a r a k t e r n y a d ik ir im

C a ll e n a b le

RS = 1

D a ta k a ra k te r b a ru
d i k ir i m

C a ll e n a b le

F in is h

Gambar 3.12 Diagram alir mengubah karakter pada LCD

27
3.3.2 Pemograman untuk mencari nilai pola dan besar sudut
Untuk mencari nilai-nilai pola kita dapat menggunakan satu mode yaitu mode
half step karena pada setiap langkah ganjil pada half step merupakan mode full step
untuk eksitasi tunggal, sedangkan setiap langkah genap pada half step merupakan
mode full step untuk eksitasi ganda. Untuk menampilkan nilai pada LCD besar
polanya kita harus mencari nilai pada setiap bit pada nilai pola yang akan ditampilkan.
Untuk arah CW (clock wise) dan CCW ( counter clock wise) diagram alirnya hampir
sama hanya saja pada CCW akan berbeda saat penambahan nilai pola setelah 3X
motor stepper melangkah, pada arah CCW ditambah dengan 08h. Gambar 3.13
merupakan diagram alir mencari nilai pola tiap langkahnya dan mencari nilai tiap bit
pada nilai pola yang akan ditampilakan pada LCD dengan mode half step.

Start

Baca saklar metode, mode,


arah

Putar nilai pola

Membagi nilai pola dengan


bilangan 2 hexsa kemudian
menyimpan setiap nilai bit
Tidak pada memori yang berbeda
untuk setiap nilai pola ganjil
dan nilai pola genap

Menampilkan
pada LCD

Apakah sudah
3X?

Ya

Putar nilai pola

Nilai pola genap ditambah


dengan 8 heksa

Menampilkan
pada LCD

finish

Gambar 3.13 Mencari besar nilai pola

28
Untuk mencari besar pulsa yang telah digunakan untuk menjalankan motor
stepper kita dapat menambahkan dengan bilangan 1 heksa untuk setiap kali motor
stepper melangkah. Saat akan menampilkan besar pulsa pada LCD untuk setiap
langkahnya maka kita harus mencari perbitnya agar dapat ditampilkan pada LCD
secara satu persatu secara berurutan. Pada gambar 3.14 merupakan diagram alir untuk
mencari besar pulsa yang akan digunakan untuk setiap langkahnya.

Start

3 byte alamat memory untuk


menyimpan besar pulsa

Byte pertam ditambah dengan


bilangan 1 heksa

Byte pertama
sudah 0a
heksa

Ya

Byte kedua ditambah dengan


bilangan 1 heksa

Tidak
Byte kedua
sudah 0a
heksa

Ya Tidak

Byte ketiga ditambah dengan


bilangan 1 heksa

Menampilkan pada
LCD

Finish

Gambar 3.14 Mencari besar pulsa

29
3.3.3 Pemograman untuk delay
delay yang digunakan pada rangkaian stepper motor learning tool ada dua
jenis antara lain delay dengan tombol next dan delay otomatis. Untuk delay dengan
menggunakan tombol next merupakan delay manual yaitu waktu tunda yang
tergantung dari user menekan tombol next. Sedangkan delay otomatis yaitu waktu
tunda yang telah ditetapkan oleh user sehingga user hanya menekan nilay delay sekali
saja untuk menjalankan motor stepper. Pada gambar 3.15 ditunjukkan diagram alir
dari pemograman nilai delay otomatis.

start

Masukkan
nilai delay

Baca tombol delay

Jalankan besar
Delay 1s Ya
delay 1s

Tidak

Jalankan besar
Delay 2s Ya finish
delay 2s

Tidak

Jalankan besar
Delay 3s Ya
delay 3s
Tidak
Tidak

Jalankan besar
Delay 4s Ya
delay 4s

Gambar 3.15 Menghitung besar nilay delay otomatis

30
BAB IV
HASIL DAN PEMBAHASAN

4.1 Pengujian perangkat keras


Pengujian perangkat keras dilakukan untuk memastikan bahwa alat yang
dirancang bekerja sesuai dengan kondisi-kondisi yang ditetapkan dalam perancangan.
Pengujian perangkat keras ini meliputi tiga bagian, yaitu bagian catu daya, bagian
kendali (AT89S51), bagian penampil LED (Indikator), bagian penampil LCD, bagian
saklar, bagian tombol, dan bagian motor. Pada gambar 4.1 ditunjukkan gambar
perangkat keras hasil perancangan dan bagian-bagiannya.

Motor stepper Penampil LCD

Indicator LED Tombol

Saklar on/off
Saklar menu

Delay automatik

Gambar 4.1 Perangkat keras dengan bagian-bagiannya

4.1.1 Rangkaian Catu Daya


Level tegangan dc yang digunakan dalam perancangan hardware (perangkat
keras), yang masuk pada rangkaian ada dua level tegangan yaitu level tengangan +5V
dan level tegangan +12V. Untuk menyuplai tegangan +5 Vdc, digunakan IC 7805
yang secara konsisten menyediakan suplai tegangan +5 Vdc, level tegangan +5 Vdc
digunakan sebagai Vcc bagi mikrokontroler. Sedangkan tegangan +12 Vdc digunakan

31
untuk tegangan Vcc pada penguat arus yang nantinya digunakan untuk menggerakkan
motor stepper.
Data dari pengamatan dapat diambil dengan mengukur tegangan keluaran dari
IC 7805 dan pada tegangan catu 12Vdc. Hasil pengamatan dapat dilihat pada tabel 4.1

Tabel 4.1 Pengamatan level tegangan catu


Catu 12V IC 7805
Tegangan (Volt) 12,2 5,1

Untuk tegangan catu antara pengamatan dengan perancangan terdapat Error


sebesar 0,2 Vdc, maka didapatkan error sebesar 0 ,2 sedangkan
Ε = × 100 % = 1 , 6 %
12

untuk toleransi sebesar 0 .6 maka error yang terjadi pada tegangan


Τ = × 100 % = 5 %
12

catu 12Vdc hasil pengamatan masih masuk dalam toleransi.


Untuk tegangan IC 7805 antara pengamatan dengan perancangan terdapat
error sebesar 0,1Vdc. Pada data sheet mikrokontroler tegangan minimum 2,2V dan
tegangan maksimum 5,5V, sehingga tegangan error pada IC 7805 masih tidak
melewati batas minimum dan maksimum.
Sedangkan untuk data sheet pada LCD untuk tegangan Vcc sebesar 5Vdc
dengan toleransi sebesar 10%. Untuk error 0,1 maka error adalah sebesar
0,1
Ε= × 100 % = 2 % error tegangan keluaran IC 7805 tidak melewati batas toleransi
5
teganngan Vcc LCD.

4.1.2 Rangkaian kendali (Mikrocontroler AT89S51)


a. Pengujian port3 mikrokontroler AT89S51
Pada port 3 mikrokontroler digunakan untuk menjalankan motor stepper
dan indikator LED. Port 3 untuk menjalankan motor adalah P3.0, P3.1, P3.2,
dan P3.3 , sedangkan port 3 untuk menjalan kan indicator LED yaitu P3.4,
P3.5, P3.6, dan P3.7. Pengujian tegangan kaki port 3 mikrokontroler bertujuan
untuk mengetahui apakah program yang ditulis untuk memberikan logika 1
pada output telah bekerja sesuai yang diharapkan atau sebaliknya. Dari data
sheet mikrokontroler dapat diambil batas-batas tegangan keluaran
mikrokontroler.

32
• Untuk level tegangan low memiliki batas maksimum yaitu:
¾ Batas maksimum = 0,45 V

• Untuk level tegangan high memiliki batas minimal yaitu:


¾ Batas minimal = 0,9 Vcc
= 0,9 x 5,1
= 4,59 V
Pada tabel 4.2 ditunjukkan level tegangan pada port 3 saat program
berada pada half step searah jarum jam dan berlawanan arah jarum jam yang
didapat dari pengamatan.
Tabel 4.2 Pengujian level tegangan port 3 pada half step

Half step
Arah putar berlawanan arah
Arah putar searah jarum jam
jarum jam
P3.0 P3.1 P3.2 P3.3 P3.0 P3.1 P3.2 P3.3
& & & & & & & &
P3.4 P3.5 P3.6 P3.7 P3.4 P3.5 P3.6 P3.7
(Volt) (Volt) (Volt) (Volt) (Volt) (Volt) (Volt) (Volt)
4,8 0,2 0,2 0,4 0,2 0,2 0,2 4,7
1

2 4,7 4,7 0,4 0,2 0,2 0,2 4,7 4,6


3 0,2 4,8 0,2 0,1 0,3 0,2 4,9 0,2
4 0,2 4,6 4,7 0,2 0,1 4,7 4,7 0,2
5 0,2 0,2 4,85 0,2 0,2 4,8 0,2 0,4
6 0,4 0,3 4,8 4,7 4,7 4,7 0,2 0,1
7 0,2 0,2 0,2 4,7 4,7 0,2 0,2 0,2
8 4,7 0,2 0,2 4,6 4,7 0,1 0,2 4,7

Dari hasil pengamatan didapatkan level tegangan low yaitu sebesar 0,1 V
hingga 0,4 V. Besar tegangan low hasil pengamatan ini masih sesuai karena
tidak melebihi batas tegangan keluaran low maksimal dari data sheet yaitu
sebesar 0,45.
Dari hasil pengamatan juga didapatkan level tegangan high sebesar 4,7V
hingga 4,9V. Besar tegangan keluaran high hasil pengamatan ini masih sesuai
karena tidak kurang dari batas tegangan masukan high minimal dari data sheet
yaitu sebesar 4,59V.

33
Pada tabel 4.3 ditunjukkan hasil pengamatan level tegangan port 3 untuk
menjalankan motor pada saat program full step eksitasi tunggal untuk arah
searah jarum jam dan berlawanan arah jarum jam.

Tabel 4.3 Pengujian level tegangan port 3 pada full step eksitasi tunggal
Full step eksitasi tunggal
Arah putar searah jarum Arah putar berlawanan
jam arah jarum jam
P3.0 P3.1 P3.2 P3.3 P3.0 P3.1 P3.2 P3.3
& & & & & & & &
P3.4 P3.5 P3.6 P3.7 P3.4 P3.5 P3.6 P3.7
(Volt) (Volt) (Volt) (Volt) (Volt) (Volt) (Volt) (Volt)
4,8 0,2 0,3 0,15 0,2 0,2 0,4
1 4,8

2 0,1 4,8 0,3 0,2 0,2 0,2 4,95 0,15


0,2 0,1 4,95 0,1 0,2 0,3 0,2
3 4,8
0,1 0,1 0,3 4,8 0,15 0,4 0,3
4 4,8

Dari hasil pengamatan didapatkan level tegangan low yaitu sebesar 0,1 V
hingga 0,3 V. Besar tegangan low hasil pengamatan ini masih sesuai karena
tidak melebihi batas tegangan keluaran low maksimal dari data sheet yaitu
sebesar 0,45.
Dari hasil pengamatan juga didapatkan level tegangan high sebesar 4,8V
hingga 4,95V. Besar tegangan keluaran high hasil pengamatan ini masih
sesuai karena tidak kurang dari batas tegangan masukan high minimal dari
data sheet yaitu sebesar 4,59V.
Pada tabel 4.4 ditunjukkan hasil pengamatan level tegangan port 3 untuk
menjalankan motor pada saat program half step untuk arah searah jarum jam
dan berlawanan arah jarum jam.

34
Tabel 4.4 Pengujian level tegangan port 3 pada full step eksitasi ganda
Full step eksitasi ganda
Arah putar searah jarum Arah putar berlawanan
jam arah jarum jam
P3.0 P3.1 P3.2 P3.3 P3.0 P3.1 P3.2 P3.3
& & & & & & & &
P3.4 P3.5 P3.6 P3.7 P3.4 P3.5 P3.6 P3.7
(Volt) (Volt) (Volt) (Volt) (Volt) (Volt) (Volt) (Volt)
4,7 4,6 0,4 0,2 0,2 0,2 4,7
1 4,7
2 0,2 4,7 0,2 0,2 4,7
4,7 4,8 0,2
0,2 0,2 4,8 4,7 4,7 0,3 0,2
3 4,7
4,7 0,2 0,3 4,7 0,2 0,3 4,7
4 4,7

Dari hasil pengamatan didapatkan level tegangan low yaitu sebesar 0,2 V
hingga 0,4 V. Besar tegangan low hasil pengamatan ini masih sesuai karena
tidak melebihi batas tegangan keluaran low maksimal dari data sheet yaitu
sebesar 0,45.
Dari hasil pengamatan juga didapatkan level tegangan high sebesar 4,7V
hingga 4,8V. Besar tegangan keluaran high hasil pengamatan ini masih sesuai
karena tidak kurang dari batas tegangan masukan high minimal dari data sheet
yaitu sebesar 4,59V.

b. Pengujian tombol
Tombol tersambung dengan mikrokontroler pada port 1 yaitu P1.0, P1.1,
dan P1.2. cara kerja tombol yaitu memberikan sinyal low pada port
mikrokontroler. Pada gambar 4.2 ditunjukkan gambar grafik tegangan
terhadap waktu yang didapat mdari hasil pengamatan tombol.

Gambar 4.2 Grafik tombol saat ditekan selama 1 detik

35
Agar level tegangan pada tombol dapat dibaca oleh mikrokontroler maka
besar tegangan tidak boleh melebihi batas-batas yang ada pada data sheet.
Dari data sheet mikrokontroler dapat diambil batas-batas tegangan masukan
mikrokontroler.
• Untuk level tegangan low memiliki batas minimum dan maksimum
yaitu:
¾ Batas minimum = ─ 0,5V
¾ Batas maksimum = 0,2Vcc − 0,25
= 0,2 × 5,1 − 0,25
= 0,77 Vdc
• Untuk level tegangan high memiliki batas minimal dan maksimum yaitu:
¾ Batas minimal = 0,2Vcc + 1
= 0,2 × 5,1 + 1
= 2,02 Vdc
¾ Batas maksimum = Vcc + 0,5
= 5,1 + 0,5
= 5,6 Vdc
Pada pengujian tombol didapat data level tegangan low sebesar 0,2 V
sedangkan level teganngan high sebesar 4,8 V. Data level tegangan yang
didapat dari pengamatan atau pengujian dapat dibaca dengan baik oleh
mikrokontroler karena tidak melebihi batas minimal dan maksimalnya.

c. Pengujian saklar
Saklar terletak pada port 1 mikrokontroler yaitu P1.3, P1.4, P1.5, dan
P1.6. cara kerja saklar yaitu memberikan pilihan sinyal tegangan high atau
low. Pada tabel 4.5 ditunjukkan data pengamatan besar tegangan yang
diberikan pada mikrokontroler. Untuk batas-batas minimal dan maksimal
tegangan masukan pada mikrokontroler dari data sheet yaitu:
• Untuk level tegangan low yaitu: ─0,5 V hingga 0,77 V
• Untuk level tegangan high yaitu : 2,02 V hingga 5,6 V

36
Tabel 4.5 Pengujian tegangan saklar
P1.3 P1.4 P1.5 P1.6
Low 0.1 0.1 0.15 0.1
High 4.9 4.7 4.7 4.8
Dari data pengamatan pada tabel 4.4 diatas maka didapatkan tegangan
low dari pengamatan sebesar 0,1V hingga 0,15V. Data level tegangan low ini
masih sesuai karena tidak melewati batas tegangan low minimal dan maksimal
pada data sheet yaitu sebesar ─0,5 V hingga 0,77 V.
Dari data pengamatan pada tabel 4.4 dapat diamati bahwa tegangan 4.7
hingga 4.8 masih sesuai untuk level teganngan high dikarenakan masih berada
pada batas level tegangan high minimal dan maksimal dari data sheet yaitu
sebesar 2,02 V hingga 5,6 V.

4.1.3 Pengujian indicator


Pengujian indikator dilakukan dengan asumsi bahwa untuk logika “1” maka
indikator LED akan mati, sedangakn jika logika “0” penampil LED akan menyala.
Untai indikator menggunakan LED yang diseri dengan resistor pembatas arus. Pada
tabel 4.6 ditunjukkan mengenai besar hasil pengujian arus dan tegangan untuk tiap
LED.
Tabel 4.6 Pengujian indikator LED
LED LED
menyala padam
Arus LED 11,2 mA 0A

Pada perancangan arus ILED = 10mA ini diambil untuk batas minimal dari arus LED
agar menyala maksimal. Sedangkan untuk batas maksimal arus masukan LED adalah
sebesar 55mA. Arus LED hasil dari pengujian atau pengamatan terdapat error
sebesar 1,2mA namun arus hasil pengamatan ini tidak melebihi batas maksimal dan
batas minimal LED, sehingga LED dapat menyala dangan baik.

37
4.1.4 Pengujian penguat arus
Keluran arus maksimal pada mikrokontroler adalah sebesar 1mA, sedangkan
arus yang dibutuhkan untuk menggerakkan motor stepper adalah sebesar 1 A. Pada
tabel 4.7 merupakan tabel pengukuran arus pada basis dan kolektor.
Tabel 4.7 pengujian arus dari rangkaian penguat arus.

IB IC

On 0,8mA 0,91A
Off 0,01mA 0,01mA

Data perancangan:
Besar arus IC = 1A
Besar arus IB = 1mA
1A − 0,91A
Error IC = × 100%
1A
= 9%
1m − 0,88m
Error IB = × 100%
1m
= 11%
Arus yang dibutuhkan untuk menjalankan motor stepper adalah sebesar 1A
namun dalam hasil pengamatan hanya terdapat 0,91A. hal ini menyebabkan motor
dapat bergerak namun tidak maksimal.

4.1.5 Pengujian tampilan LCD


Macam-macam mode untuk menjalakan motor stepper antara lain mode full
step eksitasi tunggal , full step eksitasi ganda dan half step. Pada gambar 4.3
ditunjukkan untuk tampilan pertama kali pada LCD saat alat dihidupkan dan setelah
melakukan reset. Tampilan ini digunakan untuk memberikan kesempatan bagi
pengguna agar dapat mengatur menu terlebih dahulu sebelum menekan tombol start.

Gambar 4.3 Tampilan utama.

38
Untuk tampilan pertamakali pada LCD telah sesuai dengan diagram blok
perancangan. Sehingga saat pertamakali LCD dihidupkan dan setelah reset maka
tampilan pada LCD tertuliskan ”Motor Stepper Trainer”
Pada gambar 4.4 ditunjukkan gambar tampilan LCD untuk mode full step
eksitasi tunggal.
1
5
2
3
4 6
Gambar 4.4 Tampilan full step eksitasi tunggal

Untuk keterangan gambar 4.4 adalah sebagai berikut:


1. Posisi jarum pada motor untuk pulsa sebesar 0.
2. Posisi jarum penunjuk pada motor setelah diberikan 57 pulsa.
3. Tampilan pola yang dikirimkan oleh mikrokontroler untuk menjalankan
motor.
4. Tampilan untuk mode yang sedang digunakan.
5. Tampilan untuk arah putaran motor yang sedang dijalankan.
6. Menampilkan besarnya pulsa yang telah dikirimkan untuk menjalankan
motor tiap stepnya.
Pada gambar 4.5 ditunjukkan untuk tampilan pada LCD untuk mode full step
eksitasi ganda.

1
5
2

3
4 6
Gambar 4.5 Tampilan full step eksitasi ganda

Untuk keterangan gambar 4.5 adalah sebagai berikut:


1. Posisi jarum pada motor untuk pulsa sebesar 0.
2. Posisi jarum penunjuk pada motor setelah diberikan 50 pulsa.

39
3. Tampilan pola yang dikirimkan oleh mikrokontroler untuk menjalankan
motor.
4. Tampilan untuk mode yang sedang digunakan.
5. Tampilan untuk arah putaran motor yang sedang dijalankan.
6. Menampilkan besarnya pulsa yang telah dikirimkan untuk menjalankan
motor tiap stepnya.

Pada gambar 4.6 ditunjukkan gambar tampilan LCD untuk mode full step
eksitasi tunggal.

1
5
2

3
6
4
Gambar 4.6 Tampilan half step

Untuk keterangan gambar 4.6 adalah sebagai berikut:


1. Posisi jarum pada motor untuk pulsa sebesar 0.
2. Posisi jarum penunjuk pada motor setelah diberikan 111 pulsa.
3. Tampilan pola yang dikirimkan oleh mikrokontroler untuk menjalankan
motor.
4. Tampilan untuk mode yang sedang digunakan.
5. Tampilan untuk arah putaran motor yang sedang dijalankan.
6. Menampilkan besarnya pulsa yang telah dikirimkan untuk menjalankan
motor tiap stepnya.
Tampilan LCD untuk mode full step eksitasi tunggal, mode full step eksitasi
ganda, dan mode half step, telah sesuai dengan perancangan, sehingga pada layar
LCD akan ditampilkan pola, arah putaran, mode yang digunakan dan besar pulsa yang
telah dicapai.

4.1.6 Pengujian putaran motor


Dari data pengamatan putaran motor diambil data pulsa untuk setiap motor
berputar sebesar 360% yang ditunjukkan pada tabel 4.8.

40
Tabel 4.8 Pengujian putaran motor
Berputar 3600
(pulsa)
Full step eksitasi tunggal 202
Full step eksitasi ganda 203
Half step 402
Data perancangan:
Mode full step eksitasi tunggal = 200 pulsa
Mode full step eksitasi ganda = 200 pulsa
Mode half step = 400 pulsa
¾ Error terjadi pada mode full step eksitasi tunggal sebesar 2 pulsa (3,60) maka
3,6 0
untuk setiap stepnya terdapat error sebesar = 0,018 0
200
¾ Error pada mode full step eksitasi ganda sebesar 3 pulsa (5,40) maka untuk
5,4 0
setiap stepnya terdapat error sebesar = 0,027 0
200
¾ Error pada mode half step sebesar 2 pulsa (1,80) maka untuk setiap stepnya
1,8 0
terdapat error sebesar = 0,0045 0
400

4.2 Pengujian alat oleh pengguna


Dalam pengambilan data dari alat tugas akhir “stepper motor learning tool”
saya melakukan survey dengan menyebarkan angket ke sepuluh orang pengguna alat
tugas akhir “stepper motor learning tool” secara acak pada mahasiswa Universitas
Sanata Dharma jurusan teknik elktro angkatan 2002, 2003, dan 2005. Untuk melihat
angket-angket yang telah diisikan oleh kesepuluh pengguna dapat dilihat pada
lampiran. Pengambilan data ini dilakukan untuk mengetahui apakah dengan alat
motor stepper trainer ini pengguna dapat memahami tentang pola-pola untuk
menjalankan motor stepper, untuk mengetahui pengguna dapat mudah dalam
mengoperasikan alat stepper motor learning tool, dan untuk mengetahui sejauh mana
peranan motor stepper didalam dunia pendidikan.

41
4.2.1 Pengoperasian alat
a) Pada pertanyaan pada angket untuk no.1 diberikan pertanyaan mengenai
pengoperasian stepper motor learning tool tanpa diberikan petunjuk ataupun
contoh pengoperasian terlebih dahulu. Ada 40% pengguna yang menyatakan
bahwa jika tidak diberikan petunjuk pemakaian alat terlebih dahulu pengguna
merasa kebingungan. Untuk itu pada alat stepper motor learning tool
dibutuhkan modul untuk memberikan langkah-langkah yang benar dalam
mengoperasikan alat.sedangkan untuk pengguna 60% mereka mampu
mengoperasikan alat tanpa diberikan petunjuk terlebih dahulu.
b) Dalam pertanyaan angket no.2 diberikan pertanyaan apakah setelah diberikan
petunjuk dalam pengoperasian alat pengguna dapat mengoperasikan dan
mengendalikan alat stepper motor learning tool. Dari 100% pengguna
semuanya memberikan pernyataan bahwa pengguna dapat dengan mudah
untuk mengoperasikan alat.
Dari data pengguna dapat disimpulkan bahwa alat stepper motor learning tool
mudah untuk dioperasikan bagi mahasiswa elektro semester akhir.

4.2.2 Pemahaman motor stepper


a) Pada pertanyaan angket no.3 diberikan pertanyaan kepada pengguna, apakah
pengguna setelah mengoperasikan alat stepper motor learning tool pengguna
dapat memahami tentang pola-pola dari motor stepper. Dari 100% pengguna
semuanya memberikan pernyataan yang sama yaitu pengguna dapat
memahami lebih lanjut mengenai pola-pola untuk mengendalikan motor
stepper.
b) Pada pertanyaan angket no.4 diberikan pertanyaan untuk mengetahui apakah
pengguna setelah mengoperasikan alat dapat memahami, pulsa yang diberikan
untuk membentuk sudut sesuai keiinginan dari pengguna. Dari 100%
pengguna 40% mengatakan tidak dapat membaca sudut yang telah dibentuk,
40% lagi mengatakan bahwa mereka dapat membaca sudut dengan
mengalikan antara pulsa dengan sudut yang dibentuk tiap stepnya. Sedangkan
20% menyatakan ragu-ragu karena terdapat dua sudut yang dibentuk dari 2
pola menjalankan motor stepper.

42
Dari data dapat disimpulkan bahwa setelah mahasiswa elektro semua angkatan
mengoperaskian alat maka mahasiswa mengerti akan pola-pola dan sudut yang
dibentuk.

4.2.3 Pemahaman tampilan


a) Pada pertanyaan angket no.5 diberikan pertanyaan untuk mengetahui sejauh
mana para pengguna dapat membaca tampilan yang berada pada LCD. Dari
100% pengguna semua dapat dengan mudah membaca dan memahami
tampilan pada LCD
b) Pada pertanyaan angket no.6 diberikan pertanyaan untuk mengetahui sejauh
mana para pengguna tanpa melihat tampilan pada LCD dapat membaca dan
memahami penampil berupa indicator LED. Dari 100% pengguna semuanya
memberikan pernyataan bahwa pengguna sanggup memahami dan membaca
tampilan pada LED tanpa memperhatikan LCD.
Dari data dapat disimpulkan bahwa setelah mahasiswa elektro semua angkatan
mengoperaskian alat maka mahasiswa dapat dengan mudah untuk membaca tampilan
LCD dan indicator LED.

4.2.4 Kendala pengoperasian


Untuk mengetahui kendala-kendala yang dialami oleh pengguna dalam
mengoperasikan alat stepper motor learning tool, pada pertanyaan angket no.7
diberikan pertanyaan mengenai kendala pengoperasian alat sebelum diberikan
petunjuk mengenai pengoperasian alat. Dari 100% pengguna, 80% pengguna
mengatakan bahwa urutan menu tidak berurutan sehingga kesulitan dalam urutan
pengoperasian. 40% pengguna mengatakan bahwa pengaturan menu masih terlalu
manual sehingga banyak tombol atau saklar yang perlu diatur ini menyebabkan alat
tidak simple.
Dari data pengamatan oleh pengguna maka dapat disimpulkan bahwa motor
stepper alat stepper motor learning tool masih terdapat kendala untuk mengoprasikan
yaitu pada aturan dan urutan menu.

43
4.2.5 Kemasan (Box)
Untuk mengetahui kelayakan kemasan untuk alat stepper motor learning tool
maka pada angket no.8 diberikan pertanyaan mengenai bentuk dari kemasan.
Pengguna yang mengatakan bahwa kemasan alat stepper motor learning tool masih
kasar, bentuknya terlalu simple, kurang menarik, dan rangkaiannya masih terlihat
tidak rapi, ada 60% pengguna. Sedangkan 40% pengguna mengatakan kemasannya
bagus dan menarik.
Dari data angket pengguna dapat disimpulkan bahwa kemasan dari alat
stepper motor learning tool masih perlu diperbaiki dan diperhalus .

4.2.6 Kekurangan
Untuk mengetahui kekurangan-kekurangan dari alat stepper motor learning
tool ini maka pada angket no.9 diberikan pertanyaan mengenai kekurangan dari alat.
70% mengatakan bahwa alat lebih baik lagi jika menu ditata secara berurutan dan
kemasan dirapikan, 30% mengatakan untuk memperbesar dan memperjelas untuk
tulisan pilihan menu. 40% pengguna mengatakan untuk memberikan tampilan derajat
atau sudut yang telah dibentuk sehingga lebih mudah lagi dalam memahami motor
stepper. 50 % pengguna mengatakan untuk membuat menu yang lebih simple.
Pada data angket dapat disimpulkan bahwa masih banyak kekurangan pada
alat stepper motor learning tool yaitu pada urutan menu, penulisan label, dan pada
penampil sudut yang tidak ada.

4.2.7 Kaitan dengan dunia pendidikan


Untuk mengetahui alat stepper motor learning tool ini dapat membantu dalam
dunia pendidikan, maka pada angket no.10 diberikan pertanyaan mengenai alat
stepper motor learning tool ini dapat mendukung dan diperlukan dalam dunia
pendidikan. 100% pengguna mengatakan bahwa alat stepper motor learning tool
sangat diperlukan dalam dunia teknologi yang serba maju ini, alat ini dapat digunakan
sebagai modul pembelajaran bagi orang yang sedang mempelajari tentang motor
stepper.

44
Dari data angket dapat disimpulkan bahwa alat stepper motor learning tool
sangat berguna dalam dunia pendidikan untuk mempermudah dalam mempelajari
mode-mode serta pola-pola motor stepper.

45
BAB V
PENUTUP

Dari pembahasan yang telah diuraikan pada bagian hasil dan pembahasan,
maka pada bab ini akan diambil beberapa kesimpulan dan saran yang berguna untuk
penyempurnaan dan pengembangan alat stepper motor learning tool. Untuk
spesifikasi alat stepper motor learning tool sebagai berikut:

• Motor stepper : 3,7 Vdc, 1 Adc, unipolar.


• Penampil : LCD M1632 dan indikator 4 LED.
• Pilihan menu : 4 saklar.
• Tombol kendali : 2 tombol.
• Delay : 1 rotari switch, 1 tombol next.
• Mode : Full step eksitasi tunggal dan eksitasi ganda, half step.
• Arah motor : CW(Clock Wise), CCW(Counter Clock Wise).
• Pengendali : AT89S51

5.1 Kesimpulan
Dari hasil penelitian dan analisis data dapat diambil kesimpulan sebagai berikut:
1. Data hasil pengamatan masih terjadi error namun masih dalam batas
toleransi.
2. Pada putaran motor terjadi error untuk setiap stepnya ini dikarenakan motor
tidak bekerja dengan maksimal karena arus yang disupply ke motor kurang
maksimal.
3. Alat stepper motor learning tool sangat berguna dalam dunia pendidikan
bagi yang menginginkan untuk mempelajari tentang teknologi motor
stepper.
4. Dari data pengguna dapat disimpulkan bahwa alat stepper motor learning
tool mudah untuk dioperasikan bagi mahasiswa elektro semester akhir.
5. Setelah mahasiswa elektro semua angkatan mengoperaskian alat maka
mahasiswa mengerti akan pola-pola , sudut, memahami tampilan LCD, dan
memahami tampilan indicator LED yang dibentuk
6. Alat stepper motor learning tool sangat berguna bagi mahasiswa elektro
semester akhir untuk mempermudah dalam mempelajari mode-mode serta
pola-pola dari motor stepper.

46
5.2 Saran-saran
1. Untuk menambahkan tampilan sudut maka, tampilan kata-kata yang tidak
perlu dihilangkan saja dan digantikan dengan tampilan sudut. Namun
langkah ini mungkin akan membuat pengguna yang benar-benar baru belajar
akan lebih mengalami kesulitan.
2. Tampilan sudut dapat juga berupa penggaris busur yang diletakkan tepat
dibawah motor stepper.
3. Untuk memberikan tampilan kemasan yang lebih rapi maka kita dapat
gunakan box yang sudah jadi yang terdapat dipasaran, tentu saja ini akan
memakan lebih banyak biaya yang dikeluarkan.
4. Untuk membuat pilihan menu lebih simple kita dapat ubah dari saklar
menjadi dua tombol digital saja untuk mengatur menu pilihan. Namun saat
LCD rusak maka kita tidak dapat mengatur menu pilihan tanpa melihat
tampilan LCD.

47
DAFTAR PUSTAKA

1. Agfianto Eko Putra, Belajar Mikrokontoler AT89C51/52/55 (Teori dan


Aplikasi), Yogyakarta:Penerbit Gava Media, 2004.
2. Boylestad, Nashelsky, Electronic Devices & Circuit Theory 7thEdition, New
Jersey:Prentice Hall, 1999.
3. Http://pdf.alldatasheet.com/datasheet-pdf/view/101830/TI/TCM5089.html
(diakses Januari 2006).
4. http://www.delta-electronic.com/Design/Apnote/Pengendali%20Stepper.PDF
(diakses Januari 2006).
5. http://www.innovativeelectronics.com/innovative_electronics/download_files/
manual/Quick%20Start%20SPC%20Stepper%20Motor.pdf (diakses
Februari 2006).
6. http://www.keil.com/dd/docs/datashts/atmel/at89s51_ds.pdf (diakses
Februari 2006).
7. http://www.datasheetcatalog.com/datasheets_pdf/B/D/6/7/BD677A.shtml
(diakses Februari 2006).
8. http://en.wikipedia.org/wiki/Stepper_motor#Micro_Stepping (diakses
Februari 2006).

1
LAMPIRAN

1
2
PROGRAM AT89S51

org 0
ratusan equ 100
cacah equ -10000
satuan equ 5
pencacah equ -1000
peratus equ 400
percacah equ -1000

mov tmod,#01h
acall tunda1s
utama:
mov p3,#0f0h
acall inisialisasi
acall bersih
acall t_utama
start:
jnb p1.2,hidup
sjmp start
hidup:
acall inisialisasi
acall bersih
mulai:
jb p1.4,hs
ljmp fs

;-----------------------------------------------------------------------------------------
; Program untuk menjalankan pilihan Half step

hs:
acall inisialisasi_diawal
cjne a,#01h,hs1 ; untuk membaca arah putar
acall data_pola_cw
sjmp hs2
hs1:
acall data_pola_ccw
hs2:
mov 74h,#04h ; untuk memberikan batas 4x
hs3:
mov a,54h
cjne a,#01h,hs4
acall t_lcd_cw
sjmp hs5
hs4:
acall t_lcd_ccw
hs5:
acall k_hs

3
acall t_lcd_mode
hs6:
acall c_d
cjne a,#01h,hs7 ; membaca delay yang digunakan
acall delay_manual
sjmp hs8
hs7:
acall delay_auto
hs8:
mov 74h,#04h
acall c_arah
cjne a,#01h,hs9
mov a,53h
acall data_pola_cw
sjmp hs10
hs9:
mov a,53h
acall data_pola_ccw
hs10:
acall c_arah1
cjne a,#01h,hs11
acall c_arah2
sjmp hs12
hs11:
acall c_arah3
hs12:
acall tampil_pl
acall tampil_pls
hs13:
acall c_d
cjne a,#01h,hs14
acall delay_manual
sjmp hs15
hs14:
acall delay_auto
hs15:
djnz 74h,hs19
hs16:
mov 75h,a
acall c_arah4
cjne a,#01h,hs17
mov a,#00001000b
sjmp hs18
hs17:
mov a,#00000001b
hs18:
acall tam_r4
mov a,75h
hs19:
acall tampil_pl1

4
acall tampil_pls
hs20:
acall c_d
cjne a,#01h,hs21
acall delay_manual
sjmp hs22
hs21:
acall delay_auto
hs22:
acall batas4x
cjne a,#00h,hs10
acall batas_akhir
cjne a,#04h,hs8
mov a,76h
ljmp start

;-------------------------------------------------------------
; Program untuk menjalankan pilihan fullstep
fs:
acall inisialisasi_diawal
cjne a,#01h,fs1 ; untuk membaca arah motor
acall data_pola_cw
sjmp fs2
fs1:
acall data_pola_ccw
fs2:
mov 74h,#04h ; batas 4x
fs3:
mov a,54h
cjne a,#01h,fs4
acall t_lcd_cw
sjmp fs5
fs4:
acall t_lcd_ccw
fs5:
acall c_f
cjne a,#00,fs6 ; untuk membaca step eksitasi
tunggal atau ganda
mov a,59h
acall k_fss
sjmp fs7
fs6:
mov a,59h
acall k_fsg
fs7:
acall t_lcd_mode
fs8:
acall c_d
cjne a,#01h,fs9 ; membaca delay yang digunakan

5
acall delay_manual
sjmp fs10
fs9:
acall delay_auto
fs10:
mov 5eh,#04h
mov 74h,#04h
acall c_arah
cjne a,#01h,fs11
mov a,53h
acall data_pola_cw
sjmp fs12
fs11:
mov a,53h
acall data_pola_ccw
fs12:
acall c_arah1
cjne a,#01h,fs13
acall c_arah2
sjmp fs14
fs13:
acall c_arah3
fs14:
acall c_f
cjne a,#00,fs15
mov a,59h
acall tampil_pl
sjmp fs19
fs15:
djnz 5eh,fs18
mov 75h,a
acall c_arah4
cjne a,#01h,fs16
mov a,#00001000b
sjmp fs17
fs16:
mov a,#00000001b
fs17:
acall tam_r4
mov a,75h
fs18:
acall tampil_pl1
fs19:
acall tampil_pls
fs20:
acall c_d
cjne a,#01h,fs21
acall delay_manual
sjmp fs22
fs21:

6
acall delay_auto
fs22:
djnz 74h,fs12
acall batas_akhir
cjne a,#02h,fs10
mov a,76h
ljmp start

;---------------------------------------------------------------------
; Program untuk mereset program
rst:
jnb p1.4,rst_fs ; membaca mode yang digunakan
sjmp rst_hs

rst_hs:
acall ck_ganjil ; mengecek jumlah pulsa ganjil atau
genap
mov a,57h
cjne a,#00h,rst_hs6
sjmp rst_hs11

rst_hs1:
mov 74h,#04h
mov a,54h
cjne a,#01h,rst_hs2
acall data_pola_cw
sjmp rst_hs3
rst_hs2:
acall data_pola_ccw
rst_hs3:
mov a,54h
cjne a,#01h,rst_hs4
acall put_pola_cw
sjmp rst_hs5
rst_hs4:
acall put_pola_ccw
rst_hs5:
mov p3,63h
acall hit_pulsa
rst_hs6:
djnz 74h,rst_hs10
rst_hs7:
mov 75h,a
acall c_arah4
cjne a,#01h,rst_hs8
mov a,#00001000b
sjmp rst_hs9
rst_hs8:
mov a,#00000001b
rst_hs9:

7
acall tam_r4
mov a,75h
rst_hs10:
mov p3,64h
acall hit_pulsa
rst_hs11:
acall batas4x
cjne a,#00h,rst_hs3
acall batas_akhir
cjne a,#04h,rst_hs1
mov a,76h
ljmp reset_selesai

rst_fs:
sjmp rst_fs10
rst_fs0:
mov 5eh,#04h
mov 74h,#04h
mov a,54h
cjne a,#01h,rst_fs1
acall data_pola_cw
sjmp rst_fs2
rst_fs1:
acall data_pola_ccw
rst_fs2:
mov a,54h
cjne a,#01h,rst_fs3
acall put_pola_cw
sjmp rst_fs4
rst_fs3:
acall put_pola_ccw
rst_fs4:
acall c_f
cjne a,#00,rst_fs5
mov a,59h
mov p3,63h
sjmp rst_fs9
rst_fs5:
djnz 5eh,rst_fs8
mov 75h,a
mov a,54h
cjne a,#01h,rst_fs6
mov a,#00001000b
sjmp rst_fs7
rst_fs6:
mov a,#00000001b
rst_fs7:
acall tam_r4
mov a,75h

8
rst_fs8:
mov p3,64h
rst_fs9:
acall hit_pulsa
rst_fs10:
djnz 74h,rst_fs2
acall batas_akhir
cjne a,#02h,rst_fs0
mov a,76h
sjmp reset_selesai

ck_ganjil:
mov a,r0
mov b,#02h
div ab
mov 57h,b
ret

reset_selesai:
ljmp utama

;**************************************************************
;Penyederhanaan program
inisialisasi_diawal:
mov r0,#00h
mov r1,#00h
mov r2,#00h
acall cek_arah
mov a,54h
ret
isi_besar_pola:
mov 63h,r3
mov 64h,r4
ret
data_pola_cw:
mov r3,#00010000b
mov r4,#00011000b
acall isi_besar_pola
ret
data_pola_ccw:
mov r3,#10000000b
mov r4,#10000001b
acall isi_besar_pola
ret
c_d:
acall cek_delay
mov a,60h
ret
c_arah:

9
mov a,76h
acall c_arah4
ret
c_arah1:
mov a,50h
acall c_arah4
ret
c_arah2:
mov a,53h
acall put_pola_cw
ret
c_arah3:
mov a,53h
acall put_pola_ccw
ret
c_arah4:
mov 53h,a
mov a,54h
ret
tampil_pl:
mov p3,63h
acall hit_pola_r3
acall hit_indi_r3
acall alamat_87
acall tamp_pola_r3
ret
tampil_pls:
acall hit_pulsa
acall tamp_pulsa
ret
tam_r4:
add a,64h
mov 64h,a
ret
tampil_pl1:
mov p3,64h
acall hit_pola_r4
acall hit_indi_r4
acall alamat_87
acall tamp_pola_r4
ret
batas4x:
mov 50h,a
mov a,74h
ret
batas_akhir:
mov a,50h
mov 76h,a
mov a,r2
ret

10
c_f:
acall cek_fs
mov 59h,a
mov a,58h
ret
;++++++++++++++++++++++++++++++++++++++++++++++++++++++
cek_arah:
jnb p1.6,cw
mov 54h,#00h
sjmp cek_arah1
cw:
mov 54h,#01h
cek_arah1:
ret
;---------------------------------------------
cek_fs:
jnb p1.5,fs_single
mov 58h,#01h
sjmp cek_fs1
fs_single:
mov 58h,#00h
cek_fs1:
ret
;---------------------------------------------
cek_delay:
jnb p1.3,manual
auto:
mov 60h,#00h
sjmp cek_delay1
manual:
mov 60h,#01h
cek_delay1:
ret
;============================================================
cek_besar_delay_auto:
jnb p2.0,1s
jnb p2.1,2s
jnb p2.2,3s
4s:
mov 7fh,#04h
sjmp cek_besar_delay_auto1
3s:
mov 7fh,#03h
sjmp cek_besar_delay_auto1
2s:
mov 7fh,#02h
sjmp cek_besar_delay_auto1
1s:
mov 7fh,#01h
cek_besar_delay_auto1:

11
ret

delay_auto:
acall cek_besar_delay_auto
mov 50h,a
mov a,7fh
cjne a,#01h,delay_auto_2s
mov 51h,#01h
sjmp jalankan_delay_auto
delay_auto_2s:
cjne a,#02h,delay_auto_3s
mov 51h,#02h
sjmp jalankan_delay_auto
delay_auto_3s:
cjne a,#03h,delay_auto_4s
mov 51h,#03h
sjmp jalankan_delay_auto
delay_auto_4s:
mov 51h,#04h
jalankan_delay_auto:
acall tunda1s
jnb p1.1,merst
djnz 51h,jalankan_delay_auto
mov a,50h
ret

merst:
ljmp rst
;============================================================

delay_manual:
jnb p1.0,delay_manual1
jnb p1.1,merst1
acall tunda500ms
sjmp delay_manual
delay_manual1:
acall tunda500ms
ret
merst1:
ljmp rst
;-----------------------------------------------------------------------
hit_pulsa:
inc r0
mov 70h,a
mov a,r0
cjne a,#0ah,hit_pulsa1
mov r0,#00h
inc r1
mov a,r1
cjne a,#0ah,hit_pulsa1

12
mov r1,#00h
inc r2
hit_pulsa1:
mov a,70h
ret
tamp_pulsa:
mov a,70h
mov 5ah,r0
mov 5bh,r1
mov 5ch,r2
mov a,#30h
add a,5ah
mov 5ah,a
mov a,#30h
add a,5bh
mov 5bh,a
mov a,#30h
add a,5ch
mov 5ch,a
acall alamat_c5
mov p0,5ch
acall e_nya
mov p0,5bh
acall e_nya
mov p0,5ah
acall e_nya
mov 70h,a
ret

tamp_pola_r3:
mov p0,6ah
acall e_nya
mov p0,69h
acall e_nya
mov p0,68h
acall e_nya
mov p0,67h
acall e_nya
ret
tamp_pola_r4:
mov p0,7ah
acall e_nya
mov p0,79h
acall e_nya
mov p0,78h
acall e_nya
mov p0,77h
acall e_nya
ret

13
hit_indi_r3:
mov 6fh,a
mov a,6ah
cjne a,#31h,hit_indi_r31
clr p3.4
sjmp hit_indi_r32
hit_indi_r31:
setb p3.4
hit_indi_r32:
mov a,69h
cjne a,#31h,hit_indi_r33
clr p3.5
sjmp hit_indi_r34
hit_indi_r33:
setb p3.5
hit_indi_r34:
mov a,68h
cjne a,#31h,hit_indi_r35
clr p3.6
sjmp hit_indi_r36
hit_indi_r35:
setb p3.6
hit_indi_r36:
mov a,67h
cjne a,#31h,hit_indi_r37
clr p3.7
sjmp hit_indi_r38
hit_indi_r37:
setb p3.7
hit_indi_r38:
mov a,6fh
ret

hit_indi_r4:
mov 6fh,a
mov a,7ah
cjne a,#31h,hit_indi_r41
clr p3.4
sjmp hit_indi_r42
hit_indi_r41:
setb p3.4
hit_indi_r42:
mov a,79h
cjne a,#31h,hit_indi_r43
clr p3.5
sjmp hit_indi_r44
hit_indi_r43:
setb p3.5

14
hit_indi_r44:
mov a,78h
cjne a,#31h,hit_indi_r45
clr p3.6
sjmp hit_indi_r46
hit_indi_r45:
setb p3.6
hit_indi_r46:
mov a,77h
cjne a,#31h,hit_indi_r47
clr p3.7
sjmp hit_indi_r48
hit_indi_r47:
setb p3.7
hit_indi_r48:
mov a,6fh
ret

hit_pola_r3:
mov 66h,r0
mov 65h,a
mov r0,#67h
mov a,63h
mov 5dh,#00h
hit_pola_r3_1:
mov b,#02h
div ab
mov 6fh,a
mov a,#30h
add a,b
mov @r0,a
mov a,6fh
inc r0
inc 5dh
cjne a,#00h,hit_pola_r3_1
hit_pola_r3_2:
mov a,5dh
cjne a,#08h,hit_pola_r3_3
mov r0,66h
mov a,65h
ret
hit_pola_r3_3:
mov @r0,#30h
inc r0
inc 5dh
sjmp hit_pola_r3_2
hit_pola_r4:
mov 71h,r0
mov 72h,a
mov r0,#77h

15
mov a,64h
mov 5dh,#00h
hit_pola_r4_1:
mov b,#02h
div ab
mov 6fh,a
mov a,#30h
add a,b
mov @r0,a
mov a,6fh
inc r0
inc 5dh
cjne a,#00h,hit_pola_r4_1
hit_pola_r4_2:
mov a,5dh
cjne a,#08,hit_pola_r4_3
mov r0,71h
mov a,72h
ret
hit_pola_r4_3:
mov @r0,#30h
inc r0
inc 5dh
sjmp hit_pola_r4_2

put_pola_cw:
mov 62h,a
mov a,63h
rr a
mov 63h,a
mov a,64h
rr a
mov 64h,a
mov a,62h
ret
put_pola_ccw:
mov 62h,a
mov a,63h
rl a
mov 63h,a
mov a,64h
rl a
mov 64h,a
mov a,62h
ret

16
;----------------------------------------------------------------------------------------------
;untuk tampilan pada lCD
t_lcd_cw:
setb p2.7
acall k_pola
acall k_0000
acall k_cw
acall baris2
ret
t_lcd_ccw:
setb p2.7
acall k_pola
acall k_0000
acall k_ccw
acall baris2
ret
t_lcd_mode:
acall k_000
acall k_pulsa
ret

k_pola:
mov p0,#50h ;P
acall e_nya
mov p0,#4fh ;O
acall e_nya
mov p0,#4ch ;L
acall e_nya
mov p0,#41h ;A
acall e_nya
mov p0,#20h ;
acall e_nya
mov p0,#3dh ;=
acall e_nya
mov p0,#20h ;
acall e_nya
ret
k_cw:
mov p0,#43h ;C
acall e_nya
mov p0,#57h ;W
acall e_nya
ret
k_ccw:
mov p0,#43h ;C
acall e_nya
acall k_cw
ret

17
k_fs:
mov p0,#46h ;F
acall e_nya
mov p0,#53h ;S
acall e_nya
ret
k_ttkkoma:
mov p0,#2ch ;,
acall e_nya
mov p0,#20h ;
acall e_nya
ret
k_fss:
acall k_fs
mov p0,#53h ;S
acall e_nya
acall k_ttkkoma
ret
k_fsg:
acall k_fs
mov p0,#47h ;G
acall e_nya
acall k_ttkkoma
ret
k_hs:
mov p0,#48h ;H
acall e_nya
mov p0,#53h ;S
acall e_nya
mov p0,#20h ;
acall e_nya
acall k_ttkkoma
ret
k_pulsa:
mov p0,#20h ;
acall e_nya
mov p0,#50h ;P
acall e_nya
mov p0,#75h ;u
acall e_nya
mov p0,#6ch ;l
acall e_nya
mov p0,#73h ;s
acall e_nya
mov p0,#61h ;a
acall e_nya
ret
k_000:
mov p0,#30h ;0
acall e_nya

18
mov p0,#30h ;0
acall e_nya
mov p0,#30h ;0
acall e_nya
ret
k_0000:
acall k_000
mov p0,#30h ;0
acall e_nya
mov p0,#20h ;
acall e_nya
mov p0,#2ch ;,
acall e_nya
ret
;---------------------------------------------------------------------------------------------
;instruksi-instruksi LCD
inisialisasi:
clr p2.7
mov p0,#00111000b
acall e_nya
mov p0,#00001110b
acall e_nya
mov p0,#00000110b
acall e_nya
ret
bersih:
clr p2.7
mov p0,#00000001b
acall e_nya
ret
e_nya:
acall tunda5ms
setb p2.6
acall tunda5ms
clr p2.6
acall tunda5ms
ret
baris2:
clr p2.7
mov p0,#11000000b
acall e_nya
setb p2.7
ret
alamat_c5:
clr p2.7
mov p0,#0c5h
acall e_nya
setb p2.7
ret
alamat_87:

19
clr p2.7
mov p0,#87h
acall e_nya
setb p2.7
ret
;----------------------------------------------------------------------------------------------
;sebagai waktu tunda untuk LCD
tunda1s:
mov 30h,#ratusan
tunda1s1:
mov th0,#high cacah
mov tl0,#low cacah
setb tr0
tunda1s2:
jnb tf0,tunda1s2
clr tf0
clr tr0
djnz 30h,tunda1s1
ret

tunda5ms:
mov 30h,#satuan
tunda5ms1:
mov th0,#high pencacah
mov tl0,#low pencacah
setb tr0
tunda5ms2:
jnb tf0,tunda5ms2
clr tf0
clr tr0
djnz 30h,tunda5ms1
ret

tunda500ms:
mov 30h,#peratus
tunda500ms1:
mov th0,#high percacah
mov tl0,#low percacah
setb tr0
tunda500ms2:
jnb tf0,tunda500ms2
clr tf0
clr tr0
djnz 30h,tunda500ms1
ret

20
;------------------------------------------------------------
;untuk tampilan perrama setelah LCD dinyalakan
t_utama:
setb p2.7
mov p0,#22h ;"
acall e_nya
mov p0,#4dh ;M
acall e_nya
mov p0,#6fh ;o
acall e_nya
mov p0,#74h ;t
acall e_nya
mov p0,#6fh ;o
acall e_nya
mov p0,#72h ;r
acall e_nya
mov p0,#20h ;
acall e_nya
mov p0,#53h ;S
acall e_nya
mov p0,#74h ;t
acall e_nya
mov p0,#65h ;e
acall e_nya
mov p0,#70h ;p
acall e_nya
mov p0,#70h ;p
acall e_nya
mov p0,#65h ;e
acall e_nya
mov p0,#72h ;r
acall e_nya
acall baris2
mov p0,#20h ;
acall e_nya
mov p0,#20h ;
acall e_nya
mov p0,#20h ;
acall e_nya
mov p0,#20h ;
acall e_nya
mov p0,#54h ;T
acall e_nya
mov p0,#72h ;r
acall e_nya
mov p0,#61h ;a
acall e_nya
mov p0,#69h ;i

21
acall e_nya
mov p0,#6eh ;n
acall e_nya
mov p0,#65h ;e
acall e_nya
mov p0,#72h ;r
acall e_nya
mov p0,#22h ;"
acall e_nya
ret

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

Anda mungkin juga menyukai