PERANCANGAN DAN PEMBUATAN ALAT UNTUK
MENAIKAN SUHU PADA MINIATUR RUMAH KACA
BERBASIS MIKROKONTROLER AT89S51
TUGAS AKHIR
ASWAN AFIF
092408009
PROGRAM STUDI DIII FISIKA
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
PERANCANGAN DAN PEMBUATAN ALAT UNTUK
MENAIKAN SUHU PADA MINIATUR RUMAH KACA
BERBASIS MIKROKONTROLER AT89S51
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh gelar
Ahli Madya
PROGRAM STUDI D3 FISIKA
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2012
Judul : PERANCANGAN DAN PEMBUATAN ALAT UNTUK MENAIKKAN SUHU PADA MINIATUR RUMAH KACA BERBASIS MIKROKONTROLER AT89S51.
Kategori : TUGAS AKHIR Nama : ASWAN AFIF No Induk Mahasiswa : 092408009
Program Studi : DIPLOMA III (D3) FISIKA Departemen : FISIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (MIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, Juli 2012
Diketahui
Departemen Fisika FMIPA USU Pembimbing Ketua Program Studi D3 Fisika
PERNYATAAN
PERANCANGAN DAN PEMBUATAN ALAT UNTUK MENAIKKAN SUHU PADA MINIATUR RUMAH KACA BERBASIS
MIKROKONTROLER AT89S51
TUGAS AKHIR
Saya mengakui bahwa Laporan Tugas Akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2012
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Allah Subhanahuwata’ala, yang senantiasa melimpahkan karunia-Nya dan selalu memberikan kemudahan dan kelancaran sehingga penulis dapat menyelesaikan Tugas Akhir ini dalam waktu yang telah ditetapkan. Dan Sholawat beriring salam semoga senantiasa tercurahkan kepada Rasulullah sallallahu’alaihiwasalam selalu menjadi inspirasi dan teladan bagi penulis.
Pada kesempatan ini penulis mengucapkan banyak terima kasih penulis sampaikan kepada berbagai pihak yang telah banyak membantu penulis dalam penyelesaian Tugas Akhir ini yaitu kepada:
1. Bapak Dr. Sutarman, M.Sc selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
2. Ibu Dr. Susilawati, M.Sc selaku ketua Program studi D-III Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam.
3. Bapak Dr. H. Nasruddin MN, M. Eng. Sc. Selaku dosen pembimbing.
4. Bapak/ibu staf pengajar serta seluruh pegawai program studi D-III Fisika Fakultas Matemetika dan Ilmu Pengetahuan Alam.
5. Teristimewa Ayahanda Ahmad Hidayat dan Ibunda Nurhalmah yang telah banyak memberikan dukungan doa, moril, materil, serta sudah menjadi motivator.
7. Rekan – rekan seperjuangan FIN 09 , khususnya Ridho, Zulkarnain, iqbal, faisal, yogi, syahrial, bangkit, yang telah banyak memberi dukungan semangat dan kerja sama selama masa perkuliahan.
8. Sahabat-sahabat saya Dimas, ramadan, haditia, samsuri, roy, reza ozil, terimakasih atas motivasi, kritik dan sarannya
Penulis menyadari bahwa dalam penyusunan Tugas Akhir ini masih terdapat kekurangan maupun kesalahan. Untuk penulis sangat mengharapkan kritik dan saran dari semua pihak untuk penyempurnaan laporan ini.
Akhirnya penulis berharap semoga Tugas Akhir ini dapat bermanfaat bagi penulis dan pembaca, khususnya rekan-rekan mahasiswa lainnya yang mengikuti perkuliahan di Universitas Sumatera Utara.
Medan, Juli 2012
ABSTRAK
Telah dirancang dan dibuat sistem alat untuk menaikkan suhu pada miniatur rumah kaca berbasis mikrokontroler AT89S51. Sistem ini terdiri atas perangkat keras dan perangkat lunak. Perangkat keras terdiri atas sebuah mikrokontroler AT89S51, sensor LM35, ADC (Analog to Digital Converter) 0804, driver heater, sevent segment, rangkaian keypad. Perangkat lunak pada sistem ini dibuat dengan menggunakan program bahasa assembly. Untuk melakukan pengukuran suhu digunakan sensor LM 35. Hasil pengukuran data oleh LM 35 selanjutnya akan diolah oleh ADC 0804 menjadi data digital yang selanjutnya akan diproses oleh mikrokontroler AT89S51. Mikrokontroler AT89S51 sebagai otak dari system, yang berfungsi mengolah data yang masuk dari sensor, kemudian menampilkannya pada dispaly seven segment. Untuk memasukkan nilai suhu yang dipertahankan digunakan keypad. Jika suhu ruangan yang terdeteksi lebih kecil dari suhu referensi, maka mikrokontroler akan memerintahkan relay heater untuk menghidupkan heater .Sensor yang dipasang sebagai umpan balik (feedback) dalam system akan mengindra nilai suhu ruangan secara terus menerus (real time). Hasil pengujian suhu yang dapat dikendalikan maksimum sampai dengan 46º Celsius dengan waktu ± 4 menit.
DAFTAR ISI
Persetujuan ... i
Pernyataan ... ii
Kata Pengantar ...iii
Abstrak ... v
Daftar isi ... vi
Daftar Gambar ... ix
Daftar Tabel ... x
BAB I : PENDAHULUAN 1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 3
1.3 Maksud dan Tujuan Penulisan ... 3
1.4 Batasan Masalah... 4
1.5 Sistematika Penulisan ... 4
BAB II: LANDASAN TEORI 2.1 Perangkat Keras ... 7
2.1.1 Mikrokontroler AT89S51 ... 7
2.1.1.1 Kontruksi AT89S51 ... 10
2.1.1.2 Konfigurasi dan Fungsi Kaki Pin AT89S51... 13
2.1.1.3 Intruksi MCS-51 ... 16
2.1.2.1 Karakteristik IC ADC 0804 ... 25
2.1.2.2 Prinsip Kerja ADC 0804…… ... 27
2.1.2’3 Fungsi Pin Pada ADC 0804…… ... 31
2.1.3 Sensor Suhu LM 35 ... 32
2.1.4 seven segmen ... 34
2.1.5 Relay ... 35
2.1.6 Keypad 4x4 ... 36
2.2 Perangkat Lunak ... 37
2.2.1 Software 8051 Editor, Assembler, Simulator (IDE)…… ... 42
2.2.2 Software Downloader…… ... 43
BAB III: Rancangan Sistem 3.1 Diagram Blok Rangkaian ... 44
3.2 Perangkaian Power Supplay (PSA) ... 45
3.3 Rangkaian MIkrokontroler ... 46
3.4 Rangkaian Sensor Temperatur dan ADC ... 48
3.5 Rangkaian Display Seven Segmen ... 49
3.6 Rangkaian Relay ... 50
3.7 Perancangan Rangkaian Keypad ... 52
4.2 Pengujian Rangkaian Mikrokontroller AT89S51 ... 54
4.3 Pengujian Rangkaian ADC ... 56
4.4 Pengujian Rangkaian Display seven segmen... 57
4.5 Pengujian Rangkaian Relay ... 60
4.6 Pengujian Rangkaian Keypad ... 62
4.7 Pengujian Rangkaian Keseluruhan ... 64
BAB V: KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 66
DAFTAR GAMBAR
Gambar 2.1 Struktur Memori AT89S51 ... 9
Gambar 2.2 Konfigurasi PIN Mikrokontroler AT89S51 ... 13
Gambar 2.3 Blok diagram sederhana ADC 0804 ... 26
Gambar 2.4 Diagram Blok ADC ... 28
Gambar 2.5 ADC 0804 ... 31
Gambar 2.6 LM 35 ... 32
Gambar 2.7 Seven segmen ... 34
Gambar 2.8 Jenis-jenis Relay ... 35
Gambar 2.9 Keypad Matriks 4x4... 37
Gambar 2.10 8051 Editor, assembler, simulator ... 42
Gambar 2.11 ISP-Flash Programmer 3.a ... 43
Gambar 3.1 Diagram Blok rangkaian ... 44
Gambar 3.2 Rangkaian Power Suppaly (PSA) ... 45
Gambar 3.3 Rangkaian Mikrokontroller AT89S51 ... 46
Gambar 3.4 Rangkaian Sensor Temperatur dan ADC ... 48
Gambar 3.5 Rangkaian Display Seven segmen ... 49
Gambar 3.6 Rangkaian Relay Pengendali Blower 220 volt AC ... 50
DAFTAR TABEL
Tabel 2.1 Fungsi Masing-masing pin pada port3 ... 14
Tabel 2.2 Intruksi Aritmatika ... 17
Tabel 2.3 Data Tranfer ... 18
Tabel 2.4 Pencabangan Program ... 20
Tabel 4.1 Data Pengujian Rangkaian ADC ... 57
ABSTRAK
Telah dirancang dan dibuat sistem alat untuk menaikkan suhu pada miniatur rumah kaca berbasis mikrokontroler AT89S51. Sistem ini terdiri atas perangkat keras dan perangkat lunak. Perangkat keras terdiri atas sebuah mikrokontroler AT89S51, sensor LM35, ADC (Analog to Digital Converter) 0804, driver heater, sevent segment, rangkaian keypad. Perangkat lunak pada sistem ini dibuat dengan menggunakan program bahasa assembly. Untuk melakukan pengukuran suhu digunakan sensor LM 35. Hasil pengukuran data oleh LM 35 selanjutnya akan diolah oleh ADC 0804 menjadi data digital yang selanjutnya akan diproses oleh mikrokontroler AT89S51. Mikrokontroler AT89S51 sebagai otak dari system, yang berfungsi mengolah data yang masuk dari sensor, kemudian menampilkannya pada dispaly seven segment. Untuk memasukkan nilai suhu yang dipertahankan digunakan keypad. Jika suhu ruangan yang terdeteksi lebih kecil dari suhu referensi, maka mikrokontroler akan memerintahkan relay heater untuk menghidupkan heater .Sensor yang dipasang sebagai umpan balik (feedback) dalam system akan mengindra nilai suhu ruangan secara terus menerus (real time). Hasil pengujian suhu yang dapat dikendalikan maksimum sampai dengan 46º Celsius dengan waktu ± 4 menit.
BAB I
PENDAHULUAN
1.1Latar Belakang
Sistem pengendalian merupakan hal yang penting di bidang teknologi dan industri. Pengendalian secara manual sudah tidak lagi efisien karena akan membutuhkan waktu. Oleh karena itu diperlukan sistem pengendalian secara otomatis.
Pengukuran, pemantauan dan tampilan nilai suhu adalah bagian yang sering dibutuhkan dilingkungan, dalam suatu sistem elektronik, maupun industri serta merupakan salah satu kunci penting dalam dunia pertanian atau perkebunan. Namun pembutan alat ini dilatar belakangi karena sensor temperatur merupakan salah satu sistem yang penting untuk membangun sebuah weather controliling system, yang akan memantau dan mengendalikan suhu pada suatu ruangan tertentu serta memberikan informasi kepada pemakainya.
Rumah kaca (Green house) adalah bangunan di mana tanaman dibudidayakan. rumah kaca terbuat dari gelas atau plastik. Rumah kaca dapat menjadi panas karena radiasi elektromagnetik yang datang dari matahari dan memanaskan tumbuhan, tanah, dan barang lainnya di dalam bangunan ini. Rumah kaca melindungi tanaman dari panas dan dingin yang berlebihan, melindungi tanaman dari badai debu dan menolong mencegah hama. Pengontrolan suhu dapat mengubah tanah tak subur menjadi subur. Rumah kaca digunakan untuk membudidayakan tanaman yang memiliki nilai jual yang tinggi seperti tanaman hias dan buah - buahan.
Kondisi lingkungan (iklim) dapat dimanfaatkan secara terus menerus.Untuk itu diperlukannya perangkat tambahan pada rumah kaca yang dapat mengendalikan tingkat suhu. Dengan memanfaatkan mikrokontroler ini dapat diciptakan suatu alat secerdas komputer tetapi dengan biaya yang relatife lebih murah daripada komputer. Apabila suhu ruangan lebih rendah daripada suhu yang diinginkan maka mikrokontroler akan mengaktifkan relay heater dan menghidupkan heater untuk memanaskan ruangan. Penyetingan temperatur sesuai keinginan dengan memasukkan setpoint pada keypad, kemudahan dalam pengoperasian.
1.2Rumusan Masalah
Berdasarkan uraian di atas, dapat dirumuskan beberapa masalah yang dibahas dalam Tugas Akhir ini , yaitu:
1. Mikrokontroler AT89S51 berfungsi untuk mengolah data dari sensor suhu LM35.
2. Suhu ruangan yang ingin dipertahankan dapat diset pada keypad dan Suhu yang dideteksi oleh sensor LM35 akan ditampilkan pada seven segment. 3. Heater akan bekerja apabila suhu ruangan yang dideteksi LM35 lebih rendah
daripada suhu yang ingin dipertahankan dengan Memanfaatkan hairdryer untuk menaikkan suhu.
4. Bagaimana cara kerja ADC (Analog to Digital Converter) 0804 yang berfungsi untuk mengubah besaran analog menjadi besaran digital.
1.3Maksud dan Tujuan Penulisan
Adapun tujuan dari penulisan Tugas Akhir ini adalah sebagai berikut:
1. Merancang suatu alat instrumentasi cerdas untuk menaikkan suhu pada miniatur rumah kaca sehingga dapat dikendalikan secara otomatis, efektif dan efisien.
2. Memanfaatkan mikrokontroler AT89S51 sebagai pemrosesan data (otak) sebuah system yang dapat mengukur dan mengontrol suhu.
1.4Batasan Masalah
Mengingat keterbatasan kemampuan penulis dan waktu pelaksanaan pembuatan Tugas Akhir ini, maka dibuat batasan masalah sebagai berikut :
1. Alat ini difokuskan terhadap pengukuran nilai suhu dan pengontrolan suhu. 2. Mikrokontroler yang digunakan adalah jenis AT89S51.
3. Bahasa assembly sebagai program yang digunakan pada mikrokontroler. 4. Sensor suhu yang digunakan sensor LM 35.
5. Untuk menampilkan suhu referensi dan suhu aktual digunakan sevent segmen. 6. Sebagai pemanas/penaik suhu ruangan digunakan heater dengan
memanfaatkan hairdryer.
7. Sebagai input suhu referensi digunakan keypad 4 x 4.
1.5Sistematika Penulisan
Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja pada alat yang dibuat oleh penulis, 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
Teori pendukung itu antara lain tentang mikrokontroler AT89S51 (hardware dan software), bahasa program yang digunakan. serta karekteristik dari komponen-komponen pendukung.
BAB III. PERANCANGAN ALAT
Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok dari rangkaian, skematik dari masing-masing rangkaian.
BAB IV. PENGUJIAN RANGKAIAN
Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja alat, penjelasan mengenai program-program yang digunakan untuk mengaktifkan rangkaian, dan diagram alir dari program yang akan diisikan ke mikrokontroler AT89S51.
BAB V. KESIMPULAN DAN SARAN
BAB II
LANDASAN TEORI
2.1Perangkat Keras
Dalam merancang sebuah peralatan yang cerdas, diperlukan suatu perangkat keras (hardware) yang dapat mengolah data, menghitung, mengingat dan mengambil pilihan. Mikrokontroler merupakan salah satu jawabannya. Vendor dari mikrokontroler ini ada beberapa macam, diantaranya yang paling terkenal adalah AT89S51. Selain mengunakan mikrokontroler juga digunakan LM 35 sebagai sensor dan ADC sebagai pengkonversi besaran analog menjadi besaran digital. Selain itu juga terdapat beberapa perangkat seperti : relay, seven segmen, dan keypad .
2.1.1 Mikrokontroler AT89S51
menangani berbagai macam program aplikasi (misalnya pengolahan kata, pengolahan angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer RAM dan ROM-nya besar. Sedangkan pada mikrokontroler ROM dan RAM-nya terbatas.
Mikroprosesor biasanya mempunyai set instruksi yang sangat lengkap, sedangkan mikrokontroler mempunyai set instruksi yang lebih sederhana, terutama dipakai untuk mengontrol antar muka input dan output yang menggunakan bit tunggal (singgel bit). Mikrokontroler mempunyai banyak instruksi untuk set dan clear bit secara individual dan melakukan operasi yang berorientasi 1 bit untuk logika AND, OR, XOR, loncatan (jumping), percabangan (brancing) dan lain-lain. Set instruksi seperti ini jarang ada pada mikroprosesor yang biasanya untuk operasi pada byte atau unit data yang lebih besar.
Adapun kelebihan dari mikrokontroller adalah sebagai berikut :
2. Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan kebutuhan sistem.
3. Sistem running bersifat berdiri sendiri tanpa tergantung dengan komputer sedangkan parameter komputer hanya digunakan untuk download perintah instruksi atau program. Langkah-langkah untuk download komputer dengan mikrokontroler sangat mudah digunakan karena tidak menggunakan banyak perintah.
4. Pada mikrokontroler tersedia fasilitas tambahan untuk pengembangan memori dan I/O yang disesuaikan dengan kebutuhan sistem.
5. Harga untuk memperoleh alat ini lebih murah dan mudah didapat. 6. Mikrokontroller AT89S51 adalah standart International.
Gambar 2.1. Struktur memori AT89S51
Beberapa fasilitas yang dimiliki oleh microcontroller AT89S51 adalah sebagai berikut :
a. Sebuah Central Processing Unit 8 bit b. Osilatc : internal dan rangkaian pewaktu c. RAM internal 128 byte
d. Flash memori 4 Kbyte
e. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal)
f. Empat buah programable port I/0 yang masing-masing terdiri dari delapan buah jalur I/0
g. Sebuah port serial dengan kontrol serial full duplex UART
h. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika
i. Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi.
2.1.1.1Konstruksi AT89S51
riset ini AT89S51 otomatis diriset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 12 MHz dan kapasitor 30 piko-farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja Microcontroller.
Memori merupakan bagian yang sangat penting pada Microcontroller. Microcontroller memiliki dua macam memori yang sifatnya berbeda :
1. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini dinamakan sebagai memori program. 2. Random Access Memory (RAM) isinya akan sirna begitu IC kehilangan catu
daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.
dijalankan pada saat sistem di-reset, pin EA/VP berlogika 1 sehingga mikrokontroller aktif berdasarkan program yang ada pada Flash PEROM-nya. Namun jika pin EA/VP berlogika 0, mikrokontroler aktif berdasarkan program yang ada pada memori eksternal. .
Jenis memori yang dipakai untuk memori program AT89S51 adalah flash PEROM, program untuk mengendalikan Microcontroller diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S51 flash PEROM Programmer. Memori data yang disediakan dalam chip AT89S51 sebesar 128 kilo byte meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup. Sarana Input/Output yang disediakan cukup banyak dan bervariasi. AT89S51 mempunyai 32 jalur Input/Output paralel dikenal sebagai Port 1 (P1.0 … P1.7) dan Port 3 (P3.0 … 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) diletakkan berhimpitan dengan P1.0 dan P1.1. pada kaki nomor 2 dan 3, sehingga kalau sarana input/output 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/output paralel kalau T0 dan T1 dipakai.
input/output paralel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi.
Port1 dan 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Function Register (SFR).
2.1.1.2Konfigurasi dan Fungsi Kaki Pin AT89S51
Mikrokontroler AT89S51 mempunyai 40 kaki, 32 kaki diantaranya adalah kaki untuk keperluan Port paralel. Satu Port paralel terdiri dari 8 kaki, dengan demikian 32 kaki tersebut membentuk 4 buah Port paralel. Berikut gambar 2.2 sebagai konfigurasi pin mikrokontroler AT89S51 :
Gambar 2.2. Konfigurasi Pin Mikrokontroler AT89S51
Susunan pena – pena mikrokontroler AT89S51 pada gambar 2.2 dapat dijelaskan sebagai berikut :
1. Pin 1 sampai 8 (Port 1) merupakan port pararel 8 bit dua arah (bidirectional) yang dapat digunakan untuk berbagai keperluan (general purpose).
2. Pin 9 merupakan pin reset, reset aktif jika mendapat catuan tinggi. Reset akan aktif dengan memberikan input high selama 2 cycle.
3. Pin 10 sampai 17 (Port 3) adalah port pararel 8 bit dua arah yang memiliki fungsi pengganti seperti tabel 2.1 :
Tabel 2.1. Fungsi masing-masing pin pada port 3 4. Pin 18 sebagai XTAL 2, keluaran osilator yang terhubung pada kristal.
5. Pin 19 sebagai XTAL 1, masukan ke osilator berpenguatan tinggi, terhubung pada kristal.
6. Pin 20 sebagai Vss, terhubung ke 0 atau ground pada rangkaian.
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.
8. Pin 29 sebagai PSEN (Program Store Enable) adalah sinyal yang digunakan untuk membaca, memindahkan program memori eksternal (ROM / EPROM) ke mikrokontroler (aktif low).
9. Pin 30 sebagai ALE (Address Latch Enable) untuk menahan alamat bawah selama mengakses memori eksternal. Pin ini juga berfungsi sebagai PROG (aktif low) yang diaktifkan saat memprogram internal flash memori pada mikrokontroler (on chip).
10.Pin 31 sebagai EA (External Accesss) untuk memilih memori yang akan digunakan, memori program internal (EA = Vcc) atau memori program eksternal (EA = Vss), juga berfungsi sebagai Vpp (programming supply voltage) pada saat memprogram internal flash memori pada mikrokontroler. 11.Pin 32 sampai 39 (Port 0) merupakan port pararel 8 bit dua arah. Berfungsi
flash progamming diperlukan eksternal pull up, terutamapada saat verifikasi program.
12.Pin 40 sebagai Vcc, terhubung ke +5 V sebagai catuan untuk mikrokontroler.
2.1.1.3Instruksi MCS-51
Pengalamatan adalah pengelompokkan berdasarkan orientasi lokasi memori, tipe-tipe instruksi adalah pengelompokkan berdasarkan fungsi instruksi. Beberapa fungsi pada instruksi MCS-51 yang akan digunakan yaitu Aritmatika, Transfer data,dll. Pada table-tabel perlu dijelaskan arti dari simbol-simbol yang digunakan pada mnemonics sebagai berikut :
Rn Register serbaguna R0 sd R7 di register bank yang diseleksi oleh PSW.
Direct 8 bit alamat internal RAM (0-127) atau SFR (128-255)
Addrl1 alamat 11 bit (untuk akses memori hingga 2K) Addr16 alamat 16 bit (untuk akses memori hingga 64K) Rel 8 bit offset relative bertanda (2’S complement),
Instruksi-instruksi diperlihatkan disajikan pada table 2.2, yang menunjukkan ragam pengalamatan yang dapat digunakan dengan masing-masing instruksi.
Tabel 2.2 Instruksi Aritmatika
Mnemonic Diskripsi
ADD A, <source> A=A+<source ADDC A, <source> A=A+<source>+C SUBB A, <source> A=A-<source>-C
INC A A=A+1
INC <source> <source>=<source>+1
DEC A A=A-1
DEC <source> <source>=<source>-1
INC DPTR DPTR=DPTR+1
MUL AB AB = A X B
DIV AB A = Hasil A/B; B = sisa A/B
DA A Decimal Adjust
Source (sumber) adalah operand dengan ragam pengalamatan; register direct, indirect atau immediate. Contoh program penjumlahan pada ragam pengalamatan untuk instruksi aritmatika seperti berikut ini :
ADD A, 7FH ;a diisi dengan a+isi dri memori lokasi 7FH
;(pengalamatan langsung)
ADD A, @R1 ;a diisi dengan a+isi dari memori yang alamatnya ; disimpan di R1 (pengalamatan tak langsung)
ADD A, #127 ;a diisi dengan a+127 (pengalamatan segera)
Untuk penggunaan kristal 12 MHz, kebanyakan instruksi aritmatik dieksekusi dalam 1 µs kecuali instruksi INC DPTR yang memerlukan waktu 2 µs dan instruksi-instruksi perkalian dan pembagian yang memerlukan waktu 4 µs.
Data didalam memori internal dapat dinaikkan atau diturunkan (increment atau decrement), tanpa melalui akumulator , demikian juga pada DPTR yang digunakan untuk menghasilkan pengalamatan 16 bit di memori eksternal. Instruksi MUL AB mengalikan dengan data yang ada pada register B dan meletakkan hasil 16 bit ke dalam register A dan B. Register A berisi lo-byte dan register B berisi hi-byte. Bila hasilnya lebih besar dari 255 (0FFh), maka bit OV set, sedangkan bit C selalu akan diclearkan (‘0’). Instruksi DIV AB membagi isi akumulator dengan data dalam register B dan meletakkan hasil bagi (quotient) 8 bit dalam akumulator, dan sisanya (remainder) 8 bit dalam register B. Operasi DIV akan membuat bit-bit CY dan OV menjadi ‘0’.
MOV adalah proses move (pindahkan) data dari sumber ke tujuan yang sebenarnya adalah proses mengcopy, artinya data di sumber tidak berubah. Proses data transfer yang lain adalah PUSH dan POP, XCH dan XCHD seperti yang diperlihatkan pada tabel 2.3.
Tabel 2.3 Data Transfer
Mnemonic ARTI
MOV <dest>,<source> <dest>=<source>, memori int MOV DPTR,#data 16 Dptr = data16
MOVC A,@A+<base-reg> A = isi dilokasi A+<base-reg> MOVX <dest>,<source> <dest>=<source>,data mem PUSH direct Simpan data ke memori stack POP direct Ambil data dari memori stack
;keadaan awal isi RAM dengan alamat 30h adalah ;40h, lokasi 40h berisi 10h, P1 berisi
Mov @R1,P1 ;RAM lokasi 40h berisi 11001010b Mov P2,P1 ;P2=P1=11001010b
Tabel 2.4 Pencabangan Program
Mnemonic ARTI
ACALL addr11 <dest>=<source>, memori int LCALL addr16 Dptr = data16
RET A = isi dilokasi A+<base-reg> SJMP rel Lompat maju atau mundur sejauh
rel
JMP @A+DPTR Lompat ke alamat a+dptr CJNE
<dest-byte>,<scr-byte>,rel
Bila <dest>#<source> lompat sejauh rel
CJNE A,#data,rel Bila A#data lompat sejauh rel DJNZ direct, rel Direct= direct-1,bila #0 lompat
sejauh rel
NOP No Operation, tidak ada operasi
Pencabangan bersyarat adalah lompat ke alamat tertentu bila persyaratan terpenuhi. Secara umum perintahnya adalah : CJNE <dest-byte>,<src-byte>, rel; artinya Compare destination byte dan source byte, Jump if Not Equal along rel(active). Source byte adalah A, yang dibandingkan dengan destination byte berupa direct memory atau immediate constant. Source dapat juga berupa direct Rn atau indirect @Rn yang dibandingkan dengan immediate constant.
START :
CJNE A,#040h, LABEL1 ;bandingkan dengan 40h, jika tak
;sama lompat ke LABEL1
CJNE A,P1,LABEL1 ;bandingkan a dengan P1, jika tak
;sama lompat ke LABEL1
CJNE @R1,#0CCh,LABEL1 ;bandingkan indirect R1 dengan ;CCh,jika tak sama lompat ke ;LABEL1
LABEL1: --- ---
Instruksi DJNZ direct, rel, adalah : Decrement Jump if Not Zero, artinya kurangi satu dahulu data di direct, kemudian bila isinya nol, maka lomatlah ke rel. Biasanya instruksi ini digunakan untuk pencacah. Berikut contoh penggunaan instruksi tersebut ;
START :
Mov R0,#5 ;isi R0 dengan 5 Mov R1,#40h ;isi R1 dengan 40h LOOP:
Mov @R1,#0AAh ;isi memori di <R1> dengan AAh
Inc R1 ;R1=R1+1
DJNZ R0,LOOP ;R0=R0-1, jika belum 0 kembali ke LOOP
Sjmp $ :usai
apa-apa, proses ini hanya menunda kerja mikrokontroller, karena satu instruksi NOP memakan 1 mikrodetik, sehingga beberapa perintah NOP bisa digunakan untuk proses penundaan atau delay.
2.1.2 ADC 0804
Analog digital converter (ADC) adalah perangkat untuk menkonversi sinyal masukan dalam bentuk tegangan analog menjadi sinyal keluaran dalam bentuk digital. Dimana output yang dihasilkan ADC sebanding dengan input yang diberikan. Proses pengubahan ini dikenal juga dengan nama sistem akusisi data. Umumnya ADC digunakan sebagai perantara antara sensor yang kebanyakan analog dengan sistim komputer seperti sensor suhu, cahaya, tekanan atau berat, aliran dan sebagainya kemudian diukur dengan menggunakan sistim digital (komputer). Hal-hal yang juga perlu diperhatikan dalam penggunaan ADC adalah tegangan maksimum yang dapat dikonversikan oleh ADC dari rangkaian pengkondisi sinyal, resolusi, pewaktu eksternal ADC, tipe keluaran, ketepatan dan waktu konversinya.
Menurut cara pengkonversiannya, ADC dapat dikelompokkan dalam beberapa jenis yaitu:
1. Tipe integrating
Tipe tracking menggunakan prinsip up down counter (pencacah naik dan pencacah turun). Fungsinya adalah Binary counter (pencacah biner) akan mendapat masukan clock secara kontinyu dan hitungan akan bertambah atau berkurang tergantung pada kontrol dari pencacah apakah sedang naik (up counter) atau sedang turun (down counter). ADC tipe ini tidak menguntungkan jika dipakai pada sistem yang memerlukan rangkaian sample hold.
ADC tipe ini sangat tergantung pada kecepatan clock pencacah, semakin tinggi nilai clock yang digunakan, maka proses konversi akan semakin singkat.
3. Tipe flash/ paralel
Tipe ini dapat menunjukkan konversi secara lengkap pada kecepatan 100 MHz dengan rangkaian kerja sederhana. Sederetan tahanan mengatur masukan inverting dari tiap-tiap konverter menuju tegangan yang lebih tinggi dari konverter sebelumnya jadi untuk tegangan masukan Vin denagn full scale range, komparator dengan bias di bawah Vin akan mempunyai keluaran rendah.
Keluaran komparator ini tidak dalam bentuk biner murni. Suatu dekoder dibutuhkan untuk membentuk suatu keluaran yang biner. Beberapa komparator berkecepatan tinggi, dengan waktu tunda (delay) kurang dari 6 ns banyak digunakan karena itu dihasilkan kecepatan konversi yang sangat tinggi. Jumlah komparator yang dibutuhkan untuk suatu konversi n bit adalah 2n-1.
Tipe successive approximation merupakan suatu konverter yang paling sering ditemukan dalam dasar perangkat keras yang menggunakan ADC. Tipe ini memiliki kecepatan konversi cukup tinggi meskipun dari segi harga relatif mahal. Prinsip kerja konverter tipe ini adalah dengan membangkitkan pertanyaan yang pada intinya berupa tebakan nilai digital terhadap nilai tegangan analog yang dikonversikan. Apabila resolusi ADC ini adalah 2n maka diperlukan maksimal n kali tebakan.
Komparator digunakan untuk membandingkan keluaran D/A dengan masukan analog Vin. Keluaran komparator digunakan untuk mencek register pendekatan berurutan (Successive Approximation Register – SAR). Setelah menerima pulsa mulai konversi, SAR akan mengeluarkan bit-bit untuk diubah menjadi tegangan analog oleh suatu pengubah D/A, mula SAR akan mengaktifkan MSB, yang akan menghasilkan suatu tegangan analog pada keluaran pengubah D/A. tegangan ini dibandingkan dengan Vin. Bila V1 < Vin maka MSB dibiarkan tinggi(“1”), bila V1 > Vin maka MSB dibuat “0”.
Pada contoh kita V1 < Vin sehingga MSB dibuat “1”. Selanjutnya bit no 2 diaktifkan dibuat 1 dan keluaran pengubah D/A yang baru dibandingkan lagi dengan Vin . pada contoh V2 < Vin sehingga bit no 2 dibuat juga 1. kemudian bit no 3 dibuat 1. terakhir bit no 4 (LSB) dibuat “1”. Akan tetapi V4 > Vin, maka bit no 4 dibuat 0. keadaan akhir pada keluaran SAR adalah (1110)2 menyatakan keluaran digital untuk Vin.
oleh metode yang digunakan untuk konversi data, sedangkan Rentang tegangan masukan analog maksimum adalah watak untai ADC yang digunakan sehingga masukan analog yang akan dimasukkan ke ADC tersebut terlebih dahulu harus disesuaikan dengan tegangan analog maksimal yang diizinkan. Resolusi ADC berkaitan dengan cacah bit dan rentang tegangan pada masukan analog.
Dengan pertimbangan diatas penulis sengaja memilih ADC 0804 sebagai Konverter A/D . ADC 0804 adalah suatu IC CMOS pengubah analog ke digital 8-bit dengan satu kanal masukan. Jumlah 8-bit yang dihasilkan, didapat dari hasil pengkonversian tegangan yang biasanya besar tegangan tersebut antara 0 volt sampai dengan +5 volt. Dengan demikian, apabila kita memasukan sebuah tegangan antara 0 volt sampai dengan 5 volt pada sebuah ADC 8 bit maka setelah proses konversi akan menghasilkan sebuah kombinasi bilangan biner yang ditunjukkan dengan bilangan biner antara 0 sampai dengan 255.
ADC ini relatif cepat dan mempunyai ukuran kecil. Keuntungan tambahan adalah setiap sampling diubah dalam selang waktu yang sama tidak tergantung pada arus masukan dan secara keseluruhan ditentukan oleh frekuensi yang mengandalkan clock dan resolusi dari pengubah. Kekurangan pengubah jenis ini adalah mempunyai kekebalan rendah terhadap noise dan diperlukan adanya pengubah digital ke analog yang tepat dan pembanding dengan unjuk kerja yang tinggi.
2.1.2.1Karakteristik IC ADC 0804
memenuhi kebutuhan dari rangkaian yang akan dibuat. IC jenis ini bekerja secara cermat dengan menambahakan sedikit komponen sesuai dengan spesifikasi yang harus diberikan dan dapat mengkonversikan secara tepat masukan tegangan. Seperti gambar 2.3 :
Gambar 2.3. Blok diagram sederhana ADC0804
ADC banyak tersedia dipasaran Beberapa karakteristik dari ADC 0804 adalah sebagai berikut :
1. Memiliki 2 masukan analog yaitu Vin (+) dan Vin (-) sehingga memperbolehkan masukan selisih (diferensial). Dengan kata lain, tegangan masukan analog yang sebenarnya adalah selisih dari masukan kedua pin {analog Vin = Vin (+) – Vin (-)}. Jika hanya satu masukan, maka Vin dihubungkan ke ground. Pada operasi normal, ADC menggunakan Vcc =+5 sebagai tegangan refrensi dan masukan analog memiliki dari 0 sampai 5V pada skala penuh.
2. Mengubah tegangan analog menjadi keluaran digital 8 bit. Sehingga resolusinya adalah 5V/255 = 19,6 mV
4. Memiliki koneksi ground yang berbeda antara tegangan digital dan analog. Kaki 8 adalah ground analog. Kaki 10 adalah ground digital.
2.1.2.2Prinsip Kerja ADC 0804
Ada banyak cara yang dapat digunakan untuk mengubah sinyal analog menjadi sinyal digital yang nilainya proposional. Secara singkat prinsip kerja dari konverter A/D adalah semua bit-bit diset deretan data biner bit mulai dari MSB dan diakhiri dengan LSB. Selama proses perhitungan biner, register akan memonitor output komparator untuk melihat jika perhitungan biner kurang atau lebih besar dari input analog kemudian diuji, dan bilamana perlu sesuai dengan kondisi yang telah ditentukan. Dengan rangkaian yang paling cepat, konversi akan diselesaikan sesudah 8 clock, dan keluaran D/A merupakan nilai analog yang ekivalen dengan nilai register SAR. Apabila konversi telah dilaksanakan, rangkaian kembali mengirim sinyal selesai konversi yang berlogika rendah. Sisi turun sinyal ini akan menghasilkan data digital yang ekivalen ke dalam register buffer. Dengan demikian, keluaran digital akan tetap tersimpan sekalipun akan di mulai siklus konversi yang baru.
Pada ADC 0804, pin 11-18 merupakan pin keluaran digital yang dapat dihubungkan langsung dengan bus data-alamat. Apabila pin /CS atau pin /RD dalam keadaan tinggi, pin 11 sampai pin 18 akan mengambang.
Pin 6 dan 7 adalah masukan diferensial yang membandingkan dua masukan sinyal analog. Jenis masukan ini memungkinkan pemilihan bentuk masukan , yaitu mentanahkan pin 7 untuk masukan positif bersisi-tunggal (single- ended positif input), atau mentanahkan pin 6 untuk masukan negatif bersisi-tunggal (single-ended negatif input), atau mengaktifkan kedua pin untuk masukan diferensial.
Piranti ini mempunyai 2 ground, A GND dan D GND yang terletak pada pin 8 dan 10. Keduanya harus digroundkan. Pin 20 disambungkan dengan catu tegangan yang sebesar +5V.
Dalam ADC 0804, Vref merupakan tegangan masukan analog maksimum, yaitu tegangan yang menghasilkan suatu keluaran digital maksimum FFH. Bila pin 9 tidak dihubungkan (tidak dipakai), VREF berharga sama dengan tegangan catu VCC. Ini berarti bahwa catu tegangan +5V memberikan jangkauan masukan analog dari 0 sampai +5V bagi masukan positif yang bersisi-tunggal. Secara umum, diagram blok sistem ADC 0804 seperti gambar 2.4:
Konversi
sinyal CE. Artinya, ADC diaktifkan. Kemudian SOC (start of conversion) dikirimkan sehingga ADC mulai melakukan sampling sinyal dan diikuti dengan konversi ke digital.
Bila konversi selesai maka ADC akan mengirimkan tanda selesai EOC (end of conversion) yang artinya hasil konversi telah siap dibaca di (PB7-PB0). ). Program yang sesuai harus dibuat mengikuti prosedur seperti di atas. Artinya, program utama mikroprosesor harus dimuati dengan suatu program loop tertutup dan menunggu tanda untuk membaca data dari ADC. Meski tanda ini tidak harus diperhatikan, tetapi berakibat data yang dipaksa dibaca akan sering invalid karena CPU tidak dapat membedakan keadaan ambang (ketika ADC tengah melakukan konversi) dengan keadaan data siap (valid). Agar lebih efektif, fungsi interrupt harus diaktifkan untuk menghindari terjebaknya CPU dalam loop saat menunggu ADC siap. Dengan demikian CPU hanya akan membaca data bila mendapatkan interrupt.
Volt
Dalam proses Konversi, Setiap perubahan tegangan yang diberikan merupakan input bagi ADC yang akan diubah menjadi data digital. Proses perubahan tegangan input menjadi data digital dilakukan sesuai persamaan (1).
melakukan konversi, logika ini dihubungkan kepada masukan WR untuk memerintahkan ADC memulai konversi kembali. Prinsip yang kedua yaitu mode control, pada mode ini ADC baru akan memulai konversi setelah diberi instruksi dari mikrokontroler. Instruksi ini dilakukan dengan memberikan pulsa rendah kepada masukan WR sesaat +1ms, kemudian membaca keluaran data ADC setelah keluaran INTR berlogika rendah. Pada penelitian ini, prinsip konversi yang digunakan adalah mode control.
2.1.2.3Fungsi Pin Pada ADC 0804
Fungsi Pin ADC 0804 seperti Gambar 2.5 :
1. Pin WR (Write), pulsa high pada input write maka ADC akan melakukan konversi data, tegangan analog menjadi data digital. Pin WR dihubungkan dengan pin INTR. Setelah selesai konversi pin INTR akan memberi pulsa low pada pin WR.
Gambar 2.5. ADC 0804
dapat diopersikan dalam mode free running dengan menghubungkan pin INT ke input WR.
3. Pin CS (Chip select), agar ADC dapat aktif , melakukan konversi data maka input chip select harus diberi logika low. Data output akan berada pada kondisi three state apabila CS mendapat logika high.
4. Pin RD (Read), agar data ADC data dapat dibaca oleh sistem mikroprosessor maka pin RD harus diberi logika low.
5. Pin Vin (+) dan Vin (-) merupakan input tegangan deferensial yang akan mengambil nilai selisih dari kedua input. Dengan memanfaatkaninput Vin maka dapat dilakukan offset tegangan nol pada ADC.
6. Pin Vref, tegangan referensi dapat diatur sesuai dengan input tegangn pada Vin (+) dan Vin (-), Vref = Vin / 2.
Vresolusi = Vin max / 255.
Pin CLOCK, clock untuk ADC dapat diturunkan pada clock CPU atau RC eksternal dapat ditambahkan untuk memberikan generator clock dari dalam CLK In menggunakan schmitt triger.
2.1.3 Sensor Suhu LM 35
perancangan jika dibandingkan dengan sensor suhu yang lain serta memiliki karakteristik sensor yang cukup baik seperti gambar 2.6 :
Gambar 2.6. LM 35
Karakteristik dari sensor suhu LM35 ini adalah perubahan nilai tahanannya akan semakin besar apabila suhu lingkungannya semakin rendah dan nilai tahanannya akan menjadi kecil apabila suhu lingkungannya semakin tinggi.
LM35 memiliki kelebihan-kelebihan sebagai berikut: a. Di kalibrasi langsung dalam celcius
b. Memiliki faktor skala linear + 10.0 mV/ºC c. Memiliki ketepatan 0,5ºC pada suhu 25ºC
d. Jangkauan maksimal suhu antara -55ºC sampai 150ºC e. Cocok untuk aplikasi jarak jauh
f. Harga yang cukup murah
g. Bekerja pada tegangan catu daya 4 sampai 30 Volt
h. Memiliki arus drain kurang dari 60 μAmp
i. Pemanasan sendiri yang lambat (low self-heating) j. 0,08 ºC di udara diam
k. Ketidak linearannya hanya sekitar ±14 °C
Sensor suhu tipe LM 35 merupakan IC sensor temperatur yang akurat yang tegangan keluarannya linear dalam satuan celcius. Jadi LM 35 memiliki kelebihandibandingkan sensor temperatur linear dalam satuan Kelvin, karena tidak memerlukan pembagian dengan konstanta tegangan yang besar dan keluarannya untuk mendapatkan nilai dalam satuan celcius yang tepat. LM 35 memiliki impedansi keluaran yang rendah, keluaran yang linear, dan sifat ketepatan dalam pengujian membuat proses interface untuk membaca atau mengontrol sirkuit lebih mudah. Pin V+ dari LM 35 dihubungkan ke catu daya, pin GND dihubungkan ke Ground dan pin Vout – yang mengahasilkan tegangan analog hasil penginderaan suhu sekitar negatif (-) dihubungkan ke Vin (+) dan ADC 0804.
2.1.4 Seven segmen
Seven segmen merupakan cacah segmen minimum yang diperlukan untuk menampilkan angka 0 sampai 9. Sejumlah karakter alfabet juga dapat disajikan menggunakan tampilan seven segmen ini. Secara khusus, karakter heksadesimal dapat ditampilkan. Seven segmen terdiri dari LED-LED yang disusun sedemikian rupa yang jika dinyalakan akan membentuk suatu angka tertentu. Seven segmen terdiri dari 7 buah segmen dan ditambah 1 buah segmen yang berfungsi sebagai desimal point seperti yang ditunjukkan pada gambar 2.7 :
Seven segmen terdiri dari 2 tipe yaitu :
1. Seven Segmen tipe Common Anoda Pada seven segmen tipe ini, anoda dari setiap LED dihubungkan menjadi satu kemudian dihubungkan ke sumber tegangan positif dan katoda dari masingmasing LED berfungsi sebagai input pada seven segmen.
2. Seven Segmen tipe Common Katoda Pada seven segmen tipe ini, katoda dari setiap LED dihubungkan menjadi satuu kemudian dihubungkan ke ground dan anoda dari masing-masing LED berfungsi sebagai input dari seven segmen.
2.1.5 Relay
Relay adalah komponen elektronika berupa saklar elektronik yang digerakkan oleh arus listrik. Secara prinsip,relay merupakan tuas saklar dengan lilitan kawat pada batang besi (solenoid) di dekatnya. Ketika solenoid dialiri arus listrik,tuas akan tertarik karena adanya gaya magnet yang terjadi pada solenoid sehingga kontak saklar akan menutup.
mengantisipasi sentakan listrik yang terjadi pada saat relay berganti posisi dari on ke off agar tidak merusak komponen di sekitarnya.
Relay adalah suatu komponen elektronika yang akan bekerja bila ada arus yang melalui kumparannya. Sebuah relay terdiri dari kumparan yang dililitkan pada inti besi dan kontak-kontak penghubung. Apabila kumparan yang melilit inti besi dilalui arus listrik maka akan menimbulkan induksi medan magnet, dan induksi ini akan menarik kontak-kontak penghubung relay.
Kontak penghubung relay terdiri dari dua bagian, yaitu : 1. Kontak NC (Normally Close).
Kontak penghubung dalam kondisi menutup atau terhubung bila relay tidak mendapat masukan tegangan pada kumparannya. Tetapi bila diberi tegangan yang mencukupi pada kumparannya maka kontak penghubung menjadi terbuka (kondisi awal sebelum diaktifkan close).
2. Kontak NO (Normally Open).
Kontak penghubung dalam kondisi terbuka bila relay tidak mendapat tegangan pada kumparannya. Tetapi bila diberi tegangan yang mencukupi pada kumparannya maka kontak penghubung menjadi tertutup atau terhubung. (kondisi awal sebelum diaktifkan open).
2.1.6 Keypad 4 x 4
tersebut dimungkinkan karena rangkaian tombol disusun secara horizontal membentuk baris dan secara vertikal membentuk kolom:
Gambar 2.8. Keypad matriks 4x4
Keypad termasuk alat interface yang sering dan cukup mudah untuk digunakan. Karena keypad salah satu sarana inputan yang banyak digunakan dalam aplikasi machine interface misalnya:
a. Pada sistem pengaturan suhu, keypad bisa digunakan operator untukmenentukan set point suhu yang diinginkan.
b. Pada sistem absensi pegawai, keypad bisa digunakan bagi pegawai untuk memasukan ID-nya, dll.
2.2 Perangkat Lunak
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 diatas 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 diatas 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
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 memangggil 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 melompat 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).
JNB P1.0,Loop …………
8. Instruksi CJNE (COMPARE JUMP IF NOT EQUEL)
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 (DECREMENT)
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 (INCREMENT)
Contoh:
MOV R0,#20h R0 = 20h ………….
INC R0 R0 = R0 + 1 ………….
2.2.1 Software 8051 Editor, Assembler, Simulator (IDE)
Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskanpada sebuah editor, yaitu 8051 Editor, Assembler, Simulator seperti gambar 2.9 :
Gambar 2.9. 8051 Editor, assembler, simulator
(di-Compile). Pada saat di-Assemble maka akan tampil pesan peringatan dan kesalahan. Jika masih ada peringatan tersebut, itu berarti masih ada kesalahan dalam penulisan instruksi atau ada nama subrutin yang sama. sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi.
2.2.2 Software Downloader
Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroler digunakan software ISP-Flash Programer 3.0a yang dapat di download dari internet. Tampilannya seperti gambar 2.10 :
Gambar 2.10. ISP-Flash Programmer 3.a
BAB III
RANCANGAN SISTEM
3.1 Diagram Blok Rangkaian
Diagram blok merupakan gambaran dasar dari rangkaian sistem yang akan dirancang. Setiap diagram blok mempunyai fungsi masing-masing. Adapun diagram blok dari sistem yang dirancang adalah seperti yang diperlihatkan pada gambar 3.1 :
Gambar 3.1. Diagram Blok Rangkaian
Disain sistem rangkaian terdiri dari:
1. Sensor suhu (LM35) berfungsi untuk mengukur suhu ruangan kemudian output sensor ini akan diinputkan ke ADC0804.
3. Mikrokontroler AT89S51 berfungsi untuk mengolah data digital yang dikirimkan oleh ADC0804, selanjutnya mikrokontroller akan menampilkan nilai suhu yang terukur pada seven segmen kemudian membandingkannya dengan data tertentu untuk kemudian mengambil tindakan (menghidupkan/mematikan heater).
4. Relay berfungsi sebagai perantara antara mikrokontroler yang memiliki tegangan 5 volt DC dengan blower yang memiliki tegangan 220 volt AC, sehingga heater dapat dikendalikan oleh mikrokontroler AT89S51.
5. Heater berfungsi untuk memanaskan ruangan yang akan dikendalikan oleh mikrokontroler setelah mendapatkan data dari sensor suhu (LM35).
6. Display berfungsi untuk menampilkan hasil pembacaan suhu pada sensor suhu (LM35) yang berada dalam ruangan.
7. Keypad 4 x 4 berfungsi untuk memasukkan nilai temperature yang akan dipertahankan oleh ruangan.
3.2 Perancangan Power Supplay (PSA)
Gambar 3.2 Rangkaian Power Supplay (PSA)
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. Tegangan 12 volt DC langsung diambil dari keluaran 2 buah dioda penyearah.
3.3 Rangkaian Mikrokontroler AT89S51
Gambar 3.3 Rangkaian mikrokontroller AT89S51
merupakan P0.0 dihubungkan dengan sebuah resistor 330 ohm dan sebuah LED. Ini dilakukan hanya untuk menguji apakah 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 39 sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap digunakan. Pin 20 merupakan ground dihubungkan dengan ground pada power supplay. Pin 40 merupakan sumber tegangan positif dihubungkan dengan + 5 volt dari power supplay
3.4Rangkaian Sensor Temperatur dan ADC (Analog to Digital Converter)
Rangkaian ADC ini berfungsi untuk merubah data analog yang dihasilkan oleh sensor suhu menjadi bilangan digital. output dari ADC dihubungkan ke mikrokontroler. Sehingga mikrokontroler dapat mengetahui suhu yang terdapat di dalam ruangan. Dengan demikian proses pengukuran suhu. Gambar rangkaian ADC ditunjukkan pada gambar 3.4:
Input ADC dihubungkan ke sensor suhu LM35, sehingga setiap perubahan tegangan pada LM35akan dideteksi oleh ADC. Agar output yang dihasilkan oleh ADC bagus, maka tegangan refrensi ADC harus benar-benar stabil, karena perubahan tegangan refrensi pada ADC akan merubah output ADC tersebut. Oleh sebab itu pada rangkaian ADC di atas tegangan masukan 12 volt dimasukkan ke dalam IC regulator tegangan 9 volt ( 7809) agar keluarannya menjadi 9 volt, kemudian keluaran 9 volt ini dimasukkan kedalam regulator tegangan 5 volt (7805), sehingga keluarannya menjadi 5 volt. Tegangan 5 volt inilah yang menjadi tegangan refrensi ADC.
Dengan demikian walaupun tegangan masukan turun setengahnya, yaitu dari 12 volt menjadi 6 volt, tegangan refrensi ADC tetap 5 volt.
Output dari ADC dihubungkan ke mikrokontroler, sehingga setiap perubahan output ADC yang disebabkan oleh perubahan inputnya akan diketahui oleh mikrokontoler
3.5 Rangkaian Display Seven Segmen
Gambar 3.5 Rangkaian Display Seven Segmen
Display ini menggunakan 3 buah seven segmen common anoda yang dihubungkan ke IC 4094 yang merupakan IC serial to paralel. IC ini akan merubah 8 bit data serial yang masuk menjadi keluaran 8 bit data paralel. Rangkaian ini dihubungkan dengan P3.0 dan P3.1 AT89S51. P3.0 merupakan fasilitas khusus pengiriman data serial yang disediakan oleh mikrokontroler AT89S51. Sedangkan P3.1 merupakan sinyal clock untuk pengiriman data serial.
3.6 Rangkaian Relay
Relay ini berfungsi sebagai saklar elektronik yang dapat menghidupkan/mematikan peralatan elektronik (dalam hal ini heater). Rangkaian relay pengendali heater tampak seperti gambar3.6 :
Gambar 3.6 Rangkaian relay Pengendali blower 220 volt AC
Pada rangkaian ini untuk mengaktipkan atau menon-aktipkan relay digunakan transistor tipe NPN. Cara kerjanya sama dengan proses menghidupkan alarm yang telah dijelaskan sebelumnya. 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.
3.7 Perancangan rangkaian keypad
Rangkaian Keypad berfungsi sebagai tombol untuk memasukan pin. Kemudian data yang diketikkan pada keypad akan diterima oleh mikrokontroler AT89S51 untuk kemudian diolah dan diotampilkan pada display seven segmen. Rangkaian keypad ditunjukkan pada gambar 3.7 :
Gambar 3.7 Rangkaian keypad
BAB IV
PENGUJIAN ALAT DAN PROGRAM
4.1 Pengujian Rangkaian PSA
Pengujian pada bagian rangkaian power supplay ini dapat dilakukan dengan mengukur keluaran dari rangkaian ini dengan volt meter. Pada power supplay ini terdapat dua keluaran. Dari hasil pengujian diperoleh tegangan keluaran pertama sebesar ± 5,1 volt. Tegangan ini dipergunakan untuk mensupplay tegangan ke seluruh rangkaian. Mikrokontroler AT89S51 dapat bekerja pada tegangan 4.0 sampai dengan 5.5 volt sehingga volt ini cukup untuk mensupplay tegangan ke mikrokontroller AT89S51. Sedangkan tegangan keluaran kedua sebesar 14.1 volt tegangan ini digunakan untuk mensuplay tegangan ke relay, dimana relay dapat aktif pada tegangan 9 sampai 15 volt, sehingga ini sudah memenuhi syarat untuk mengaktifkan relay.
4.2 Pengujian Rangkaian Mikrokontroller AT89S51
Untuk mengetahui apakah rangkaian mikrokontroller AT89S51 telah bekerja dengan baik, maka dilakukan pengujian.Pengujian bagian ini dilakukan dengan memberikan program sederhana pada mikrokontroller AT89S51. Programnya adalah sebagai berikut:
Loop:
Setb P0.0
Clr P0.0
Acall tunda
Sjmp Loop
Tunda:
Mov r7,#255
Tnd: Mov r6,#255
Djnz r6,$
Djnz r7,tnd
Ret
Program di atas bertujuan untuk menghidupkan LED yang terhubung ke P0.0 selama ± 0,13 detik kemudian mematikannya selama ± 0,13 detik secara terus menerus. Perintah Setb P0.0 akan menjadikan P0.0 berlogika high yang menyebabkan LED menyala. Acall tunda akan menyebabkan LED ini hidup selama beberapa saat. Perintah Clr P0.0 akan menjadikan P0.0 berlogika low yang menyebabkan LED akan mati. Perintah Acall tunda akan menyebabkan LED ini mati selama beberapa saat. Perintah Sjmp Loop akan menjadikan program tersebut berulang, sehingga akan tampak LED tersebut tampak berkedip.
Lamanya waktu tunda dapat dihitung dengan persamaan sebagai berikut :
T = 12/f ... (4.1)
Kristal yang digunakan adalah kristal 12 MHz, sehingga 1 siklus mesin
membutuhkan waktu = 12 1
Tabel 4.1 Hasil waktu tunda,
Mnemonic Siklus Waktu Eksekusi MOV Rn,#data 2 2 x 1 μd = 2 μd DJNZ 2 2 x 1 μd = 2 μd RET 1 1 x 1 μd = 1 μd
Tunda:
mov r7,#255 Tnd: mov r6,#255
djnz r6,$ 255 x 2 = 510 x 255 = 130.054 = 130.058 = 130.059 μd
djnz r7,loop3
djnz r2,loop8
ret
Jadi waktu yang dibutuhkan untuk mengerjakan program di atas adalah 130.059
μdetik atau 0,130059 detik dan dapat dibulatkan menjadi 0,13 detik.
4.3 Pengujian Rangkaian ADC
Pengujian pada bagian rangkaian ADC ini dapat dilakukan dengan menghubungkan rangkaian ADC ini dengan rangkaian mikrokontroler. Selanjutnya rangkaian mikrokontroler dihubungkan dengan rangkaian display seven segmen. Mikrokontroler diisi dengan program untuk membaca nilai yang ada pada rangkaian ADC, kemudian hasil pembacaannya ditampilkan pada display seven segmen. Programnya adalah sebagai berikut :
mov a,p2
Dengan program di atas, maka akan tampil nilai temperatur yang dideteksi oleh sensor temperatur. Dengan demikian maka rangkaian ini telah berfungsi dengan baik. Dari hasil pengujian didapatkan data seperti tabel 4.2:
30 derajat
Tabel 4.2. Data Pengujian Rangkaian ADC
4.4 Pengujian Rangkaian Display Seven Segmen
Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian ini dengan rangkaian mikrokontroler, kemudian memberikan data tertentu pada port serial dari mikrokontroler. Seven segmen yang digunakan adalah common anoda, segmen akan menyala jika diberi logika 0 dan sebaliknya segmen akan mati jika diberi logika 1. Seperti gambar 4.1
Dari hasil pengujian diperoleh data yang harus dikirimkan ke port serial untuk menampilkan angka desimal adalah sebagai berikut:
Angka Data yang dikirim
Tabel 4.3. Data Pengujian Rangkaian Display
bil8 equ 0h
bil9 equ 80h
Loop:
mov sbuf,#bil0
Jnb ti,$
Clr ti
sjmp loop
Program di atas akan menampilkan angka 0 pada semua seven segmen. Sedangkan untuk menampilkan 3 digit angka yang berbeda pada seven segmen adalah dengan mengirimkan ke 3 data angka yang akan ditampilkan pada seven segmen. Programnya adalah sebagai berikut :
Loop:
mov sbuf,#bil1
Jnb ti,$
Clr ti
mov sbuf,#bil2
Jnb ti,$
Clr ti
mov sbuf,#bil3
Jnb ti,$
Clr ti
Program di atas akan menampilkan angka 1 pada seven segmen ketiga, angka 2 pada seven segmen kedua dan angka 3 pada seven segmen pertama.
4.5 Pengujian Rangkaian relay
Pengujian rangkaian relay 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 rangkaian ini relay digunakan untuk memutuskan hubungan heater dengan sumber tegangan 12 volt, dimana hubungan yang digunakan adalah normally close (NO), dengan demikian jika relay aktip maka hubungan heater ke sumber tegangan akan terhubung, sebaliknya jika relay tidak aktip, maka hubungan heater ke sumber tegangan akan terputus.
Pengujian dilakukan dengan memberikan tegangan 5 volt pada basis transistor, jika relay aktip dan heater hidup, maka rangkaian ini telah berfungsi dengan baik.
Gambar 4.2. Gambar rangkaian pengujian relay
kemudian memberikan program sederhana pada mikrokontroler AT89S51. Program yang diberikan adalah sebagai berikut:
Setb P0.1
. . .
Perintah di atas akan memberikan logika high pada P0.1, sehingga P0.1 akan mendapatkan tegangan 5 volt. Tegangan 5 volt ini akan mengaktipkan transistor C945, sehingga relay juga menjadi aktip dan heater menyala. Berikutnya memberikan program sederhana untuk menonaktipkan relay. Programnya sebagai berikut:
Clr P0.1
Perintah di atas akan memberikan logika low pada P0.1, sehingga P0.1 akan mendapatkan tegangan 0 volt. Tegangan 0 volt ini akan menonaktipkan transistor C945, sehingga relay juga menjadi tidak aktip dan heater tidak menyala.
4.5 Pengujian Rangkaian Keypad
Pengujian rangkaian tombol ini dapat dilakukan dengan menghubungkan rangkaian ini dengan mikrokontroler AT89S51, kemudian memberikan program sederhana untuk mengetahui baik/tidaknya rangkaian ini. Rangkaian dihubungkan ke port 2. Untuk Mengecek penekanan pada 4 tombol yang paling atas, maka data awal yang dimasukkan ke port 2 adalah FEH. Dengan demikian maka pin P2.0 akan mendapat logika low (0), dan yang lainnya mendapat logika high (1), seperti gambar 4.3 :
Gambar 4.3. Pengujian Rangkaian Keypad
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
1 1 1 0 1 1 1 0
Data pada port 2 akan berubah menjadi EEH. Data inilah sebagai indikasi adanya penekanan pada tombol 1.
Jika terjadi penekanan pada Tbl 2, maka P2.0 akan terhubung ke P2.5 yang menyebabkan P2.5 juga akan mendapatkan logika low (0). Seperti berikut,
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1 1 0 1 1 1 1 0
Data pada port 2 akan berubah menjadi DEH. Data inilah sebagai indikasi adanya penekanan pada tombol 2. Demikian seterusnya untuk tombol-tombil yang lain.
Program yang diisikan pada mikrokontroler untuk menguji rangkaian keypad adalah sebagai berikut:
Tombol1:
Mov P1,#0FEH
Mov a,P0
Cjne a,#0EEH,Tombol2
Setb P0.0
Tombol2:
Cjne a,#0DEH,Tombol1
Clr P0.0
Sjmp Tombol1
Program diatas akan menunggu penekanan pada tombol 1 dan tombol 2, jika tombol 1 ditekan, maka program akan menyalakan LED yang ada pada P3.7. Jika tombol 2 ditekan, maka program akan mematikan LED yang ada pada P3.7.
Jika rangkaian telah berjalan sesuai program yang diberikan, maka rangkaian telah berfungsi dengan baik.
4.7 Pengujian Rangkaian Keseluruhan
Setelah keseluruhan dibuat dan diuji serta program lengkap dimasukkan ke mikrokontroller AT89S51, maka berikut ini adalah rangkaian kerja dari alat yang dibuat :
1. Pada saat PSA dihidupkan, program pada mikrokontroler akan berjalan dan akan memberikan perintah pada tiap-tiap rangkaian LM35 akan mendeteksi suhu dan mikrokontroller akan menampilkannya ke display seven segment. 2. Sesuai dengan masukan dari perubahan suhu yang terjadi, maka data masukan
ke ADC berupa data analog dan diubah ke data digital oleh ADC. Kemudian perubahan data yang telah menjadi data digital dikirim ke mikrokontroller, kemudian akan memberikan logika high atau low. Jika logika high maka relay akan aktif/high menyebabkan tegangan 12 volt mengalir sehingga relay hidup dan mengaktifkan heater. Jika tidak terjadi hal demikian perlua dianalisa kerusakannya apakah rangkaian relay dari mikrokontroller yang rusak.
3. Jika perubahan suhu dibawah suhu normal maka heater akan hidup.
4. Jika rangkaian tidak ada yang terhubung singkat atau bocor atau jika ada komponen yang rusak maka rangkaian akan berjalan sesuai yang di inginkan. 5. Jika ada kerusakan pada rangkaian maka diperiksa tiap sambungan ataupun
tiap jalur menggunakan multimeter.
BAB V
KESIMPULAN DAN SARAN
5.1Kesimpulan
1. Peletakan sensor dan sistem pemanas yang digunakan menjadi faktor penentu utama keberhasilan sistem ini. Semakin dekat peletakan sensor semakin mudah terbaca nilai suhu.
2. Mikrokontroler tidak dapat mengendalikan heater secara langsung, karena itu digunakan relay untuk mengendalikannya.
3. Mikrokontroler AT89S51 tidak dapat mengenali data analog, karena itu dibutuhkan ADC yang dapat mengubah masukan analog menjadi output digital, sehingga mikrokontroler mengenali data tersebut.
4. Program yang dimasukkan kedalam mikrokontroler dengan menjalankan sistem dan telah bekerja dengan baik.
5. Alat pengatur suhu ruangan ini hanya mampu menaikkan suhu maksimum sampai 46o C dengan waktu ± 4 menit
5.1 Saran
1. Untuk meningkatkan ke-efektifitasan pengukuran dan pengendalian temperatur pada ruangan, perlu dirancang suatu perangkat tambahan untuk menggantikan kerja dari rangkaian pengukuran dan pengendalian temperatur jika mengalami kerusakan.