alat pendeteksi asap rokok at89s52 in"UNSIQ 2012
Post on 20-Jun-2015
6924 Views
Preview:
DESCRIPTION
Transcript
ALAT PENDETEKSI ASAP ROKOK
BERBASIS MIKROKONTROLLER AT89S52
SKRIPSI
Diajukan Sebagai Salah Satu Syarat
Untuk Memperoleh Gelar Sarjana Komputer Program S-1
ANDRI RIYATNO 8008012
EDI YUNAN 8007021
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS SAINS AL-QUR’AN (UNSIQ)
JAWA TENGAH DI WONOSOBO
2012
BAB I
PENDAHULUAN
1.1 Latar Belakang
Udara yang sehat dan bersih hak bagi setiap orang, sehingga segala
kegiatan yang dapat menyebabkan pencemaran udara perlu dicegah, termasuk
yang bersumber dari asap rokok. Rokok merupakan salah satu zat adiktif yang
bila digunakan dapat mengakibatkan bahaya kesehatan bagi individu dan
masyarakat baik selaku perokok aktif maupun perokok pasif. Upaya
perlindungan terhadap bahaya rokok bagi kesehatan perlu dilakukan secara
menyeluruh terpadu dan berkesinambungan. Pada tataran dunia, merokok telah
menjadi salah satu penyebab kematian terbesar. Diprediksi sekitar 10 juta orang
akan meninggal per tahun menjelang 2030. Di negara-negara berkembang
angkanya akan menjadi 70%. Menurut Koran Tempo, total populasi pria
Indonesia sebanyak 69% merokok, artinya lebih dari separuh lelaki yang ada di
Indonesia ini tiap hari memasukkan bahan beracun ke dalam paru-parunya.
Angka ini paling tinggi jika dibandingkan dengan negara-negara Asia lainnya
seperti Cina yang 53.4%, India 29.4% dan Thailand 39.3%. Hasil penelitian
menunjukkan hampir 70% perokok Indonesia mulai merokok sebelum mereka
berumur 19 tahun. Universitas Indonesia (UI) telah mencanangkan bahwa UI
tahun 2012 bebas asap rokok. Selain UI, Kampus ITS, Universitas Andalas
Padang, dan Universitas Negeri Medan mencanangkan hal yang serupa
Berkaitan dengan upaya tersebut, salah satunya adalah wali kota Bogor juga
memperlakukan Perda Nomor 12 Tahun 2009 tentang KTR (Kawasan Tanpa
Rokok) dan Peraturan Wali Kota Bogor Nomor 12 Tahun 2009 tentang KTR.
Di lingkungan kampus penulis yaitu Universitas Sains Al Qur’an, penulis ingin
mencoba menerapkan KTR guna kesehatan lingkungan dan para perokok pasif.
Ruangan yang bebas asap rokok atau istilahnya KTR tersebut memang
sangat diperlukan guna kesehatan sebuah ruangan termasuk lingkungan dan
sekitarnya. Sebuah terobosan baru diperlukan untuk membuat pemberitahuan
KTR yang lebih efektif yaitu dengan sebuah alat yang dapat mendeteksi adanya
asap rokok serta tanda peringatan adanya asap rokok dan dilengkapi dengan
penanganan atau pembersihan lingkungan sekitar dari asap rokok tersebut.
Suatu alat yang dapat memberikan peringatan adanya asap rokok
sekaligus penanganan tentu berbasis kecerdasan buatan dan mikroelektronika,
karena perkembangan dunia elektronika dan komputer saat ini sudah sangat
pesat. Penemuan silikon menyebabkan bidang ini mampu memberikan
sumbangan yang amat berharga bagi perkembangan teknologi modern.
Pembahasan khusus dalam hal dinamika alat dengan sistem kecerdasan buatan
sangat menjanjikan dalam perolehan kontribusi keilmuan. Tujuan utama dalam
pembuatan alat yang dapat mengontrol dan berfikir sendiri mampu membantu
manusia dalam memperoleh informasi, kenyamanan dan keamanan. Berbagai
peralatan telah dapat dikembangkan oleh manusia, khususnya memudahkan
manusia dalam mengembangkan alat-alat yang dapat menyerupai panca indera
manusia, mulai dari sensor warna yang berfungsi seperti mata, sensor bau yang
berfungsi seperti hidung, sensor gerak, sensor kelembaban dan lain sebagainya.
Berdasarkan dari uraian tersebut di atas maka penulis ingin mencoba
menggabungkan perkembangan teknologi yang telah maju tersebut khususnya
dalam bidang mikroelektronika dan komputer untuk dapat diterapkan pada
sistem umum, yaitu sebagai informasi dan peringatan pada kawasan yang bebas
asap rokok. Oleh karena itu penelitian tugas akhir ini penulis beri judul “ALAT
PENDETEKSI ASAP ROKOK BERBASIS MIKROKONTROLLER
AT89S52”
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah diuraikan di atas, maka penulis mencoba
merumuskan masalah sebagai berikut :
1.Diperlukan sebuah ruangan yang bebas asap rokok dengan peringatan dan
penanganan tertentu supaya kesehatan udara di ruangan tersebut bisa
terjaga.
2.Belum adanya suatu sistem cerdas atau alat yang dapat memberikan
informasi, peringatan dan penanganan ruangan sehingga ruangan tersebut
bebas dari asap rokok.
1.3 Batasan Masalah
Batasan masalah yang digunakan dalam penelitian tugas akhir ini adalah :
1.Alat yang dibuat bersifat prototype atau simulasi alat yang dapat
dipergunakan secara nyata.
2.Uji coba dan penelitian menggunakan sensor asap atau AF-30 dan rokok.
1.4 Tujuan Penelitian
Berdasarkan beberapa pokok masalah di atas maka tujuan dari
penelitian ini adalah :
1. Melakukan penelitian untuk membuat suatu ruangan yang bebas asap rokok.
2. Memanfaatkan sistem kecerdasan buatan yang diterapkan pada
mikrokontroller untuk memberi informasi, peringatan dan penanganan pada
ruangan yang terdapat asap rokok, sehingga ruangan tersebut bebas dari
asap rokok.
1.5 Manfaat Penelitian
Berdasarkan beberapa pokok masalah di atas maka manfaat dari
penelitian ini adalah :
a. Terdapat ruangan yang bebas asap rokok
b. Adanya alat atau sistem cerdas yang dapat memberi informasi, peringatan dan
penanganan ruangan yang terdapat asap rokok
1.6 Sistematika Penulisan
Sistematika penulisan dari tiap bab dalam laporan Tugas Akhir ini
ditujukan agar mendapatkan keterarahan dalam penulisan sehingga dapat
dipahami dan terstruktur. Sistematika penulisan disusun dalam 6 (enam) bab
yang diuraikan sebagai berikut :
BAB I PENDAHULUAN
Pada bab ini penulis menguraikan hal-hal yang berkaitan dengan
permasalahan yang dibahasnya, cara penyelesaiannya, yang umumnya
tersusun dalam sub bab diantaranya : Latar Belakang Masalah,
Maksud Dan Tujuan, Rumusan Masalah, Batasan Masalah,
Metodologi Penelitian dan Sistematika Penulisan.
BAB II TINJAUAN PUSTAKA
Menjelaskan secara singkat teori-teori yang berhubungan dengan
dasar-dasar bahasa pemrograman yang digunakan dan teori-teori yang
bersangkutan dengan materi tugas akhir ini.
BAB III METODELOGI PENELITIAN
Bab ini berisi mengenai tata cara penelitian, pengambilan judul,
langkah-langkah penelitian yang dilakukan penulis, hingga penentuan
keputusan dan kesimpulan penelitian yang penulis lakukan
BAB IV ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini akan dibahas analisis terhadap permasalahan dan
kebutuhan terhadap sistem yang di bahas, meliputi aspek-aspek yang
terlibat, dan lain-lain persoalan yang dapat dianalisis. Selain itu juga
dibahas mengenai deskripsi atau algoritma proses, perancangan
struktur data, perancangan antarmuka untuk input output, struktur
menu, dan perancangan struktur program.
BAB V IMPLEMENTASI SISTEM
Pada bab ini memberikan uraian tentang deskripsi hal-hal yang
berkaitan dengan implementasi program, meliputi batasan-batasan
atau perlatan–peralatan hardware dan software yang digunakan untuk
melakukan implementasi dan pengujian agar sistem siap dioperasikan.
BAB VI PENUTUP
Kesimpulan-kesimpulan yang dapat diambil dari pembahasan
masalah, dan saran atau usul yang dapat diberikan untuk tindak lanjut
terhadap topik yang dibahas, demi kesempurnaan pembahasan
masalah.
BAB II
TINJAUAN PUSTAKA
2.1 Rokok
2.1.1 Pengertian
Rokok adalah silinder dari kertas berukuran panjang antara 70
hingga 120 mm (bervariasi tergantung negara) dengan diameter
sekitar 10 mm yang berisi daun-daun tembakau yang telah dicacah.
Rokok dibakar pada salah satu ujungnya dan dibiarkan membara agar
asapnya dapat dihirup lewat mulut pada ujung lainnya. Rokok
biasanya dijual dalam bungkusan berbentuk kotak atau kemasan
kertas yang dapat dimasukkan dengan mudah ke dalam kantong. Sejak
beberapa tahun terakhir, bungkusan-bungkusan tersebut juga
umumnya disertai pesan kesehatan yang memperingatkan perokok
akan bahaya kesehatan yang dapat ditimbulkan dari merokok,
misalnya kanker paru-paru atau serangan jantung (walaupun pada
kenyataannya itu hanya tinggal hiasan, jarang sekali dipatuhi).
Manusia di dunia yang merokok untuk pertama kalinya adalah
suku bangsa Indian di Amerika, untuk keperluan ritual seperti memuja
dewa atau roh. Pada abad 16, Ketika bangsa Eropa menemukan benua
Amerika, sebagian dari para penjelajah Eropa itu ikut mencoba-coba
menghisap rokok dan kemudian membawa tembakau ke Eropa.
Kemudian kebiasaan merokok mulai muncul di kalangan bangsawan
Eropa. Tapi berbeda dengan bangsa Indian yang merokok untuk
keperluan ritual, di Eropa orang merokok hanya untuk kesenangan
semata-mata. Abad 17 para pedagang Spanyol masuk ke Turki dan
saat itu kebiasaan merokok mulai masuk negara-negara Islam. Telah
banyak riset yang membuktikan bahwa rokok sangat menyebabkan
ketergantungan, di samping menyebabkan banyak tipe kanker,
penyakit jantung, penyakit pernapasan, penyakit pencernaan, efek
buruk bagi kelahiran, dan emfisema
2.1.2 Jenis Rokok
Rokok dibedakan menjadi beberapa jenis. Pembedaan ini
didasarkan atas bahan pembungkus rokok, bahan baku atau isi rokok,
proses pembuatan rokok, dan penggunaan filter pada rokok.
Rokok berdasarkan bahan pembungkus :
Klobot: rokok yang bahan pembungkusnya berupa daun jagung.
Kawung: rokok yang bahan pembungkusnya berupa daun aren.
Sigaret: rokok yang bahan pembungkusnya berupa kertas.
Cerutu: rokok yang bahan pembungkusnya berupa daun tembakau.
Rokok berdasarkan bahan baku atau isi :
Rokok Putih: rokok yang bahan baku atau isinya hanya daun
tembakau yang diberi saus untuk mendapatkan efek rasa dan
aroma tertentu.
Rokok Kretek: rokok yang bahan baku atau isinya berupa daun
tembakau dan cengkeh yang diberi saus untuk mendapatkan efek
rasa dan aroma tertentu.
Rokok Klembak: rokok yang bahan baku atau isinya berupa daun
tembakau, cengkeh, dan kemenyan yang diberi saus untuk
mendapatkan efek rasa dan aroma tertentu.
Rokok berdasarkan proses pembuatannya.
Sigaret Kretek Tangan (SKT): rokok yang proses pembuatannya
dengan cara digiling atau dilinting dengan menggunakan tangan
dan atau alat bantu sederhana.
Sigaret Kretek Mesin (SKM): rokok yang proses pembuatannya
menggunakan mesin. Sederhananya, material rokok dimasukkan
ke dalam mesin pembuat rokok. Keluaran yang dihasilkan mesin
pembuat rokok berupa rokok batangan. Saat ini mesin pembuat
rokok telah mampu menghasilkan keluaran sekitar enam ribu
sampai delapan ribu batang rokok per menit. Mesin pembuat
rokok, biasanya, dihubungkan dengan mesin pembungkus rokok
sehingga keluaran yang dihasilkan bukan lagi berupa rokok
batangan namun telah dalam bentuk pak. Ada pula mesin
pembungkus rokok yang mampu menghasilkan keluaran berupa
rokok dalam pres, satu pres berisi 10 pak. Sayangnya, belum
ditemukan mesin yang mampu menghasilkan SKT karena terdapat
perbedaan diameter pangkal dengan diameter ujung SKT. Pada
SKM, lingkar pangkal rokok dan lingkar ujung rokok sama besar.
Rokok berdasarkan penggunaan filter :
Rokok Filter (RF): rokok yang pada bagian pangkalnya terdapat
gabus.
Rokok Non Filter (RNF): rokok yang pada bagian pangkalnya
tidak terdapat gabus.
Dilihat dari komposisinya :
1. Bidis: Tembakau yang digulung dengan daun temburni kering dan
diikat dengan benang.Tar dan karbon monoksidanya lebih tinggi
daripada rokok buatan pabrik. Biasa ditemukan di Asia Tenggara
dan India.
2. Cigar: Dari fermentasi tembakau yang diasapi, digulung dengan
daun tembakau. Adaberbagai jenis yang berbeda di tiap negara.
Yang terkenal dari Havana, Kuba.
3. Kretek: Campuran tembakau dengan cengkeh atau aroma cengkeh
berefek mati rasa dan sakit saluran pernapasan. Jenis ini paling
berkembang dan banyak di Indonesia.
4. Tembakau langsung ke mulut atau tembakau kunyah juga biasa
digunakan di AsiaTenggara dan India. Bahkan 56 persen
perempuan India menggunakan jenis kunyah. Adalagi jenis yang
diletakkan antara pipi dan gusi, dan tembakau kering yang diisap
denganhidung atau mulut.
5. Shisha atau hubbly bubbly: Jenis tembakau dari buah-buahan atau
rasa buah-buahanyang disedot dengan pipa dari tabung. Biasanya
digunakan di Afrika Utara, TimurTengah, dan beberapa tempat di
Asia. Di Indonesia, shisha sedang menjamur seperti dikafe-kafe
2.1.3 Kandungan Kimia
Berikut adalah beberapa bahan kimia yang terkandung di
dalam rokok :
Nikotin, kandungan yang menyebabkan perokok merasa rileks.
Tar, yang terdiri dari lebih dari 4000 bahan kimia yang mana 60
bahan kimia di antaranya bersifat karsinogenik.
Sianida, senyawa kimia yang mengandung kelompok cyano.
Benzene, juga dikenal sebagai bensol, senyawa kimia organik yang
mudah terbakar dan tidak berwarna.
Cadmium, sebuah logam yang sangat beracun dan radioaktif.
Metanol (alkohol kayu), alkohol yang paling sederhana yang juga
dikenal sebagai metil alkohol.
Asetilena, merupakan senyawa kimia tak jenuh yang juga
merupakan hidrokarbon alkuna yang paling sederhana.
Amonia, dapat ditemukan di mana-mana, tetapi sangat beracun
dalam kombinasi dengan unsur-unsur tertentu.
Formaldehida, cairan yang sangat beracun yang digunakan untuk
mengawetkan mayat.
Hidrogen sianida, racun yang digunakan sebagai fumigan untuk
membunuh semut. Zat ini juga digunakan sebagai zat pembuat
plastik dan pestisida.
Arsenik, bahan yang terdapat dalam racun tikus.
Karbon monoksida, bahan kimia beracun yang ditemukan dalam
asap buangan mobil.
Gambar 2.1 Rokok
Sumber : http://id.wikipedia.org/wiki/Rokok (Online 24/09/2012)
2.2 Mikrokontroller
2.2.1 Pengertian Mikrokontroller
Mikrokontroler adalah Central Processing Unit (CPU) yang
disertai dengan memori serta sarana input atau output dan dibuat dalam
bentuk chip. (Suhata, S.T : 2005 hal: 7).
2.2.2 Bagian-Bagian Mikrokontroller
1. CPU (Central Processing Unit)
CPU terdiri atas dua bagian, yaitu unit pengendali (control unit) serta
unit arithmatika dan logika (ALU). Fungsi utama unit pengendali
adalah mengambil, mengkodekan dan melaksanakan urutan instruksi
sebuah program yang tersimpan dalam memori. Unit pengendali
menghasilkan dan mengatur sinyal pengendali yang diperlukan untuk
menyerempakkan operasi, aliran dan instruksi program. Unit
aritmatika dan logika berfungsi untuk melakukan proses perhitungan
yang diperlukan selama program dijalankan serta mempertimbangkan
suatu kondisi dan mengambil keputusan yang diperlukan untuk
instruksi-instruksi berikutnya.
2. Bus Alamat
Bus alamat berfungsi sebagai sejumlah lintasan saluran pengalamatan
antara alat dengan sebuah komputer. Pengalamatan ini harus
ditentukan terlebih dahulu untuk menghindari terjadinya kesalahan
pengiriman sebuah instruksi dan terjadinya bentrok antara dua buah
alat yang bekerja secara bersamaan.
3. Bus Data
Bus data merupakan sejumlah lintasan saluran keluar-masuknya data
dalam suatu mikrokontroller. Pada umumnya saluran data yang masuk
sama dengan saluran data yang keluar.
4. Bus Kontrol
Bus kontrol atau bus pengendali ini berfungsi untuk menyerempakkan
operasi mikrokontroller dengan operasi rangkaian luar.
5. Memori
Di dalam sebuah mikrokontroller terdapat suatu memori yang
berfungsi untuk menyimpan data atau program. Ada beberapa jenis
memori, di antaranya adalah RAM dan ROM. Ada beberapa tingkatan
memori, diantaranya adalah register internal, memori utama dan
memori masal. Register internal adalah memori di dalam ALU.
Waktu akses register sangat cepat, umumnya kurang dari 100 ns.
Memori utama adalah memori yang ada pada suatu sistem. Waktu
aksesnya lebih lambat dibandingkan register internal, yaitu antara 200
sampai 1.000 ns. Memori massal dipakai untuk penyimpanan
berkapasitas tinggi, biasanya berbentuk disket, pita magnetik atau
kaset.
6. RAM (Random Acces Memory)
RAM merupakan memori yang dapat dibaca dan ditulis. RAM
biasanya digunakan ntuk menyimpan data atau sering disebut dengan
memori data saat program bekerja. Data yang ada pada RAM hilang
bila catu daya dari RAM dimatikan sehingga RAM hanya dapat
digunakan untuk menyimpan data sementara.
Teknologi RAM dapat dibagi menjadi dua, yaitu statik dan dinamik.
RAM dinamik tersusun oleh sel-sel yang menyimpan data sebagai
muatan listrik pada kapasitor. Ada tidaknya muatan yang ada pada
kapasitor dijadikan acuan oleh RAM dinamik sebagai bilangan biner 1
atau 0. Oleh karena kapasitor memiliki kecenderungan alami untuk
mengosongkan muatan, RAM dinamik memerlukan pengisian muatan
secara periodik untuk melihara penyimpanan data. Pada RAM statik,
nilai biner disimpan menggunakan konfigurasi gate logika flip-flop.
RAM statik akan menyimpan data selama aliran daya diberikan
padanya.
7. ROM (Read Only Memory)
ROM merupakan memori yang hanya dapat dibaca. Data yang
tersimpan di ROM tidak akan hilang meskipun tegangan supply
dimatikan. Dari sifatnya itu maka ROM sering dipakai untuk
menyimpan program. Ada beberapa jenis ROM diantaranya ROM,
PROM, EPROM dan EEPROM.
ROM merupakan memori yang sudah diprogram oleh pabrik. PROM
dapat diprogram oleh pemakai tapi hanya dapat ditulis sekali saja.
UV-EPROM merupakan PROM yang dapat diprogram atau ditulis
beberapa kali dan dapat dihapus dengan sinar ultraviolet. Flash
PEROM adalah PROM yang dapat ditulis ulang beberapa kali dan
dapat dihapus secara elektrik atau dengan tegangan listrik. UV-
EPROM harganya lebih mahal dari Flash PEROM, karena itu Flash
PEROM lebih popular dan diminati programmer mikrokontroller.
2.2.3 Keuntungan Penggunaan Mikrokontroler
Penggunaan mikrokontroler mempunyai keuntungan antara lain :
a. Sistem elektronik akan menjadi lebih ringkas
b. Rancang bangun sistem elektronik akan lebih cepat karena
sebagian besar dari sistem adalah perangkat lunak yang mudah
dimodifikasi
c. Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang
kompak.
2.2.4 Kesamaan antara Mikrokontroler dengan Komputer
a. Sama-sama memiliki unit pengolah pusat atau yang lebih dikenal
dengan CPU (Central Processing Unit);
b. CPU tersebut sama-sama menjalankan program dari suatu lokasi
atau tempat, biasanya dari ROM (Read Only Memory) atau RAM
(Random Access Memory);
c. Sama-sama memiliki RAM yang digunakan untuk menyimpan
data-data sementara atau yang lebih dikenal dengan variabel-
variabel;Sama-sama memiliki beberapa keluaran dan masukan
yang digunakan untuk melakukan komunikasi timbal-balik
dengan dunia luar.
2.2.5 Perbedaan antara Mikrokontroler dan Komputer
Perbedaan antara mikrokontroler dan komputer antara lain :
a. CPU pada Komputer berada eksternal dalam suatu sistem, sampai
saat ini kecepatan operasionalnya sudah mencapai tingkat lebih
dari 2 GHz, sedangkan CPU pada Mikrokontroler berada internal
dalam sebuah chip, kecepatan bekerja masih cukup rendah, dalam
orde MHz (misalnya, 24 MHz, 40 MHz dan lain sebagainya).
Kecepatan yang relatif rendah ini sudah mencukupi untuk
aplikasi-aplikasi berbasis mikrokontroler.
b. Jika CPU pada komputer menjalankan program dalam ROM atau
yang lebih dikenal dengan BIOS pada saat awal dihidupkan,
kemudian mengambil atau menjalankan program yang tersimpan
dalam hard disk. Sedangkan mikrokontroler sejak awal
menjalankan program yang tersimpan dalam ROM internal-nya
(bisa berupa Mask ROM atau Flash PEROM). Sifat memori
program ini non volatile, artinya tetap akan tersimpan walaupun
tidak diberi catu daya.
c. RAM pada mikrokomputer bisa mencapai ukuran sekian MByte
dan bisa di-upgrade ke ukuran yang lebih besar dan berlokasi di
luar chip CPU-nya, sedangkan RAM pada mikrokontroler ada di
dalam chip mikrokontroler yang bersangkutan dan ukurannya
sangat minim, misalnya 128 byte, 256 byte dan seterusnya dan
ukuran yang relatif kecil inipun dirasa cukup untuk aplikasi-
aplikasi mikrokontroler.
d. Keluaran dan masukan pada mikrokomputer jauh lebih kompleks
dibandingkan dengan mikrokontroler, yang jauh lebih sederhana,
selain itu, pada mikrokontroler tingkat akses keluaran dan
masukan bisa dalam satuan per bit.
e. Jika diamati lebih lanjut, Mikrokomputer atau Komputer
merupakan komputer serbaguna atau general purpose computer,
bisa dimanfaatkan untuk berbagai macam aplikasi (atau perangkat
lunak). Sedangkan mikrokontroler adalah special purpose
computer atau komputer untuk tujuan khusus, hanya satu macam
aplikasi saja.
2.3 AT89S52
Mikrokontroler AT89S52 merupakan sebuah Mikrokontroler 8 bit bertenaga
rendah dengan teknologi CMOS berkinerja tinggi yang dilengkapi dengan
memori flash yang dapat diprogram sebesar 8 Kbyte. Komponen ini dibuat
dengan teknologi memori Atmel yang nonvolatile dan berkapasitas tinggi serta
kompatibel dengan set intruksi dan kaki out standar industri 80CSI. Flash onchip
memungkinkan memori program dapat diprogram ulang dalam system atau
dengan pemprograman memori nonvolatile yang konvensinal. Dengan
menggunakan CPU 8 bit dengan flash yang diprogram dari sistem dalam sebuah
monolitik chip, Atmel AT89S52 adalah sebuah Mikrokontroler yang sangat baik
untuk menyelesaikan solusi yang sangat fleksibel dan efektif dalam biaya, untuk
banyak masalah aplikasi serta untuk mengontrol modul tambahan.
Gambar 2.2 Mikrokontroler AT89S52
Mikrokontroler AT89S52 memiliki :
Sebuah CPU ( Central Processing Unit ) 8 Bit.
256 byte RAM ( Random Acces Memory ) internal.
Empat buah port I/O, yang masing masing terdiri dari 8 bit.
Osilator internal dan rangkaian pewaktu.
Dua buah timer/counter 16 bit.
Lima buah jalur interupsi ( 2 buah interupsi eksternal dan 3
interupsi internal).
Sebuah port serial dengan full duplex UART (Universal
Asynchronous Receiver Transmitter).
Mampu melaksanakan proses perkalian, pembagian, dan Boolean.
EPROM yang besarnya 8 KByte untuk memori program.
Kecepatan maksimum pelaksanaan instruksi per siklus adalah 0,5
μs pada frekuensi clock 24 MHz. Apabila frekuensi clock
mikrokontroler yang digunakan adalah 12 MHz, maka kecepatan
pelaksanaan instruksi adalah 1 μs.
Sebagai perbandingan kapasitas memori, Tabel 2.1 menampilkan
kapasitas memori dari mikrokontroler seri AT89X.
Tabel 2.1 Kapasitas Memori Mikrokontroler seri AT89X
2.3.1 Arsitektur AT89S52
Mikrokontroler AT89S52 dibangun berdasarkan arsitektur seperti
ditunjukkan gambar dibawah ini. Seluruh bagian yang digambar pada gambar
tersebut saling berhubungan melalui internal bus 8 bit menelusuri bagian
serpih. Bus tersebut kemudian dihubungkan ke luar melalui input output port
apabila memori atau expansi diperlukan.
Unit pengolah pusat (CPU) terdiri atas dua bagian, yaitu unit
pengendali control unit (CU), serta unit aritmatika dan logika (ALU). Fungsi
utama unit pengendali ini adalah mengambil, mengkode, dan melaksanakan
urutan intruksi sebuah program yang tersimpan dalam memori, unit
pengendali juga berfungsi untuk mengatur urutan operasi seluruh sistem. Unit
pengendali atau CPU juga menghasilkan dan mengatur sinyal pengendali
yang diperlukan untuk menyerempakkan operasi, juga aliran intruksi
program. Aliran informasi pada bus-bus data dan bus alamat juga diatur
oleh unit ini.
Sumber : http://agfi.staff.ugm.ac.id/blog/index.php/2009/12/mengenal-system-clock-pada-mikrokontroler (online 21 Juli 2012)
Gambar 2.3 Blok Diagram MIkrokontroler
Sumber : http://onelka.wordpress.com/mikrokontroler-at89s52 ( Online :21 oktober 2012 )
2.3.2 Arti Kode AT89S52
Jika penulis kelompokkan huruf dan angka tersebut, maka akan menjadi
seperti berikut: AT89S52 = AT + 8952 + S
Dengan arti: AT = ATMEL sebagai produsen dari IC ini
8952 = 8052 + 9 = IC ber-arsitektur 8052 dengan tipe memory Flash
ROM (9 = Flash ROM, 8 = EEPROM, 7 = EPROM).
S = ISP programming = Sudah dapat diprogram secara ISP.
2.3.3 Susunan Kaki Mikrokontroller AT89S52
IC AT89S52 mempunyai 40 pin yang sesuai dengan mikrokontroler 8031,
dengan susunan kaki seperti Gambar 2 .3
Gambar 2.4 Nama Pin-pin AT89S52
2.3.4 Komunikasi Serial AT89S52
Mikrokontroller AT89S51/52 atau mikrokontroller standar lainnya
mempunyai On Chip Serial Port yang dapat digunakan untuk komunikasi
data serial secara Full Duplex sehingga Port Serial ini masih dapat
menerima data pada saat proses pengiriman data terjadi. Untuk menampung
data yang diterima atau data yang akan dikirimkan. Keluarga MCS-51
mempunyai sebuah register yaitu SBUF yang terletak pada alamat 99H di
mana register ini berfungsi sebagai buffer sehingga pada saat
mikrokontroller ini membaca data yang pertama dan data kedua belum
diterima secara penuh, maka data ini tidak akan hilang.
Pada kenyataannya register SBUF terdiri dari dua
buah register yang memang menempati alamat yang sama
yaitu 99H. Register tersebut adalah Transmit Buffer
Register yang bersifat write only (hanya dapat ditulis) dan
Receive Buffer Register yang bersifat read only (hanya
dapat dibaca). Pada proses penerimaan data dari Port
Serial, data yang masuk ke dalam Port Serial akan
ditampung pada Receive Buffer Register terlebih dahulu
dan diteruskan ke jalur bus internal pada saat pembacaan
register SBUF sedangkan pada proses pengiriman data ke
Port Serial, data yang dituliskan dari bus internal akan
ditampung pada Transmit Buffer Register terlebih dahulu
sebelum dikirim ke Port Serial. Pada Mikrokontroller
keluarga MCS-51, vektor interupsi untuk komunikasi serial
ialah 23H. (Agfianto, Teknik Antarmuka, 2002)
2.3.5 8052 uC Board
8052 uC Board adalah sebuah board dengan kontroler 8052
yang menggunakan IC mikrokontroller AT89S51. Board ini kompatibel
penuh dengan semua IC mikrokontroller dengan tipe AT89S. Dengan
menggunakan mikrokontroller AT89S dapat dilakukan pemrograman
mikrokontroller dengan cara In System Programming (ISP). Artinya IC
mikrokontroller tidak perlu dicabut pasang untuk pemrograman, karena
IC mikrokontroller dapat diprogram langsung pada board tersebut.
Selain itu board ini juga telah menyertakan perangkat komunikasi serial
RS232, sehingga dapat berkomunikasi dengan peralatan lain yang
mempunyai port serial RS232. 8052 uC Board mempunyai tata letak
komponen yang dapat dilihat pada gambar 2.3 di bawah ini.
Gambar 2.5 Tata Letak Komponen 8052 uC Board
Catu daya untuk 8051 uC Board dapat diberikan dengan catu daya
DC 9 sampai 15 V. Untuk koneksi port-port mikrokontroller dapat dilihat
pada board, karena telah dicetak pada PCB 8051 uC Board. Untuk J1 dan
J2 masing masing adalah jumper untuk mengatur RxD dan TxD port serial
RS232. Posisi default adalah 1-2 yang artinya serial port diaktifkan, pada
posisi ini maka port P3.0 dan P3.1 mikrokontroller tidak terhubung pada
konektor P3. Pada posisi 2-3 maka serial port dinon-aktifkan sehingga port
P3.0 dan P3.1 mikrokontroller terhubung dengan konektor P3.
2.4 Sensor Asap AF 30
Sensor AF-30 adalah sensor asap rokok. Pada dasarnya prinsip kerja dari
sensor tersebut adalah mendeteksi keberadaan gas-gas yang dianggap mewakili
asap rokok, yaitu gas Hydrogen dan Ethanol. Sensor AF-30 mempunyai tingkat
sensitifitas yang tinggi terhadap dua jenis gas tersebut. Jika sensor tersebut
mendeteksi keberadaan gas-gas tersebut diudara dengan tingkat konsentrasi
tertentu, maka sensor akan menganggap terdapat asap rokok di udara. Ketika
sensor mendeteksi keberadaan gas-gas tersbut maka resistansi elektrik sensor
akan turun. Dengan memanfaatkan prinsip kerja dari sensor AF-30 ini,
kandungan gas-gas tersebut dapat diukur. Gambar satu adalah grafik tingkat
sensitifitas sensor AF-30 terhadap kedua gas tersebut.
Gambar 2.6 Grafik Hubungan H2O, Ethanol dan Asap Rokok
Dari grafik pada gambar 2.5 dapat dilihat bahwa dengan mengukur
perbandingan antara resistansi sensor pada saat terdapat gas dan resistansi
sensor pada udara bersih atau tidak mengandung gas tersebut (Rgas/Rair),
dapat diketahui kadar gas tersebut. Sebagai contoh jika resistansi sensor (RS)
pada saat terdapat gas Hydrogen adalah 1KΏ dan resistansi sensor (RS) pada
saat udara bersih adalah 10KΏ maka:
Rumus 2.1 Perhitungan Resistansi Sensor
Dari perhitungan Rumus 2.1 diatas serta menurut grafik pada gambar
2.4, jika Rgas/Rair=0.1 maka konsentrasi gas Hydrogen pada udara adalah
sekitar 100ppm.
Gambar 2.7 Dimensi Sensor AF 30
Gambar 2.8 Gambar Sensor AF 30
Sumber : http://digilib.ittelkom.ac.id/index.php?option=com_content
&view=article&id=688:asap&catid=16:mikroprocessorkontroller&Itemid=14 (Online
7/10/2012)
Tabel 2.2 Perbandingan Antara Sensor AF 10 – AF 60
NoNama Sensor
Jenis Pembacaan
Getaran TemperaturGas
H2O,EthanolCairan Methana GPS
1 AF-10 √2 AF-20 √3 AF-30 √4 AF-40 √5 AF-50 √6 AF-60 √
Sumber : http://www.google.co.id
2.5 Komponen Elektronika Umum
2.5.1 Resistor
Resistor sering disebut dengan penghambat arus listrik dengan
satuan OHM. Resistor memiliki beban resistif di mana arus dan
tegangan tidak tidak tertinggal. Jumlah aljabar tegangan akan
berbanding lurus dengan resistansi dan arus.
Gambar 2.9 Gambar Resistor
Atau
Rumus 2.2 Rumus Resistor
Tegangan memiliki satuan Volt
Arus memiliki satuan Ampere
Resistor atau tahanan memiliki satuan Ohm
Gambar 2.10 Simbol dari Resistor
V = I.R
Gambar 2.11 Warna dan Nilai Resistor
sebagai contoh :
Diketahui suatu rangkaian tertutup dengan nilai resistansi 220 Ohm.
Tengangan yang digunakan sebesar 9 Volt, berapakan arus yang mengalir
dalam rangkaian tersebut ?
Jawab :
Diketahui :
R tahanan : 220 Ohm
V tegangan : 9 Volt
Ditanyakan : I arus yang mengalir ?
Jawab :
V = I.R maka I = V / R
I = 9 / 220
I = 0.04 Ampere atau 40 mA
Sumber : http://id.wikipedia.org/wiki/resistor (online 29/09/2012)
2.5.2 Transistor.
Gambar 2.12 Transistor
Sumber : http://id.wikipedia.org/wiki/transistor (online 29/09/2012)
Berdasarkan struktur atau komponen pembentuk materi transistor
dibedakan menjadi 2, yaitu transistor PNP dan transistor NPN.
Transistor memiliki 3 kaki yaitu kaki basis, emitor dan kolektor. Arus
akan mengalir dari kolektor ke emitor di mana komponen kaki basis
harus diberikan pemicu sebesar 0.7 mA untuk germanium sedangkan 0.3
mA untuk silikon. Ada 2 transistor yang dibutuhkan untuk memberikan
nilai yang lebih tinggi untuk memicu kerja dari Relay. Pemasangan
kedua transistor tersebut dinamakan dengan transistor Darlington. Cara
kerjanya adalah dengan memanfaatkan pemicuan basis transistor
pertama ke dalam basis transistor kedua untuk nilai yang lebih besar. Hal
ini dilakukan karena pada dasarnya sinkronisasi antara mikrokontroller
dengan driver harus menggunakan rangkaian tersebut dilihat dari
perbedaan tegangan antara mikrokontroller dengan driver yang telah
dibuat. Transistor yang digunakan memiliki tipe C828 dan D313.
Ukuran dari transistor C828 lebih kecil dari transistor D313 karena daya
yang dihasilkanpun berbeda. Daya yang dihasilkan dari transistor D313
lebih besar dari transistor C828. Semakin besar daya yang dihasilkan
maka nilai arus pacu atau asut akan lebih besar. Mikrokontroller hanya
mampu memasok arus sebesar 4mA.
2.5.3 Kapasitor
Gambar 2.13 Kapasitor
Sumber : http://id.wikipedia.org/wiki/kapasitor (online 29/09/2012)
Sebuah Kapasitor atau disebut kondensator adalah sebuah
komponen elektronika yang dapat menyimpan energi listrik dalam
bentuk muatan listrik dalam waktu tertentu tanpa disertai reaksi kimia.
Kapasitor meneruskan tegangan bolak-balik tetapi tidak meneruskan
tegangan rata-rata sehingga kapasitor juga digunakan untuk
mentransportasikan tegangan bolak-balik, kalau sebuah induktor itu akan
melawan perubahan tegangan yang lewat . kalau sebuah induktor
memiliki resitansi yang sangat kecil terhadap arus searah, sebaliknya
sebuah kapasitor memberikan resistensi yang amat besar terhadap arus
searah karena di elektrikumnya.
Kapasitor merupakan tempat menyimpan muatan listrik ukuran
kecil. Kapasitor meneruskan tegangan bolak – balik tetapi tidak
meneruskan tegangan rata, sehingga kapasitor digunakan juga untuk
memindahkan atau mentransportasikan tegangan bolak – balik.
Mengenai jumlah muatan yang dapat ditampungnya atau kapasitasnya
diukur dalam satuan farad (F). nilai dari kapasitor – kapasitor yang biasa
(kondensator keramik dan kondensator foli) antara 1pF dan 1F, jadi
antara :
1
1.000.000.000.000F dan
1
1.000.000F
Pada kondensator, nilainya sering dicantumkan sbb :
1 n 5 = 1,5 nF 0,03 mF = 30 nF
100 P (N 100 atau n 1) = 100 pF
Kecuali kapasitas, masalah tegangan juga penting, untuk hal itu
setidaknya besarnya arus 20 % diatas tegangan pengadaan. Kondensator
elektrolit (elko) memiliki kapasitas yang sangat tinggi ( secara garis
besarnya antara 1 MF dan 10.000 MF ). Kondensator elektrolit ini
mempunyai polaritas tertentu sehingga penyambungan positif dan
negatifnya tidak boleh bertukar.
Gambar 2.14 Kapasitor Elektrolitik (elco)
Gambar 2.15 Kapasitor Plastik Dielektrik
2.6 SDCC (Small Device C Compiler)
2.6.1 Pengertian Bahasa C
Bahasa C adalah salah satu bahasa pemograman yang populer di dunia
dan mempunyai kemampuan lebih dari bahasa pemograman yang lain.
Banyak sekali aplikasi-aplikasi yang ditulis dalam bahasa C, atau paling tidak
inti utama programnya ditulis dalam bahasa C. Bahkan, Sofware
Development Kit untuk windows ditulis dengan bahasa C. Bahasa C
merupakan bahasa pemrogaman yang sifatnya portable, yaitu dengan sedikit
atau tanpa perubahan, suaru program yang ditulis dengan bahasa C pada suatu
komputer dapat dijalankan pada komputer lain. Bahasa C merupakan general-
purpose language. yang dapat digunakan untuk tujuan apa saja. C merupakan
industrial-strength language. Dengan bahasa C dapat membangun beragam
aplikasi mulai dari pemrograman sistem, aplikasi cerdas (artificial
intellegent), sistem pakar, utility, driver, database, browser, network
programing, sistem operasi, game, virus, robotika, dan lain-lain.
Bahasa C diciptakan oleh Dennis Ritchie. Sebenarnya, bahasa C
merupakan pengembangan dari bahasa BCPL yang lebih dahulu ada. Sebagai
bahasa yang lebih digolongkan dalam middle level language, bahasa C
mempunyai kemudahan di dalam mengakses perangkat keras, juga kecepatan
prosesnya yang mendekati low level languange seperti Assembly. Disamping
itu, bahasa C jauh lebih mudah untuk dipelajari jika dibandingkan dengan
bahasa low level karena mendekati frase-frase dalam bahasa manusia yaitu
bahasa Inggris.
Bahasa C mempunyai banyak keuntungan dibandingkan dengan
bahasa pemrograman lainnya. C merupakan bahasa yang kokoh dan
memberikan keleluasaan kepada penggunanya. C merupakan bahasa yang
portable. Dengan sedikit atau tanpa modifikasi program C yang ditulis pada
suatu komputer dapat dijalankan pada komputer lain yang memiliki kompiler
C. Keuntungan lain dari C adalah dalam hal eksekusi. C memberikan
kecepatan mendekati bahasa Assembly, tetapi memberikan kemudahan yang
tidak ditawarkan oleh bahasa Assembly. Pada tahun 80-an penggunaan C di
dunia industri semakin semakin luas sehingga kemudian distandarisasi oleh
ANSI dan kemudian diadopsi oleh ISO dan diadopsi ulang oleh ANSI.
Official name bahasa C adalah ISO/IEC 9899-1990. Dalam pemrograman C
kita hendaknya mengacu pada standar C yaitu ISO C.
Kristanto, Andi. 2003. Struktur Data dengan C++ hal 1-2 .Yogyakarta :
Graha Ilmu.
2.6.2 Pengertian SDCC (Small Device C Compiler)
SDCC Merupaka Open Source, C compiler yang pertama kali
dikembangkan oleh Sandeep Dutta, untuk mikrokontroller/mikroprosesor 8-
bit, SDCC mendukung beberapa arsitektur mikrokontroller/mikroprosessor 8-
bit antara lain: Intel MCS-51, Zilog Z80, Atmel AVR, Microchip PIC,
Freescale (Motorola) HC08. Disini kita akan bahas penggunaan SDCC untuk
MCS-51 Family yang cukup banyak dipakai saat ini.
Pemrograman dengan bahasa C lebih mudah di bandingkan
menggunakan bahasa assembly (bahasa mesin), SDCC merupakan C
compiler gratis (freeware) sehingga anda tidak perlu mengeluarkan biaya
untuk membeli compiler komersial yang harganya cukup mahal, dari segi
code yang dihasilkan optimasi sdcc sangat bagus
SDCC medukung beberapa tipe data standar sebagai berikut :
- bool 1 Bit (0,1)
- char 8 bits (signed -128~+127, unsigned 0~255)
- int 16 bits (signed -32768~ +32767, unsigned 0~ +65535)
- long 32 bits(signed -2147483648~ +2147483647, unsigned
0~ +4294967296)
- float 32 bits (4 bytes IEEE 754)
Sumber : http://low-high.blogspot.com/2007/11/small-device-c-compiler-mcs-
51.html ( Online 21 Oktober 2012 )
Gambar 2.16 Aplikasi SDCC (Small Device C Compiler)
2.7 Bahasa Assembly
2.7.1 Pengertian Bahasa Assembly
Secara fisik, kerja dari sebuah mikrokontroller dapat dijelaskan
sebagai siklus pembacaan instruksi yang tersimpan di dalam memori.
Mikrokontroller menentukan alamat dari memori program yang akan dibaca,
dan melakukan proses baca data di memori. Data yang dibaca
diinterprestasikan sebagai instruksi. Alamat instruksi disimpan oleh
mikrokontroller di register, yang dikenal sebagai program counter. Instruksi
ini misalnya program aritmatika yang melibatkan 2 register. Sarana yang ada
dalam program assembly sangat minim, tidak seperti dalam bahasa
pemrograman tingkat atas (high level language programming) semuanya
sudah siap pakai. Penulis program assembly harus menentukan segalanya,
menentukan letak program yang ditulisnya dalam memori-program, membuat
data konstan dan tabel konstan dalam memori-program, membuat variabel
yang dipakai kerja dalam memori-data dan lain sebagainya. Bentuk program
assembly yang umum ialah sebagai berikut :
Isi memori ialah bilangan heksadesimal yang dikenal oleh
mikrokontroler, yang merupakan representasi dari bahasa
assembly yang telah dibuat. Minemonic atau opcode ialah kode
yang akan melakukan aksi terhadap operand. Operand ialah data
yang diproses oleh opcode. Sebuah opcode bisa membutuhkan 1, 2
atau lebih operand, kadang juga tidak perlu operand. Sedangkan
komentar dapat penulis berikan dengan menggunakan tanda titik
koma (;). Berikut contoh jumlah operand yang berbeda beda dalam
suatu assembly.
CJNE R5,#22H, aksi ? : dibutuhkan 3 buah operand
MOVX @DPTR, A : dibutuhkan 2 buah operand
RL A : 1 buah operand
NOP : tidak memerlukan operand
2.7.2 Instruksi
Dalam mikrokontroller instruksi merupakan perintah yang
diberikan oleh user agar sistem dapat bekerja sesuai dengan yang
diharapkan atau diinginkan. Instruksi sama dengan bahasa program.
Instruksi digolongkan menjadi 5 bagian yaitu :
1. Instruksi Aritmatika ( Arithmetic Instruction )
2. Instruksi Logika ( Logical Instruction )
3. Instruksi Boolean ( Boolean Instruction )
4. Instruksi Cabang ( Branch Instruction )
5. Instruksi Data Transfer ( Data Transfer Instruction )
Kelima dari instruksi tersebut digunakan dalam proses pemrograman.
2.7.3 Instruksi Aritmatika ( Arithmetic Instruction )
Instruksi Arimatika atau Arithmetic Instruction merupakan
instruksi dari mikrokontroller yang melakukan proses aritmatika seperti
penjumlahan, pengurangan, pembagian, dan perkalian. Pada umumnya
instuksi ini menggunakan accumulator sebagai salah satu
operand-nya. Tabel 2.3 di bawah ini menunjukkan macam-macam
bentuk instruksi aritmatika.
Tabel 2.3 Daftar Arithmetic instruction
Instruksi Penjelasan Singkat
ADD A,source Menambahkan data dengan
accumulatorADD A, #data
ADDC A,source Menambahkan data, carry flag dan
accumulator ADDC A, #data
SUBB A,source Mengurangi accumulator dengan data
SUBB A,#data
INC A Manambahkan dengan 1
INC Source
INC DPTR
DEC A Mengurangi dengan 1
DEC Source
MUL AB Mengalikan Accumulator dengan B
DIV AB Membagi accumulator dengan B
DA A Konversi data ke decimal
2.7.4 Instruksi Logika atau Logical Instruction
Instruksi logika atau Logical Instruction mencakup instruksi-
instruksi yang melakukan proses logika terhadap register 8 bit.
Instruksi-instruksi tersebut antara lain logika AND, logika OR, logika
XOR, pergeseran, complement dan pertukaran. Umumnya instruksi ini
menggunakan accumulator atau alamat (direct) sebagai salah satu
operand-nya. Tabel 2.3 di bawah ini merupakan daftar instruksi dari
instruksi logika.
Tabel 2.4 Daftar Instruksi Logika
Instruksi Penjelasan Singkat
ANL A, source Operasi logika AND antar bit pada kedua data
ANL A, #data
ANL Direct, A
ANL Direct, #data
ORL A, source Operasi logika OR antar bit pada kedua data
ORL A, #data
ORL Direct, A
ORL Direct, #data
XRL A, source Operasi logika XOR antar bit pada kedua data
XRL A, #data
XRL Direct, A
XRL Direct, #data
CLR A Memberikan nilai 00h pada accumulator
CPL A Complement setiap bit pada accumulator
RL A Merotasi accumulator ke kiri
RLC A Merotasi accumulator ke kiri melalui carry
flag
RR A Merotasi accumulator ke kanan
RRC A Merotasi accumulator ke kanan melalui
carry flag
SWAP A Menukar posisi 4 bit terendah (lower nibble)
dengan 4 bit tertinggi
2.7.5 Instruksi Boolean atau Boolean Instruction
Instruksi Boolean atau Boolean Instruction mencakup instruksi
yang hanya melibatkan hanya instruksi satu bit saja. Instruksi ini
menggunakan carry flag atau register 1 bit lainnya sebagai operand.
Tabel 2.4 di bawah ini meunjukkan daftar instruksi Boolean beserta
penjelasan singkatnya.
Tabel 2.5 Instruksi Boolean (Boolean Intsruction)
Instruksi Penjelasan Singkat
CLR C Memberikan nilai 0 pada bit
CLR Bit
SETB C Memberikan nilai 1 pada bit
SETB Bit
CPL C Komplemen bit
CPL Bit
ANL C,bit Operasi logika AND antar bit
ORL C,bit Operasi logika OR antar bit
MOV C,bit Mengisi dari bit ke bit
MOV Bit, C
JC Rel Lompat ke alamat tertentu jika carry flag = “1”
JNC Rel Lompat ke alamat tertentu jika carry flag = “0”
JB Bit, rel Lompat ke alamat tertentu jika bit = “1”
JNB Bit, rel Lompat ke alamat tertentu jika bit = “0”
JBC Bit, rel Lompat ke alamat tertentu jika bit = “1” lalu
Tabel 2.4 (Lanjutan)
mengisi bit dengan “0”
2.7.6 Instruksi Cabang atau Branch Instruction
Instruksi Cabang atau Branch Instruction mencakup instuksi
yang melakukan perpindahan alamat. Instruksi tersebut antara lain:
pemanggilan rutin (call) dan lompat (jump). Tabel 2.5 menunjukkan
daftar instruksi cabang yang berlaku dalam mikrokontroller keluarga
MCS-51.
Tabel 2.6 Instruksi Cabang (Branch Instruktion)
Instruksi Penjelasan Singkat
ACCAL Addr11 Memanggil subrutin pada alamat tertentu
LCALL Addr16
RET Keluar dari sub rutin
RETI Keluar dari interrupt
AJMP Addr11 Lompat ke dalam alamat tertentu
SJMP Rel
LJMP Addr16
JMP @A+DPTR
JZ Rel Lompat ke dalam alamat tertentu jika
accumulator bernilai 00h
JNZ Rel Lompat ke dalam alamat tertentu jika
accumulator tidak bernilai 00h
JCNE A, direct, rel Membandingkan kedua operand dan
melompat ke dalam alamat tertentu jika kedua JCNE A, #data, rel
JCNE Rn, #data, rel
operand tidak sama
JCNE @Ri, #data, rel
DJNZ Rn, rel Mengurangi operand dan melompat ke alamat
tertentu jika operand tidak bernilai 00hDJNZ Direct, rel
NOP Tidak ada operasi
2.7.7 Instruksi Pemindahan Data atau Data Transfer Instruction
Instruksi Pemindahan Data atau Data Transfer Instruction
adalah instruksi yang mencakup proses pemindahan atau pertukaran
data yang melibatkan register 8 bit atau 16 bit. Instruksi tersebut antara
lain : MOV, PUSH, POP dan XCH. Tabel 2.9 menunjukkan daftar
instruskdi data transfer yang berlaku dalam mikrokontroller keluarga
MCS-51. Seperti yang tertera pada tabel 2.6 di bawah ini.
Tabel 2.7 Daftar Instruksi Perpindahan Data (Data Transfer Instruction)
Instruksi Penjelasan Singkat
MOV A, source Mengisi nilai operand kedua (source) ke
dalam operand pertama (destination)MOV A, #data
MOV Dest, A
MOV Dest, source
MOV Dest, #data
MOV DPTR, #data
16
MOVC
A,@A+DPTR
Mengisi nilai dari program memori ke dalam
accumulator
MOVC A,@A+PC
MOVX A,@Ri Mengisi nilai dari eksternal data memori
MOVX A,@DPTR
MOVX @Ri, A
MOVX @DPTR, A
PUSH Direct Mengisi nilai ke dalam stack
POP Direct Mengambil nilai dari stack
XCH A, source Menukar nilai dua operand
XCHD A. @Ri Menukar 4 bit terendah dari kedua operand
2.8 ADC (Analog to Digital Conventer) dan DAC (Digital to Analog Conventer)
2.8.1 ADC 0804 (Analog to Digital Conventer)
Analog To Digital Converter (ADC) adalah pengubah input analog
menjadi kode – kode digital. ADC banyak digunakan sebagai Pengatur proses
industri, komunikasi digital dan rangkaian pengukuran/ pengujian. Umumnya
ADC digunakan sebagai perantara antara sensor yang kebanyakan analog
dengan sistim komputer seperti sensor suhu, cahaya, tekanan/ berat, aliran
dan sebagainya kemudian diukur dengan menggunakan sistim digital
(komputer).
ADC (Analog to Digital Converter) memiliki 2 karakter prinsip, yaitu
kecepatan sampling dan resolusi. Kecepatan sampling suatu ADC
menyatakan seberapa sering sinyal analog dikonversikan ke bentuk sinyal
digital pada selang waktu tertentu. Kecepatan sampling biasanya dinyatakan
dalam sample per second (SPS).
Prinsip kerja ADC adalah mengkonversi sinyal analog ke dalam
bentuk besaran yang merupakan rasio perbandingan sinyal input dan tegangan
referensi. Sebagai contoh, bila tegangan referensi 5 volt, tegangan input 3
volt, rasio input terhadap referensi adalah 60%. Jadi, jika menggunakan ADC
8 bit dengan skala maksimum 255, akan didapatkan sinyal digital sebesar
60% x 255 = 153 (bentuk decimal) atau 10011001 (bentuk biner).
signal = (sample/max_value) * reference_voltage
= (153/255) * 5
= 3 Volts
Gambar 2.17 IC ADC 0804
Gambar 1.18 Diagram Blok ADC 0804
Sumber : http://www.circuitstoday.com/wp-content/uploads/2008/04/digital-
temperature-sensor-circuit.JPG (Online : 21 oktober 2012)
2.8.2 DAC (Digital to Analog Conventer)
DAC atau D/A adalahsebuah piranti untuk mengubah sebuah masukan
digital (umumnya adalah biner) menjadi sebuah sinyal analog (arus,
tegangan atau muatan elektrik). DAC adalah penghubung antara rangkaian
digital dengan rangkaian analog. DAC pada dasarnyamengkonversi masukan
(berupa bilangan biner) ke dalam suatu besaran fisik, biasanya berupa
tegangan suatu tegangan listrik. Pada umumnya tegangan keluaranadalah
suatu fungsi linear dari sejumlah masukan. Kebanyakan sistem
menerimasuatu kata digital sebagai sinyal masuk dan menterjemahkan atau
mengubahnyamenjadi tegangan atau arus analog. Kata digital biasanya
dinyatakan dalam berbagaikode, yang paling umum adalah biner murni atau
disebut BCD (Binary CodedDecimal)
Gambar 2.19 Diagram Blok DAC
Sumber : http://digilander.libero.it/paeng/g_dac.1.gif (Online : 21 oktober 2012)
2.9 SPI Flash Programmer V 3.7
SPI Flash Programmer adalah program aplikasi yang dapat digunakan
untuk memprogram semua tipe AT89S, yakni AT89S51/ 52/53/8252/8253.
Selain itu, program ini juga mendukung beberapa tipe AVR lama antara lain:
AT90S1200/2313/4433/8515/8535. Dan yang terpenting, program ini
mendukung hampir semua AVR tipe tiny dan mega. Jadi, satu program untuk
semua mikrokontroler ATMEL.
Program terdiri dari sebuah file executable SPIPGM.EXE dan file
INPOUT32.DLL. Ekstraksi kedua file tersebut ke dalam sebuah folder dan
program siap dieksekusi. Boleh juga dibuatkan shortcut di Start Menu atau
Desktop.
Gambar 2.20 SPI – Flash Programmer
Sumber : http://kolom-elka.blogspot.com/p/mikroprosesor.html (online, 15 Okt 2012)
2.10 Perangkat Pendukung Flash Programmer
Dalam proses flashing atau melakukan flash programming dibutuhkan
juga beberapa alat antara lain yaitu DT-HiQ AT89 USB ISP. DT-HiQ AT89
USB ISP adalah in-system programmer yang dapat dihubungkan ke komputer
melalui port USB untuk memprogram mikrokontroler keluarga MCS-51®
khususnya seri AT89 yang berfitur in-system programming. Produk ini
dilengkapi dengan perangkat lunak berbasis Windows® yang memiliki
antarmuka sederhana dan mudah dioperasikan oleh pengguna.
2.10.1 Spesifikasi :
Mendukung mikrokontroler AT89LP2052, AT89LP4052, AT89S2051,
AT89S4051, AT89S51, AT89S52, AT89S53, AT89LS53, AT89S8252,
AT89LS8252, AT89S8253.
Dapat memprogram Flash Memory, EEPROM, Lock Bit, dan Fuse Bit.
Antarmuka ke komputer melalui USB.
Tersedia driver USB yang kompatibel dengan Windows® XP/Vista.
Bekerja pada tegangan target 2,7V hingga 5,5V.
Mengambil catu daya dari rangkaian target, dengan kebutuhan arus
maksimum 50mA @ 5,5V.
Tidak mengambil daya dari port USB sehingga lebih aman bagi komputer.
Dilengkapi perangkat lunak berbasis Windows®. Perangkat lunak ini tidak
membutuhkan proses instalasi sehingga lebih praktis dan portable.
Mendukung format file Intel HEX dan BIN.
Menggunakan konektor ISP 10-pin standar ATMEL.
Terdapat 2 LED sebagai indikator power dan status.
Enclosure berbahan metal.
2.10.2 Perlengkapan :
1 unit DT-HiQ AT89 USB ISP.
1 set kabel USB (P = ±70 cm).
1 lembar quick start.
1 buah CD ROM berisi driver USB, perangkat lunak, manual, panduan
pembuatan target board, dsb.
Gambar 2.21 DT-HiQ AT89 USB ISP
Sumber : http://innovativeelectronics.com/index_indo.php (online 15 Oktober 2012)
2.11 Flowchart
Flowchart adalah serangkaian bagan-bagan yang menggambarkan alir
program. Flowchart atau diagram alir memiliki bagan-bagan yang
melambangkan fungsi tertentu. Bagan, nama dan fungsinya seperti yang disajikan
pada tabel 2.7 berikut :
Tabel 2.8 Simbol Flowchart
SIMBOL NAMA FUNGSI
TERMINATOR Permulaan atau akhir program
GARIS ALIR
(FLOW LINE)Arah aliran program
PREPARATIONProses inisialisasi atau pemberian
harga awal
PROSESProses perhitungan atau proses
pengolahan data
INPUT/OUTPUT DATA
Proses input atau output data, parameter, informasi
PREDEFINED PROCESS
(SUB PROGRAM)
Permulaan sub program atau proses menjalankan sub program
DECISION
Perbandingan pernyataan, penyeleksian data yang
memberikan pilihan untuk langkah selanjutnya
ON PAGE CONNECTOR
Penghubung bagian-bagian flowchart yang berada pada satu
halaman
OFF PAGE CONNECTOR
Penghubung bagian-bagian flowchart yang berada pada
halaman berbeda
top related