Sistem Pengiriman Data Temperatur Jarak Jauh Menggunakan Infrared Berbasis AT89S51
SISTEM PENGIRIMAN DATA TEMPERATUR JARAK JAUH
MENGGUNAKAN INFRARED BERBASIS AT89S51
TUGAS AKHIR
SINEMASO H. MANIK
052408061
PROGRAM STUDI FISIKA INSTRUMENTASI D-3
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2008
(2)
SISTEM PENGIRIMAN DATA TEMPERATUR JARAK JAUH MENGGUNAKAN INFRARED BERBASIS AT89S51
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Ahli Madya
SINEMASO H. MANIK 052408061
PROGRAM STUDI D3 FISIKA INSTRUMENTASI DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2008
(3)
PERNYATAAN
SISTEM PENGIRIMAN DATA TEMPERATUR JARAK JAUH MENGGUNAKAN INFRARED BERBASIS AT89S51
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2008
SINEMASO H. MANIK 052408061
(4)
PERSETUJUAN
Judul : SISTEM PENGIRIMAN DATA TEMPERATUR
JARAK
JAUH MENGGUNAKAN INFRARED BERBASIS AT89S51
Kategori : TUGAS AKHIR
Nama : SINEMASO H. MANIK
Nomor Induk Mahasiswa : 052408061
Program Studi : DIPLOMA III FISIKA INSTRUMENTASI Departemen : FISIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM
(FMIPA) UNIVERSITAS SUMATERA UTARA MEDAN
Diluluskan di
Medan, Juli 2008 Diketahui oleh
Departemen Fisika FMIPA USU Pembimbing
Ketua Program Studi
Drs. Syahrul Humaidi, M.Sc
NIP. 132 050 870 NIP. 131 695 906
(5)
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa yang telah memberikan anugerah-Nya sehingga penulisan Tugas Akhir ini dapat diselesaikan dalam waktu yang telah ditentukan.
Ucapan terima kasih saya sampaikan kepada Ibu Dra. Manis Sembiring, M.S selaku Dosen Pembimbing pada penyelesaian tugas akhir ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan tugas akhir ini. Panduan ringkas, padat dan professional telah diberikan kepada saya agar dapat menyelesaikan tugas ini. Ucapan terima kasih juga kepada ketua dan sekretaris program studi Bapak Drs. Syahrul Humaidi, M.Sc dan Ibu Dra. Justinon, M.Si., Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen pada Departemen Fisika FMIPA USU, Pegawai di FMIPA USU, dan rekan-rekan kuliah. Akhirnya, tidak terlupakan juga kepada Ayahanda Drs. Berman Manik, Ibunda Nurcahaya Ritonga, juga Abang yang saya sayangi Fransen, Patar, Erwin, dan adik saya Ester Nova Enjelina beserta teman-teman Fisika Instrumentasi 2005 yang selama ini memberikan bantuan dan dorongan kepada penulis. Tak lupa juga buat teman kos pemda Tk.I No. 6 (B’ Rudi, SE., B’ Louis, Sandro, Hotma, Joko, Uli dan semua yang dapat disebutkan satu persatu) yang telah memberikan bantuan dan dorongan. Semoga Tuhan Yang Maha Esa membalasnya. Tuhan Memberkati.
(6)
ABSTRAK
Tugas Akhir ini membahas Sistem Pengiriman Data Temperatur Jarak Jauh Menggunakan Infrared Berbasis AT89S51 dimana komponen-komponen dasar berupa sebuah sensor suhu, mikrokontroller dan display seven segmen sebagai fasilitas penampil. Sistem ini menjadi satu hal yang sangat penting dalam kegiatan perindustrian, karena merupakan sebagian kecil dari sebuah proses kontrol. Berkenaan dengan pentingnya sistem, maka dilakukan perancangan sistem pengiriman data temperatur jarak jauh yang mampu melakukan kegiatan monitoring suhu suatu daerah (plant) dengan menggunakan infrared. Data yang akan diukur merupakan sebuah besaran fisis temperatur sehingga untuk dapat diolah dan ditampilkan dalam bentuk sistem elektris digunakan sensor suhu LM35 yang mampu mengkonversi besaran tersebut dengan kenaikan 10mV/ºC. Untuk dapat merancang sistem maka pertama kali dilakukan proses mengubah suhu menjadi tegangan analog menggunakan sensor suhu LM35. Setelah melalui proses pengkondisian sinyal dengan cara dikuatkan, tegangan analog diubah menjadi data digital menggunakan ADC 0804. Data digital yang diperoleh kemudian diolah oleh Mikrokontroller AT89S51 dan ditampilkan, sehingga didapatkan suatu informasi mengenai suhu plant dengan satuan ºC pada display seven segmen. Dari perancangan sistem akuisisi data suhu didapatkan hasil bahwa sistem ini memiliki kemampuan untuk mengukur suhu dari 25ºC sampai 100ºC dengan error rata-rata penunjukan suhu sebesar 0,2125°C.
(7)
DAFTAR ISI
Halaman
Persetujuan ii Pernyataan iii
Penghargaan iv
Abstrak v
Daftar Isi vi
Daftar Gambar viii
Daftar Tabel ix
Bab 1 Pendahuluan 1
1.1Latar Belakang Masalah 1
1.2Rumusan Masalah 2
1.3Tujuan Penulisan 3
1.4Sistematika Penulisan 4
Bab 2 Landasan Teori 6
2.1 Perangkat Keras 6
2.1.1 Arsitektur Mikrokontoler AT89S51 6
2.1.2 Konstruksi AT89S51 7
2.1.3 Seven Segmen 11
2.1.4 Analog to Digital Converter (ADC) 14
2.1.5 Sensor Suhu LM 35 15
2.2 Perangkat Lunak 15
(8)
2.2.2 Software 8051 Editor,Assembler,Simulator ( IDE ) 19
2.2.3 Software Downloader 19
Bab 3 Perancangan Alat dan Bahan 21
3.1 Diagram Blok 21
3.2 Perancangan Power Supply ( PSA) 22
3.3 Rangkaian Mikrokontroller AT89S51 23 3.4 Rangkaian Sensor temperatur dan ADC 25
3.5 Rangkaian Display Seven Segmen 27
3.6 Rangkaian Pengirim Inframerah 28
3.7 Rangkaian Penerima Inframerah 29
Bab 4 Analisa Rangkaian dan sistem kerja alat 31
4.1 Pengujian rangkaian Power Supply ( PSA ) 31 4.2 Pengujian Rangkaian Mikrokontroler AT89S51 31 4.3 Pengujian Rangkaian Display Seven Segmen 33 4.4 Rangkaian Pengirim data melalui inframerah 36 4.5 Rangkaian Penerima Inframerah 42
4.6 Pengujian Rangkaian ADC 45
Bab 5 Kesimpulan dan Saran 47
5.1 Kesimpulan 47
5.2 Saran 47
Daftar Pustaka 48
(9)
DAFTAR GAMBAR
Halaman
Gambar 2.1 IC Mikrokontroler AT89S51 9
Gambar 2.2 Susunan Seven Segmen 12
Gambar 2.3 Konfigurasi seven segmen tipe common anoda 12 Gambar 2.4 Konfigurasi seven segmen tipe common katoda 13
Gambar 2.5 IC ADC 0804 14
Gambar 2.6 LM 35 Basic Temperature Sensor 15
Gambar 2.7 8051 Editor, Assembler, Simulator (IDE) 19
Gambar 2.8 ISP-Flash Programmer 3.0a 20
Gambar 3.1 Diagram Blok 21
Gambar 3.2 Rangkaian Power Supplay (PSA) 22
Gambar 3.3 Rangkaian Mikrokontroller AT89S51 23
Gambar 3.4 Rangkaian Sensor Temperatur dan ADC 25
Gambar 3.5 Rangkaian Display Seven Segmen 27
Gambar 3.6 Rangkaian Pengirim Data Melalui Inframerah 28
Gambar 3.7 Rangkaian Penerima Inframerah 29
Gambar 4.1 Rangkaian Pengirim Data Melalui Inframerah 36
(10)
DAFTAR TABEL
Halaman Tabel 4.1 Nilai Temperatur yang dideteksi oleh sensor temperatur 44
(11)
ABSTRAK
Tugas Akhir ini membahas Sistem Pengiriman Data Temperatur Jarak Jauh Menggunakan Infrared Berbasis AT89S51 dimana komponen-komponen dasar berupa sebuah sensor suhu, mikrokontroller dan display seven segmen sebagai fasilitas penampil. Sistem ini menjadi satu hal yang sangat penting dalam kegiatan perindustrian, karena merupakan sebagian kecil dari sebuah proses kontrol. Berkenaan dengan pentingnya sistem, maka dilakukan perancangan sistem pengiriman data temperatur jarak jauh yang mampu melakukan kegiatan monitoring suhu suatu daerah (plant) dengan menggunakan infrared. Data yang akan diukur merupakan sebuah besaran fisis temperatur sehingga untuk dapat diolah dan ditampilkan dalam bentuk sistem elektris digunakan sensor suhu LM35 yang mampu mengkonversi besaran tersebut dengan kenaikan 10mV/ºC. Untuk dapat merancang sistem maka pertama kali dilakukan proses mengubah suhu menjadi tegangan analog menggunakan sensor suhu LM35. Setelah melalui proses pengkondisian sinyal dengan cara dikuatkan, tegangan analog diubah menjadi data digital menggunakan ADC 0804. Data digital yang diperoleh kemudian diolah oleh Mikrokontroller AT89S51 dan ditampilkan, sehingga didapatkan suatu informasi mengenai suhu plant dengan satuan ºC pada display seven segmen. Dari perancangan sistem akuisisi data suhu didapatkan hasil bahwa sistem ini memiliki kemampuan untuk mengukur suhu dari 25ºC sampai 100ºC dengan error rata-rata penunjukan suhu sebesar 0,2125°C.
(12)
BAB 1
PENDAHULUAN
1.1. Latar Belakang Masalah
Kebutuhan manusia terhadap peralatan yang cerdas dan dapat bekerja secara otomatis semakin meningkat, disamping cara kerjanya yang teliti juga peralatan ini tidak perlu dipantau setiap saat, tetapi mengaktifkan peralatan tersebut dan kemudian mengaturnya sesuai keinginan, maka peralatan tersebut akan mengerjakan tugasnya sesuai dengan program yang telah diberikan.
Untuk merancang sebuah peralatan yang cerdas dan dapat bekerja secara otomasis tesebut, dibutuhkan sebuah alat/komponen yang dapat menghitung, mengingat, dan mengambil pilihan. Kemampuan ini dimiliki oleh sebuah komputer (PC), namun tidaklah efisien jika harus menggunakan komputer hanya untuk keperluan tersebut diatas. Untuk itu komputer dapat digantikan dengan sebuah mikrokontroler. Mikrokontroler merupakan sebuah chip atau IC yang di dalamnya terdapat sebuah prosessor dan flash memori yang dapat dibaca/tulis sampai 1000 kali, sehingga biaya pengembangan menjadi murah karena dapat dihapus kemudian diisi kembali dengan program lain sesuai dengan kebutuhan.
(13)
Salah satu alat yang cerdas yang dibutuhkan oleh manusia adalah pengontrol temperatur ruangan otomatis. Alat ini akan menjaga temperatur ruangan agar tidak melebihi temperatur tertentu yang telah ditetapkan. Sebagai contoh jika temperatur yang ditetapkan adalah 30oC, maka jika temperatur ruangan tersebut sama atau melebihi 30oC, alat akan secara otomatis menghidupkan pendingin. Dan sebaliknya jika temperatur ruangan lebih kecil dari 30o
Alat seperti ini dibutuhkan untuk menjaga kestabilan temperatur suatu ruangan. Sebagai contoh ruangan tempat penyimpanan bahan-bahan kimia yang membutuhkan temperatur khusus dan juga dapat diaplikasikan untuk menjaga kestabilan temperatur dalam rumah secara otomatis.
C, maka alat akan mematikan pendingin.
Kendala lainnya yang sering dialami oleh manusia adalah ketika harus mengukur temperatur di tempat yang memiliki temperatur yang cukup tinggi. Pekerjaan ini akan sangat menyulitkan. Karena itu dibutuhkan sebuah alat yang dapat mengirimkan data temperatur di suatu ruangan ke tempat lain.
1.2. Rumusan Masalah
Berdasarkan uraian yang terdapat dalam latar belakang di atas, maka dalam tugas akhir ini akan dibuat sebuah alat yang dapat mengirimkan data temperaturnya ke tempat lain.
(14)
Pada alat ini akan digunakan dua buah mikrokontroler AT89S51, sebuah pemancar infra merah, sebuah penerima sinar infra merah. Beberapa buah seven segmen, sebuah sensor suhu dan sebuah ADC. Mikrokontroler AT89S51 sebagai otak dari sistem, dimana yang satu berfungsi mengolah data temperature yang dihasilkan oleh sensor suhu dan ADC, kemudian menampilkannya pada seven segmen sekaligus mengirimka data temperature tersebut ke rangkaian penerima. Sedangkan mikrokontroler yang kedua berfungsi untuk mengolah data yang dikirimkan oleh mikrokontroler pertama melalui infra merah, kemudian menampilkannya pada seven segmen.
Pemancar infra merah berfungsi untuk mengirimkan data temperature ke rangkaian penerima. Penerima infra merah berfungsi untuk menerima data yang dipancarkan oleh pemancar infra merah. Seven segmen berfungsi sebagai display nilai dari temperatur. Sensor suhu berfungsi untuk mengukur temperature dan merubahnya menjadi tegangan dan ADC ( Analog to Digital Converter) berfungsi untuk merubah tegangan yang dihasilkan oleh sensor temperature manjadi 8 bit data biner sehingga dapat diolah oleh mikrokontroler AT89S51.
1.3 Tujuan Penulisan
(15)
1. Memanfaatkan mikrokontroler sebagai alat ukur temperatur secara digital (termometer digital).
2. Memanfaatkan mikrokontroler sebagai alat pengiriman dan penerimaan data secara wireless, dengan menggunakan infra merah.
3. Membuat alat sederhana yang dapat mengirimkan data temperatur secara otomatis.
Batasan masalah:
Adapun batasan permasalahan yang dibahas dalam tugas akhir ini adalah: 1. sensor suhu yang digunakan adalah LM35
2. pemancar yang digunakan adalah infra red dan penerima sinyal digunakan IC TSOP
3. jarak pengiriman data berkisar 50 meter
4. pada alat ini difokuskan hanya pada pengiriman data temperatur saja dan tidak pada pengontrolan suhu
1.4 Sistematika Penulisan
Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja dari alat yang dapat mengirimkan data temperaturnya ke tempat lain, maka penulis menulis laporan ini sebagai berikut:
(16)
Dalam bab ini berisikan mengenai latar belakang, tujuan penulisan, batasan masalah, serta sistematika penulisan.
BAB II. LANDASAN TEORI
Landasan teori, dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian Teori pendukung itu antara lain tentang mikrokontroler AT89S51 (hardware dan software), bahasa program yang digunakan, serta cara kerja dari sensor temperature dan ADC ( Analog to Digital Converter ).
BAB III. PERANCANGAN ALAT DAN PROGRAM
Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok dari rangkaian, diagram alir dari program yang akan diisikan ke mikrokontroler AT89S51.
BAB IV. ANALISA RANGKAIAN DAN SISTEM KERJA ALAT
Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja alat, penjelasan mengenai rangkaian-rangkaian yang digunakan, penjelasan mengenai program yang diisikan ke mikrokontroler AT89S51.
(17)
Bab ini merupakan penutup yang meliputi tentang kesimpulan dari pembahasan yang dilakukan dari tugas akhir ini serta saran apakah rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.
(18)
BAB 2
LANDASAN TEORI
2.1. PERANGKAT KERAS
2.1.1. Arsitektur Mikrokontroler AT89S51
Mikrokontroler, sebagai suatu terobosan teknologi mikrokontroler 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 massal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebutuhan pasar, mikrokontroler 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
(19)
ditangani dengan mikrokontroler, karena tidak mungkin menggunakan komputer PC yang harus dipasang disamping (atau di belakang) mesin permainan yang bersangkutan.
Selain sistem tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam bidang pengukuran jarak jauh atau yang dikenal dengan sistem telemetri. Misalnya pengukuran disuatu tempat yang membahayakan manusia, maka akan lebih nyaman jika dipasang suatu sistem 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 sistem akuisisi data sekaligus sistem pengiriman data secara serial (melalui pemancar), yang semuanya itu bisa diperoleh dari mikrokontroler yang digunakan.
Tidak seperti sistem 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 sistem 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
(20)
ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.
2.1.2. Konstruksi AT89S51
Mikrokontroler AT89S52 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 AT89S52 otomatis direset 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 mikrokontroler. Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda.
Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan
catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan progam ini dinamakan sebagai memori progam.
Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu
daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.
(21)
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 AT89S52 adalah Flash PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S52 Flash PEROM Programmer.
Memori Data yang disediakan dalam chip AT89S52 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) adalah sebagai berikut (gambar 2.1)
(22)
Gambar 2.1. 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
(23)
multiplex address/data, port ini akan mempunyai internal pull up. Pada saat flash progamming diperlukan eksternal pull up, terutama pada saat verifikasi program.
Port 2 (Pin 21 – pin 28)
Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengaksememori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. Port ini mempunyai internal pull
up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini
dapat memberikan output sink keempat buah input TTL.
Port 3 (Pin 10 – pin 17)
Port 3 merupakan 8 bit port I/O dua arah dengan internal pullup. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut :
Nama pin Fungsi
P3.0 (pin 10) RXD (Port input serial) P3.1 (pin 11) TXD (Port output serial) P3.2 (pin 12) INTO (interrupt 0 eksternal) P3.3 (pin 13) INT1 (interrupt 1 eksternal) P3.4 (pin 14) T0 (input eksternal timer 0) P3.5 (pin 15) T1 (input eksternal timer 1)
P3.6 (pin 16) WR (menulis untuk eksternal data memori) P3.7 (pin 17) RD (untuk membaca eksternal data memori)
RST (pin 9)
(24)
ALE/PROG (pin 30)
Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input progam (PROG) selama memprogam Flash.
PSEN (pin 29)
Progam store enable digunakan untuk mengakses memori progam eksternal.
EA (pin 31)
Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan 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)
(25)
2.1.3 Seven Segmen
Seven segmen merupakan komponen elektronika yang banyak digunakan untuk menampilkan angka. Seven segmen ini sebenarnya merupakan LED yang disusun sedemikian rupa sehingga membentuk suatu pola tertentu, dimana jika LED –LED tersebut dinyalakan dengan kombinasi tertentu, maka akan terbentuk suatu angka tertentu.
Seven segmen mempunyai 7 buah segmen ditambah 1 segmen yang berfungsi sebagai desimal point. Gambar susunan dari seven segmen ditunjukkan pada gambar berikut ini :
Gambar 2.2. Susunan seven segmen
Segmen yang atas disebut segmen a, segmen sebelah kanan atas disebut segmen b, dan seterusnya sesuai gambar di atas. Dp merupakan singkatan dari desimal point.
Seven segmen ada 2 tipe, yaitu common anoda dan common katoda. Pada seven segmen tipe common anoda, anoda dari setiap LED dihubungkan menjadi satu
(26)
kemudian dihubungkan ke sumber tegangan positip dan katoda dari masing-masing LED berfungsi sebagai input dari seven segmen, seperti ditunjukkan pada gambar berikut ini :
Gambar 2.3. Konfigurasi seven segmen tipe common anoda
Sesuai dengan gambar di atas, untuk menyalakan salah satu segmen, maka katodanya harus diberi tegangan 0 volt atau logika low. Misalnya jika segmen a akan dinyalakan, maka katoda pada segmen a harus diberi tegangan 0 volt atau logika low, dengan demikian maka segmen a akan menyala. Demikian juga untuk segmen lainnya.
Pada seven segmen tipe common katoda, kaoda dari setiap LED dihubungkan menjadi satu kemudian dihubungkan ke ground dan anoda dari masing-masing LED berfungsi sebagai input dari seven segmen, seperti ditunjukkan pada gambar berikut ini :
(27)
Gambar 2.4. Konfigurasi seven segmen tipe common katoda
Sesuai dengan gambar di atas, maka untuk menyalakan salah satu segmen, maka anodanya harus diberi tegangan minimal 3 volt atau logika high. Misalnya jika segmen a akan dinyalakan, maka anoda pada segmen a harus diberi tegangan minimal 3 volt atau logika high, dengan demikian maka segmen a akan menyala. Demikian juga untuk segmen lainnya.
2.1.4 Analog to Digital Converter (ADC)
ADC yang digunakan adalah ADC 0804. ADC ini akan merubah tegangan yang merupakan keluaran dari LM35 menjadi 8-bit data biner. Gambar IC ADC 0804 tampak seperti di bawah:
(28)
Gambar 2.5. IC ADC 0804
8-bit data yang keluar dari ADC inilah yang akan dioleh oleh mikrokontroler kemudian ditampilkan pada display seven segmen.
(29)
2.1.5 Sensor Suhu LM35
Untuk mendeteksi suhu digunakan sebuah sensor suhu LM 35 yang dapat dikalibrasikan langsung dalam C, LM 35 ini difungsikan sebagai basic temperature sensor seperti pada gambar 2.6
Gambar 2.6. LM 35 basic temperature sensor
Vout dari LM 35 ini dihubungkan dengan ADC (Analog To Digital Converter). Dalam suhu kamar (25oC) tranduser ini mampu mengeluarkan tegangan 250mV dan 1,5V pada suhu 150oC dengan kenaikan sebesar 10mV/oC.
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
(30)
ini hanya ada 51 instruksi. Dari 51 instruksi, yang sering digunakan orang hanya 10 instruksi. Instruksi –instruksi tersebut antara lain :
1. Instruksi MOV
Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung.
Contoh pengisian nilai secara langsung
MOV R0,#20h
Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0). Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai. Contoh pengisian nilai secara tidak langsung
MOV 20h,#80h ...
... MOV R0,20h
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
(31)
MOV R0,#80h Loop: ...
...
DJNZ R0,Loop ...
R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya.
3. Instruksi ACALL
Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :
...
ACALL TUNDA ...
TUNDA:
...
4. Instruksi RET
Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan. Contoh,
ACALL TUNDA ...
TUNDA:
... RET
(32)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh,
Loop:
... ... JMP Loop
6. Instruksi JB (Jump if bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1). Contoh,
Loop:
JB P1.0,Loop ...
7. Instruksi JNB (Jump if Not bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0). Contoh,
Loop:
JNB P1.0,Loop ...
8. Instruksi CJNZ (Compare Jump If Not Equal)
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu. Contoh,
Loop:
...
(33)
...
Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi selanjutnya.
9. Instruksi DEC (Decreament)
Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1. Contoh,
MOV R0,#20h R0 = 20h ...
DEC R0 R0 = R0 – 1 ...
10.Instruksi INC (Increament)
Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh,
MOV R0,#20h R0 = 20h ...
INC R0 R0 = R0 + 1 ...
11.Dan lain sebagainya
(34)
Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Tampilannya seperti di bawah ini.
Gambar 2.7. 8051 Editor, Assembler, Simulator (IDE)
Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi.
Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an. Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroller.
(35)
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.8. 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.
(36)
BAB 3
PERANCANGAN ALAT
3.1 Diagram Blok
Adapun diagram blok dari sistem ini dapat digambarkan seperti gambar dibawah ini (gambar 3.1).
Mikrokontroller DISPLAY SEVEN
SEGMEN
ADC SENSOR LM 35
PEMANCAR
Mikrokontroller DISPLAY SEVEN
SEGMEN
(37)
Vreg
LM7805CT
IN OUT
TIP32C
100ohm
100uF
330ohm 220V 50Hz 0Deg
TS_PQ4_12
2200uF 1uF
1N5392GP 1N5392GP
12 Volt
5 Volt
Gambar 3.1. Diagram Blok
3.2 Perancangan Power Supplay (PSA)
Rangkaian ini berfungsi untuk mensupplay tegangan ke seluruh rangkaian yang ada. Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt, keluaran 5 volt digunakan untuk mensupplay tegangan ke seluruh rangkaian, Rangkaian power supplay ditunjukkan pada gambar 3.1 berikut ini :
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
(38)
5V VCC 5V VCC 10uF 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) P3.6 (WR) P3.5 (T1) 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 25
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
Rangkaian ini berfungsi sebagai pusat kendali dari seluruh sistem yang ada. Kompoen utama dari rangkaian ini adalah IC mikrokontroler AT89S51. Pada IC inilah semua program diisikan, sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki. Rangkaian mikrokontroler ditunjukkan pada gambar berikut ini:
(39)
Gambar 3.3 Rangkaian mikrokontroller AT89S51
Mikrokontroler ini memiliki 32 port I/O, yaitu port 0, port 1, port 2 dan port 3. Pin 32 sampai 39 adalah Port 0 yang merupakan saluran/bus I/O 8 bit. Pin 1 sampai 8 adalah port 1. Pin 21 sampai 28 adalah port 2. Dan Pin 10 sampai 17 adalah 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 program pada 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 :
10 10 1 det
t = =ΩR x C K =x µF m ik
(40)
3.4 Rangkaian Sensor Temperatur dan ADC (Analog to Digital Converter)
Untuk mengetahui temperatur dalam inkibator, digunakan LM35 yang merupakan sensor temperatur. Output dari LM35 ini dimasukkan sebagai input ke Op-Amp kemudian dimasukkan sebagi input ADC. Rangkaiannya seperti dibawah ini:
Gambar 3.4 Rangkaian Sensor Temperatur dan 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
3 2 4 8 1 LM358N 5 6 4 8 7 LM358N 5V VCC 5V VCC 50% 4.7k 330 1uF 100pF 330 LM35 + 330 D1 D0 D2 D3 D4 D5 D6 D7 VCC CLK R CS RD WR CLK IN INTR V IN (+) V IN (-) A GND V REF/2 D GND ADC0804 100pF 1.0k 100pF 100pF 10k Out Vreg LM7809CT IN OUT Gnd 1.0k 100uF 100pF Vreg LM7805CT IN OUT 100uF 100pF 330 4.7k
P0.0 (AT89S51)
P2.0 (AT89S51) P2.1 (AT89S51) P2.2 (AT89S51) P2.3 (AT89S51) P2.4 (AT89S51) P2.5 (AT89S51) P2.6 (AT89S51) P2.7 (AT89S51) 4.7k 2SA733 5V VCC 12V VDD 330 10k 5V VCC
(41)
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 LM35 diinputkan ke Op Amp LM358. Pada Op Amp ini tidak terjadi penguatan tegangan tetapi terjadi penguatan arus. Output dari Op Amp ini merupakan input pada ADC, ini berarti setiap perubahan tegangan yang terjadi pada input ini maka akan terjadi perubahan pada output ADC.
Keluaran dari rangkaian sensor cahaya dihubungkan ke rangkaian ADC untuk diubah datanya menjadi data biner agar dapat dikenali oleh mikrokontroler AT89S51.
Untuk mendapatkan Vref/2 digunakan dioda zener 4,7 volt, kemudian outputnya dihubungkan ke rangkaian pembagi tegangan. Potensio yang digunakan adalah 1 K ohm.
Output dari ADC dihubungkan ke mikrokontroler, sehingga setiap perubahan output ADC yang disebabkan oleh perubahan inputnya (tegangan baterai) akan diketahui oleh mikrokontroler.
(42)
SEVEN_SEG_DISPLAY
A B C DE F G
In Cl o ck O ut
D6 D5 D4 D3 D2 D1 D0
4094 D7 2 3 10 14 13 12 11 7 6 5 4 SEVEN_SEG_DISPLAY
A B C DE F G
In Cl o ck O ut
D6 D5 D4 D3 D2 D1 D0
4094 D7 2 3 10 14 13 12 11 7 6 5 4 SEVEN_SEG_DISPLAY
A B C DE F G
In Cl o ck O ut
D6 D5 D4 D3 D2 D1 D0
4094 D7 2 3 10 14 13 12 11 7 6 5 4
P3.0 AT89S51
P3.1 AT89S51
3.5 Rangkaian Display Seven Segmen
Rangkaian display seven segmen ini berfungsi untuk menampilkan nilai dari hasil pengukuran suhu. Rangkaian display seven segmen ditunjukkan pada gambar 3.3 berikut ini :
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
(43)
Dengan menghubungkan P3.0 dengan IC serial to paralel (IC 4094), maka data serial yang dikirim akan diubah menjadi data paralel. Kemudian IC 4094 ini dihubungkan dengan seven segmen agar data tersebut dapat ditampilkan dalam bentuk angka. Seven segmen yang digunakan adalah tipe common katoda (aktif high), ini berarti segmen akan menyala jika diberi data high (1) dan segmen akan mati jika diberi data low (0).
3.6 Rangkaian Pengirim Infra Merah
Data yang yang telah diolah mikrokontroler AT89S51, selain ditampilkan pada display seven segmen, data tersebut juga dikirimkan ke rangkaian penerima dengan menggunakan LED infra merah. Rangkaiannya seperti gambar di bawah ini :
Gambar 3.6 Rangkaian Pengirim Data Melalui Infra Merah P3.7 ( AT89S51)
LED_ir 5V VCC
330
R2 4.7k
(44)
Pada rangkaian di atas LED infra merah akan menyala jika basis pada transistor C945 diberi tegangan yang lebih besar dari 0,7 volt, ini akan sama artinya jika pada P3.7 AT89S51 diberi logika high (1), karena pin yang diberi logika high akan mempunyai tegangan 4 s/d 5 volt, cukup untuk mengaktipkan transistor. Sedangkan untuk mematikan LED infra merah, maka P3.7 AT89S51 harus diberi logika low (0), karena dengan memberikan logika low pada P3.7, maka P3.7 akan memiliki tegangan 0 s/d 0,009 volt, tegangan ini akan menyebabkan transistor tidak aktip.
Untuk pengiriman data agar data dapat dikirimkan dari jarak yang jauh, maka LED infra merah harus dipancarkan dengan frekuensi 38 KHz karena frekuensi ini bebas dari gangguan frekuensi infra merah alam. Jika LED infra merah dipancarkan dengan frekuensi selai 38 KHz, maka pancarannya akan terganggu oleh frekuensi-frekuensi infra merah dari alam, seperti frekuensi-frekuensi infra merah yang dipancarkan oleh matahari, tumbuhan, bahkan badan manusia. Dengan menggunakan frekuensi 38 KHz, maka pancaran LED infra merah yang dihasilkan oleh rangkaian tidak terganggu oleh pancaran infra merah alam, sehingga jarak pengiriman data semakin jauh.
(45)
P3.7 ( AT89S51) 5V
VCC
100
10uF
i _1
0
i
i _1
i 3.7 Rangkaian Penerima Infra Merah
IC yang digunakan sebagai penerima infra merah adalah IC TSOP 1738. IC ini sering digunakan sebagai penerima/receiver remote control dari TV atau VCD. Rangkaiannya tampak seperti dibawah ini:
TSOP1738
Gambar 3.7 Rangkaian Penerima Infra Merah
Pada rangkaian diatas digunakan resistor 100 ohm untuk membatasi arus yang masuk pada rangkaian, sedangkan kapasitor 10 μF digunakan agar arus yang masuk ke IC TSOP 1738 lebih stabil.
IC ini mempunyai karakteristik yaitu akan mengeluarkan logika high (1) atau tegangan ± 4,5 volt pada outputnya jika IC ini mendapatkan pancaran sinar infra merah dengan frekuensi antara 38 – 40 KHz, dan IC ini akan megeluarkan sinyal low (0) atau tegangan ± 0,109 volt jika pancaran sinar infra merah dengan frekuensi antara 38 – 40 KHz berhenti, namun logika low tersebut hanya sesaat yaitu sekitar 1200 μs,
(46)
setelah itu outputnya kan kembali menjadi high. Sifat inilah yang dimanfaatkan sebagai pengiriman data.
Output dari IC ini dihubungkan ke P3.7 pada mikrokontroler, sehingga setiap kali IC ini mengeluarkan logika low atau hing pada outputnya, maka mikrokontroller dapat langsung mendeteksinya
(47)
BAB 4
ANALISA RANGKAIAN DAN SISTEM KERJA ALAT
4.1 Pengujian Rangkaian Power Supplay (PSA)
Pengujian pada bagian rangkaian power supplay ini dapat dilakukan dengan mengukur tegangan keluaran dari rangkaian ini dengan menggunakan volt meter digital. 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 tegangan 5,1 volt ini cukup untuk mensupplay tegangan ke mikrokontroler AT89S51. Sedangkan tegangan keluaran kedua sebesar 11,9 volt. Tegangan ini digunakan untuk mensupplay tegangan ke ADC., dimana ADC dapat aktif pada tegangan 9 sampai 15 volt, sehingga tegangan ini sudah memenuhi syarat untuk mengaktifkan ADC.
(48)
4.2 Pengujian Rangkaian Mikrokontroler AT89S51
Untuk mengetahui apakah rangkaian mikrokontroler AT89S51 telah bekerja dengan baik, maka dilakukan pengujian.Pengujian bagian ini dilakukan dengan memberikan program sederhana pada mikrokontroler AT89S51. Programnya adalah sebagai berikut:
Loop:
Setb P0.0 Acall tunda 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 mati. Acall tunda akan menyebabkan LED ini mati selama beberapa saat. Perintah Clr P0.0 akan menjadikan P0.0 berlogika low yang menyebabkan LED akan nyala. Perintah Acall tunda akan menyebabkan LED ini nyala selama beberapa saat.
(49)
Perintah Sjmp Loop akan menjadikan program tersebut berulang, sehingga akan tampak LED tersebut tampak berkedip.
Lamanya waktu tunda dapat dihitung dengan perhitungan sebagai berikut : Kristal yang digunakan adalah kristal 12 MHz, sehingga 1 siklus mesin membutuhkan
waktu = 12 1
12 MHz = mikrodetik, untuk 2 siklus dihitung dengan cara yang sama sehingga diperoleh harga sebagai berikut:
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
Dari table diatas, maka dapat dibuat program sebagai berikut: Tunda:
mov r7,#255 2 Tnd: mov r6,#255 2
djnz r6,$ 255 x 2 = 510 x 255 = 131.070 = 131.073 2
1
djnz r7,loop3 ret
(50)
Jadi waktu yang dibutuhkan untuk mengerjakan program di atas adalah 131.073
μdetik atau 0,131073 detik dan dapat dibulatkan menjadi 0,13 detik.
Jika program tersebut diisikan ke mikrokontroler AT89S51, kemudian mikrokontroler dapat berjalan sesuai dengan program yang diisikan, maka rangkaian minimum mikrokontroler AT89S51 telah bekerja dengan baik.
4.3 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, dimana semen akan menyala jika diberi logika 0 dan sebaliknya segmen akan mati jika diberi logika 1.
Dari hasil pengujian diperoleh data yang harus dikirimkan ke port serial untuk menampilkan angka desimal adalah sebagai berikut:
Angka Data yang dikirim
1 0EDH
2 19H
(51)
4 0C5H
5 83H
6 03H
7 0E9H
8 01h
9 81H
0 21H
Program yang diisikan pada mikrokontroler untuk menampilkan nilai-nilai tersebut adalah sebagai berikut:
bil0 equ 21h bil1 equ 0edh bil2 equ 19h bil3 equ 89h bil4 equ 0c5h bil5 equ 83h bil6 equ 03h bil7 equ 0e9h bil8 equ 01h bil9 equ 81h
Loop:
mov sbuf,#bil0 Jnb ti,$
Clr ti sjmp loop
(52)
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 sjmp loop
Program di atas akan menampilkan angka 1 pada seven segmen ketiga, angka 2 pada seven segmen kedua dan angka 3 pada seven segmen pertama.
(53)
4.4 Rangkaian Pengirim Data Melalui Infra Merah
Data yang yang telah diolah mikrokontroler AT89S51, selain ditampilkan pada display seven segmen, data tersebut juga dikirimkan ke rangkaian penerima dengan menggunakan LED infra merah. Rangkaiannya seperti gambar di bawah ini :
Gambar 4.1 Rangkaian Pengirim Data Melalui Infra Merah
Pada rangkaian di atas LED infra merah akan menyala jika basis pada transistor C945 diberi tegangan yang lebih besar dari 0,7 volt, ini akan sama artinya jika pada P3.7 AT89S51 diberi logika high (1), karena pin yang diberi logika high akan mempunyai tegangan 4 s/d 5 volt, cukup untuk mengaktifkan transistor. Sedangkan untuk mematikan LED infra merah, maka P3.7 AT89S51 harus diberi logika low (0), karena dengan memberikan logika low pada P3.7, maka P3.7 akan
P3.7 ( AT89S51)
LED_ir 5V VCC
330
R2 4.7k
(54)
memiliki tegangan 0 s/d 0,009 volt, tegangan ini akan menyebabkan transistor tidak aktif.
Untuk pengiriman data agar data dapat dikirimkan dari jarak yang jauh, maka LED infra merah harus dipancarkan dengan frekuensi 38 KHz karena frekuensi ini bebas dari gangguan frekuensi infra merah alam. Jika LED infra merah dipancarkan dengan frekuensi 38 KHz, maka pancarannya akan terganggu oleh frekuensi-frekuensi infra merah dari alam, seperti frekuensi infra merah yang dipancarkan oleh matahari, tumbuhan, bahkan badan manusia. Dengan menggunakan frekuensi 38 KHz, maka pancaran LED infra merah yang dihasilkan oleh rangkaian tidak terganggu oleh pancaran infra merah alam, sehingga jarak pengiriman data semakin jauh.
Untuk memancarkan frekuensi 38 KHz dari LED infra merah, langkah yang harus dilakukan adalah dengan mengedipkannya (menghidupkan dan mematikannya) dengan frekuensi tersebut, yaitu dengan memberikan logika high dan low pada P3.7 dengan selang waktu (perioda) :
1 1 13 0, 0000263 26, 3
38 38 10
T s s
f KHz x Hz µ
= = = ==
Untuk mendapatkan perioda tersebut, maka program yang harus diberikan pada mikrokontroler AT89S51 adalah:
38KHz:
clr p3.7 nop
(55)
nop nop nop nop nop nop nop nop nop nop nop
setb p3.7 nop
nop nop nop nop nop nop nop nop nop
sjmp 38KHz
Mikrokontroler AT89S51 memerlukan 12 Clock setiap satu siklus mesin. Dengan demikian, jika digunakan kristal 12 MHz, maka waktu yang diperlukan untuk satu siklus mesin adalah :
(56)
T =12 1 106 1 12
Clock
x sekon s MHz = = µ
Jika dihitung lamanya mikrokontroler AT89S51 mengerjakan perintah di atas adalah sebagai berikut:
Instruksi Siklus mesin Waktu (μS)
CLR NOP SETB SJMP 1 1 1 2 1 1 1 2
Berdasarkan tabel di atas, maka lamanya logika low (0) pada P3.7 adalah 13 μs dan lamanya logika high (1) adalah 13 μs, sehingga periodanya menjadi 26 μs.
13 μs 13 μs
Low High 26 μs
Dengan demikian frekuensi yang dihasilkan oleh P3.7 adalah : 6
6
1 1 1 1 10
38461 38, 461
26 26 10 26
x
f Hz KHz
T µs x − s
(57)
Jika LED infra merah dipancarkan dengan frekuensi ini, maka pancaran LED infra merah dari rangkaian tidak akan terganggu oleh frekuensi infra merah alam. Sebagai catatan frekuensi infra merah yang tidak dipengaruhi oleh frekuensi infra merah dari alam adalah anatara 38 KHz s/d 40 KHz, frekuensi inilah yang digunakan sebagai frekuensi remote kontrol dari TV, VCD dan DVD di seluruh dunia.
Ketika penerima infra merah menerima pancaran infra merah dengan frekuensi 38 KHz dari rangkaian pemancar, maka output dari penerima akan berlogika high (1), jika pancaran infra merah ini dihentikan, maka penerima akan mendapatkan logika low (0) sesaat (± 1200 μs ) kemudian berubah menjadi high (1) kembali walaupun tidak ada pancaran infra merah dengan frekuensi 38 KHz. Ini sudah merupakan karakteristik dari penerima infra merah yang digunakan (TSOP 1738). Pada alat ini, logika high setelah setelah logika low sesaat itulah yang dijadikan sebagai data, sehingga dengan mengatur lebar pulsa high (1) tersebut dengan suatu nilai tertentu dan menjadikan nilai tersebut sebagai datanya, maka pengiriman data dapat dilakukan.
Pada alat ini, data yang dikirimkan sebanyak 3 data, yaitu data untuk nilai ratusan, nilai puluhan dan nilai. Setiap pengiriman masing-masing data dari ketiga data tersebut, didahului dengan pengiriman sinyal low, jadi ada 3 sinyal low dan ada 3 data. Akan terjadi masalah jika pengiriman data dilakukan seperti ini, yaitu data yang diterima urutannya tidak sesuai dengan data yang dikirimkan. Misalnya 3 data yang
(58)
dikirimkan adalah 567, kemungkinan data yang diterima adalah: 675, dan 756. Sehingga hanya 1/3 kemungkinannya data yang dikirimkan benar.
Kesalahan pengambilan data oleh penerima disebabkan karena adanya penghalang atau karena kesalahan pengambilan data ketika alat pertama kali dihidupkan. Seharusnya penerima mengambil sinyal low dari data yang pertama, kemudian mengambil data pertama, setelah itu mengambil sinyal low dari data kedua, kemudian mengambil data kedua, dan demikian seterusnya, sehingga data tersebut sesuai dengan urutannya. Namun jika ada penghalang sesaat atau ketika pertama kali dihidupkan terjadi kesalahan pengambilan sinyal low, maka pengambilan data seterusnya akan salah. Misalnya jika ada penghalang sesaat, sehingga sinyal low yang diterima adalah sinyal low yang kedua, maka data kedua akan dianggap sebagai data pertama, dan data ketiga akan dianggap sebagai data kedua, demikian seterusnya, sehingga urutan data menjadi salah.
Untuk menghindari kesalahan dalam pengambilan data, maka pada alat ini ditambahkan satu data yang berfungsi sebagai startbit atau data awal. Data awal ini mempunyai nilai tertentu, jadi ketika penerima mendapatkan sinyal low, penerima akan mengambil 1 data setelah sinyal low tersebut dan membandingkannya apakah sesuai dengan data awal atau tidak. Jika tidak sama, maka penerima akan mengambil data berikutnya , kemudian membandingkan lagi sesuai atau tidak dengan data awal. Langkah ini dilakukan terus sampai didapat data awal. Ketika penerima mendapatkan
(59)
data yang sesuai dengan data awal, maka penerima akan mengambil data pertama setelah data awal sebagai data pertama, data kedua setelah data awal sebagai data kedua, dan seterusnya hingga data ketiga. Dengan demikian tidak akan terjadi kesalahan urutan data, walaupun ada penghalang sesaat.
Setiap data mempunyai lebar pulsa high (1) tertentu. Untuk nilai data 0, maka lebar pulsa high yang dikirim adalah ± 1131 μ sekon. Programnya seperti berikut:
Mov 70h,#0 Inc 70h Kirim:
Mov r0,70h Acall data Sjmp kirim
data: loop1:
acall pulsa djnz r0,loop1 ret
pulsa:
Clr P0.0 ; 1μs
Mov r7,#2 ; 1μs
pls:
(60)
P3.7 ( AT89S51) 5V
VCC
i _1
i i
djnz r6,$ ; 2x255=510μs
djnz r7,pls ; 2μs =513x2=1026μs
mov r7,#50 ; 1μs
djnz r7,$ ; 2x50=100μs
ret ; 2μs
Total 1131μs
Demikian juga seterusnya jika yang dikirimkan data 1 s/d data 9, maka data ini akan ditambah dengan nilai 1, dan kemudian hasil penjumlahannya digunakan sebagai banyaknya perulangan dalam pengiriman pulsa.
Sebagai contoh jika data yang dikirimkan adalah data 1, maka data ini akan ditambahkan 1 sehingga hasilnya menjadi 2. 2 inilah yang merupakan banyaknya perulangan pengiriman pulsa. Jadi pulsa untuk data satu ± 2 x 1.131 μs = 2.262 μs. Demikian pula untuk data-data yang lainnya.
4.5 Rangkaian Penerima Infra Merah
IC yang digunakan sebagai penerima infra merah adalah IC TSOP 1738. IC ini sering digunakan sebagai penerima/receiver remote control dari TV atau VCD. Rangkaiannya tampak seperti dibawah ini:
(61)
Gambar 4.2 Rangkaian Penerima Infra Merah
Pada rangkaian diatas digunakan resistor 100 ohm untuk membatasi arus yang masuk pada rangkaian, sedangkan kapasitor 10 μF digunakan agar arus yang masuk ke IC TSOP 1738 lebih stabil.
IC ini mempunyai karakteristik yaitu akan mengeluarkan logika high (1) atau tegangan ± 4,5 volt pada outputnya jika IC ini mendapatkan pancaran sinar infra merah dengan frekuensi antara 38 – 40 KHz, dan IC ini akan megeluarkan sinyal low (0) atau tegangan ± 0,109 volt jika pancaran sinar infra merah dengan frekuensi antara 38 – 40 KHz berhenti, namun logika low tersebut hanya sesaat yaitu sekitar 1200 μs, setelah itu outputnya kan kembali menjadi high. Sifat inilah yang dimanfaatkan sebagai pengiriman data.
Output dari IC ini dihubungkan ke P3.7 pada mikrokontroler, sehingga setiap kali IC ini mengeluarkan logika low atau hing pada outputnya, maka mikrokontroler dapat langsung mendeteksinya. Programnya sebagai berikut :
Utama:
mov 60h,#0h jb P3.7,$ nop
jnb P3.7,$
nilai:
(62)
acall hitung jb P3.7,nilai mov a,60h mov b,#10 div ab dec a
cjne a,#10,Utama
Awalnya mikrokontroler akan memasukkan nilai 0 pada alamat 60h, kemudian menunggu sinyal low dari P3.7 yang terhubung ke output dari IC TSOP 1738. Jika ada sinyal low, itu berarti ada data yang akan dikirim oleh pemancar, kemudian mikrokontroler akan mengabaikan sinyal low tersebut sampai datang sinyal high, sinyal high inilah yang dihitung oleh mikrokontroler sebagai data yang masuk. Data yang masuk akan dibagikan dengan nilai 10. Hal ini dilakukan karena lebar data pengirim 10 kali lebih besar daripada lebar data penerima, sehingga harus dibagi dengan 10. Kemudian hasilnya akan dikurangi dengan 1, hal ini karena pada saat pengiriman, setiap data telah ditambah dengan nilai satu. Selanjutnya lebar data akan dibandingkan, apakah sama dengan 10 atau tidak, jika sama dengan 10 maka data ini merupakan data startbit, dengan demikian 3 data setelah ini adalah merupakan data temperatur, dan akan diambil untuk ditampilkan nilainya. Namun jika data tersebut tidak sama dengan 10, maka data ini bukan merupakan data startbit, program akan kembali ke awal sampai mendapatkan startbit.
(63)
Setelah mendapatkan data startbit, maka mikrokontroler akan mengambil 3 data setelah data startbit tersebut, yang merupakan dara dari nilai temperatur yang dikirimkan oleh pemancar. Programnya sebagai berikut :
mov 61h,#0h jb P3.7,$ nop
jnb P3.7,$ nilai1:
inc 61h
acall hitung jb P3.7,nilai1 mov 62h,#0h jb P3.7,$ nop
jnb P3.7,$ nilai2:
inc 62h
acall hitung jb P3.7,nilai2 mov 63h,#0h jb P3.7,$ nop
jnb P3.7,$
nilai3:
(64)
acall hitung jb P3.7,nilai3
Pada program di atas data nilai satuan akan disimpan di alamat 61h, data untuk nilai puluhan akan disimpan pada alamat 62h, sedangkan data untuk nilai ratusan akan disimpan pada alamat 63h . Kemudian data ini akan masing-masing akan dibagi dengan nilai 10 dan dikurangi dengan 1 seperti data pada starbit, kemudian ditampilkan pada display.
4.6 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 mov b,#100 div ab mov 70h,a mov a,b
(65)
mov b,#10 div ab mov 71h,a mov 72h,b
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 sebagai berikut:
Tabel 4.1. Nilai temperatur yang dideteksi oleh sensor temperatur
Suhu terukur (°C) Output LM35 (mV) Output ADC Tampilan Display 27 28 29 30 31 32 33 270 280 290 300 310 320 330 00011011 00011100 00011101 00011110 00011111 00010000 00010001 027 028 029 030 031 032 033
(66)
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Mikrokontroler merupakan sebuah chip atau IC yang di dalamnya terdapat sebuah prosessor dan flash memori yang dapat dibaca/tulis sampai 1000 kali, sehingga biaya pengembangan menjadi murah karena dapat dihapus kemudian diisi kembali dengan program lain sesuai dengan kebutuhan. Sistem Pengendalian suhu dengan AT89S51 ini mampu mempertahankan suhu yang dikehendaki pada daerah sekitar sensor. Hasil Pengendaliannya dilakukan pada satu daerah atau pada daerah didekat sensor suhu, dan untuk daerah yang letaknya jauh dari sensor. 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 tetapi instruksi yang digunakan disini ada 10 instruksi.
5.2. Saran
Agar sistem/rangkaian yang diinginkan tidak terganggu, sebaiknya alat dikemas dalam bentuk yang lebih aman dan terlindungi sehingga penggunaannya lebih efektif. Alangkah baiknya jika alat ini dibuat dan dimanfaatkan serta disosialisasikan
(67)
kegunaannya dikalangan mahasiswa maupun masyarakat. Untuk dimasa yang akan datang agar alat ini dapat lebih ditingkatkan lagi.
(68)
DAFTAR PUSTAKA
Afgianto. 2004. Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi . Edisi Kedua. Yogyakarta: Gava Media.
Ibrahim, KF. 1996. Teknik Digital . Edisi Pertama. Yogyakarta: ANDI
Lukito, Ediman. 1991. Pemrograman Dengan Menggunakan Bahasa Assembly. Jakarta: PT. Elex Media Komputindo-Gramedia.
Samuel, H dan Tirtamihardja. 1996. Elektronika Digital. Cetakan 1. Yogyakarta: ANDI
(1)
Setelah mendapatkan data startbit, maka mikrokontroler akan mengambil 3 data setelah data startbit tersebut, yang merupakan dara dari nilai temperatur yang dikirimkan oleh pemancar. Programnya sebagai berikut :
mov 61h,#0h jb P3.7,$ nop
jnb P3.7,$ nilai1:
inc 61h
acall hitung jb P3.7,nilai1 mov 62h,#0h jb P3.7,$ nop
jnb P3.7,$ nilai2:
inc 62h
acall hitung jb P3.7,nilai2 mov 63h,#0h jb P3.7,$ nop
jnb P3.7,$
nilai3:
(2)
acall hitung jb P3.7,nilai3
Pada program di atas data nilai satuan akan disimpan di alamat 61h, data untuk nilai puluhan akan disimpan pada alamat 62h, sedangkan data untuk nilai ratusan akan disimpan pada alamat 63h . Kemudian data ini akan masing-masing akan dibagi dengan nilai 10 dan dikurangi dengan 1 seperti data pada starbit, kemudian ditampilkan pada display.
4.6 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 mov b,#100 div ab mov 70h,a mov a,b
(3)
mov b,#10 div ab mov 71h,a mov 72h,b
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 sebagai berikut:
Tabel 4.1. Nilai temperatur yang dideteksi oleh sensor temperatur
Suhu terukur (°C) Output LM35 (mV) Output ADC Tampilan Display 27 28 29 30 31 32 33 270 280 290 300 310 320 330 00011011 00011100 00011101 00011110 00011111 00010000 00010001 027 028 029 030 031 032 033
(4)
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Mikrokontroler merupakan sebuah chip atau IC yang di dalamnya terdapat sebuah prosessor dan flash memori yang dapat dibaca/tulis sampai 1000 kali, sehingga biaya pengembangan menjadi murah karena dapat dihapus kemudian diisi kembali dengan program lain sesuai dengan kebutuhan. Sistem Pengendalian suhu dengan AT89S51 ini mampu mempertahankan suhu yang dikehendaki pada daerah sekitar sensor. Hasil Pengendaliannya dilakukan pada satu daerah atau pada daerah didekat sensor suhu, dan untuk daerah yang letaknya jauh dari sensor. 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 tetapi instruksi yang digunakan disini ada 10 instruksi.
5.2. Saran
Agar sistem/rangkaian yang diinginkan tidak terganggu, sebaiknya alat dikemas dalam bentuk yang lebih aman dan terlindungi sehingga penggunaannya lebih efektif. Alangkah baiknya jika alat ini dibuat dan dimanfaatkan serta disosialisasikan
(5)
kegunaannya dikalangan mahasiswa maupun masyarakat. Untuk dimasa yang akan datang agar alat ini dapat lebih ditingkatkan lagi.
(6)
DAFTAR PUSTAKA
Afgianto. 2004. Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi . Edisi Kedua. Yogyakarta: Gava Media.
Ibrahim, KF. 1996. Teknik Digital . Edisi Pertama. Yogyakarta: ANDI
Lukito, Ediman. 1991. Pemrograman Dengan Menggunakan Bahasa Assembly. Jakarta: PT. Elex Media Komputindo-Gramedia.
Samuel, H dan Tirtamihardja. 1996. Elektronika Digital. Cetakan 1. Yogyakarta: ANDI