Perancangan Drive Lampu Dan Sensor Arus Sebagai Feed Back Berbasis Mikrokontroler AT89S51

(1)

PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI

FEED BACK BERBASIS MIKROKONTROLER AT89S51

LAPORAN AKHIR STUDI

INDAH SINAGA

042408046

PROGRAM STUDI D_3 FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2007


(2)

PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS MIKROKONTROLER AT89S51

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Ahli Madya

INDAH SINAGA 042408046

PROGRAM STUDI D-3 FISIKA INSTRUMENTASI DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2007


(3)

PERSETUJUAN

Judul : PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS

MIKROKONTROLER AT89S51

Kategori : TUGAS AKHIR

Nama : INDAH SINAGA

Nomor Induk Mahasiswa : 042408046

Program Studi : D3 FISIKA INSTRUMENTASI Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Juli 2007

Ketua Program Studi Dosen Pembimbing

D3 Fisika Instrumentasi

Dr. Marhaposan Situmorang. M.Sc Drs. Nasruddin MN, M.Eng.Sc


(4)

PERNYATAAN

PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS MIKROKONTROLER AT89S51

TUGAS AKHIR

Saya mengaku bahwa Laporan Akhir Studi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing – masing disebutkan sumbernya.

Medan, Juli 2007

INDAH SINAGA 042408046


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa yang telah melimpahkan rahmat dan hidayahnya, juga yang telah memberikan kesehatan, pengetahuan serta pengalaman pada penulis, sehingga penulisan laporan Akhir Studi dengan judul “PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS MIKROKONTROLER AT89S51”, ini selesai pada waktunya.

Dalam Kesempatan ini penulis ingin mengucapkan yang sedalam – dalamnya kepada Ayahanda yang tercinta E.K Sinaga yang telah begitu banyak memberikan dukungan baik moril maupun materil kepada penulis dalam menyelesaikan laporan Akhir Studi ini. kakanda Nova, Hotma dan keluarganya, abang Viktor dan keluarganya yang begitu besar memberikan dukungan kepada penulis. Ucapan terimakasih juga ditujukan kepada Bapak DR. Eddy Marlianto, M.Sc selaku Dekan FMIPA USU, Bapak DR. Marhaposan Situmorang, M.Sc selaku ketua program studi Fisika Instrumentasi, Bapak Drs, Nasruddin MN, M.Eng.Sc selaku Dosen Pembimbing yang telah banyak memberikan bimbingan, petunjuk dan pengarahan kepada penulis dalam menyelesaikan Laporan Akhir Studi ini, Seluruh Dosen yang mengajar pada program studi Fisiki Instrumentasi, Sahabat satu gerejaku (GKPS Marendal) dan sahabat stambuk 2004 Fisika Instrumentasi yang telah banyak memberikan dukungan dan doa kepada penulis, terima kasih banyak untuk semuanya. Semoga Tuhan akan membalasnya.

DAFTAR GAMBAR


(6)

Gambar 2.1.3 Peta register Fungsi Khusus – SFR 9 Gambar 2.1.3i IC Mikrokontroler AT89S51 12

Gambar 2.1.4a Diagram Motor Langkah 15

Gambar 2.1.4b Pemberian data/pulsa pada motor stepper 16 Gambar 2.2.2 8051 Editor, Assembler, Simulator (IDE) 21 Gambar 2.2.3 ISP-Flash Programmer 3.0a 22

Gambar 3.1 Diagram Blok Rangkaian 23

Gambar 3.2 Rangkaian Power Supply (PSA) 24 Gambar 3.3 Rangkaian Mikrokontroler AT89S51 26 Gambar 3.4 Rangkaian Pengendali Lampu 27

Gambar 3.5 Rangkaian Sensor Arus 29

Gambar 3.6 Rangkaian antar muka parallel port

dengan mikrokontroler AT89S51 30

DAFTAR TABEL

Halaman Tabel 2.1.3 Port yang mempunyai Fungsi 13 Tabel 4.4 Hasil pengujian tegangan 50


(7)

Tabel 4.5(b) R1a,akan memutar nilai yang ada pada accumulator 51 Tabel 4.5(c) P0.1 dan P0.5 mendapatkan logika hogh

dan yang lainnya logika low 52

DAFTAR ISI

Halaman

LEMBAR JUDUL i

LEMBAR PERSETUJUAN ii

LEMBAR PERNYATAAN iii

PENGHARGAAN iv

DAFTAR ISI v

DAFTAR TABEL vi


(8)

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Tujuan Penulisan 3

1.4 Batasan Masalah 3

1.5 Sistematika Penulisan 3

BAB 2 LANDASAN TEORI 5

2.1 Perangkat Keras 5

2.1.1 Arsitektur Mikrokontroler AT89S51 5

2.1.2 Kontruksi AT89S51 6

2.1.3 SFR pada keluarga 51 8

2.1.4 Motor Langkah (Stepper) 14

2.2 Perangkat Lunak 16

2.2.1 Bahasa Assembly MCS-51 16

2.2.2 Software 8051 Editor,

Assembler, Simulator (IDE) 21

2.2.3 Software Downloader 22

BAB 3 PERANCANGAN DAN PEMROGRAMAN 23

3.1 Diagram Blok 23

3.2 Perancangan Rangkaian PSA 24

3.3 Rangkaian Mikrokontroler AT89S51 26 3.4 Perancangan Rangkaian Pengendali Lampu 27 3.5 Perancangan Rangkaian Sensor Arus 29 3.6 Perancangan Rangkaian Antar muka Paralel Port 30

BAB 4 PENGUJIAN DAN ANALISA SISTEM 47

4.1 Pengujian Rangkaian Catu Daya 47 4.2 Pengujian Rangkaian Catu Daya 47 4.3 Pengujian Rangkaian Pengendali Lampu 48 4.4 Pengujian Rangkaian Sensor Arus 50 4.5 Pengujian Rangkaian Driver Motor Stepper 50


(9)

BAB 5 KESIMPULAN DAN SARAN 54

5.1 Kesimpulan 54

5.2 Saran 54

DAFTAR PUSTAKA 55

BAB 1 PENDAHULUAN


(10)

PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI

FEED BACK BERBASIS MIKROKONTROLER AT89S51

LAPORAN AKHIR STUDI

INDAH SINAGA

042408046

PROGRAM STUDI D_3 FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2007


(11)

PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS MIKROKONTROLER AT89S51

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Ahli Madya

INDAH SINAGA 042408046

PROGRAM STUDI D-3 FISIKA INSTRUMENTASI DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2007


(12)

PERSETUJUAN

Judul : PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS

MIKROKONTROLER AT89S51

Kategori : TUGAS AKHIR

Nama : INDAH SINAGA

Nomor Induk Mahasiswa : 042408046

Program Studi : D3 FISIKA INSTRUMENTASI Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Juli 2007

Ketua Program Studi Dosen Pembimbing

D3 Fisika Instrumentasi

Dr. Marhaposan Situmorang. M.Sc Drs. Nasruddin MN, M.Eng.Sc


(13)

PERNYATAAN

PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS MIKROKONTROLER AT89S51

TUGAS AKHIR

Saya mengaku bahwa Laporan Akhir Studi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing – masing disebutkan sumbernya.

Medan, Juli 2007

INDAH SINAGA 042408046


(14)

PENGHARGAAN

Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa yang telah melimpahkan rahmat dan hidayahnya, juga yang telah memberikan kesehatan, pengetahuan serta pengalaman pada penulis, sehingga penulisan laporan Akhir Studi dengan judul “PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS MIKROKONTROLER AT89S51”, ini selesai pada waktunya.

Dalam Kesempatan ini penulis ingin mengucapkan yang sedalam – dalamnya kepada Ayahanda yang tercinta E.K Sinaga yang telah begitu banyak memberikan dukungan baik moril maupun materil kepada penulis dalam menyelesaikan laporan Akhir Studi ini. kakanda Nova, Hotma dan keluarganya, abang Viktor dan keluarganya yang begitu besar memberikan dukungan kepada penulis. Ucapan terimakasih juga ditujukan kepada Bapak DR. Eddy Marlianto, M.Sc selaku Dekan FMIPA USU, Bapak DR. Marhaposan Situmorang, M.Sc selaku ketua program studi Fisika Instrumentasi, Bapak Drs, Nasruddin MN, M.Eng.Sc selaku Dosen Pembimbing yang telah banyak memberikan bimbingan, petunjuk dan pengarahan kepada penulis dalam menyelesaikan Laporan Akhir Studi ini, Seluruh Dosen yang mengajar pada program studi Fisiki Instrumentasi, Sahabat satu gerejaku (GKPS Marendal) dan sahabat stambuk 2004 Fisika Instrumentasi yang telah banyak memberikan dukungan dan doa kepada penulis, terima kasih banyak untuk semuanya. Semoga Tuhan akan membalasnya.

DAFTAR GAMBAR


(15)

Gambar 2.1.3 Peta register Fungsi Khusus – SFR 9 Gambar 2.1.3i IC Mikrokontroler AT89S51 12

Gambar 2.1.4a Diagram Motor Langkah 15

Gambar 2.1.4b Pemberian data/pulsa pada motor stepper 16 Gambar 2.2.2 8051 Editor, Assembler, Simulator (IDE) 21 Gambar 2.2.3 ISP-Flash Programmer 3.0a 22

Gambar 3.1 Diagram Blok Rangkaian 23

Gambar 3.2 Rangkaian Power Supply (PSA) 24 Gambar 3.3 Rangkaian Mikrokontroler AT89S51 26 Gambar 3.4 Rangkaian Pengendali Lampu 27

Gambar 3.5 Rangkaian Sensor Arus 29

Gambar 3.6 Rangkaian antar muka parallel port

dengan mikrokontroler AT89S51 30

DAFTAR TABEL

Halaman Tabel 2.1.3 Port yang mempunyai Fungsi 13 Tabel 4.4 Hasil pengujian tegangan 50 Tabel 4.5(a) P0.0 dan P0.4 mendapatkan Logika High 51


(16)

Tabel 4.5(b) R1a,akan memutar nilai yang ada pada accumulator 51 Tabel 4.5(c) P0.1 dan P0.5 mendapatkan logika hogh

dan yang lainnya logika low 52

DAFTAR ISI

Halaman

LEMBAR JUDUL i

LEMBAR PERSETUJUAN ii

LEMBAR PERNYATAAN iii

PENGHARGAAN iv

DAFTAR ISI v

DAFTAR TABEL vi


(17)

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Tujuan Penulisan 3

1.4 Batasan Masalah 3

1.5 Sistematika Penulisan 3

BAB 2 LANDASAN TEORI 5

2.1 Perangkat Keras 5

2.1.1 Arsitektur Mikrokontroler AT89S51 5

2.1.2 Kontruksi AT89S51 6

2.1.3 SFR pada keluarga 51 8

2.1.4 Motor Langkah (Stepper) 14

2.2 Perangkat Lunak 16

2.2.1 Bahasa Assembly MCS-51 16

2.2.2 Software 8051 Editor,

Assembler, Simulator (IDE) 21

2.2.3 Software Downloader 22

BAB 3 PERANCANGAN DAN PEMROGRAMAN 23

3.1 Diagram Blok 23

3.2 Perancangan Rangkaian PSA 24

3.3 Rangkaian Mikrokontroler AT89S51 26 3.4 Perancangan Rangkaian Pengendali Lampu 27 3.5 Perancangan Rangkaian Sensor Arus 29 3.6 Perancangan Rangkaian Antar muka Paralel Port 30

BAB 4 PENGUJIAN DAN ANALISA SISTEM 47

4.1 Pengujian Rangkaian Catu Daya 47 4.2 Pengujian Rangkaian Catu Daya 47 4.3 Pengujian Rangkaian Pengendali Lampu 48 4.4 Pengujian Rangkaian Sensor Arus 50 4.5 Pengujian Rangkaian Driver Motor Stepper 50 4.6 Pengujian Rangkaian Sensor Kendaraan 52


(18)

BAB 5 KESIMPULAN DAN SARAN 54

5.1 Kesimpulan 54

5.2 Saran 54

DAFTAR PUSTAKA 55

BAB 1 PENDAHULUAN


(19)

Proyek Akhir Studi merupakan salah satu alternatif bagi mahasiswa semester akhir guna melengkapi studinya pada program D – III Jurusa Fisika Instrumentasi yaitu dengan menyusun Laporan Akhir Studi. Dalam menyusun laporan mahasiswa diberikan untuk membuat proyek Akhir Studi.

Dalam kesempatan ini penulis membuat Proyek Akhir Studi sehingga pada akhirnya nanti penulis mengharapkan keadaan proyek berfungsi sesuai dengan spesifikasi yang diinginkan dan Laporan Akhir Studi ini dapat bermanfaat bagi penulis dan bagi yang membahas Akhir Studi nanti.

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. Dimana kita lihat aplikasinya seperti gedung perkantoran atau ruko-ruko yang memiliki lantai lebih dari 5 tingkat, diperlukan waktu dan tenaga untuk dapat menghidupkan atau mematikan lampu karena sang operator harus melewati tangga atau pun lift. Tentunya


(20)

ini sangat melelahkan. Jadi dibuatlah satu ruangan yang didalamnya ada komputer dan alat pengendali lampu, agar operator dengan mudah mematikan ataupun menghidupkan lampu memakai komputer agar dapat mengetahui apakah lampu dalam keadaan hidup ataupun mati.

Untuk itu penulis ingin mencoba merancang suatu sistem yang dapat membantu mengatasi hal tersebut dan menuangkannya dalam bentuk laporan proyek dengan judul “PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS MIKROKONTROLER AT89S51”. Bahasa yang digunakan dalam pembahasan laporan ini adalah bahasa pemrograman visual basic dan Assembler.

1.2. Rumusan Masalah

Mengacu pada hal diatas, pada tugas tugas akhir ini Penulis akan merancang sistem Drive Lampu dan Sensor Arus sebagai Feed Back Berbasis Mikrokontroler AT89S51. Pada alat ini akan digunakan sebuah mikrokontroler AT89S51, sebuah PC, 8 buah lampu.

Mikrokontroler AT89S51 sebagai otak dari sistem, yang berfungsi mengendalikan semua peralatan elektronik. Sensor arus untuk mengetahui apakah lampu dalam keadaan menyala atau mati. Lampu sebagai contoh peralatan elektronik yang akan dikendalikan.

1.3 Tujuan Penulisan

Tujuan dilakukan Laporan ini adalah sebagai berikut:

1. Memanfaatkan mikrokontroller sebagai alat pengendali peralatan – peralatan elektronik seperti lampu.


(21)

2. Memanfaatkan personal komputer untuk menampilkan kondisi Lampu apakah dalam keadaan menyala atau mati .

1.4 Batasan Masalah

Mengacu pada hal diatas, Penulis akan merancang sebuah alat tentang Perancangan Drive Lampu dan Sensor arus sebagai Feed Back berbasis Mikrokontroler AT89S51 dengan memanfaatkan mikrokontroler, dengan batasan-batasan sebagai berikut :

1. Mikrokontroler yang digunakan adalah jenis AT89S51. 2. Lampu yang dikendalikan sebanyak 8 buah lampu pijar.

3. Bahasa program yang digunakan pada personal komputer adalah bahasa “Visual Basic”. Dan pada mikrokontroler bahasa yang digunakan adalah bahasa “Assembler”.

I.5 Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja sistem pengendalian Lampu dengan menggunakan mikrokontroler dan personal komputer, maka penulis menulis laporan ini sebagai berikut:

BAB 1. PENDAHULUAN

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


(22)

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), bahasa program yang digunakan. serta karekteristik dari komponen-komponen pendukung.

BAB 3. 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 4. 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 5. KESIMPULAN DAN SARAN

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

BAB 2


(23)

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


(24)

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


(25)

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.

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


(26)

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

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-nilai aktifnya adalah ‘1’. Berikut akan dijelaskan secara singkat SFR-SFR beserta fungsinya:


(27)

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

Gambar 2.1.3. Peta Register Fungsi Khusus – SFR (Special Function Register) Tanda (…) untuk SFR yang dijumpai di keluarga 51 dengan 3 Timer

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

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

c. Program Status Word (PSW)


(28)

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

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

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

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


(29)

Pasangan register (RCAP2H, RCAP21) 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), 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.

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


(30)

Gambar 2.1.3i. 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 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, por 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


(31)

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

Table 2.1.3 Port3 yang mempunyai fungsi

RST (pin 9)

Reset akan aktif dengan memberikan input high selama 2 cycle. ALE/PROG (pin 30)


(32)

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 progam yang ada pada memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt.

XTAL1 (pin 19)

Input untuk clock internal. XTAL2 (pin 18)

Output dari osilator.

2.1.4 Motor Langkah (Stepper)

Motor langkah (stepper) banyak digunakan dalam berbagai aplikasi, dipergunakan apabila dikehendaki jumlah putaran yang tepat atau di perlukan sebagian dari putaran motor. Suatu contoh dapat di jumpai 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 di jumpai dalam bidang industri atau untuk jenis motor langkah kecil dapat di gunakan dalam perancangan


(33)

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

Gambar 2.1.4 a) 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 berputar 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 di tentukan, maka rotor akan berhenti pada posisi terakhir. Jika kecepatan pengalihan tidak terlalu tinggi, maka slip akan dapat dihindari. Sehingga tidak di perlukan umpan balik (feedback) pada pengendalian motor langkah.

U

S A

D B

A C


(34)

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.2.1.4 b) 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 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 C

D A B


(35)

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

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.


(36)

Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :

...

ACALL TUNDA ...

TUNDA:

...

4. Instruksi RET

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,


(37)

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

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


(38)

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

...

11.Dan lain sebagainya

2.2.2 Software 8051 Editor, Assembler, Simulator (IDE)

Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Tampilannya seperti di bawah ini.

Gambar 2.2.2. 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


(39)

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

2.2.3 Software Downloader

Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan software ISP- Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya seperti gambar di bawah ini

Gambar 2.2.3. ISP- Flash Programmer 3.0a

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


(40)

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 3.1 Diagram Blok Rangkaian

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 dianggap oleh mikrokontroler sebagai perintah untuk mengerjakan sesuatu (mengaktipkan/menonaktipkan relay).

M

ikr

okont

rol

er

A

T

89S

5

1

Relay

Sensor arus Lampu

Relay

Sensor arus Driver stepper Personal

Computer (PC)


(41)

Langkah selanjutnya mikrokontroler akan membandingkan data yang masuk dengan data yang telah diprogramkan dalam mikrokontroler, kemudian mengerjakan perintah (mengaktipkan/menonaktipkan relay tertentu) sesuai dengan data yang diterima. Relay yang aktip 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 aktip 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 3.2 Rangkaian Power Supplay (PSA)

Trafo CT ini merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 12 volt AC sehingga relay hidup,trafo CT ini gunanya agar keluaran yang dihasilkan tetap 5 Volt. Dioda yang sebagai penyearah

Vreg LM7805CT

IN OUT

TIP32C

100฀

100uF

330฀

2200uF 1uF

220 V AC

0 V

5 Volt DC

0 Volt 12 Volt DC


(42)

memiliki tegangan masing-masing 0,6 V sehingga 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 aktip jika tegangan pada basis > 0,7 volt dari tegangan positip.

Tegangan positip yang dihubungkan ke emitor sebesar 12 volt, sehingga transistor akan aktip 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 aktip, 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 aktip, maka arus akan mengalir dari emitor ke kolektor. Pada transistor ini jika aktip, maka yang mengalir dari emitor ke kolektor adalah arusnya, sedangkan tegangannya tidak, sehingga tegangan pada kolektor tetap 5 volt.

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.


(43)

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

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.3 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 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 positip dan sebuah resistor 10 Kohm yang dihubungkan ke ground. Kedua komponen ini berfungsi agar programpada mikrokontroler dijalankan beberapa saat setelah power aktip. Lamanya waktu antara aktipnya power pada IC mikrokontroler dan aktipnya program adalah sebesar perkalian antara kapasitor dan resistor tersebut. Jika dihitung maka lama waktunya adalah :


(44)

4.7k

2SC945

Relay

VCC 12V

Sensor Arus Lampu Beban

Mikrokontroler

220 V PLN

t = R x C = 10 Kohm x 10 µF = 1 mdetik

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

Pin 17 yang merupakan P3.7 dihubungkan dengan transistor dan sebuah LED. Ini dilakukan hanya untuk menguji apakan rangkaian minimum mikrokontroller AT89S51 sudah bekerja atau belum. Dengan memberikan program sederhana pada mikrokontroller 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.

3.4. Perancangan Rangkaian Pengendali Lampu.

Rangkaian pengendali lampu ini berfungsi untuk menghidupkan/ mematikan lampu beban. Rangkaian pengendali lampu ini ditunjukkan pada gambar berikut ini :

Gambar 3.4 Rangkaian pengendali lampu

Komponen utama dari rangkaian ini adalah relay. Relay ini memisahkan tegangan rendah dari rangkaian dengan tegangan tinggi dari lampu beban yang dihubungkan dengan sumber tegangan 220 volt PLN.


(45)

Relay merupakan salah satu komponen elektronik yang terdiri dari lempengan logam sebagai saklar dan kumparan yang berfungsi untuk menghasilkan medan magnet. Pada rangkaian ini digunakan relay 12 volt, ini berarti jika positip relay (kaki 1) dihubungkan ke sumber tegangan 12 volt dan negatip relay (kaki 2) dihubungkan ke ground, maka kumparan akan menghasilkan medan magnet, dimana medan magnet ini akan menarik logam yang mengakibatkan saklar terhubung.

Pada rangkaian ini untuk mengaktipkan atau menon-aktipkan relay digunakan transistor tipe NPN. Dari gambar dapat dilihat bahwa negatip relay dihubungkan ke kolektor dari transistor NPN (2SC945), ini berarti jika transistor dalam keadaan aktip maka kolektor akan terhubung ke emitor dimana emitor langsung terhubung ke ground yang menyebabkan tegangan di kolektor menjadi 0 volt, keadaan ini akan mengakibatkan relay aktip. Sebaliknya jika transistor tidak aktip, maka kolektor tidak terhubung ke emitor, sehingga tegangan pada kolektor menjadi 12 volt, keadaan ini menyebabkan tidak aktip.

Kumparan pada relay akan menghasilkan tegangan singkat yang besar ketika relay dinon-aktipkan dan ini dapat merusak transistor yang ada pada rangkaian ini. Untuk mencegah kerusakan pada transistor tersebut sebuah dioda harus dihubungkan ke relay tersebut. Dioda dihubungkan secara terbalik sehingga secara normal dioda ini tidak menghantarkan. Penghantaran hanya terjadi ketika relay dinonaktipkan, pada saat ini arus akan terus mengalir melalui kumparan dan arus ini akan dialirkan ke dioda. Tanpa adanya dioda arus sesaat yang besar itu akan mengalir ke transistor, yang mengakibatkan kerusakan pada transistor.

Input dari rangkaian ini dihubungkan ke mikrokontroler, sehingga lampu beban dapat dihidupkan/ dimatikan dengan menggunakan program yang diisikan ke IC mikrokontroler tersebut.


(46)

opto

Relay

1.0k100nF

4.7kVCC

5V

Mikrokontroler Lampu Beban

Output dari relay dihubungkan ke lampu beban dan yang satunya lagi dihubungkan ke sensor arus, sehingga dengan demikian dapat diketahui apakah lampu beban dalam keadaan hidup atau mati.

3.5. Perancangan Rangkaian Sensor Arus

Rangkaian sensor arus ini berfungsi untuk mengetahui apakah lampu dalam keadaan hidup atau mati. Rangkaian sensor arus ditunjukkan oleh gambar di bawah ini :

Gambar 3.5. Rangkaian Sensor Arus.

Rangkaian ini terdiri dari beberapa dioda yang dirangkai secara seri. Untuk satu dioda diperlukan tegangan 0,6 volt untuk menembusnya, sehingga untuk 4 dioda diperlukan tegangan sekitar 2,4 volt. Tegangan ini yang diambil sebagai indikator arus yang mengalir dalam dioda. Tegangan ini kemudian disearahkan oleh jembatan dioda. Dari jembatan dioda tegangan diratakan oleh kapasitor 100 nF. Tegangan ini kemudian diinputkan ke opto coupler. Opto coupler merupakan komponen elektronika yang terdiri dari sebuah LED dan phototransistor, phototransistor ini dihubungkan ke mikrokontroler untuk menyerap cahaya yang berasal dari led sehingga jika lED menyala, maka phototransistor akan aktip.


(47)

Ketika lampu menyala maka akan ada tegangan 2,4 volt pada rangkaian dioda, tegangan ini akan menghidupkan LED dan mengaktipkan pototransistor, sehingga tegangan kolektor pada opto coupler akan jatuh menjadi 0 volt. Perubahan tegangan ini yang merupakan indikator bahwasannya lampu beban dalam keadaan hidup. Output dari rangkaian ini dihubungkan ke mikrokontroler, sehingga mikrokontroler dapat mengetahui apakah lampu beban atau kipas dalam keadaan hidup atau mati.

Perancangan program:

program yang digunakan dalam proyek ini adalah program visual basic untk interface komputer ke rangkaian dan asssembler untuk mikrokontroller 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 Command1_Click() End Sub

Private Sub Hidup_All_Click() PortOut &H378, &H19

End Sub

Private Sub Lampu1_Hidup_Click() PortOut &H378, &H11


(48)

End Sub

Private Sub Lampu1_Mati_Click() PortOut &H378, &H21

End Sub

Private Sub Lampu2_Hidup_Click() PortOut &H378, &H12

End Sub

Private Sub Lampu2_Mati_Click() PortOut &H378, &H22

End Sub

Private Sub Lampu3_Hidup_Click() PortOut &H378, &H13

End Sub

Private Sub Lampu3_Mati_Click() PortOut &H378, &H23

End Sub

Private Sub Lampu4_Hidup_Click() PortOut &H378, &H14

End Sub

Private Sub Lampu4_Mati_Click() PortOut &H378, &H24

End Sub

Private Sub Lampu5_Hidup_Click() PortOut &H378, &H15


(49)

Private Sub Lampu5_Mati_Click() PortOut &H378, &H25

End Sub

Private Sub Lampu6_Hidup_Click() PortOut &H378, &H16

End Sub

Private Sub Lampu6_Mati_Click() PortOut &H378, &H26

End Sub

Private Sub Lampu7_Hidup_Click() PortOut &H378, &H17

End Sub

Private Sub Lampu7_Mati_Click() PortOut &H378, &H27

End Sub

Private Sub Lampu8_Hidup_Click() PortOut &H378, &H18

End Sub

Private Sub Lampu8_Mati_Click() PortOut &H378, &H28

End Sub

Private Sub Mati_All_Click() PortOut &H378, &H29 End Sub


(50)

PortOut &H378, &H31 Sleep 100

Nilai1 = Inp(&H379) If Nilai1 = 127 Then Status1 = "Mati" Else

Status1 = "Nyala" End If

End Sub

Private Sub StatusLampu2_Click() PortOut &H378, &H32

Sleep 100

Nilai2 = Inp(&H379) If Nilai2 = 127 Then Status2 = "Mati" Else

Status2 = "Nyala" End If

End Sub

Private Sub StatusLampu3_Click() PortOut &H378, &H33

Sleep 100

Nilai3 = Inp(&H379) If Nilai3 = 127 Then Status3 = "Mati"


(51)

Else

Status3 = "Nyala" End If

End Sub

Private Sub StatusLampu4_Click() PortOut &H378, &H34

Sleep 100

Nilai4 = Inp(&H379) If Nilai4 = 127 Then Status4 = "Mati" Else

Status4 = "Nyala" End If

End Sub

Private Sub StatusLampu5_Click() PortOut &H378, &H35

Sleep 100

Nilai5 = Inp(&H379) If Nilai5 = 127 Then Status5 = "Mati" Else

Status5 = "Nyala" End If

End Sub


(52)

PortOut &H378, &H36 Sleep 100

Nilai6 = Inp(&H379) If Nilai6 = 127 Then Status6 = "Mati" Else

Status6 = "Nyala" End If

End Sub

Private Sub StatusLampu7_Click() PortOut &H378, &H37

Sleep 100

Nilai7 = Inp(&H379) If Nilai7 = 127 Then Status7 = "Mati" Else

Status7 = "Nyala" End If

End Sub

Private Sub StatusLampu8_Click() PortOut &H378, &H38

Sleep 100

Nilai8 = Inp(&H379) If Nilai8 = 127 Then Status8 = "Mati"


(53)

Else

Status8 = "Nyala" End If

End Sub

Program yang diisikan ke dalam mikrokontroller Lampu1 Bit P0.7

Lampu2 Bit P0.6 Lampu3 Bit P0.5 Lampu4 Bit P0.4 Lampu5 Bit P0.3 Lampu6 Bit P0.2 Lampu7 Bit P0.1 Lampu8 Bit P0.0 Stepper1 bit P3.3 Stepper2 bit P3.4 Stepper3 bit P3.5 Stepper4 bit P3.6 Sensor1 Bit P3.0 Sensor2 Bit P3.1 Mov P0,#0

Clr Stepper1 Clr Stepper2 Clr Stepper3 Clr Stepper4


(54)

Utama: mov a,p1

cjne a,#11h,Hidupkan_Lampu2

Setb lampu1 ; hidupkan lampu 1 Sjmp Utama

Hidupkan_Lampu2: mov a,p1

cjne a,#12h,Hidupkan_Lampu3 Setb lampu2

Sjmp Utama Hidupkan_Lampu3: mov a,p1

cjne a,#13h,Hidupkan_Lampu4 Setb lampu3

Sjmp Utama Hidupkan_Lampu4: mov a,p1

cjne a,#14h,Hidupkan_Lampu5 Setb lampu4

Sjmp Utama Hidupkan_Lampu5: mov a,p1

cjne a,#15h,Hidupkan_Lampu6 Setb lampu5


(55)

Hidupkan_Lampu6: mov a,p1

cjne a,#16h,Hidupkan_Lampu7 Setb lampu6

Sjmp Utama Hidupkan_Lampu7: mov a,p1

cjne a,#17h,Hidupkan_Lampu8 Setb Lampu7

Sjmp Utama Hidupkan_Lampu8: mov a,p1

cjne a,#18h,Hidupkan_Lampu_all Setb Lampu8

Sjmp Utama Hidupkan_Lampu_all: mov a,p1

cjne a,#19h,Buka_pintu mov p0,#0ffh

Sjmp Utama Matikan_Lampu1: mov a,p1

cjne a,#21h,Matikan_Lampu2 Clr lampu1


(56)

Matikan_Lampu2: mov a,p1

cjne a,#22h,Matikan_Lampu3 Clr lampu2

ljmp Utama Matikan_Lampu3: mov a,p1

cjne a,#23h,Matikan_Lampu4 Clr lampu3

ljmp Utama Matikan_Lampu4: mov a,p1

cjne a,#24h,Matikan_Lampu5 Clr lampu4

ljmp Utama Matikan_Lampu5: mov a,p1

cjne a,#25h,Matikan_Lampu6 Clr lampu5

ljmp Utama Matikan_Lampu6: mov a,p1

cjne a,#26h,Matikan_Lampu7 Clr lampu6


(57)

Matikan_Lampu7: mov a,p1

cjne a,#27h,Matikan_Lampu8 Clr lampu7

ljmp Utama Matikan_Lampu8: mov a,p1

cjne a,#28h,Matikan_Lampu_All Clr Lampu8

ljmp Utama Matikan_Lampu_All: mov a,p1

cjne a,#29h,Cek_Status1 Mov p0,#0

ljmp Utama Cek_Status1: mov a,p1

cjne a,#31h,Cek_Status2 Jb p2.7,nyala1

Clr p3.7 ljmp Utama nyala1: Setb P3.7 ljmp Utama Cek_Status2:


(58)

mov a,p1

cjne a,#32h,Cek_Status3 Jb p2.6,nyala2

Clr p3.7 ljmp Utama nyala2: Setb P3.7 ljmp Utama Cek_Status3: mov a,p1

cjne a,#33h,Cek_Status4 Jb p2.5,nyala3

Clr p3.7 ljmp Utama nyala3: Setb P3.7 ljmp Utama Cek_Status4: mov a,p1

cjne a,#34h,Cek_Status5 Jb p2.4,nyala4

Clr p3.7 ljmp Utama nyala4: Setb P3.7


(59)

ljmp Utama Cek_Status5: mov a,p1

cjne a,#35h,Cek_Status6 Jb p2.3,nyala5

Clr p3.7 ljmp Utama nyala5: Setb P3.7 ljmp Utama Cek_Status6: mov a,p1

cjne a,#36h,Cek_Status7 Jb p2.2,nyala6

Clr p3.7 ljmp Utama nyala6: Setb P3.7 ljmp Utama Cek_Status7: mov a,p1

cjne a,#37h,Cek_Status8 Jb p2.1,nyala7

Clr p3.7 ljmp Utama


(60)

nyala7: Setb P3.7 ljmp Utama Cek_Status8: mov a,p1

cjne a,#38h,Cek_Status9 Jb p2.0,nyala8

Clr p3.7 ljmp Utama nyala8: Setb P3.7 ljmp Utama Cek_Status9: mov a,p1

cjne a,#39h,Cek_Status10 Jb p3.0,nyala9

Clr p3.7 ljmp Utama nyala9: Setb P3.7 ljmp Utama Cek_Status10: mov a,p1

cjne a,#3ah,Balik_Utama Jb p3.1,nyala10


(61)

Clr p3.7 ljmp Utama nyala10: Setb P3.7 Balik_Utama: ljmp Utama tunda:

mov r7,#50 tnd:

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


(62)

BAB 4

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 volt meter 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 aktip dan sebaliknya LED akan mati jika transistor tidak aktip. Tipe transistor yang digunakan adalah PNP A733, dimana transistor ini akan aktip (saturasi) jika pada basis diberi tegangan 0 volt (logika low) dan transistor ini akan tidak aktip 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 :

Loop:


(63)

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 jiga sebaliknya jika logika pada P2.7 low maka akan diubah ke high, demikian seterusnya.

Logika low akan mengaktipkan transistor sehingga LED akan menyala dan logika high akan menonaktipkan 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.3 Pengujian Rangkaian Pengendali Lampu

Pengujian rangkaian pengendali lampu dapat dilakukan dengan memberikan tegangan 5 volt dan 0 volt pada basis transistor C945. Transistor C945 merupakan transistor jenis NPN, transistor jenis ini akan aktip jika pada basis diberi tegangan > 0,7 volt dan tidak aktip jika pada basis diberi tegangan < 0,7 volt. Aktipnya transistor akan mengaktipkan relay. Pada alat ini relay digunakan untuk menghidupkan/


(64)

mematikan lampu beban, dimana hubungan yang digunakan adalah normally open (NO), dengan demikian jika relay tidak aktip maka lampu beban akan mati, sebaliknya jika relay aktip, maka lampu beban akan menyala. Pengujian dilakukan dengan memberikan tegangan 5 volt pada basis transistor, jika relay aktip dan lan lampu beban menyala maka rangkaian ini telah berfungsi dengan baik.

Pengujian selanjutnya dilakukan dengan menghubungkan rangkaian relay tersebut ke mikrokontroler AT89S51, kemudian memberikan program sederhana ke mikrokontroler AT89S51. Seperti telah dijelaskan di atas bahwa transistor jenis NPN akan aktip apabila tegangan pada basis lebih besar dari 0,7 volt, dimana basis dihubungkan dengan P2.4 AT89S51. P2.4 akan memiliki tegangan sebesar 5 volt jika diset high (1) dan memiliki tegangan 0 volt jika diset low (0). Dengan demikian kita sudah dapat mengendalikan (menghidupkan/ mematikan) transistor melalui program.

Program yang harus diisikan untuk mengaktipkan transistor yang akan mengaktipkan relay, sehingga lampu hidup adalah sebagai berikut,

Setb P2.4

Dan untuk mematikan lampu maka program yang harus diisikan adalah,

Clr P2.4

Dengan demikian kita sudah dapat menghidupkan dan mematikan lampu melalui program.

Rangkaian ini dilengkapi dengan sebuah LED indikator, LED ini dihubungkan dengan transistor A733 yang akan aktip jika mendapatkan tegangan yang lebih kecil dari 4,2 volt. Jika transistor pertama (C945) aktip maka kolektornya akan mendapat tegangan 0 volt, hal ini akan menyebabkan transistor kedua (A733) aktip sehingga menyalakan LED indikator. Jadi LED indikator ini akan menyala jika relay aktip atau lampu menyala.


(65)

4.4. Pengujian Rangkaian Sensor Arus

Pengujian pada rangkaian dapat dilakukan dengan mengukur tegangan pada sensor arus. Dari hasil pengujian didapatkan tegangan sebagai berikut :

Tegangan saat beban hidup Tegangan saat beban mati

Tegangan pada sensor arus

2,4 volt 0,6 volt

Tegangan pada kolektor (optocoupler)

4,9 volt 0,3 volt

Tabel 4.4 Hasil pengujian tegangan

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Komputer dapat digunakan untuk mengendalikan untuk mengendalikan peralatan peralatan elektronik yang terhubung dengan komputer.

2. Dengan menggunakan dioda sebagai sensor arus, sehingga dapat diketahui apakah lampu beban sudah menyala dengan benar atau belum.

3. Dengan memberikan program ke komputer dan mikrokontroler, maka mikrokontroler dapat berkomunikasi dengan komputer, sehingga mikrokontroler dapat melaksanakan perintah perintah yang diberikan komputer.


(66)

5.2 Saran

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

DAFATAR PUSTAKA

1. Daryanto, Drs. “Teknik Elektronika”. Jakarta : Bumi Aksara.

2. Dr.Eddy Marlianto,M.Sc.2006. “Panduan Tata Cara Penulisan Tugas Akhir Fakultas Matematika Dan Ilmu Pengetahuan Alam. Universitas Sumatera Utara.

3. Drs.Pambudi Prasetya “Sistem Cepat Belajar Elektronika”.Amanah. Surabaya 4. Tim Lab Mikroprosesor Elektronika. 2006. “Pemrograman Mikrokontroler

AT89S51 dengan C/C++ dan Assemler. Yogyakarta: Andi.


(67)

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.7k? 2SC945 Relay VCC 12V VCC 12V VCC 12V VCC 12V opto 1.0k? 100nF 4.7k? X3 100V_100W PLN 4.7k? 2SC945 Relay opto 1.0k? 100nF 4.7k? X2 100V_100W PLN 4.7k? 2SC945

Relay VCC 12V VCC 12V VCC 12V VCC 12V opto 1.0k? 100nF 4.7k? Mikrokontroler X4 100V_100W PLN

4.7k? 2SC945

Relay opto 1.0k? 100nF 4.7k? X5 100V_100W PLN VCC 12V VCC 12V

4.7k? 2SC945

Relay opto 1.0k? 100nF 4.7k? X6 100V_100W PLN VCC 12V VCC 12V

4.7k? 2SC945

Relay opto 1.0k? 100nF 4.7k? X7 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.7k? 2SC945 Relay opto 1.0k? 100nF 4.7k? X8 100V_100W PLN VCC 12V VCC 12V 4.7k? 2SC945 Relay opto 1.0k? 100nF 4.7k? X9 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)


(68)

PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS MIKROKONTROLER AT89S51

TUGAS AKHIR

Saya mengaku bahwa Laporan Akhir Studi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing – masing disebutkan sumbernya.

Medan, Juli 2007

INDAH SINAGA NIM 042408046


(69)

LAPORAN AKHIR STUDI

INDAH SINAGA

042408046

PROGRAM STUDI D_3 FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2007


(70)

Judul : PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS

MIKROKONTROLER AT89S51

Kategori : TUGAS AKHIR

Nama : INDAH SINAGA

Nomor Induk Mahasiswa : 042408046

Program Studi : D3 FISIKA INSTRUMENTASI Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Juli 2007

Ketua Program Studi Dosen Pembimbing

D3 Fisika Instrumentasi

Dr. Marhaposan Situmorang. M.Sc Drs. Nasruddin MN, M.Eng.Sc


(71)

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Ahli Madya

INDAH SINAGA 042408046

PROGRAM STUDI D-3 FISIKA INSTRUMENTASI DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2007


(72)

Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa yang telah melimpahkan rahmat dan hidayahnya, juga yang telah memberikan kesehatan, pengetahuan serta pengalaman pada penulis, sehingga penulisan laporan Akhir Studi dengan judul “PERANCANGAN DRIVE LAMPU DAN SENSOR ARUS SEBAGAI FEED BACK BERBASIS MIKROKONTROLER AT89S51”, ini selesai pada waktunya.

Dalam Kesempatan ini penulis ingin mengucapkan yang sedalam – dalamnya kepada Ayahanda yang tercinta E.K Sinaga yang telah begitu banyak memberikan dukungan baik moril maupun materil kepada penulis dalam menyelesaikan laporan Akhir Studi ini. kakanda Nova, Hotma dan keluarganya, abang Viktor dan keluarganya yang begitu besar memberikan dukungan kepada penulis. Ucapan terimakasih juga ditujukan kepada Bapak DR. Eddy Marlianto, M.Sc selaku Dekan FMIPA USU, Bapak DR. Marhaposan Situmorang, M.Sc selaku ketua program studi Fisika Instrumentasi, Bapak Drs, Nasruddin MN, M.Eng.Sc selaku Dosen Pembimbing yang telah banyak memberikan bimbingan, petunjuk dan pengarahan kepada penulis dalam menyelesaikan Laporan Akhir Studi ini, Seluruh Dosen yang mengajar pada program studi Fisiki Instrumentasi, Sahabat satu gerejaku (GKPS Marendal) dan sahabat stambuk 2004 Fisika Instrumentasi yang telah banyak memberikan dukungan dan doa kepada penulis, terima kasih banyak untuk semuanya. Semoga Tuhan akan membalasnya.


(73)

Halaman Gambar 2.1.3 Peta register Fungsi Khusus – SFR 9 Gambar 2.1.3i IC Mikrokontroler AT89S51 12

Gambar 2.1.4a Diagram Motor Langkah 15

Gambar 2.1.4b Pemberian data/pulsa pada motor stepper 16 Gambar 2.2.2 8051 Editor, Assembler, Simulator (IDE) 21 Gambar 2.2.3 ISP-Flash Programmer 3.0a 22

Gambar 3.1 Diagram Blok Rangkaian 23

Gambar 3.2 Rangkaian Power Supply (PSA) 24 Gambar 3.3 Rangkaian Mikrokontroler AT89S51 26 Gambar 3.4 Rangkaian Pengendali Lampu 27

Gambar 3.5 Rangkaian Sensor Arus 29

Gambar 3.6 Rangkaian antar muka parallel port


(74)

Halaman Tabel 2.1.3 Port yang mempunyai Fungsi 13 Tabel 4.4 Hasil pengujian tegangan 50 Tabel 4.5(a) P0.0 dan P0.4 mendapatkan Logika High 51 Tabel 4.5(b) R1a,akan memutar nilai yang ada pada accumulator 51 Tabel 4.5(c) P0.1 dan P0.5 mendapatkan logika hogh


(75)

Halaman

LEMBAR JUDUL i

LEMBAR PERSETUJUAN ii

LEMBAR PERNYATAAN iii

PENGHARGAAN iv

DAFTAR ISI v

DAFTAR TABEL vi

DAFTAR GAMBAR vii

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Tujuan Penulisan 3

1.4 Batasan Masalah 3

1.5 Sistematika Penulisan 3

BAB 2 LANDASAN TEORI 5

2.1 Perangkat Keras 5

2.1.1 Arsitektur Mikrokontroler AT89S51 5

2.1.2 Kontruksi AT89S51 6

2.1.3 SFR pada keluarga 51 8

2.1.4 Motor Langkah (Stepper) 14

2.2 Perangkat Lunak 16

2.2.1 Bahasa Assembly MCS-51 16

2.2.2 Software 8051 Editor,

Assembler, Simulator (IDE) 21

2.2.3 Software Downloader 22

BAB 3 PERANCANGAN DAN PEMROGRAMAN 23

3.1 Diagram Blok 23


(76)

3.5 Perancangan Rangkaian Sensor Arus 29 3.6 Perancangan Rangkaian Antar muka Paralel Port 30

BAB 4 PENGUJIAN DAN ANALISA SISTEM 47

4.1 Pengujian Rangkaian Catu Daya 47 4.2 Pengujian Rangkaian Catu Daya 47 4.3 Pengujian Rangkaian Pengendali Lampu 48 4.4 Pengujian Rangkaian Sensor Arus 50 4.5 Pengujian Rangkaian Driver Motor Stepper 50 4.6 Pengujian Rangkaian Sensor Kendaraan 52

BAB 5 KESIMPULAN DAN SARAN 54

5.1 Kesimpulan 54

5.2 Saran 54


(77)

DAFATAR PUSTAKA

1. Daryanto, Drs. “Teknik Elektronika”. Jakarta : Bumi Aksara.

2. Dr.Eddy Marlianto,M.Sc.2006. “Panduan Tata Cara Penulisan Tugas Akhir Fakultas Matematika Dan Ilmu Pengetahuan Alam. Universitas Sumatera Utara. 3. Drs.Pambudi Prasetya “Sistem Cepat Belajar Elektronika”.Amanah. Surabaya 4. Tim Lab Mikroprosesor Elektronika. 2006. “Pemrograman Mikrokontroler

AT89S51 dengan C/C++ dan Assemler. Yogyakarta: Andi.


(78)

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), bahasa program yang digunakan. serta karekteristik dari komponen-komponen pendukung.

BAB 3. 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 4. 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 5. KESIMPULAN DAN SARAN

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

BAB 2


(79)

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


(80)

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


(81)

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.

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


(82)

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

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-nilai aktifnya adalah ‘1’. Berikut akan dijelaskan secara singkat SFR-SFR beserta fungsinya:


(1)

Clr p3.7 ljmp Utama nyala10: Setb P3.7 Balik_Utama: ljmp Utama tunda:

mov r7,#50 tnd:

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


(2)

BAB 4

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 volt meter 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 aktip dan sebaliknya LED akan mati jika transistor tidak aktip. Tipe transistor yang digunakan adalah PNP A733, dimana transistor ini akan aktip (saturasi) jika pada basis diberi tegangan 0 volt (logika low) dan transistor ini akan tidak aktip 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 :

Loop:


(3)

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 jiga sebaliknya jika logika pada P2.7 low maka akan diubah ke high, demikian seterusnya.

Logika low akan mengaktipkan transistor sehingga LED akan menyala dan logika high akan menonaktipkan 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.3 Pengujian Rangkaian Pengendali Lampu

Pengujian rangkaian pengendali lampu dapat dilakukan dengan memberikan tegangan 5 volt dan 0 volt pada basis transistor C945. Transistor C945 merupakan transistor jenis NPN, transistor jenis ini akan aktip jika pada basis diberi tegangan > 0,7 volt dan tidak aktip jika pada basis diberi tegangan < 0,7 volt. Aktipnya transistor akan mengaktipkan relay. Pada alat ini relay digunakan untuk menghidupkan/


(4)

mematikan lampu beban, dimana hubungan yang digunakan adalah normally open (NO), dengan demikian jika relay tidak aktip maka lampu beban akan mati, sebaliknya jika relay aktip, maka lampu beban akan menyala. Pengujian dilakukan dengan memberikan tegangan 5 volt pada basis transistor, jika relay aktip dan lan lampu beban menyala maka rangkaian ini telah berfungsi dengan baik.

Pengujian selanjutnya dilakukan dengan menghubungkan rangkaian relay tersebut ke mikrokontroler AT89S51, kemudian memberikan program sederhana ke mikrokontroler AT89S51. Seperti telah dijelaskan di atas bahwa transistor jenis NPN akan aktip apabila tegangan pada basis lebih besar dari 0,7 volt, dimana basis dihubungkan dengan P2.4 AT89S51. P2.4 akan memiliki tegangan sebesar 5 volt jika diset high (1) dan memiliki tegangan 0 volt jika diset low (0). Dengan demikian kita sudah dapat mengendalikan (menghidupkan/ mematikan) transistor melalui program.

Program yang harus diisikan untuk mengaktipkan transistor yang akan mengaktipkan relay, sehingga lampu hidup adalah sebagai berikut,

Setb P2.4

Dan untuk mematikan lampu maka program yang harus diisikan adalah,

Clr P2.4

Dengan demikian kita sudah dapat menghidupkan dan mematikan lampu melalui program.

Rangkaian ini dilengkapi dengan sebuah LED indikator, LED ini dihubungkan dengan transistor A733 yang akan aktip jika mendapatkan tegangan yang lebih kecil dari 4,2 volt. Jika transistor pertama (C945) aktip maka kolektornya akan mendapat tegangan 0 volt, hal ini akan menyebabkan transistor kedua (A733) aktip sehingga menyalakan LED indikator. Jadi LED indikator ini akan menyala jika relay aktip atau lampu menyala.


(5)

4.4. Pengujian Rangkaian Sensor Arus

Pengujian pada rangkaian dapat dilakukan dengan mengukur tegangan pada sensor arus. Dari hasil pengujian didapatkan tegangan sebagai berikut :

Tegangan saat beban hidup Tegangan saat beban mati Tegangan pada sensor

arus

2,4 volt 0,6 volt

Tegangan pada kolektor (optocoupler)

4,9 volt 0,3 volt

Tabel 4.4 Hasil pengujian tegangan

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Komputer dapat digunakan untuk mengendalikan untuk mengendalikan peralatan peralatan elektronik yang terhubung dengan komputer.

2. Dengan menggunakan dioda sebagai sensor arus, sehingga dapat diketahui apakah lampu beban sudah menyala dengan benar atau belum.

3. Dengan memberikan program ke komputer dan mikrokontroler, maka mikrokontroler dapat berkomunikasi dengan komputer, sehingga mikrokontroler dapat melaksanakan perintah perintah yang diberikan komputer.


(6)

5.2 Saran

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

DAFATAR PUSTAKA

1. Daryanto, Drs. “Teknik Elektronika”. Jakarta : Bumi Aksara.

2. Dr.Eddy Marlianto,M.Sc.2006. “Panduan Tata Cara Penulisan Tugas Akhir Fakultas Matematika Dan Ilmu Pengetahuan Alam. Universitas Sumatera Utara.

3. Drs.Pambudi Prasetya “Sistem Cepat Belajar Elektronika”.Amanah. Surabaya 4. Tim Lab Mikroprosesor Elektronika. 2006. “Pemrograman Mikrokontroler

AT89S51 dengan C/C++ dan Assemler. Yogyakarta: Andi.