PENAMPIL JUMLAH DAN BIAYA PEMAKAIAN ENERGI
LISTRIK PADA KWh METER MEKANIK
TUGAS AKHIR
Diajukan untuk memenuhi salah satu syarat Memperoleh gelar Sarjana Teknik
Program Studi Teknik elektro
Fakultas Teknik Universitas Sanata Dharma
Disusun oleh : Daud Jusuf Massora P
NIM : 995114050
JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2007
DISPLAY OF AMOUNT AND ELECTRICAL ENERGY
USAGE COST ON MECHANICAL KWh METER
Final Project
Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree
In Electrcial Engineering
Compiled by:
Daud Jusuf Massora Pakadang NIM : 995114050
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTMENT
SANATA DHARMA UNIVERSITY YOGYAKARTA
2007
HALAMAN MOTTO DAN PERSEMBAHAN
“Lakukanlah apa yang anda lakukan,
dengan apa yang anda miliki di tempat kini anda berada”
-Theodore Roosevelt-
“Hal terbaik yang dapat anda berikan kepada seseorang adalah
KESEMPATAN”
“Orang yang tidak bisa marah adalah seseorang yang BODOH, tetapi orang yang tidak marah adalah orang yang BIJAKSANA”
Dengan segala kerendahan hati dan kejujuran, secara khusus Tugas Akhir ini kupersembahkan kepada;
Allah Bapa, Allah Putera dan Allah Roh Kudus; Bunda Maria di Surga; Ayahanda A.K Pakadang, Ibunda Ch.G Massora; Kakakku Sesilia, Kresentia, Budi, Sofiani.
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa 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, 29 Januari 2007
Penulis
Daud Jusuf Massora Pakadang
PENAMPIL JUMLAH DAN BIAYA PEMAKAIAN ENERGI
LISTRIK PADA KWh METER MEKANIK
Daud Jusuf Massora Pakadang 995114050
INTISARI
Teknologi mikrokontroler sebagai mesin penghitung bisa diaplikasikan sebagai alat penampil jumlah dan biaya pemakaian energi listrik. Dengan memamfaatkan putaran piringan pada KWh meter mekanik, dimana 1250 putaran piringan sama dengan 1 KWh.
Penampil jumlah dan biaya pemakaian energi listrik menggunakan mikrokontroler AT89S51 sebagai pengontrol utama. Jumlah putaran piringan akan dideteksi oleh sebuah sensor optis, dalam hal ini fototransistor. Dengan menggunakan IC74LS14, sinyal dari sensor akan diubah menjadi pulsa dan menjadi input mikrokontroller. Sinyal akan diolah dan hasilnya akan ditampilkan ke sebuah LCD M1632.
Alat ini mampu menampilkan jumlah pemakaian energi listrik hingga 255 KWh dan menampilkan biaya pemakaian hingga Rp 999999,- Akan tetapi alat ini belum mampu melakukan penghitungan ulang setelah 1 bulan.
Kata kunci: penghitungan cacah pada KWh meter mekanik
DISPLAY OF AMOUNT AND ELECTRICAL ENERGY USAGE
COST ON KWh METER MECHANIC
Daud Jusuf Massora Pakadang 995114050
ABSTRACT
The Microcontroller technology as a calculate machine can be applicated as display of amount and electrical energy usage cost. By use profit of disk rotations of KWH meter mechanic, where 1250 disk rotations same with 1 KWh.
Display of amount and electrical energy usage cost use microcontroller AT89S51as a main controller. Amount of rotations will be detected by a optical sensor, in this case the optical sensor is phototransistor. By using IC74LS14, the signal from sensor will be changed to clock and became as input microcontroller. The signal will be processed and the result will be displayed in to LCD M1632.
This tool can display amount of usage electrical energy till 255 KWh and display usage cost till Rp 999999,- But the tool can do recalculation yet after 1 month.
Key word: “puncture calculation in KWh meter mechanic”
KATA PENGANTAR
Puji dan syukur penulis ucapkan kepada Sang Khaliq atas rahmat serta pencerahan-Nya yang telah diberikan sehingga penulis dapat menyelesaikan tugas akhir ini. Cukup banyak hal yang menghambat penulis dalam proses penyusunan tugas akhir ini, tetapi pada akhirnya penulis berhasil menyelesaikan.
Tugas akhir ini disusun untuk memenuhi salah satu syarat untuk meraih gelar sarjana pada Program Studi Teknik Elektro, Jurusan Teknik Elektro, Fakultas Teknik Universitas Sanata Dharma Yogyakarta, dengan judul PENAMPIL JUMLAH DAN BIAYA PEMAKAIAN ENERGI LISTRIK PADA KWh METER
MEKANIK (DISPLAY OF AMOUNT AND ELECTRICAL ENERGY USAGE COST
ON KWh METER MECHANIC).
Penulis menyadari bahwa penulisan skripsi ini tidak lepas dari bantuan dan dukungan dari berbagai pihak. Untuk itu penulis mengucapkan terima kasih kepada:
1. Yesus Kristus dan Bunda Maria atas terang kasihNya kepada penulis.
2. Bapak Ir.Greg.Heliarko, S.J.,S.S.,B.S.T.,M.A.,M.Sc. selaku Dekan Fakultas Teknik.
3. Bapak Martanto, S.T., M.T. selaku dosen pembimbing skripsi, yang telah banyak memberikan pengarahan, petunjuk serta saran selama pengerjaan alat dan skripsi.
4. seluruh staff pengajar yang telah banyak memberikan bimbingan kepada penulis selama menjadi mahasiswa.
5. Bapak Jito dan seluruh karyawan sekretariat Teknik Elektro Fakultas Teknik Universitas Sanata Dharma.
6. Bapak, Ibu dan saudara – saudaraku yang telah banyak mendukung dalam penyelesaian tugas ini, baik dukungan moril maupun dukungan materil yang tidak dapat penulis balas.
7. Gawir, Eko ‘Sugriwa’ dan Iphie ‘Punk’, makasih atas pinjaman printernya. Juga kepada Marsel ‘kriwil’ makasih atas pinjaman downloadernya, serta Kang Jay dan Nanang makasih atas pinjaman jas dan kemejanya.
8. Mbok Sirup, Mas Jalal dan Pak Yarkoni yang telah memberikan tempat bernaung selama saya menuntut ilmu di Jogja.
9. Rahmad yang telah menuntunku dalam pembuatan program.
10.Tutus, Roni, Maya, Ari, Santi, Anci, Rahmad, Yuyun, Guntur, Darmero, Giri, Oscar ‘Kentir’, Agung, Dini, Dian, Oscar ‘Nuggigs’, Boim, Wahyu, Didik dan teman – teman TE’99 yang lainnya. Makasih atas kerjasama dan kesan yang telah kalian berikan selama ini.
11. Teman – teman Kos Antaxena (Iphie, Win, Ari, Deni, Joko, Paul, Ade, Dodon, Semi, BG dll), tetap kompak dan jaga nama kos.
12.Teman – Teman relawan pasca gempa (Gatot, Maestro, Novi, Adi, Nana, Lulut, Aniet, Eko, Adit, Aster, Joko, Ratno, Yayuk, Bintang, Dwi, Beni, Alex, Koko dan Sari). Cah…ayo ke Muntuk lagi.
13.Dian, Oscar, Hari, Sius, Edy M, Frater – frater Anging Mamiri, Polenk, Lamro, Hernomo dan semua teman – teman seperjuangan di rumput hijau 14.Semua teman – teman di Angkringan Pak Tono. Tetap jadikan angkringan
tempat untuk makan sambil sharing.
15.Teman – teman di Tongkrongan Sicilia (Lesis, Comel, Alex M, Tono, Lepri, Adi, jerry, Dolvy dll).
16.Teman – teman seperjuangan dan para orang tua di IKAPMAJAYA dan K2KAMSY (Bapak dan Ibu Cornelis Guling, Bapak dan Ibu Frans Allo Rerung, Rajus, Lesis, Anto Manan, Devi, Merry, Maxen, Morgan, Bona, William, Ferry, Pandin, Edy M, dll).
17.Komunitas Bengkel (Gozonk, Anom, Ragil, Toto, Genji, Putu, Aji, Iphie, sarno, Deni dll).
18.Komunitas GH (Helen, Marlin, Nana, Santi, Yanti, Lini, Priti, Linda, Gondel, Niush, Revo, Moa, Abu, Aris dll). Kapan ya…kita bisa ngumpul dan touring lagi??
19.Semua Teman – teman yang jauh dimata, dekat dihati (Diego, Sapti, Ratna, Retno, Aris ‘Babe’, Niush, Aphiet, Very ‘Kentung’, Indri ‘Unyil’, Cacuk, Fendi, Danu, Ika, Catur, Moa, Enni, Selvy sekeluarga, dll). Walaupun kalian
sudah jauh dan telah menemukan banyak teman baru, tapi masih ingat sama teman lama, Thanks Friend.
20.Berbagai Pihak yang tidak dapat penulis sebutkan satu persatu disini. Pokoke Makasih deh….
Akhirnya penulis mengharapkan agar tugas akhir ini dapat bermanfaat bagi semua pihak yang berkepentingan. Penulis menyadari bahwa skripsi ini masih jauh dari sempurna, namun penulis berharap sekiranya ada sedikit manfaat dari skripsi ini yang bisa diambil bagi pihak – pihak yang memerlukannya.
Terima kasih,
Yogyakarta, 29 Januari 2007
Penulis
DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN ... iv
HALAMAN MOTTO DAN PERSEMBAHAN... v
PERNYATAAN KEASLIAN KARYA ... vi
INTISARI ... vii
ABSTRACT ... viii
KATA PENGANTAR ... ix
DAFTAR ISI... xii
DAFTAR GAMBAR ... xv
DAFTAR TABEL... xvii
BAB I PENDAHULUAN ... 1
1.1 Judul ... 1
1.2 Latar Belakang Masalah... 1
1.3 Perumusan Masalah ... 2
1.4 Batasan Masalah ... 2
1.5 Tujuan Penelitian ... 3
1.6 Manfaat Penelitian ... 3
BAB II DASAR TEORI ... 4
2.1 KWh Meter Mekanik (Analog) ... 4
2.2 Biaya Tarif Listrik Untuk Beban 1300W... 4
2.3 Mikrokontroler AT89S51 ... 5
2.3.1 Organisasi Memori AT89S51 ... 6
2.3.1.1 Memori Program ... 7
2.3.1.2 Memori Data ... 8
2.3.2 Register Fungsi Khusus ... 8
2.3.3 Port Masukan / Keluaran (I/O Port) ... 11
2.4 RTC (Real Time Clock) ... 13
2.5 LCD (Liquid Crystal Display) ... 14
2.6 Sensor Putaran... 17
2.7 Inverter Schmitt Trigger... 21
BAB III PERANCANGAN ALAT... 22
3.1 Perancangan Perangkat Keras ... 22
3.1.1 Rangkaian Sensor... 23
3.1.2 Rangkaian Osilator Mikrokontroler ... 25
3.1.3 Rangkaian Reset... 25
3.1.4 Rangkaian RTC dan Mikrokontroler ... 28
3.1.5 Rangkaian LCD dan Mikrokontroler ... 28
3.2 Perancangan Perangkat Lunak ... 30
3.2.1 Diagram Alir Program Utama... 30
3.2.2 Sub-routine Hitung Biaya Pemakaian... 32
3.2.3 Sub-routine Aritmatika... 33
3.2.4 Diagram Alir Tampil LCD... 37
3.2.4.1 Inisialisasi LCD... 38
3.2.4.2 Menampilkan Karakter Pada LCD... 38
3.2.5 Menjalankan Waktu (Real Time Clock) ... 39
BAB IV HASIL PENGAMATAN DAN PEMBAHASAN... 40
4.1 Pengamatan Pada Rangkaian Sensor ... 40
4.2 Pembahasan Pada Tampilan LCD... 43
BAB V KESIMPULAN DAN SARAN... 46
DAFTAR PUSTAKA ... 47
LAMPIRAN... 48
DAFTAR GAMBAR
Gambar 2.1 Diagram Kotak Mikrokontroler AT89S51... 7
Gambar 2.2 Peta Memori Data... 8
Gambar 2.3 Register Program Status Word... 10
Gambar 2.4 Register AUXR1 ... 11
Gambar 2.5 Pengaksesan RTC Serial ... 13
Gambar 2.6 Pengaksesan RTC Paralel ... 13
Gambar 2.7 Dimensi Layar LCD ... 14
Gambar 2.8 Fototransistor... 18
Gambar 2.9 Laser Pointer ... 18
Gambar 2.10 Rangkaian Laser Pointer ... 19
Gambar 2.11 Piranti Laser Dioda Pada Laser Pointer ... 20
Gambar 2.12 Grafik Hubungan Daya Keluaran Dengan Arus Maju Pada Laser Dioda ... 20
Gambar 2.13 Diagram Blok IC 74LS14 ... 21
Gambar 2.14 Watak Alih IC 74LS14... 21
Gambar 3.1 Diagram Blok Utama ... 22
Gambar 3.2 Rangkaian Sensor... 23
Gambar 3.3 Sinyal Masukan IC74LS14 ... 24
Gambar 3.4 Sinyal Keluaran IC74LS14 ... 24
Gambar 3.5 Rangkaian Osilator... 25
Gambar 3.6 Rangkaian Power on Reset... 26
Gambar 3.7 Antarmuka RTC dengan Mikrokontroler... 28
Gambar 3.8 Antarmuka modul LCD M1632 dengan Mikrokontroler... 29
Gambar 3.9. Diagram Alir Program Utama ... 31
Gambar 3.10 Diagram Alir Sub-routine hitung biaya pemakaian ... 33
Gambar 3.11. Sub-routine Aritmetika... 35
Gambar 3.12. Sub-routine Aritmetika Satuan, Puluhan dan Ratusan ... 35
Gambar 3.13. Diagram Alir Program Tampil LCD ... 37
Gambar 3.14. Diagram Alir Real Time Clock ... 39
Gambar 4.1. Tampilan Awal Pada LCD ... 43
Gambar 4.2. Tampilan setelah 1 KWh... 43
DAFTAR TABEL
Tabel 2.1 Peta Memori SFR... 9
Tabel 2.2. Fungsi Alternative Port 1... 12
Tabel 2.3. Fungsi Alternative Port 3... 12
Tabel 2.4. Penomoran Pin LCD ... 16
Tabel 2.5. Tabel kebenaran IC 74LS14 ... 21
Tabel 4.1. Hasil Pengamatan Pada Rangkaian Sensor... 41
Tabel 4.2. Pengaruh Intensitas Cahaya Laser Pointer Terhadap Penghitungan Jumlah kwh ... 42
Tabel 4.3. Perbandingan Tampilan Pada KWh Meter Mekanik Dengan Tampilan Pada Hasil Rancangan……… ……..44
1.1 Judul
Penampil Jumlah dan Biaya Pemakaian Energi Listrik Pada KWh Meter
Mekanik
1.2 Latar Belakang Masalah
Perkembangan teknologi yang sangat pesat saat ini telah banyak membuat
perubahan – perubahan dalam kehidupan manusia sehari – hari. Bahkan telah
banyak ditemukan berbagai macam fasilitas dan kemudahan yang diberikan oleh
kemajuan teknologi, sehingga hal ini membuat manusia merasa sangat
membutuhkan teknologi dalam kehidupannya. Hal – hal yang sebelumnya susah
dan tidak dapat dilakukan, kini dengan kemajuan teknologi hal tersebut dapat
dilakukan dengan cukup mudah.
Perkembangan teknologi saat ini hampir mencakup di segala bidang,
seperti bidang komunikasi, kesehatan, keamanan, transportasi, bahkan juga olah
raga. Salah satu perkembangan teknologi yang cukup banyak digunakan oleh
manusia dalam kehidupannya sehari – hari ialah peralatan dengan menggunakan
sistem mikrokontroler.
Dalam pembahasan kali ini akan dibahas aplikasi teknologi mikrokontroler
sebagai mesin penghitung, yaitu menghitung jumlah dan biaya pemakaian energi
listrik.
Setiap bulan kita tidak bisa langsung mengetahui berapa besar tagihan
rekening listrik tanpa bertanya / menunggu informasi ke / dari petugas PLN.
Dengan mengaplikasikan mikrokontroler sebagai mesin penghitung, setiap bulan
kita tidak perlu lagi bertanya / menunggu informasi ke / dari petugas PLN. Mesin
penghitung ini akan menampilkan jumlah pemakaian energi listrik (KWh) dan
besar biaya (Rp) yang harus dibayarkan ke PLN pada sebuah LCD.
1.3 Perumusan Masalah
Pokok permasalahan dalam penelitian ini adalah bagaimana menampilkan
jumlah pemakaian energi listrik serta besar biaya atau tagihan setiap bulannya ke
sebuah LCD. Masalahnya bagaimana menghitung jumlah putaran piringan KWh
meter mekanik (analog) kemudian mengalikan jumlah putaran tersebut dengan
biaya tarif listrik perblok dan menampilkan hasil perhitungan ke sebuah LCD.
1.4 Batasan Masalah
Input dari alat ini adalah jumlah putaran piringan pada KWh meter
mekanik. Jumlah putaran piringan akan dideteksi oleh sebuah sensor optis (fototransistor). Sinyal analog dari sensor akan diubah menjadi sinyal digital
(pulsa) menggunakan IC 74LS14 dan selanjutnya sinyal tersebut akan
dimasukkan ke mikrokontroller AT89S51 untuk diproses. Hasil dari pemrosesan
ini akan ditampilkan pada sebuah LCD.
Pengukuran dibatasi untuk kalangan rumah tangga dengan pemakaian
beban daya 1300W dan pada KWh meter dengan 1250 putaran per KWh.
1.5 Tujuan Penelitian
Tujuan penelitian ini adalah untuk membuat suatu alat yang bisa
menampilkan jumlah dan biaya pemakaian energi listrik selama 1 bulan.
1.6 Manfaat Penelitian
Mamfaat dari penelitian ini adalah:
1. Dapat mengetahui jumlah dan biaya pemakaian listrik setiap hari.
2.1 KWh Meter Mekanik (Analog)
Satuan yang digunakan untuk mengukur energi listrik adalah kilowatthour
(KWh). Untuk menghitung energi yang digunakan dalam kilowatthour maka kalikan daya dalam kilowatt (KW) dengan waktu dalam jam (h). Kilowatthour
digunakan untuk mengukur jumlah pemakaian energi listrik yang kemudian
digunakan untuk menetukan harga listrik.
Pada KWh Meter mekanik (analog), sensor yang digunakan adalah sebuah piringan yang disekitar piringan tersebut terdapat suatu lilitan/coil, yaitu coil
tegangan dan coil arus. Apabila arus yang melewati piringan semakin besar maka
fluksmagnetik yang menembus piringan akan semakin banyak dan piringan akan berputar semakin cepat. Piringan tersebut akan dihubungkan dengan register counter yang akan menjumlahkan total akumulasi energi yang telah diukur.
Setiap KWh meter mekanik memiliki jumlah putaran piringan per KWh
yang berbeda. Pada perancangan penampil jumlah dan biaya pemakaian energi
listrik ini, KWh meter mekanik yang digunakan adalah KWh meter mekanik yang
memiliki 1250 putaran per KWh.
2.2 Biaya Tarif Listrik Untuk Beban 1300W
Biaya rekening listrik untuk beban 1300W per November 2006,
perinciannya sebagai berikut:
¾ biaya beban 1300W : Rp 39.130,-
¾ biaya blok I per KWh : Rp 385,- per KWh
¾ biaya blok II per KWh : Rp 445,- per KWh
¾ biaya blok III Per KWh : Rp 495,- per KWh
Biaya blok I adalah biaya pemakaian 20KWh pertama dan biaya blok II
adalah biaya pemakaian 40KWh berikutnya (21KWh sampai 60KWh). Sedangkan
biaya blok III adalah biaya untuk pemakaian di atas 60KWh.
Jika bulan Oktober meteran listrik tercatat sebesar 25804KWh dan
pencatatan bulan November sebesar 26166KWh, maka pemakaian listrik bulan
November adalah
26166KWh – 25804KWh = 362KWh
Perhitungan biaya rekening listrik untuk bulan November adalah sebagai
berikut:
¾ biaya beban 1300W : Rp 39.130,-
¾ biaya blok I
(20KWh x Rp 385,- / KWh) : Rp 7.700,-
¾ biaya blok II
(40KWh x Rp 445,- / KWh) : Rp 17.800,-
¾ biaya blok III
{(362KWh – 60KWh) x Rp 495,- / KWh}
(302KWh x Rp 495,- / KWh) : Rp 149.490,- +
Sehingga total biaya rekening bulan November adalah : Rp 214.120,-
2.3 Mikrokontroler AT89S51
Mikrokontroler AT89S51 adalah mikrokontroler CMOS 8-bit yang
AT89S51 ini dibuat dengan teknologi Atmel memori non-volatile dan sesuai dengan standar industri pinout dan instruksi set MCS-51. AT89S51 yang dipakai memiliki fitur: 4KB In-System Programmable Flash, 128 Bytes RAM, 32 jalur I/O, dua 16-bit timers / counters, Watchdog Timer, 2 data pointer, 5 vektor dua level interupsi, serial port full duplex, osilator on-chip dan clock circuitry. Diagram blok dari mikrokontroler AT89S51 dapat dilihat pada Gambar 2.1.
2.3.1 Organisasi Memori AT89S51
Memori merupakan rangkaian elektronis yang digunakan untuk
menyimpan informasi secara temporer atau permanent. 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. Setiap memori program dan memori data eksternal
Gambar 2.1 Diagram Kotak Mikrokontroler AT89S51.
2.3.1.1 Memori Program
Memori program atau sering disebut dengan flash memory pada mikrokontroler AT89S51 memiliki kapasitas sebesar 4KB yang hanya bisa dibaca
saja. Bila pin EA dihubungkan pada ground, program memori dapat di akses
diakses langsung pada alamat 0000H-0FFFH secara internal dan pada alamat
1000H-FFFFH secara eksternal.
2.3.1.2 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. Peta memori data dapat dilihat pada Gambar 2.2.
Gambar 2.2 Peta Memori Data.
2.3.2 Register Fungsi Khusus (Special Function Register)
Tabel 2.1 Peta Memori SFR B 00000000 ACC 00000000 PSW 00000000 IP XX000000 P3 11111111 IE 0X000000 P2 11111111 SCON 00000000 SBUF XXXXXXXX P1 11111111 TCON 00000000 P0 11111111 AUXR1 XXXXXXX0 TMOD 00000000 TL0 00000000 TL1 00000000 TH0 00000000 TH1 00000000 AUXR XXX00XX0 PCON 0XXX0000 WDTRST XXXXXXXX SP 00000000 DP0L 00000000 DP0H 00000000 DP1L 00000000 DP1H 00000000 0FFH 0F7H 0EFH 0E7H 0DFH 0D7H 0CFH 0C7H 0BFH 0B7H 0AFH 0A7H 87H 8FH 97H 9FH 80H 0F8H 0F0H 0E8H 0E0H 0D8H 0D0H 0C8H 0C0H 0B8H 0B0H 0A8H 88H 90H 98H 0A0H Akumulator
ACC atau akumulator yang menempati lokasi E0H digunakan sebagai
register untuk penyimpanan data sementara, dalam program.
Register B
Register B (lokasi F0) digunakan selama operasi perkalian dan pembagian
Program Status Word (PSW)
Register PSW (lokasi D0H) mengandung informasi status program seperti
terlihat pada Gambar 2.3. Fungsi bit pada PSW sebagai berikut:
CY : carry setelah operasi aritmatika.
AC : auxiliary carry setelah operasi aritmatika. F0 : flag untuk fungsi umum.
RS0, RS1 : untuk memilih bank register.
0V : overflow setelah operasi aritmatika. P : paritas
CY AC FO RS1 RS0 0V __ P
Gambar 2.3 Register Program Status Word.
Stack Pointer
Register Stack Pointer (lokasi 81H) merupakan register dengan panjang 8-bit, digunakan dalam proses simpan dan ambil dari / ke stack.
Data Pointer
Register Data Pointer mengandung 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
DP0L-DP0H dan bila DPS = 1, maka memilih register DPTR DP1L-DP1H.
Register AUXR1 dapat dilihat pada Gambar 2.4.
__ __ __ __ __ __ __ DPS 7 6 5 4 3 2 1 0
Gambar 2.4. Register AUXR1
Kontrol Register
Register-register IP, IE, TMOD, dan TCON berisi bit-bit kontrol dan status
untuk sistem interupsi, pencacah / pewaktu dan serial port . 2.3.3 Port masukan / keluaran (I/O port)
Sama seperti keluarga MCS-51 lainnya 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
pemrograman dan verifikasi flash. Selain sebagai piranti I/O, port 1 juga mempunyai fungsi yang lain seperti terlihat pada Tabel 2.2.
Tabel 2.2 Fungsi Alternative Port 1.
Pin Port Fungsi Alternatif
P1.5 MOSI (digunakan untuk In-System Programming) P1.6 MISO (digunakan untuk In-System Programming) P1.7 SCK (digunakan untuk In-System Programming)
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 bagian 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 2.3.
Tabel 2.3 Fungsi Alternative Port 3.
Pin Port Fungsi Alternatif
P3.0 RXD (masukan port serial) P3.1 TXD (keluaran port serial) P3.2 INT0 (interupsi 0 eksternal) P3.3 INT1 (interupsi 1 eksternal) P3.4 T0 (input eksternal timer 0) P3.5 T1 (input eksternal timer 1)
2.4 RTC ( Real Time Clock )
Merupakan cip yang didesain khusus sebagai pembangkit waktu. Cip ini digunakan pada rangkaian – rangkaian yang membutuhkan data berupa waktu
yang real time, seperti jam dan mainboard komputer. Untuk mendukung kehandalan data waktu yang real time, RTC dilengkapi dengan input tegangan
backup yang dapat berasal dari battery backup. Data waktu yang dihasilkan RTC meliputi : detik, menit, jam, hari, tanggal, bulan dan tahun. Masing – masing data
memiliki alamat yang dapat diakses oleh mikroprosesor ataupun mikrokontroler
secara serial (gambar 2.5) maupun parallel (gambar 2.6) sesuai spesifikasi RTC.
SCL
SDA
Mikrokontroler Serial RTC
SCL = Serial Cloc k SDA = Serial Data
Gambar 2.5 Pengaksesan RTC Serial
ALE
Mikrokontroler Parallel RTC R / W
AD(0-7)
ALE = Address Latc h Enable R/W = Read/Write Input
AD(0-7) = 8-bit Address/Data Bus
2.5 LCD ( Liquid Crystal Display )
LCD (Liquid Crystal Dysplay) merupakan suatu tampilan (display) yang terdiri dari bahan cairan kristal yang dioperasikan dengan menggunakan sistem
dot matrik.
LCD HD44780U dapat menampilkan angka – angka, huruf jepang, abjad,
dan juga simbol – simbol lainnya. Interface LCD HD44780U dengan mikrokontroler ATS89S51 dapat dilakukan dengan system 4 bit maupun 8 bit.
Dimensi LCD HD44780U yang digunakan memiliki ukuran 2 x 16. Hal ini
berarti LCD tersebut memiliki layar tampilan yang terdiri atas 2 baris dan 16
kolom seperti yang ditunjukkan pada gambar 2.7.
Tiap segment
Dimensi Layar LCD 2 x 16 terdiri dari 8 x 5 dot
Gambar 2.7. Dimensi Layar LCD
Dengan demikian total jumlah karakter yang ditampilkan sekaligus dalam
satu layar adalah sebanyak 32 karakter. Dimana setiap karakter terbentuk dari
LCD HD44780U memiliki beberapa bagian sebagai berikut:
Register
HD44780U memiliki dua buah register 8 bit, yaitu IR (Intruction
Register) dan DR (Data Register). IR merupakan register yang hanya dapat ditulis dan berguna untuk menyimpan kode – kode instruksi seperti Display Clear, Cursor Shift, dan juga untuk alamat dari DDRAM (Display Data RAM) ataupun CGRAM (Character Generator RAM). Sedangkan DR merupakan register yang bisa ditulis maupun dibaca dan juga berguna penyimpanan sementara data yang
akan ditulis atau dibaca dari / ke dalam DDRAM ataupun CGRAM.
BF (Busy Flag)
Sewaktu BF (Busy Flag) bernilai “1” maka driver HD44780U akan menjalankan operasi internal sehingga instruksi selanjutnya tidak dapat dijalankan. Maka untuk menjalankan instruksi selanjutnya perlu diperiksa apakah
busy flag tersebut telah bernilai “0”, atau dapat dilakukan dengan memberikan waktu lebih lama dari waktu yang dibutuhkan oleh eksekusi instruksi itu sendiri
diantara instruksi pertama dengan instruksi selanjutnya.
AC (Address Counter)
Fungsi dari AC adalah untuk mengalamati DDRAM dan juga CGRAM.
DDRAM (Display Data RAM)
DDRAM digunakan untuk menyimpan tampilan data yang
direpresentasikan dalam bentuk 8 bit kode karakter. DDRAM memiliki kapasitas
CGROM (Character Generator ROM)
CGROM merupakan ROM (Random Only Memory) berukuran 80 x 8 bit yang mampu membangkitkan bentuk dot matriks berukuran 5 x 8 maupun 5 x 10
dari 8 bit kode karakter.
CGRAM (Character Generator RAM)
CGRAM merupakan RAM (Random Access Memory) berukuran 64 x 8 bit yang memungkinkan untuk memprogram karakter yang diinginkan.
Pin LCD
LCD ini memiliki 14 kaki pin dengan konfigurasi pin seperti yang
ditunjukkan pada table 2.4.
Tabel 2.4. Penomoran Pin LCD
Nomor Pin Simbol
1 Vcc ( +5V )
2 Vee ( 0V )
3 GND ( 0V )
4 RS
5 R / W
6 E 7 DB0 8 DB1 9 DB2 10 DB3 11 DB4 12 DB5 13 DB6 14 DB7
Untuk LCD M1632 jenis Hyundai memiliki 16 pin, dimana pin nomor 15
Deskripsi LCD
DB0 sampai dengan DB7 merupakan jalur data yang dipakai untuk
menyalurkan kode ASCII maupun perintah pengatur kerja LCD tersebut.
RS merupakan Register Select yang dipakai untuk membedakan jenis data yang dikirim ke LCD. Jika RS = 0, maka data yang dikirim adalah perintah untuk
mengatur kerja LCD tersebut. Sebaliknya jika RS = 1, maka data yang dikirim
adalah kode ASCII yang ingin ditampilkan.
R / W merupakan Read / Write. Jika R / W = 0, menandakan akan diadakan pengiriman data ke LCD. Dan jika R / W = 1, menandakan akan
diadakan pengambilan data dari LCD.
E (Enable) merupakan sinyal sinkronisasi. Saat E berubah dari “1” menjadi “0”, maka data di DB0 hingga DB7 akan diterima atau diambil dari atau
oleh LCD.
Untuk menyalakan backlight pada layar LCD maka Anoda dan Katoda
akan dihubungkan pada +5V dan ground. Letak Anoda dan Katoda terpisah dari
pin, namun kadang pada LCD lain sudah ada yang termasuk pada pin.
2.6 Sensor Putaran
Sensor putaran terdiri dari dioda laser dan fototransistor. Fototransistor
Fototransistor adalah sebuah piranti semikonduktor yang peka terhadap
cahaya yang diterima dan mengubah efek cahaya tersebut menjadi sinyal listrik.
Fototransistor termasuk dalam transduser optis. Bahan untuk membuat
dilengkapi dengan lensa kecil (transparan) yang memungkinkan cahaya untuk masuk melalui pembungkus sehingga dapat mengenai persambungan antara basis
dan emitor. Di sini cahaya yang datang menghasilkan electron bebas.
Fototransistor dapat menghasilkan sinyal listrik yang besarnya tergantung pada
jumlah cahaya yang mengenainya. Fototransistor memiliki keluaran berupa arus,
dan arus yang dimamfaatkan pada fototransistor adalah arus basis.
Collector
Emitter Gambar 2.8. Fototransistor Laser Pointer
Laser pointer merupakan peralatan yang sering digunakan sebagai penunjuk objek dalam presentasi. Salah satu jenis laser pointer yang mudah
dijumpai adalah keychain laser pointer seperti ditunjukkan pada gambar 2.9.
Komponen inti dari sebuah laser pointer adalah Laser Dioda. Pada laser pointer, piranti laser diodanya memiliki dua buah semikonduktor di dalamnya LD (laser dioda) dan PD (photodiode). Tegangan yang dibutuhkan untuk mengoperasikan laser pointer ini adalah 4,5 volt. Rangkaian dasar laser pointer
ditunjukkan pada gambar 2.10.
Gambar 2.10. Rangkaian Laser Pointer
Laser dioda yang merupakan common katoda (LDC = Laser Dioda Cathode) akan dibias maju. Laser dioda driver (transistor) akan mengatur besarnya arus yang mengalir pada laser dioda yang didasari pada arus yang dihasilkan photodiode. Photodiode yang merupakan common anoda (PDA =
Photodiode Anode) akan dibias balik. Besarnya arus yang dihasilkan pada
Gambar 2.11. Piranti Laser Dioda Pada Laser Pointer
Pada gambar ditunjukkan bahwa laser diode yang ada pada laser pointer
memiliki 3 pin, yaitu LDC (Laser Diode Chatode), PDA (Photo Diode Anoda) dam COM+ (Common Positive Terminal). Di dalam piranti laser dioda akan ditemukan laser dioda itu sendiri dan sebuah photodiode. Photodiode ini digunakan untuk mengatur arus laser dioda dengan sebuah eksternal loop feedback. Laser dioda ini memiliki typical panjang gelombang 635nm. Daya maksimum pancaran cahaya pada dioda laser adalah 3mW. Tegangan minimum
yang dibutuhkan untuk mengoperasikan laser dioda adalah 2,2 volt dan typical
arus maju pada laser dioda adalah 20mA. Grafik hubungan antara daya keluaran
pancaran laser dengan arus maju pada laser dioda adalah sebagai berikut:
2.7 Inverter Schmitt Triggers 74LS14
Schmitt trigger adalah rangkaian yang digunakan untuk membersihkan
desah, atau membersihkan isyarat yang lambat naik atau lambat turun menjadi
pulsa digital yang cepat naik dan cepat turun.
Salah satu IC Schmitt trigger yang banyak dijumpai di pasar adalah 74LS14. IC 74LS14 merupakan inverter Schmitt trigger yang memiliki 6 buah pin masukan dan 6 buah pin keluaran. Diagram blok IC 74LS14 ditunjukkan pada
gambar 2.13.
Gambar 2.13. Diagram Blok IC 74LS14
Tabel kebenaran inverter Schmitt trigger 74LS14 adalah sebagai berikut: Tabel 2.5. Tabel kebenaran IC 74LS14
INPUT OUTPUT 0 1 1 0 Keterangan: 0 = logika rendah
1 = logika tinggi
Watak alih inverter 74LS14 ditunjukkan pada gambar 2.14.
Dalam penulisan tugas akhir ini, alat penampil jumlah dan biaya
pemakaian listrik pada KWh meter mekanik (analog) meliputi 2 perancangan yaitu perancangan perangkat keras dan perancangan perangkat lunak. Pada bab ini
masing – masing perangkat akan dirancang agar terbentuk sebuah sistem yang
ideal.
3.1 Perancangan Perangkat Keras
Perancangan perangkat keras memiliki 3 bagian utama, yaitu masukan,
pengendali utama dan keluaran seperti yang ditujukkan pada gambar 3.1.
Gambar 3.1. Diagram Blok Utama
Pada bagian masukan terdapat sensor yang akan mendeteksi putaran piringan pada KWh meter makanik (analog). Sebelum masuk ke bagian
pengendali utama, sinyal analog dari sensor akan diubah menjadi sinyal digital oleh IC 74LS14. Bagian masukan yang lain adalah Real Time Clock (RTC). Di sini RTC akan berfungsi sebagai pembangkit waktu. Bagian keluaran terdapat
LCD dengan driver HD44780U yang berfungsi sebagai penampil jumlah dan besar biaya pemakaian energi listrik selama1 bulan.
3.1.1 Rangkaian Sensor
Sensor akan mendeteksi jumlah putaran piringan pada KWh meter. Sensor ini akan menghasilkan pulsa dari piringan KWh meter yang berputar, selanjutnya
pulsa ini akan digunakan sebagai masukan pada mikrokontroler. Rangkaian
sensor terdiri dari laser dioda, Phototransistor dan IC 74LS14.
Gambar 3.2. Rangkaian sensor
Cahaya yang dipancarkan oleh laser pointer mempengaruhi besarnya arus pada phototransistor yang akan menghasilkan suatu perubahan tegangan pada terminal kolektor – emiter. Besarnya arus yang diperlukan fototransistor pada
1 1
I VCE Vcc
R = −
mA V V
3 , 0
2 , 0 5 −
=
Ω =16000 1
R
Nilai R1 tersebut adalah nilai batas maksimum. Jika nilai tersebut
diperkecil misalkan menjadi 10000Ω, maka akan menaikkan arus I1 menjadi:
Ω − =
10000 2 , 0 5
1 V V
I
mA I1 = 0,48
IC 74LS14 dipakai sebagai pembentuk gelombang kotak dengan keluaran
0V dan 5V.
Gambar 3.3. Sinyal masukan IC 74LS14
3.1.2 Rangkaian Osilator Mikrokontroler
Mikrokontroler AT89S51 mempunyai rangkaian osilator internal (on-chip oscilator) yang dapat digunakan sebagai sumber clock bagi CPU (Central Processing Unit). Rangkaian ini membutuhkan sebuah kristal pembangkit
frekuensi dan 2 buah kapasitor eksternal. Frekuensi osilator
(
1t
CLCL)
untukmikrokontroler AT89S51 maksimumnya adalah 33MHz. Pada perancangan
kapasitor yang digunakan (C1 dan C2) berkapasitansi 30pF sesuai dengan data
sheet mikrokontroler AT89S51 yaitu C1 dan C2 sebesar 30pF untuk penggunaan
kristal. Pemilihan kristal 12 MHz dengan alasan untuk mempermudah perhitungan
karena satu siklus mesin mikrokontroler AT89S51 dikerjakan dalam 12 periode
osilator, sehingga diperoleh periode sebesar 1μd.
T=
f
osc12
= 6
10 12
12
× =1μd
Gambar 3.5. Rangkaian osilator
3.1.3 Rangkaian Reset
mesin pada pin 9 (RST). Dalam perancangan ini karena menggunakan osilator
kristal 12 MHz dan 1 siklus mesin dikerjakan dalam 12 periode osilator, maka 1
siklus mesin dikerjakan selama:
T=
f
osc1
= 6
10 12
1
×
Sehingga 1 siklusnya adalah:
1siklus = 12×T = 12× 6
10 12
1
× = 1μd
Dengan demikian, untuk keperluan reset dibutuhkan logika 1 pada pin RST selama 2 x 1μd= 2μd.
Rangkaian power on reset akan ditunjukkan pada gambar 3.6.
Gambar 3.6. Rangkaian Power on reset
Pada perancangan ini, digunakan nilai kapasitor sebesar C = 1 µF dan nilai
kapasitor masih kosong (VC = 0), maka pin RST akan terhubung langsung dengan Vcc (logika 1).
Sejalan dengan pertambahan waktu, kapasitor akan diisi muatannya yang
mengakibatkan VC bertambah besar dan VR akan mengecil. Perlu diperhatikan di
sini untuk power-on reset adalah nilai R dan C, agar VR selama minimal 2 µd (2 siklus mesin) masih dianggap berlogika 1. Dari lembar data sheet AT89S51,
didapat tegangan masukan logika 1 pin RST memiliki batas bawah VIH1(min) =
0,7Vcc. Dengan memasukkan rumus VR, maka didapatkan perhitungan:
Vcc – Vc ≥ 0,7 Vcc
Vcc – Vcc (1−e-t/RC) ≥ 0,7 Vcc
(e-2µ/RC) ≥ 0,7
RC
6
10 2× −
− ≥ ln (0,7)
6
10
2× − ≤ RC (0,357)
RC ≥
357 , 0
10 2× −6
RC ≥ 5,602×10−6
Dengan demikian konstanta waktu RC haruslah lebih besar dari 5,602 µd.
jika toleransi komponen R dan C diperhitungkan, maka pada perancangan
digunakan waktu reset (konstanta waktu RC) yang jauh lebih besar dari syarat, yaitu 100 ms dengan menggunakan kapasitor C = 1 µF dan resistor R = 100 KΩ
(dibutuhkan waktu 100 ms), yang berarti pin RST akan berlogika 0 dan selesailah proses reset.
3.1.4 Rangkaian RTC dan Mikrokontroler
VCC (+5V) C1 1uF U1 AT89S51 9 18 19 20 29 30 31 40 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 GN D PSEN ALE/PROG EA/ VPP VC C P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 U2 DS1287 4 5 6 7 8 9 10 11 1 13 14 15 17 18 19 23 24 12 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 MOT CS AS R/W DS RST IRQ SQW VC C GND VCC (+5V) R1 10K
Gambar 3.7. Antarmuka RTC dengan mikrokontroler
3.1.5 Rangkaian LCD dan Mikrokontroler
Unit penampil menggunakan LCD (Liquid Crystal Display). Modul LCD M1632 adalah LCD dengan display 16 x 2 baris dan driver HD44780. Modul LCD M1632 dapat diakses secara 4 bit maupun 8 bit interface. Dengan adanya sistem 4 bit interface maka selain mereduksi jumlah port yang digunakan juga mempermudah sistem wiring pada PCB.
1. Pengiriman Instruksi Register
2. Pembacaan Address Counter dan Busy Flag 3. Pengiriman Data Register
4. Pembacaan Data Register
Built In Routine untuk LCD M1632 hanya dapat bekerja pada DST-51 bila diletakkan pada Flash PEROM AT89S51 dan tidak dapat didownload ke memori eksternal, sehingga untuk mengaksesnya cukup memanggil alamat dari Built In Routine yang sudah berada pada Flash PEROM AT89S51 dalam DST-51. Hal ini disebabkan karena akses LCD menggunakan jalur data bus dan modul M1632 ini
mempunyai sistem bus MCS51 (intel). Fungsi seperti ini hanya dapat dikerjakan oleh program yang sudah berada pada Flash PEROM AT89S51.
3.2 Perancangan Perangkat Lunak
3.2.1 Diagram Alir Program Utama
Program utama merupakan bagian yang dikerjakan saat mikrokontroler
dicatu daya atau saat mikrokontroler direset. Program utama dimulai dengan proses inisialasi LCD, inisialisasi RTC, dan inisialisasi alamat data. Setelah proses inisialisasi selesai, pada LCD akan ditampilkan biaya beban untuk listrik rumah tangga 1300W sebagai total biaya awal. Langkah selanjutnya yaitu
menghitung banyaknya putaran piringan KWh meter mekanik yang mana besar
pemakaian energi listrik akan bertambah 1 KWh untuk setiap 1250 putaran. Nilai
dari banyaknya pemakaian energi listrik akan ditampilkan ke LCD untuk setiap
perubahannya. Setelah menerima data besar pemakaian energi listrik, selanjutnya
program akan menghitung besar biaya pemakaian energi listrik dan menampilkan ke LCD. Langkah terakhir adalah menanyakan waktu. Jika waktu sudah 1 bulan,
maka program akan menyimpan data jumlah dan besar biaya pemakaian energi
listrik bulan tersebut dan memulai perhitungan baru untuk 1 bulan berikutnya
(reset program). Diagram alir program utama alat penampil jumlah dan biaya pemakaian energi listrik pada KWh meter mekanik (analog) ditunjukkan pada
MULAI
INISIALISASI ALAMAT DATA, LCD, RTC
TAMPILKAN TOTAL BIAYA AWAL (BIAYA BEBAN)
COUNTER + 1
KWh + 1
RESET P3.4 = 1
COUNTER = 1250
1BULAN TAMPILKAN JUMLAH
KWh KE LCD
TAMPILKAN TOTAL BIAYA KE LCD Y
T
Y
T
Y T
P3.4 = 0 T
Y
SIMPAN DATA HITUNG BIAYA
PEMAKAIAN
3.2.2 Sub-routine Hitung Biaya Pemakaian
Proses ini akan diawali dengan menentukan jumlah KWh sekarang
termasuk dalam blok 1, 2, atau 3. Jumlah KWh akan dikurangkan 21, dimana nilai
21 ini adalah nilai awal untuk blok 2. Jika hasil pengurangan bernilai negatif
(cy=1), berarti jumlah KWh masih berada dalam perhitungan blok 1 (KWh<21).
Jika hasil pengurangan bernilai positif (cy=0), berarti jumlah KWh tidak berada
dalam perhitungan blok 1 tapi mungkin berada dalam perhitungan blok 2 atau
blok 3. Untuk memastikan hal itu maka proses berikutnya adalah mengurangkan
jumlah KWh dengan 61, dimana nilai 61 ini adalah nilai awal untuk blok 3. Jika
hasil pengurangan bernilai negatif (cy=1), berarti jumlah KWh berada dalam
perhitungan blok 2 (KWh<61). Jika hasil pengurangan bernilai positif (cy=0),
berarti jumlah KWh tidak berada dalam perhitungan blok 2 tapi berada dalam
perhitungan blok 3. Setelah mengetahui jumlah KWh termasuk dalam blok 1, 2,
atau 3, maka proses berikutnya adalah melakukan proses aritmatika untuk
menghitung biaya pemakaian listrik sesuai dengan jumlah KWh yang terpakai.
Berikut adalah potongan program untuk sub-routine hitung biaya pemakaian dan diagram alir sub-routine hitung biaya pemakaian:
biaya:
mov a,kwh ; ambil data jumlah kwh subb a,#21 ; data jumlah kwh dikurang 21
jnb cy,hitblok2 ; lompat ke ‘hitblok2’ jika hasil pengurang bernilai positif (cy = 0), lanjutkan program jika cy = 1 mov dptr,#blok1 ; ambil data harga blok 1
lcall aritma ; hitung biaya ljmp balik
hitblok2:
mov a,kwh ; ambil data jumlah kwh subb a,#61 ; data jumlah kwh dikurang 61
positif (cy = 0), lanjutkan program jika cy = 1
mov dptr,#blok2 ; ambil data harga blok 2 lcall aritma ; hitung biaya
ljmp balik hitblok3:
mov a,kwh ; ambil data jumlah kwh mov dptr,#blok3 ; ambil data harga blok 3 lcall aritma ; hitung biaya
balik:
lcall ubah_ascii1 ; ubah bcd dan ascii untuk tampilan biaya total ret
mulai
Isi Alamat DPTR DPTR = Blok 1
KWh < 21
Panggil Sub-routine Proses Aritmatika (menghitung Biaya)
selesai
Isi Alamat DPTR DPTR = Blok 2
Isi Alamat DPTR DPTR = Blok 3 Ambil Data
Variabel KWh
KWh < 61
Panggil Sub-routine Proses Aritmatika (menghitung Biaya)
Panggil Sub-routine Proses Aritmatika (menghitung Biaya)
T
Y Y
T
Gambar 3.10. Diagram Alir Sub-routine hitung biaya pemakaian
3.2.3 Sub-routine Aritmetika
Proses aritmatika diawali dengan pengisian register 0 (R0) dengan data 3
desimal, maksudnya karena ada 3 data pada harga blok yang akan diambil.
Masing – masing data itu adalah data satuan, data puluhan, dan data ratusan.
Sebelumnya perlu diketahui bahwa data – data baik pada harga blok maupun pada
jika hasilnya lebih dari 1 digit decimal (menghasilkan puluhan), maka data
puluhan dari hasil penjumlahan akan ditambahkan ke data berikutnya. Saat R0 =
3, maka akan dilakukan penjumlahan data satuan antara harga blok dan biaya total
(saat kwh = 0, biaya total = biaya beban). Selanjutnya DPTR akan diisi dengan
data puluhan harga blok dan isi R0 dikurang 1 (R0 = 2), maka data puluhan antara
harga blok dan biaya total akan dijumlahkan. Saat R0 = 1 dan DPTR berisi data
ratusan harga blok, maka data ratusan antara harga blok dan biaya total akan
dijumlahkan.
Berikut adalah potongan program untuk sub-routine aritmatika dan
diagram alir sub-routine aritmatika:
aritma:
mov r0,#3 ; isi R0 untuk proses pengambilan data ulang:
clr a
movc a,@a+dptr ; ambil data di DPTR
cjne r0,#3,puluhan1 ; R0=3? Jika YA ke proses berikutnya ; Jika TIDAK lompat ke ‘puluhan1’ lcall satuan
ljmp balik1 puluhan1:
cjne r0,#2,ratusan1 ; R0=2? Jika YA ke proses berikutnya ; Jika TIDAK lompat ke ‘ratusan1’ lcall puluhan
ljmp balik1 ratusan1:
lcall ratusan balik1:
inc dptr ; isi DPTR dengan data berikutnya (DPTR + 1) djnz r0,ulang ; R0=0? Jika YA ke proses berikutnya
Gambar 3.11. Sub-routine Aritmetika
Kemudian pada sub-routine satuan, puluhan dan ratusan. Berikut adalah potongan program dan diagram alirnya:
satuan:
add a,r7 ; jumlahkan data satuan lcall cantik2
jnb cy,ambil1
mov r7,50h ; simpan data satuan ret
puluhan:
add a,r6 ; jumlahkan data puluhan lcall cantik2
jnb cy,ambil2
mov r6,50h ; simpan data puluhan ret
ratusan:
add a,r5 ; jumlahkan data ratusan lcall cantik2
jnb cy,ambil3
mov r5,50h ; simpan data ratusan ret
Jika cy = 1 berarti pengurangan menghasilkan carry. Dengan perintah JNB, maka
lompat bila tidak bit (cy = 0). Pada sub-routine ini, alamat 50h digunakan sebagai alamat penyimpan hasil sementara. Sebagai contoh untuk menghitung harga 1
KWh, maka biaya beban akan ditambah harga blok 1 yang prosesnya sebagai
berikut:
R7 = 0 (data satuan biaya beban), Acc = 5 (data satuan harga blok 1).
R7 + Acc = 5 (hasil disimpan di Acc kemudian simpan sementara di 50h).
Subb a,#10 (Acc – 10 desimal; hexa = 0A).
Hasil pengurangan menghasilkan cy = 1, maka R7 = 50h (data di 50h dipindahkan
ke R7 sebagai data satuan).
R6 = 3, Acc = 8
Subb a,#10 (hasil 1 simpan di Acc, kemudian disimpan di 50h), karena cy = 0
maka ambil data ratusan (R5 = 1) kemudian jumlahkan dengan hasil (1) dan
kemudian dengan data ratusan harga blok 1 (3), hasil penjumlahan disimpan di
Acc.
Subb a,#10 (5 – 10), menghasilkan cy =1; maka data di 50h (1) akan disimpan di
R6 sebagai data satuan dan hasil pengurangan akan disimpan di R5 sebagai data
ratusan yang mana data tersebut dipindahkan dulu dari Acc ke 50h, karena Acc
akan digunakan untuk proses berikutnya (hitung data ribuan sampai ratusan ribu).
3.2.4 Diagram Alir Tampil LCD
3.2.4.1Inisialisasi LCD
Proses inisialisasi LCD merupakan proses pengiriman data ke LCD yang mana di dalam data tersebut diatur sedemikian rupa agar LCD dapat bekerja
sesuai keinginan. Adapun program untuk inisialisasi LCD adalah sebagai berikut:
init_lcd:
mov a,#3fh ; set LCD untuk 8 bit, 2 baris, 5 x 10 dot lcall tulis_perintah
lcall tulis_perintah
mov a,#0dh ; display ON, cursor OFF, blinking ON lcall tulis_perintah
mov a,#06h ; set mode (pergeseran_bertambah atau kekanan) lcall tulis_perintah
mov a,#01h ; clear display lcall tulis_perintah
mov a,#0ch ; display ON, cursor OFF, blinking OFF lcall tulis_perintah
ret
3.2.4.2Menampilkan Karakter pada LCD
Pada proses menampilkan karakter pada LCD, yang perlu diingat adalah
membuat pin R/W dan RS berlogika ‘0’ untuk perintah pengiriman instruksi, dan
membuat pin R/W berlogika ‘0’ dan pin RS berlogika ‘1’ untuk perintah
3.2.5 Menjalankan Waktu (Real Time Clock)
MULAI
NAIKKAN DETIK
NOLKAN DETIK MENIT = MENIT + 1
NOLKAN MENIT JAM = JAM + 1
NOLKAN JAM HARI = HARI + 1 DETIK = 60 ?
MENIT = 60 ?
JAM = 24 ?
HARI = 30 ?
RETURN
T Y
T Y
Y T
T
Y
BAB IV
HASIL PENGAMATAN DAN PEMBAHASAN
Pada bab ini akan dibuktikan hasil perancangan dengan menampilkan
beberapa hasil percobaan beserta analisanya.
4.1 Pengamatan Pada Rangkaian Sensor
Rangkaian sensor terdiri atas laser pointer, fototransistor dan IC 74LS14. Saat fototransistor aktif karena pengaruh intensitas cahaya yang dipancarkan oleh
laser pointer, maka IC 74LS14 akan mendapat input logika ‘0’ sehingga output
berupa logika ‘1’. Dan sebaliknya, jika fototransistor tidak aktif, maka IC 74LS14
akan mendapat input logika ‘1’ sehingga output berupa logika ‘0’.
Berikut adalah tabel hasil pengukuran dan pengamatan pada rangkaian
sensor, dimana Vin pada IC 74LS14 sama dengan Vout pada rangkaian fototransistor dan Vout dari IC 74LS14 adalah input bagi mikrokontroller
AT89S51. Pengukuran menggunakan alat ukur berupa multimeter digital.
Tabel 4.1. Hasil Pengamatan Pada Rangkaian Sensor
Kondisi Pada Fototransistor
NO Tegangan Pada
IC 74LS14
Kena Cahaya Tidak Kena Cahaya
Vin 0,46 4,6
1
Vout 4,5 0,18
Vin 0,55 4,58
2
Vout 4,5 0,18
Vin 0.9 4,48
3
Vout 4,47 0,18
Vin 1,1 4,51
4
Vout 4,9 0,18
Vin 3,2 4,49
5
Vout 0,18 0,18
Vin 4,38 4,53
6
Vout 0,18 0,18
Dari data di atas dapat diketahui bahwa fototrasistor akan aktif (ON) tergantung dari intensitas cahaya yang dipancarkan oleh laser pointer. Pada pengukuran pertama sampai ke empat, intensitas cahaya yang dihasilkan oleh
laser pointer masih bisa mengaktifkan fototransistor. Akan tetapi pada pengukuran ke lima dan ke enam, intensitas cahaya yang dihasilkan oleh
fototransistor sudah tidak dapat mengaktifkan fototransistor. Melemahnya
intensitas cahaya yang dipancarkan oleh laser pointer disebabkan oleh
menurunnya arus yang dihasilkan oleh battery pada laser pointer. Hal ini sangat menghambat dalam proses penghitungan jumlah putaran piringan pada KWh
hasil penghitungan jumlah putaran piringan pada KWh meter mekanik dapat
dilihat pada tabel dibawah ini:
Tabel 4.2. Pengaruh Intensitas Cahaya Laser Pointer Terhadap Penghitungan Jumlah kwh
Tampilan Pada Alat Tampilan Pada KWh
Meter Mekanik Jumlah KWh Total Harga (Rp)
27251,3 0 39130
27252,7 1 39515
27253,5 1 39515
27254,2 2 39900
27254,3 2 39900
27255,0 2 39900
27255,5 3 40285
Dari tabel di atas, jelas terlihat adanya perbedaan penghitungan jumlah
pemakaian energi listrik antara KWh meter mekanik dengan alat. Pada KWh
meter mekanik jumlah pemakaian energi listrik telah terhitung sebanyak 4,2
KWh. Sedangkan pada tampilan LCD tertera jumlah pemakaian sebesar 3 KWh.
Hasil ini memiliki galat (true error) yang sangat besar, yaitu:
[
4,2−3]
=1,2KWh= Ε
Dengan persen galat sebesar
% 57 , 28 % 100 2 , 4
2 ,
1 × =
=
e
Untuk mengatasinya, maka sumber tegangan battery diganti dengan sebuah
sumber tegangan yang menghasilkan tegangan DC 4,5V dan arus sebesar 50mA
sehingga intensitas cahaya laser pointer tidak akan melemah. Hasil dari pengamatan dengan menggunakan sumber tegangan DC 4,5V dan arus sebesar
4.2 Pengamatan Pada Tampilan LCD
Pada counter KWh meter Mekanik ada 6 digit angka yang ditampilkan, dimana digit angka terakhir (paling kanan) adalah nilai sepersepuluh dari nilai 1 KWh. Jadi nilai ini akan bertambah 1 setiap 125 putaran piringan pada KWh
meter mekanik.
Penampil jumlah dan biaya pemakaian energi listrik ini bekerja dengan
catu daya +5V. Saat alat dinyalakan, maka pada LCD akan ditampilkan set awal
bulan (januari) dan jumlah pemakaian energi listrik (000 KWh) pada baris
pertama serta set biaya awal (biaya beban) pada baris kedua.
Januari :000KWh Biaya:Rp.039130
Gambar 4.1. Tampilan Awal Pada LCD
Selanjutnya sensor akan mulai menghitung jumlah putaran piringan KWh meter
mekanik. Ketika sensor telah mencacah piringan sebanyak 1250 kali, maka nilai
KWh pada tampilan LCD akan bertambah 1. Begitu juga pada tampilan biaya ,
akan bertambah sesuai harga blok nilai KWh ( 1 KWh termasuk blok I; harga blok
I = Rp 385,-).
Januari :001KWh Biaya:Rp.039515
Gambar 4.2. Tampilan setelah 1 KWh
Berikut adalah tabel hasil pengamatan antara tampilan pada KWh meter
Tabel 4.3. Perbandingan Tampilan Pada KWh Meter Mekanik Dengan Tampilan Pada Hasil Rancangan
Tampilan Pada Alat Tampilan Pada KWh
Meter Mekanik Jumlah KWh Total Harga (Rp)
27260,7 0 39130
27261,8 1 39515
27263,4 2 39900
27264,3 3 40285
27264,9 4 40678
27266,5 5 41055
27267,3 6 41440
27268,0 7 41825
27268,9 8 42210
27269,8 9 42595
27271,0 10 42980
27271,8 11 43365
27272,7 12 43750
27273,9 13 44135
27275,0 14 44520
27276,1 15 44905
27277,2 16 45290
27278,3 17 45675
27279,1 18 46060
27279,7 19 46445
27280,9 20 46830
27282,2 21 47275
27283,5 22 47720
27283,9 23 48165
Dari tabel di atas, dapat hitung jumlah pemakaian berdasarkan tampilan
pada KWh meter mekanik sebesar 27283,9 – 27260,7 = 23,2 KWh. Dengan hasil
penghitungan oleh alat sebesar 23 KWh, maka persen galat sebesar
% 86 , 0 % 100 2 , 23
2 ,
0 × =
=
e
Data pada tabel telah membuktikan bahwa alat telah bekerja sesuai rancangan,
mekanik.sebagai bukti pada pengamatan ke-12, pada tampilan LCD tertera 12
KWh dan pada KWh meter mekanik tertera 27272,7 yang berarti jumlah
pemakaian sebanyak 27272,7 - 27260,7 = 12 KWh. Bukti lain bisa dilihat pada
pengamatan ke-19, dimana tampilan LCD tertera 19 KWh dan pada KWh meter
mekanik tertera 27279,7 yang berarti jumlah pemakaian sebanyak
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari hasil pengamatan dan pembahasan pada bagian sebelumnya dapat
diambil beberapa kesimpulan, antara lain:
1. Alat penampil jumlah dan biaya pemakaian energi listrik yang telah dirancang
dan diimplementasikan terbukti telah mampu menghitung jumlah dan biaya
pemakaian energi listrik berdasarkan jumlah putaran piringan pada KWh
meter mekanik dan menampilkan ke LCD.
2. Alat ini belum mampu menyimpan data yang telah dihitung dan juga belum
mampu melakukan perhitungan ulang setelah 1 bulan.
5.2 Saran
Alat Penampil jumlah dan biaya pemakaian energi listrik yang telah dibuat
masih jauh dari sempurna, karena itu penulis mencoba untuk memberikan saran -
saran bagi pengembangan lebih lanjut agar dapat menjadi lebih baik, yaitu:
1. Untuk menghindari terputusnya catu daya secara tiba-tiba (listrik padam)
maka akan lebih baik apabila dilengkapi dengan catu daya cadangan di
dalamnya, yang dapat berupa battery recharged.
2. Begitu juga pada laser pointer sebaiknya memakai sumber tegangan DC 4,5V
dengan arus 50mA agar intensitas cahaya yang dipancarkan tidak berkurang
(meredup).
DAFTAR PUSTAKA
Eko Putra, Agfianto, 2002, Belajar Mikrokontroler AT89C51/52/55, Penerbit Gava Media, Yogyakarta
______, HD44780U, (Dot Matrix Liquid Crystal Display Controller/Driver), HITACHI, Data Sheet
http://www.atmel.com
http://www.delta-electronic.com
http://www.dalsemi.com
http://www.onsemi.com
______, Keychain Laser Driver Circuit Data Sheet
______, LPT85A Phototransistor Data Sheet
LAMPIRAN
;# Jurusan Teknik Elektro #
;# Fakultas Teknik #
;# Universitas Sanata Dharma #
;################################################################
kwh equ 40h del1 equ 6ah del2 equ 6bh bulan equ 49h rs bit p2.5 rw bit p2.6 e bit p2.7
org 0
clr rw
lcall delay
lcall delay
lcall init_lcd
mov bulan,#01h
setb p3.4
mov 55h,#01001011b
mov 56h,#01010111b
mov 57h,#01101000b
reset:
mov r2,#0
mov r3,#3
mov r4,#9
mov r5,#1
mov r6,#3
mov r7,#0
mov 60h,r2
mov 61h,r3
mov 62h,r4
mov 63h,r5
mov 64h,r6
mov 65h,r7
lcall ubah_ascii1
lcall ubahbcd&ascii
lcall tampil_LCD
mov dptr,#0
inc dptr
mov a,dph
cjne a,#04h,cek
mov a,dpl
cjne a,#0e2h,cek
lcall hit_kwh
mov dptr,#0
cek:
jnb p3.4,$
ajmp loop
;##################################################
;# Perhitungan KWH & Biaya total #
;################################################## hit_kwh:
inc kwh
lcall ubahbcd&ascii
lcall biaya
lcall tampil_LCD
ret biaya:
mov a,kwh
subb a,#21
jnb cy,hitblok2
mov dptr,#blok1
lcall aritma
ljmp balik
hitblok2:
mov a,kwh
subb a,#61
jnb cy,hitblok3
mov dptr,#blok2
lcall aritma
ljmp balik
hitblok3:
mov a,kwh
mov dptr,#blok3
lcall aritma
balik:
lcall ubah_ascii1
cjne r0,#3,puluhan1
lcall satuan
ljmp balik1
puluhan1:
cjne r0,#2,ratusan1
lcall puluhan
ljmp balik1
ratusan1:
lcall ratusan
balik1:
inc dptr
djnz r0,ulang
ret satuan:
add a,r7
lcall cantik2
jnb cy,ambil1
mov r7,50h
ret puluhan:
add a,r6
lcall cantik2
jnb cy,ambil2
mov r6,50h
ret ratusan:
add a,r5
lcall cantik2
jnb cy,ambil3
mov r5,50h
ret ambil1:
mov r7,a
mov a,r6
lcall cantik1
jnb cy,ambil2
mov r6,50h
ljmp abis3
ambil2:
mov r6,a
mov r5,a
mov a,r4
lcall cantik1
jnb cy,ambil4
mov r4,50h
ljmp abis3
ambil4:
mov r4,a
mov a,r3
lcall cantik1
jnb cy,ambil5
mov r3,50h
ljmp abis3
ambil5:
mov r3,a
mov a,r2
lcall cantik1
jnb cy,ambil6
mov r2,50h
ljmp abis3
ambil6:
mov r2,a
abis3:
ret cantik1:
add a,#1
cantik2:
mov 50h,a
subb a,#10
ret
;################################################## ;# ubah bcd dan ascii untuk tampilan kwh # ;################################################## ubahbcd&ascii:
mov r0,kwh
mov a,r0
mov b,#10
div ab
mov 54h,b
mov b,#10
mov a,@r1
add a,#30h
mov @r1,a
dec r1
djnz r0,asi
ret
;################################################## ;# ubah bcd dan ascii untuk tampilan biaya total # ;################################################## ubah_ascii1:
mov 60h,r2
mov 61h,r3
mov 62h,r4
mov 63h,r5
mov 64h,r6
mov 65h,r7
mov r1,#65h
mov r0,#6
lagi:
mov a,@r1
add a,#30h
mov @r1,a
dec r1
djnz r0,lagi
ret
;##################################################
; inisialisasi LCD #
;################################################## init_lcd:
mov a,#3fh
lcall tulis_perintah
lcall tulis_perintah
mov a,#0dh
lcall tulis_perintah
mov a,#06h
lcall tulis_perintah
mov a,#01h
lcall tulis_perintah
mov a,#0ch
lcall tulis_perintah
setb e
mov p1,a
tulis:
clr e
setb e
lcall delay
mov p1,#0ffh
ret
;##################################################
;# tulis data ascii lcd #
;################################################## tulis_data:
setb rs
setb e
mov p1,a
ajmp tulis
delay:
mov del1,#5
delay1:
mov del2,#0
djnz del2,$
djnz del1,delay1
ret tampil_LCD:
mov a,#80h
lcall tulis_perintah
mov r1,#52h
mov a,bulan
cjne a,#01,feb
mov dptr,#jans
lcall ambil_data
ljmp back
feb:
cjne a,#02,mar
mov dptr,#febs
lcall ambil_data
ljmp back
mar:
cjne a,#03,apr
mov dptr,#mars
ljmp back mei:
cjne a,#05,jun
mov dptr,#meis
lcall ambil_data
ljmp back
jun:
cjne a,#06,jul
mov dptr,#juns
lcall ambil_data
ljmp back
jul:
mov dptr,#juls
lcall ambil_data
back:
mov a,#0c0h
lcall tulis_perintah
mov r1,#60h
mov dptr,#biayas
lcall ambil_data
ret ambil_data:
mov r0,#9
ulang1:
clr a
movc a,@a+dptr
lcall tulis_data
inc dptr
djnz r0,ulang1
mov r0,#6
ulang2:
mov a,@r1
lcall tulis_data
inc r1
djnz r0,ulang2
ret
blok1:
db 05h,08h,03h
blok2:
db 'Febuari :' mars:
db 'Maret :' aprs:
db 'April :' meis:
db 'Mei :' juns:
db 'Juni :' juls:
db 'Juli :' biayas:
1
• Three-level Program Memory Lock
• 128 x 8-bit Internal RAM
• 32 Programmable I/O Lines
• Two 16-bit Timer/Counters
• Six Interrupt Sources
• Full Duplex UART Serial Channel
• Low-power Idle and Power-down Modes
• Interrupt Recovery from Power-down Mode
• Watchdog Timer
• Dual Data Pointer
• Power-off Flag
• Fast Programming Time
• Flexible ISP Programming (Byte and Page Mode)
Description
The AT89S51 is a low-power, high-performance CMOS 8-bit microcontroller with 4K bytes of in-system programmable Flash memory. The device is manufactured using Atmel’s high-density nonvolatile memory technology and is compatible with the indus-try-standard 80C51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory pro-grammer. By combining a versatile 8-bit CPU with in-system programmable Flash on a monolithic chip, the Atmel AT89S51 is a powerful microcontroller which provides a highly-flexible and cost-effective solution to many embedded control applications. The AT89S51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, Watchdog timer, two data pointers, two 16-bit timer/counters, a five-vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89S51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power-down mode saves the RAM con-tents but freezes the oscillator, disabling all other chip functions until the next external interrupt or hardware reset.
8-bit
Microcontroller
with 4K Bytes
In-System
Programmable
Flash
AT89S51
2
AT89S51
2487A–10/01 TQFP 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 P1.3 P1.4 (MOSI) P1.5 (MISO) P1.6 (SCK) P1.7 RST (RXD) P3.0 (TXD) P3.1 (INT0) P3.2 (INT1) P3.3 (T0) P3.4 (T1) P3.5 (WR) P3.6 (RD) P3.7 XTAL2 XTAL1 GND P0.2 (AD2) P0.3 (AD3) P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) EA/VPP ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4 (A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P2.0 (A8) 1 2 3 4 5 6 7 8 9 10 11 33 32 31 30 29 28 27 26 25 24 23 44 43 42 41 40 39 38 37 36 35 3412 13 14 15 16 17 18 19 20 21 22 (MOSI) P1.5 (MISO) P1.6 (SCK) P1.7 RST (RXD) P3.0 NC (TXD) P3.1 (INT0) P3.2 (INT1) P3.3 (T0) P3.4 (T1) P3.5 P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) EA/VPP NC ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P1.4 P1.3 P1.2 P1.1 P1.0 NC VCC P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) P0.3 (AD3)
(WR) P3.6 (RD) P3.7
XTAL2 XTAL1 GND GND
(A8) P2.0 (A9) P2.1 (A10) P2.2 (A11) P2.3 (A12) P2.4
7 8 9 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 31 30 29 (MOSI) P1.5 (MISO) P1.6 (SCK) P1.7 RST (RXD) P3.0 NC (TXD) P3.1 (INT0) P3.2 (INT1) P3.3 (T0) P3.4 (T1) P3.5 P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) EA/VPP NC ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) 6 5 4 3 2 1 44 43 42 41 40
18 19 20 21 22 23 24 25 26 27 28
(WR) P3.6 (RD) P3.7 XTAL2 XTAL1 GND
NC
3
2487A–10/01
PORT 2 DRIVERS
PORT 2 LATCH
P2.0 - P2.7
FLASH PORT 0
LATCH RAM
PROGRAM ADDRESS REGISTER
BUFFER
PC INCREMENTER
PROGRAM COUNTER
DUAL DPTR INSTRUCTION
REGISTER B
REGISTER
INTERRUPT, SERIAL PORT, AND TIMER BLOCKS
STACK POINTER ACC
TMP2 TMP1
ALU
PSW
TIMING AND CONTROL
PORT 1 DRIVERS
P1.0 - P1.7 PORT 3
LATCH
PORT 3 DRIVERS
P3.0 - P3.7 OSC
GND VCC
PSEN
ALE/PROG EA / VPP
RST
RAM ADDR. REGISTER
PORT 0 DRIVERS P0.0 - P0.7
PORT 1 LATCH WATCH