KENDALI MOTOR STEPPER DENGAN KOMUNIKASI SERIAL BERBASIS MIKROKONTROLER AT89S51 TUGAS AKHIR - Kendali motor stepper dengan komunikasi serial berbasis mikrokontroler AT89S51 - USD Repository

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

i

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

ii

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.

vii

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.

viii

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.

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

x

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.

xi

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

xii

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


xiii

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

xiv

BAB V. PENUTUP
V.1 esimpulan…………………………………………………………......56
V.2 Saran…………………………………………………………………....56

DAFTAR PUSTAKA……………………………………………………………….58
LAMPIRAN…………………………………………………………………………59

xv

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

xvi

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

xvii

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

xviii

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

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.
2. Mengembangkan dan memanfaatkan mikrokontroler terutama AT89S51
dalam menentukan sudut atau putaran motor yang diinginkan.

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.

BAB V. Kesimpulan.
Berisi ringkasan atau kesimpulan yang diperoleh dari hasil penelitian
yang telah dilakukan.

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.

1

2

3

4

5

6

7

8

9

*

0

#

P0.3

P0.2

P0.1

P0.0

P0.6

P0.5

P0.4

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.

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 ) sedangka n data diletakan
pada RAM (Random Acces Memory).

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

Memory Eksternal

FFFF

60 kB

External ROM

ROM
!000
+
0FFF

0

Memori
Eksternal
64 kB

atau

Memory internal
4 kB
FLASH
0

Gambar.2.2 Peta Memori Program

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,

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

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

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.

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

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

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)

Timer 1

M0(0)

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.

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.
Untuk menjalankan motor stepper ini digunakan driver motor stepper unipolar ULN
2803. Untuk jelasnya dapat dilihat pada gambar 2.5

Medan Putar Rotor

L1 ( kumparan 1)
L2 (kumparan 2 )
N

Kumparan
pada stator

L3 ( kumparan 3 )
L4 (kum paran 4 )

S
Com m on

Rotor

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.

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

L1
U
L4

L1
U
L2

L4

L1
U
L2

L4

L1
U
L2

L4

L2

L3

L3

L3

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

L1
U

L1
U

L4

L2
L3

Langkah I

L4

L1
U
L2

L4

L1
U
L2

L4

L2

L3

L3

L3

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

Untuk metode half step hanya ada satu perubahan pemberian tegangan
kumparan pada setiap langkahnya.
L1
U

L1
U

L4

L2

L4

L3

L2

L4

L3

Langkah I

L4

L2

L4

L2
L3

Langkah III

L1
U
L2

L1
U

L3

Langkah II

L1
U
L4

L1
U

Langkah IV

L1
U
L2

L3

L3

Langkah V

Langkah VI

L4

L1
U
L2

L4

L2

L3

Langkah VII

L3

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.

L1
U
L4

L1
U

L1
U

L1
U

L2
L4

L2

L4

L2

L4

L2

L3
L3

Langkah 1-4

Langkah 5-8

L3

Langkah 9-12

L3

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.

Gambar 2.11 Metode Langkah Mikro berupa pulsa
L1
L1
U
L4

U
L2

L4

L3

L2

L3

Langkah 1-8

Langkah 9-16

L1

L1

U

U

L4

L2

L3
Langkah 17-24

L4

L2

L3
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

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:

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

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

SM0

SM1

SM2

REN

Reset

0

0

0

0

Bit3
TB8
0

Bit2

Bit1

Bit0

RB8

T1

R1

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

Tabel 2.4 Penentuan mode kerja port serial
SM0
0
0

SM1
0
1

Mode
0
1

Keterangan
Register geser
UART 8-bit

1

0

2

UART 9-bit

1

1

3

UART 9-bit

Baud Rate
Tetap (fosc/12)
Bisa diubah-ubah
(dengan Timer
Tetap (fosc/64) atau
fosc/32)
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 modemode 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

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

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)

Tabel 2.5 Baud Rate yang sering dipakai yang dihasilkan timer 1

TIMER1
Baud Rate

Fosc

SMOD

Mode0
Max: 1
Mhz
Mode2
Max: 375
KHz
Mode1&3:
62,5 KHz
19,2 KHz

12 MHz

X

C/~T
X

Mode
X

Nilai isi
ulang
X

12 MHz

1

X

X

X

12 MHz

1

0

2

FFH

1

0

2

FDH

0

0

2

FDH

0

0

2

FAH

0

0

2

F4H

0

0

2

E8H

0

0

2

1DH

110 Hz

11,059
MHz
11,059
MHz
11,059
MHz
11,059
MHz
11,059
MHz
11,986
MHz
6 MHz

0

0

2

72H

110

12 MHz

0

0

1

9,6 KHz
4,8 KHz
2,4 KHz
1,2 KHz
137,5 Hz

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 segme n yang dimaksud.

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

A
F

B
G

E

C
D

Gambar 2.14. Penampil tujuh segmen

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.

Keypad
Matriks
3x4

Mikrokontroler
AT89S51
(Peirim)

Mikrokontroler
AT89S51
(Penerima)

Driver motor
Stepper ULN
2003

Penampil Seven
Segment

Gambar 3.1 Diagram Kotak pengendalian motor stepper

Motor
Stepper
Unipolar

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

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.

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.

1

2

3

4

5

6

7

8

9

*

0

#

P0.3

P0.2

P0.1

P0.0

P0.6

P0.5

P0.4

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

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

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.

III.2 Diagram Alir Program.
Mulai

Inisialiasi Port

Ya
Inisialiastimer 1
mode 2

Tidak

Tidak
A = B7H ?

A = D7H ?
Ya

A = E7H ?

Tidak

Ya

Tampilkan angka 1

Tampilkan angka 2

Tampilkan angka 3

Isi register 0 = 10

Isi register 0 = 20

Isi register 0 = 30

B

B

B

Nilai baud rate F9H

Aktifkan timer 1

Pilih serial mode 1

Isi register 0 = 0

Aktifkan intrupsi
global

Aktifkan intrupsi
serial
A
Proses scanning key
pad

Inisialiasi Port

C

C

Tidak
A = BBH ?

A = DBH ?

Ya

Tidak

A = EBH ?

Ya

Tidak

A = BDH ?

Ya

Ya

Tidak

A = DDH ?

Ya

Tampilkan
angka 4

Tampilkan
angka 5

Tampilkan
angka 6

Tampilkan
angka 7

Tampilkan
angka 8

Isi register 0 =
40

Isi register 0 =
50

Isi register 0 =
60

Isi register 0 =
70

Isi register 0 =
80

B

B

B

B

B

D

Tidak
A = EDH ?

A = BEH ?

Tidak

Ya

Ya
Tampilkan
angka 9

Tampilkan
angka 0

Tampilkan
angka 0

Isi register 0 =
90

Isi register 0 =
0

A

B

B

Tidak

D

B

Mulai

Matikan
intrupsi serial

Matikan
intrupsi serial

Kosongkan
akumulator

Tunggu SBUF
berisi data baru

Salin isi R0 ke
A

Penanda
sudah diambil

Kirim data baru

Ambil data

Tunggu data
sebelumnya
selesai

Aktifkan
intrupsi serial

Sinyal ada
pengiriman
baru

Mulai scanning
data

A

Tidak

Tidak
A = 10 ?

Ya

Tidak

A = 20 ?

A = 30 ?

Ya

Ya

Isi register 2 =
10

Isi register 2 =
20

Isi register 2 =
30

Aktifkan motor
stepper 10 x
1,8'

Aktifkan motor
stepper 20 x
1,8'

Aktifkan motor
stepper 30 x
1,8'

D

D

Tidak
A = 40 ?

A = 50 ?

Tidak

Ya

Ya

A = 60 ?

Tidak

Ya

A = 70 ?

Tidak

Ya

Tidak
A = 80 ?
Ya

Isi register 0 = 40

Isi register 0 = 50

Isi register 0 = 60

Isi register 0 = 70

Isi register 0 = 80

Aktifkan motor
stepper 40 x 1,8'

Aktifkan motor
stepper 50 x 1,8'

Aktifkan motor
stepper 60 x 1,8'

Aktifkan motor
stepper 70 x 1,8'

Aktifkan motor
stepper 80 x 1,8'

Tidak
A = 90 ?

A=0?

Ya

Ya

Isi register 0 = 90

Isi register 0 = 0

Aktifkan motor
stepper 90 x 1,8'

Aktifkan motor
stepper 0 x 1,8'

Selesai

Tidak

Selesai

III.3 Rangkaian Lengkap komunikasi Serial

Gambar 3.3 Rangkaian 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 sementa