84
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 AT89S51

KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

Embed Size (px)

Citation preview

Page 1: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 AT89S51

Page 2: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

YOGYAKARTA 2006

Page 3: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51
Page 4: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51
Page 5: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51
Page 6: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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,

Kakak-kakakku

Kalianlah yang Terbaik.

Page 7: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51
Page 8: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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.

6. Keluarga Besar Hutubessy, Siwabessy, Lumalessil, Sapulette, Latumahina,

Likumahwa, terima kasih atas doanya.

Page 9: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51
Page 10: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 motor 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.

Kata kunci : Keypad Matriks, aplikasi mikrokontroler AT89S51, Motor Stepper.

Page 11: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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.

Keyword : Keypad Matrix, Application of mikrokontroler AT89S51, Stepper Motor.

Page 12: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

I.5 Manfaat Penelitian………………………………………………………2

Page 13: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

II.2.4.1 TMOD (Timer mode register)……………………...15

Page 14: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

IV.3Pengujian Motor Stepper……………………………………………….51

Page 15: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

xv

BAB V. PENUTUP

V.1 esimpulan…………………………………………………………......56

V.2 Saran…………………………………………………………………....56

DAFTAR PUSTAKA……………………………………………………………….58

LAMPIRAN…………………………………………………………………………59

Page 16: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 Gambar 4.1 Rangkaian dari keypad matrik 4x3.........................................................44

Page 17: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 Tabel 4.2. Sudut Putaran Motor Stepper dengan Masukan Keypad...........................55

Page 18: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

xviii

DAFTAR LAMPIRAN

Lampiran 1 Gambar Rangkaian Lengkap Komunikasi Serial

Lampiran 2. Listing Program Lengkap Komunikasi Serial

Lampiran 3. Data sheet Atmel AT89S51

Lampiran 4 Data sheet IC SN74HC541

Lampiran 5 Data sheet IC ULN 2003

Page 19: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · 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

Pada Tugas Akhir ini diterapkan prinsip kerja dari motor stepper dan

pengendali posisi pada motor stepper yang dirancang dengan teknologi

mikrokontroler AT89S51 dan beberapa komponen elektronis lainnya. Motor stepper

Page 20: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

akan diatur untuk arah putaran 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 merupakan

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.

2. Mengembangkan dan memanfaatkan mikrokontroler terutama AT89S51

dalam menentukan sudut atau putaran motor yang diinginkan.

Page 21: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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.

Berisi data-data hasil pengujian, cara pengamatan, dan analisis data

tersebut.

Page 22: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

BAB V. Kesimpulan.

Berisi ringkasan atau kesimpulan yang diperoleh dari hasil penelitian

yang telah dilakukan.

Page 23: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

saklar yang tersusun dalam bentuk kolom dan baris yang masing-masing

dihubungkan dengan port I/O mikrokontroler. Pembacaan keypad matriks dilakukan

dengan cara scanning process. Saklar-saklar tersebut dihubungkan sedemikian rupa

sehingga apabila salah satu saklar ditekan maka akan menghubungkan salah satu

baris dengan salah satu kolom. Gambar 2.1 merupakan matriks keypad 3x4.

Page 24: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

P0.6 P0.5 P0.4

Page 25: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

Mikrokontroler memiliki memori program dan memori data yang terpisah.

Program diletakan pada memori ROM (Read Only Memory ) sedangkan data diletakan

pada RAM (Random Acces Memory).

Page 26: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel 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

Gambar.2.2 Peta Memori Program

Memory Eksternal

60 kB

ROM

Memory internal 4 kB

FLASH

External ROM

Memori Eksternal

64 kB

Page 27: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

Accumulator merupakan register yang berfungsi untuk menyimpan data

sementara. Register Accumulator ini sering digunakan dalam proses Aritmetika,

Page 28: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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)

Program ststus word adalah suatu register yang berisi bit-bit status yang

berkaitan dengan kondisi CPU saat itu. PSW seperti gambar dibawah, PSW berada

pada SFR yang beralamatkan D0H. ststus bit yang tersimpan dalam register ini

Page 29: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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)

Stack Pointer merupakan sebuah register 8 bit yang mempunyai fungsi khusus

sebagai penunjuk alamat atau data paling atas pada operasi penumpukan di RAM.

Stack Pointer terletak di alamat 81H. Penunjuk penumpukan selalu berkurang dua

Page 30: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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)

Pengalamatan langsung dilakukan dengan memberikan nilai ke suatu register

secara langsung. Pengalamatan ini hanya dapat digunakan untuk RAM internal dan

SFR.

Page 31: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

Pengalamatan segera pada sebuah operasi dilakukan dengan memberikan data

secara langsung tanpa perantara dari alamat tertentu. Biasanya pengalamatan segera

ini diawali dengan tanda #.

Page 32: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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.

Call delay, instruksi ini melakukan proses pengambilan subrutin delay

Page 33: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

II.2.4 Timer

Timer berfungsi untuk mengatur waktu kerja yang dibutuhkan AT89S51.

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.

• M1 dan M0 : untuk memilih mode timer.

Page 34: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 magnet dan pada

bagian yang tidak bergerak (stator) berupa kumparan. Kumparan pada stator ini bila

dialiri arus listrik akan membentuk medan magnet.

Untuk menjalankan motor stepper ini digunakan driver motor stepper unipolar ULN

2803. Untuk jelasnya dapat dilihat pada gambar 2.5

Page 35: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

N

SCommon

L4 (kumparan 4 )

L3 ( kumparan 3 )

L2 (kumparan 2 )

L1 ( kumparan 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.

Gambar 2.6 Motor Stepper Bipolar dan Unipolar.

Page 36: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

Tanda ‘1’ pada setiap lilitan menandakan bahwa lilitan tersebut dalam

keadaan “on” dan diberikan tegangan catu daya yang besarnya tergantung pada

kemampuan motor stepper. Pada motor stepper dengan kemampuan 12 volt maka

diberikan tegangan catu daya sebesar 12 volt. Setiap langkah (step) akan

menghasilkan sudut 1,8º.

Page 37: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

L1 U L4 L2 L3

L1 U L4 L2 L3

L1 U L4 L2 L3

L1 U L4 L2 L3

Langkah I Langkah II Langkah III Langkah IV

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

4 1 0 0 1

Page 38: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

L1 U L4 L2 L3

L1 U L4 L2 L3

L1 U L4 L2 L3

L1 U L4 L2 L3

Langkah I Langkah II Langkah III Langkah IV

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)

Langkah Lilitan I Lilitan II Lilitan III Lilitan IV

1 1 0 0 0

2 1 1 0 0

3 0 1 0 0

4 0 1 1 0

5 0 0 1 0

6 0 0 1 1

7 0 0 0 1

8 1 0 0 1

Page 39: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

Untuk metode half step hanya ada satu perubahan pemberian tegangan

kumparan pada setiap langkahnya.

L1 U L4 L2 L3

L1 U L4 L2 L3

L1 U L4 L2 L3

L1 U L4 L2 L3

Langkah I Langkah II Langkah III Langkah IV

L1 U L4 L2 L3

L1 U L4 L2 L3

L1 U L4 L2 L3

L1 U L4 L2 L3

Langkah V Langkah VI Langkah VII Langkah VIII

Gambar 2.9 Metode Langkah Setengah

II.3.2.3 Metode Langkah Seperempat (Seperempat Micro Step)

Metode ini akan menghasilkan sudut putaran sebesar 0,45° setiap step-nya.

Eksitasi arus pada lilitan dilakukan secara bertingkat mengacu pada prinsip kerja

suatu DAC. Besar sudut ini merupakan seperempat dari besar sudut pada metode full

step. Besar Imaks yang diberikan pada motor stepper adalah 0,144 A.

Page 40: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

L1 U L4 L2 L3

L1 U L4 L2 L3

L1 U L4 L2 L3

L1 U L4 L2 L3

Langkah 1-4 Langkah 5-8 Langkah 9-12 Langkah 13-16

Gambar 2.10 Metode Langkah Seperempat

II.3.2.4 Metode Langkah Seperdelapan Mikro (Mikro Step)

Metode ini merupakan pengembangan dari dua metode sebelumnya. Eksitasi

arus pada lilitan dilakukan secara bertingkat yang mengacu pada prinsip kerja suatu

pengubah digital ke analog. Pada langkah mikro besar sudut yang dihasilkan lebih

kecil dari dua metode sebelumnya, dalam hal ini besar sudut yang dihasilkan pada

metode langkah mikro adalah 0,225° setiap langkahnya. Besar sudut ini merupakan

1/8 dari besar sudut pada metode langkah penuh. Besar Imaks yang diberikan pada

motor adalah 0,144 A.

Page 41: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

Gambar 2.11 Metode Langkah Mikro berupa pulsa L1 U L4 L2 L3

L1 U L4 L2 L3

Langkah 1-8 Langkah 9-16

Langkah 17-24 Langkah 25- 32

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

L1 U L4 L2 L3

L1 U L4 L2 L3

Page 42: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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).

Port serial pada AT89S51 bisa digunakan dalam 4 kode kerja yang berbeda.

Dari 4 mode tersebut, 1 mode bekerja secara sinkron dan yang 3 lainnya bekerja

secara asinkron. Keempat mode yang digunakan dalam komunikasi serial tersebut

adalah:

Page 43: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 stop. 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).

c. Mode2 : data dikirim atau diterima 11 bit sekaligus, diawali 1 bit start,

kemudian disusul 8 bit data yang dimulai dari bit yang

berbobot paling kecil (bit 0), lalu bit ke 9 yang dapat diatur

Page 44: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 :

a. Bit SM0 dan SM1 (bit 7 dan bit 6 pada register SCON) dipakai untuk

menentukan mode kerja dari port serial. Setelah reset kedua bit ini bernilai

“0” dan penentuan mode kerja port serial mengikuti tabel 2-1

Page 45: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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.

d. Pada mode1, RB8 digunakan untuk menampung bit stop yang diterima,

dengan demikian apabila RB8 bernilai ‘1’ maka data diterima dengan

benar, sebaliknya apabila RB8 bernilai ‘0’ berarti terjadi kesalahan frame

Page 46: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

(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.

f. Bit R1 (bit 0) merupakan sinyal yang setara dengan sinyal RDA (Receiver

Data Available) yang umum dijumpai pada uART standart. Setelah SBUF

menerima data dari port serial, bit pada R1 akan bernilai ‘1’ secara

otomatis, kemudian bit ini harus di-nol-kan dengan program agar dapat

digunakan untuk memantau keadaan pada SBUF dalam penerimaan data

berikutnya.

Page 47: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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:

Baud rate mode1 dan mode3 = 2 SMOD/32x (laju limpahan timer1) ……….(II.3)

Page 48: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

Tabel 2.5 Baud Rate yang sering dipakai yang dihasilkan timer 1

TIMER1 Baud Rate

Fosc

SMOD

C/~T Mode

Nilai isi ulang

Mode0 Max: 1 Mhz

12 MHz X X X X

Mode2 Max: 375 KHz

12 MHz 1 X X X

Mode1&3: 62,5 KHz

12 MHz 1 0 2 FFH

19,2 KHz 11,059 MHz

1 0 2 FDH

9,6 KHz 11,059 MHz

0 0 2 FDH

4,8 KHz 11,059 MHz

0 0 2 FAH

2,4 KHz 11,059 MHz

0 0 2 F4H

1,2 KHz 11,059 MHz

0 0 2 E8H

137,5 Hz 11,986 MHz

0 0 2 1DH

110 Hz

6 MHz 0 0 2 72H

110

12 MHz 0 0 1

II.5 Penampil Tujuh Segmen

Pada dasarnya penampil tujuh segmen terdiri dari tujuh buah LED ( Light

Emmiting Diode ). LED digunakan untuk mengubah arus listrik menjadi cahaya

sehingga untuk menyalakan salah satu LED pada segmen, maka arus listrik harus

diarahkan ke dioda LED dari segmen yang dimaksud.

Page 49: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 D

Page 50: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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.

Gambar 3.1 Diagram Kotak pengendalian motor stepper

Keypad Matriks

3 x 4

Mikrokontroler AT89S51

(Penerima)

Mikrokontroler AT89S51 (Peirim)

Penampil Seven Segment

Driver motor Stepper ULN

2003

Motor Stepper

Unipolar

Page 51: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 keypad 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 Bagian ini terdiri dari mikrokontroler AT89S51 yang merupakan pusat

pengendalian dari setiap blok. Mikrokontroler menerima data dari keypad dan

kemudian mengo lah data tersebut, kemudian data tersebut dikirim ke mikrokontroler

AT89S51 sebagai penerima melalui komunikasi serial dan data tersebut diolah, lalu

ditampilkan pada 7 segment dan dikirimkan ke port serial

Page 52: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel 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

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. Pada

perancangan disini baris dari keypad dihubungkan dengan port 0 (P0.0, P0.1, P0.2,

P0.3), sedangkan kolom dary keypad dihubungkan dengan port 0 (P0.4, P0.5, P0.6)

dari mikrokontroler AT89S51.

Page 53: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

Penekanan tombol pada keypad dapat menimbulkan getaran yang akan

menimbulkan data yang belum valid pada port 1. program harus menunggu hingga

data yang ditekan pada keypad benar-benar data yang valid terlebih dahulu sebelum

proses pengambilan data dilakukan. Setiap penekanan tombol pada keypad akan

selalu menimbulakn dua buah logika ‘0’ pada port 1. oleh karena itu untuk

Page 54: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

Pada komunikasi serial ini, data dikirim melalui kaki P3.1 (RxD), pengiriman

data dikirim secara asinkron, dimana 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 stop. Dan yang berfungsi sebagai penerima

bit stop adalah RB8 pada register SCON. Kecepatan pengiriman data (baud rate) bisa

diatur sesuai keperluan, dan data yang diterima pada mikrokontroler yaitu pada kaki

P3.0 (RxD).

Page 55: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel 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

R = 330 ohm.

Page 56: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

III.2 Diagram Alir Program.

Mulai

Inisialiasi Port

Inisialiastimer 1mode 2

Nilai baud rate F9H

Aktifkan timer 1

Pilih serial mode 1

Isi register 0 = 0

Aktifkan intrupsiglobal

Aktifkan intrupsiserial

Proses scanning keypad

Inisialiasi Port

A = B7H ?

Tampilkan angka 1

Isi register 0 = 10

B

A = D7H ?

Tampilkan angka 2

Isi register 0 = 20

B

A = E7H ?

Tampilkan angka 3

Isi register 0 = 30

B

CTidak

Ya

Tidak

Ya

Tidak

Ya

A

Page 57: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

C

A = BBH ?

Tampilkanangka 4

Isi register 0 =40

B

A = DBH ?

Tampilkanangka 5

Isi register 0 =50

B

A = EBH ?

Tampilkanangka 6

Isi register 0 =60

B

A = BDH ?

Tampilkanangka 7

Isi register 0 =70

B

A = DDH ?

Tampilkanangka 8

Isi register 0 =80

B

Tidak

Ya

Tidak Tidak Tidak

YaYa Ya Ya

Tidak D

D

A = EDH ?

Tampilkanangka 9

Isi register 0 =90

B

A = BEH ?

Tampilkanangka 0

Isi register 0 =0

B

Tidak

Ya

Tampilkanangka 0

A

Tidak

Ya

Page 58: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

B

Matikanintrupsi serial

Kosongkanakumulator

Salin isi R0 keA

Kirim data baru

Sinyal adapengiriman

baru

Tunggu datasebelumnya

selesai

A

Matikanintrupsi serial

Tunggu SBUFberisi data baru

Penandasudah diambil

Ambil data

Aktifkanintrupsi serial

Mulai scanningdata

A = 10 ? A = 20 ?

Isi register 2 =10

Aktifkan motorstepper 10 x

1,8'

Mulai

Isi register 2 =20

Aktifkan motorstepper 20 x

1,8'

A = 30 ?

Isi register 2 =30

Aktifkan motorstepper 30 x

1,8'

Tidak

Ya

Tidak

Ya Ya

TidakD

Page 59: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

D

A = 40 ?

Isi register 0 = 40

Aktifkan motorstepper 40 x 1,8'

A = 50 ?

Isi register 0 = 50

Aktifkan motorstepper 50 x 1,8'

A = 60 ?

Isi register 0 = 60

Aktifkan motorstepper 60 x 1,8'

A = 70 ?

Isi register 0 = 70

Aktifkan motorstepper 70 x 1,8'

A = 80 ?

Isi register 0 = 80

Aktifkan motorstepper 80 x 1,8'

TidakTidak Tidak Tidak Tidak

Ya Ya Ya Ya Ya

A = 90 ?

Isi register 0 = 90

Aktifkan motorstepper 90 x 1,8'

A = 0 ?

Isi register 0 = 0

Aktifkan motorstepper 0 x 1,8'

Tidak Tidak

YaYa

Selesai

Selesai

Page 60: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

III.3 Rangkaian Lengkap komunikasi Serial

Gambar 3.3 Rangkaian Komunikasi Serial

Page 61: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

Rangkaian keypad ini merupakan rangkaian yang berfungsi sebagai tombol

masukan data untuk mengendalikan besarnya derajat putaran motor stepper secara

manual. Keypad tersusun atas beberapa tombol secara matrik 4x3 dan masing –

masing tombol salah satu kakinya ada yang terhubung ke ground. Keluaran kaki dari

setiap tombol matrik 4x3 dari rangkaian ini terhubung langsung ke alamat port P0,

yaitu P0.0 sampai P0.3 sebagai baris tombol dan P0.4 sampai P0.6 sebagai kolom

tombol pada mikrokontroler AT89S51.

Page 62: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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.

Berikut ini tabel 4.1, hasil pengujian dari tiap penekanan tombol pada keypad.

Page 63: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

Tabel 4.1 Hasil pengujian tombol keypad matrik 4x3

Tombol P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 Hexa 1 1 0 1 1 0 1 1 1 B7 2 1 1 0 1 0 1 1 1 D7 3 1 1 1 0 0 1 1 1 E7 4 1 0 1 1 1 0 1 1 BB 5 1 1 0 1 1 0 1 1 DB 6 1 1 1 0 1 0 1 1 EB 7 1 0 1 1 1 1 0 1 BD 8 1 1 1 1 1 1 0 1 DD 9 1 1 0 0 1 1 0 1 ED 0 1 0 1 1 1 1 1 0 BE

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

cjne a,#0b7h,key1 ; Pemeriksaan tombol 1

mov p2,#0f9h ; Tampilkan angka 1

mov r0,#10

Page 64: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

jmp kirim

Page 65: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

jmp kirim

Page 66: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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.

Pada label key2 akan membandingkan isi akumulator dengan data E7H, bila

tidak sama maka akan lompat ke label key3, jika sama dengan data E7H maka

tampilkan angka 3. Pada label key3 akan membandingkan isi akumulator dengan data

BBH, bila tidak sama maka akan lompat ke label key4, jika sama dengan data BBH

maka tampilkan angka 3. Pada label key4 akan membandingkan isi akumulator

dengan data DBH, bila tidak sama maka akan lompat ke label key5, jika sama dengan

Page 67: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

Mikrokontroler AT89S51 merupakan pengendali utama sistem komunikasi

serial yang digunakan untuk mengendalikan derajat/lebar putaran motor stepper

dengan kecepatan transfer data sebesar 9600 dengan frekuensi kristal yang digunakan

pada mikrokontroler sebesar 12 MHz. Nilai THI merupakan nilai isi ulang baud rate

9600, untuk lebih jelasnya dapat dilihat melalui perhitungan rumus dibawah ini :

Page 68: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

16)256(129600

xTHIxfosc−

= baud rate mode 1 dengan SMOD = 1

jika nilai THI = F9H = 249 desimal, maka

892316)249256(12

129600 =

−=

xx

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

Pada subruitn serial kirim yaitu untuk mengirim data (semua mode port

serial). Pada baris JNB TI,$ menunggu TI menjadi 1 (aktif), untuk memastikan

pengiriman data yang sebelumnya sudah selesai. Data yang akan dikirim sebelumnya

disimpan dalam Akumulator A MOV SBUF,A. Agar TI dapat dipakai untuk

Page 69: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

Motor stepper yang digunakan disini adalah menggunakan motor stepper jenis

unipolar denganv tegangan 12 volt. Pengendalian motor stepper hanya digunakan

untuk mengetahui jumlah pulsa yang digunakan untuk menggerakan putaran motor

stepper. Jumlah pulsa akan menentukan besar sudut putar, motor yang digunakan

Page 70: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

mov r2,#25 ; data pulsa motor berputar sebesar 300

call putar_kanan

Page 71: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

mov r2,#67 ; data pulsa motor berputar sebesar 800

call putar_kanan

Page 72: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 :

Pada label putar_kanan terdapat intruksi MOV A,R3, dimana R3 merupakan

titik awal motor stepper berputar dan R3 diisi dengan data EFH. Kemudian di geser

kanan RL A isi akumulator satu Bit dan kemudian dibandingkan dengan data FEH,

jika tidak sama lompat ke label terus. Pada label terus isi akumulator dikeluarkan

pada P0 yang terhubung dengan IC ULN2003 sebagai driver motor stepper. Isi

akumulator disimpan kembali ke register 3 kemudian memanggil tunda waktu. MOV

Page 73: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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 sebanyak :

8333,8

2.1100

≈=

=

pulsajumlah

pulsajumlah

Tabel 4.2 Sudut Putaran Motor Stepper dengan Masukan Keypad

Tombol Keypad Besaran Sudut

1 10º

2 20º

3 30º

4 40º

5 50º

6 60º

7 70º

8 80º

9 90º

Page 74: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

biaya pada perancangan.

Page 75: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

Perancangan secara software menggunakan hendaknya didahului perancangan

diagram alir. Hal ini memudahkan dalam penulisan urutan perintah-perintah yang

akan dipakai.

Page 76: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

http://www.innovativeelectronics.com

Page 77: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

LAMPIRAN

Page 78: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

Listing Program Lengkap 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:

cjne a,#30,banding3

mov r2,#30

Page 79: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

call putar_kanan

Page 80: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

utama: mov p0,#0ffh

mov p2,#0h

mov p3,#0ffh

mov tmod,#20h

mov th1,#0f9h

setb tr1

mov scon,#50h

mov r0,#0

setb ea

Page 81: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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:

cjne a,#0bbh,key4

Page 82: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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:

cjne a,#0ddh,key8

mov p2,#10000000b

Page 83: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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:

clr es

clr a

mov a,r0

mov sbuf,a

jnb TI,$

clr TI

Page 84: KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL …repository.usd.ac.id/31798/2/985114001_Full.pdf · Listing Program Lengkap Komunikasi Serial Lampiran 3. Data sheet Atmel AT89S51

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

end