alat bantu belajar motor langkah - usd repository
Post on 03-Oct-2021
4 Views
Preview:
TRANSCRIPT
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
jam
Arah putar berlawanan
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
jam
Arah putar berlawanan
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
jam
Arah putar berlawanan
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
RS = 1
Start
Instruksi inisialisasidisiapkan
E = 0
Instruksi diterima LCD
E = 1
finish
RS = 0
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:
RcVccII satcmaksc == )()( …………………………………..persamaan 2.1
dengan persamaan 2.1 maka besarnya arus basis maksimum yang terjadi adalah:
β)(maksc
b
II = …………………………………………….persamaan 2.2
dari persamaan 2.2 diatas kita dapat menentukan besarnya Rb sebagai berikut:
b
bebb I
VVR −= …………………………………………...persamaan 2.3
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
Tombol reset
Tombol start
AT89S51
LCD
Indikator LED
Motor stepper
Penguat arus
Tombolnext
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:
= CI bIβ ………………………………persamaan 3.1
β = b
c
II
= mAA
11
= 1000
Dengan persamaan 3.1 maka besarnya Rc adalah:
Rc = cI
Vcc ……………………………persamaan 3.2
= A1
12
= 12Ω
Dari persamaan 3.2 diatas kita dapat menentukan besarnya Rbsebagai berikut:
Rb = b
beb
IVV − …………………………..persamaan 3.2
Rb = 310.14.15−
−
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:
ILED = R
VV LEDCC − ………………………persamaan 3.4
Sehingga ,
R = LED
LEDCC
IVV − ………………………persamaan 3.5
Diketahui nilai VCC = 5v , VLED adalah 2,2 v dan ILED sebesar 10mA, maka
dari persamaan (2.1) didapat nilai R:
R = 310.102,2-5
−
= 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
Masukkan delay, metode,arah, besar delay yg akan
digunakan
Baca saklar metode, arah, besar delay
Tombol start ditekan?
Jalankan delay
Putar motor CW
Tombol nextditekan?
Tombol resetditekan?
Ya
Ya
Tidak
Tidak
A
A
Ya
Ya
Tidak
Tampilkan pola danbesar pulsa pada
LCD
Sudah 400step?
Tidak
A
CW atauCCW?Ya
Putar motor CCW
Tidak
Tidak
Menghitungbesar pulsa
Mencari besarnilai pola
CW ?
Hitung besarnilai delayotomatis
Sudah 400step?
tidak
Tidak
A
Manual?
YaYa
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 tart
R S = 0
Ins truks i d is iapkan
E = 0
T unda 5m s
E = 1
fin ish
S ta rt
E = 0
Tunda 5m s
E = 1
fin ish
S ta rt
R S = 0
Instruks i d is iapkan
C a ll enab le
fin ish
(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
R S = 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
R S = 1
D a ta k a ra k te rA 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 t a r t
R S = 0
D a t a in s t r u k s ia la m a t y a n g a k a n
d i r u b a hk a r a k t e r n y a d ik i r im
C a l l e n a b le
F in is h
D a t a k a r a k t e r b a r ud ik ir im
R S = 1
C a l l e n a b le
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
Putar nilai pola
Membagi nilai pola denganbilangan 2 hexsa kemudianmenyimpan setiap nilai bit
pada memori yang berbedauntuk setiap nilai pola ganjil
dan nilai pola genap
Apakah sudah3X?
Nilai pola genap ditambahdengan 8 heksa
Ya
Tidak
Putar nilai pola
Baca saklar metode, mode,arah
finish
Menampilkanpada LCD
Menampilkanpada LCD
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 untukmenyimpan besar pulsa
Byte pertam ditambah denganbilangan 1 heksa
Finish
Byte pertamasudah 0a
heksa
Byte kedua ditambah denganbilangan 1 heksa
Ya
Byte keduasudah 0a
heksa
Byte ketiga ditambah denganbilangan 1 heksa
Ya Tidak
Tidak
Menampilkan padaLCD
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
Masukkannilai delay
Baca tombol delay
Delay 1s
Delay 2s
Delay 3s
Delay 4s
Tidak
Tidak
Tidak
Jalankan besardelay 2s
Jalankan besardelay 1s
Jalankan besardelay 3s
Jalankan besardelay 4s
Ya
Ya
Ya
Ya
Tidak
finish
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 %6,1%10012
2,0=×=Ε sedangkan
untuk toleransi sebesar %5%10012
6.0=×=Τ maka error yang terjadi pada tegangan
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
%2%10051,0
=×=Ε error tegangan keluaran IC 7805 tidak melewati batas toleransi
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 searah jarum jam Arah putar berlawanan arah jarum jam
P3.0 &
P3.4 (Volt)
P3.1 &
P3.5 (Volt)
P3.2 &
P3.6 (Volt)
P3.3 &
P3.7 (Volt)
P3.0 &
P3.4 (Volt)
P3.1 &
P3.5 (Volt)
P3.2 &
P3.6 (Volt)
P3.3 &
P3.7 (Volt)
1 4,8 0,2 0,2 0,4 0,2 0,2 0,2 4,7
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
jam Arah putar berlawanan
arah jarum jam P3.0
& P3.4
(Volt)
P3.1 &
P3.5 (Volt)
P3.2 &
P3.6 (Volt)
P3.3 &
P3.7 (Volt)
P3.0 &
P3.4 (Volt)
P3.1 &
P3.5 (Volt)
P3.2 &
P3.6 (Volt)
P3.3 &
P3.7 (Volt)
1 4,8 0,2 0,3 0,15 0,2 0,2 0,4 4,8
2 0,1 4,8 0,3 0,2 0,2 0,2 4,95 0,15
3 0,2 0,1 4,95 0,1 0,2
4,8 0,3 0,2
4 0,1 0,1 0,3 4,8 4,8
0,15 0,4 0,3
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
jam Arah putar berlawanan
arah jarum jam P3.0
& P3.4
(Volt)
P3.1 &
P3.5 (Volt)
P3.2 &
P3.6 (Volt)
P3.3 &
P3.7 (Volt)
P3.0 &
P3.4 (Volt)
P3.1 &
P3.5 (Volt)
P3.2 &
P3.6 (Volt)
P3.3 &
P3.7 (Volt)
1 4,7 4,6 0,4 0,2 0,2 0,2 4,7 4,7
2 0,2 4,7 4,7 0,2 0,2 4,7 4,8 0,2
3 0,2 0,2 4,8 4,7 4,7 4,7 0,3 0,2
4 4,7 0,2 0,3 4,7 4,7 0,2 0,3 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 = 25,02,0 −Vcc
= 25,01,52,0 −×
= 0,77 Vdc
• Untuk level tegangan high memiliki batas minimal dan maksimum yaitu:
Batas minimal = 12,0 +Vcc
= 11,52,0 +×
= 2,02 Vdc
Batas maksimum = 5,0+Vcc
= 5,01,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
menyala
LED
padam
Arus LED 11,2 mA 0 A
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
Error IC = %1001
91,01×
−A
AA
= %9
Error IB = %1001
88,01×
−m
mm
= 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.
Gambar 4.4 Tampilan full step eksitasi tunggal
234
15
6
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.
Gambar 4.5 Tampilan full step eksitasi ganda
1
34
2 5
6
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.
Gambar 4.6 Tampilan half step
1
34
2 5
6
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
untuk setiap stepnya terdapat error sebesar 00
018,0200
6,3=
Error pada mode full step eksitasi ganda sebesar 3 pulsa (5,40) maka untuk
setiap stepnya terdapat error sebesar 00
027,0200
4,5=
Error pada mode half step sebesar 2 pulsa (1,80) maka untuk setiap stepnya
terdapat error sebesar 00
0045,0400
8,1=
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
1
LAMPIRAN
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
top related