tugas akhir universal timer berbasis ...repository.usd.ac.id/28359/2/015114061_full.pdftugas akhir...
Post on 20-Jan-2021
29 Views
Preview:
TRANSCRIPT
TUGAS AKHIR
UNIVERSAL TIMER BERBASIS MIKROKONTROLER AT89S51
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Disusun Oleh:
ANTON WIDIANTO
NIM: 015114061
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2007
3/5/2008 i
UNIVERSAL TIMER BASED ON AT89S51 MICROCONTROLLER
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements To Obtain The Technical Engineering Degree
In Electrical Engineering
By:
ANTON WIDIANTO
Student Number: 015114061
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTMENT FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
2007
3/5/2008 ii
LEMBAR PERSETUJUAN TUGAS AKHIR
UNIVERSAL TIMER BERBASIS MIKROKONTROLLER AT89S51
Disusun Oleh:
ANTON WIDIANTO
NIM: 015114061
Telah Disetujui oleh:
Pembimbing Djoko Untoro, S, Si, MT Tanggal:27 November 2007
3/5/2008 iii
LEMBAR PENGESAHAN TUGAS AKHIR
UNIVERSAL TIMER
BERBASIS MIKROKONTROLLER AT89S51
Disusun Oleh:
Anton Widianto
NIM:015114061
Telah Dipertahankan di depan Panitia Penguji
Pada tanggal 3 November 2007
dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Jabatan Nama Lengkap Tanda Tangan
Ketua : Djoko Untoro, S, Si, M.T
Anggota :Ir. Th. Ari Setiyani, M.T
Anggota :Pius Yozy Merucahyo, S.T., M.T
Yogyakarta, November 2007
Dekan Fakultas Sains dan Teknologi
Universitas Sanata Dharma Yogyakarta
3/5/2008 iv
PERNYATAAN KEASLIAN KARYA
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, November 2007
Penulis
Anton Widianto
3/5/2008 v
INTISARI
Universal timer adalah suatu alat pewaktu dengan menggunakan tabel pemilih waktu. Universal timer digunakan untuk mengaktifkan relay, membunyikan buzzer, dan menyalakan led secara otomatis. Prisip kerja Universal Timer pada dasarnya menggunakan metode pewaktuan dengan memanfaatkan fasilitas timer yang ada pada sistem minimum mikrokontroller AT89S51.
Sistem pewaktuannya dapat disetting melalui dipswitch (saklar 8 bit) yang berfungsi sebagai masukan dalam bentuk biner. Timer akan mulai bekerja pada saat tombol start ditekan. Setelah waktu habis maka sistem akan mengaktifkan relay, membunyikan buzzer dan menyalakan led merah secara bersamaan. Sistem ini juga dapat mengendalikan alat elektronika lain dengan memanfaatkan keluaran dari relay.
Kata kunci : Pewaktu , aplikasi mikrokontroler AT89S51
3/5/2008 vi
ABSTRACT
Universal timer is a timer with selectable time. Universal timer used to activate the relay, sounding buzzer, and turn on the LED automatically. The principle of universal timer basically use the time base from crystal in microcontroller.
The timing system can be set with dipswitch (switch 8 bit), which functioning for input in the binary form. The timer start to work when push button start pushed. At the end of the time, so system will activate the relay, sounding buzzer, turn on the red led and turn off green LED concurrently. This system can to be control the other appliance electronics by using output relay.
Keyword : Timer, Apllication Microcontroller AT89S51
3/5/2008 vii
HALAMAN PERSEMBAHAN
Hasil karya ini ku persembahkan untuk:
Ayah dan Bunda yang tercinta, terima kasih atas kasih sayang, doa dan
bimbinganmu selama ini.
Kakakku, must Arif, must Andi, mba Ratna, must You One, dan must Tika
yang telah memberikan semangat dan dorongan dalam hidupku.
My Honey yang mau menungguku dan selalu sabar menghadapiku.
Anak-anak Humoriezt Yogyakarta yang selalu memberi keceriaan,
kompak selalu buat x-an.
3/5/2008 viii
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN
AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Anton Widianto Nomor Mahasiswa : 015114061 Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul : Universal Timer
Berbasis Mikrokontroler AT89S51, beserta perangkat yang diperlukan (bila
ada). Dengan demikian saya memberikan kepada Universitas Sanata Dharma hak
untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam
bentuk pangkalan data, mendistribusikan secara terbatas,dan mempublikasikannya
di Internet media lain untuk kepentingan akademis tanpa perlu meminta jin dari
saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama
saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Di buat di Yogyakarta
Pada tanggal : 4 Maret 2008
Yang menyatakan
Anton Widianto
3/5/2008 ix
MOTTO
“I Love Jesus”
“ Bekerja, Berusaha, dan Berdoa”
“Kegagalan Adalah Awal Dari Kesuksesan”
”Doa Ayah Bunda Sepanjang Masa”
”Amien”
3/5/2008 x
KATA PENGANTAR
Terpujilah Tuhan Jesus Kristus atas kasih-Nya yang melimpah sehingga
penulis dapat menyelesaikan Tugas Akhir ini dengan baik. Tugas akhir ini disusun
sebagai salah satu syarat untuk memperoleh gelar sarjana pada Jurusan Teknik
Elektro Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
Penulis menyadari bahwa dalam penyusunan Tugas Akhir ini tidak akan
berjalan dengan lancar tanpa bantuan dan dorongan dari berbagai pihak, maka dari
itu terima kasih yang mendalam penulis ucapkan kepada :
1. Ir. Greg.Heliarko, SJ.,SS.,BST., MA., Msc., selaku Dekan Fakultas Teknik.
2. Bapak A. Bayu Primawan, S.T., M.Eng. selaku Kaprodi Teknik Elektro.
3. Bapak Pdt. Obaja Sigit Karyono, M.Th sebagai pembimbing penulis.
4. Djoko Untoro, S, Si, MT, sebagai pembimbing Tugas Akhir.
5. Bapak Petrus Setyo Prabowo, ST. sebagai Pembimbing Akademik.
6. Segenap Dosen di Jurusan Teknik Elektro yang telah melayani sebagai
pengajar dan penasihat.
7. Segenap Laboran Teknik Elektro.
8. Ayah dan Bunda yang selalu memberi pengertian dan menyayangiku.
9. Kakak-kakakku yang telah memberi motifasi dalam menyelesaikan dibangku
kuliah.
10. Rekan seangkatan TE’01 atas kebersamaannya di tahun-tahun yang silam.
11. Fajar Ira J., S. Farm, Apt. dan Pungkas Yoga K, ST. untuk pengertian dan
semua toleransi yang diberikan.
12. Keluarga Bp Hardjio (Gg. Endra 16), Keluarga Mas Tentrem (Gg. Endra 16),
3/5/2008 xi
13. My Honey, untuk kasih sayangmu dan doamu yang telah diberikan.
14. Serta semua pihak yang namanya tidak tertulis pada lembar ini. Tuhan
memberkati.
Berbagai upaya telah penulis lakukan untuk menyelesaikan tugas akhir ini,
akan tetapi penulis menyadari bahwa tugas akhir ini masih jauh dari sempurna.
Untuk itu, saran dan kritik senantiasa penulis harapkan demi kesempurnaan tugas
akhir ini.
Yogyakarta, November 2007
Penulis
3/5/2008 xii
DAFTAR ISI
Halaman
HALAMAN JUDUL................................................................................................i
LEMBAR PERSETUJUAN...................................................................................iii
LEMBAR PENGESAHAN....................................................................................iv
PERNYATAAN KEASLIAN KARYA..................................................................v
INTI SARI .............................................................................................................vi
ABSTRACT..........................................................................................................vii
HALAMAN PERSEMBAHAN...........................................................................viii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI.................................ix
MOTTO...................................................................................................................x
KATA PENGANTAR............................................................................................xi
DAFTAR ISI.........................................................................................................xiii
DAFTAR GAMBAR............................................................................................xvi
DAFTAR TABEL...............................................................................................xviii
BAB I PENDAHULUAN
1.1. Judul......................................................................................................1
1.2. Latar Belakang Masalah........................................................................1
1.3. Tujuan Penelitian dan Manfaat Penelitian.............................................2
1.3.1. Tujuan Penelitian.........................................................................2
1.3.2. Manfaat Penelitian.......................................................................2
1.4. Batasan Masalah....................................................................................3
BAB II DASAR TEORI
2.1. Mikrokontroler AT89S51.....................................................................4
2.1.1. Organisasi Memori AT89S51.....................................................4
2.1.2. Memori Program.........................................................................6
2.1.3. Memori Data...............................................................................6
2.1.4. Register Fungsi Khusus..............................................................7
a. Akumulator.............................................................................7
3/5/2008 xiii
b. Register B...............................................................................7
c. Program Status Word..............................................................8
d. Stack Pointer..........................................................................10
e. Data Pointer..........................................................................10
f. Kontrol Register....................................................................10
g. I/O Port..................................................................................11
h. Timer Register.......................................................................12
i. Serial Data Buffer..................................................................13
2.1.5. Timer Dan Counter....................................................................13
2.1.5.1. Mode Timer dan Counter.............................................14
2.1.5.2. Register Pengatur Timer..............................................15
a. Register TCON.....................................................15
b. Register TMOD....................................................16
2.1.6. Mode Pengalamatan dan Instruksi Mikrokontroler....................18
2.2. Transistor Sebagai Saklar.....................................................................19
2.3. Relay....................................................................................................20
2.4. Dipswitch 8 Bit....................................................................................21
2.5. Buzzer/ Speaker...................................................................................22
2.6. LED......................................................................................................23
BAB III PERANCANGAN PENELITIAN
3.1. Perancangan Perangkat Keras..............................................................25
3.1.1. Saklar Dipswitch........................................................................26
3.1.2. LED Output................................................................................27
3.1.3. One-Chip Oscilator....................................................................27
3.1.4. Driver Relay...............................................................................28
3.1.5. Buzzer........................................................................................29
3.2. Perancangan Perangkat Lunak.............................................................31
3.2.1. Pemrograman Mikrokontroler AT89S51...................................33
3.2.2. Inisialisasi Timer........................................................................33
BAB IV DATA DAN ANALISA DATA
4.1. Program Untuk Menghasilkan Delay N Detik......................................35
3/5/2008 xiv
4.1.1. Delay 1 Detik.............................................................................35
4.1.2. Delay 2 Detik.............................................................................37
4.1.3 Delay 4 Detik............................................................................37
4.1.4. Delay 8 Detik............................................................................38
4.1.5 Delay 64 Detik..........................................................................39
4.1.6. Delay 128 Detik........................................................................40
4.2. Program Pengaktifan Perangkat Keras................................................42
BAB V KESIMPULAN DAN SARAN
5.1. Kesimpulan.........................................................................................46
5.2. Saran...................................................................................................46
DAFTAR PUSTAKA..........................................................................................47
LAMPIRAN .......................................................................................................48
3/5/2008 xv
DAFTAR GAMBAR
Halaman
BAB I PENDAHULUAN
BAB II DASAR TEORI
Gambar 2.1 Memori Data dan Memori Program.........................................5
Gambar 2.2 Memori Data Internal...............................................................7
Gambar 2.3 Rangkaian Transistor Sebagai Saklar.....................................20
Gambar 2.4 Rangkaian Relay.....................................................................21
Gambar 2.5 Rangkaian Dipswitch..............................................................22
Gambar 2.6 Bentuk dan Simbol Dipswitch................................................22
Gambar 2.7 Rangkaian Buzzer...................................................................23
Gambar 2.8 Rangkaian LED.......................................................................23
BAB III PERANCANGAN PENELITIAN
Gambar 3.1 Diagram Blok Perangkat Keras..............................................25
Gambar 3.2 Konfigurasi Dipswitch...........................................................26
Gambar 3.3 Konfigurasi LED....................................................................27
Gambar 3.4 Konfigurasi On- Chip Oscilator.............................................28
Gambar 3.5 Konfigurasi Driver Relay.......................................................29
Gambar 3.6 Konfigurasi Buzzer................................................................30
Gambar 3.7 Diagram Alir Program Utama................................................31
Gambar 3.8 Diagram Alir Program Utama................................................32
BAB IV DATA DAN ANALISA DATA
Gambar 4.1 Delay1 Detik..........................................................................36
Gambar 4.2 Delay 1 Detik.........................................................................36
Gambar 4.3 Delay 2 Detik.........................................................................37
Gambar 4.4 Delay 2 Detik.........................................................................37
Gambar 4.5 Delay 4 Detik.........................................................................38
Gambar 4.6 Delay 4 Detik.........................................................................38
Gambar 4.7 Delay 8 Detik.........................................................................38
3/5/2008 xvi
Gambar 4.8 Delay 8 Detik.........................................................................39
Gambar 4.9 Delay 64 Detik.......................................................................40
Gambar 4.10 Delay 64 Detik......................................................................40
Gambar 4.11 Delay 128 Detik....................................................................40
Gambar 4.12 Delay 128 Detik....................................................................41
Gambar 4.13 Input dan Output Port............................................................43
Gambar 4.14 Input dan Output Port............................................................45
BAB V KESIMPULAN DAN SARAN
3/5/2008 xvii
DAFTAR TABEL
Halaman
BAB I PENDAHULUAN
BAB II DASAR TEORI
Tabel 2.1. Akumulator...................................................................................7
Tabel 2.2. Register B....................................................................................8
Tabel 2.3. Program Status Word....................................................................8
Tabel 2.4. Register Bank Select.....................................................................9
Tabel 2.5. Register AUXRI..........................................................................10
Tabel 2.6. Fungsi Alternatif Port3................................................................12
Tabel 2.7. Register TCON...........................................................................15
Tabel 2.8. Register TMOD...........................................................................16
Tabel 2.9. Fungsi Register TMOD...............................................................17
Tabel 2.10.Kombinasi M0 dan M1..............................................................17
Tabel 2.11 Bobot Nilai Saklar......................................................................21
BAB III PERANCANGAN PERANGKAT KERAS
Tabel 3.1. Register TMOD...........................................................................33
Tabel 3.2. Register TCON...........................................................................33
BAB IV DATA DAN ANALISA DATA
BAB V KESIMPULAN DAN SARAN
3/5/2008 xviii
BAB I
PENDAHULUAN
1. 1. Judul
Universal Timer Berbasis Mikrokontroller AT89S51
1. 2. Latar Belakang Masalah
Dewasa ini perkembangan ilmu pengetahuan dan teknologi terutama
dalam bidang teknologi kendali sangat pesat sekali dan telah membawa
perubahan di segala bidang terutama bidang-bidang elektronika.
Seiring dengan perkembangan tersebut, di dalam kehidupan rumah
tangga yang menggunakan jam meja misalnya, sangat terasa masih kurang
memuaskan. Hal ini disebabkan karena sistem pewaktuan tersebut hanya
berfungsi sebagai jam dan alarm saja. Untuk dapat meningkatkan kualitas
dari alat pewaktuan yang tidak hanya sebagai pewaktuan dan alarm saja,
maka hal yang perlu di perbaiki adalah agar alat tersebut dapat
bermultifungsi, misalnya dapat mengendalikan alat elektronika lain secara
otomatis. Efisiensi dan pemanfaatan fungsi dapat dilakukan secara otomatis
dengan menggunakan mikrokontroler AT89S51.
Dari hal yang mendasar itulah, maka perlu pemanfaatan dari penggunaan
timer yang ada pada sistem minimum mikrokontroler AT89S51. Dari
kemungkinan-kemungkinan tersebut, maka muncul suatu ide untuk
3/5/2008 1
mengembangkan suatu sistem pewaktuan yang dapat digunakan sebagai
alarm dan sekaligus dapat digunakan sebagai pengendalian alat-alat
elektronika lain dengan menggunakan mikrokontroler AT89S51 yaitu ’’
Universal Timer Berbasis Mikrokontroler AT89S51’’.
Keunggulan dari alat ini dibandingkan dengan jam meja adalah selain
berfungsi sebagai pewaktuan dan alarm, alat ini juga dapat digunakan untuk
mengendalikan alat-alat elektronika lain dengan memanfaatkan keluaran
pada relay yang terdapat pada alat ini.
1. 3. Tujuan Penelitian dan Manfaat Penelitian
1. 3. 1. Tujuan Penelitian
Tujuan penilitian dari alat ini adalah sebagai berikut:
a) Merancang sistem dengan metode pewaktuan berbasis mikrokontroller
AT89S51.
b) Merancang dan membuat program timer yang dapat mengaktifkan
relay sekaligus menyalakan led dan membunyikan buzzer.
c) Merancang program timer yang mampu mengolah data masukan dalam
bentuk biner.
1. 3. 2. Manfaat Penelitian
Pembuatan alat Universal Timer ini diharapkan dapat bermanfaat :
a) Bagi penulis, dapat memberi bekal pengalaman untuk mengaplikasikan
ilmu pengetahuan selama duduk di bangku kuliah ke dalam karya
nyata.
3/5/2008 2
b) Bagi Almamater, sebagai tolak ukur daya serap mahasiswa yang
bersangkutan selama menempuh pendidikan dan kemampuan
menerapkan ilmunya secara praktis.
c) Bagi masyarakat, dapat memberikan alternatif lain sebagai piranti
untuk meng-otomatisasi-kan suatu alat elektronika lain dalam rumah
tangga.
d) Bagi peneliti/mahasiswa lain, dapat digunakan sebagai bahan referensi
atau kajian untuk pengembangan selanjutnya.
1. 4. Batasan Masalah
Batasan masalah untuk penelitian ini adalah :
a) Pengatur sistem yang digunakan adalah mikrokontroler AT89S51.
b) Input yang digunakan adalah saklar dipswitch 8 bit.
c) Output yang digunakan adalah buzer, relay, dan led.
d) Waktu yang digunakan dalam detik.
3/5/2008 3
BAB II
DASAR TEORI
2. 1. Mikrokontroller AT89S51
Mikrokontroller pada dasarnya adalah sebuah chip yang dibangun
dari system minimum berbasis mikroprosesor. Mikrokontroler AT89S51
adalah mikrokontroler CMOS 8-bit yang berkemampuan tinggi dengan 8K
bytes in-sistem programmable Flash Memory. AT89S51 yang dipakai
memiliki fitur: 4KB In-Sistem Programmable Flash, 256 Bytes RAM, 32
jalur I/O, tiga 16-bit timers/counters, 2 data pointer, 6 vektor dua level
interupsi, serial port full duplex, osilator on-chip dan clock circuitry.
2. 1. 1. Organisasi Memori AT89S51
Memori merupakan rangkaian elektronis yang digunakan untuk
menyimpan informasi secara temporer atau permanen. Memori biasanya
digunakan untuk menyimpan data yang diperoleh dari saluran masukan-
keluaran atau untuk menyimpan program dari sebuah sistem.
Mikrokontroler AT89S51 memiliki ruang alamat untuk memori
program dan memori data yang terpisah, seperti terlihat pada Gambar 2.1.
Setiap memori program dan memori data eksternal dapat dialamati hingga
64Kbytes.
3/5/2008 4
Gambar 2. 1. Memori data dan memori program pada mikrokontroler AT89S51
Pemisahan program dan data memori ini memungkinkan pengaksesan
data memori dengan pengalamatan 8 bit, sehingga dapat langsung disimpan
dan dimanipulasi oleh mikrokontroler dengan kapasitas akses 8 bit. Namun
demikian, untuk pengaksesan data memori dengan alamat 16 bit, harus
dilakukan dengan menggunakan register DPTR (Data Pointer). Program
memori hanya dapat dibaca saja (diletakkan pada ROM/ EPROM). Untuk
membaca program memori eksternal, mikrokontroler akan mengirim sinyal
PSEN (Program Store Enable). Sebagai data memori eksternal dapat
digunakan RAM eksternal (maksimum 64 Kbyte). Dalam pengaksesannya
mikrokontroler akan mengirimkan sinyal RD (Read, melakukan operasi
pembacaan data) dan WR (Write, melakukan operasi penulisan data). Bila
diperlukan, program memori dan eksternal data dapat dikombinasikan
dengan menyatukan sinyal RD dan PSEN ke dalam input gerbang AND dan
3/5/2008 5
menggunakan output dari gerbang tersebut sebagai sinyal read (baca) untuk
program memori / Eksternal Data.
2. 1. 2. Memori Program
Memori program atau sering disebut dengan flash memory pada
mikrokontroler AT89S51 memiliki kapasitas sebesar 8KB yang hanya bisa
dibaca saja. Bila pin dihubungkan pada ground program memori dapat di
akses secara eksternal, bila pin AE dihubungkan pada VCC program memori
4KB dapat diakses langsung pada alamat 0000H-FFFH secara internal dan
pada alamat 1000H-FFFFH secara eksternal.
2. 1. 3. Memori Data
Memori data menggunakan memori jenis RAM. RAM merupakan
memori yang dapat dibaca dan ditulis. RAM dipakai sebagai penyimpan
data pada saat program bekerja. Isi RAM akan hilang bila catu daya mati
(Volatile Memory).
Mikrokontroler AT89S51 memiliki memori data 256 bytes dan dapat
diakses secara pengalamatan langsung dan pengalamatan tidak langsung.
Pengoperasian stack adalah contoh dari pengalamatan tidak langsung, jadi
128 bytes RAM data tersedia sebagai ruang stack. Memori data internal
dapat dilihat pada Gambar 2. 2..
3/5/2008 6
Gambar 2. 2. Memori Data Internal
Mikrokontroler AT89S51 memiliki 16 alamat dalam ruang SFR yang
dapat diakses baik secara byte maupun bit.
2. 1. 4. Register Fungsi Khusus (Special Function Register)
Peta dari memori on-chip disebut dengan ruang register fungsi khusus
(Special Function Register).
a. Akumulator
ACC atau akumulator yang menempati lokasi E0H digunakan
sebagai register untuk penyimpanan data sementara dan dapat dialamati
secara bit addressable.
Tabel 2. 1. Akumulator
b. Register B
Register B menempati lokasi F0H digunakan selama operasi
perkalian dan pembagian, untuk intruksi lain dapat diperlakukan sebagai
register scratch pad (papan coret-coret) dan register B juga dapat dialamati
secara bit addressable.
3/5/2008 7
Tabel 2. 2. Register B
c. Program Status Word (PSW)
Register PSW (lokasi D0H) mengandung informasi status program
seperti terlihat pada Tabel 2. 3 .
Tabel 2. 3. Program Status Word
Fungsi bit pada PSW sebagai berikut:
CY (carry flag) : bit ini akan diset oleh sejumlah instruksi
matematika seperti ADD, ADDC, SUBB,
MUL, DIV dan juga termasuk instruksi
untuk rotasi.
AC (auxillary carry) : bit ini akan diset pada penjumlahan dua
buah bilangan BCD (Binary Code
Desimal) yang menghasilkan carry dari
bit ketiga ke bit keempat atau jika nibble
bawahnya berada pada range 0AH
sampai 0FH.
F0 (flag 0) : flag untuk fungsi umum.
3/5/2008 8
RS0, RS1 (register bank select) : dua bit RS1 Dan RS0 digunakan untuk
memilih bank register yang
penggunaannya ditunjukkan pada tabel 2.
4 berikut:
Tabel 2. 4. Register Bank Select
RS1 RS0 REG BANK IRAM ADDRESS
0 0 0 00h - 07h
0 1 1 08h - 0Fh
1 0 2 10h - 17h
1 1 3 18h – 1Fh
OV (overflow flag) : bit ini akan diset oleh sejumlah intruksi
aritmetika, tetapi biasanya instruksi yang
sering membuat bit ini menjadi 1 adalah
instruksi ADD dan SUBB.
P (parity flag) : bit ini akan diset menjadi satu jika bit-bit
1 pada akumulator berjumlah ganjil.
Sebagai contoh jika isi akumulator adalah
15H (00010101) maka bit P akan diset
menjadi 1 karena jumlah bit satu pada
akumulator adalah 3 buah.
3/5/2008 9
d. Stack Pointer
Register Stack Pointer (lokasi 81H) merupakan register dengan
panjang 8-bit, digunakan dalam proses simpan dan ambil dari/ ke stack.
Dan operasi yang sering melibatkan stack pointer adalah PUSH dan
CALL. Register Stack Pointer akan selalu diinisialisasikan ke 07h setelah
adanya reset, sehingga akan menyebabkan stack berawal di lokasi 08h.
e. Data Pointer
Register Data Pointer terdiri dari DPTR untuk byte tinggi (DPH)
dan byte rendah (DPL). Pada AT89S51 memiliki 2 buah DPTR untuk
memudahkan pengaksesan baik internal maupun eksternal, yaitu DP0 di
lokasi 82H-83H dan DP1 di lokasi 84H-85H. Untuk menggunakannya
harus menginisialisasi bit DPS pada register AUXR1 (lokasi A2H). Bila
DPS = 0, maka memilih register DPTR DP0L-DP0H dan bila DPS = 1,
maka memilih register DPTR DP1L-DP1H. Register AUXR1 dapat dilihat
pada Tabel 2. 5.
Tabel 2. 5. Register AUXR1
f. Kontrol Register
Register-register IP, IE, TMOD, TCON, T2CON, T2MOD, SCON
dan PCON berisi bit-bit kontrol dan status untuk sistem interupsi,
pencacah/ pewaktu dan serial port .
3/5/2008 10
g. Port masukan/keluaran (I/O port)
Mikrokontroler AT89S51 memiliki 4 port masukan/keluaran (I/O
port) yang diberi nama port 0, port 1, port 2 dan port 3. Setiap port selain
sebagai jalur masuk atau keluar data, juga memiliki karakteristik masing-
masing.
Port 0 merupakan port keluaran/masukan (I/O) bertipe open drain
bidirectional. Port 0 juga dapat dikonfigurasikan sebagai bus alamat data
bagian rendah selama proses pengaksesan memori data dan program
eksternal. Port ini berada di alamat 80H pada SFR.
Port 1 merupakan port I/O dwiarah yang dilengkapi dengan pull-up
internal. Jika ‘1’ dituliskan ke kaki-kaki port 1, masing-masing kaki akan
di pull high dengan pull up internal sehingga dapat digunakan sebagai
masukan. Port 1 berada di alamat 90H juga menerima alamat bagian
rendah (low bit) selama pemrograman dan verifikasi flash.
Port 2 berada di alamat A0H dan memiliki karakteristik yang
mirip dengan port 1. Port 2 akan memberikan byte alamat bagian tinggi
selama pengambilan instruksi dari memori program eksternal dan selama
pengaksesan memori data eksternal yang menggunakan perintah dengan
alamat 16-bit (misalnya: MOVX @DPTR). Port ini juga menerima alamat
begian tinggi selama pemrograman dan verifikasi flash.
Port 3 terletak di alamat B0H. Selain berfungsi untuk menerima
sinyal-sinyal kontrol untuk pemrograman dan verifikasi flash, dapat juga
digunakan untuk fungsi-fungsi yang lain seperti terlihat pada tabel berikut:
3/5/2008 11
Tabel 2. 6. Fungsi Alternatif Port 3
Pin Port Fungsi Alternatif
P3.0 RXD (masukan port serial)
P3.1 TXD (keluaran port serial)
P3.2 0INT (interupsi 0 eksternal)
P3.3 1INT (interupsi 1 eksternal)
P3.4 T0 (input eksternal timer 0)
P3.5 T1 (input eksternal timer 1)
P3.6 WR (memori data eksternal jalur tulis)
P3.7 RD (memori data eksternal jalur baca)
h. Timer Register
Pasangan register (TH0, TL0) dilokasi 8Ch dan 8Ah, (TH1,
TL1) dilokasi 8Dh dan 8Bh serta (TH2, TL2) dilokasi CDh dan CCh
merupakan register pencacah 16-bit untuk masing-masing Timer0, Timer1,
Timer2.
3/5/2008 12
i. Serial Data Buffer
Serial Data Buffer (lokasi 99h) terdiri dari 2 register yang
terpisah, yaitu register penyangga pengirim (transmit buffer) dan
penyangga penerima (receive buffer).
2. 1. 5. Timer dan Counter
Mikrokontroler AT89S51 mempunyai tiga buah register
timer/counter 16 bit , Timer 0,Timer 1 serta Timer 2. Pada saat sebagai
Timer, register naik satu (increment) setiap satu cycle. Jika digunakan
osilator 12 Mhz, maka satu cycle sama dengan 1/12 frekuensi osilator = 1µs.
Pada saat sebagai counter, register naik satu (increment) pada saat transisi 1
ke 0 dari input eksternal , T0 atau T1.
Mikrokontroller dapat bekerja sebagai timer, jika sebuah pencacah
bekerja dengan frekuensi tetap, karena pencacah tersebut bekerja mirip
dengan ‘jam’ atau ‘pewaktu’ yang memiliki detak dari rangkaian osilator
dan kristal yang terpasang. Mikrokontrolller juga dapat bekerja sebagai
counter atau pencacah, jika sebuah pencacah bekerja dengan frekuensi yang
bervariasi, karena kondisi pencacah tersebut menyatakan banyaknya pulsa
detak yang sudah diterima.
3/5/2008 13
2. 1. 5. 1. Mode Timer / Counter
a. Mode 0
Pada mode ini timer bekerja sebagai timer 13 bit yang terdiri dari
counter 8-bit dengan pembagi 32 (pembagi 5 bit). Setelah perhitungan
selesai, mikrokontroler akan mengeset Timer Interrupt Flag (TF1). Dengan
membuat GATE = 1, timer dapat dikontrol oleh input dari luar (INT1),
untuk fasilitas pengukuran lebar pulsa. Register 13 bit yang digunakan
terdiri dari 8 bit dari TH1 dan 5 bit bawah dari TL1 ( bit 6, 7, 8 tidak
digunakan ). Mengeset TR1 tidak akan menghapus isi register. Operasi pada
mode 0 untuk Timer 0 dan Timer 1 adalah sama.
b. Mode 1
Mode 1 sama dengan mode 0, hanya saja register TLx dipakai
sepenuhnya sebagai pencacah biner 8 bit, sehingga kapasitas pencacah biner
yang terbentuk adalah 16 bit.
c. Mode 2
Mode 2 menyusun register timer sebagai 8 bit counter (TL1) dengan
kemampuan pengisian otomatis. Overflow dari TL1 tidak hanya men-set
TF1 tetapi juga mengisi TL1 dengan isi TH1 yang diisi sebelumnya oleh
software. Pengisian ulang ini tidak mengubah nilai TH1.
d. Mode 3
Dalam operasi mode 3 timer 1 akan berhenti, hitungan yang sedang
berjalan dipegang. Efeknya sama seperti mengatur TR1 = 0. Timer 0 dalam
mode 3 membuat TL0 dan TH0 sebagai dua counter terpisah. TL0
3/5/2008 14
menggunakan kontrol bit timer 0 yaitu C/T, GATE, TR0, INT0 dan TF0..
TH0 berfungsi hanya sebagai timer dan mengambil alih penggunaan TR1
dan TF1 dari timer 1 dan sekarang TH0 mengontrol interupsi timer 1. Mode
3 diperlukan untuk aplikasi yang membutuhkan ekstra timer/counter 8 bit.
Dengan timer 0 dalam mode 3, mikrokontroler AT89S51 seperti memiliki 3
timer/counter. Saat timer 0 dalam mode 3, timer 1 dapat dihidupkan atau
dimatikan, atau dapat digunakan oleh port serial sebagai pembangkit baud
rate dalam aplikasi komunikasi serial.
2. 1. 5. 2. Register Pengatur Timer
a. Register TCON
Pengontrol kerja timer/counter ada pada register timer control
(TCON). Adapun definisi dari bit-bit pada timer control adalah sebagai
berikut:
Tabel 2. 7. Register TCON
TF1 (Timer 1 Overflow)
Bit ini akan otomatis diset menjadi 1 jika timer 1 telah terjadi
overflow, dan akan dinolkan pada saat menjalankan rutin interupsi.
TR1 (Timer 1 Run control bit)
Bit ini digunakan untuk megaktifkan atau menonaktifkan kerja dari
timer/counter.
3/5/2008 15
TF0 (Timer 0 overflow)
Bit ini akan otomatis diset menjadi 1 jika timer 0 telah terjadi
overflow, dan akan dinolkan pada saat menjalankan rutin interupsi.
IE1 (Interrupt 1 Edge flag)
Di set oleh hardware ketika interupsi eksternal mendeteksi adanya
edge. Di clear ketika proses interupsi.
IT1 (Interrupt 1 Type control bit)
Di set /clear oleh software untuk menentukan pen-triger-an interrupsi
eksternal pada transisi turun / low level.
IE0 (Interrupt 0 Edge flag)
Di set oleh hardware ketika interupsi eksternal mendeteksi adanya
edge. Di clear ketika ada interupsi.
IR0 (Interrupt 0 Type control bit)
Di set/clear oleh perangkat lunak untuk menentukan pen-triger-an
interrupsi eksternal pada transisi turun / low level.
b. Register TMOD
Pengontrol pemilihan mode operasi timer/counter ada pada register
timer mode (TMOD) . Definisi bit-bitnya adalah sebagai berikut:
Tabel 2. 8. Register TMOD
3/5/2008 16
Tabel 2. 9. Fungsi-fungsi Register TMOD
Simbol Fungsi
GATE
Gate control set. Timer/counter ‘x’ akan aktif jika
pin “INT” high dan kondisi pin “TRx” sedang set.
Gate control clear. Timer”x” akan aktif jika
“TRx” set
C / T
Selector timer/counter. Clear untuk mode timer (
input dari internal clock ) dan set untuk mode
counter (input dari pin “Tx” )
M1 Bit untuk memilih mode timer/counter
M0 Bit untuk memilih mode timer/counter
Tabel 2. 10. Kombinasi M0 dan M1
M1 M0 Mode Operasi
0 0 0 Timer 13 bit
0 1 1 Timer/counter 16 bit
1 0 2 Timer/counter pengisian otomatis (auto
reload) 8 bit
1 1 3
(Timer 0)
TL0 adalah T/C 8 bit yang dikontrol oleh
kontrol bit standar timer 0. TH0 adalah timer 8
bit dan dikontrol oleh kontrol bit timer 1
3/5/2008 17
2. 1. 6. Mode Pengalamatan dan Instruksi Mikrokontroler
Untuk mengakes data di dalam memori mikrokontroler dapat dilakukan
dengan beberapa mode, yaitu:
1. Direct Addressing Mode (Mode Pengalamatan Langsung)
Pada direct addressing instruksi yang dikeluarkan secara spesifik
akan menyebutkan alamat dari operan yang diproses. Hanya internal Data
RAM dan SFR yang dapat diproses dengan menggunakan direct
addressing ini. Contoh: MOV A,55h.
2. Indirect Addressing Mode (Mode Pengalamatan Tak langsung)
Pada indirect addressing instruksi yang dikeluarkan akan
menyebutkan sebuah register yang berisi alamat dari operan yang akan
diproses. Baik internal maupun eksternal RAM dapat diakses
menggunakan indirect addressing ini. Register alamat untuk 8 bit yang
dapat dipakai adalah R0 dan R1 dari bank register, atau Stack Pointer.
Pada pengalamatan 16 bit dapat menggunakan register DPTR (Data
Pointer). Contoh: MOV A, @R0
3. Register Addressing Mode (Mode Pengalamatan Register)
Bank register berisi register R0 sampai R7 yang dapat diakses
dengan instruksi-instruksi tertentu dimana hanya akan melibatkan 3 bit
register spesifik yang berisi opcode dari instruksi. Instruksi yang
mengakses register dengan cara ini akan lebih efisien, karena mode ini
akan menghilangkan bagian byte alamat. Saat instruksi ini dieksekusi, satu
dari delapan register dari bank register akan diakses. Contoh : MOV A,R2.
3/5/2008 18
4. Immediate Addressing Mode (Mode Pengalamatan Segera)
Proses pengalamatan ini terjadi pada sebuah instruksi ketika nilai
operan merupakan data yang akan diproses. Biasanya operan tersebut
selalu diawali dengan tanda ‘#’. Contoh : MOV A,# 50H
2. 2. Transistor sebagai saklar
Transistor dapat digunakan sebagai saklar, jika transistor bekerja pada
daerah jenuh (saturation) dan daerah tersumbat (cut off). Transistor sendiri
mempunyai tiga daerah kerja yaitu, daerah jenuh (saturation), daerah
tersumbat (cut off) dan daerah aktif.
a. Daerah jenuh (saturation)
Daerah jenuh adalah daerah dimana tegangan antara emiter dan
kolektor (VCE) sama dengan nol volt.
b. Daerah tersumbat (cut off)
Pada saat arus basis sama dengan nol maka transistor memasuki
daerah tersumbat. Karena arus basis membias kolektor maka arus kolektor
pun menjadi nol dan VCE sama dengan Vcc.
c. Daerah aktif
Antara daerah jenuh dan daerah tersumbat adalah daerah aktif.
3/5/2008 19
Gambar 2. 3. Rangkaian transistor sebagai saklar
Jika sebuah transistor berada dalam keadaan tersumbat, transistor
tersebut seperti sebuah saklar terbuka. Jika transistor berada dalam keadaan
jenuh maka transistor seperti sebuah saklar tertutup dari kolektor ke emitter.
2. 3. Relay
Relay merupakan piranti elektro mekanik yang bekerja secara
electromagnet mekanik. Relay berfungsi untuk memutuskan dan mengalirkan
arus listrik yang dikontrol dengan memberikan tegangan dan arus pada
koilnya. Ada 2 jenis relay berdasarkan tegangan untuk menggerakan koilnya,
yaitu relay AC dan relay DC. Penggunaan relay ini harus dilengkapi dengan
pembatas tegangan kejut relay berupa dioda yang dihubungkan secara
langsung pada kaki lilitan relay.
3/5/2008 20
Port
D1NO
Common
RBIb
IcVcc
RELAY
NC
Q
3
2
1
35
412
Gambar 2. 4. Rangakian Relay
Besar arus yang dibutuhkan relay agar dapat bekerja secara optimal
adalah :
Ic = Rrelay
Vcc …………………………….(2.1)
Ib(sat) = βIc …………………………….(2. 2)
Rb = Ib
VfVcc − …... .……………………....(2. 3)
2. 4. Dipswitch (Saklar 8 bit)
Dipswitch (saklar 8 bit) merupakan rangkaian saklar on/off yang
sudah dirangkai dalam bentuk seperti IC. Dipswitch (saklar 8 bit) mempunyai
8 saklar on/off, dimana tiap-tiap saklar mempunyai nilai tempat (bobot)
tersendiri, seperti yang terlihat pada Tabel 2.11.
Tabel 2. 11. Bobot nilai saklar
Saklar 1 2 3 4 5 6 7 8
Bobot desimal 128 64 32 16 8 4 2 1
3/5/2008 21
Rangkaian dipswitch [4], ditunjukan pada gambar 2. 5.
Vin
R
Vin
R
Vin
Vin
R R
Vin
Vcc
R
Vin
SW DIP-8
12345678
161514131211109
Vin
I
Vin
R R R
Gambar 2. 5. Rangkaian Dipswitch
Dari rangkaian dipswitch pada gambar 2. 6, besar nilai resistor adalah :
R =I
VinVcc − …………………………(2. 4)
SW DIP-8
1 2 3 4 5 6 7 8
16 15 14 13 12 11 10 9
Gambar 2. 6. Bentuk dan simbol dipswitch (saklar 8 bit).
2. 5. Buzer/Speaker
Buzer/speaker merupakan sebuah alat elektronika yang berfungsi
untuk mengubah sinyal analog menjadi suara.
3/5/2008 22
Vcc
Ie
Port
Ib
RB RE
1
2Q
3
BUZZER
Gambar 2. 7. Rangkaian Buzer/Speaker
Besar arus yang dibutuhkan agar transistor dapat bekerja secra optimal
adalah :
Ib = β
Icsat ……………………………..(2. 5)
Ie = Ib(β +1) …...………………………...(2. 6)
RE =Ie
VfVcc − .......………………………...(2. 7)
RB = Ib
VfVcc − ......…………………………(2. 8)
2. 6. LED
Led merupakan salah satu komponen elektronika yang bisa
memancarkan cahaya bila dialiri arus listrik. Led sendiri mempunyai nilai
tegangan ambang (Vd) sebesar 0.7 V.
VbVd
ILedmaxR
Vcc
Va
Gambar 2. 8. Rangkaian Led
3/5/2008 23
Pada saat Va lebih positif dari Vb, maka led akan bias maju sehingga
rangkaian led akan short circuit. Besarnya nilai resistor adalah:
R = maxILed
Vb …....……………………(2. 9)
Vb = Vcc - Vd …… …………………(2. 10)
Pada saat led Va negatif, maka led akan bias balik, sehingga pada
rangkaian led akan open circuit.
3/5/2008 24
BAB III
RANCANGAN PENELITIAN
3. 1. Perancangan Perangkat keras
Perangkat keras terdiri dari sebuah mikrokontroller AT89S51 yang
dihubungkan pada rangkaian dipswitch sebagai masukan dan rangkaian relay,
buzzer, serta led sebagai keluaran. Rangkaian dipswitch dihubungkan ke
mikrokontroller AT89S51 untuk mengirimkan data sebagai waktu yang akan
disetting.
2
8
AT89S51 Buzer
Driver Relay
LED Hijau LED Merah
Dipswitch
Vcc
Gambar 3. 1. Diagram Blok Perangkat Keras
3/5/2008 25
3. 1. 1. Saklar Dipswitch
Pada dasarnya saklar dipswitch dihubungkan ke tegangan Vcc dengan
batasan arus oleh resistor. Dari data sheet AT89S51, saat logika ‘1‘, Imax =
650 uA dengan Vin = 2V. Maka nilai resistor ditentukan dengan persamaan
(2. 4 ) :
Rmin = uA650
V2V5 −
= uA650
V3
= 4.615 ohm
Dalam perancangan nilai resistor yang digunakan adalah 4K7 ohm.
AT89S51
4K7
ohm
4K7
ohm
4K7
ohm
4K7
ohm
SW DIP-8
12345678
161514131211109
4K7
ohm
4K7
ohm
4K7
ohm
VCC
4K7
ohm
Port3.0 Port3.1 Port3.2 Port3.3 Port3.4 Port3.5 Port3.6 Port3.7 P 3 7
Gambar 3. 2 Konfigurasi Dipswitch
3/5/2008 26
3. 1. 2. LED Output
Keluaran dari sistem adalah dua buah LED yang berbeda warna.
Warna hijau untuk memberikan tanda bahwa waktu mulai berjalan saat tombol
ditekan, dan warna merah untuk memberikan tanda bahwa waktu sudah habis.
Dari data sheet Led, arus maksimum yang mengalir pada led (Imax) = 20mA,
dan tegangan ambang (Vd) = 0.7V, maka nilai resistor ditentukan dengan
persamaan (2. 9) :
Rmin = mA20
V7.0V5 −
= 215ohm
Pada perancangan nilai resistor yang akan dipakai adalah 330 ohm.
AT89S51
330 ohmLED HIJAU
VCC
330 ohm
Port1.2 Port1.3
LED MERAH
Gambar 3. 3. Konfigurasi LED
3. 1. 3. On-Chip Oscilator
Mikrokontroller AT89S51 memiliki rangkaian osilator internal.
Komponen-komponen yang dibutuhkan untuk menghidupkan osilator internal
adalah 2 buah kapasitor (dari data sheet AT89S51 nilai kapasitor adalah 30 pF
3/5/2008 27
– 33pF) dan sebuah resonator keramik/kristal yang dihubungkan dengan kaki
XTAL1 dan XTAL2 pada pin mikrokontroler, seperti pada gambar 3. 4.
AT89S51
CRYSTAL 12MHZ30pF
30pF
XTAL1 XTAL2
Gambar 3. 4. Kofigurasi On-Chip Oscilator
3. 1. 3. Driver Relay
Pada rangkaian ini menggunakan relay Dc jenis SPDT (Single Pole
Double Throw) dengan tegangan 6 Vdc, arus yang dibutuhkan sebesar 20mA-
30mA. Dalam mengaktifkan relay dibutuhkan arus yang cukup agar kontak
yang terjadi pada relay benar-benar stabil. Maka penggunaan relay ini harus
dilengkapi dengan pembatas tegangan kejut relay yang berupa dioda jenis
D1N4001 yang dihubungkan secara langsung pada kaki lilitan relay.
Transistor BD139 digunakan sebagai saklar, pada saat port 1.0 = ‘0’, transistor
tidak aktif, dan sebaliknya pada saat port 1.0 = ‘1’, maka transistor akan aktif.
Dari pengukuran, Rrelay = 90 ohm dan dari data sheet BD139, β = 160.
Maka besar Ic ditentukan dengan persamaan (2. 1):
Ic = 905V
= 55,5mA
Besar arus pada basis saat saturasi ditentukan dengan persamaan (2. 2):
3/5/2008 28
Ib(sat) = 1605,55 mA
= 0.35mA
Besar nilai resistor ditentukan dengan persamaan (2. 3):
Rb = mA
VV35.0
7.05 −
= mAV
35.03.4
= 12.285 ohm
Pada perancangan nilai resistor yang akan digunakan adalah 10K ohm.
Out
OutNC
RELAY SPDT
35
412
VCC
1N4001
BD139
3
2
1
NO
Common
10K ohm
Port1.0
AT89S51
Gambar 3. 5. Konfigurasi Driver Relay
3. 1. 4. Buzzer
Pada dasarnya buzzer dihubungkan ke tegangan Vcc dengan batasan
arus oleh resistor 47 ohm dan transistor pnp jenis A733. Dengan adanya
transistor, maka buzzer mendapatkan arus atau tidak-nya tergantung dari
kondisi transistor saat itu. Jika transistor ON, maka buzzer akan ON, karena
mendapat tegangan Vcc. Namun sebaliknya jika transistor OFF, maka buzzer
juga akan OFF. Dari data sheet A733, Icsat = 100mA dan penguatan (ß) =
300, maka besar arus pada basis ditentukan dengan persamaan (2. 5):
3/5/2008 29
Ib = 300
mA100
= 0.3mA
Besar arus pada emiter ditentukan dengan persamaan (2. 6):
Ie = Ib + Ic
= Ib (β+1)
= 0.3mA(300+1)
= 0.1A
Nilai resistor pada emiter ditentukan dengan persamaan (2. 7):
REmin = A1.0
V7.0V5 −
= 43ohm
Nilai resistor pada basis ditentukan dengan persamaan (2. 8):
RB = mA3.0
V7.0V5 −
= 1.433ohm
Pada perancangan nilai RE yang akan dipakai adalah 47 ohm dan RB
adalah 10Kohm.
AT89S51
10K ohm
BUZZER
A733
3
2
1
VCC
47 ohm
Port1.1
Gambar 3. 6. Konfigurasi Buzzer
3/5/2008 30
3. 2. Perancangan Perangkat Lunak
Perancangan perangkat lunak meliputi pemrograman langsung pada
mikrokontroller.
START
Baca tombol
Tombol start ditekan ?
NO
YES
Inisialisasi Timer 0 mode 1
Tombol stop ditekan ?
Timer tercapai?
NO
NO
YES
YES
C
B
D
A
Gambar 3. 7. Diagram Alir Program Utama
3/5/2008 31
Baca saklar dipswitch
Led hijau on Timer 0 on
Led hijau off Led merah on
Buzzer on Relay on
Timer 0 off Led hijau off
Led merah off Relay off Buzzer off
Selesai
Matikan timer 0
A
A
B
D
C
Gambar 3. 8. Diagram Alir Program Utama
3/5/2008 32
3. 2. 1. Pemograman Mikrokontroller
Program dimulai dengan menginisialisasikan timer yang akan
digunakan, yaitu timer 0 mode 1. Mikrokontroller akan membaca tombol start
dan tombol stop. Bila tombol start ditekan, maka mikrokontroller akan
membaca saklar dipswitch yang kemudian akan mengaktifkan led hijau dan
mengaktifkan timer 0, selanjutnya program akan kembali ke instruksi baca
tombol. Bila tombol stop ditekan, maka mikrokontroller akan mematikan
timer 0 dan mematikan semua keluaran dari mikrokontroller. Setelah timer
telah tercapai, maka mikrokontroller akan mematikan timer 0 dan akan
mengaktifkan led merah, buzzer serta driver relay. Demikian proses program
akan diulangi terus menerus.
3. 2. 2. Inisialisasi Timer
Untuk mengatur kerja timer digunakan 2 register tambahan, yaitu
TMOD dan TCON. Timer yang akan dipakai menggunakan timer 0 mode 1,
yang inisialisasinya adalah:
Tabel 3. 1. Register TMOD
Gate C/T M1 M0 Gate C/T M1 M0
0 0 0 0 0 0 0 1
Timer 1 Timer 0
Tabel 3. 2. Register TCON
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
0 0 0 1 0 0 0 0
3/5/2008 33
Timer 1 Timer 0
Pada register TMOD, dengan mengatur M1= 0 dan M0= 1, pada timer
0, maka timer 0 bekerja sebagai pencacah 16 bit ( mode 1) dengan isi ulang
otomatis. Bit C/T = 0, maka sinyal detak diperoleh dari osilator kristal yang
frekuensinya sudah dibagi 12. Bit Gate = 0, maka saluran sinyal detak hanya
diatur oleh bit TR0. Pada register TCON, TR0 = 0, akan mengaktifkan timer 0
yang sinyal detaknya akan disalurkan ke pencacah biner.
Besar nilai waktu tunda yang dibentuk tergantung pada frekuensi kerja
mikrokontroler, jika digunakan osilator 12 MHz, maka setelah dibagi 12 akan
menghasilkan frekuensi detak yang diumpankan ke mikrokontroler sebesar 1
MHz. Setiap 1 cycle, lebar pulsa yang dibentuk adalah :
T = f1 =
MHz11 = 1us
Tundaan maksimum pada mode 1 kerja timer [2], adalah 65.536 us.
Dalam hal ini waktu tunda yang akan dipakai adalah sebesar 50.000 us. Agar
limpahan terjadi setiap 50.000 us, maka pada timer 0 untuk TL0 dan TH0
masing-masing diisi dengan konstanta -50.000.
Pencacah biner yang dibentuk dengan register TL0 akan mencacah
naik seiring dengan sinyal detak, mulai dari -50.000 sampai 0000h. Untuk
mendapatkan delay 1 detik, dengan waktu tunda 50.000 us, maka
membutuhkan pengulangan sebesar:
Nilai pengulangan = 50000
uS000.000.1
= 20
3/5/2008 34
BAB IV
DATA DAN ANALISA DATA
Hasil dari alat yang telah dibuat adalah sebuah modul mikrokontroler yang
telah diprogram untuk memenuhi kebutuhan system. Universal Timer berbasis
mikrokontroler AT89S51 terdiri dari program untuk menghasilkan delay n detik
dan program utama untuk mengaktifkan perangkat keras.
4. 1. Program Untuk Menghasilkan Delay N Detik
4. 1. 1. Delay 1 Detik
Program untuk menghasilkan delay 1 detik dituliskan sebagai
berikut:
org 0h
Mulai:
acall Delay_1mS
sjmp mulai
Delay_1mS:
mov R0,#20
dl1ms: acall Delay_5mS ;2 siklus
djnz R0,dl1ms ;2 siklus
ret
Delay_5mS:
push TMOD ; simpan mode timer (2 siklus)
mov TMOD,#21H ; timer0 mode 16 bit (2 siklus)
mov th0,#high(-49980) ;2 siklus
mov tl0,#low(-49980) ;2 siklus
3/5/2008 35
mov th0,#high(-50000) ;2 siklus
mov tl0,#low(-50000) ;2 siklus
setb TR0
tunggu_5mS:
jbc TF0,sudah_5mS
ajmp tunggu_5mS
sudah_5mS:
clr TR0 ;1 siklus
pop TMOD ;2 siklus
ret ;2 siklus
mov R7,#10
djnz R7,$
ret
Hasil simulasi dengan memakai tundaan 50000 uS, ditunjukan
pada Gambar 4. 1.
Gambar 4.1. Delay 1 Detik
Hasil simulasi dengan memakai tundaan 49980 uS, ditunjukan
pada Gambar 4. 2.
3/5/2008 36
Gambar 4.2. Delay 1 Detik
4. 1. 2. Delay 2 Detik
Delay 2 detik di dapat dengan mengubah nilai pengulangan pada
R0 sebesar 40. Hasil simulasi dengan memakai tundaan 50000 uS,
ditunjukan pada Gambar 4.3.
Gambar 4.3. Delay 2 Detik
Hasil simulasi dengan memakai tundaan 49980 uS, ditunjukan
pada Gambar 4.4.
Gambar 4.4. Delay 2 Detik
4. 1. 3. Delay 4 Detik
Delay 4 detik di dapat dengan mengubah nilai pengulangan pada
R0 sebesar 80. Hasil simulasi dengan memakai tundaan 50000 uS,
ditunjukan pada Gambar 4. 5.
3/5/2008 37
Gambar 4.5. Delay 4 Detik
Hasil simulasi dengan memakai tundaan 49980 uS, ditunjukan
pada Gambar 4.6.
Gambar 4.6. Delay 4 Detik
4. 1. 4. Delay 8 Detik
Delay 8 detik di dapat dengan mengubah nilai pengulangan pada
R0 sebesar 160. Hasil simulasi dengan memakai tundaan 50000 uS,
ditunjukan pada Gambar 4.7.
Gambar 4.7. Delay 8 Detik
Hasil simulasi dengan memakai tundaan 49980 uS, ditunjukan
pada Gambar 4. 8.
3/5/2008 38
Gambar 4. 8. Delay 8 Detik
4. 1. 5. Delay 64 Detik
Dengan mengubah program dimana R0 diisi dengan angka 160,
maka setiap 1 siklusnya didapat 8 detik. Untuk mendapatkan 64 detik,
maka dengan menggandakan siklus dari R0 sebanyak 8 kali (8 x 8 detik =
64 detik), instruksinya:
Delay_1mS:
mov R0,#160
dl1ms: acall Delay_5mS
acall Delay_5mS
acall Delay_5mS
acall Delay_5mS
acall Delay_5mS
acall Delay_5mS
acall Delay_5mS
acall Delay_5mS
djnz R0,dl1ms
ret
Hasil simulasi dengan memakai tundaan 50000 uS, ditunjukan
pada Gambar 4. 9.
3/5/2008 39
Gambar 4.9 Delay 64 Detik
Hasil simulasi dengan memakai tundaan 49980 uS, ditunjukan
pada Gambar 4. 10.
Gambar 4.10. Delay 64 Detik
4. 1. 6. Delay 128 Detik
Dengan mengubah program dimana R0 diisi dengan angka 160,
maka setiap 1 siklusnya didapat 8 detik. Untuk mendapatkan 64 detik,
maka dengan menggandakan siklus dari R0 sebanyak 16 kali (16 x 8 detik
= 64 detik). Hasil simulasi dengan memakai tundaan 50000 uS, ditunjukan
pada Gambar 4. 11.
Gambar 4.11. Delay 128 Detik
3/5/2008 40
Hasil simulasi dengan memakai tundaan 49980 uS, ditunjukan
pada Gambar 4.12.
Gambar 4.12. Delay 128 Detik
Dalam menghasilkan delay 1, bila tundaan yang dipakai 50000 uS
maka limpahan akan terjadi setiap 50000 uS. Setiap terjadi limpahan timer 0
akan berhenti bekerja sekitar 20 siklus, bila menggunakan kristal 12MHZ,
maka 1 siklus = 1 uS, jadi tundaan totalnya adalah 50020 uS.
1 detik => 20 pengulangan x 50020 uS = 1.000.400 uS
2 detik => 2 x 20 pengulangan x 50020 uS = 2.000.800 uS
4 detik => 4 x 20 pengulangan x 50020 uS = 4.001.600 uS
8 detik => 8 x 20 pengulangan x 50020 uS = 8.003.200 uS
16 detik => 16 x 20 pengulangan x 50020 uS = 16.006.400 uS
32 detik => 32 x 20 pengulangan x 50020 uS = 32.012.800 uS
64 detik => 64 x 20 pengulangan x 50020 uS = 64.025.600 uS
128 detik => 128 x 20 pengulangan x 50020 uS = 128.051.200 uS
Semakin besar waktu, maka semakin besar pula selisihnya sehingga
pewaktuan menjadi tidak akurat. Agar lebih akurat maka tundaan 50000 uS
diganti dengan 49980 uS, karena setiap terjadi limpahan timer akan berhenti
sekitar 20 siklus. Tundaan totalnya adalah 49980 + 20 = 50000 uS
3/5/2008 41
1 detik => 20 pengulangan x 50000 uS = 1.000.000 uS
2 detik => 2 x 20 pengulangan x 50000 uS = 2.000.000 uS
4 detik => 4 x 20 pengulangan x 50000 uS = 4.000.000 uS
8 detik => 8 x 20 pengulangan x 50000 uS = 8.000.000 uS
16 detik => 16 x 20 pengulangan x 50000 uS = 16.000.000 uS
32 detik => 32 x 20 pengulangan x 50000 uS = 32.000.000 uS
64 detik => 64 x 20 pengulangan x 50000 uS = 64.000.000 uS
128 detik => 128 x 20 pengulangan x 50000 uS = 128.000.000 uS
Dengan memakai tundaan 49980 uS, maka .hasil simulasi dan hasil
perhitungan selisihnya adalah 5 uS, hasil ini lebih teliti bila dibandingkan
dengan memakai tundaan 50000 uS.
4. 2. Program Pengaktifan Perangkat Keras
Hasil dari program untuk menghasilkan delay 1 detik akan digunakan
untuk mengaktifkan keluaran dari port1 yang terdiri dari relay, buzzer, dan led
sesuai dari data dipswitch. Program akan mengerjakan instruksi baca tombol
start, dan akan melompat ke loop1 bila tombol start ditekan. Setelah tombol
start ditekan, mikrokontroler akan menyalakan led hijau pada port1.2, dan
akan membaca data dari dipswitch pada port 3, yang kemudian mikrokontroler
akan mengaktifkan timer 0, instruksinya:
……….
loop: jnb tombol_start,loop1 ; baca tombol start
jnb tombol_stop,berhenti ; baca tombol stop
sjmp loop ; loop
3/5/2008 42
loop1: ; bila tombol start ditekan
jnb tombol_start,$ ; tunggu sampai tombol start dilepas
acall delay
clr led_hijau ; nyalakan led hijau
mov detik,p3 ; baca dipswitch
setb tr0 ; jalankan timer 0
acall delay
sjmp loop ; loop
…………
ret
Hasil dari simulasi pada saat timer berjalan dapat dilihat pada gambar
4.13.
Gambar 4.13. Input dan Output Port
Pada gambar 4.13, program disimulasikan untuk masukan timer 7
detik, untuk itu port 3 input diset sebagai berikut:
P3 : 00000111
Setelah tombol start ditekan (yang disimulasikan dengan memberi
input P1.4 = 0) dan dilepaskan (yang disimulasikan dengan memberi input
P1.4 = 1), maka nilai output pada saat timer berjalan akan terlihat pada port 1
output sebagai berikut:
3/5/2008 43
P1.0 = 0 ; relay off
P1.1 = 1 ; buzzer off
P1.2 = 0 ; LED hijau on
P1.3 = 1 ; LED merah off
Setelah timer habis, maka mikrokontroler akan mengaktifkan relay
yang di pasang di port1.0 dengan memberi logika ‘1’, pemberian logika ‘1’
karena pada perancangan, transistor yang digunakan adalah jenis transistor
NPN yaitu BD139. Dari hasil perhitungan pada bab 3.1.3, nilai Ib > Ib(sat) ,
sehingga arus Ib akan membuat transistor dalam keadaan saturasi(VCE =0)
dan arus akan mengalir menuju relay yang akan menyebabkan switch akan
tertutup. Selanjutnya mikrokontroler akan mengaktifkan buzzer yang di
pasang di port1.1 dengan memberi logika ‘0’, dengan adanya arus low pada
kaki basis dari pemberian logika ‘0’ ini, maka transistor akan ON (kondisi
saturasi), sehingga buzer akan mendapatkan tegangan dari Vcc dengan batasan
arus oleh resistor 47 ohm. Mikrokontroler akan menyalakan led merah dengan
memberi logika ‘0’ pada port1.3 dan menonaktifkan led hijau dengan memberi
logika ‘1’ pada port1.2. Relay, buzer, led merah akan ON dan led hijau OFF
secara bersamaan. Instruksinya:
………
isr2: clr buzer ; aktifkan buzer
clr led_merah ; aktifkan led merah
3/5/2008 44
setb relay ; aktifkan relay
setb led_hijau ; matikan led hijau
clr tr0
………
ret
Hasil dari simulasi pada saat timer sudah habis dapat dilihat pada
Gambar 4. 14.
Gambar 4. 14. Input dan Output Port
3/5/2008 45
BAB V
KESIMPULAN DAN SARAN
Dari penelitian yang telah dikerjakan, penulis dapat mengambil
beberapa kesimpulan dan saran, yaitu:
5. 1. Kesimpulan
1. Untuk menghasilkan delay 1 detik, bila menggunakan tundaan sebesar
50.000 uS, maka membutuhkan pengulangan kerja timer sebesar 20, (20 x
50.000 uS = 1 detik).
2. Hal yang membuat pewaktuan menjadi tidak akurat adalah karena setiap
kali terjadi limpahan pada timer 0, timer 0 harus dimatikan dahulu untuk
pengisian ulang pada TH0 dan TL0, sehingga timer 0 akan berhenti
bekerja ± 20 siklus.
3. Pada kofigurasi driver relay, agar relay dapat benar-benar bekerja secara
optimal, maka perbedaan antara Ib dengan Ib(sat) harus lebih besar dari 1
{Ib – Ib(sat) > 0.1}.
5. 2. Saran
1. Untuk pengembangannya, pewaktuan yang digunakan dalam menit atau
jam yang bisa ditampilkan dalam segment-segment agar lebih baik.
2. Alat ini hanya dapat mengaktifkan relay, buzzer dan led secara bersamaan,
maka untuk pengembangannya alat ini dapat mengaktifkan yang lebih
banyak lagi dengan pewaktuan yang berbeda-beda.
3/5/2008 46
DAFTAR PUSTAKA
1. Malik, Moh. Ibnu. 2003. Belajar Mikrokontroler ATMEL AT89S8252. Yogyakarta. Gava Media.
2. Putra, Agfianto Eko. 2004. Belajar Mikrokontroler AT89C51/52/55 (Teori
dan Aplikasi). Penerbit Gava Media. Yogyakarta,
3. Prasetia, Retna. Widodo, Catur Edi. 2004. Interfacing Port Paralel dan port Serial Komputer dengan Visual Basic 6.0. Yogyakarta. ANDI.
4. Handout, praktikum. 2003. Pemrograman 2. TE-USD
3/5/2008 47
LAMPIRAN
3/5/2008 48
4K7
ohm
10K ohm
4K7
ohm
RELAY SPDT
35
412
4K7
ohm
STOP
Common
START
CRYSTAL 12 MHZ
BUZZER
1N4001
47 ohm
4K7
ohm
VCC
SW DIP-8
12345678
161514131211109
10K ohm
NO
330 ohm
4K7
ohm
LED HIJAU
A733
3
2
1
30 pF
BD139
3
2
1
4K7
ohm
ANTON WIDIANTO
UNIVERSAL TIMER BERBASIS MIKROKONTROLLER AT89S51
A
1 1Wednesday , September 26, 2007
Title
Size Document Number Rev
Date: Sheet of
VCC
NC
4K7
ohm
VCC30 pF
VCC
10 uF
10K ohm
4K7
ohm
AT89S51
91819 29
30
31
40
12345678
2122232425262728
1011121314151617
3938373635343332
RSTXTAL2XTAL1 PSEN
ALE/PROG
EA/VPP
VCC
P1.0/T2P1.1/T2-EXP1.2P1.3P1.4/SSP1.5/MOSIP1.6/MISOP1.7/SCK
P2.0/A8P2.1/A9
P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3.1/TXD
P3.2/INTOP3.3/INT1
P3.4/TOP3.5/T1
P3.6/WRP3.7/RD
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
LED MERAH 330 ohm
VCC
3/5/2008 49
Listening Program Universal Timer Berbasis Mikrokontroler AT89S51
$mod51
detik equ 08h ; memori tempat menyimpan timer detik
led_hijau bit p1.2
led_merah bit p1.3
buzer bit p1.1
relay bit p1.0
tombol_start bit p1.4
tombol_stop bit p1.5
org 0h
sjmp start ; melompat ke start
org 0bh
ljmp timer0_isr ; melompat ke timer0_isr
start: mov sp,#30h ; stack pointer mulai alamat 30h
mov tmod,#1h ; timer 0 mode 1
mov th0,#high(-50000) ; pengisian th0 dan tl0 shg terjadi interupsi
sebanyak 20 kali per detik
mov tl0,#low(-50000)
mov r2,#0
setb ea ; aktifkan fasilitas interupsi
setb et0 ; aktifkan interupsi timer 0
setb led_merah
setb led_hijau
clr relay
setb buzer
loop: jnb tombol_start,loop1 ; baca tombol start
jnb tombol_stop,berhenti ; baca tombol stop
sjmp loop ; loop
3/5/2008 50
loop1: ; bila tombol start ditekan
jnb tombol_start,$ ; tunggu sampai tombol start dilepas
acall delay
clr led_hijau ; nyalakan led hijau
mov detik,p3 ; baca dipswitch
setb tr0 ; jalankan timer 0
acall delay
sjmp loop ; loop
berhenti: ; bila tombol stop ditekan
jnb tombol_stop,berhenti ; tunggu sampai tombol stop dilepas
acall delay
clr tr0 ; matikan timer 0
setb buzer ; matikan buzer
setb led_merah ; matikan led merah
setb led_hijau ; matikan led hijau
clr relay ; matikan relay
acall delay
sjmp loop ; loop
delay: mov r7,#0 ; isi r7 dngan 00h
djnz r7,$ ; kurangi nilai r7 sampai 0
ret
timer0_isr:
push acc ; simpan nilai akumulator ke stack
mov th0,#high(-50000) ; isi kembali nilai th0 dan tl0
mov tl0,#low(-50000)
inc r2
cjne r2,#20,timret ; bila belum satu detik lompat ke timret
mov r2,#0 ; bila sudah satu detik
3/5/2008 51
mov a,detik ; baca detik apakah sudah 0
cjne a,#0,isr1
sjmp isr2
isr1: dec detik ; bila belum 0 kurangi detik
sjmp timret
isr2: clr buzer ; bila sudah 0
clr led_merah ; aktifkan buzer,relay dan led merah
setb relay
setb led_hijau ; matikan led hijau
clr tr0
timret:
pop acc ; ambil kembali nilai akumulator
reti
end ; selesai
3/5/2008 52
3/5/2008 53
3/5/2008 54
3/5/2008 55
3/5/2008 56
3/5/2008 57
3/5/2008 58
3/5/2008 59
3/5/2008 60
3/5/2008 61
3/5/2008 62
3/5/2008 63
3/5/2008 64
3/5/2008 65
3/5/2008 66
3/5/2008 67
3/5/2008 68
3/5/2008 69
3/5/2008 70
3/5/2008 71
3/5/2008 72
3/5/2008 73
3/5/2008 74
3/5/2008 75
3/5/2008 76
3/5/2008 77
3/5/2008 78
3/5/2008 79
3/5/2008 80
3/5/2008 81
3/5/2008 82
3/5/2008 83
3/5/2008 84
3/5/2008 85
3/5/2008 86
3/5/2008 87
3/5/2008 88
top related