BERBASIS MICROCONTROLLER AT89S51
TUGAS AKHIR
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik pada
Program Studi Teknik Elektro
disusun oleh:
GREGORIUS GUNTUR WIJANARKO NIM : 995114055
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2007
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements
To Obtain the SARJANA TEKNIK Degree
in Electrical Engineering
by:
GREGORIUS GUNTUR WIJANARKO Student Number: 995114055
ELECTRICAL ENGINEERING DEPARTEMENT ENGINEERING FACULTY
SANATA DHARMA UNIVERSITY YOGYAKARTA
2007
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 26 Januari 2007
Gregorius Guntur Wijanarko
lain. Hanya orang gila yang bisa kehabisan ide
Jim Jightower
Tidak ada yang lebih baik bagi seseorang kecuali makan dan minum dan
kemudian berkata pada dirinya sendiri bahwa pekerjaanya telah dilakukan
dengan baik
Amsal 2:24
Kata-kata yang baik bisa singkat dan mudah diucapkan, tetapi gemanya tak
akan berakhir
Ibu Theresa
Hanya mereka yang berani mengambil resiko untuk melangkah lebih
jauhlah yang akan mengetahui sejauh mana dia dapat melangkah
T.S.Eliot
Iman tanpa perbuatan adalah mati
Yesus
Dengan segala kerendahan hati dan tulus ikhlas, secara khusus Tugas Akhir ini kupersembahkan kepada ; Tuhan Yesus Kristus kedua orang tuaku, Y Soedarko dan M Sri Muryani kakakku Cony, Beny, Linda, David, Ferly kekasihku “Suci”
Pada umumnya pengatur tingkat kecerahan lampu dikendalikan oleh potensio dengan cara memutar potensio tersebut dari tingkat kecerahan terendah sampai tingkat kecerahan tertinggi. Pada penelitian ini pengaturan tingkat kecerahan lampu dikendalikan oleh tombol-tombol yang mempunyai 10 tingkat kecerahan.
Pengendalian tingkat kecerahan lampu dilakukan dengan cara mengeser waktu penyulutan triac. Pendeteksian titik nol berfungsi untuk menentukan waktu tunda penyulutan gerbang triac. Waktu tunda dipakai untuk menentukan besar prosentase penggunaan daya lampu. Penentuan kapan waktu tunda dilakukan dengan pemrograman MCS-51. Tampilan LCD yang akan menunjukan besarnya skala prosentase luasan penggunaan daya dalam 10 tingkat kecerahan. Untuk mengubah prosentase luasan penggunaan daya dilakukan dengan menekan salah satu dari 10 tombol tingkat kecerahan.
Hasil pengamatan menunjukan alat ini mampu bekerja untuk pengaturan daya dari 0% sampai 100% dengan kenaikan setiap 10%. Saat kondisi skala penggunaan daya menunjukan angka 50 dan 100 tidak terjadi penyimpangan (error), tetapi pada saat selain kondisi skala 50 dan 100 terjadi penyimpangan. Penyimpangan yang terjadi dikarenakan karena jala-jala listrik yang ada.
Kata kunci: Pengaturan daya, MCS-51
brightness level from the minimum to maximum.through the research, lamp brightness level controller is using by a button that has ten level of brightness.
Light intesinty of a bulb is controlled by shifting the triac’s trigger time. Zero point detection used to set the triac’s delay trigger time. Meanwhile, by knowing the time-delay, we can count the percentage of the power consumption wich used by the lamp. To set the time-delay is using MCS-51 programming. LCD display will show the percetage wide using power in ten level of brightness. To change the percentage of the power consumption will can be change by pushing one of the light brightness button.
The observation shows that this device able to work in 0 percent to 100 percent power setting, whit 10 percent for each interval. When the power consumption scale condition refers to the number 50 and 100, there will be no error. Error only happen cause by the electrical web.
Keywords: Phase control, MCS-51
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas berkat dan rahmatNya yang telah diberikan sehingga penulis dapat menyelesaikan Tugas Akhir dengan judul ‘Pengatur Nyala atau Padam lampu dan tingkat kecerahan Berbasis Microcontroller AT89S51’. Semoga apa yang telah penulis sampaikan lewat tugas akhir ini dapat memberikan sumbangan pemikiran untuk pengembangan ilmu pengetahuan pada umumnya dan ilmu teknik elektronika pada khususnya.
Tugas Akhir ini merupakan buah dari kerja keras, pemikiran, dan pengorbanan yang penulis peroleh sebelumnya di perkuliahan. Namun, penulis menyadari bahwa tugas akhir ini tidak akan selesai jika tidak mendapat bantuan dari banyak pihak yang telah berkenan membantu secara langsung maupun tidak langsung. Penulis juga mengharapkan adanya masukan serta kritik yang membangun dari apa yang telah disampaikan dalam penulisan ini.
Pada kesempatan yang baik ini, dengan segala kerendahan hati penulis mengucapkan banyak terima kasih kepada :
1. Bapak Martanto, S.T., M.T. selaku pembimbing I sekaligus pembimbing akademik, yang telah memberikan bantuan ide, saran, masukan, kritik, serta bimbingannya yang sangat berguna selama penulisan Tugas Akhir ini.
2. Ir. Th. Prima Ari Setyani, M.T. selaku dosen pembimbing II sekaligus Sekretaris Jurusan Teknik Elektro Fakultas Teknik Universitas Sanata Dharma Yogyakarata, yang telah memberikan arahan, semangat, dorongan, serta sumbangan pemikiran yang penulis butuhkan untuk menyelesaikan penulisan Tugas Akhir ini.
3. Bapak Augustinus Bayu Primawan, S.T., M.Eng., selaku Kepala Jurusan Teknik Elektro Fakultas Teknik Universitas Sanata Dharma Yogyakarata. 4. Para dosen-dosen Teknik Elektro, yang telah memberikan pengajaran serta
pemikiran yang telah diberikan selama penulis berada dalam masa perkuliahan.
5. Para karyawan laboratorium Teknik Elektro, yaitu Kangmas Mardi, Kangmas Broto, Kangmas Suryana, Pak Hardi, yang telah membantu penulis dalam menyelesaikan pembuatan alat yang dibutuhkan Tugas Akhir.
7. Bapakku Yosep Soedarko, Ibuku Maria Sri Muryani tercinta, yang telah berusaha memberikan segalanya yang penulis butuhkan secara material dan spiritual dan mendidik dengan tulus dan penuh kasih sayang.
8. Kakakku, Cony, Beny, Linda, David, Ferly yang telah banyak mengalah. Dan memberikan dukungan serta motivasi
9. Kekasihku Suci, yang telah banyak mengerti, ,banyak berkorban, dan setia menyanyangiku apa adanya.
10. Untuk bulek Markesni, bulek Sri dan Bulek Mei, serta saudaraku yang lain yang telah membantu hingga penulis dapat lulus.
11. Buat teman-temanku Cemplon, Kodok, Asep item, Kubis, Jeglek, Adri( thak’s for all), Yono, yang masih berjuang Wisnu & Lusi (semangat bro),Andre (jangan menyerah),Yuyun, Yosep 03 (thank’s for help me),Didit, Nando, Rony, Gentong, Pukis, Made, Ableh, Boim, Pabrik banyu, She boss,G Bagus,Giri, Jiwo, temenku 99 yang masih beredar Dagul,Tutus, Anci, Maya, Santi, Roni, Cienk,dan yang sudah bekerja Dini, Leo, Khutur, Syamsi, Mas Tom’s, dan buat anak-anak BARABAS tetap rame aja terus coy.
yang tidak dapat penulis sebutkan satu per satu. Karena tanpa bantuan mereka, penulis menyadari tidak akan mampu menyelesaikan Tugas akhir ini dengan baik.
Yogyakarta, 26 Januari 2007 Penulis
Gregorius Guntur Wijanarko
LEMBAR PENGESAHAN OLEH PEMBIMBING iii
LEMBAR PENGESAHAN OLEH PENGUJI iv
PERNYATAAN KEASLIAN KARYA v
MOTTO DAN PERSEMBAHAN vi
INTISARI vii ABSTRACT viii
KATA PENGANTAR ix
DAFTAR ISI xii
DAFTAR GAMBAR xvi
DAFTAR TABEL xviii
BAB I PENDAHULUAN 1
1.6 Sistematika Penulisan
1
2.2.1 Memori Program Dan Memori Data
5 5 6
2.2.2.1 Set Intruksi Dalam Mikrokontroler 2.2.2.2 Metode Pengamatan
2.2.3 Port Mikrokontroler AT89S51
2.2.4 Timer dan Counter Mikrokontroler AT89S51
2.2.5 On-Chip Osilator
2.3 ISP (IN-System Programing) 2.4 Rangkaian Reset
2.9 Liqiud Crystal Display (LCD) dengan Kontroler HD44780U
7
BAB III RANCANGAN PENELITIAN 34
3.1. Perancangan Perangkat Keras 3.1.1 Interfacing Tombol Masukan 3.1.2 On Chip Osilator
3.1.3. InterfacingZero Crossing 3.1.4 Interfacing Triac
3.1.5 Perancangan Luasan Dalam Setengah Gelombang Sinusoidal untuk Menentukan Waktu Tunda Penyulutan
Triac 3.1.6 Besar sudut picu dengan luas Penggunaan daya untuk 10
3.3 Perancangan Perangkat Lunak 3.3.1 Algoritma Program
3.3.2 Diagram Alir Program Utama 3.3.3 Subroutine Penyalaan LCD 3.3.4 Subroutine Scan Tombol 3.3.5 Subroutine dari ZeroCrossing 3.3.6 Perancangan Waktu Tunda
3.3.7 Subroutine dari Timer 0 Untuk Tunda Penyulutan
BAB IV PENGAMATAN DAN ANALISA 60
4.1 Cara Kerja Alat Secara Umum 4.2. Pengamatan dan Analisa
4.2.1. ZeroCrossing (Titik Nol)
4.2.2 Data Pengamatan Waktu Tunda Untuk Pemicuan Gate Triac
4.2.3 Pengamatan Tegangan dan Arus Lampu AC
4.2.4 Contoh-Contoh Gambar Pengamatan Zero Crossing dan Waktu Tunda Penyulutan Triac Dengan Osiloskop Digital
4.2.5 Contoh Bentuk Gelombang Sinusoidal Dibeban Lampu
5.2. Saran 71 DAFTAR PUSTAKA
LAMPIRAN
Gambar 2.2. Keterangan Register TMOD 14
Gambar 2.3. Keterangan Register TCON 15
Gambar 2.4. Rangkaian Power-onReset AT89S51 18 Gambar 2.5. Letak titik nol (zero crossing) dari tegangan AC 20 Gambar 2.6. VInput dan VOutput zero crossing terhadap t (ms) 20
Gambar 2.7. Konfigurasi common emiter sebagai saklar transistor NPN 21 Gambar 2.8. Saklar transistor NPN dengan tegangan muka dari sebuah
sumber
21
Gambar 2.9. Rangkaian dasar triac 23
Gambar 2.10. Rangkaian sederhana triac 23
Gambar 2.11. (a),(b) dan (c) Rangkaian triec sebagai pengendali fase 24
Gambar 2.12. Satu periode sinusoidal 26
Gambar 2.13. Bentuk fisik dari IC LM7805 28
Gambar 2.14. Penggunaan IC LN7805 untuk regulasi tegangan 28 Gambar 2.15. Catudaya dengan regulator LM7805 dan kapasitor
mssukan untuk melindungi osilasi dan kapasitor keluaran untuk memperbaiki tanggapan frekuensi
29
Gambar 2.16. Dimensi Layar dan Foto LCD 31
Gambar 3.1 Diagram blok perangkat keras 34
Gambar 3.2 Tombol masukan 35
Gambar 3.3 Rangkaian osilator 36
Gambar 3.5 Interfacing zero crossing dan catu daya dengan Microcontroler AT89S51
38
Gambar 3.6 Interfacing triac dengan Microcontroler AT89S51 40
Gambar 3.7 Satu periode sinusiodal 41
Gambar 3.8 Penggunaan daya 50 % dengan waktu tunda selama 5 m 46 Gambar 3.9 Interfacing LCD dengan microcontroler AT89S51 47 Gambar 3.10 Diagram alir dari Program Utama 49
Gambar 3.11 Diagram alir penyalaan LCD 51
Gambar 3.12 Diagram alir scan tombol masukan 53
Gambar 3.13 Diagram alir Eksternal 1 dari zero crossing 55
Gambar 3.14 Mode 1 – Pencacah 16-Bit 55
Gambar 3.15 Proses Penundaan Pengaktifan Timer 56 Gambar 3.16 Diagram alir interupsi Timer 0 untuk tunda penyulutan 58 Gambar 4.1 Bentuk zero crossing dilihat dari osiloskop digital 61 Gambar 4.2 Grafik galat error lama waktu tunda tiap skala penggunaan
daya
63
Gambar 4.3 Penunjukan skala 10 65
Gambar 4.4 Penunjukkan skala 50 66
Gambar 4.5 Penunjukkan skala 100 67
Gambar 4.6 Kondisi 10% daya 68
Gambar 4.7 Kondisi 50% daya 68
Gambar 4.8 Kondisi 100% daya 69
Tabel 2.2. Port 3 12 Tabel 2.3. Keterangan Hubungan antara PC dan AT89S51 pada ISP 18 Tabel 2.4. Triac yang tersedia secara komersial 25 Tabel 2.5. Karakteristik regulator tegangan IC LM7805 28
Tabel 2.6 Konfigurasi Pin LCD 33
Tabel 3.1 Karakteristik triac Q4004L4 40
Tabel 3.2 Besar sudut picu dengan luasan penggunaan daya 45
Tabel 3.3 Perhitungan besar waktu tunda 46
Tabel 3.4 Waktu tunda dalam desimal dan heksa 57 Tabel 3.5 Tabel keseluruhan dari perancangan 59 Tabel 4.1 Data pengamatan waktu tunda pemicuan gate triac 62 Tabel 4.2 Data pengamatan tegangan dan arus lampu AC untuk tiap
penunjukan skala penggunaan daya
64
PENDAHULUAN
1.1 Latar Belakang Masalah
Di jaman sekarang ini banyak dijumpai sumber energi yang terbuang dengan percuma, sedangkan diketahui bahwa pada saat ini di mana-mana dicanangkan untuk penghematan energi, karena energi yang tersimpan pada saat ini sudah mulai habis. Salah satu energi yang sangat menjadi perhatian adalah energi listrik. Di televisi ataupun di radio banyak dijumpai iklan-iklan atau slogan yang menyampaikan tentang penghematan energi listrik yang, di perkirakan 20 tahun ke depan, akan mengalami kesulitan dalam hal pasokan energi listrik.
Terdapat banyak cara dalam menanggulangi permasalahan tersebut, diantaranya yaitu mencari sumber energi listrik alternatif. Cara yang lain yaitu dengan cara menghemat pemakaian listrik itu sendiri.
Dari hal tersebut, penulis akan membuat alat yang bisa digunakan sebagai sarana dalam menghemat listrik, yaitu alat yang dapat mengatur nyala atau padamnya sebuah lampu dan tingkat kecerahan yang diinginkan. Di sini penulis memilih penghematan pada lampu, karena saat ini banyak energi yang terbuang percuma melalui lampu. Bila sistem ini selesai dibuat dan dapat berjalan dengan baik, maka dapat diimplementasikan sebagai salah satu alat yang bisa digunakan pada kehidupan sehari – hari.
1.2 Perumusan Masalah
Perumusan masalah yang timbul dalam perancangan pengatur nyala atau padam lampu dan tingkat kecerahan lampu ini adalah :
1. Bagaimana membuat pengatur nyala atau padam lampu dan tingkat kecerahan lampu menggunakan mikrokontroler AT89S51.
2. Bagaimana kecerahan nyala lampu disesuaikan dengan kebutuhan pengguna.
1.3 Batasan Masalah
Agar permasalahan yang ada tidak berkembang menjadi luas, maka perlu adanya batasan masalah terhadap alat yang akan dibuat adalah :
1. Terdapat sepuluh tingkat pilihan dalam pengaturan kecerahan cahaya pada lampu pijar.
2. Mikrokontroler AT89S51 digunakan sebagai pengatur pulsa 3. Tingkat kecerahan di tampilkan melalui LCD
1.4 Tujuan Penelitian
1.5 Manfaat Penelitian
Berdasar tujuan diatas diaharapkan penilitian ini dapat memberikan bebrapa manfaat, yaitu:
1. Dapat menguasai mikrokontroler terutama AT89S51 secara baik dan dapat mengaplikasikan dalam pembuatan pengatur nyala atau padam lampu dan tingkat kecerahan lampu pijar.
2. Menerapkan fungsi transistor NPN sebagai saklar.
3. Dapat memahami dan mengerti cara kerja MOC sebagai penghubung antara mikrokontroler dengan rangkaian target.
1.6 Sistematika Penulisan
Sistematika penulisan proposal ini adalah :
BAB I PENDAHULUAN
Bab ini berisi latar belakang, perumusan masalah, batasan masalah, tujuan, manfaat, dan sistem penulisan.
BAB II DASAR TEORI
BAB III RANCANGAN PENELITIAN
Bab ini berisi bagaimana merancang perangkat keras pengatur nyala atau padam lampu dan tingkat kecerahan lampu berbasis mikrokontroler AT89S51. Terdapat juga rancangan perangkat keras secara keseluruhan dalam bentuk diagram blok dan juga memaparkan rancangan perangkat lunak mengenai alur algoritma dari perancangan pengatur nyala atau padam lampu dan tingkat kecerahan lampu.
BAB IV HASIL PENGAMATAN DAN ANALISA
Bab ini berisi cara kerja dan hasil penelitian dari alat pengatur nyala atau padam lampu dan tingkat kecerahan lampu berbasis Microcontroller AT89S51. Selain itu akan diberikan pembahasan dari hasil pengamatan langsung dari alat tersebut dengan rumusan yang diambil penulis dari dasar teori yang mendasari perancangan dan pembuatan alat pengatur nyala atau padam lampu dan tingkat kecerahan lampu Berbasis Microcontroller AT89S51 tersebut.
BAB V KESIMPULAN DAN SARAN
DASAR TEORI
2.1 Prinsip Kerja
Prinsip kerja dari alat ini memberi masukkan data yang berupa pilihan tingkat kecerahan yang dimasukkan melalui tombol sesuai keinginan pengguna. Data tersebut akan dikirim ke mikrokontroler AT89S51. Jika data yang berupa tingkat kecerahan lampu telah dimasukkan, maka mikrokontroler akan menghidupkan lampu sesuai dengan data masukan dan data masukan akan ditampilkan pada penampil LCD.
2.2 Mikrokontroler AT89S51
Mikrokontroler AT89S51 merupakan keluaran terbaru dari keluarga Mikrokontroler MCS-51 buatan Atmel yang menguasai teknologi pembuatan FPEROM (Flash Programmable and Erasable Read Only Memory). FPEROM adalah ROM (Read Only Memory) yang dapat dihapus dan ditulis kembali dengan teknologi flash.
Mikrokontroler AT89S51 merupakan sebuah mikrokontroler CMOS 8-bit dengan daya rendah (low-power) dengan flash memory sebesar 4K bytes untuk ISP. Mikrokontroler AT89S51 mempunyai keistimewaan (feature) sebagai berikut: 4K byte of in-system programmable flash, 128 bytes RAM (Random Access Memory), 32 jalur I/O (Input / Output), dua Timers / Counters 16-bit,
Watchdog Timer dan Two Data Pointers, Flexible ISP Programming (Byte dan Page Mode).
2.2.1 Memori Program Dan Memori Data
Memori program hanya bisa dibaca saja dan dapat diakses langsung
hingga 64 Kbyte. Strobe (tanda) untuk akses program memori eksternal diakses melalui sinyal PSEN (Program Store Enable). Lokasi-lokasi dalam pelayanan interupsi lokasi-lokasi dengan jarak 8 byte, misalnya: 0003h untuk eksternal interrupt 0, 000Bh untuk timer 0.
Alamat-alamat yang paling bawah dari memori program dapat berada
dalam flash on-chip maupun memori eksternal. Untuk melakukan hal ini dilakukan pengkabelan pada pin EA atau External access ke Vcc (akses internal) atau GND (akses eksternal) sesuai kebutuhan. Apabila EA = GND, maka semua pengambilan instruksi langsung dilakukan pada memori eksternal, sedangkan pengaksesan instruksi pada memori internal tidak melibatkan PSEN. Alamat
memori program panjangnya selalu 16 bit, walau demikian jumlah memori
program yang digunakan bisa kurang dari 64 Kbyte. Eksekusi program eksternal mengorbankan dua port 8 bit (P0 dan P2), karena kedua port tersebut berfungsi sebagai jalur pengalamatan dan pengiriman instruksi dari memori eksternal.
pengalamatan tak langsung (inderect addressing) dengan alamat diatas 7Fh mengakses ruang memori lain yang berbeda.
2.2.2 Set Instruksi
Semua anggota keluarga Mikrokontroler AT89S51 Atmel mengeksekusi
set instruksi yang sama. Set instruksi ini telah dioptimasi untuk aplikasi kontrol
8 bit serta menyediakan berbagai macam mode pengalamatan yang cepat untuk
akses RAM internal guna memfasilitasi operasi byte pada struktur data yang kecil. Set instruksi juga menyediakan dukungan penuh untuk variabel–variabel 1-bit
sebagai tipe data yang terpisah, yang memungkinkan manipulasi bit secara
langsung dalam sistem–sistem kontrol dan logika yang memerlukan pemrosesan
Boolean.
2.2.2.1 Set Instruksi Dalam Mikrokontroler
Secara keseluruhan mikrokontroler mempunyai 225 macam instruksi, yang
dibentuk dengan mengkombinasikan instruksi dan operan. Instruksi tersebut
dikelompokan sebagai berikut :
a. Kelompok Transfer Data
Kode dasar untuk kelompik ini adalah MOV, singkatan dari move yang artinya memindahkan. Meskipun demikian lebih tepat dikatakan perintah
b. Kelompok Aritmatika
Operasi aritmatika terdiri dari : penjumlahan, penambahan satu,
pengurangan satu, pengurangan, perkalian dan pembagian.
c. Kelompok Logika
Kelompok perintah ini dipakai untuk melakukan operasi logika
mikrokontroler MCS51, operasi logika yang bisa dilakukan adalah AND (kode operasi ANL), OR (kode operasi ORL) dan Exclusive (kode operasi XRL).
d. Kelompok Percabangan
Urutan pelaksanaan program dapat dikendalikan oleh instruksi
percabangan bersyarat maupun tidak bersyarat.
e. Kelompok Operasi Bit
Kelompok ini menangani instruksi yang banyaknya 1 bit. Register yang
dipakai adalah register carry.
2.2.2.2 Mode Pengalamatan
Data atau operan bisa berada pada tempat yang berbeda sehingga dikenal
beberapa cara untuk mengakses data / operan tersebut yang dinamakan sebagai
mode pengalamatan (addressing mode) antara lain :
a. Pengalamatan Tak Langsung ( Indirect Addressing )
Cara ini dipakai untuk menunjukan data yang berada di dalam memori,
alamat memori tidak disebut secara langsung tapi dititipkan ke register
lain.
Contoh : MOV A, @RO.
b. Pengalamatan Langsung ( Direct Addressing )
Cara ini dipakai untuk menunjukkan data yang berada di dalam memori
dengan cara mengambil alamat memori tempat data tersebut berada.
Contoh : MOV A, 3Ah. c. Instruksi Register
Cara ini digunakan untuk menunjukkan data yang berada dalam register.
Contoh : MOV A, R3.
d. Instruksi Register Khusus
Beberapa instruksi hanya dikhususkan untuk suatu register tertentu.
Misalkan saja suatu instruksi yang hanya bekerja pada akumulator saja,
sehingga tidak memerlukan alamat byte untuk menunjuk ke akumulator tersebut. Dalam hal ini, op-code sendiri telah mengandung penunjuk ke register yang benar. Instruksi yang mengacu akumulator sebagai A akan
dikodekan dengan op-code spesifik akumulator. e. Konstanta Segera ( Immediate Constants )
Nilai dari suatu konstanta dapat segera menyatu dengan op-code dalam memori program. Misalnya instruksi MOV A,#100, yang akan
menyimpan konstanta 100 ( desimal ) ke dalam akumulator. Bilangan
yang sama tersebut bisa juga dituliskan dalam format heksa sebagai 64h
f. Pengalamatan Terindeks ( Indexed Addressing )
Memori program hanya bisa diakses melalui pengalamatan terindeks.
Mode pengalamatan ini ditujukan untuk membaca tabel tengok ( look-up tables ) yang tersimpan dalam memori program ( data yang menyatu dengan program ). Tipe lain dari pengalamatan terindeks digunakan
dalam instruksi-instruksi ‘lompat bersyarat’. Dalam hal ini, alamat
tujuan dari instruksi lompat ( jump ) dihitung sebagai jumlah dari petunjuk dasar ( base pointer ) dengan data akumulator.
U1
2.2.3 Port Mikrokontroler AT89S51
Mikrokontroler AT89S51 memiliki 40 pin/kaki, 32 pin diantaranya
digunakan sebagai port pararel. 32 pin tersebut dibagi menjadi 4 buah port
pararel yaitu port 0, port 1, port 2 dan port 3. Bentuk dari mikrokontroler
AT89S51 dapat dilihat pada gambar 2.1.
1. Port 0
Port 0 adalah port dua arah yaitu keluaran / masukan. Jika angka ‘1’ tertulis pada pin-pin Port 0, maka pin tersebut akan dapat digunakan sebagai high-impedance inputs. Port 0 juga menerima byte kode selama proses pemrograman Flash dan output byte kode selama verifikasi program.
2. Port 1
Port 1 berfungsi sebagai I/O biasa atau menerima low order address bytes selama pada saat flash programming. Port ini memiliki internal pull up dan berfungsi sebagai input dengan memberikan logika ‘1’. Sebagai output port ini dapat memberikan output sink keempat buah input TTL. Untuk tabel Port 1 akan ditunjukkan pada Tabel 2.1.
Tabel 2.1 Port 1
Port Pin Alternate Functions
P1.5 MOSI (used for In-System Programming) P1.6 MISO (used for In-System Programming) P1.7 SCK (used for In-System Programming)
3. Port 2
4. Port 3
Port 3 berfungsi sebagai I/O biasa. Port ini memiliki sifat yang sama dengan port 1 dan port 2. Port 3 memiliki beberapa fungsi spesial seperti ditunjukkan pada Tabel 2.2.
Tabel 2.2 Port 3
Port Pin Alternate Functions
P3.0 RXD (serial input port) P3.1 TXD (serial output port) P3.2 INT0 (external interrupt 0) P3.3 INT1 (external interrupt 1) P3.4 T0 (timer 0 external input) P3.5 T1 (timer 1 external input)
P3.6 WR (external data memory write strobe) P3.7 RD (external data memory read strobe)
5. PSEN
Program Store Enable berfungsi pada saat mengeksekusi program yang terletak pada memori eksternal.
6. ALE/ PROG
Keluaran ALE (Address Latch Enable) menghasilkan pulsa-pulsa yang akan digunakan untuk mengancing byte rendah (low byte) alamat selama mengakses memori eksternal. Pin ini juga berfungsi sebagai masukan
pulsa program (program pulser input) selama pemrograman flash. 7. EA/ Vpp
Eksternal Access Enable apabila diberi masukan ‘1’ maka akan menjalankan program pada memori internal. Tetapi jika diberi masukan
8. RST
Merupakan masukan reset, apabila diberi masukan ‘1’ selama dua siklus mesin pada saat osilator bekerja maka akan mereset mikrokontroler
tersebut.
9. XTAL 1 dan XTAL 2
Mikrokontroler AT89S51 telah memiliki on-chip osilator yang dapat bekerja dengan menggunakan kristal eksternal yang dihubungkan ke kaki XTAL 1 dan XTAL 2.
10. Vcc
Port yang akan dihubungkan ke suplai tegangan yaitu + 5 V DC. 11. GND
Port yang akan dihubungkan ke ground.
2.2.4 Timer dan Counter Mikrokontroler AT89S51
Mikrokontroler AT89S51 dilengkapi dengan dua perangkat timer/ counter yaitu timer 0 dan timer 1. Pencacah biner timer/counter AT89S51 merupakan pencacah biner naik (count up binary counter) yang mencacah dari 0000h sampai FFFFh, saat kondisi pencacah berubah dari FFFFh kembali ke 0000h akan timbul
1. TMOD (timer mode register)
Register TMOD berupa 8 bit register yang terletak pada alamat 89h
dengan fungsi setiap bit adalah sebagai berikut:
• Gate : timer akan berjalan jika bit ini diset
• C/ T : 1 = counter
0 = timer
• M1 & M2 : untuk memilih mode timer
Gambar 2.2 Keterangan Register TMOD 2. THx dan TLx
Merupakan register yang menunjukan nilai dari timer. Masing-masing timer memiliki dua buah register yaitu: THx untuk timer high byte dan TLx untuk timer low byte.
3. TCON (timer control register)
Register ini hanya memiliki 4 bit saja, yaitu bit 4, bit5, bit6 dan bit7 dari
register TCON. Yang memiliki fungsi yang berhubungan dengan timer. • TF1 : timer 1 over flag yang akan set bila timer 1 overflow.
• TR1 : 1 = timer 1 aktif
: 0 = timer 1 tidak aktif
• TF0 : sama dengan TF1 tetapi bit ini untuk timer 0.
Gambar 2.3 Keterangan Register TCON
Timer AT89S51 memiliki empat buah mode kerja timer dimana setiap mode memiliki masing-masing fungsi. Penentuan mode kerja timer dilakukan dengan melakukan inisialisasi pada register TMOD.
1. Mode 0
Pada mode ini, timer bekerja dengan mode 13 bit timer ketika overflow terjadi saat terjadi perubahan kondisi dari ketiga belas bit yang tersimpan
di register TLx dan THx (x = 0 untuk timer 0 dan x = 1 untuk timer 1) menjadi logika 0 setelah sebelumnya mencapai logika 1. Pada aplikasi
sebagai counter kembali menghitung dari awal. Bit TFx akan berlogika 1 pada saat kondisi overflow terjadi.
2. Mode 1
Pada mode ini, timer berfungsi sebagai 16 bit timer yang akan menghitung naik mulai dari 0000h hingga FFFFh. Dari perhitungan tersimpan pada
register TLx untuk low byte dan THx untuk high byte.
3. Mode 2
4. Mode 3
Pada Mode 3 TL0, TH0, TL1 dan TH1 dipakai untuk membentuk 3
untaian pencacah, yang pertama adalah untaian pencacah biner 16 bit
tanpa fasiltas pemantau sinyal limpahan yang dibentuk dengan TL1 dan
TH1. Yang kedua adalah TL0 yang dipakai sebagai pencacah biner 8 bit
dengan TF0 sebagai sarana pemantau limpahan. Pencacah biner ketiga
adalah TH0 yang dipakai sebagai pencacah biner 8 bit dengan TF1 sebagai
sarana pemantau limpahan.
2.2.5 On-Chip Osilator
Mikrokontroler AT89S51 buatan Atmel mempunyai osilator on-chip, yang dapat digunakan sebagai sumber detak (clock) ke CPU. Cara menggunakannya adalah dengan menghubungkan sebuah resonator kristal atau keramik di antara
kaki-kaki XTAL1 dan XTAL2 pada Mikrokontroler dan hubungkan kapasitornya
ke ground.
2.3 ISP (In-System Programming)
Program MCS-51 ISP dirancang untuk mengisi memori program MCS-51
digunakan sangat sederhana, hanya terdiri atas sebuah parallel port DB25 dan beberapa utas kabel.
Parallel port DB25 ini dihubungkan ke sistem target dengan melalui enam utas kabel, yaitu 2 kabel untuk dihubungkan ke ground yang ditempatkan pada pin 24 dan pin 25 pada port paralel DB25, sedangkan 4 kabel lainnya sebagai sinyal kontrol yang berfungsi untuk mengisi memori program MCS-51. Sinyal
kontrol yang pertama adalah RESET yang dipakai untuk me-reset MCS-51. Sinyal kontrol RESET ini menempati pin 9 pada mikrokontroler AT89S51 yang nantinya akan dihubungkan pada pin 6 (D4) port paralel DB25 dalam pengisian memori program. Sinyal kontrol lainnya adalah MOSI (master out slave in) yang berfungsi untuk mengirimkan data dari PC ke MCS-51. Sinyal kontrol MOSI yang terdapat pada pin 6 (P1.5) pada mikrokontroler AT89S51 yang akan
dihubungkan pada pin 7 (D5) pada port paralel DB25.
Berikutnya adalah sinyal MISO (master in slave out) yang berfungsi untuk mengirimkan data dari MCS-51 ke PC, dimana MISO ini terdapat pada pin 7
(P1.6) pada mikrokontroler AT89S51 yang akan dihubungkan ke pin 10 (ACK)
pada parallel port DB25. Sinyal kontrol SCK (serial clock) yang berfungsi untuk mendorong data secara seri yang terdapat pada pin 8 (P1.7) pada mikrokontroler
Tabel 2.3 Keterangan Hubungan Antara PC dan AT89S51 pada ISP Port Paralel (DB25) MCS-51 (AT89S51) Pin 6 (D4) Pin 9 (RESET)
Pin 7 (D5) Pin 6 (MOSI / P1.5) Pin 8 (D6) Pin 8 (SCK / P1.7) Pin 10 (ACK) Pin 7 (MISO / P1.6) Pin 20-25 (GND) Pin 20 (GND)
2.4 Rangkaian Reset
Rangkaian reset digunakan untuk me-reset program yang terdapat pada mikrokontroler pada saat catu daya dihidupkan agar pada saat start awal pin reset mendapat tegangan 5 V sesaat untuk reset. Lamanya waktu reset pada saat awal adalah waktu start up ditambah dengan dua siklus mesin.
Vcc 5 V
C
R
RST AT89S51 Vcc
GND
Gambar 2.4 Rangkaian Power-on Reset AT89S51
Pada rangakaian reset (gambar 2.4) sebenarnya hanya merupakan rangkaian pengisian muatan kapasitor (C). Pada saat catu daya diaktifkan, karena muatan
kapasitor masih kosong (Vc = 0) maka pin RST akan terhubung langsung dengan
Vcc (logika 1). Semakin lama muatan kapasitor akan bertambah sehingga
sedangkan VR (tegangan antara pin RST dengan ground) akan mengecil. Yang
perlu diperhatikan untuk rangkaian ini adalah nilai R dan C agar selama minimal
2 siklus mesin (2µd) masih berlogika 1. Dari data sheet AT89S51, tegangan masukan untuk logika 1 pin RST memiliki batas bawah (VIH1(min) adalah 0,7 Vcc.
Untuk menghitung besarnya nilai R dan C dapat menggunakan persamaan
VR sebagai berikut:
2.5 Titik Nol (Zero Crossing)
Titik nol berfungsi untuk menentukan di titik mana (pada 1 periode
gelombang sinusoidal) yang akan dipotong. Letak titik nol dalam gelombang AC
Gambar 2.5 Letak titik nol (zero crossing) dari tegangan AC
Dengan menggunakan fungsi transistor sebagai saklar, akan diperoleh bentuk
tegangan masukan dan tegangan keluaran. Contoh bentuk gelombang dengan
tegangan masukan (misal : 5 volt) dan bentuk tegangan keluaran terhadap waktu
periode (= t, dengan satuan millisekon) dapat dilihat dalam gambar 2.6
Gambar 2.6 VInput dan VOutput zero crossing terhadap t(ms)
2.6 Transistor sebagai saklar
Transistor dalam aplikasi elektronika dapat digunakan sebagai saklar. Pada
Gambar 2.7 Konfigurasi common emitter sebagai saklar transistor NPN Pada umumnya saklar transistor menggunakan konfigurasi common emitor seperti ditunjukkan pada Gambar 2.7 Saat transistor berada pada kondisi jenuh
(saturation) tegangan kolektor-emitor (Vce) mendekati nol dan menyebabkan arus kolektor (Ic) mengalir dari kolektor ke emitor, kondisi ini dianalogikan seperti
saklar dalam keadaan tertutup atau on. Pada kondisi menyumbat (cut-off) Vce mendekati tegangan suplai (Vcc), sehingga Ic tidak dapat mengalir dari kolektor
ke emitor, kondisi ini dianalogikan seperti saklar yang terbuka atau off.
Rc
Rb
+V
ke beban
1
2
3
Gambar 2.8 Saklar transistor NPN dengan tegangan muka dari sebuah sumber
Sebuah saklar transistor dengan tegangan muka dari sebuah sumber
Rc dan tahanan basis Rb yang berfungsi untuk mengaktifkan transistor bekerja
pada daerah yang diinginkan dan memberikan efek seperti saklar, yaitu pada
daerah jenuh (saturation) dan daerah sumbat (cut-off). Nilai tahanan kolektor Rc dan tahanan basis Rb dihitung dengan persamaan sebagai berikut :
RB =
Vb merupakan tegangan basis yang harus diberikan untuk membuat transistor
dalam keadaan jenuh (saturation) sehingga Vb harus setinggi : Vbe
Rb Ib
Vb= . + ...(2.3.c) Vbeadalah tegangan basis-emitor atau break down voltage yang harus diberikan ke basis–emitor agar transistor mencapai kondisi jenuh (saturation). IB diperoleh
dari persamaan :
IB =
dc Ic
β ...(2.3.d)
Faktor ßdc dapat dilihat dari lembar data transistor yang digunakan atau dihitung
dari perbandingan antara Ic dan Ib. Dalam kondisi menyumbat (cut-off) tegangan kolektor-emitor Vce ≈ Vcc dan dalam kondisi jenuh Vce≈ 0.
2.7 Triac
Triac merupakan sebuah thyristor dua arah, yang sangat ideal untuk
menghantarkan arus bolak-balik. Triac dapat bertindak sebagai SCR yang
saklar, seperti pada gambar 2.9 (B). Oleh karena itu, triac dapat mengendalikan
arus pada kedua arah. Tegangan penyalaan biasanya tinggi, sehingga cara yang
normal untuk menyalakan triac adalah dengan menerapkan pemicu
berprategangan maju. Lembaran data untuk triac selalu mencantumkan tegangan
pemicu dan arus pemicu ini.
+ V
-(A)
+ V
-(B)
GATE
+ V
-(C)
Gambar 2.9 Rangkaian dasar triac
Apabila tegangan V mempunyai polaritas seperti yang tampak pada
gambar 2.9 (A), maka harus menerapkan pemicu positif, yang akan menutup
saklar di sebelah kiri. Bila tegangan V mempunyai polaritas yang berlawanan
dibutuhkan pemicu negatif yang akan menutup saklar di sebelah kanan. Gambar
2.9 (C) merupakan lambang skematik dari sebuah triac.
Rangkaian sederhana pemakaian triac terlihat dalam gambar 2.10 Kaki
MT1 dan MT2 merupakan saklar yang mengatur aliran arus beban yang berasal
dari sumber tegangan bolak-balik (AC). Dalam keadaan normal kaki MT1 dan
MT2 tidak terhubung, sehingga tidak ada arus beban yang mengalir. Saat ada arus
gate mengalir, MT1 akan terhubung ke MT2 dan mengalirkan arus beban.
Arus gate hanya diperlukan untuk menghubungkan MT1 dan MT2, setelah itu MT1 akan tetap terhubung ke MT2 meskipun sudah tidak ada arus gate lagi. Pemberian arus gate sesaat untuk menghubungkan MT1 dan MT2 dikatakan sebagai menyulut (men-trigger) triac. MT1 terhubung terus ke MT2 selama arus beban yang mengalir lebih besar dari arus minimum (holding current).
Gambar 2.11 (a) merupakan contoh lain dari rangkaian triac sebagai
pengendali fase. Rangkaian RC yang memvariasikan sudut fase tegangan gerbang
triac. Rangkaian tersebut dapat mengatur arus melalui sebuah beban yang besar.
Gambar 2.11 (b) dan 2.11 (c) menunjukkan tegangan catu dan tegangan gerbang
yang tertinggal. Saat tegangan kapasitor cukup besar untuk mencatu arus pemicu,
triac akan menghantar. Sekali menghantar, triac akan terus menghantar sampai
tegangan catu kembali nol.
Gambar 2.11 (b) dan (c) Triac sebagai pengendali fase
Tabel 2.4. menunjukkan triac yang tersedia secara komersial. Terlihat,
tegangan pemicu gerbang pada tabel adalah dari 2 sampai 2,5V dan arus pemicu
gerbang dari 10 mA sampai 50 mA. Arus maksimum anoda dari 1A sampai
dengan 15 A.
Tabel 2.4. Triac yang tersedia secara komersial
Seri Piranti VGT’ (V) IGT’ (mA) Imax’ (A) Vmax’ (V)
Q201E3 Q4004L4 Q5010R5 Q6015R5
2 2,5 2,5 2,5
10 25 50 50
1 4 10 15
2.7.1 Penentuan Pemicuan Triac
Gambar 2.12. Satu periode sinusoidal
Gambar 2.12 menunjukkan 1 periode gelombang sinusoidal dengan
frekuensi 50 Hz. Apabila diambil setengah periodenya, maka didapatkan waktu
setengah periodenya 10 ms. Luasan yang diarsir merupakan luasan penggunaan
daya yang diterima triac. Untuk menghitung luasan yang diarsir tersebut dapat
dicari dengan rumus :
x∫180 Sin x dx = - Cos 180° – ( - Cos x ) ...(2.4.a)
Misal penggunaan daya 100% (daerah yang diarsir pada gambar 2.13) maka dapat
dilakukan perhitungan luasan daya selama setengah siklus gelombang sinusoidal
2.7.2. Penentuan Tahanan Gate Triac
Untuk menentukan Rgate dapat dihitung dengan rumus : Vgate = Igate . Rgate
Rgate =
Igate Vgate
...(2.4.b)
2.8 Regulator LM7805
Regulator LM7805 ini adalah IC regulator yang dapat menstabilkan tegangan searah positif dengan masukan 8 Volt sampai 20 Volt. LM7805 dapat
mengeluarkan tegangan maksimum 5,35 V apabila dilengkapi peredam pada heat sink yang memadai dan pada daya kurang atau sama dengan 15 Watt. IC regulator seri LM7805 mempunyai karakteristik sebagai berikut :
a. Menstabilkan tegangan searah positif dengan masukan tegangan dari 8 Volt
sampai 20 Volt DC.
b. Tegangan keluaran dapat mencapai 5,35 V.
c. Tidak memerlukan tambahan komponen ekstern. d. Pembatas arus hubungan singkat intern.
Seri LM7805 dapat diperoleh dalam kemasan TO-22C plastik dan logam.
Pada gambar 2.13 ditunjukkan bentuk fisik dari IC LM7805 yang digunakan, dan
Gambar 2.13. Bentuk fisik dari IC LM7805.
Tabel 2.5. Karakteristik regulator tegangan IC LM7805
I out (Ampere) Vin (Volt) Tipe V out
(Volt) 78xxC 78Lxx 78Mxx Min Max
7805 5 1 0,1 0,5 7,5 20
Penggunaan IC LM7805 untuk regulasi tegangan ditunjukkan dalam gambar 2.14.
LM7805
VIN 1
GN
D
3
VOUT
2
LM7805
VIN 1
GN
D
3
VOUT
2
C1 22 uF C2
0,1 uF
Gambar 2.15.
Catudaya dengan regulator LM7805 dan kapasitor masukan untuk melindungi osilasi dan kapasitor keluaran untuk memperbaiki tanggapan frekuensi.
Fungsi kapasitor masukan dan keluaran terhadap regulator LM7805 terlihat dalam
gambar 2.15. Untuk memperbaiki respon transient (tanggapan frekuensi) pada
tegangan keluaran teregulasi, kapasitor bypass C2 sering digunakan pada pin 2.
Nilai yang sering digunakan adalah dari 0,1 µF sampai 1 µF. Data sheet IC
LM7805 menyarankan kapasitor masukan pin 1 mempunyai nilai minimal 22 µF
untuk masukan yang berfungsi untuk mencegah osilasi.
2.9 Liquid Crystal Display (LCD) dengan Kontroler HD44780U
LCD ( Liquid Crystal Display ) merupakan suatu tampilan ( display ) yang terdiri dari bahan cairan kristal yang dioperasikan dengan menggunakan sistem
dot matrix. DB0 sampai dengan DB7 merupakan jalur data yang dipakai untuk menyalurkan kode ASCII maupun perintah pengatur kerja LCD tersebut.
mengatur kerja LCD tersebut. Sebaliknya jika RS = 1 maka data yang dikirim
adalah kode ASCII yang ingin ditampilkan. R / W merupakan Read / Write. Jika R / W = 0 maka menandakan akan diadakan pengiriman data ke LCD. Dan jika R
/ W = 1 maka menandakan akan diadakan pengambilan data dari LCD.
E ( Enable ) merupakan sinyal sinkronisasi. Saat E berubah dari ‘1’ menjadi ‘0’ maka data di DB0 hingga DB7 akan diterima atau diambil dari atau
oleh LCD. Kemudian untuk menyalakan backlight pada layar LCD maka terdapatlah A ( Anoda ) dan K ( Katoda ) yang nantinya akan dihubungkan pada
+5V dan ground. Anoda dan katoda ini terpisah dari pin namun kadang pada LCD lain sudah ada yang termasuk pada pin.
LCD yang digunakan dalam pembuatan alat ini adalah LCD dengan
menggunakan driver HD44780U. LCD ini dapat menampilkan angka-angka, abjad, huruf jepang, dan juga simbol - simbol lainnya. Interface LCD HD44780U dengan mikrokontroler AT89C51 dapat dilakukan dengan sistem 4 bit ataupun 8
bit.
Dimensi LCD dengan driver HD44780U yang digunakan memiliki ukuran 2 x 16. Hal ini menandakan bahwa LCD tersebut memiliki layar tampilan yang
terdiri atas 2 baris dan 16 kolom seperti yang ditunjukkan pada gambar 2.16.
Dengan demikian total jumlah karakter yang dapat ditampilkan sekaligus
dalam satu layar adalah sebanyak 32 karakter, masing-masing karakter tersebut
Tiap segment terdiri dari 8x5 dot
Dimensi layar LCD
Gambar 2.16 Dimensi Layar dan Foto LCD
HD44780U memiliki beberapa bagian seperti yang disampaikan di bawah
ini :
1. Register
HD44780U memiliki dua buah register 8 bit, yaitu IR ( Instruction Register ) dan DR ( Data Register ). IR ( Instruction Register ) merupakan register yang hanya dapat ditulis dan berguna untuk menyimpan
kode-kode instruksi seperti Display Clear, Cursor Shift, dan juga untuk alamat dari DDRAM ( Display Data RAM ) ataupun CGRAM ( Character Generator RAM ). Sedangkan DR ( Data Register ) merupakan register yang bisa ditulis maupun dibaca dan juga berguna untuk penyimpanan
sementara data yang akan ditulis atau dibaca dari/ ke dalam DDRAM
ataupun CGRAM.
2. BF ( Busy Flag )
dijalankan. Maka untuk dapat menjalankan instruksi selanjutnya perlu
diperiksa apakah busy flag tersebut telah bernilai “0”, atau dapat dilakukan dengan memberikan waktu yang lebih lama dari waktu yang dibutuhkan
oleh eksekusi instruksi itu sendiri diantara instruksi pertama dengan
instruksi selanjutnya.
3. AC ( Address Counter )
Fungsi dari AC ( Address Counter ) adalah untuk mengalamati DDRAM dan juga CGRAM.
4. DDRAM ( Display Data RAM )
DDRAM digunakan untuk menyimpan tampilan data yang
direpresentasikan dalam bentuk 8 bit kode karakter. DDRAM memiliki
kapasitas 80 x 8 bit atau 80 karakter.
5. CGROM ( Character Generator ROM )
CGROM merupakan ROM ( Read Only Memory ) berukuran 80 x 8 bit yang mampu membangkitkan bentuk dot matriks berukuran 5 x 8 maupun 5x10 dari 8 bit kode karakter.
6. CGRAM ( Character Generator RAM )
CGRAM merupakan RAM ( Random Access Memory ) berukuran 64 x 8 bit yang memungkinkan untuk memprogram karakter yang diinginkan.
7. Pin LCD
LCD ini memiliki 14 kaki pin dengan konfigurasi pin seperti yang
Tabel 2.6 Konfigurasi Pin LCD
Nomor Pin Simbol
1 Vcc ( +5 V )
2 Vee ( 0 V )
3 GND ( 0 V )
4 RS
5 R / W
Pada bagian ini akan dijelaskan tentang perancangan sistem yang meliputi perancangan perangkat keras dan perangkat lunak. Blok diagram dari Pengatur tingkat kecerahan lampu dapat dilihat pada gambar 3.1.
Tampilan LCD
Gambar 3.1 Diagram blok perangkat keras
3.1 PERANCANGAN PERANGKAT KERAS 3.1.1 Interfacing Tombol Masukan
Fungsi- fungsi tombol masukan:
Pada rangkaian ini masukan yang digunakan berupa tombol. 10 tombol masukan ini berupa tombol angka dari 1 sampai 10. Masing-masing tombol mempunyai fungsi, adalah mengubah tingkat kecerahan pada lampu. Sebagai contoh apabila pada tampilan awal LCD menunjukkan angka 5 maka
Masukan Tombol
Mikrokontroler AT89S51
Triac Interfacing
Lampu
tingkat kecerahan pada lampu pada level 5, jika terjadi penekanan tombol yang
berbeda dari sebelumnya maka terjadi perubahan pada tingkat kecerahan lampu.
Tombol-tombol tersebut akan terhubung dengan port P1.0 sampai P1.7
ditambah dengan port P3.6 dan P3.7 pada mikrokontroller. Gambar tombol
tersebut dapat dilihat pada gambar 3.2.
AT89S51
Mikrokontroler AT89S51 buatan Atmel mempunyai osilator on-chip, yang dapat digunakan sebagai sumber detak (clock) ke CPU. Cara menggunakannya adalah dengan menghubungkan sebuah resonator kristal atau keramik di antara
kaki-kaki XTAL1 dan XTAL2 pada Mikrokontroler dan hubungkan kapasitornya
ke ground. Pada rangkaian ini digunakan kristal 11.059 MHZ dengan dua kapasitor 30pf seperti terlihat pada Gambar 3.3.
Gambar 3.3 Rangkaian osilator.
3.1.3 Interfacing Zero Crossing
Zero crossing dibentuk oleh transistor NPN 2N4401 yang berfungsi menentukan titik pada setiap 1 periode sinusoidal yang akan dipotong. Dalam
gambar 3.4. terlihat bentuk gelombang dari tegangan masukan dan keluaran yang
dibentuk oleh transistor NPN 2N4401 terhadap waktu periodenya (millisekon).
Gambar 3.4 Gelombang dari Vmasukandan Vkeluaran terhadap t (ms)
Prinsip kerja transistor NPN 2N4401 sebagai saklar:
a. Saat tegangan masukan ke basis transistor 0,7 ≤ V ≤ 5 volt, maka ada arus
yang melewati basis sehingga transistor ON yang membuat tegangan keluaran kolektor transistor rendah dan memberikan logika “0” pada
microcontroller.
b. Saat tegangan masukan ke basis transistor di bawah 0,7 volt, maka tidak
ada arus yang melewati basis sehingga transistor OFF yang membuat tegangan keluaran kolektor transistor tinggi dan memberikan logika “1”
pada microcontroller.
Menentukan nilai Rc dan RB untuk rangkaian transistor sebagai saklar, mengacu
rumus (2.3.a dan rumus 2.3.b) :
Karena di pasaran tidak terdapat nilai Rc = 283,33 Ω, maka dipilih nilai yang
paling mendekati yaitu 300 Ω.
Karena di pasaran tidak terdapat nilai RB = 666 Ω, maka dipilih nilai yang paling
mendekati yaitu 680 Ω.
Interfacing zero crossing yang dibentuk oleh transistor 2N4401 dan
Interfacingzerocrossing dan catu dayadengan Microcontroller AT89S51
Rangkaian zero crossing ini digabungkan pada rangkaian catu daya
dengan memberi dioda D2 antara jembatan dioda D1 (dioda bridge) dan kapasitor
C1.
Fungsi Dioda D1 dan D2 adalah sebagai penyearah gelombang penuh.
Fungsi kapasitor C1 (masukan) dan C2 (keluaran) terhadap regulator LM7805
adalah untuk memperbaiki respon transient pada tegangan keluaran teregulasi,
kapasitor bypass C2 mempunyai nilai yang sering digunakan adalah dari 0,1 µF
sampai 1 µF.
Data sheet seri regulator LM7805 menyarankan kapasitor masukan
mempunyai nilai minimal 22 µF untuk masukan dan 0,1 µF untuk keluaran.
Tegangan ini setelah lewat transistor NPN berubah bentuk menjadi
gelombang kotak yang diumpankan ke kaki port 3.2 Microcontroller AT89S51. Setiap kali tegangan jala-jala listrik mulai meninggalkan titik nol, gelombang
kotak akan berubah dari ‘1’ menjadi ‘0’ yang merupakan sinyal permintaan
interupsi bagi Microcontroller AT89S51.
3.1.4. Interfacing Triac
Dibentuk oleh komponen R1, MOC3021, R17, triac, dan lampu AC 220
volt sebagai beban. Bagian ini langsung berhubungan dengan sumber tegangan
jala-jala listrik 220 volt, supaya tegangan jala-jala terpisah dari bagian lainnya,
dipakai optoisolator MOC3021 untuk menghubungkan AT89S51 dengan triac.
Bagian input dari MOC3021 merupakan LED yang dinyala-padamkan
oleh AT89S51 lewat resistor R1 dan menyalurkan arus dari Vcc lewat LED dan
R1 ke ground sehingga LED menyala. Cahaya LED mengakibatkan diac di
bagian output MOC3021 menjadi “ON” dan mengalirlah arus gate triac lewat R17, selanjutnya triac akan “ON” dan lampu akan menyala. Interfacing triac dengan Microcontroller AT89S51 ditunjukkan dalam gambar 3.6.
R17
Gambar 3.6.Interfacing triac dengan Microcontroller AT89S51
Karakteristik triac Q4004L4 yang digunakan penulis terlihat dalam tabel 3.1.
Tabel 3.1. Karakteristik triac Q4004L4
Seri Piranti VGT’ (V) IGT’ (mA) Imax’ (A) Vmax’ (V)
Q4004L4 2,5 25 4 400
Menentukan nilai R1 :
Karena di pasaran tidak terdapat nilai R1 = 233,3 Ω, maka dipilih nilai yang paling
mendekati yaitu 270 Ω.
3.1.5 Perancangan Luasan Dalam Setengah Gelombang Sinusoidal Untuk
Menentukan Waktu Tunda Penyulutan Triac
Dalam gambar 3.7 terlihat satu periode sinusoidal, dan bagian yang diarsir
adalah setengah periode sinusoidal, daerah tersebut menentukan sudut picu gate
triac (α).
Gambar 3.7. Satu periode sinusoidal
Mencari besar luasan daya yang diterima triac mengacu rumus:
Luas Panjang Daya =
∫
sin x dx0
180
α
= - cos x
0
180
α
= - cos 180° - ( - cos α )
= - cos (180°) - ( - cos α )
= - (-1) - ( - cos α )
= 1 + cos α
cos α = Luasan Penggunaan daya – 1
Untuk penggunaan daya 100% (daerah yang diarsir dalam gambar 3.7), sudut
pemicuan α sama dengan nol, sehingga luasan daya selama setengah periode
gelombang sinusoidal, yaitu :
∫
0 0180
0 sin x dx = - cos (180°) – [ - cos (0°) ]
= 1 + 1 = 2
3.1.6 Besar sudut picu dengan luas penggunaan daya untuk 10 tingkat
kecerahan
Untuk mencari besar sudut picu setiap tingkat kecerahan dapat dicari dengan :
1. Untuk tingkat kecerahan 1 sebesar 10% dari luasan daya maksimal
sehingga :
cos α = 10% x 2 - 1
cos α = 0,2 – 1 = - 0,8
α = arc cos (-0,8) = 143,1°
2. Untuk tingkat kecerahan 2 sebesar 20% dari luasan daya maksimal
sehingga :
cos α = 20% x 2 - 1
cos α = 0,4 – 1 = - 0,6
α = arc cos (-0,6) = 126,9°
3. Untuk tingkat kecerahan 3 sebesar 30% dari luasan daya maksimal
sehingga :
cos α = 30% x 2 - 1
cos α = 0,6 – 1 = - 0,4
α = arc cos (-0,4) = 113,6°
4. Untuk tingkat kecerahan 4 sebesar 40% dari luasan daya maksimal
sehingga :
cos α = 40% x 2 - 1
cos α = 0,8 – 1 = - 0,2
α = arc cos (-0,2) = 101,5°
5. Untuk tingkat kecerahan 5 sebesar 50% dari luasan daya maksimal
sehingga :
cos α = 50% x 2 - 1
cos α = 1 – 1 = 1
α = arc cos (0) = 90°
6. Untuk tingkat kecerahan 6 sebesar 60% dari luasan daya maksimal
sehingga :
cos α = 60% x 2 - 1
cos α = 1,2 – 1 = -0,2
α = arc cos (0,2) = 78,5°
7. Untuk tingkat kecerahan 7 sebesar 70% dari luasan daya maksimal
sehingga :
cos α = 70% x 2 - 1
cos α = 1,4 – 1 = 0,4
α = arc cos (0,4) = 66,4°
8. Untuk tingkat kecerahan 8 sebesar 80% dari luasan daya maksimal
sehingga :
cos α = 80% x 2 - 1
cos α = 1,6 – 1 = 0,4
α = arc cos (0,4) = 53,1°
9. Untuk tingkat kecerahan 9 sebesar 90% dari luasan daya maksimal
sehingga :
cos α = 90% x 2 - 1
cos α = 1,8 – 1 = 0,8
α = arc cos (0,8) = 36,9°
10. Untuk tingkat kecerahan 10 sebesar 100% dari luasan daya maksimal
sehingga :
cos α = 100% x 2 - 1
cos α = 2 – 1 = 1
α = arc cos (1) = 0°
Dalam tabel 3.2 ditunjukkan besar sudut picu dengan besar luasan penggunaan
daya dalam setengah periode sinusoidal.
Tabel 3.2 Besar sudut picu dengan luasan penggunaan daya
Tingkat
3.1.7 Perancangan Waktu Tunda ( Delay Time )
Besar nilai waktu tunda untuk setengah periode sinusoidal dapat dicari
dengan cara :
Dalam satu periode sinusoidal dengan frekuensi 50 Hz (PLN) dapat dihitung nilai
Maka untuk setengah periode sinusoidal nilai perioda
(
T
setengah perode sinusoidal) = 10 ms.Sehingga dapat dicari nilai waktu tunda untuk 10 tingkatan kecerahan,
perhitungannya terlihat dalam tabel 3.3.
Tabel 3.3. Perhitungan besar waktu tunda.
Tingkat
kecerahan
Sudut Picu Perhitungan besar
waktu tunda
1 143,1 ° 7,95 ms
2 126,9 ° 7.05ms
3 113,6 ° 6,31 ms
4 101,5 ° 5,64 ms
5 90 ° 5 ms
6 78,5 ° 4,36 ms
7 66,4 ° 3,69 ms
8 53,1 ° 2,95 ms
9 36,9 ° 2,05 ms
10 0 ° 0 ms
Gambar 3.8. Penggunaan daya 50% dengan waktu tunda selama 5 m
3.2 Papan Penampil
Papan penampil bertugas menerima data dari piranti masukan dan
menampilkannya pada LCD. Jalur data LCD dihubungkan pada port 0
mikrokontroler AT89S51. Delapan jalur data LCD (D0 … D7) dihubungkan
secara langsung pada port 2 seperti yang terlihat pada gambar 3.9. Port 2
berfungsi sebagai keluaran untuk pengiriman data ke LCD sedangkan Port 3.0
dihubungkan ke RS sebagai register select, port 3.1 dihubungkan ke R/W sebagai
read/write dan port 3.2 dihubungkan ke E sebagai enable clock LCD. Pin 3 (VEE)
pada LCD dihubungkan dengan ground agar tampilan pada LCD akan tampak
lebih kontras.
Gambar 3.9 Interfacing LCD dengan mikrokontroler AT89S51
3.3 PERANCANGAN PERANGKAT LUNAK
Dalam perancangan perangkat lunak, ada beberapa hal yang perlu
diperhatikan yaitu pendeteksian masukan, proses pengaturan waktu dan tingkat
kecerahan, proses pembacaan waktu dan tingkat kecerahan yang akan ditampilkan
pada LCD. Program secara keseluruhan menggunakan beberapa subroutine
diantaranya yaitu interrupt service routine timer overflow
3.3.1. Algoritma Program
1. Program dimulai dengan inisialisasi, yaitu antara lain inisialisasi
interupsi Timer 0, inisialisasi interupsi Eksternal 1, inisialisasi masukan, inisialisasi keluaran, inisialisasi register.
2. Penyalaan LCD dan scan 10 tombol masukan dilakukan terus menerus dalam program utama.
3. Masukan titik nol (zero crossing) kemudian menentukan saat
pengaktifan interupsi eksternal 1 untuk menjalankan Timer 0.
4. Interupsi yang dihasilkan Timer 0 digunakan untuk menyulut kaki gate
Triac sehingga mendapatkan hasil pengaturan daya yang akurat.
5. Program kemudian menunggu apakah ada masukan baru yang diterima
Microcontroller AT 89S51 yang masuk lewat tombol masukan (10 tombol)
3.3.2. Diagram Alir Program Utama
Gambar 3.10 merupakan flowchart utama yang dibuat dengan algoritma program utama yang telah diterangkan pada bagian Algoritma Program.
Gambar 3.10. Diagram alir dari Program Utama
Penggalan program utama :
1 ORG 0h
2 LJMP Start ; Program Utama
3 ORG 03h
4 RETI
5 ORG 0bh
6 LJMP Penyulutan ; Penyulutan TRIAC (Interupsi Timer 0)
7 ORG 13h
8 LJMP TitikNol ; Pemantau titik nol (Interupsi Eksternal 1)
9 ORG 1bh
10 RETI
11 ORG 23h
12 RETI
13 Start: LCALL InitLCD ; Initialize LCD for 8 bit data interface
15 SETB IT1 ; Transisi ‘1’ ke ‘0’ 16 SETB EA ; Aktipkan sistem interupsi 17 MOV Urutan,#0 ; Urutan diisi dengan data ke 10 18 MOV Data_Urutan,Urutan ; Simpan Urutan ke Data_Urutan 20 Ulang: CALL Scan_tombol ; Subroutine scan tombol 21 SJMP Ulang ; ulangi proses scan tombol
Program untuk pengatur tingkat kecerahan lampu dengan teknik phase control ini terlihat dalam program di atas. Baris 1 sampai 8 pada program menentukan sistem kerja dari Microcontroller AT89S51 menjalankan routine
‘Start’, saat menerima permintaan interupsi titik nol (zero crossing) yang diumpankan ke ‘INT1’ menjalankan ISR (Interrupt Service Routine / Rutin Layanan Interupsi) ‘Titik Nol’, saat menerima permintaan interupsi Timer 0
menjalankan ISR ‘Penyulutan’.
Routine ‘Start’ terdiri dari baris 13 sampai dengan 21 yang berfungsi
mempersiapkan kerja (inisialisasi) dari Microcontroller AT89S51. Proses
inisialisasi tersebut meliputi proses inisialisasi dari Timer 0, inisialisasi dari interupsi eksternal 1, dan inisialisasi nilai awal register. Pertama kali menentukan
Timer 0 bekerja dengan mode 1 (baris 14). Kemudian menyiapkan port 3.3 untuk melakukan sistem interupsi eksternal 1 (INT1) dari zero crossing, yang akan melakukan pengambilan masukan yang berasal dari eksternal / zero crossing, dan menentukan data yang dianggap sebagai sinyal permintaan interupsi (INT1)
adalah perubahan tegangan ‘1’ ke’0’ (baris 15), kemudian semua sistem interupsi
Microcontroller AT89S51 diaktifkan. (baris16). Dalam program ini, nilai awal
untuk besarnya daya pada beban (lampu) telah ditentukan (baris 17), yaitu berasal
dari data ke-10.
3.3.3. Subroutine Penyalaan LCD
Program untuk penyalaan kedua digit LCD tersebut sebenarnya bergantian dan dilakukan secara terus menerus. Delapan jalur data LCD (D0 … D7)
dihubungkan secara langsung pada port 2 seperti yang terlihat pada gambar 3.9.
Port 2 berfungsi sebagai keluaran untuk pengiriman data ke LCD sedangkan Port
3.0 dihubungkan ke RS sebagai register select, port 3.1 dihubungkan ke R/W sebagai read/write dan port 3.2 dihubungkan ke E sebagai enable clock LCD. Pin 3 (VEE) pada LCD dihubungkan dengan ground agar tampilan pada LCD akan
tampak lebih kontras.
Gambar 3.11. Diagram alir penyalaan LCD.
Penggalan program penyalaan LCD:
22 Penampil:MOV R1,#0CEH ; set posisi karakter lcd 23 LCALL CommandLCD
24 MOV A,Data_Urutan
25 CJNE a,#10,Angka_Lain ; jika data = angka 10 maka 26 MOV R1,#31h ; tulis karakter " 1 "
27 LCALL WriteLCD 28 MOV R1,#30h
29 LCALL WriteLCD 30 RET
31Angka_Lain:ADD A,#30H ; jika data tidak sama dengan angka 10 maka 32 MOV R1,A ; karakter = data + 30h ( ASCI dari data angka ) 33 LCALL WriteLCD ; tulis karakter
34 MOV R1,#20h 35 LCALL WriteLCD 36 RET
3.3.4. Subroutine Scan Tombol
Pertama dilakukan pengecekan tombol mana yang ditekan, jika tidak
terdapat tombol yang ditekan maka program akan keluar.
Diagram alir scan tombol masukan ditunjukkan pada gambar 3.12.
Tidak
simpan ke register Cek Tombol
Gambar 3.12. Diagram alir scan tombol masukan
Penggalan program untuk pengaktifan tombol :
37 Scan_tombol: ; Scan Tombol 1 - 8
38 Cek0:MOV Cek_Tombol,Tombol_Lain
39 CJNE Cek_Tombol,#0FFh,Cek1 ; Cek bila ada tombol yang ditekan
48Cek_8_Tombol:CLR c
59 Cek3: JB Tombol_10,Scan_tombol ; Scan Tombol 10
60 LCALL Delay
3.3.5. Subroutine dari ZeroCrossing
Penggalan programnya ;
76 TitikNol: SETB ET0 ; Aktipkan Interupsi Timer 0 77 SETB TR0 ; Hidupkan Timer 0
78 RETI ; Akhir Interupsi Eksternal 1
Interupsi Timer 0 akan diaktifkan pada baris 76 , maka Timer 0 akan dihidupkan pada baris 78. Lama waktu yang dihasilkan Timer 0 sesuai tergantung TH0 dan TL0. Pengisian waktu tersebut terdapat di dalam subroutine dari Timer 0 untuk tunda penyulutan, sehingga Timer 0 dapat menginterupsi Microcontroller
AT89S51 untuk menyulut gate Triac. Diagram alir eksternal 1 dari zero crossing ditunjukkan pada gambar 3.13.
Gambar 3.13. Diagram alir Eksternal 1 dari zero crossing
3.3.6. Perancangan Waktu Tunda
Dalam Microcontroller AT89S51 mempunyai fasilitas yang dapat
diaplikasikan untuk mengatur waktu tunda penyulutan kaki gate triac, yaitu
Timer. Pencacah Timer AT89S51 merupakan pencacah biner 16 bit naik (countup binary) yang mencacah dari 0000h sampai dengan FFFFh, saat kondisi pencacah berubah dari FFFh kembali ke 0000h akan timbul sinyal limpahan (overflow).
Untuk menjalankannya dapat menggunakan Mode Kerja Timer (frekuensi
kristal 12 MHz ), yaitu Mode 1 ( Timer 16-bit ) yang mempunyai tundaan
maksimum 65.535 µs.
TLx ( 8-bit )
THx ( 8-bit )
Overflow TFx Detak
Timer
Gambar 3.14. Mode 1 – Pencacah Biner 16-Bit
Prinsip kerja Timer Mode 1 ini adalah memakai register TLx sepenuhnya sebagai pencacah biner 8 bit , sehingga kapasitas pencacah biner yang terbentuk
adalah 16 bit. Mode 1 untuk pencacah biner 16 bit ditunjukkan pada gambar 3.14.
Seiring dengan sinyal detak, kondisi pencacah biner 16 bit ini dimulai 0000h,
0001h, 0002h, 0003h...sampai FFFFh, kemudian kembali menjadi
0000h ( pada saat itu terjadi sinyal limpahan atau overflow pada TFx ). Proses penundaan pengaktifan timer ditunjukkan pada gambar 3.15.
0 ms ≤ waktu tunda ≤ 10 ms
Gambar 3.15. Proses Penundaan Pengaktifan Timer
Lama waktu tunda tersebut yang akan dimasukkan ke program dengan bahasa
assembly diubah dari angka desimal menjadi angka heksadesimal. Adapun hasil dari perhitungan keseluruhan ditunjukkan dalam tabel 3.4.
Tabel 3.4. Waktu tunda dalam desimal dan heksa
3.3.7. Subroutinedari Timer 0Untuk Tunda Penyulutan
Penggalan program untuk Subroutine dari Timer 0 untuk tunda penyulutan ialah: 99 DW 0EC78h,0EEF8h,0F196h,0F47Ah 100 DW 0F7FEh,0FFFFh,END
Diagram alir interupsi timer 0 untuk tunda penyulutan ditunjukkan dalam gambar 3.16.
Gambar 3.16. Diagram alir interupsi Timer 0 untuk tunda penyulutan
Tabel waktu tunda diperlukan untuk pengambilan nilai tunda, nilai yang
tersimpan dalam tabel ini adalah nilai yang harus diisikan ke timer 0 untuk menghasilkan waktu tunda sesuai dengan ‘tabel waktu tunda’ (baris 98 sampai
100). Setiap nilai di dalam tabel tediri atas bilangan heksadesimal yang disimpan
dalam 2 byte memori. Baris 86 akan menyiapkan alamat tabel ‘Waktu Tunda’ pada DPTR, untuk digunakan pada baris 88 dan 92. Baris 87 sampai 89
mengambil isi tabel ‘Waktu Tunda’ byte pertama dan diisikan ke TH0, byte kedua diambil dan diisikan ke TL0 pada baris 90 sampai 93. Pengambilan-pengambilan
tersebut berdasarkan data nilai yang mewakili perhitungan P/Pmax sesuai
penunjukkan skala dari tampilan LCD
Dalam tabel 3.5 ditunjukkan tabel keseluruhan dari perancangan, yaitu
urutan data yang akan dipanggil, prosentase penggunaan daya lampu, waktu
penggunaan daya triac, waktu tunda penyulutan triac, dan skala kecerahan lampu,
yang ditunjukkan pada LCD
Tabel 3.5. Tabel keseluruhan dari perancangan
No
Penggunaan
Daya
(%)
Waktu
Penggunaan
Daya (ms)
Waktu
tunda
(ms)
1 10 % 2,05 7.95
2 20 % 2,95 7.05
3 30 % 3,69 6.31
4 40 % 4,36 5.64
5 50% 5 4.99
6 60 % 5,64 4.36
7 70% 6,31 3.69
8 80 % 7.05 2.95
9 90 % 7,95 2.05
10 100 % 10 0,00