i
KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL
BERBASIS MIKROKONTROLER AT89S51
TUGAS AKHIR
STENLY HUTUBESSY
985114001
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2006
STEPPER MOTOR CONTROL WITH SERIAL
COMMUNICATION BASED ON MICROCONTROLLER
ii
FINAL PROJECT
In partial fulfillment of the requirements for the Degree SARJANA TEKNIK Electrical Engineering Study Program
STENLY HUTUBESSY
985114001
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
ENGINEERING FACULTY
SANATA DHARMA UNIVERSITY
vii
HALAMAN PERSEMBAHAN
Karya ini kupersembahan teristimewa kepada Tuhan Yesus Kristus Terima Kasih Tuhan atas Semua Hal yang engkau berikan bagi ku, Terima Kasih atas Tuntunan dan Penyertaan-Mu dalam hidup yang begitu penuh
rahasia ini sehingga hamba dapat menyelesaikan Karya ini Tuhan, Terima Kasih Tuhan Yesus hidupku berarti hanya dalam Tangan-Mu.
Untuk Papa dan Mama
Terima Kasih untuk kasih sayang yang tiada batasnya, pengorbanan,pengertian,perlindungan
dan kepercayaan untukku,
viii
KATA PENGANTAR
Dalam nama Tuhan Yesus Kristus segala hormat dan kemuliaan, Puji syukur Kepada Allah Bapa di Surga yang memberikan rahmat sehingga penulis dapat menyelesaikan skripsi ini dengan baik.
Penulis mengucapkan terima kasih kepada:
1. Bapak Ir. Iswanjono, MT selaku pembimbing Tugas Akhir yang telah membantu dan membimbing dalam pembuatan Tugas Akhir ini.
2. Bapak Ir. Linggo Sumarno, MT yang selalu memberikan semangat untuk penulis.
3. Seluruh dosen dan karyawan Fakultas Teknik Universitas Sanata Dharma yang telah membantu dalam pembuatan Tugas Akhir ini.
4. Papa, Mama, Kakak-kakakku Adel, Kenny, Gerald, Charlie, Shirley dan Keponakan tersayang Maryo yang selalu memberikan perhatian dan kasih sayang, doa, dan masukan hingga terselesaikannya skripsi ini.
5. Adik-adikku Valen Latumahina, Marchello Pelamonia, Bendjamin Manuputty, Franky Likumahwa,Yuyun Likumahwa, Ansye Likumahwa, Stanley Likumahwa, Jemmy Likumahwa, Ivan Ahuluheluw Bersandar selalu pada Tuhan.
x KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL BERBASIS
MIKROKONTROLER AT89S51
Oleh
STENLY HUTUBESSY 985114001
INTISARI
Kendali Motor Stepper berbasis mikrokontroler dapat mengendalikan posisi atau sudut tertentu. Putaran mo tor stepper pada setiap penekanan tombol pada keypad sudah ditentukan besaran sudut yang diinginkan. Mikrokontroler pengirim hanya perlu mengakses data masukan dari keypad. Data- data yang diambil kemudian ke mikrokontroler penerima sebagai indeks data dari data-data yang berfungsi untuk mengendalikan putaran motor stepper..
Dari hasil percobaan diketahui bahwa alat mampu menggerakan sudut putaran motor yang diinginkan sesuai dengan besaran sudut yang ditentukan. Setiap penekanan tombol pada keypad akan ditampilkan oleh seven segmen sebagai penampil dalam alat ini.
xi
STEPPER MOTOR CONTROL WITH SERIAL COMMUNICATION
BASED ON MICROCONTROLLER AT89S51
STENLY HUTUBESSY 985114001
Abstract
Stepper Motor control based on Microcontroller get the whip hand of the certain angle. Stepper motor rotation an each a press button of keypad has been determined by mulberry angle wanted. Microcontroller cosignor only data access input require to from keypad. The data which taken later to microcontroller receiver as an index data from functioning data to control the rotation of stepper motor.
Result from the experiment known that the appliance able to control of motor angle rotation which to determined mulberry angle wanted. An each a press button of keypad will be shown by seven segment as display in this appliance.
xii
DAFTAR ISI
HALAMAN
JUDUL………..i
LEMBAR PERSETUJUAN……….iii
LEMBAR PENGESAHAN………...iv
LEMBAR PERNYATAAN KEASLIAN KARYA………..v
PERSEMBAHAN………....vi
KATA PENGANTAR………vii
INTISARI………...ix
ABSTRACT………...x
DAFTAR ISI………...xi
DAFTAR GAMBAR………xvi
DAFTAR TABEL………..xviii
DAFTAR LAMPIRAN………xix
BAB I. PENDAHULUAN I.1 Latar Belakang………..1
I.2 Perumusan Masalah……….………...1
I.3 Pembatasan Masalah…..………...2
I.4 Tujuan Penelitian………..2
xiii
I.6 Sistimatika Penulisan………3
BAB II. DASAR TEORI II.1 Keypad………...5
II.2 Mikrokontroler AT89S51………...6
II.2.1 Memori Mikrokontroler AT89S51………...7
II.2.1.1 Memori Program………...8
II.2.2 Special Function Register (SFR)………..9
II.2.2.1 Accumulator………..9
II.2.2.2 Register B………10
II.2.2.3 Register Port………10
II.2.2.4 Register Timer……….10
II.2.2.5 Program Status Word (PSW)………...10
II.2.2.6 Data Pointer………...11
II.2.2.7 Stack Pointer (SP)………11
II.2.2.8 Serial Data Buffer………12
II.2.3 Mode Pengalamatan………....12
II.2.3.1 Pengalamatan langsung………12
II.2.3.2 Pengalamatan tak langsung………..13
II.2.3.3 Pengalamatan Segera………13
II.2.3.4 Pengalamatan Bit………..14
II.2.3.5 Pengalamatan Kode………..14
II.2.4 Timer………15
xiv
II.3 Motor Stepper………16
II.3.1 Motor Stepper dengan eksitasi tunggal………18
II.3.2 Motor Stepper dengan eksitasi ganda………..19
II.3.2.1 Full Step………...19
II.3.2.2 Half Step………20
II.3.2.3 Metode Langkah Seperempat………21
II.3.2.4 Metode Langkah Seperdelapan Mikro………..22
II.4 Operasi Serial Port……….23
II.4.1 Baud Rate……….29
II.5 Penampil Tujuh Segmen………30
BAB III. PERANCANGAN ALAT III.1 Perancangan Perangkat Keras (Hardware)………...32
III.1.1 Koneksi Keypad 3x4 dengan mikrokontroler AT89S51……34
III.1.2 Komunikasi serial Antar Mikrokontroler AT89S51………...36
III.1.3 Koneksi Tujuh Segmen dengan Mikrokontroler……….37
III.2 Diagram Alir Program………..38
III.3 Rangkaian Lengkap Komunikasi Serial………42
BAB IV. ANALISA DAN PEMBAHASAN IV.1 Pengujian Keypad Matriks 4x3……….43
IV.2 Pengujian Mikrokontroler AT89S51………49
xv BAB V. PENUTUP
V.1 esimpulan………...56
V.2 Saran………....56
DAFTAR PUSTAKA……….58
xvi
DAFTAR GAMBAR
Gambar2.1. Keypad Matriks 3x4……….……….6
Gambar 2.2. Peta Memori rogram……….………..8
Gambar .3. Program Status Word ……...………...11
Gambar 2.4. Peta Register TMOD …...………..15
Gambar .5. Struktur Dasar Motor Stepper ……….…………...17
Gambar .6. Motor Stepper Bipolar dan Unipolar...17
Gambar .7. Metode Langkah Eksitasi Tungga l………...19
Gambar .8. Eksitasi Ganda dengan Metode Langkah Penuh……….20
Gambar .9. Metode Langkah Setengah………..21
Gambar 2.10. Metode Langkah Seperempat………...22
Gambar 2.11. Metode Langkah Mikro berupa Pulsa………..23
Gambar 2.12. Langkah Seperdelapan Mikro Berupa Step………..23
Gambar 2.13. Susunan Bit dalam SCON………....26
Gambar 2.14. Penampil tujuh segmen………31
Gambar 3.1. Diagram Kotak pengendalian motor stepper……….32
Gambar 3.2. Keypad matriks 4x3………...35
Gambar 3.3. Rangkaian Komunikasi Serial………42
xvii
DAFTAR TABEL
Tabel2.1. Eksitasi Tunggal……….………...17
Tabel 2.2. Eksitasi Ganda dengan Metode Langkah Penuh ………...19
Tabel 2.3. Metode Langkah Setengah (Half Step)………..20
Tabel 2.4. Penentuan mode kerja port serial ……….………...27
Tabel 2.5. Baud Rate yang sering dipakai yang dihasilkan timer 1…………...30
Tabel 4.1. Hasil pengujian tombol keypad matrik 4x3 ………...45
xviii
DAFTAR LAMPIRAN
Lampiran 1 Gambar Rangkaian Lengkap Komunikasi Serial Lampiran 2. Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51
BAB I PENDAHULUAN
1.1 Latar Belakang
Seiring dengan perkembangan teknologi, timbul kecenderungan diterapkannya sistem pengendalian secara otomatis dalam proses industri modern. Juga dalam kehidupan sehari- hari banyak ditemukan peralatan-peralatan yang bekerja berdasarkan pada posisi atau sudut yang sesuai kebanyakan masih dilakukan secara manual. Oleh karena itu dalam model ini akan dibuat suatu model pengaturan posisi atau sudut yang bekerja secara elektronis.
Perpaduan antara mikrokontroler ( software ) dengan peralatan mekanis dan elektronis ( hardware ) merupakan dimensi baru yang sedang marak digemari orang. Sistem pengendalian yang digunakan adalah dengan komunikasi serial berbasis mikrokontroler. Mikrokontroler AT89S51 merupakan sebuah kompone n elektronika yang dapat bekerja sesuai dengan program yang diisikan ke dalam memorinya.
Dengan demikian penulis mencoba menggunakan keunggulan mikrokontroler ini sebagai pengendali posisi motor stepper sesuai dengan sudut yang diinginkan.
1.2 Perumusan masalah
akan diatur untuk arah putara n searah putaran jarum jam dan arah putaran berlawanan dengan arah putaran jam.
1.3 Pembatasan Masalah
Dalam penulisan Tugas Akhir ini, penulis hanya menjelaskan sebatas tahap perancangan dan prinsip dari alat pengendali posisi motor stepper yang merupaka n salah satu aplikasi yang dapat dibuat dengan teknologi mikrokontroler yang dihubungkan secara serial dimana setiap penekanan tombol pada keypad akan berputar sebesar kelipatan 10º.
1.4 Tujuan Penelitian
1. Mampu menggerakan motor stepper dengan berbagai sudut dengan arah searah putaran jarum jam.
2. Mampu membuat prototype aplikasi komunikasi serial mikrokontroler sebagai model penggerak motor stepper.
1.5 Manfaat Penelitian
Adapun manfaat yang dapat diambil dalam melakukan penelitian ini adalah :
1. Mengaplikasikan ilmu yang telah diperoleh kedalam suatu bentuk karya nyata.
1.6 Sistimatika Penulisan
Penulisan ini akan dibagi dalam beberapa bagian, anatara lain: BAB I Pendahuluan
Bab ini berisi latar belakang, perumusan masalah, pembatasan masalah, tujuan penelitian, dan sistematika yang digunakan dalam penulisan ini.
BAB II. Dasar Teori
Bab ini berisi teori-teori yang digunakan dalam penelitian ini, antara lain membahas tentang Keypad matriks, Penampil 7 Segment, motor stepper, driver motor, Operasi port serial dan penjelasan singkat tentang mikrokontroler AT89S51.
BAB III. Perancangan Pengendali Posisi Motor Stepper.
Bab ini menjelaskan perangkat keras dan perangkat lunak yang digunakan untuk perancangan alat pengendali posisi motor stepper yang terdiri dari, papan tombol, driver motor, rangkaian pengendali tujuh segment, penggerak motor stepper.
BAB IV. Hasil Pengamatan dan Analisa.
BAB V. Kesimpulan.
BAB II DASAR TEORI
Untuk mencapai titik atau posisi tertentu, biasanya dilakukan pengaturan atau pengendalian, begitu juga dengan pengendali posisi motor stepper. ini dimaksudkan sebagai suatu pengendali posisi dengan menggunakan motor stepper sebagai komponen utama.
II.1 Keypad
Keypad adalah salah satu alat yang biasa digunakan untuk memberikan
masukan pada mikrokontroler. Keypad terdiri dari beberapa saklar yang dihubungkan dengan port-port pada mikrokontroler.
Keypad yang digunakan biasanya bertipe matriks yang terdiri dari beberapa
Gambar 2.1 keypad matriks 3x4
II.2 Mikrokontroler AT89S51
Mikrokontroler AT89S51 ialah mikrokomputer CMOS 8 bit dengan 4 KB
Flash Programmable and Erasable Read Only Memory (PEROM). Mikrokontroler
berteknologi non-volatile MCS-51 (seperti mikrokontroler 8051 yang terkenal dan banyak digunakan beberapa waktu lalu) yang telah menjadi standar industri, baik dalam jumlah pin IC maupun set instruksinya.
AT89S51 mempunyai memori yang terdiri dari RAM internal dan Special
Function Register. RAM internal berukuran 128 byte dan beralamatkan 00H-7H serta
dapat diakses menggunakan RAM address register. RAM internal terdiri dari delapan buah register (R0-R7) yang membentuk register banks. Special Function Register
yang berjumlah 21 buah berada di alamat 80H-FFH. RAM ini berbeda lokasi dengan
Flash Perom dengan alamat 000H-7FFH.
1 2 3
4 5 6
7 8 9
* 0 #
P0.1
P0.0 P0.3
P0.2
Beberapa fasilitas yang dimiliki oleh mikrokontroler AT89S51 adalah sebagai berikut:
• Sebuah Central Processing Unit 8 bit.
• Osilator internal dan rangkaian pewaktu.
• RAM internal 128 byte. • Flash memori 4 Kbyte.
• Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal).
• Emapt buah programable port I/O yang masing- masing terdiri dari delapan buah jalur I/O.
• Sebuah port serial dengan kontrol serial full duplex UART.
• Kemampuan untuk melaksanakan operasi aritmetika dan operasi logika.
• Kecepatan dalam melaksanakan operasi aritmetika dan operasi logika.
• Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12 MHz.
II.2.1 Memori Mikrokontroler AT89S51
II.2.1.1 Memori Program
Program mikrokontroler disimpan dalam FPEROM yang sering kali disebut memori program. ROM merupakan memori yang hanya dapat dibaca. Isi ROM tidak akan berubah walau mikrokontroler kehilangan catu daya (volatile memory).
Memori program yang tersedia dalam chip Mikrokontroler AT89S51 hanya sebesar 4 kb (internal memory). Namun tersedia jalur ekspansi untuk memperbesar kapasitas memori tersebut sampai 64 kB dengan menambah ROM (external memory).
Diagram memori program dalam mikrokontroler AT89S51 ditunjukan pada gambar dibawah ini:
FFFF FFFF
!000
+ atau
0FFF
0 0
II.2.2 Special Function Register (SFR)
Special function register (SFR) adalah register-register yang mempunyai fungsi khusus, diantaranya ada yang digunakan untuk mengatur input output data dari mikrokontroler. Selain itu, ada juga Special Function Register yang digunakan untuk mengatur dan memantau kondisi UART, yaitu pada register SCON. Register yang digunakan untuk mengatur kerja timer adalah register timer adalah register TCON.
Special function register terdapat pada ruang memori RAM yang mempunyai alamat 80H sampai FFH. Tidak semua alamat itu dipakai oleh Special Function Register. Pada special Function Register terdapat beberapa alamat yang bisa dialamati secara bit dan ada yang tidak bisa dialamati secara bit. Pada Special Function Register yang bisa dialamati secara bit, alamat pada digit keduanya adalah digit 0 atau 8, misalnya 80H, 88H, 90H, 98H, dan F8H. Special Function Register Akumulator adalah salah satunya yang sering dipakai untuk dialamati secara bit dan mempunyai alamat E0H, misalnya A.0, A.1, A.2, A.3, A.4, A.5, A.6, dan A.7. Register ialah penampung data sementara yang terletak dalam CPU. Mikrokontroler AT89S51 mempunyai register-register sebagai berikut:
II.2.2.1 Accumulator
logika, pengambilan data dan pengiriman data. Accumulator ialah sebuah register 8 bit yang merupakan pusat dari semua operasi accumulator.
II.2.2.2 Register B
Register B dapat digunakan untuk proses aritmetika dan dapat juga difungsikan sebagai register biasa.
II.2.2.3 Register Port
pada register ini terdapat 4 buah yaitu register port 0, port 1, port 2, dan port 3. Register port ini digunakan sebagai sarana input/output untuk menyimpan data dari atau ke port untuk masing- masing P0, P1, P2, dan P3.
II.2.2.4 Regis ter Timer
Mikrokontroler AT89S51 mempunyai dua buah 16 bit timer, yaitu Timer 0 dan Timer 1. Timer 0 dibentuk oleg register TH0 dan TL0.Timer 1 dibentuk oleh register TH1 dan TL1. Perilaku dari register TH0, TH1, TL0 dan TL1 diatur oleh register TMOD dan regsiter TCON.
II.2.2.5 PSW (Program Status Word)
meliputi Carry Bit, The Auxiliary Carry dua bit pemilih bank register yaitu: RS0 dan RS1, Overflow, Flag sebuah bit paritas adalah 1 (p = 1), bila cacah logic 1 pada accumulator genap maka p=0 sehingga bit paritas ini menjadi agar cacah logic 1 selalu genap. Sedangkan dua bit sisanya yaitu PSW 1 dan PSW 5 adalah bit yang tidak terikat sehingga dapat digunakan sebagai flag serbaguna. Register ini berisi beberapa bit ststus yang mencerminkan keadaan mikrokontroler. Definisi dari bit-bit dalam PSW dijelaskan dalam gambar dibawah ini:
CY AC F0 RS1 RS2 OV - P
Gambar.2.3 Program Status Word II.2.2.6 Data Pointer
Data Pointer atau DPTR merupakan register 16 bit yang terletak di alamat 82H untuk DPL (data pointer low) dan 83H untuk DPH (data pointer high). Biasanya data Pointer digunakan untuk mengakses data atau source code yang terletak di memori eksternal.
II.2.2.7 Stack Pointer (SP)
tiap kali data didorong masuk ke dalam lokasi penumpukan dan selalu bertambah dua tiap kali data ditarik ke luar dari lokasi penumpukan.
II.2.2.8 Serial Data Buffer
Serial Data Buffer terletak pada lokasi 99h yang dibagi menjadi dua regsiter yang terpisah, yaitu transmit buffer dan receive buffer. Saat data disalin ke serial data buffer maka data sesungguhnya diterima dan diteruskan ke dan dari serial port.
II.2.3 Mode Pengalamatan
Untuk mengakses data dan program yang disimpan di dalam memori, diperlukan pengalamatan agar tidak terjadi kesalahan dalam pengambilan data. Pengaksesan memori data dan memori program pada AT89S51 menggunakan pengalamatan yang berbeda untuk membedakan antara data yang tersimpan di memori data dan memori program. Mode pengalamatan yang didukung oleh AT89S51 adalah :
II.2.3.1 Penga lamatan Langsung (Direct Addressing Mode)
Contoh:
Mov A, 10H, instruksi ini melakukan operasi memindahkan data pada alamat 10H ke dalam akumulator.
Add A,R1, instruksi ini melakukan operasi penambahan data pada register R1 dengan data pada akumulator dan hasilnya disimpan di akumulator.
II.2.3.2 Pengalamatan Tak Langsung (Indirect Addressing Mode)
Pada pengalamatan tak langsung, instruksi menunjuk pada sebuah register yang berisi alamat memori yang akan dituju. Pengalamatan tak langsung ini biasanya mengguakan simbol @ yang maksudnya menunjuk alamat memori yang terdapat pada register tersebut.
Contoh:
Dec @R0, inistruksi ini melakukan operasi pengurangan data dari alamat memori yang ditunjuk oleh register R0 dengan 1.
Mov A, @R1, instruksi ini melakukan operasi memindahkan data dari alamat memori yang ditunjuk oleh register R1 ke akumulator.
II.2.3.3 Pengalamatan Segera
Contoh :
Mov A, #10H, instruksi ini melakukan operasi memindahkan data 10H kedalam akumulator.
Mov R1, #20H, instruksi ini melakukan operasi memindahkan data 20H ke dalam register R1.
II.2.3.4 Pengalamatan Bit
Pengalamatan bit pada sebuah operasi digunakan untuk mengalamati suatu alamat secara bit. Pengalamatan bit ialah penunjukan menggunakan simbol (.) yang menunjuk alamat lokasi bit, baik dalam RAM internal atau perangkat keras.
Contoh:
Clr A.2, instruksi ini memberi data bit pada alamat A.2 dari akumulator dengan nilai nol.
Setb A.1, instruksi ini memberi data bit pada alamat A.1 dari akumulator dengan nilai 1.
II.2.3.5 Pengalamatan Kode
Pada pengalamatan kode ini, proses pengalamatannya ditujukan langsung pada kode atau sering disebut dengan rutin. Pengalamatan kode terjadi ketika operand merupakan alamat dari instruksi JUMP dan CALL.
Contoh :
Ajmp start, instruksi melakukan lompatan ke subrutin start.
II.2.4 Timer
Timer berfungsi untuk mengatur waktu kerja yang dibutuhkan AT8 9S51. terdapat dua buah timer, yaitu timer 0 dan timer 1. masing- masing timer terdiri dari 16 bit counter yang dapat diprogram. Register-register timer meliputi :
II.2.4.1 TMOD (Timer Mode Register)
Timer ini tidak dapat diakses secara bit (not bit addressable), dan beralamat di 89H.
Gate(1) C/T (1) M1 (1) M0 (1) Gate (0) C/T (0) M1 (0) M0(0)
Timer 1 Timer 0
Gambar. 2.4 Peta Register TMOD
• Gate : Timer akan berjalan jika bit ini diset dan INT0 (untuk Timer 0) atau INT1 (untuk Timer 1) berkondisi High.
• C/T : jika bernilai 1 maka timer akan bertindak sebagai counter dan jika bernilai 0 maka timer akan bertindak sebagai timer.
II.3 Motor Stepper
Motor stepper merupakan motor khusus yang digunakan dalam pengendalian posisi yang memerlukan ketelitian. Selain motor stepper masih terdapat satu jenis lagi yang dapat digunakan yaitu motor servo. Namun motor servo mengacu pada sistem umpan balik analog, seperti penggunaan potensiometer sebagai umpan balik pengendalian posisi rotor dan terdapat juga rangkaian pengendalian arus motor.
Motor stepper dapat digunakan pada sistem kalang terbuka untuk pengoperasian dengan kecepatan rendah dan beban tetap, untuk sistem kalang tertutup memungkinkan pengendalian motor stepper pada kecepatan tinggi dan beban bervariasi. Pada motor stepper jika beban yang diberikan tidak sebanding dengan
torque (torsi) motor, maka pada sistem kalang tertutup dapat menyebabkan posisi
rotor tidak terdeteksi sehingga perlu di inisialisasi sedangkan motor servo tidak menjadi masalah.
Motor stepper pada dasarnya sama dengan motor- motor listrik pada umumnya yaitu memiliki bagian yang berputar disebut rotor dan bagian yang tidak berputar disebut stator. Pada bagian yang berputar (rotor) berupa sebuah ma gnet dan pada bagian yang tidak bergerak (stator) berupa kumparan. Kumparan pada stator ini bila dialiri arus listrik akan membentuk medan magnet.
N
S
Com m on L4 (kum paran 4 ) L3 ( kumparan 3 ) L2 (kumparan 2 ) L1 ( kum paran 1)
Rotor Medan Putar Rotor
Kumparan pada stator
Gambar 2.5 Struktur Dasar Motor Stepper.
Motor stepper adalah suatu jenis motor elektrik yang dapat dikendalikan
posisi sudutnya. Posisi sudut yang dibentuk tergantung pada banyaknya pulsa yang
diberikan pada motor stepper untuk mengendalikan langkah (step). Untuk jenis motor
stepper tertentu mempunyai karakteristik 1,8º setiap langkahnya (step). Motor stepper
ada 2 jenis yaitu motor stepper unipolar dan motor stepper bipolar, perbedaan antara
2 jenis motor stepper tersebut dapat dilihat pada gambar 2.6.
Motor stepper yang digunakan dalam perakitan alat adalah motor stepper
jenis unipolar. Pada jenis motor stepper unipolar, arus mengalir searah dan perubahan arah putar motor tergantung dari lilitan (koil) yang dialiri arus. Lilitan yang ada terpisah dalam 2 bagian dan masing-masing bagian hanya dilewati arus dalam satu arah saja. Jenis unipolar memerlukan rangkaian driver yang lebih sederhana dan banyak dipasaran. Cara pengendalian motor stepper pada intinya adalah memberikan tegangan pada kumparan motor stepper dengan urutan tertentu. Ada 2 cara pemberian tegangan pada kumparan yaitu :
II.3.1. Motor stepper dengan eksitasi tunggal
Urutan pemberian tegangan pada kumparan eksitasi tunggal seperti pada tabel 2.1.
Tabel 2.1 Eksitasi Tunggal
Langkah Lilitan I Lilitan II Lilitan III Lilitan IV
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0
4 0 0 0 1
L1
Gambar 2.7 Metode Langkah Eksitasi Tunggal II.3.2 Motor stepper dengan eksitasi ganda
Pada motor stepper dengan kumparan eksitasi ganda terdapat empat buah metode urutan pemberian tegangan yaitu :
II.3.2.1 Full Step
Metode langkah penuh akan menghasilkan sudut penuh sesuai dengan spesifikasi motor stepper, misalnya motor stepper dengan sudut 1,8º akan menghasilkan sudut 1,8º. Pemberian tegangan dilakukan sekaligus untuk dua kumparan atau lilitan pada setiap langkahnya. Hal ini dapat dilihat dalam tabel 2.2.
Tabel 2.2 Eksitasi Ganda dengan Metode Langkah Penuh Langkah Lilitan I Lilitan II Lilitan III Lilitan IV
1 1 1 0 0
2 0 1 1 0
3 0 0 1 1
L1
Gambar 2.8 Eksitasi Ganda dengan Metode Langkah Penuh
II.3.2.2 Half Step
Metode setengah langkah akan menghasilkan sudut paruh dari sudut spesifikasi motor, misalnya sudut 1,8° akan menghasilkan sudut 0,9°. Hal ini dapat dilihat pada tabel 2.3.
Tabel 2.3 Metode Langkah Setengah (Half Step)
Untuk metode half step hanya ada satu perubahan pemberian tegangan kumparan pada setiap langkahnya.
L1 Gambar 2.9 Metode Langkah Setengah
II.3.2.3 Metode Langkah Seperempat (Seperempat Micro Step)
L1
Gambar 2.10 Metode Langkah Seperempat
II.3.2.4 Metode Langkah Seperdelapan Mikro (Mikro Step)
Gambar 2.11 Metode Langkah Mikro berupa pulsa
Gambar 2.12 Metode Langkah Seperdelapan Mikro Berupa Step
II.4 Operasi Serial Port
Pada Mikrokontroler AT89S51 mempunyai On Chip Serial Port yang dapat digunakan untuk komunikasi data secara Full-Duplex sehingga port serial ini masih dapat menerima data pada saat proses pengiriman data terjadi. Untuk menampung data yang diterima atau dat yang akan dikirimkan, 89S51 mempunyai sebuah register, yaitu SBUF yang terletak pada alamat 99h. register ini berfungsi sebagai buffer
sehingga pada saat mikrokontroler ini membaca data yang pertama dan data kedua belum diterima secara penuh, data ini tidak akan hilang.
Pada kenyataannya, register SBUF terdiri atas dua buah register yang ternyata menempati alamat yang sama, yaitu 99h. register tersebut adalah Transmit Register yang bersifat write only (hanya dapat dibaca saja). Pada proses penerimaan data dari port serial, data yang masuk ke dalam port serial akan ditampung pada Receive Register terlebih dahulu dan akan diteruskan ke jalur bus internal pada saat pembacaan register SBUF sedangkan pada proses pengiriman data ke serial port, data yang ditulis dari bus internal akan ditampung pada Transmit Register terlebih dahulu sebelum dikirimkan ke port serial.
Pada port serial AT89S51 dapat digunakan untuk komunikasi data secara sinkron maupun asinkron. Komunikasi data serial secara simkron merupakan bentuk komunikasi data serial yang memerlukan sinyal clock untuk sinkronisasi. Sinyal clock tersebut akan tersulut pada setiap bit pengiriman data, sedangkan komunikasi asinkron tidak memerlukan sinyal clock untuk sinkronisasi. Pengiriman data pada komunikasi serial 89S51 dilakukan mulai dari bit yang paling rendah (LSB) hingga bit yang paling tinggi (MSB).
a. Mode0 : mode ini bekerja secara sinkron, data serial dikirim dan diterima melalui kaki P3.0 (RxD), sedangkan kaki P3.1 (TxD) dipakai untuk menyalurkan detak pendorong data serial yang dibangkitkan AT89S51. data dikirim atau diterima 8 bit sekaligus, dimulai dari bit yang bobotnya paling kecil atau LSB (bit 0) dan diakhiri dengan bit yang bobotnya paling besar atau MSB (bit 7). Kecepatan pengiriman data ( Baud rate ) adalah 1/12 dari frekuensi kristal yang digunakan. b. Mode1 : dimode ini, yang digunakan untuk pengiriman datatetap
digunakan kaki pin P3.1 (TxD) dan diterima melalui kaki pin P3.0 (RxD). Pada mode 1 ini p[engiriman data dilakukan secara asinkron, dimana pada mode ini data dikirim dan diterima 10 bit sekaligus, diawali 1 bit start, disusul dengan 8 bit data yang dimulai dari bit yang bobotnya paling kecil (bit 0), diakhiri dengan 1 bit sto p. Adalah RB8 pada register SCON. Kecepatan pengiriman data ( baud rate ) bisa diatur sesuai keperluan. Pada mode inilah (mode2 dan mode3) dikenal secara umum sebagai UART (universal Asynchronous Receiver or Transmitter).
lebih lanjut, diakhiri dengan 1 bit stop. Pada AT89S51 yang berfungsisebagai pengirim, bit 9 tersebut berasal dari bit TB8 pada register SCON, sedangkan pada bit stop tidak ditampung tetapi diabaikan. Kecepatan pengiriman data (baud rate) bisa dipilih antara 1/32 atau 1/64 dari frekuensi kristal yang digunakan.
d. Mode3 : pada mode 3 ini bekerja seperti halnya dengan mode 2, tetapi untuk kecepatan pengiriman data (baud rate) bisa diatur sesuai dengan keperluan seperti mode 1.
Register kontrol dan ststus untuk port serial berada dalam SCON ( Serial Port Control Register ) dapat dilihat pada gambar dibawah.
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
SM0 SM1 SM2 REN TB8 RB8 T1 R1
Reset 0 0 0 0 0 0 0 0 Gambar 2.13 Susunan Bit dalam SCON
Keterangan :
Tabel 2.4 Penentuan mode kerja port serial
SM0 SM1 Mode Keterangan Baud Rate
0 0 0 Register geser Tetap (fosc/12)
0 1 1 UART 8-bit Bisa diubah-ubah
(dengan Timer
1 0 2 UART 9-bit Tetap (fosc/64) atau
fosc/32)
1 1 3 UART 9-bit Bisa diubah-ubah
(dengan Timer)
b. bit REN (Bit 4) dipakai untuk mengaktifkan kemampuan port serial untuk menerima data. Pada mode0 kaki RxD (P3.0) dipakai untuk mengirim data serial dan juga untuk menerima data serial. Sifat ini terbawa pula pada saat port serial bekerja pada mode1, mode2 dan mode3, meskipun pada mode-mode tersebut kaki RxD hanya dipakai untuk mengirim data, agar kaki RxD bisa dipakai untuk menerima data, terlebih dahulu harus dibuat REN = ‘1’. Setelah di-reset bit REN bernilai ‘0’.
c. Pada mode2 dan mode3, port serial bekerja dengan 9 bit data (dari 11 bit, 1 bit untuk start dan bit 1 untuk s top), SBUF yang kapasitasnya 8 bit tidak cukup untuk keperluan ini. Bit ke-9 yang akan dikirim terlebih dahulu diletakan di TB8 (bit3), sedangkan bit RB8 (bit2) merupakan bit yang dipakai untuk menampung bit ke-9 yang diterima port serial.
(framing error). Kalau bit SM2 (bit 5) berniali ‘1’ pada mode1, jika terjadi kesalahan frame, R1 tidak akan menjadi ‘1’ (aktif) meskipun SBUF sedah berisi data dari port serial (bit stop diterima dengan benar). Bit ke-9 dapat dipakai sebagai bit paritas, hanya saja bit paritas yang dikirim harus ditentukan sendiri dengan program dan diletakan pada TB8 dan bit paritas yang diterima pada RB8 dipakai untuk menentukanintegritas data secara program pula. Tidak seperti pada UART standart, semua dikerjakan pada perangkat keras dalam UART.
e. Bit TI (bit1) merupakan sinyal yang setara dengan sinyal THRE (Transmitter Holding Register Empty) yang umum dijumpai pada UART standart. Setelah port serial selesai mengirim data yang tersimpan pada SBUF, maka pada bit TI akan bernilai ‘1’ secara otomatis, kemudian bit ini harus di-nolkan dengan program agar dapat dipakai untuk memantau keadaan SBUF pada pengiriman data berikutnya.
II.4.1 BAUD RATE
Baud Rate untuk mode0 nilainya tetap dan mengikuti persamaan berikut ini:
Baud Rate Mode0 = Frekuensi Kristal/12 ………. (II.1)
Baud Rate untuk Mode2 bergantung dari nilai bit SMOD pada register PCON. Jika SMOD bernilai ‘0’, baud rate-nya 1/64 dari frekuensi kristal, jika SMOD bernilai ‘1’ maka baud rate-nya 1/32 frekuensi kristal, pada baud rate mode2 mengikuti persamaan:
Baud Rate mode2 = 2SMOD/64 x Frekuensi Kristal ……….(II.2) Untuk menentukan baud rate dari mode1 dan mode3, pada AT89S51 tergantung dari laju (rate) limpahan Timer 1.
Pada timer 1 dapat digunakan untuk generator baud rate, maka baud rate pada mode1 dan mode3 ditentukan berdasarkan laju limpahan timer 1 dan nilai dari SMOD dari gambar dibawah, dengan persamaan:
Tabel 2.5 Baud Rate yang sering dipakai yang dihasilkan timer 1
II.5 Penampil Tujuh Segmen
Menurut cara pemberian tegangan, maka suatu tujuh segmen terdiri dari dua macam, yaitu: anoda bersama dan katoda bersama. Perbedaan antara keduanya hanya terletak pada penyambungan antara LED yang terdapat pada segmen yang satu dengan yang lain. Pada anoda bersama, anoda dari ketujuh LED terhubung menjadi satu gambar.
Pada umumnya, ketujuh LED pada tujuh segmen diberi label A sampai G seperti disajikan pada gambar 2.15
Gambar 2.14. Penampil tujuh segmen A
F B G
E C
BAB III
PERANCANGAN ALAT
III.1 Perancangan Perangkat Keras (Hardware)
Sistem Pengendali Motor Stepper terdiri atas 4 bagian utama yaitu Keypad Matriks, mikrokontroller sebagai pengontrol/pengolah data yang di dalamnya terdapat program-program, penguat arus motor stepper dalam hal ini menggunakan Driver Motor Stepper ULN 2003 dan piranti-piranti output yang terdiri dari Seven Segment dan motor stepper. Diagram blok sistem pengendali motor stepper dapat dilihat pada gambar 3.1.
Penjelasan secara umum dari diagram kotak pada gambar 3.1 adalah sebagai berikut:
1. Bok Keypad 3x4
Pada perancangan keypad digunakan untuk memberikan data masukan untuk mikrokontroler AT89S51, masukan dari keyp ad akan mengatur putaran motor stepper. Keypad yang digunakan pada perancangan ini adalah keypad type matriks 3x4, keypad terdiri dari beberapa saklar yang terhubung dengan port-port dari mikrokontroler AT89S51. pembacaan keypad tipe matriks dapat dilakukan dengan cara scanning proses atau dengan cara metode polling biasa. Menekan tombol pada keypad berarti menghubungkan suatu baris dengan suatu kolom pada keypad tersebut. Setelah data yang diambil valid, maka program akan menunggu tombol keypad dilepaskan dengan menunggu kondisi FFh kembali serta melakukan konversi berdasarkan tabel keypad setelah kondisi tersebut terpenuhi. Proses konversi tabel keypad dilakukan dengan menganggap data dari keypad sebagai suatu alamat memori. Isi dari alamat tersebut berupa data yang dianggap sebagai tanda saat tombol tersebut ditekan.
2. Blok mikrokontroler AT89S51
3. Blok Driver Motor Stepper ULN 2003
Bagian ini merupakan driver dari motor stepper yang akan menggerakan motor stepper dengan penguatan arus maksimal 500mA.
4. Blok Motor Stepper
Motor stepper dengan 5 buah kabel atau 6 buah kabel yang commonnya dijadikan satu, dipilih jenis ini karena paling mudah pengoperasiannya. Inti motor dan switch pada masing- masing kumparan, dengan membuka dan menutup switch tersebut maka inti motor dapat berputar dengan arah tertentu.
5. Blok Penampil 7 Segment
Bagian ini berfungsi untuk menampilakn nomer dari keypad yang akin ditekan. Bagian ini langsung terhubung atau tersambung melalui port 0 dari mikroikontroler.
III.1.1 Koneksi Keypad 3x4 dengan mikrokontroler
1 2 3
4 5 6
7 8 9
* 0 #
P0.1
P0.0 P0.3
P0.2
P0.6 P0.5 P0.4
Dengan rangkaian seperti pada gambar 3.2, pada kondisi tidak terjadi penekanan tombol pada keypad, maka kondisi logika pada port 1 adalah logika ‘1’ pada setiap bitnya. Saat salah satu tombol dari keypad tertekan, baris dan kolom yang terhubung akin terhubung ke ground sehingga kondisi dan kolom tersebut akin berlogika ‘0’. Setiap tombol pada keypad akin memberikan logika ‘0’ pada baris dan kolom tertentu sehingga setiap tombol akin membentuk data tertentu pada port 1.
Gambar 3.2 Keypad matriks 4x3
mengetahui apakah data yang dikeluarkan dari keypad sudah valid. Pada program dapat diberikan delay untuk melihat apakah data yang dikirimkan dari keypad sudah valid atau belum. Untuk setiap penekanan tombol pada keypad diberikan delay 20 ms pada setiap penekanan tombol.
Setelah data yang diambil valid, maka program akin menunggu tombol keypad dilepaskan dengan menunggu kondisi FFh kembali serta melakukan konversi. Proses konversi tabel keypad dilakukan dengan menganggap data dari keypad sebagai suatu alamat memori. Isi dari alamat tersebut berupa data yang dianggap sebagai tanda saat tombol tersebut ditekan.
III.1.2 Komunikasi Serial Antar Mikrokontroler AT89S51
III.1.3 Koneksi 7 Segment dengam mikrokontroler
7segment digunakan untuk menampilkan data dari keypad yang akan ditekan. Untuk menampilkan data pada 7segment digunakan metode scanning display. Pada metode ini dapat menampilkan data pada sebuah 7segment. Data yang akan ditampilkan pada 7segment sesuai dengan data masukan dari keypad, setelah melalui proses dari mikrokontroler. Port 2 dari mikrokontroler akan berfungsi untuk mengirimkan data segment, yang akan menghubungkan common dari 7segment dengan port2, dari port yang saling terhubung akan menghasilkan data, yang selanjutnya akan ditampilkan pada display 7segment.
Nilai R dari rangkaian 7segment, dapat dihitung dengan rumusan sbb:
R = Vcc-Vled/Iled ; Iled = 10 mA, Vcc = 5 V, V led = 1.7 V R = 5V- 1.7V/ 0.10mA
III.2 Diagram Alir Program.
Mulai
Inisialiasi Port
Inisialiastimer 1 mode 2
Nilai baud rate F9H
Aktifkan timer 1
Pilih serial mode 1
C
A = BBH ?
Tampilkan angka 4
Isi register 0 = 40
B
A = DBH ?
Tampilkan angka 5
Isi register 0 = 50
B
A = EBH ?
Tampilkan angka 6
Isi register 0 = 60
B
A = BDH ?
Tampilkan angka 7
Isi register 0 = 70
B
A = DDH ?
Tampilkan angka 8
Isi register 0 = 80
Isi register 0 = 90
B
A = BEH ?
Tampilkan angka 0
B
Matikan intrupsi serial
Kosongkan akumulator
Salin isi R0 ke A
Isi register 2 = 10
Aktifkan motor stepper 10 x
1,8' Mulai
Isi register 2 = 20
Aktifkan motor stepper 20 x
1,8'
A = 30 ?
D
A = 40 ?
Isi register 0 = 40
Aktifkan motor stepper 40 x 1,8'
A = 50 ?
Isi register 0 = 50
Aktifkan motor stepper 50 x 1,8'
A = 60 ?
Isi register 0 = 60
Aktifkan motor stepper 60 x 1,8'
A = 70 ?
Isi register 0 = 70
Aktifkan motor stepper 70 x 1,8'
A = 80 ?
Isi register 0 = 80
Aktifkan motor stepper 80 x 1,8' Tidak
Tidak Tidak Tidak Tidak
Ya Ya Ya Ya Ya
A = 90 ?
Isi register 0 = 90
Aktifkan motor stepper 90 x 1,8'
III.3 Rangkaian Lengkap komunikasi Serial
BAB IV
ANALISA DAN PEMBAHASAN
Pada bagian ini akan dibahas analisis hasil pengujian rangkaian secara perblok dari keseluruhan aplikasi mikrokontroler AT89S51 sebagai komunikasi serial untuk pengendali besarnya derajat putaran motor stepper unipolar. Masukan data dari keypad matrik 4x3 sebagai input pengendali besarnya derajat putaran motor stepper. Setiap data/tombol keypad masukan akan dibaca oleh mikrokontroler AT89S51, kemudian hasilnya langsung ditampilkan kedalam seven segment satu digit. Register 0 sebagai media penyimpan data sementara besarnya derajat putaran motor stepper sebelum dikirim melalui serial buffer. Bila alat sudah siap, maka langkah selanjutnya adalah melakukan pengujian per blok rangkaian. Pengujian alat dapat dilakukan secara hardware maupun software. Pengujian dilakukan sesudah semua komponen dan rangkaian yang dirancang tersebut dipastikan benar.
4.1 Pengujian Keypad Matrik 4x3
1 2 3
4 5 6
7 8 9
* 0 #
P0.1
P0.0 P0.3
P0.2
P0.6 P0.5 P0.4
Gambar 4.1 Rangkaian dari keypad matrik 4x3
Pengujian keypad dilakukan dengan cara melakukan penekanan setiap tombol, dan kaki ground dihubungkan dengan ground, kaki P0.0 – P0.6 dihubungkan dengan multimeter, maka dapat diketahui kondisi keluaran pada P0.0 sampai P0.6 apakah berlogika high atau low saat terjadi penekanan setiap tombol. Jika terjadi penekanan pada tiap tombol keypad, maka kaki port 0 pada baris dan kolom terhubung ke ground sehingga baris dan kolom akan berlogika low. Proses pengambilan data dari keypad yaitu dengan cara membandingkan data awal keypad sebelum terjadi penekanan, dengan data setelah penekanan pada keypad dengan bantuan multimeter analog.
Tabel 4.1 Hasil pengujian tombol keypad matrik 4x3
Pengujian secara software juga dapat dilakukan yaitu dengan cara memprogram mikrokontroler AT89S51 untuk membaca tombol keypad yaitu membandingkan data masukan/penekanan dengan data yang Hexa yang disimpan dalam memori program/ram melalui proses scanning. Jika tombol ditekan, jika data masukan sama dengan data dalam memori program/ram, maka akan menampilkan angka yang sesuai dengan angka tombol yang ditekan kedalam seven segment. Listing program proses pembacaan tombol keypad secara lengkap seperti dibawah ini :
key:
clr a ; Pengosongan akumulator
mov a,p0
jmp kirim key1:
cjne a,#0d7h,key2 ; Pemeriksaan tombol 2 mov p2,#10100100b ; Tampilkan angka 2 mov r0,#20
jmp kirim key2:
cjne a,#0e7h,key3 ; Pemeriksaan tombol 3 mov p2,#10111000b ; Tampilkan angka 3 mov r0,#30
jmp kirim key3:
cjne a,#0bbh,key4 ; Pemeriksaan tombol 4 mov p2,#10011001b ; Tampilkan angka 4 mov r0,#40
jmp kirim key4:
cjne a,#0dbh,key5 ; Pemeriksaan tombol 5 mov p2,#10010010b ; Tampilkan angka 5 mov r0,#50
key5:
cjne a,#0ebh,key6 ; Pemeriksaan tombol 6 mov p2,#10000011b ; Tampilkan angka 6 mov r0,#60
jmp kirim key6:
cjne a,#0bdh,key7 ; Pemeriksaan tombol 7 mov p2,#11110000b ; Tampilkan angka 7 mov r0,#70
jmp kirim key7:
cjne a,#0ddh,key8 ; Pemeriksaan tombol 8 mov p2,#10000000b ; Tampilkan angka 8 mov r0,#80
jmp kirim key8:
cjne a,#0edh,key9 ; Pemeriksaan tombol 9 mov p2,#10010000b ; Tampilkan angka 9 mov r0,#90
key9:
cjne a,#0beh,key10 ; Pemeriksaan tombol 0 mov p2,#11000000b ; Tampilkan angka 0 mov r0,#100
jmp kirim key10:
jmp key Keterangan program :
Secara garis besar langkah – langkah diatas yaitu membandingkan data masukan tombol dengan data pada memori program mikrokontroler AT89S51. Pertama membaca setiap penekanan tombol kemudian disimpan dalam akumulator untuk dibandingkan dengan data pada memori program D7H bila tidak sama, maka program lompat ke label key1, jika sama dengan data D7H maka tampilkan angka 1 melalui port 2. Pada label key1 akan membandingkan isi akumulator dengan data D7H, bila tidak sama maka akan lompat ke label key2, jika sama dengan data D7H maka tampilkan angka 2.
data DBH maka tampilkan angka 4. Pada label key5 akan membandingkan isi akumulator dengan data EBH, bila tidak sama maka akan lompat ke label key6, jika sama dengan data EBH maka tampilkan angka 5. Pada label key6 akan membandingkan isi akumulator dengan data BDH, bila tidak sama maka akan lompat ke label key7, jika sama dengan data BDH maka tampilkan angka 6. Pada label key7 akan membandingkan isi akumulator dengan data DDH, bila tidak sama maka akan lompat ke label key8, jika sama dengan data DDH maka tampilkan angka 7. Pada label key8 akan membandingkan isi akumulator dengan data EDH, bila tidak sama maka akan lompat ke label key9, jika sama dengan data EDH maka tampilkan angka 8. Pada label key9 akan membandingkan isi akumulator dengan data BEH, bila tidak sama maka akan lompat ke label key10, jika sama dengan data BEH maka tampilkan angka 9. Pada label key10 program lompat ke label key untuk melakukan scanning pembacaan ulang.
4.2 Pengujian Mikrokontroler AT89S51
16
8923 merupakan nilai baud rata actual dengan ralat sebesar 7 %.
Sistim pengiriman data melalui kaki P3.1 (TxD) dan di terima melalui kaki P3.2 (RxD), secara asinkron. Pada mode 1 data dikirim/diterima dimulai dari bit yang paling terkecil (bit 0). Program subrutin yang dipakai untuk mengirim data adalah sebagai berikut :
kirim:
clr es ; matikan intrupsi serial clr a
mov a,r0 ; data baru yang akan dikirim mov sbuf,a ; kirim data baru
jnb TI,$ ; tunggu data sebelumnya selesai dikirim clr TI ; sinyal ada pengiriman baru
ljmp key
memantau keadaan SBUF pada pengiriman data berikutnya, maka TI harus dinolkan secara manual.
Program untuk menerima data serial yang telah dikirim menggunakan subrutin penerima data sebagai berikut:
Terima:
clr es ; matikan serial intrupsi
jnb RI,$ ; tunggu SBUF berisi data baru clr RI ; pertanda data sudah diambil clr a
mov a,sbuf ; ambil data
setb es ; aktifkan kembali serial intrupsi
Subrutin serial intrupsi dipakai untuk menerima data serial (untuk semua mode) JNB RI,$ menunggu RI menjadi 1 (aktif), untuk memastikan sudah ada data baru yang diterima pada SBUF. Pada intruksi MOV SBUF,A adalah proses mengambil data serial dari buffer. Agar RI dipakai untuk memantau keadaan SBUF pada pengiriman data berikutnya, maka RI harus di nolkan secara manual.
4.3 Pengujian Motor Stepper
mempunyai sudut derajat sebesar 1,20. Arah putaran motor stepper hanya satu arah dan setiap penekanan tombol keypad akan mempengaruhi besarnya sudut putar. Pengujian motor stepper bisa menggunakan secara hardware maupun secara software. Secara hardware dengan memberi tegangan sebesar 5 volt pada setiap kutub dan pengujian secara software dengan memberi pulsa ke setiap kutub motor melalui program pada mikrokontroler. Program untuk mengendalikan putaran motor stepper adalah sebagai berikut:
banding:
cjne a,#10,banding1
mov r2,#8 ; data pulsa motor berputar sebesar 100 call putar_kanan
banding1:
cjne a,#20,banding2
mov r2,#17 ; data pulsa motor berputar sebesar 200 call putar_kanan
banding2:
cjne a,#30,banding3
banding3:
cjne a,#40,banding4
mov r2,#34 ; data pulsa motor berputar sebesar 400 call putar_kanan
banding4:
cjne a,#50,banding5
mov r2,#42 ; data pulsa motor berputar sebesar 500 call putar_kanan
banding5:
cjne a,#60,banding6
mov r2,#50 ; data pulsa motor berputar sebesar 60 call putar_kanan
banding6:
cjne a,#70,banding7
mov r2,#59 ; data pulsa motor berpoutar sebesar 700 call putar_kanan
banding7:
cjne a,#80,banding8
banding8:
cjne a,90,banding9
mov r2,#75 ; data pulsa motor berputar sebesar 900 call putar_kanan
banding9:
cjne a,#0,selesai ljmp selesai selesai:
reti putar_kanan:
mov a,r3 rl a
cjne a,#0feh,terus mov r3,#0efh mov a,#0efh. Keterangan :
P0,30FFH adalah perintah untuk mema tikan motor stepper setiap satu kali pulsa yang diberikan. Kemudian isi R2 dikurangi 1 dan dibandingkan dengan data nol jika tidak sama maka lompat ke label putar_kanan, isi R2 menentukan besarnya sudut putar. Analiasa perhitungannya adalah :
Derajat putar = 1,2 x jumlah pulsa
Untuk memutarkan motor stepper sebesar 100 maka membutuhkan jumlah pulsa seba nyak :
Tabel 4.2 Sudut Putaran Motor Stepper dengan Masukan Keypad
Tombol Keypad Besaran Sudut
BAB V PENUTUP
5.1 Kesimpulan
Setelah dilakukan pengamatan seperti pada bab IV terhadap alat yang dibuat baik secara hardware maupun software maka diperoleh beberapa kesimpulan yaitu:
• Setiap data masukan akan dibaca oleh mikrokontroler AT89S51, dan langsung ditampilkan dalam seven segment satu digit.
• Perubahan posisi sudut putar motor stepper setiap kelipatan 10º, sesuai dengan masukan pada memori mikrokontroler dimana setiap tombol pada keypad sudah diisi besaran sudut yang diinginkan.
• Putaran motor stepper akan kembali ke posisi semula apabila ditekan tombol 0 pada keypad.
5.2 Saran
Kendali motor stepper berbasis mikrokontroler AT89S51 dengan tampilan seven segment merupakan salah satu aplikasi dari mikrokontroler namun yang ditampilkan hanya besaran sudut putar motor stepper.
Perancangan secara hardware sebaiknya didahului dengan perancangan
software, hal ini dilakukan guna mengurangi kemungkinan kesalahan dan penekanan
DAFTAR PUSTAKA
Agfianto Eko Putra. Belajar Mikrokontroler AT89C51/52/55 (Teori dan Aplikasi), Penerbit Gava Media, Yogyakarta.
Paulus Andi Nalwan. Panduan Praktis Teknik Antarmuka dan Pemrograman
Mikrokontroler AT89C51, PT Elek Media Komputindo, Jakarta.
Wasito S. Pelajaran Elektronika Jilid 1A, Penerbit Karya Utama, Jakarta.
Suhata, ST. Aplikasi Mikrokontroler Sebagai Pengendali Peralatan Elektronik Via
Line Telepon, Penerbit Elex Media Komputindo, Jakarta
Terpadu Linear oleh Ir. Herman Widodo Soemitro, Penerbit Erlangga,
Jakarta.
http://www.maxim-ic. com
Listing Program Lengka p Komunikasi serial Program secara lengkap adalah sebagai berikut:
org 0h
ljmp utama org 23h clr es jnb RI,$ clr RI clr a mov a,sbuf setb es banding:
cjne a,#10,banding1 mov r2,#10
call putar_kanan banding1:
cjne a,#20,banding2 mov r2,#20
call putar_kanan banding2:
call putar_kanan banding3:
cjne a,#40,banding4 mov r2,#40
call putar_kanan banding4:
cjne a,#50,banding5 mov r2,#50
call putar_kanan banding5:
cjne a,#60,banding6 mov r2,#60
call putar_kanan banding6:
cjne a,#70,banding7 mov r2,#70
call putar_kanan banding7:
cjne a,#80,banding8 mov r2,#80
banding8:
cjne a,90,banding9 mov r2,#90
call putar_kanan banding9:
cjne a,#0,selesai mov r2,#100 call putar_kanan ljmp selesai selesai:
reti
setb es
key:
clr a mov a,p0
cjne a,#0b7h,key1 mov p2,#0f9h mov r0,#10 jmp kirim key1:
cjne a,#0d7h,key2 mov p2,#10100100b mov r0,#20
jmp kirim key2:
cjne a,#0e7h,key3 mov p2,#10111000b mov r0,#30
jmp kirim key3:
mov p2,#10011001b mov r0,#40
jmp kirim
key4:
cjne a,#0dbh,key5 mov p2,#10010010b mov r0,#50
jmp kirim key5:
cjne a,#0ebh,key6 mov p2,#10000011b mov r0,#60
jmp kirim key6:
cjne a,#0bdh,key7 mov p2,#11110000b mov r0,#70
jmp kirim key7:
mov r0,#80 jmp kirim key8:
cjne a,#0edh,key9 mov p2,#10010000b mov r0,#90
jmp kirim key9:
cjne a,#0beh,key10 mov p2,#11000000b mov r0,#100
jmp kirim
key10:
jmp key kirim:
ljmp key putar_kanan:
mov a,r3 rl a
cjne a,#0feh,terus mov r3,#0efh mov a,#0efh terus:
mov p1,a mov r3,a call delay mov p1,#0ffh djnz r2,putar_kanan ret
delay:
mov r6,#15 delay1:
mov r7,#0h djnz r7,$ djnz r6,delay1 ret