Perancangan H-bridge bipolar sebagai driver motor stepper berbasis Mikrokontroler AT 89S51

(1)

PERANCANGAN H-BRIDGE BIPOLAR SEBAGAI DRIVER MOTOR STEPPER BERBASIS MIKROKONTROLER AT 89S51

TUGAS AKHIR

Isron Jogi Sinaga 042408066

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA


(2)

BAB I PENDAHULUAN

1.1. Latar Belakang Masalah

Kemajuan dan perkembangan dunia terus melaju dan berkembang dengan pesat. Hal ini terjadi di berbagai bidang, baik di bidang ekonomi, sosial budaya, maupun bidang-bidang eksakta dan teknologi. Ini menuntut manusia untuk menghadapinya. Oleh sebab itu manusia harus terus berfikir dan berusaha untuk menemukan hal-hal yang baru guna mempermudah aktifitas sehari-hari.

Berkaitan dengan hal diatas, komputer merupakan salah satu solusinya. Kehadiran komputer sepertinya sudah menjadi sebuah alat bantu bagi manusia. Ini terbukti dengan semakin banyaknya permasalahan yang dapat diatasi dengan memanfaatkan komputer.

Dikatakan bahwa komputer sebagai alat bantu, karena komputer dapat diaplikasikan ke berbagai bidang sehingga dengan bantuan benda tersebut manusia dapat menyelesaikan berbagai macam pekerjaan. Selain komputer, mikrokontroler juga dapat membantu dalam memudahkan pengendalian peralatan elektronik yang sebelumnya dikendalikan dengan pengaturan secara manual. Contohnya saja di gedung-gedung perkantoran atau ruko-ruko yang memiliki lantai lebih dari satu tingkat, diperlukan waktu dan tenaga untuk membuka/menutup pintu karena sang operator harus melewati tangga atau pun lift. Tentunya ini sangat melelahkan.


(3)

Untuk itu penulis ingin mencoba merancang suatu sistem yang dapat membantu mengatasi hal tersebut dan menuangkannya dalam bentuk laporan Tugas Akhir dengan judul “Perancangan H-bridge bipolar sebagai driver motor stepper berbasis Mikrokontroler AT 89S51”. Bahasa yang digunakan dalam pembahasan laporan ini adalah bahasa Assembler.

1.2. Rumusan Masalah

Mengacu pada hal diatas, pada Laporan ini saya akan merancang sistem H-bridge bipolar sebagai driver motor stepper dengan menggunakan mikrokontroler .

Pada alat ini akan digunakan sebuah mikrokontroler AT89S51, dan sebuah driver motor stepper.

Mikrokontroler AT89S51 sebagai otak dari sistem, yang berfungsi mengendalikan semua peralatan elektronik.

1.3 Tujuan Penulisan

Tujuan dilakukan Laporan ini adalah sebagai berikut:

1. Memanfaatkan mikrokontroller sebagai perancangan H-bridge bipolar. 2. Memanfaatkan driver motor stepper sebagai penggerak arus listrik.


(4)

1.4 Batasan Masalah

Mengacu pada hal diatas, kami akan merancang sebuah alat yang dapat merancang H-bridge bipolar sebagai driver motor stepper dengan memanfaatkan mikrokontroler dengan batasan-batasan sebagai berikut : 1. Mikrokontroler yang digunakan adalah jenis AT89S51.

2. Driver motor stepper.

3. Bahasa program yang digunakan pada mikrokontroler adalah bahasa “Assembler”.

1.5 Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja sistem perancangan H-bridge sebagai driver motor stepper dengan menggunakan mikrokontroler, maka penulis menulis laporan ini sebagai berikut :

BAB I. PENDAHULUAN

Dalam bab ini berisikan mengenai latar belakang, rumusan masalah, tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB II. LANDASAN TEORI

Landasan teori, dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian Teori pendukung itu antara lain tentang mikrokontroler AT89S51 (hardware dan software),


(5)

bahasa program yang digunakan. serta karekteristik dari komponen-komponen pendukung.

BAB III. PERANCANGAN ALAT DAN PROGRAM

Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok dari rangkaian, skematik dari masing-masing rangkaian dan diagram alir dari program yang akan diisikan ke mikrokontroler AT89S51.

BAB IV. ANALISA RANGKAIAN DAN SISTEM KERJA ALAT

Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja alat, penjelasan mengenai program-program yang digunakan untuk mengaktifkan rangkaian, penjelasan mengenai program yang diisikan ke mikrokontroler AT89S51.

BAB V. KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang kesimpulan dari pembahasan yang dilakukan dari Laporan ini serta saran apakah rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.


(6)

BAB II

TINJAUAN PUSTAKA

2.1. PERANGKAT KERAS

2.1.1. Arsitektur Mikrokontroler AT89S51

Mikrokontroler, sebagai suatu terobosan teknologi mikrokontoler dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara missal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebetuhan pasar, mikrokontelor hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat Bantu dan mainan yang lebih canggih.

Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini ditangani dengan mikrokontroler, karena tidak mungkin menggunakan computer PC yang harus dipasang disamping (atau di belakang) mesin permainan yang bersangkutan.

Selain system tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam bidang pengukuran jarak jauh atau ynag dikenal dengan system telemetri. Misalnya pengukuran disuatu tempat yang membahayakan manusia, maka akan


(7)

lebih nyaman jika dipasang suatu system pengukuran yang bisa mengirimkan data lewat pemancar dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya. Sistem pengukuran jarak jauh ini jelas membutuhkan suatu system akuisisi data sekaligus system pengiriman data secara serial (melalui pemancar), yang semuanya itu bisa diperoleh dari mikrokontroler yang digunakan. Tidak seperti system komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM-nya dan ROM. Pada system computer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relative besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program control disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.

2.1.2. Kontruksi AT89S51

Mikrokontrol AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 Kilo Ohm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini AT89S51 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24 MHz dan kapasitor 30 piko-Farad


(8)

dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler.

Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda.

Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan progam ini dinamakan sebagai memori progam.

Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.

Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan diproduksi secara masal, progam diisikan ke dalam ROM pada saat IC mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler mengunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Progamble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah.

Jenis memori yang dipakai untuk Memori Program AT89S51 adalah Flash PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S51 Flash PEROM Programmer.


(9)

Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.

Sarana Input/Ouput yang disediakan cukup banyak dan bervariasa. AT89S51 mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).

AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakan berhimpitan dengan P1.0 dan P1.1 di kaki nomor 2 dan 3, seningga kalau sarana input/ouput yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau T0 dan T1 dipakai.

AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output parelel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi.

Port1 dan 2, UART, Timer 0,Timer 1 dan sarana lainnya merupakan register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Functoin Regeister (SFR).


(10)

2.1.3. SFR (Register Fungsi Khusus ) Pada Keluarga 51

Sekumpulan SFR atau Special Function Register yang terdapat pada Mikrokontroler Atmel Keluarga 51 ditunjukan pada gambar I.01, pada bagian sisi kiri dan kanan dituliskan alamat-alamatnya dalam format heksadesimal.

Tidak semua alamat pada SFR digunakan, alamat-alamat yang tidak digunakan diimplementasikan pada chip. Jika dilakukan usaha pembacaan pada alamat-alamat yang tidak terpakai tersebut akan menghasilkan data acak dan penulisannya tidak menimbulkan efek sama sekali. Pengguna perangkat lunak sebaiknya jangan menuliskan ‘1’ pada lokasi-lokasi ‘tak bertuan’ tersebut, karena dapat digunakan untuk mikrokontroler generasi selanjutnya. Dengan demikian, nilai-nilai reset atau non-aktif dari bit-bit baru ini akan selalu ‘O’ dan nilai aktifnya adalah ‘1’. Berikut akan dijelaskan secara singkat SFR-SFR beserta fungsinya:

8 Bytes

F8 FF

F0 B F7

E8 EF

E0 ACC E7

D8 DF

D0 PSW D7

C8 (T2CON) (T2MOD) (RCAP2L) (RCAP2H) (TL2) (TH2) CF

C0 C7

B8 IP BF

B0 P3 B7

A8 IE AF

A0 P2 A7

98 SCON SBUF 9F

90 P1 97

88 TCON TMOD TLO TL1 THO TH1 8F

80 PO SP DPL DPH PCON 87


(11)

Tanda (…) untuk SFR yang dijumpai di keluarga 51 dengan 3 Timer

Akumulator

ACC atau akumulator yang menempati lokasi E 0h digunakan sebagai register untuk penyimpanan data sementara dalam program, instruksi mengacunya sebagai register A (bukan ACC).

Register B

Register B (lokasi D 0h) digunakan selama operasi perkalian dan pembagian, untuk instruksi lain dapat diperlakukan sebagai register scratch pad (“papan coret-coret”)

lainnya.

Program Status Word (PSW)

Register PSW (lokasi D 0h) mengandung informasi status program.

Stack Pointer

Register SP atau Stack Pointer (lokasi 8 1h) merupakan register dengan panjang 8-bit, digunakan dalam proses simpan menggunakan instruksi PUSH dan CALL. Walau Stack bisa menempati lokasi dimana saja dalam RAM, register SP akan selalu diinisialisasi ke 07h setelah adanya reset, hal ini menyebabkan stack berawal di lokasi 08h.


(12)

Data Pointer

Register Data Pointer atau DPTR mengandung DPTR untuk byte tinggi (DPH) dan byte rendah (DPL) yang masing-masing berada dilokasi 83h dan 82h, bersama-sama membentuk register yang mampu menyimpan alamat 16-bit. Dapat dimanipulasi sebagai register 16-bit atau ditulis dari/ke port, untuk masing-masing Port 0,Port 1, Port2 dan Port 3.

Serial Data Buffer

SBUF atau Serial Data Buffer (lokasi 99h) sebenarnya terdiri dari dua register yang terpisah, yaitu register penyangga pengirim (transmit buffer) dan penyangga penerima (receive buffer). Pada saat data disalin ke SBUF, maka data sesungguhnya dikirim ke penyangga pengirim dan sekaligus mengawali transmisi data serial. Sedangkan pada saat data disalin dari SBUF, maka sebenarnya data tersebut berasal dari penyangga penerima.

Time Register

Pasangan register (TH0, TL0) dilokasi 8Ch dan 8Ah,(TH1, TL1) dilokasi 8Dh dan 8Bh serta (TH2, TL2) dilokasi CDh dan CCH merupakan register-register pencacah 16-bit untuk masing-masing Timer 0, Timern 1 dan Timer 2.

Capture Register

Pasangan register (RCAP2H, RCAP2L) yang menempati lokasi CBh dan CAh merupakan register capture untuk mode Timer 2 capture. Pada mode ini, sebagai tanggapan terjadinya suatu transisi sinyal di kaki (pin) T2EX (pada AT89C52/55),


(13)

TH2 dan TL2 disalin masing-masing ke RCAP2H dan RCAP2L. Timer 2 juga memiliki mode isi-ulang-otomatis 16-bit dan RCAP2H serta RCAP2L digunakan untuk menyimpan nilai isi-ulang tersebut.

Control Register

Register-register IP, IE, TMOD, TCON, T2CON, T2MOD, SCON dan PCON berisi bit-bit control dan status untuk system interupsi, pencacah/pewaktu dan port serial.

Berikut ini merupakan spesifikasi dari IC AT89C51 :  Kompatible dengan produk MCS-51

 Empat K byte In-Sistem Reprogammable Flash Memory  Daya tahan 1000 kali baca/tulis

 Fully Static Operation : 0 Hz sampai 24 MHz  Tiga level kunci memori progam

 128x8 bit RAM internal  32 jalur I/O

 Tiga 16 bit Timer/Counter  Enam sumber interupt  Jalur serial dengan UART


(14)

Gambar 2. IC Mikrokontroler AT89S51 Deskripsi pin-pin pada mikrokontroler AT89S51 :

VCC (Pin 40) Suplai tegangan

GND (Pin 20) Ground

Port 0 (Pin 39-Pin 32)

Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data ataupun penerima kode byte pada saat flash progamming Pada fungsi sebagai I/O


(15)

biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut.

Pada fungsi sebagai low order multiplex address/data, port ini akan mempunyai internal pull up.

Pada saat flash progamming diperlukan eksternal pull up, terutama pada saat verifikasi program.

Port 2 (Pin 21 – pin 28)

Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengaksememori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. Port ini mempunyai internal pull up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini dapat memberikan output sink keempat buah input TTL.

Port 3 (Pin 10 – pin 17)

Port 3 merupakan 8 bit port I/O dua arah dengan internal pullup. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut :

Nama pin Fungsi

P3.0 (pin 10) RXD (Port input serial) P3.1 (pin 11) TXD (Port output serial) P3.2 (pin 12) INTO (interrupt 0 eksternal) P3.3 (pin 13) INT1 (interrupt 1 eksternal) P3.4 (pin 14) T0 (input eksternal timer 0)


(16)

P3.5 (pin 15) T1 (input eksternal timer 1)

P3.6 (pin 16) WR (menulis untuk eksternal data memori) P3.7 (pin 17) RD (untuk membaca eksternal data memori)

RST (pin 9)

Reset akan aktif dengan memberikan input high selama 2 cycle.

ALE/PROG (pin 30)

Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input progam (PROG) selama memprogam Flash.

PSEN (pin 29)

Progam store enable digunakan untuk mengakses memori progam eksternal.

EA (pin 31)

Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan program yang ada pada memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt.

XTAL1 (pin 19)


(17)

XTAL2 (pin 18) Output dari osilator.

Motor Langkah (Stepper)

Motor langkah (stepper) banyak digunakan dalam berbagai aplikasi, dipergunakan apabila dikehendaki jumlah putaran yang tepat atau diperlukan sebagian dari putaran motor. Suatu contoh dapat dijumpai pada disk drive, untuk proses pembacaan dan/atau penulisan data ke/dari cakram(disk), head baca-tulis ditempatkan pada tempat yang tepat di atas jalur atau track pada cakram, untuk head tersebut di hubungkan dengan sebuah motor langkah.

Aplikasi penggunaan motor langkah dapat juga dijumpai dalam bidang industri atau untuk jenis motor langkah kecil dapat digunakan dalam perancangan suatu alat mekatronik atau robot. Motor langkah berukuran besar digunakan, misalnya, dalam proses pengeboran logam yang menghendaki ketepatan posisi pengeboran, dalam hal ini di lakukan oleh sebuah robot yang memerlukan ketepatan posisi dalam gerakan lengannya dan lain-lain.

Pada gambar di bawah ditunjukkan dasar susunan sebuah motor langkah (stepper).

U

S A

D B

A C


(18)

Gambar .Diagram motor langkah (stepper)

Magnet permanen N-S berputar kearah medan magnet yang aktif. Apabila kumparan stator dialiri arus sedemikian rupa, maka akan timbul medan magnet dan rotor akan berputar mengikuti medan magnet tersebut. Setiap pengalihan arus ke kumparan berikutnya menyebabkan medan magnet berputar-putar menurut suatu sudut tertentu, biasanya informasi besar sudut putar tertulis pada badan motor langkah yang bersangkutan. Jumlah keseluruhan pengalihan menentukan sudut perputaran motor. Jika pengalihan arus ditentukan, maka rotor akan berhenti pada posisi terakhir. Jika kecepatan pengalihan tidak terlalu tinggi, maka slip akan dapat dihindari. Sehingga tidak diperlukan umpan balik (feedback) pada pengendalian motor langkah.

Motor langkah yang akan di gunakan memiliki 4 fase (pole atau kutub), pengiriman pulsa dari mikrokontroler ke rangkaian motor langkah dilakukan secara bergantian, masing-masing 4 data (sesuai dengan jumlah phase-nya), sebagian di tunjukkan pada gambar di bawah ini :

Gambar. Pemberian data/pulsa pada motor stepper

Pada saat yang sama ,untuk tiap motor langkah, tidak boleh ada 2 (dua) masukan atau lebih yang mengandung pulsa sama dengan 1 (high), atau dengan

C D A B


(19)

kata lain, pada suatu saat hanya sebuah masukan yang bernilai 1 (satu) sedangkan lainnya bernilai 0 (nol).

2.2. PERANGKAT LUNAK

2.2.1. Bahasa Assembly MCS-51

Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah bahasa assembly untuk MCS-51. Angka 51 merupakan jumlah instruksi pada bahasa ini hanya ada 51 instruksi. Dari 51 instruksi, yang sering digunakan orang hanya 10 instruksi. Instruksi –instruksi tersebut antara lain :

1. Instruksi MOV

Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung. Contoh pengisian nilai secara langsung :

MOV R0,#20h

Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0). Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.

Contoh pengisian nilai secara tidak langsung : MOV 20h,#80h

... ... MOV R0,20h


(20)

Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal ke register 0 (R0).

Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat.

2. Instruksi DJNZ

Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol, contoh :

MOV R0,#80h Loop: ...

...

DJNZ R0,Loop ...

R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya.

3. Instruksi ACALL

Instruksi ini berfungsi untuk memanggil suatu rutin tertentu, contoh : ...

ACALL TUNDA ...

TUNDA:

...


(21)

Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan, contoh :

ACALL TUNDA ...

TUNDA:

... RET

5. Instruksi JMP (Jump)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, contoh : Loop:

... ... JMP Loop

6. Instruksi JB (Jump if bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1), contoh :

Loop:

JB P1.0,Loop ...

7. Instruksi JNB (Jump if Not bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0), contoh :

Loop:

JNB P1.0,Loop ...


(22)

8. Instruksi CJNZ (Compare Jump If Not Equal)

Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu, contoh :

Loop:

...

CJNE R0,#20h,Loop ...

Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h, maka program akan melanjutkan instruksi selanjutnya..

9. Instruksi DEC (Decreament)

Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1, contoh :

MOV R0,#20h R0 = 20h ...

DEC R0 R0 = R0 – 1 ...

10.Instruksi INC (Increament)

Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1, contoh :

MOV R0,#20h R0 = 20h ...

INC R0 R0 = R0 + 1 ...


(23)

2.2.2. Software 8051 Editor, Assembler, Simulator (IDE)

Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler,dan Simulator (IDE).

Tampilannya seperti di bawah ini :

Gambar 3. 8051 Editor, Assembler, Simulator (IDE)

Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi.

Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an. Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroler.


(24)

2.2.3. Software Downloader

Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroler digunakan software ISP- Flash Programmer 3.0a yang dapat didownload dari internet.

Tampilannya seperti gambar di bawah ini :

Gambar 4. ISP- Flash Programmer 3.a

Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk mengisikan hasil kompilasi tersebut ke mikrokontroler.


(25)

BAB III

PERANCANGAN SISTEM

3.1. Diagram Blok

Secara garis besar rangkaian pengendali peralatan elektronik dengan menggunakan PC, memiliki 6 blok utama, yaitu personal komputer (PC), Mikrokontroler AT89S51, relay, lampu beban, Pintu dan sensor arus. Diagram blok rangkaian tampak seperti gambar berikut :

Gambar di atas merupakan gambar diagram blok dari rangkaian pengendali peralatan elektronik dengan menggunakan PC. Jika komputer diberi perintah tertentu melalui program yang ada pada komputer, maka akan terjadi komunikasi data antara komputer dan mikrokontroler, Selanjutnya mikrokontroler akan mengambil data dari output komputer, sehingga mikrokontroler AT89S51 mengetahui data yang dikirimkan oleh komputer tersebut dan data ini akan

D

ri

v

er

s

te

p

p

er

P0.0 Motor

stepper

P0.3 P0.2


(26)

dianggap oleh mikrokontroler sebagai perintah untuk mengerjakan sesuatu (mengaktifkan/menonaktifkan relay). Langkah selanjutnya mikrokontroler akan membandingkan data yang masuk dengan data yang telah diprogramkan dalam mikrokontroler, kemudian mengerjakan perintah (mengaktifkan/menonaktifkan relay tertentu) sesuai dengan data yang diterima. Relay yang aktif akan menyebabkan lampu yang dihubungkan ke relay tersebut menyala. Setiap lampu dihubungkan ke sensor arus, sehingga jika lampu menyala, maka sensor arus yang terhubung ke lampu tersebut akan aktif dan mengirimkan sinyal tertentu ke mikrokontroler AT89S51. Sehingga dengan demikian mikrokontroler mengetahui lampu-lampu mana saja yang menyala. Hal yang sama juga terjadi ketika dibuka atau ditutup pintu.

3.2. Perancangan Rangkaian Power Supplay (PSA)

Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt, keluaran 5 volt digunakan untuk menghidupkan seluruh rangkaian, sedangkan keluaran 12 volt digunakan untuk menghidupkan relay. Rangkaian tampak seperti gambar di bawah ini :

Gambar 4.1 Rangkaian Power Supplay (PSA) Vreg

LM7805CT

IN OUT TIP32C

100

100uF

330

2200uF 1uF

220 V AC

0 V

5 Volt DC

0 Volt 12 Volt DC


(27)

Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan dengan menggunakan dua buah dioda, selanjutnya 12 volt DC akan diratakan oleh kapasitor 2200 µF. Regulator tegangan 5 volt (LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila PSA dinyalakan.

Transistor PNP TIP 32 disini berfungsi untuk mensupplay arus apabila terjadi kekurangan arus pada rangkaian, sehingga regulator tegangan (LM7805CT) tidak akan panas ketika rangkaian butuh arus yang cukup besar. Transistor tipe PNP ini akan aktif jika tegangan pada basis > 0,7 volt dari tegangan positif. Tegangan positif yang dihubungkan ke emitor sebesar 12 volt, sehingga transistor akan aktif jika diberi tegangan yang lebih kecil dari 12 volt – 0,7 volt = 11,3 volt. Dalam kondisi biasa (LM7805 tidak kekurangan arus), maka basis akan mendapatkan tegangan 12 volt, sehingga transistor tidak aktif, emitor tidak terhubung dengan kolektor, sehingga tegangan pada kolektor sama dengan tegangan pada output regulator LM7805 yaitu 5 volt. Namun jika rangkaian membutuhkan arus yang lebih banyak, maka regulator akan mengambil arus dari inputnya, sehingga tegangan pada input regulator akan turun hingga lebih kecil dari 11,3 volt, transistor akan aktif, maka arus akan mengalir dari emitor ke kolektor. Pada transistor ini jika aktif, maka yang mengalir dari emitor ke kolektor adalah arusnya, sedangkan tegangannya tidak, sehingga tegangan pada kolektor tetap 5 volt.


(28)

5V VCC 10uF 5V VCC 2 1 30pF 30pF

XTAL 12 MHz

AT89S51 P0.3 (AD3) P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) Vcc P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) RST EA/VPP P3.0 (RXD) P3.1 (TXD) P3.2 (INT0) P3.3 (INT1) P3.4 (T0) ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4 (A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P3.6 (WR) P3.5 (T1) P3.7 (RD) XTAL2 XTAL1

GND P2.0 (A8)

1 2 3 4 5 6 7 8 40 39 38 37 36 35 34 33 9 10 11 12 13 14 15 32 31 30 29 28 27 26 16 17 18 19 20 25 24 23 22 21 4.7k2SA733 5V VCC LED1

Tegangan 12 volt DC langsung diambil dari keluaran 2 buah dioda. Sebenarnya tegangan 12 volt ini tidak stabil, namun karena tegangan 12 volt ini hanya digunakan untuk menghidupkan relay, jadi tidak dipermasalahkan, karena relay dapat hidup dengan tegangan 8 – 15 volt.

3. 3. Rangkaian Mikrokontroler AT89S51

Rangkaian mikrokontroler ini berfungsi sebagai pusat kendali dari seluruh rangkaian yang ada pada alat ini. Gambar rangkaian mikrokontroler AT89S51 ditunjukkan pada gambar 3.8 berikut ini :

Gambar 3.8 Rangkaian Mikrokontroler AT89S51

Mikrokontroler ini memiliki 32 port I/O, yaitu port 0, port 1, port 2 dan port 3. Pin 40 dihubungkan ke sumber tegangan 5 volt. Dan pin 20 dihubungkan ke ground. Rangkaian mikrokontroler ini menggunakan komponen kristal 12 MHz


(29)

sebagai sumber clocknya. Nilai kristal ini akan mempengaruhi kecepatan mikrokontroler dalam mengeksekusi suatu perintah tertentu.

Pada pin 9 dihubungkan dengan sebuah kapasitor 10 uF yang dihubungkan ke positif dan sebuah resistor 10 Kohm yang dihubungkan ke ground. Kedua komponen ini berfungsi agar program pada mikrokontroler dijalankan beberapa saat setelah power aktif. Lamanya waktu antara aktifnya power pada IC mikrokontroler dan aktifnya program adalah sebesar perkalian antara kapasitor dan resistor tersebut. Jika dihitung maka lama waktunya adalah :

10 10 1 det

tR x CKx Fm ik

Jadi 1 mili detik setelah power aktif pada IC kemudian program aktif.

Pin 17 yang merupakan P3.7 dihubungkan dengan transistor dan sebuah LED. Ini dilakukan hanya untuk menguji apakah rangkaian minimum mikrokontroler AT89S51 sudah bekerja atau belum. Dengan memberikan program sederhana pada mikrokontroler tersebut, dapat diketahui apakah rangkaian minimum tersebut sudah bekerja dengan baik atau tidak. Jika LED yang terhubug ke Pin 17 sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap digunakan. Namun setelah seluruh rangkaian disatukan, LED yang terhubung ke in 17 ini tidak digunakan lagi. Perancangan Rangkaian Driver Motor Stepper

Untuk mengendalikan perputaran motor stepper dibutuhkan sebuah driver. Driver ini berfungsi untuk memutar motor stepper searah dengan jarum jam atau berlawanan arah dengan jarum jam. Rangkaian driver motor stepper ini terdiri dari empat masukan dan empat keluaran, dimana masing-masing masukan dihubungkan dengan mikrokontroler AT89S51 dan keluarannya dihubungkan ke


(30)

motor stepper. Rangkaian ini akan bekerja memutar motor stepper jika diberi sinyal high (1) secara bergantian pada ke-4 masukannya. Rangkaiannya seperti gambar di bawah :

Gambar Rangkaian Driver Motor Stepper

Rangkaian ini terdairi dari 4 buah transistor NPN TIP 122. Masing-masing transistor dihubungkan ke P0.0, P0.1, P0.2 dan P0.3 pada mikrokontroler AT89S51. Basis dari masing-masing transistor diberi tahanan 10 Kohm untuk membatasi arus yang masuk ke transistor. Kolektor dihubungkan dengan kumparan yang terdapat pada motor stepper, kemudian kumparan dihubungkan dengan sumber tegangan 12 volt.dan emitor dihubungkan ke ground.

Jika P0.0 diberi logika high (1), yang berarti basis pada transistor TIP 122 mendapat tegangan 5 volt, maka transistor akan aktif. Hal ini akan menyebabkan terhubungnya kolektor dengan emitor, sehingga kolektor mendapatkan tegangan 0 volt dari ground. Hal ini menyebabkan arus akan mengalir dari sumber tegangan 12 volt ke kumparan, sehingga kumparan akan menghasilkan medan magnet. Medan magnet ini akan menarik logam yang ada pada motor, sehingga motor mengarah pada kumparan yang memiliki medan magnet tesebut.

Tip 122 Tip 122

VCC 12V

MOTOR AT89S51 (P0.0)

AT89S51 (P0.2)

Stepper

VCC 12V

Tip 122 Tip 122

1.0k

1.0k

AT89S51 (P0.1)

1.0k

1.0k


(31)

Jika kemudian P0.0 diberi logika low (0), yang berarti transistor tidak aktif dan tidak ada arus yang mengalir pada kumparan, sehingga tidak ada medan magnet pada kumparan. Dan disisi lain P0.1 diberi logika high (1), sehingga kumparan yang terhubung ke P0.1 akan menghasilkan medan magnet. Maka motor akan beralih kearah kumparan yang terhubung ke P0.1 tersebut. Seterusnya jika logika high diberikan secara bergantian pada input dari driver motor stepper, maka motor stepper akan berputar sesuai dengan arah logika high (1) yang diberikan pada inputnya.

Untuk memutar dengan arah yang berlawanan dengan arah yang sebelumnya, maka logika high (1) pada input driver motor stepper harus diberikan secara bergantian dengan arah yang berlawanan dengan sebelumnya. 3.8. Perancangan program

Program yang digunakan dalam proyek ini adalah program visual basic untuk interface komputer ke rangkaian dan asssembler untuk mikrokontroler, adapun program yang diisikan adalah sbb:

program interface komputer ke rangkaian”:

Private Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte)

Private Declare Function Portin Lib "IO.DLL" (ByVal Port As Integer) As Byte Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMiliseconds As Long) Private Declare Function Inp Lib "DllPort.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer

Private Sub Buka_Gerbang_Click() PortOut &H378, &H1A


(32)

Sleep 50

PortOut &H378, &H1C End Sub

Private Sub Close_Click() Unload Me

End Sub

Private Sub Statusgerbang_Click() PortOut &H378, &H3A

Sleep 100

NilaiGerbang = Inp(&H379) If NilaiGerbang = 127 Then Statusgrb = "Terbuka" Else

Statusgrb = "Tertutup" End If


(33)

BAB IV

PENGUJIAN DAN ANALISA SISTEM

4.1. Pengujian Rangkaian Catu Daya

Pengujian pada bagian rangkaian catu daya ini dapat dilakukan dengan mengukur tegangan keluaran dari rangkaian ini dengan menggunakan voltmeter digital. Dari hasil pengujian diperoleh tegangan keluaran pertama sebesar + 4,9 volt. Sedangkan tegangan keluaran kedua adalah sebesar +13,7 volt. Tegangan 4,9 volt digunakan untuk mensupplay tegangan ke mikrokontroler AT89S51. Sedangkan tegangan 13,7 volt digunakan untuk mensupplay tegangan ke relay.

4.2. Pengujian Rangkaian minimum mikrokontroller AT89S51

Pengujian rangkaian mikrokontroler dilakukan dengan menghubungkan rangkaian ini dengan sebuah transistor A733 yang dihubungkan dengan sebuah LED indikator, dimana transistor disini berfungsi sebagai saklar untuk mengendalikan hidup/mati LED. Dengan demikian LED akan menyala jika transistor aktif dan sebaliknya LED akan mati jika transistor tidak aktif. Tipe transistor yang digunakan adalah PNP A733, dimana transistor ini akan aktif (saturasi) jika pada basis diberi tegangan 0 volt (logika low) dan transistor ini akan tidak aktif jika pada basis diberi tegangan 5 volt (logika high). Basis transistor ini dihubungkan ke pin I/O mikrokontroler yaitu pada kaki 28 (P2.7).

Langkah selanjutnya adalah mengisikan program sederhana ke mikrokontroler AT89S51. Programnya adalah sebagai berikut :


(34)

Cpl P2.7 Acall tunda sjmp loop tunda:

mov r7,#255 tnd:

mov r6,#255 djnz r6,$ djnz r7,tnd ret

Program di atas akan mengubah logika yang ada pada P2.7 selama selang waktu tunda. Jika logika pada P2.7 high maka akan diubah menjadi low, demikian juga sebaliknya jika logika pada P2.7 low maka akan diubah ke high, demikian seterusnya.

Logika low akan mengaktifkan transistor sehingga LED akan menyala dan logika high akan menonaktifkan transistor, sehingga LED padam. Dengan demikian program ini akan membuat LED berkedip terus-menerus. Jika LED telah berkedip terus menerus sesuai dengan program yang diinginkan, maka rangkaian mikrokontroler telah berfungsi dengan baik.

4.5. Pengujian rangkaian driver motor stepper

Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian driver motor stepper ini dengan rangkaian mikrokontroler AT89S51, kemudian memberikan program sederhana untuk mengendalikan perputaran motor stepper tersebut.


(35)

Program yang diberikan pada mikrokontroler untuk memutar motor stepper adalah sebagai berikut :

mov a,#11h Mov r0,#100 Buka_Palang:

mov P0,a acall tunda Rl a

djnz r0,buka_palang mov P0,#0h

Program diawali dengan memberikan nilai 11h pada accumulator (a), kemudian program akan memasuki rutin buka pintu. Nilai a diisikan ke port 0, sehingga sekarang nilai port 0 adalah 11h, ini berarti P0.0 dan P0.4 mendapatkan logika high sedangkan yang lainnya mendapatkan logika low, seperti tabel di bawah ini :

P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0

P0 0 0 0 1 0 0 0 1

Program dilanjutkan dengan memanggil rutin tunda. Lamanya tunda akan mempengaruhi kecepatan perputaran motor. Semakin lama maka tunda, maka perputaran motor akan semakin lambat. Perintah berikutnya adalah Rl a,perintah ini akan memutar nilai yang ada pada accumulator (a), seperti tampak pada tabel di bawah ini :


(36)

Rl

a 0 0 1 0 0 0 1 0

Dst...

Nilai pada accumulator (a) yang awalnya 11h, setelah mendapat perintah Rl a, maka nilai pada accumulator (a) akan merubah menjadi 22h. Kemudian program akan melihat apakah nilai pada R0 sudah nol atau belum, jika nilai pada R0 belum nol, yang berarti palang belum terbuka lebar, maka program akan kembali ke rutin buka palang untuk terus membuka palang. Nilai yang ada pada accumulator (a), akan kembali diisikan ke port 0, maka nilai di port 0 akan berubah menjadi 22h, ini berarti P0.1 dan P0.5 mendapatkan logika high, sedangkan yang lainnya mendapatkan logika low, seperti tabel di bawah ini :

P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0

P0 0 0 1 0 0 0 1 0

Sebelumnya telah dibahas bahwa P0.0, P0.1, P0.2, dan P0.3 dihubungkan ke masukan driver motor stepper, dengan program di atas maka P0.0, P0.1, P0.2, dan P0.3 akan mendapatkan nilai high (1) secara bergantian. Hal ini menyebabkan motor stepper akan berputar membuka palang. Palang akan terus dibuka sampai nilai pada r0 menjadi nol, yang berarti pintu telah terbuka lebar maka program akan melanjutkan ke baris berikutnya, yaitu mengisi port 0 dengan nilai 0h, yang merupakan perintah untuk menghentikan perputaran motor.

Hal yang sama juga berlaku ketika motor berputar untuk menutup palang, perbedaannya hanya pada perintah rotate. Jika pada perintah buka pintu digunakan rotate left ( Rl ), maka pada perintah tutup pintu digunakan perintah rotate right ( Rr). Perputaran perintah Rr diperlihatkan pada table berikut,


(37)

a 1 0 0 0 1 0 0 0 R r

a 0 1 0 0 0 1 0 0


(38)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

 Dengan menggunakan motor stepper apakah dapat bergerak atau tidak.  Dengan memberikan program dan mikrokontroler, maka mikrokontroler

dapat berkomunikasi dengan driver stepper motor , sehingga mikrokontroler dapat melaksanakan perintah-perintah yang diberikan.

5.2 Saran

 Komunikasi paralel antara mikrokontroler membutuhkan kabel yang banyak. Sebaiknya rangkaian ini dikembangkan dengan menggunakan komunikasi secara serial, sehingga jumlah kabel yang digunakan lebih sedikit.


(39)

5V 10uF 2 1 30pF 30pF

XTAL 12 MHz

AT89S51 P0.3 (AD3) P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) Vcc P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) RST EA/ VPP P3.0 (RXD) P3.1 (TXD) P3.2 (INT0) P3.3 (INT1) P3.4 (T0) ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4 (A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P3.6 (WR) P3.5 (T1) P3.7 (RD) XTAL2 XTAL1 GND P2.0 (A8)

1 2 3 4 5 6 7 8 40 39 38 37 36 35 34 33 9 10 11 12 13 14 15 32 31 30 29 28 27 26 16 17 18 19 20 25 24 23 22 21

4.7k2SC945

Relay VCC 12V VCC 12V VCC 12V VCC 12V opto 1.0k100nF 4.7kX3 100V_100W PLN 4.7k2SC945 Relay opto 1.0k100nF 4.7kX2 100V_100W PLN 4.7k2SC945

Relay VCC 12V VCC 12V VCC 12V VCC 12V opto 1.0k100nF 4.7kMikrokontroler X4 100V_100W PLN

4.7k2SC945

Relay opto 1.0k100nF 4.7kX5 100V_100W PLN VCC 12V VCC 12V

4.7k2SC945

Relay opto 1.0k100nF 4.7kX6 100V_100W PLN VCC 12V VCC 12V

4.7k2SC945

Relay opto 1.0k100nF 4.7kX7 100V_100W PLN DSUB25M Vreg LM7805CT INOUT TIP32C 100 1 uF 1000 uF

220 V AC

0 V

5 Volt DC

0 Volt 12 Volt DC

VCC 12V

VCC 12V

4.7k2SC945

Relay opto 1.0k100nF 4.7kX8 100V_100W PLN VCC 12V VCC 12V

4.7k2SC945

Relay opto 1.0k100nF 4.7kX9 100V_100W PLN

Tip 122 Tip 122

VCC 12V MOTOR AT89S51 (P0.0) AT89S51 (P0.2) Stepper VCC 12V

Tip 122 Tip 122

1.0k1.0kAT89S51 (P0.1) 1.0k1.0kAT89S51 (P0.3)


(1)

Cpl P2.7 Acall tunda sjmp loop tunda:

mov r7,#255 tnd:

mov r6,#255 djnz r6,$ djnz r7,tnd ret

Program di atas akan mengubah logika yang ada pada P2.7 selama selang waktu tunda. Jika logika pada P2.7 high maka akan diubah menjadi low, demikian juga sebaliknya jika logika pada P2.7 low maka akan diubah ke high, demikian seterusnya.

Logika low akan mengaktifkan transistor sehingga LED akan menyala dan logika high akan menonaktifkan transistor, sehingga LED padam. Dengan demikian program ini akan membuat LED berkedip terus-menerus. Jika LED telah berkedip terus menerus sesuai dengan program yang diinginkan, maka rangkaian mikrokontroler telah berfungsi dengan baik.

4.5. Pengujian rangkaian driver motor stepper

Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian driver motor stepper ini dengan rangkaian mikrokontroler AT89S51, kemudian memberikan program sederhana untuk mengendalikan perputaran motor stepper tersebut.


(2)

Program yang diberikan pada mikrokontroler untuk memutar motor stepper adalah sebagai berikut :

mov a,#11h Mov r0,#100 Buka_Palang:

mov P0,a acall tunda Rl a

djnz r0,buka_palang mov P0,#0h

Program diawali dengan memberikan nilai 11h pada accumulator (a), kemudian program akan memasuki rutin buka pintu. Nilai a diisikan ke port 0, sehingga sekarang nilai port 0 adalah 11h, ini berarti P0.0 dan P0.4 mendapatkan logika high sedangkan yang lainnya mendapatkan logika low, seperti tabel di bawah ini :

P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0

P0 0 0 0 1 0 0 0 1

Program dilanjutkan dengan memanggil rutin tunda. Lamanya tunda akan mempengaruhi kecepatan perputaran motor. Semakin lama maka tunda, maka perputaran motor akan semakin lambat. Perintah berikutnya adalah Rl a,perintah ini akan memutar nilai yang ada pada accumulator (a), seperti tampak pada tabel di bawah ini :


(3)

Rl

a 0 0 1 0 0 0 1 0

Dst...

Nilai pada accumulator (a) yang awalnya 11h, setelah mendapat perintah Rl a,

maka nilai pada accumulator (a) akan merubah menjadi 22h. Kemudian program akan melihat apakah nilai pada R0 sudah nol atau belum, jika nilai pada R0 belum nol, yang berarti palang belum terbuka lebar, maka program akan kembali ke rutin buka palang untuk terus membuka palang. Nilai yang ada pada accumulator (a), akan kembali diisikan ke port 0, maka nilai di port 0 akan berubah menjadi 22h, ini berarti P0.1 dan P0.5 mendapatkan logika high, sedangkan yang lainnya mendapatkan logika low, seperti tabel di bawah ini :

P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0

P0 0 0 1 0 0 0 1 0

Sebelumnya telah dibahas bahwa P0.0, P0.1, P0.2, dan P0.3 dihubungkan ke masukan driver motor stepper, dengan program di atas maka P0.0, P0.1, P0.2, dan P0.3 akan mendapatkan nilai high (1) secara bergantian. Hal ini menyebabkan motor stepper akan berputar membuka palang. Palang akan terus dibuka sampai nilai pada r0 menjadi nol, yang berarti pintu telah terbuka lebar maka program akan melanjutkan ke baris berikutnya, yaitu mengisi port 0 dengan nilai 0h, yang merupakan perintah untuk menghentikan perputaran motor.

Hal yang sama juga berlaku ketika motor berputar untuk menutup palang, perbedaannya hanya pada perintah rotate. Jika pada perintah buka pintu digunakan rotate left ( Rl ), maka pada perintah tutup pintu digunakan perintah rotate right ( Rr). Perputaran perintah Rr diperlihatkan pada table berikut,


(4)

a 1 0 0 0 1 0 0 0 R r

a 0 1 0 0 0 1 0 0


(5)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

 Dengan menggunakan motor stepper apakah dapat bergerak atau tidak.

 Dengan memberikan program dan mikrokontroler, maka mikrokontroler dapat berkomunikasi dengan driver stepper motor , sehingga mikrokontroler dapat melaksanakan perintah-perintah yang diberikan.

5.2 Saran

 Komunikasi paralel antara mikrokontroler membutuhkan kabel yang banyak. Sebaiknya rangkaian ini dikembangkan dengan menggunakan komunikasi secara serial, sehingga jumlah kabel yang digunakan lebih sedikit.


(6)

5V 10uF 2 1 30pF 30pF

XTAL 12 MHz

AT89S51 P0.3 (AD3) P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) Vcc P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) RST EA/ VPP P3.0 (RXD) P3.1 (TXD) P3.2 (INT0) P3.3 (INT1) P3.4 (T0) ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4 (A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P3.6 (WR) P3.5 (T1) P3.7 (RD) XTAL2 XTAL1 GND P2.0 (A8) 1 2 3 4 5 6 7 8 40 39 38 37 36 35 34 33 9 10 11 12 13 14 15 32 31 30 29 28 27 26 16 17 18 19 20 25 24 23 22 21

4.7k2SC945

Relay VCC 12V VCC 12V VCC 12V VCC 12V opto 1.0k100nF 4.7kX3 100V_100W PLN 4.7k2SC945 Relay opto 1.0k100nF 4.7kX2 100V_100W PLN 4.7k2SC945

Relay VCC 12V VCC 12V VCC 12V VCC 12V opto 1.0k100nF 4.7kMikrokontroler X4 100V_100W PLN

4.7k2SC945

Relay opto 1.0k100nF 4.7kX5 100V_100W PLN VCC 12V VCC 12V

4.7k2SC945

Relay opto 1.0k100nF 4.7kX6 100V_100W PLN VCC 12V VCC 12V

4.7k2SC945

Relay opto 1.0k100nF 4.7kX7 100V_100W PLN DSUB25M Vreg LM7805CT INOUT TIP32C 100 1 uF 1000 uF

220 V AC

0 V

5 Volt DC

0 Volt 12 Volt DC

VCC 12V

VCC 12V

4.7k2SC945

Relay opto 1.0k100nF 4.7kX8 100V_100W PLN VCC 12V VCC 12V

4.7k2SC945

Relay opto 1.0k100nF 4.7kX9 100V_100W PLN

Tip 122 Tip 122

VCC 12V MOTOR AT89S51 (P0.0) AT89S51 (P0.2) Stepper VCC 12V

Tip 122 Tip 122

1.0k1.0kAT89S51 (P0.1) 1.0k1.0kAT89S51 (P0.3)