tugas akhir sample

117
PENGENDALI PERALATAN ELEKTRONIK BERBASIS MIKROKONTROLER AT89C51 SKRIPSI Untuk memenuhi persyaratan mencapai derajat Sarjana S-1 Program Studi S1 Teknik Elektro Jurusan Teknik Elektro Oleh: Rina Ratna Utami 5350402558 Kepada JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI SEMARANG 2006

Upload: aryv6

Post on 27-Jun-2015

715 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Tugas Akhir Sample

PENGENDALI PERALATAN ELEKTRONIK BERBASIS

MIKROKONTROLER AT89C51

SKRIPSI

Untuk memenuhi persyaratan mencapai derajat Sarjana S-1

Program Studi S1 Teknik Elektro

Jurusan Teknik Elektro

Oleh:

Rina Ratna Utami

5350402558

Kepada

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS NEGERI SEMARANG

2006

Page 2: Tugas Akhir Sample

ii

ii

ABSTRAK

Rina Ratna Utami. 2006. Pengendali Peralatan Elektronik BerbasisMikrokontroler AT89C51. Skripsi. Jurusan Teknik Elektro S1,Fakultas Teknik, Universitas Negeri Semarang. Pembimbing:Ir. Priyatmadi, M.T.

Kata Kunci : Mikrokontroler, Hardware, Software, Assembler, Register, Timer.

Kemudahan dalam mengoperasikan suatu peralatan elektronik merupakankeinginan bagi para konsumen. Jarak dan waktu menjadi salah satu kendala dalampengoperasian sejumlah peralatan elektronik. Untuk itu diperlukan suatuperangkat yang dapat digunakan untuk mengendalikan sejumlah peralatanelektronik dengan mudah. Peralatan elektronik yang dikendalikan adalah kipasangina, lampu, pompa air dan bel listrik.

Pengendalian peralatan elektronik menggunakan mikrokontroler AT89C51sebagai pusat pengendali dan merupakan salah satu perangkat yang dapatmempermudah pekerjaan tersebut. Perngkat ini dirancang dengan menambahkanpiranti pendukung lain seperti keypad untuk memberikan inputan, LCD sebagaitampilan keluaran, solid state relay sebagai piranti penghubung antaramikrokontroler dengan peralatan elektronik bertegangan AC, menggunakansensor untuk mengetahui level air untuk mengatur kerja pompa air dan driveruntuk menyalakan bel.

Semua peralatan elektronik yang akan dikendalikan dihubungkan ke portmikrokontroler. Port 3 untuk keypad, port 0 untuk data LCD, port 2 untukdihubungkan ke peralatan elektronik. Untuk dapat mengendalikan peralatanelektronik perlu dibuat program untuk diisikan ke mikrokontroler AT89C51menggunakan bahasa assembler yang berisi instruksi-instruksi.

Dengan adanya perangkat ini kita dapat mengeset waktu memasukkan datawaktu peralatan on/off secara berurutan kemudian menyimpannya agar perintahtersebut dapat dijalankan. Kita juga dapat menyeting ulang apabila ingin merubahwaktu yang telah terseting sebelumnya. Diharapkan untuk penelitian selanjutnyadapat dibuat agar lebih efektif dan efisien dengan tampilan menu yang beragam.

Page 3: Tugas Akhir Sample

iii

iii

PERNYATAAN

Dengan ini saya menyatakan bahwa dalam skripsi ini tidak terdapat karya

yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu perguruan

tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat

yang pernah ditulis atau diterbitkan orang lain, kecuali yang secara tertulis diacu

dalam naskah ini dan disebutkan dalam daftar pustaka.

Semarang, Oktober 2006

Rina Ratna Utami NIM.5350402558

Page 4: Tugas Akhir Sample

iv

iv

SKRIPSI

PENGENDALI PERALATAN ELEKTRONIK BERBASISMIKROKONTROLER AT89C51

Dipersiapkan dan disusun olehRina Ratna Utami

5350402558Telah dipertahankan di depan Dewan Penguji

Pada Tanggal 11 Oktober 2006

Susunan Dewan Penguji

Pembimbing Utama Anggota Dewan Penguji

Ir. Priyatmadi, M.T Tatyantoro A. S.T, M.TNIP.131792962 NIP. 132232153

Pembimbing Pandamping

Drs. Suryono, M.T.NIP. 131474228

Skripsi ini telah diterima sebagai salah satu persyaratanuntuk memperoleh gelar Sarjana Teknik

Tanggal :

Drs. Djoko Adi Widodo, M.T.NIP.131570064

Pengelola Jurusan Teknik Elektro

Page 5: Tugas Akhir Sample

v

v

MOTTO DAN PERSEMBAHAN

Motto

“Allah tidak membebani seseorang melainkan sesuai dengan kesanggupannya”

“Tawakal, sabar dan syukur adalah kunci kesuksesan”

Persembahan

Skripsi ini aku persembahkan untuk:

1. Ayah dan ibu tercinta sebagai wujud darma bakti Ananda.

2. Kakak tersayang Budi, Endah, Dewi dan adikku Nofi.

3. Teman-temanku yang telah membantu dan mendoakanku.

4. Bapak, ibu kos dan teman-teman Savirly kost.

5. Teman-teman Teknik Elektro angkatan 2002.

Page 6: Tugas Akhir Sample

vi

vi

KATA PENGANTAR

Puji syukur penulis panjatkan ke-hadirat Allah SWT, yang telah memberi

karunia, rahmat, taufik dan hidayah-Nya hingga Penulis dapat menyelesaikan

skripsi dengan judul” PENGENDALI PERALATAN ELEKTRONIK BERBASIS

MIKROKONTROLER AT89C51” Penulis menyadari dengan sepenuh hati

bahwa tersusunnya skripsi ini bukan hanya atas kemampuan dan usaha penulis

semata, namun juga berkat bantuan berbagai pihak, oleh karena itu penulis

mengucapkan terima kasih yang sedalam-dalamnya kepada yang terhormat:

1. Ir. Priyatmadi, M.T, sebagai dosen pembimbing utama yang telah

meluangkan waktu untuk memberikan bimbingan dan pembelajaran

dengan sabar.

2. Drs. Said Sunardiyo, M.T, ketua program studi Teknik Elektro S1 yang

banyak memberikan arahan dan bantuan.

3. Drs. Djoko Adi Widodo, M.T, ketua jurusan Teknik Elektro Fakultas

Teknik Unnes.

4. Dewan penguji yang telah meluangkan waktu untuk menguji dan

memberikan pembelajaran.

5. Semua pihak yang tidak dapat disebutkan satu persatu yang telah

berpartisipasi memberikan bantuan penelitian dan penyusunan skripsi ini.

Semarang, Oktober 2006

Penulis

Page 7: Tugas Akhir Sample

vii

vii

DAFTAR ISI

HALAMAN JUDUL ……………………………………………………………i

INTISARI ……………….…....……………………………………………….....ii

PERNYATAAN ……………………………………………………….……......iii

HALAMAN PENGESAHAN .……………………………………………….....iv

MOTO DAN PERSEMBAHAN ……………………………………………..…v

KATA PENGANTAR ……………………………………………………..…...vi

DAFTAR ISI ………………………………………………………………..…..vii

DAFTAR GAMBAR ………………………………………………….………..x

DAFTAR TABEL ………………………………………………………..……..xi

DAFTAR LAMPIRAN ……………………………………………………...….xii

BAB I PENDAHULUAN ………………………………………………..…..1

1.1 Latar Belakang ………………………………………………..…..1

1.2 Tujuan ………………………………………………………..……2

1.3 Perumusan Masalah …………………………………………..…..2

1.4 Pembatasan Masalah ……………………………………………...2

1.5 Sistematika Skripsi ………………………………………………..3

BAB II LANDASAN TEORI ……………………………………………...….5

2.1 Mikrokontroler AT89C51 ……………………………………..….5

2.1.1 Arsitektur dan Organisasi Mikrokontroler AT89C51 …….....5

2.1.2 Pin-Pin Mikrokontroler AT89C51 ……………………….…7

2.1.3 Struktur Memori …………………………………………....11

Page 8: Tugas Akhir Sample

viii

viii

2.1.4 Register Mikrokontroler AT89C51 …………………..……..13

2.1.5 Pewaktu/Pencacah (Timer/Counter) …………………..……17

2.1.6 Sistem Interupsi ………………………………………..…....21

2.2 Tampilan LCD ………………………………………………..…..23

2.3 Rangkaian Catu Daya ………………………………………...…...25

2.4 Data Input pada Keypad …………………………………………..27

2.5 Solid State Relay ………………………………………….……....28

BAB III METODOLOGI PENELITIAN …………………………………........31

3.1 Perancangan Sistem ……………………………………………....32

3.1.1 Langkah Perancangan Sistem ……………………….……...34

3.1.2 Mekanisme ………………………………………………....38

3.2 Perancangan Hardware …………………………………………….39

3.2.1 Rangkaian Kendali ………………………………….……....39

3.2.2 Alat dan bahan yang digunakan …………………….……....40

3.3 Perancangan Software ………………………………….………....42

3.4 Persiapan Pengoperasian ………………………………………….43

3.5 Pengujian Alat dan pengambilan data ……………………...……...44

BAB IV HASIL PENELITIAN DAN PEMBAHASAN ………………..……...47

4.1 Hasil Penelitian …………………………………………………...47

4.1.1 Hasil Pengukuran Sistem Minimum…………………………47

4.1.2 Hasil Pengukuran Sensor air….……………………………...48

4.1.3 Hasil Pengukuran Catu Daya ………………………………..48

4.1.4 Tampilan LCD ………………………………………………49

Page 9: Tugas Akhir Sample

ix

ix

4.2 Pembahasan ………………………………………………..……...48

4.3 Keterbatasan Dalam Rancangan ………………………………….54

BAB V PENUTUP …………………………………………………………….55

5.1 Kesimpulan …………………………………….…………………55

5.2 Saran ……………………………………..………………………..56

DAFTAR PUSTAKA

LAMPIRAN-LAMPIRAN

Page 10: Tugas Akhir Sample

x

x

DAFTAR GAMBAR

Gambar 1 Blok Diagram Mirokontroler AT89C51 ………………………………6

Gambar 2 Arsitektur Internal Mikrokontroler AT89C51 …………………………6

Gambar 3 Pin-Pin Mikrokontroler AT89C51 …………………………………….8

Gambar 4 Alamat RAM Internal dan Flash PEROM ………………………...…11

Gambar 5 Skema LCD 2x16 Karakter ………………………………………..…23

Gambar 6 Catu Daya ………………………………………………………….....26

Gambar 7 Skema Keypad Matrik 4x3 ………………………………………..….27

Gambar 8 Solid State Relay (SSR) ……………………………………………....28

Gambar 9 Diagram Blok Pengendali Peralatan Elektronik ……………………..32

Gambar 10 Flowchart utama …………………………………………………….35

Gambar 11 Flowchart set waktu ………………………………………………...36

Gambar 12 Flowchart perbandingan waktu ……………………………………..37

Page 11: Tugas Akhir Sample

xi

xi

DAFTAR TABEL

Tabel 1 Deskripsi Pin Mikrokontroler AT89C51 …………………………….…..8

Tabel 2 Alamat Register pada SFR …………………………………………...…17

Tabel 3 Keterangan Register Timer Control ………………………………….....18

Tabel 4 Mode Operasi Timer/Counter …………………………………………..19

Tabel 5 Timer/Counter 0 sebagai Pewaktu ……………………………………...20

Tabel 6 Timer/Counter 0 sebagai Pencacah ……………………………………..20

Tabel 7 Timer/Counter 1 sebagai Pewaktu ……………………………………...21

Tabel 8 Timer/Counter 1 sebagai Pencacah ……………………………………..21

Tabel 9 Register IE – Interrupt Enable pada mikrokontroler AT89C51 ………..22

Tabel 10 Karakteristik IC 78XX ………………………………………………...26

Tabel 11 Jadwal Terprogram …………………………………………………....34

Tabel 12 Spesifikasi Komponen Mikrokontroler AT89C51 ………………..…...40

Tabel 13 Spesifikasi Komponen Solid State Relay (SSR) …………………..…..41

Tabel 14 Spesifikasi Komponen Sensor Air Atas dan Bawah ………………..…41

Tabel 15 Spesifikasi Komponen Driver Bel ……………………………….……41

Tabel 16 Spesifikasi Komponen Catu Daya ……………………………….……42

Tabel 17 Hasil Pengukuran Sistem Minimum ………………………………..…47

Tabel 18 Hasil Pengukuran Sensor Air ………………………………….………48

Tabel 19 Hasil Pengukuran Catu Daya ………………………………………….48

Page 12: Tugas Akhir Sample

xii

xii

DAFTAR LAMPIRAN

1. Gambar Rangkaian lengkap pengendali peralatan elektronik berbasis

mikrokontroler AT89C51.

2. Gambar konstruksi keypad 4x3, hubungan mikrokontroler dengan keypad,

rangkaian bel.

3. Data Sheet Transistor BD135, BD137, BD139.

4. Data Sheet Mikrokontroler AT89C51.

5. Listing Program Pengendali Peralatan Elektronik Berbasis Mikrokontroler

AT89C51.

Page 13: Tugas Akhir Sample

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Teknologi elektronik seperti sekarang ini mengarah ke teknologi

mikrokontroler, yaitu sebuah komponen elektronik yang dapat bekerja sesuai

dengan program yang diisikan ke dalam memorinya seperti layaknya sebuah

komputer yang sangat sederhana. Hal ini memungkinkan sekali untuk

menciptakan suatu alat yang digunakan untuk mengendalikan peralatan

elektronik yang terdapat di sekolahan, rumah, perkantoran, ruko, mal, maupun

apartemen. Dengan menggunakan mikrokontroler sebagai pusat kendali.

Kemajuan teknologi akan mempermudah pekerjaan manusia. Perkembangan

yang dilakukan adalah memadukan hardware dan software.

Untuk mengoperasikan suatu alat dibutuhkan seorang operator.

Andaikata ada dua buah lantai atau bahkan lebih pada sebuah gedung,

tentunya operator akan sibuk naik turun tangga hanya untuk menyalakan dan

mematikan berbagai macam peralatan elektronik sesuai dengan waktu yang

telah ditentukan. Dalam hal ini penulis khususkan pada pengendalian

peralatan elektronik di sekolah karena waktu dan lamanya hidup lebih

terjadwal dengan baik. Seperangkat hardware yang penulis buat akan

memudahkan tugas operator. Mikrokontroler AT89C51 yang banyak terdapat

dipasaran dan relative murah, penulis akan membuat alat pengendali peralatan

elektronik dengan beberapa tambahan hardware yang lain.

Page 14: Tugas Akhir Sample

2

Selain pengendalian secara otomatis seperti yang telah terprogram di

mikrokontroler. Dengan perangkat ini maka pengendalian peralatan elektronik

juga dapat dilakukan melalui tombol keypad yang disediakan. Pengoperasian

perangkat dilakukan dengan memasukkan kode perintah sesuai dengan menu

yang disediakan. penyetingan akan ditampilkan pada LCD.

1.2 Tujuan skripsi

Tujuan dari skripsi ini adalah merancang dan membangun alat

pengendali peralatan elektronik berbasis mikrokontroler AT89C51 yang

terdiri dari hardware dan software. Perangkat ini diharapkan mampu untuk

mengendalikan beberapa peralatan elektronik yang berada di sekolah seperti

lampu, bel listrik, kipas angin, dan pompa air.

1.3 Perumusan Masalah

Dari uraian yang telah dipaparkan, timbul suatu permasalahan

bagaimana menggunakan mikrokontroler AT89C51 sebagai pusat kendali

peralatan elektronik untuk menghidupkan dan mematikan, mengatur waktu

yang diinginkan dengan memanfaatkan timer pada mikrokonrtoler.

Penggunaan keypad untuk memasukkan input yang diinginkan kemudian

menyimpannya pada mikrokontroler dan bisa ditampilkan pada layar LCD.

Bagaimana perancangan software dan hardware yang dibutuhkan serta

komponen-komponennya.

1.4 Pembatasan Masalah

Skripsi ini akan dibatasi permasalahan sebagai berikut agar topik yang

akan dibahas dan dijabarkan lebih fokus dan tidak melebar.

Page 15: Tugas Akhir Sample

3

1. Perangkat mempunyai fungsi utama yaitu mengendalikan empat peralatan

elektronik di sekolah yang telah dihubungkan ke perangkat.

2. Mikrokontroler AT89C51 sebagai pusat pengendali peralatan elektronik.

3. Untuk waktu menyalakan bel sudah tidak bisa diubah lagi

1.5 Sistematika Penulisan

Sistematika yang digunakan dalam penulisan skripsi ini adalah sebagai

berikut:

BAB I PENDAHULUAN

Bab ini menjelaskan mengenai latar belakang, tujuan, perumusan masalah,

batasan masalah, metodologi penelitian dan sistematika penulisan

BAB II LANDASAN TEORI

Bab ini menjelaskan mengenai uraian sistematis tentang teori yang berkaitan

dengan penelitian yang dilakukan dan konsep tentang mikrokontroler AT89C51

sebagai kendali hardware untuk menyalakan dan mematikan peralatan elektronik,

keypad sebagai input serta LCD sebagai tampilan.

BAB III METODOLOGI PENELITIAN

Bab ini menjelaskan tentang bahan atau materi penelitian, alat yang dipergunakan

untuk melaksanakan penelitian, jalannya penelitian berupa uraian yang lengkap

dan langkah-langkah yang diambil pada pelaksanaan penelitian untuk

megendalikan peralatan elektronik. Perancangan sistem dan pembuatan software

dan hardware yang dibutuhkan.

Page 16: Tugas Akhir Sample

4

BAB IV HASIL PENELITIAN DAN PEMBAHASAN

Bab ini menjelaskan mengenai implementasi dari rancangan aplikasi yang telah

dibuat sebelumnya, menganalisa proses kerja alat dan software serta hasil evaluasi

tentang tingkat keberhasilan alat tersebut.

BAB V PENUTUP

Bab ini menjelaskan mengenai kesimpulan yang didapatkan dari hasil pembuatan

pengendali peralatan elektronik dan pembahasan serta saran guna memperbaiki

kelemahan yang ada pada skipsi ini dan juga untuk pengembangan lebih lanjut.

Page 17: Tugas Akhir Sample

5

BAB II

LANDASAN TEORI

2.1 Mikrokontroler AT89C51

Mikrokontroler AT89C51 merupakan salah satu keluarga dari MCS51

keluaran Atmel dengan 4K byte Flash PEROM (Programable and Erasable

Read Only Memory), AT89C51 merupakan memori dengan teknologi

nonvolatile memory, isi memori tersebut dapat diisi ulang ataupun dihapus

berkali-kali.

Mikrokontroler disebut juga dengan single chip microcomputer, karena

dapat digunakan langsung sebagai pengontrol tanpa memerlukan bantuan

komponen digital yang lain. Jenis mikrokontroler ini pada prinsipnya dapat

digunakan untuk mengolah data per bit atau pun data 8 bit secara bersamaan.

2.1.1 Arsitektur dan Organisasi AT89C51

Mikrokontroler AT89C51 adalah suatu komponen yang memiliki

Central Processing Unit (CPU), memori data dan memori program, port

input/output dan register-register. Mode, status, data dan logika random

yang diperlukan oleh fungsi peripheral. Masing-masing bagian terhubung

satu dengan yang lain melalui data bus 8 bit. Bus dibuffer melalui port I/O,

bila diperlukan perluasan memori atau sebagian peralatan I/O. Adapun blok

diagram dari mikrokontroler AT89C51 diperlihatkan pada gambar 1.

5

Page 18: Tugas Akhir Sample

6

INTERRUPT CONTROL On Chip FLASH 128 RAM TIMER 1TIMER 0

CPU

O SC BUS CONTROL 4 I/O PORT UART PORT

PO P2 P1 P3TxD RxD

EXTERN AL INTERRU PT COUNTERINPUT

Gam bar 1. Bo lk diag ram mikrokontroler AT89C51(M oh. Ibnu Ma lik dan Anistardi, 1997 :7)

Arsitektur internal mikrokontroler adalah sebagai berikut.

Gambar 2. Arsitektur internal mikrokontroler AT89C51(Atmel Corp, 2001:2)

Page 19: Tugas Akhir Sample

7

Beberapa fasilitas yang dimiliki oleh mikrokontroler AT89C51 adalah

sebagai berikut:

1. Sebuah central processing unit 8 bit.

2. Osilator internal dan rangkaian pewaktu

3. RAM internal 128 byte

4. Flash memori 4 Kbyte

5. Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah

interupsi internal)

6. Empat buah programmable port I/O yang masing-masing terdiri dari

delapan buah jalur I/O.

7. Memiliki 2 timer/counter 16 bit

8. Sebuah port serial dengan kontrol serial full duplex UART

9. Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika

10. Kecepatan dalam melaksanakan instruksi per siklus 1 µs pada frekuensi

12 MHz (Suhata, 2004:146).

2.1.2 Pin-Pin Mikrokontoler AT89C51

Pin mikrokontroler AT89C51 dapat dikelompokkan menjadi pin

sumber tegangan, pin kristal, pin input/output, dan pin interupsi. Masing-

masing pin mempunyai fungsi yang berbeda-beda. Gambar 3 merupakan

konfigurasi pin dari mikrokontroler AT89C51.

Page 20: Tugas Akhir Sample

8

Gambar 3. Pin-Pin Mikrokontroler AT89C51(Atmel Corp, 2001:2)

Adapun fungsi dapat dideskripsikan sebagai berikut:

Tabel 1Deskripsi Pin Mikrokontroler AT89C51

Nomor Pin Nama Pin Alternatif Keterangan20 GND Ground40 VCC Power Supply

32…39 P0.7…P0.0 D7…D0&A7…A0

Port 0 dapat berfungsisebagai I/O biasa, low ordermultiplex addres/dataataupun menerima kode bytepada saat FlashProgrammingPada fungsi sebagai I/Obiasa port ini dapatmemberikan output sink kedelapan buah TTL inputatau dapat diubah sebagaiinput dengan memberikanlogika 1 pada port tesebutPada fungsi sebagai loworder multiplex addres/dataport ini akan mempunyaiinternal pull upPada saat FlashProgramming diperlukanexternal pull up terutamapada saat verifikasi program

1…8 P1.0…P1.7 Port 1 berfungsi sebagai I/Obiasa atau menerima loworder addres byte selama

Page 21: Tugas Akhir Sample

9

pada saat FlashProgrammingPort ini mempunyai internalpull up dan berfungsisebagai input denganmemberikan logika 1Sebagai output port ini dapatmemberikan output sinkkeempat buah input TTL

21…28 P2.0…P2.7 A8…A15 Port 2 berfungsi sebagai I/Obiasa atau high orderaddres, pada saat mengaksesmemori secara 16 bit (Movx@Dptr)Pada saat mengaksesmemori secara 8 bit, (Mov@Rn) port ini akanmengeluarkan isi dari P2Special Function registerPort ini mempunyai internalpull up dan berfungsisebagai input denganmemberikan logika 1Sebagai output, port inidapat memberikan outputsink keempat buah inputTTL

10…17 Port 3 Sebagai I/O biasa port 3mempunyai sifat yang samadengan port 1 maupun port2. Sedangkan sebagai fungsispesial port-port inimempunyai keterangansebagai berikut:

10111213141516

17

P3.0P3.1P3.2P3.3P3.4P3.5P3.6

P3.7

RXDTXDINT0INT1

T0T1WR

RD

Port Serial InputPort Serial OutputPort External Interrupt 0Port External Interrupt 1Port External Timer 0 InputPort External Timer 1 InputExternal Data MemoryWrite StrobeExternal Data Memory ReadStrobe

Page 22: Tugas Akhir Sample

10

9 RST Reset akan aktif denganmemberikan input highselama 2 cycle

30 ALE PROG Port ini dapat berfungsisebagai Addres LatchEnable (ALE) yang me-latch low byte addres padasaat mengakses memorieksternal.Sedangkan pada saat FlashProgramming (PROG)berfungsi sebagai pulsainput untuk pada operasinormal ALE akanmengeluarkan sinyal clocksebesar 1/16 frekuensioscillator kecuali pada saatmengakses memorieksternal sinyal clock padapin ini dapat pula didisabledengan men-set bit 0 dariSpecial Function Register dialamat 8EHALE hanya akan aktif padasaat mengakses memorieksternal (MOVX &MOVC)

29 PSEN Pin ini berfungsi pada saatmengeksekusi program yangterletak pada memorieksternal. PSEN akan aktifdua kali setiap cycle

31 Pada kondisi low, pin akanberfungsi sebagai EA yaitumikrokontroler akanmenjalankan program yangada pada memori eksternalsetelah sistem di-resetJika terkondisi high, pin iniakan berfungsi untukmenjalankan program yangada pada memori internal.Pada saat FlashProgramming pin ini akanmendapat tegangan 12 V.

Page 23: Tugas Akhir Sample

11

19 XTAL1 Input Oscillator18 XTAL2 Output Oscillator

(Paulus Andi Nalwan, 2003:2)

2.1.3 Struktur Memori

FF 7FF

80

7F

00

000

Gambar 4. Alamat RAM Internal dan Flash PEROM(Paulus Andi Nalwan, 2003:4)

Mikrokontroler AT89C51 mempunyai struktur memori yang terdiri atas:

1. RAM internal, memori sebesar 128 byte yang biasanya digunakan untuk

menyimpan variabel atau data yang bersifat sementara.

2. Special Function Register (Register Fungsi Khusus), memori yang berisi

register-register yang mempunyai fungsi-fungsi khusus yang disediakan

oleh mikrokontroler tersebut, seperti timer, serial dan lain-lain.

3. Flash PEROM, memori yang digunakan untuk menyimpan instruksi-

instruksi MCS51.

Mikrokontroler AT89C51 memiliki pembagian ruang alamat (address

space) untuk memori program dan memori data. Pemisahan memori

program dan memori data membolehkan memori data untuk diakses oleh

alamat 8 bit. Walaupun demikian, alamat data memori 16 bit dapat

dihasilkan melalui register DPTR (Data Pointer Register). Struktur

memori mikrokontroler AT89C51 dibagi menjadi dua bagian, yaitu

memori program dan memori data.

RAMADDRESSREGISTER

SPECIAL FUNCTIONREGISTER

RAM INTERNALFLASHPEROM

PROGRAMADDRES

REGISTER

Page 24: Tugas Akhir Sample

12

Memori program internal mikrokontroler AT89C51 sebesar 4Kbyte

yang digunakan untuk menyimpan data program yang dijalankan untuk

operasi mikrokontroler. Penyimpanan program di dalam memori program

internal dilakukan dengan bantuan pemrogram chip IC EPROM

Programmer. Memori program internal ini dijalankan pada saat

mikrokontroler mendapat sumbar catu daya, dan sumber detak. Memori

program ini hanya dapat dibaca tidak bisa ditulisi (karena disimpan dalam

EPROM). Selain menggunakan memori program internal, mikrokontroler

juga dapat dioperasikan dengan memori program eksternal. Sinyal yang

membolehkan pembacaan dari memori program eksternal adalah dari pena

program store enable (PSEN). Setelah reset, CPU akan mengeksekusi mulai

pada alamat 0000H. Setiap interupsi mempunyai lokasi tetap dalam memori

program. Interupsi akan menyebabkan CPU melompat ke lokasi tersebut,

pada lokasi tersebut terdapat sub rutin yang harus dilaksanakan.

Memori data terletak pada ruang alamat terpisah dari memori program

RAM eksternal 64 K byte dapat dialamati dalam ruang memori data

eksternal CPU menghasilkan sinyal read dan write selama menghubungi

memori data eksternal. Untuk melaksanakan pembacaan atau penulisan,

mikrokontroler akan mengirimkan sinyal RD dan WR. RAM yang

digunakan mempunyai kapasitas 8 Kbyte (Moh. Ibnu Malik dan

Anistardi.1997: 11). Ruang memorinya dibagi menjadi tiga blok, yaitu

sebagai lower 128, upper 128 dan 128 byte SFR (Special Function

Register).

Page 25: Tugas Akhir Sample

13

Tiga puluh dua byte paling bawah dikelompokkan dalam 4 bank (8

register) yaitu R0-R7. Dua bit dalam Program Status Word (PSW) memilih

register bank yang digunakan. Sedangkan ruang special function register

space yang berisi panahan port (port latch), pewaktu (timer), pengontrol

peripheral, dan lain-lain. Register-register ini hanya dapat dihubungi dengan

pengalamatan langsung.

2.1.4 Register Mikrokontroler AT89C51

Register-register pada mikrokontroler AT89C51 dapat digolongkan

menjadi dua register, yaitu register serbaguna (General Purpose Register)

dan register dengan fungsi khusus (Special Function Register). Register

serbaguna adalah register yang berfungsi untuk menyimpan data sementara

untuk diolah oleh CPU baik operasi logika maupun aritmatika. Register

serbaguna hanya dapat berfungsi sebagai nilai operan kedua pada

perhitungan aritmatika ataupun operasi logika dengan operan utama register

akumulator. Register serbaguna tidak memiliki fungsi-fungsi khusus.

Mikrokontroler AT89C51 memiliki register serbaguna 8 bit yang terdiri dari

R0-R7 yang mempunyai 4 bank alamat lokasi RAM internal.

Register-register khusus/SFR yang dimiliki oleh mikrokontroler

AT89C51 menempati alamat pada RAM internal 128. Mikrokontroler

89C51 mempunyai 21 special function register yang terletak pada antara

alamat 80H hingga FFH. Beberapa dari register-register ini juga mampu

dialamati dengan pengalamatan bit sehingga dapat dioperasikan seperti yang

Page 26: Tugas Akhir Sample

14

ada pada RAM yang lokasinya dapat dialamati dengan pengalamatan bit.

Adapun register-register tersebut adalah sebagai berikut:

1. Akumulator

Register ini terletak pada lamat E0H. Hampir semua operasi aritmatik

dan operasi logika selalu menggunakan register ini. Untuk proses

pengambilan dan pengiriman data ke memori eksternal juga diperlukan

register ini.

2. Port

Mikrokontroler 89C51 mempunyai empat buah port, yaitu Port 0, Port

1, Port 2 dan Port 3 yang terletak pada alamat 80H, 90H, A0H dan B0H.

Namun, jika digunakan eksternal memori ataupun fungsi-fungsi spesial,

seperti external interrupt. Serial ataupun external timer, port 0, port 2

dan port 3 tidak dapat digunakan sebagai port dengan fungsi umum.

Untuk itu disediakan port 1 yang dikhususkan untuk port dengan fungsi

umum. Semua port ini dapat diakses dengan pengalamatan secara bit

sehingga dapat dilakukan perubahan output pada tiap-tiap pin dari port

ini tanpa mempengaruhi pin-pin yang lainnya.

3. Register B

Register B digunakan bersama akumulator untuk proses aritmatik selain

dapat juga difungsikan sebagai register biasa. Register ini juga bersifat

bit addressable.

Page 27: Tugas Akhir Sample

15

4. Register penyimpan status (Program Status Word: PSW)

yaitu register 8 bit yang berfungsi sebagai penanda status (status flag)

sebagai akibat dari pelaksanaan suatu instruksi. Register ini meliputi bit-

bit: carry (CY), auxiliary (AC), zero flag (FO), pemilih register bank

(RS0 dan RS1), over flow (OV), dan parity flag (P). Flag CY, AC dan

OV merupakan keluaran dari suatu proses aritmatika yang dilakukan di

akumulator. Flag P merupakan parity dari isi register akumulator. Flag

C digunakan juga sebagai akumulator operasi bit. RS0 dan RS1

digunakan untuk memilih register bank yang aktif pada saat itu.

5. Stack Pointer

Stack pointer merupakan sebuah register 8 bit yang terletak di alamat 81

H. Isi dari stack pointer ini merupakan alamat dari data yang disimpan di

stack. Stack pointer dapat diedit atau dibiarkan saja mengikuti standart

sesudah terjadi reset. Jika stack pointer diisi data 5FH, area untuk proses

penyimpan dan pengambilan data dari dan ke stack adalah sebesar 32

byte, yaitu antara 60H hingga 7FH karena 89C51 mempunayi internal

RAM sebesar 128 byte.

6. Data Pointer

Data pointer atau DPTR merupakan register 16 bit dan terletak pada

alamat 82H untuk DPL dan 83H untuk DPH. DPTR biasa digunakan

untuk mengakses source code ataupun data yang terletak di memori

eksternal.

Page 28: Tugas Akhir Sample

16

7. Register Timer

AT89C51 mempunyai dua buah 16 bit timer/counter, yaitu timer 0 dan

timer 1. Timer 0 terletak di alamat 8AH untuk TL0 dan 8CH untuk TH0

dan timer 1 terletak di alamat 8BH untuk TL1 dan 8DH untuk TH1.

8. Register Port Serial

AT89C51 mempunyai sebuah on chip serial port yang dapat digunakan

untuk berkomunikasi dengan peralatan lain yang menggunakan serial

port juga seperti modem, shift register dan lain-lain.

Buffer (penyangga) untuk proses pengiriman maupun pengambilan data

terletak pada register SBUF, yaitu pada alamat 99H. Sedangkan untuk

mengatur mode serial dapat dilakukan dengan mengubah isi dari SCON

yang terletak pada alamat 98H.

9. Register Interrupt

89C51 mempunyai lima buah interrupsi dengan dua buah prioritas

interrupsi. Interrupsi akan selalu non aktif setiap kali sistem direset.

Register-register yang berhubungan dengan interrupt adalah Interrupt

Enable Register (IE) atau register pengaktif interupsi pada alamat A8H

untuk mengatur keaktifan tiap-tiap interrupt dan Interrupt Priority

Register (IP) atau register prioritas interupsi pada alamat B8H.

10. Register Kontrol Power

Register ini terdiri atas SMOD yang digunakan untuk melipat dua buah

rate dari port serial, dua buah bit untuk flag fungsi umum pada bit ketiga

dan bit kedua, Power Daya (PD) bit dan Idle (IDL) bit.

Page 29: Tugas Akhir Sample

17

Tabel 2Alamat Register-Register pada SRF

Register Simbol Alamat Port 0 Latch PO 80HStack Pointer SP 81HData Pointer Low Byte DPL 82HData Pointer High Byte DPH 83HPower Control PCON 87HTimer Control TCON 88HTimer Mode Control TMOD 89HTimer 0 Low Byte TL0 8AHTimer 1 Low Byte TL1 8BHTimer 0 High Byte TH0 8CHTimer 1 High Byte TH1 8DHPort 1 Latch PI 90HSerial Port Latch SCON 98HSerial Data Port SBUF 99HPort 2 Latch P2 A0HInterrupt Enable IE A8HPort 3 Latch P3 BOHInterrupt Priority Control IP B8HProgram Status Word PSW D0HAccumulator ACC E0HB Register B F0H

(Suhata, 2005:151-152)

2.1.5 Pewaktu/Pencacah (Timer/Counter)

Mikrokontroler AT89C51 memiliki dua buah timer/counter 16 bit,

yaitu timer/counter 0, dan timer/counter 1. Pada fungsi timer, register ini

ditambah tiap satu siklus mesin atau dapat diartikan sebagai penghitung

siklus mesin. Bila pewaktu/pencacah diaktifkan pada frekuensi 12 Mhz,

maka pewaktu/pencacah akan melakukan penghitungan sekali tiap satu µs

tidak tergantung pada pelaksanaan suatu instruksi. Apabila periode waktu

tertentu telah dilampaui, maka pewaktu/pencacah akan memberi interupsi ke

Page 30: Tugas Akhir Sample

18

mikrokontroler bahwa instruksi perhitungan waktu telah selesai

dilaksanakan.

Pengontrol kerja pewaktu/pencacah adalah register timer control

(TCON) pada spesial kontrol register adalah sebagai berikut:

MSB LSBTF1 TR1 TF0 TR0 IE0 IT1 IE0 IT0

Tabel 3Keterangan Register Timer Control

Simbol Posisi FungsiTF1 TCON.7 Timer 1 overflow flag. Diset oleh perangkat keras

saat timer/counter menghasilkan limpahan(overflow). Bit ini dapat di-clear oleh software atauhardware pada saat program menuju ke alamat yangditunjuk oleh interrupt vector

TR1 TCON.6 Bit untuk menjalankan timer 1. Diset/diclear olehsoftware untuk membuat timer ON atau OFF.1= Timer 1 aktif0= Timer 1 nonaktif

TF0 TCON.5 Timer 0 overflow flag. Diset oleh perangkat kerassaat timer/counter menghasilkan limpahan(overflow).

TR0 TCON.4 Bit untuk menjalankan timer 0. Diset/diclear olehsoftware untuk membuat timer ON/OFF.

IE1 TCON.3 External Interupt 1 edge flag.IT1 TCON.2 Interupt 1 type control bit. Set/clear software untuk

menspesifikasikan sisi turun/level rendah triger dariinterupsi eksternal.

IE0 TCON.1 Eksternal Interupt 0 edge flag.IT0 TCON.0 Interupt 0 type control bit. Set/clear oleh software

untuk menspesifikasikan sisi turun/level rendah trigerdari interupsi eksternal.

Sedangkan untuk pemilihan fungsi pewaktu atau pencacah dan mode

operasi pewaktu/pencacah adalah pada Special Function Register TMOD

seperti sebagai berikut:

Page 31: Tugas Akhir Sample

19

TIMER1 TIMER0GATE C/T M1 M0 GATE C/T M1 M0

Keterangan:

GATE Saat TRx (pada TCON) diset 1 dan GATE=1, timer/counter x

hanya akan berjalan ketika pin INT-x logika (hardware control).

Apabila GATE=0, timer/counter hanya akan berjalan ketika

TRx=1 (software control).

C/T Selektor timer atau counter. Clear (0) untuk operasi timer dengan

masukan dari pena T-x.

M1 Bit pemilih mode 1.

M0 Bit pemilih mode 0.

Tabel 4Mode Operasi Timer/Counter

M1 M0 Mode Operasi0 0 0 Timer 13 bit0 1 1 Timer/counter 16 bit1 0 2 Timer/counter Auto-reload 8 bit1 1 3 Split timer (Timer 0) TL0 adalah Timer/Timer 8 bit yang

dikontrol oleh kontrol bit timer 0, TH0 adalah 8 bit timeryang dikontrol oleh kontrol bit timer 1.

Penyetelan Timer/Counter

Pemberian nilai TMOD yang digunakan untuk penyetalan (set up)

timer/counter 0 pada beberapa mode operasi. Diasumsikan hanya ada satu

timer yang digunakan pada saat itu. Apabila timer 0 dan timer 1 dijalankan

bersamaan dalam beberapa mode, maka nilai TMOD timer 0 diOR kan

dengan nilai timer 1. Sebagai contoh jika timer 0 dijalankan dalam mode 1

Page 32: Tugas Akhir Sample

20

GATE (control eksternal), 2 timer 1 dijalankan dalam mode 2 counter, maka

nilai yang harus diisikan ke TMOD adalah 69H.

1. Timer/Counter 0

Pada kontrol internal, timer dihidup-matikan dengan men-set bit TR0

(kontrol melalui software). Kontrol eksternal, timer dihidup-matikan

oleh transisi logika 1 ke 0 pada pena INT0 ketika TR0=1 (hardware

kontrol).

a. Tabel 5Timer/Counter 0 sebagai Pewaktu

Mode Fungsi Timer 0 TMODKontrol Internal Kontrol Eksternal

0 Timer 13 bit 00H 08H1 Timer 16 bit 01H 09H2 Auto Reload 8 bit 02H 0AH3 Dua 8 bit timer 03H 0BH

b. Tabel 6Timer/Counter 0 sebagai Pencacah

Mode Fungsi Counter 0 TMODKontrol Internal Kontrol Eksternal

0 Timer 13 bit 04H 0CH1 Timer 16 bit 05H 0DH2 Auto Reload 8 bit 06H 0EH3 Dua 8 bit timer 07H 0FH

2. Timer/Counter 1

Pada kontrol internal, timer dihidup-matikan dengan men-set bit TR1

(kontrol melalui software). Kontrol eksternal, timer dihidup-matikan

oleh transisi logika 1 ke 0 pada pena INT1 ketika TR1=1 (hardware

kontrol).

Page 33: Tugas Akhir Sample

21

a. Tabel 7Timer/Counter 1 sebagai Pewaktu

Mode Fungsi Timer 1 TMODKontrol Internal Kontrol Eksternal

0 Timer 13 bit 00H 80H1 Timer 16 bit 10H 90H2 Auto Reload 8 bit 20H A0H3 Dua 8 bit timer 30H B0H

b. Tabel 8Timer/Counter 1 sebagai Pencacah

Mode Fungsi Counter 1 TMODKontrol Internal Kontrol Eksternal

0 Timer 13 bit 40H C0H1 Timer 16 bit 50H D0H2 Auto Reload 8 bit 60H E0H3 Dua 8 bit timer - -

2.1.6 Sistem Interupsi

AT89C51 menyediakan 5 sumber interupsi, yaitu: 2 interupsi

eksternal, 2 interupsi pewaktu dan sebuah interupsi serial.(Afgianto Eko

Putra, 2005:28)

Mikrokontroler AT89C51 memiliki dua jenis interupsi, yaitu:

1. Saluran interupsi internal, yaitu terdiri dari pewaktu/pencacah 0 (T0),

pewaktu/pencacah 1 (T1), dan terminal serial.

2. Saluran interupsi eksternal, yaitu terdiri dari interupsi eksternal 0

(INT0), interupsi eksternal 1 (INT1).

Sistem interupsi pada mikrokontroler AT89C51 akan

menghasilkan suatu program yang berjalan, serta melayani interupsi yang

diminta. Bila permintaan interupsi telah dilaksanakan, maka CPU akan

Page 34: Tugas Akhir Sample

22

kembali ke pelaksanaan program utama yang ditinggalkan (Moh. Ibnu Malik

dan Anistardi, 1997:16).

Sistem kerja interupsi dapat dijelaskan sebagai berikut:

Pada saat terjadi, informasi alamat terakhir pada pencacah program

(PC) disimpan dalam Stack Pointer (SP), kemudiaan pencacah program diisi

dengan alamat interupsi yang akan dituju. Kemudian CPU melaksanakan

interupsi yang ditunjukkan pencacah program, sehingga interupsi

dilaksanakan. Selanjutnya informasi pada Stack Pointer akan dikembalikan

kepada pencacah program bila interupsi telah dilaksanakan.

Masing-masing sumber interupsi dapat diaktifkan dan dimatikan

secara individual atau dengan me-nol-kan bit-bit IE (Interupt Enable) dalam

SFR. Register IE ini juga mengandung sebuah bit untuk aktivasi interupsi

secara global, yang dapat digunakan untuk mengaktifkan dan mematikan

interupsi secara keseluruhan.

(MSB) (LSB)EA - - ES ET1 EX1 ET0 EX0

Gambar Register IE – Interrupt Enable pada AT89C51

Tabel 9Register IE – Interrupt Enable pada AT89C51

Simbol Posisi FungsiEA IE.7 Untuk menghidupkan (IE=1)dan mematikan (IE=0) seluruh

interupsi secara serentak- IE.6 Cadangan *- IE.5 Cadangan *

ES IE.4 Bit aktivasi interupsi port serialET1 IE.3 Bit aktivasi interupsi Timer 1 OverflowEX1 IE.2 Bit aktivasi interupsi eksternal 1ET0 IE.1 Bit aktivasi interupsi Timer 0 OverflowEX0 IE.0 Bit aktivasi interupsi eksternal 0

Page 35: Tugas Akhir Sample

23

2.2 Tampilan LCD (Liquid Cristal Display)

LCD atau tampilan kristal cair merupakan suatu rangkaian yang

digunakan untuk menampilkan hasil operasi yang dilakukan oleh

mikrokontroler AT89C51. Modul tampilan ini menggunakan modul

tampilan kristal cair matrik titik dengan pengendali LCD didalamnya.

Pengendali ini memiliki RAM/ROM, pembangkit karakter yang terletak

didalam modul. Semua fungsi tampilan dikendalikan oleh perintah-perintah

yang telah diprogram. Sehingga tampilan dari display dapat terlihat dengan

jelas.

2

D 3

V R 1 0 K

V s s

1 3

D A T A

12345678

7

V R 1 0 K

D 7

3

D 4 V s sD 0

1 0

5 V

1

L C D 2 X 1 6

4

V c c D 5

D A T A C O N T R O L

12

8 1 4

D 1

6 1 2

V s s E

5

V e e

1 5

D 6

1 1

R S D 2

9

R / W

1 6

5 V

Gambar 5. Skema LCD 2x16 Karakter

LCD yang digunakan terdiri dari dua bagian, yang pertama merupakan

panel LCD sebagai media penampil informasi dalam bentuk huruf/angka

dua baris, masing-masing harus bisa menampung 16 huruf/angka.

Bagian kedua merupakan sebuah sistem yang dibentuk dengan

mikrokontroler yang ditempelkan dibalik pada panel LCD, berfungsi untuk

mengatur tampilan informasi serta berfungsi mengatur komunikasi dengan

mikrokontroler yang memakai tampilan LCD itu. Dengan demikian

Page 36: Tugas Akhir Sample

24

pemakaiannya menjadi sederhana cukup dengan mengirim kode-kode ASCII

dari informasi yang ditampilkan.

LCD dapat berhubungan dengan mikrokontroler, sehingga dilengkapi

dengan 8 jalur data (DB0-DB7) yang dipakai untuk menyalurkan kode

ASCII maupun perintah pengatur kerjanya. Selain itu dilengkapi pula

dengan E, R/W dan RS seperti layaknya komponen yang kompatibel dengan

mikroprosesor.

RS (Register Select) dipakai untuk membedakan jenis data yang

dikirim ke LCD, kalau RS=0 data yang dikirim adalah perintah untuk

mengatur kerja LCD sebaliknya kalau RS=1 data yang dikirim adalah kode

ASCII yang ditampilkan. Demikian pila saat pengambilan data, saat RS=0

data yang diambil dari LCD merupakan data status yang mewakili aktivitas

LCD, dan saat RS=1 maka data yang diambil merupakan kode ASCII dari

data yang ditampilkan.

LCD mempunyai seperangkat perintah untuk mengatur tata kerjanya,

perangkat perintah tersebut meliputi perintah untuk menghapus tampilan,

meletakkan kembali kursor pada baris/huruf pertama baris pertama,

menghidupkan/mematikan tampilan dan sebagainya.

Aplikasi ini adalah antarmuka AT89C51 dengan LDC matriks 2x16.

Potensio 10K yang tampak pada gambar berfungsi untuk mengatur tegangan

pada kaki VLCD. Besarnya tegangan pada kaki tersebut akan

mempengaruhi ketajaman karakter yang tampak pada LCD.

Page 37: Tugas Akhir Sample

25

LCD selalu berada pada kondisi tulis (Write) dengan menghubungkan

kaki R/W ke ground. Hal ini dimaksudkan agar, LCD tersebut tidak

mengeluarkan data (kondisi baca) yang mana data tersebut akan bertabrakan

dengan data komponen-komponen lain di jalur bus.

2.3 Rangkaian Catu Daya

Rangkaian catu daya memberikan supply tegangan pada alat

pengendali. Rangkaian catu daya mendapatkan sumber tegangan dari PLN

sebesar 220 VAC. Tegangan 220 VAC ini kemudian diturunkan menjadi 15

VAC melalui trafo penurun tegangan. Tegangan AC 15V disearahkan oleh

diode menjadi tegangan DC. Keluaran dari diode ini kemudian masuk ke IC

regulator yang fungsinya adalah untuk menstabilkan tegangan. IC regulator

yang terdiri dari tiga buah IC, yaitu LM7805, LM7809 dan LM7812 yang

menghasilkan tegangan DC sebesar +5V, +9V dan +12V. Oleh karena

tegangan yang diperlukan pada tiap rangkaian ada yang tidak sama maka

rangkaian catu daya ini mempunyai tiga buah saluran tegangan DC yaitu

+5V, +9V dan +12V yang berfungsi untuk memberi supply tegangan pada

tiap rangkaian.

Page 38: Tugas Akhir Sample

26

Gambar 6. Catu Daya

Tabel 10karakteristik IC 78XX

I In I Out (Ampere) V In (Volt)Tipe(A)

V out(Volt) 78XX C 78LXX 78MXX Min Max

78057806780878107812781578187824

11111111

568

1012151824

11111111

0,10,10,10,10,10,10,10,1

0,50,50,50,50,50,50,50,5

7,58,610,612,714,81821

27,3

2021232527303338

2N3055

1N4001+

100uF/16V

SI1

250mA

100uF/ 16V1N4001

0V9V

12V

220 VAC

2N3055

Traf o 2A

+

DI0DE 3A

+2200uF/16V

+1000uF/16V

J3

1234

5V

LM78091

2

3VIGN

DVO

+

LM78051

2

3VI

GND

VO

1000uF/ 16V

DIODE 3A

LM78121

2

3VI

GND

VO

+

2200uF/25V

Page 39: Tugas Akhir Sample

27

2.4 Data Input pada Keypad

Media input yang digunakan pada aplikasi ini adalah keypad 4x3.

Keypad 4x3 di sini adalah sebuah keypad matrix dengan susunan 4 baris dan

3 kolom. Pada keypad jenis ini, menggunakan metode scanning keypad.

Gambar 7. Keypad Matrik 4x3

Pada kondisi tidak terjadi penekanan tombol keypad. Kondisi logika

pada port 3 adalah logika 1 pada setiap bitnya. Saat salah satu tombol dari

keypad ditekan, baris dan kolom yang berhubungan akan terhubung ke

ground sehingga kondisi baris dan kolom tersebut akan berlogika 0. Setiap

tombol akan memberikan logika 0 pada baris dan kolom tertentu.

Setiap penekanan tombol keypad akan selalu menimbulkan dua

buah logika 0 pada port 3. Oleh karena itu, untuk mengetahui apakah data

yang dikeluarkan keypad telah valid, program dapat melakukannya hanya

dengan melihat ganjil genap dari data yang diterima dengan melihat kondisi

bit parity.

K1

K2

B4

K3

B3

B2

B11

4

3

7

*

5

2

8 9

6

0 #

Page 40: Tugas Akhir Sample

28

Setelah data yang valid diambil, maka program akan menunggu

tombol keypad dilepas dengan menunggu adanya kondisi FFh kembali serta

melakukan konversi berdasarkan tabel keypad setelah kondisi tersebut

terpenuhi. Proses konversi tabel dilakukan dengan menganggap data dari

keypad sebagai suatu alamat memori. Isi dari alamat tersebut berupa data

yang dianggap sebagai tanda saat tombol tersebut ditekan.

Proses konversi sinyal analog dilakukan setiap kali mikrokontroler

memberikan perintah. Dengan perintah penulisan tersebut, proses

pengiriman alamat, data dan sinyal WR terjadi dari development system

antarmuka.

2.5 Solid State Relay

Gambar 8. Solid State Relay (SSR)

Relay adalah alat yang dioperasikan dengan listrik dan secara mekanis

mengontrol penghubugan rangkaian listrik, bermanfaat untuk kontrol jarak

jauh dan untuk pengontrolan alat tegangan dan arus tinggi dengan sinyal

kontrol tegangan dan arus rendah. Bekerja berdasarkan pembentukan

electromagnet yang menggerakkan elektromekanis penghubung dari dua

10

G

10nF/400V

BD13910

CIRCUITCROSSZERO

MOC3041

1

2

6

4

560

LOAD

12

29/2W

VCC

MT2

220 VAC

IN

MT1330

Q4008L4/TO

Page 41: Tugas Akhir Sample

29

atau lebih titik penghubung (konektor) rangkaian sehingga dapat

menghasilkan kondisi kontak ON atau kontak OFF atau kombinasi dari

keduanya.

Rangkaian Solid State Relay (SSR) pada prinsipnya adalah

penggabungan antara rangkaian optocoupler dengan triac. Sebuah

optocoupler menggabungkan LED dan fotodioda dalam satu kemasan.

Sumber tegangan dan resistor seri mengatur arus melalui LED. Kemudian

cahaya dari LED mengenai fotodioda, dan akan mengatur arus balik yang

menghasilkan tegangan jepit pada resistor.

Saat tegangan input berubah, jumlah cahaya juga berubah-ubah. Ini

berarti bahwa tegangan output berubah bersama-sama dengan tegangan

input. Hal inilah yang menyebabkan kombinasi LED dan fotodioda disebut

dengan optocoupler. Alat ini dapat menghubungkan isyarat input dengan

rangkaian output.

Keuntungan pokok optocoupler adalah terjadinya isolasi elektrik

antara rangkaian input dan output. Dengan optocoupler, hanya terdapat

kontak input dan ouput dalam bentuk pancaran sinar. Oleh karena itu

dimungkinkan untuk mengisolasi resistansi antara dua rangkaian dalam orde

ribuan megaohm. Isolasi yang seperti itu berguna dalan aplikasi tegangan

tinggi dimana beda potensial dua rangkaian sampai dengan ribuan volt.

Triac seperti dua buah SCR yang dipasang paralel berkebalikan, ekuivalen

dengan dua buah grendel. Triac dapat mengatur arus dalam dua arah.

Apabila terjadi pemicuan pada gate maka akan menutup grendel. Triac

Page 42: Tugas Akhir Sample

30

mempunyai tiga kaki yaitu anoda 1 (MT1), anoda 2 (MT2) dan gerbang

(Gate). Arus dapat mengalir antara MT1 dan MT2 dan juga antara gerbang

dan MT1.

Page 43: Tugas Akhir Sample

31

BAB III

METODOLOGI PENELITIAN

Dalam perkembangannya sampai saat ini, teknologi mikrokontroler

dapat diaplikasikan untuk berbagai alat pengendali dengan interface untuk

pendukungnya. Dalam perancangan alat pada sistem pengendalian peralatan

elektronik terdiri dari hardware dan software. Hardware terdiri dari

mikrokontroler AT89C51, power supply 5V, 9V dan 12V, LCD, driver LCD,

keypad, Solid State Relay, lampu 220 Volt, kipas angin, bel listrik, driver bel

pompa air, sensor air atas dan bawah.

Penggunaan software sangat membantu untuk menjalankan perangkat

yang dibuat. Dalam membuat software ini bahasa yang digunakan adalah bahasa

Assembler mikrokontroler AT89C51. Dengan bahasa Assembler memungkinkan

kita berkomunikasi dengan mikrokontroler sehingga alat yang dibuat dapat

bekerja.

Dengan software yang diisikan pada mikrokontroler kita dapat

mengendalikan peralatan elektronik pada sebuah sekolah. Kita dapat melakukan

penyetingan waktu dan peralatan elektronik yang akan dihidupkan/matikan

kemudian menyimpan setingan tersebut dan dapat menyeting ulang lagi.

Penyetingan dilakukan dengan menekan tombol pada keypad dan akan

ditampilkan pada layar LCD.

31

Page 44: Tugas Akhir Sample

32

3.1 Perancangan Sistem

Pengendalian yang diharapkan dengan adanya alat ini adalah kita

dapat menghidupkan dan mematikan peralatan yang ada di sebuah sekolah

sesuai dengan jadwal yang telah ditentukan tanpa harus melakukan secara

manual dengan menekan saklar tapi secara otomatis. Kita juga dapat

menyeting ulang sesuai dengan keinginan melalui keypad dan akan

ditampilkan pada LCD

Peralatan yang dipakai dalam skripsi ini dirakit sesuai dengan diagram

berikut.

Mikrokontroler AT89C51

SSR 1

SSR 2

Driver Bel

SSR 3 Pompa air

Lampu

Bel

Kipas

Keypad

LCD(D0-D7)

RS

E

Catu daya

Sensor bawah

Sensor atas

Gambar 9. Diagram Blok Pengendali Peralatan Elektronik

Blok diagram ini merupakan gambaran dari sistem yang dibuat yang

terdiri dari rangkaian catu daya, mikrokontroler AT89C51, keypad, LCD dan

P2.0

P2.3

P2.1

P2.2

P2.6

P3.0-P3.7

P0.P0.7

Vcc

P2.5

P2.4

P2.7

Page 45: Tugas Akhir Sample

33

empat buah peralatan elektronik yaitu pompa air, lampu, bel kistrik dan kipas

angin.

Keterangan:

1. Mikrokontroler berfungsi sebagai pusat kendali dan bekerja untuk

mengendalikan peralatan elektronik melalui program yang disimpan pada

mikrokontroler. Jika data input sesuai dengan data yang telah diatur dalam

mikrokontroler untuk menyalakan dan mematikan peralatan elektronik

sesuai dengan waktu yang telah ditentukan, maka mikrokontroler akan

mengontrol peralatan tersebut sesuai dengan data. Akan tetapi jika data

yang diterima oleh mikrokontroler tidak valid, data ilegal, atau tidak sesuai

dengan data yang telah diatur atau datanya salah maka mikrokontroler

akan mengabaikan data tersebut.

2. Empat buah peralatan elektronik berupa pompa air, lampu, kipas angin

yang sebelumnya dihubungkan ke SSR dan bel listrik. Pompa air

terhubung ke alamat P2.3, lampu terhubung ke alamat P2.2, kipas angin

terhubung ke alamat P2.0, bel terhubung ke alamat P2.1.

Untuk dapat mengandalikan peralatan elektronik satu sampai empat

mikrokontroler harus mengirimkan data sinyal pulsa “0” atau “1”. Jika

mikrokontroler memberikan data sinyal pulsa “0” maka rangkaian saklar

digital berada dalam keadaan padam, tapi jika data sinyal pulsa “1” yang

dikirimkan oleh mikrokontroler, maka peralatan tersebut akan menyala.

Page 46: Tugas Akhir Sample

34

3.1.1 Langkah Perancangan Alat

Jalannya penelitian berdasarkan uraian kerja nantinya yang akan

dilaksanakan dibagi atas urutan yaitu:

1. Identifikasi spesifikasi dan kebutuhan alat yang akan dibuat

2. Perancangan alat tersebut

3. Implementasi dan realisasi perancangan alat

4. Pengujian alat yang dibuat

5. Pengambilan data dan analisa data.

Tabel 11Jadwal Terprogram

No Peralatan elektronik Berapa kali sehari Waktu (WIB)1 Pompa air 1 06.00-07.002 Lampu 1 18.00-05.003 Kipas Angin 1 07.00-12.004 Bel listrik 7 07.00

07.4508.3009.1510.0010.1511.00

Page 47: Tugas Akhir Sample

35

Mulai

Set waktu

Bandingkan&kerjakan

Seting Ulang?Y

T

Gambar 10. Flowchart utama

Page 48: Tugas Akhir Sample

36

Set waktu

Simpan? Simpan set waktu kedata waktu

Set waktu lampuOFF

Simpan?

Simpan?

Simpan?

Simpan?

Simpan?

Simpan? Simpan set waktu kedata waktu kipas ON

Simpan set waktu kedata waktukipas OFF

Simpan set waktu kedata waktu pompa

ON

Simpan set waktu kedata waktu pompa

OFF

Simpan set waktu kedata waktu lampu

OFF

Simpan set waktu kedata waktu lampu ON

Set waktu lampu ON

Set waktu kipas OFF

Set waktu kipas ON

Set waktu pompaOFF

Set waktu pompa ON

Gambar 11. Flowchart set waktu

Selesai

Mulai

Y

T

Y

Y

Y

Y

Y

Y

T

T

T

T

T

T

Page 49: Tugas Akhir Sample

37

Waktu=set?

Bandingkan waktu skrgdgn waktu set kipas ON

Nyalakankipas

Nyalakan bel

Nyalakanlampu

Matikankipas

Bandingkan waktu skrgdgn waktu set kipas OFF

Bandingkan waktu skrgdgn waktu set lampu ON

Bandingkan waktu skrgdgn waktu set pompa

ON-pompa OFF

Bandingkan waktu skrgdgn waktu set bel OFF

Bandingkan waktu skrgdgn waktu set bel ON

Bandingkan waktu skrgdgn waktu set lampu

OFF

PompaON<=waktu<=pompa

OFF?

Waktu=set?

Waktu=set?

Waktu=set?

Waktu=set?

Waktu=set?

Matikanlampu

Matikan bel

Air kosong?

Air penuh?

Nyalakanpompa

Matikanpompa

Gambar 12. Flowchart perbandingan waktu

Mulai

Y

T

Y

Y

Y

Y

Y

Y

Y

Y

T

T

T

T

T

T

T

T

Page 50: Tugas Akhir Sample

38

3.1.2 Mekanisme

a. Mikrokontroler

Sebuah mikrokontroler dapat bekerja bila di dalam mikrokontroler tersebut

terdapat sebuah program yang berisikan instruksi-instruksi yang akan

digunakan untuk menjalankan sistem mikrokontroler tersebut.

Syarat utama agar rangkaian mikrokontroler AT89C51 dapat

bekerja, maka dibutuhkan frekuensi kerja 12 MHz dari sebuah kristal dan

dua buah kapasitor keramik 33 pF. Dengan demikian, satu siklus mesin

paling lama dikerjakan dalam 1µs. Mikrokontroler juga mengubah

bilangan heksadesimal yang hasilnya ditampilkan oleh display (LCD).

Pada prinsipnya program pada mikrokontroler dijalankan secara

bertahap. Maksudnya, pada program itu sendiri terdapat beberapa set

instruksi yang tiap instruksi itu dijalankan secara bertahap atau berurutan.

Port 2.6 digunakan untuk E dan Port 2.7 digunakan untuk RS pada LCD

Pada fungsi sebagai I/O biasa port ini dapat memberikan output

sink ke delapan buah TTL input atau dapat diubah sebagai input dengan

memberikan logika 1 pada port tersebut. Cara kerja rangkaian LCD

dimulai pada saat RS (register select) mendapat sinyal dari A0 (latch

addres) dan R/W aktif high (LCD membaca data dari ADC), dan E

(enable) mendapat sinyal P2.6, sinyal RD dan WR dari mikrokontroler.

Sedangkan R/W aktif low (LCD menulis data). Sehingga data dapat

ditampilkan melalui display.

Page 51: Tugas Akhir Sample

39

Proses mengirim/mengambil data ke atau dari LCD dapat

digambarkan sebagai berikut:

1. RS harus dipersiapkan dulu, untuk menetukan jenis data.

2. R/W* dinolkan untuk menandakan akan diadakan pengiriman data ke

LCD. Data yang akan dikirim disiapkan di DB0…DB7; sesaat

kemudian sinyal E disatukan dinolkan kembali. Sinyal E merupakan

sinyal sinkronisasi, saat E berubah dari 1 menjadi 0 data di DB0…DB7

diterima oleh LCD.

3. Untuk mengambil data dari LCD sinyal R/W* disatukan menyusul

sinyal E disatukan. Pada saat E menjadi 1 LCD akan meletakkan

datanya di DB0…DB7, data ini harus diambil sebelum sinyal E

dinolkan kembali.

3.2 Perancangan Hardware

3.2.1 Rangkaian Kendali

Untuk mengendalikan hidup matinya peralatan elektronik pada

perancangan dan pembuatan alat ini digunakan sebuah IC mikrokontroler

AT89C51 sebagai pusat kendali. Mikrokontroler AT89C51 mempunyai 4

port, yaitu port 0, port 1, port 2, dan port 3 yang memiliki resistor pull up

yang sama. Jika digunakan sebagai masukan pin pada port 1, 2 dan 3 akan

berada pada kondisi high jika terbuka dan akan menjadi sumber arus jika

dihubungkan dengan piranti eksternal ke ground.

Port yang digunakan dalam IC ini adalah

Port 0 digunakan untuk LCD

Page 52: Tugas Akhir Sample

40

P0.0-P0.7 dihubungkan ke D0-D7 pada LCD

Port 2 digunakan untuk RS&E

E dihubungkan ke P2.6 dan RS dihubungkan ke P2.7.

P2.5 dihubungkan ke sensor bawah dan P2.4 dihubungkan ke sensor atas.

Port 2 yang lain digunakan untuk dihubungkan dengan peralatan elektronik

a. Port2.0 dihubungkan dengan kipas angin

b.Port2.1 dihubungkan dengan bel listrik

c.Port2.2 dihubungkan dengan lampu

d.Port2.3 dihubungkan dengan pompa air

Port 3 digunakan untuk keypad

Sedangkan untuk supply kelistrikan rangkaian menggunakan catu

daya 5, 9 dan 12 Volt. Keypad digunakan untuk mamasukkan input yang

diinginkan yang kemudian ditampilkan pada matriks LCD 2 x 16 karakter.

Rangkaian kendali secara umum terdiri dari : 1) Mikrokontroler AT89C51

(unit kendali utama), 2) driver bel listrik, 3) driver LCD, 4) SSR. Sedangkan

untuk keypad dan LCD sebagai unit input dan penampil.

3.2.2 Alat dan bahan yang digunakan:

a. Mikrokontroler AT89C51 mengacu pada gambar 16.

Tabel 12Spesifikasi komponen Mikrontroler AT89C51

No. Nama komponen Jumlah (buah)1 IC AT89C51 12 Resistor 10 Kς 93 Kristal 12 MHz 14 Kapasitor 33 pF 25 Kapasitor 10 µF 16 Saklar 1

Page 53: Tugas Akhir Sample

41

b. Solid State Relay (SSR) 3 buah mengacu pada gambar 16.

Tabel 13Spesifikasi komponen Solid State Relay (SSR)

No. Nama komponen Jumlah (buah)1 Resistor 10 ς 32 Transistor BD139 33 Optocoupler MOC3041 34 Resistor 560 ς 35 Triac Q4008L4/TO 36 Resistor 330 ς 37 Resistor 29/2W 38 Kapasitor 10 nF/400V 39 Resistor 100 ς 3

c. Sensor Air Atas dan Bawah mengacu pada gambar 16.

Tabel 14Spesifikasi komponen Sensor air atas dan bawah

No. Nama komponen Jumlah (buah)1 IC LM7805 22 Resistor 56 Kς 23 Resistor 1 Kς 44 Resistor Variabel 10 Kς 25 Resistor 4K7 26 IC CA3140 27 Transistor BD139 2

d. Driver Bel mengacu pada gambar 16.

Tabel 15Spesifikasi komponen Driver bel

No. Nama komponen Jumlah (buah)1 Resistor 4K7 12 Transistor BD139 13 Dioda 1N4002 14 Kapasitor 10 µF 15 Relay 1

Page 54: Tugas Akhir Sample

42

e. Catu Daya mengacu pada gambar 16.

Tabel 16Spesifikasi komponen Catu Daya

No. Nama komponen Jumlah (buah)1 Transformator 2A 12 Dioda 3A 23 Kapasitor 2200 µF/25V 14 Kapasitor 2200 µF/16V 15 IC LM7812 16 IC LM7809 17 IC LM7805 18 Dioda 1N4001 19 Transistor 2N3055 210 Kapasitor 100 µF/16V 211 Kapasitor 1000 µF/16V 2

f. LCD M1632

g. Keypad 4x3

h. Pompa air

i. Kipas angin

j. Lampu

k. Bel listrik

3.3 Perancangan Software

Memasukkan program ke sistem berbasis mikrokontroler AT89C51.

Program yang diisikan ke dalam sistem mikrokontroler tersebut adalah

program objek, yaitu hasil assembly dari program sumber assembly yang

dapat berupa kode heksa ataupun biner.

Penentuan program objek yang akan dimasukkan ke dalam memori

dari sistem mikrokontroler ini sangat tergantung pada permintaan perangkat

Page 55: Tugas Akhir Sample

43

lunak dari alat yang digunakan untuk memasukkan program. Software tersebut

bekerja dalam PC dan berfungsi untuk mengambil dan mengirimkan program

objek ke alat tersebut.

Untuk memasukkan program ke dalam flash PEROM AT89C51

diperlukan sebuah alat yang disebut Flash PEROM Programmer. Alat ini

berfungsi untuk mengambil program objek yang ada di PC dan memasukkan

ke dalam Flash PEROM.

Program downloader adalah program yang dapat digunakan untuk

men-download program objek ke dalam memori yang terdapat pada

mikrokontroler. Salah satu alat yang sering digunakan untuk download adalah

Easy Downloader.

Pada Easy Downloader, terdapat dua buah IC mikrokontroler, IC

pertama adalah IC master mikrokontroler yang sudah diisi dengan program

EZ52.hex, sedangkan IC kedua adalah IC slave dari mikrokontroler yang akan

diisi program objek.

3.4 Persiapan Pengoperasian

Untuk dapat menjalankan alat, tentunya langkah pertama adalah

mempersiapkan kelengkapan dari alat tersebut, yaitu seperangkat hardware

yang terdiri dari rangkaian mikrokontroler, rangkaian catu daya, keypad,

LCD, SSR dan peralatan elektroniknya.

Jika peralatan sudah siap, lakukan pengecekan terhadap kabel catu

daya yang menyuplai tegangan pada rangkaian mikrokontroler, keypad, LCD,

SSR dan empat buah peralatan elektronik. Jika semuanya sudah siap, pada

Page 56: Tugas Akhir Sample

44

hardware, menyalakan peralatan elektronik dengan memberi tegangan pada

catu daya dengan menghubungkan kabel catu daya ke tegangan PLN

Selanjutnya pada software program yang sudah dibuat diisikan pada

mikrokontroler dengan menekan tombol keypad kita dapat memberikan

inputan untuk menghidupkan, mematikan dan mengatur waktu yang

diinginkan. Perhatikan nyala dan matinya peralatan elektronik. Jika ada yang

tidak menyala atau mati, coba periksa kabel dari rangkaian mikrokontroler,

peralatan elektronik dan periksa kabel serial. Pastikan terpasang dengan benar.

Jika semuanya sudah sesuai dengan prosedur, maka program dan hardware

akan berjalan lancar.

3.5 Pengujian Alat dan Pengambilan data

Pengujian peralatan ini dilakukan untuk mendapatkan data-data

spesifikasi benda kerja, sehingga pada saat terjadi kerusakan atau gangguan

yang akan menyebabkan tidak berfungsinya sistem secara keseluruhan

maupun sebagian akan dapat dianalisa secara tepat dan mudah melakukan

perbaikan-perbaikan.

Tujuan dari pengujian ini adalah sebagai berikut:

1. Untuk mengetahui bahwa masing-masing blok sistem rangkaian dapat

bekerja dengan baik

2. Untuk memastikan bahwa alat yang dibuat dapat beroperasi dengan baik.

3. Untuk memudahkan pemakaian dan pengoperasian alat, sekaligus untuk

menghindari kesalahan dalam pengoperasian maka perlu diberikan

petunjuk yang benar tentang pengoperasian peralatan tersebut.

Page 57: Tugas Akhir Sample

45

Adapun pengoperasian Pengendalian Peralatan Elektronik Berbasis

Mikrokontroler AT89C51 adalah sebagai berikut:

1. Pemeriksaan perlengkapan yang dibutuhkan:

a.Sistem minimum mikrokontroler AT89C51

b.Catu daya

c.LCD

d.Keypad

e.SSR

2. Persiapan pengoperasian dan pengujian yang diperlukan adalah

memastikan perlengkapan tersebut diatas bekerja dengan baik.

Jika semua rangkaian dapat bekerja dengan baik sesuai dengan yang

telah diharapkan maka rancangan penempatan penggabungan sistem yang

telah ada diterapkan dalam bentuk nyata, sedangkan untuk pengujian akhir

alat ini dapat dilakukan dengan pengoperasian alat tersebut.

a. Pengujian rangkaian sistem minimum AT89C51

Rangkaian sistem minimum merupakan rangkaian yang mengendalikan

alat elektronik yang terdiri dari rangkaian osilator (satu kristal 12 MHz

dan dua kapasitor 33 pF), rangkaian reset (satu resistor 10Kς dan satu

kapasitor 10 µF). Pada rangkaian ini yang akan diuji adalah besarnya

tegangan dan arus pada port-port yang akan digunakan pada IC AT89C51.

b. Pengujian rangkaian pengendali

Rangkaian pengendali merupakan rangkaian yang dapat mengendalikan

beban berupa peralatan elektronik. Pada rangkaian ini yang akan diuji

Page 58: Tugas Akhir Sample

46

pada kondisi bagaimana SSR dapat berfungsi sebagai saklar dan

beroperasi dalam dua keadaan yaitu kondisi saklar tertutup dan kondisi

saklar terbuka sehingga dapat menghidupkan dan mematikan beban berupa

peralatan elektronik.

c. Pengujian sensor atas dan sensor bawah pada air dapat bekerja

Untuk pengujian sensor yang akan diukur di sini adalah pada kondisi

bagaimana sensor tersebut bekerja.

d. Pengujian hubungan antara keypad dan LCD

Bagaimana keypad sebagai piranti untuk melakukan penyetingan

pengendalian peralatan elektronik yang kemudian akan ditampilkan pada

layar LCD.

Page 59: Tugas Akhir Sample

47

BAB IV

HASIL PENELITIAN DAN PEMBAHASAN

4.1 Hasil Penelitian

Setelah seluruh rangkaian selesai dibuat kemudian dilakukan

percobaan dengan mengoperasikannya dan melakukan pengukuran untuk

memperoleh hasil yang dibutuhkan berupa data dan melakukan analisa

sebagai pembahasannya. Dari hasil penelitian semua peralatan elektronik

yang dikendalikan akan bekerja sesuai dengan waktu yang telah ditentukan.

Apabila terjadi listrik mati maka penyetingan ulang waktu yang kita lakukan

akan default.

1.4 Hasil Pengukuran Sistem Minimum

Sistem minimum mikrokontroler AT89C51 mempunyai 4 port yang

tiap port mempunyai 8 pin yang dapat dialamati. Port yang digunakan pada

perangkat ini adalah port 0, port 2 dan port 3. Pengukuran tegangan dan arus

pada pin mikrokontroler yang terhubung dengan piranti lain sama berikut hasil

pengukuran dari sistem minimum.

Tabel 17Hasil pengukuran sistem minimum

Kondisi Tegangan(Volt) Arus(µA)Low/logika 0 0.01 0High/logika 1 4.40 14

47

Page 60: Tugas Akhir Sample

48

4.1.2 Hasil Pengukuran Sensor Air

Pada rangkaian sensor air digunakan IC komparatif CA3140. sensor

ini akan bekerja berdasarkan perbandingan tegangan pada pin 2 (V 2 ) dan pin

3 (V 3 ). Berikut hasil pengukuran tegangan pada sensor air.

Tabel 18Hasil pengukuran sensor

Namasensor

V 2 menyentuh air(Volt)

V 2 tidak menyentuh air(Volt)

V 3

(Volt)Sensor atas 3.82 11.92 5.53Sensor bawah 4.51 11.92 6.42

Output tegangan IC komparatif CA3140 yaitu:

Logika 1 = 9.90 Volt

Logika 0 = 0.01 Volt

Tegangan keluaran IC CA3140 terlalu tinggi, untuk masuk ke

mikrokontroler dibutuhkan tegangan 5 Volt oleh karena itu digunakan IC

LM7805 untuk menghasilkan tegangan 5 Volt.

4.1.3 Hasil Pengukuran Catu Daya

Catu daya menggunakan transformator penurun tegangan tegangan dengan

arus 2 ampere.

Tabel 19Hasil pengukuran catu daya

No Tegangan pada catu daya (Volt) Tegangan keluaran (Volt)1 5 4.902 9 8.943 12 11.58

Page 61: Tugas Akhir Sample

49

4.1.4 Tampilan pada LCD

Tampilan pada layar LCD adalah sebagai berikut:

a. Baris pertama untuk tampilan waktu berupa jam, menit dan detiknya.

Waktu 00:00:00

b. Baris kedua untuk tampilan peralatan elektronik yang dion/offkan serta

pilihan untuk menyimpan atau tidak.

Urutan tampilan dan penyetingan pada LCD yaitu:

1. Set waktu

2. Kipas ON

3. Kipas OFF

4. Lampu ON

5. Lampu OFF

6. Pompa ON

7. Pompa OFF

4.2 Pembahasan

Pengendali peralatan elektronik ini diaplikasikan untuk

mengendalikan pompa air, lampu, kipas angin dan bel listrik pada sebuah

sekolahan dengan waktu yang telah terprogram pada mikrokontroler yaitu:

1. Kipas angin akan menyala sehari sekali dari pagi sampai siang hari pada

jam sekolah yaitu jam 07.00-12.00 WIB. Kipas angin akan menyala

apabila P2.0 pada mikrokontroler berlogika 1 dan akan mati jika mendapat

logika 0.

Page 62: Tugas Akhir Sample

50

2. Lampu akan menyala sehari sekali dari sore sampai pagi hari yaitu jam

18.00-05.00 WIB. Lampu akan menyala apabila P2.2 pada mikrokontroler

berlogika 1 dan akan padam jika mendapat logika 0.

3. Pompa air menyala sehari sekali antara jam 06.00-07.00 WIB. Pompa

akan otomatis menyala apabila air kosong sehingga sensor bawah akan

aktif kemudian menghidupkan pompa air dan akan mati apabila air penuh

yang mengakibatkan sensor atas aktif sehingga mematikan pompa.

Jika tidak ada air maka tegangan sensor bawah yaitu IC komparatif

pada kaki 3 (V 3 ) akan lebih besar dari tegangan pada kaki 2 (V 2 ) maka

output logikanya 1 sehingga transistor BD139 akan on, antara kaki

colector dan emitor seperti saklar tertutup. Program akan mengecek sensor

bawah apabila P2.5 pada mikrokontroler berlogika 1 berarti air kosong dan

akan menyalakan pompa. Apabila P2.5 pada mikrokontroler berlogika 0

berarti air masih ada.

Jika air penuh maka tegangan sensor atas yaitu tegangan IC

komparatif pada kaki 3 (V 3 ) akan lebih kecil dari tegangan pada kaki 2

(V 2 ) maka output logikanya 0 sehingga transistor BD139 akan off, antara

kaki kolector dan emitor seperti saklar terbuka. Program akan mengecek

sensor atas apabila P2.4 pada mikrokontroler berlogika 1 berarti air belum

penuh dan bila P2.4 berlogika 0 berarti air sudah penuh dan akan

mematikan pompa.

Elektroda dalam rangkaian sensor ini dibutuhkan 3 elektroda. Yang

pertama sebagai ground, kedua sebagai sensor atas dan yang ketiga

Page 63: Tugas Akhir Sample

51

sebagai sensor atas. Elektroda yang dipakai adalah logam yang

mempunyai resistansi rendah dan tidak karat. Yang lebih utama adalah

elektroda tersebut dapat menghantarkan arus listrik yang baik, karena jika

elektroda tersebut daya penghantarnya rendah akan menyulitkan kerja

rangkaian.

4. Bel listrik akan berbunyi tujuh kali sehari selama 3 detik yaitu pada waktu:

a. Jam 07.00 WIB

b. Jam 07.45 WIB

c. Jam 08.30 WIB

d. Jam 09.15 WIB

e. Jam 10.00 WIB

f. Jam 10.15 WIB

g. Jam 11.00 WIB

Driver bel akan bekerja jika memperoleh kondisi high atau P2.1

pada mikrokontroler berlogika 1 sehingga relay akan on dan menyalakan

bel. Apabila P2.1 pada mikrokontroler berlogika 0 maka relay akan off

seningga bel akan mati.

5. Solid State Relay (SSR)

Jika ada logik 1 pada input rangkaian ini, maka transistor BD139

akan aktif dan antara kaki colector dan kaki emitor seolah-olah seperti

saklar tertutup sehingga arus akan lewat dari power supply melewati MOC

kaki 1 dan 2. Hal ini akan mengakibatkan LED yang berada di dalam

MOC3041 aktif dan transistor yang berada di dalam MOC3041 juga aktif.

Page 64: Tugas Akhir Sample

52

Keadaan ini akan mengakibatkan arus dari jala-jala 220VAC mengalir ke

kaki Gate triac dan akan memicu triac tersebut. Pemicuan ini

mengakibatkan kaki MT1 dan MT2 akan terhubung dan jala-jala 220VAC

akan mengalir melalui beban. Hal ini berakibat beban on. C 10nF/400V

pada rangkaian ini berfungsi untuk mengurangi arus yang sangat besar saat

beban mulai on.

Jika terdapat logika 0 pada input rangkaian ini, maka transistor

BD139 tidak akan aktif dan antara kaki colektor dan kaki emitor seolah-

olah seperti saklar tebuka. Hal ini mengakibatkan LED dan transistor yang

berada di dalam MOC3041 tidak aktif dan tidak akan ada pemicuan pada

triac sehingga beban tidak terhubung ke jala-jala 220VAC atau dengan

kata lain beban off.

Transistor yang digunakan pada rangkaian yaitu tipe BD139 pada

dasarnya berfungsi sebagai saklar bila transistor dioperasikan pada daerah

jenuh (saturasi) dan daerah mati (cut off), sehingga sifat terminal terhadap

emiter sebagai saklar, dan basis sebagai kendali.

Untuk transistor pada sensor atas, bawah dan driver bel

mempunyai rangkaian yang sama dengan tegangan sumber basis 5 volt

membiasmajukan dioda emiter melalui resistansi pembatas arus 4K7.

Karena dioda emiter memiliki tegangan 0,7 Volt maka dapat dihitung

tegangan basis dan arus basis yang melalui resistor basis yaitu:

V BB -V BE = 5 V - 0.7 V = 4.3 V

Page 65: Tugas Akhir Sample

53

I B =B

BEBB

RVV − =

743.4K

V = 0.9 mA

Jadi apabila tegangan pada basis minimal sudah mencapai 0.7 volt

maka transistor akan on.

6. Catu daya

Setelah tegangan 220 VAC disearahkan oleh dioda menjadi

tegangan DC dan masuk ke IC rgulator LM7805, LM7809 dan LM7812

untuk menghasilkan tegangan 5 Volt, 9 Volt dan 12 Volt. Tegangan 5 volt

digunakan untuk mikrokontroler, LCD, keypad dan SSR. Tegangan 9

Volt untuk bel. Tegangan 12 Volt untuk sensor atas dan bawah serta

untuk driver bel.

Apabila ada perubahan waktu dari yang telah terprogram di

mikrokontroler dapat dilakukan penyetingan ulang kecuali untuk bel tidak

dapat diseting ulang. Penyetingan dilakukan dengan menekan tombol keypad

yang kemudian akan ditampilkan pada layar LCD. Jika pada waktu yang

bersamaan ada dua peralatan elektronik yang dinyalakan maka akan

ditampilkan secara bergantian di layar LCD.

Fungsi masing-masing tombol pada keypad adalah sebagai berikut:

a. Tombol * untuk penyetingan dan enter

b. Tombol # untuk pindah spasi

c. Tombol 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 untuk mengatur waktu yang diinginkan

d. Tombol 1 untuk pilihan penyimpanan setingan

e. Tombol 0 untuk pilihan tidak menyimpan setingan

Page 66: Tugas Akhir Sample

54

Untuk mengirimkan instruksi ke LCD diberikan logika 0 pada pin RS yang

terhubung pada port 2.7 sedangkan untuk mengirimkan data diberikan logika 1.

Untuk mengaktifkan clock LCD pada pin E yang terhubung pada port 2.6.

logika 1 pada pin ini diberikan pada saat penulisan atau pembacaan data.

4.3 Keterbatasan Penelitian

1. Apabila terjadi catu daya mati maka setingan ulang yang tersimpan akan

hilang.

2. Waktu bel berbunyi sudah ditentukan dan tidak bisa diseting ulang dan

hanya berbunyi selama 3 detik.

3. Tidak terdapat tombol khusus untuk mereset.

4. Alat ini hanya bisa mengendalikan empat peralatan elektronik saja

Page 67: Tugas Akhir Sample

55

BAB V

PENUTUP

5.1 Kesimpulan

1. Untuk membuat pengendali peralatan elektronik berbasis mikrokontroler

dibutuhkan piranti yaitu mikrokontroler AT89C51, catu daya, LCD,

keypad, SSR, sensor dan driver.

2. Pengendali ini hanya digunakan pada kipas angin, lampu, pompa air dan

bel listrik.

3. Peralatan elektronik akan ON dan OFF setiap hari sama sesuai dengan

waktu yang telah terprogram dengan siklus 24 jam, kecuali bila

dilakukan penyetingan ulang.

4. Data waktu peralatan elektronik ON dan OFF yang telah terprogram

pada mikrokontroler tersimpan dalam ROM sehingga jika power OFF

data masih tersimpan, sedangkan data waktu penyetingan ulang

tersimpan dalam RAM sehingga jika power OFF maka data akan hilang.

5.2 Saran

1. Untuk hari jumat dan minggu waktu peralatan ON dan OFF dibuat

berbeda dengan hari-hari lainnya.

2. Diharapkan bisa dilakukan penyetingan waktu ulang untuk semua

peralatan elektronik apabila ada perubahan waktu dengan yang telah

terseting.

55

Page 68: Tugas Akhir Sample

56

3. Pembuatan pengendali peralatan elektronik selanjutnya bisa

mengendalikan peralatan yang lebih banyak dan beragam.

4. Untuk penelitian selanjutnya diharapkan dibuat menu-menu yang lebih

lengkap agar penyetingan lebih mudah dilakukan dan lebih efisien.

Page 69: Tugas Akhir Sample

57

DAFTAR PUSTAKA

Albert Paul Malvino Ph.D.,EE. 2003. Prinsip-Prinsip Elektronika. Jakarta:Salemba Teknika

Andi Nalwan, Paulus. 2004. Panduan Praktis Penggunaan & Antarmuka ModulLCD M1632. Jakarta: PT Elex Media Komputindo

Andi Nalwan, Paulus. 2003. Panduan Praktis Teknik Antarmuka DanPemrograman Mikrokontroler AT 89C51. Jakarta: PT Elex MediaKomputindo

1995. Atmel Corporation Mikrokontroler Data Book. California: AT CorCalifornia

Dennis Roddy, John Coolen. 1993. Komunikasi Elektronika Jilid I. Edisi Ketiga.Jakarta: Erlangga

Dennis Roddy, John Coolen. 1993. Komunikasi Elektronika jilid II. Edisi Ketiga.Jakarta: Erlangga

Eko Putra, Agfianto. 2005. Belajar Mikrokontroler AT89C51/52/55 Teori danAplikasi. Yogyakarta: Gava Media

Green DC. 2000. Komunikasi Data. Yogyakarta: Andi Yogyakarta

Heijer den P.c, R. Tolsma. 1987. Komunikasi Data. Jakarta: PT. Elex MediaKomputindo

Silaban Pantur Ph.D. 1981. Dasar-Dasar Elektroteknik Jilid 1. Jakarta: Erlangga

Sudjadi. 2005. Teori dan Aplikasi Mikrokontroler. Aplikasi pada MikrokontrolerAT89C51. Yogyakarta: Graha Ilmu

Suhata, ST. 2005. VB Sebagai Pusat Kendali Peralatan Elektronik. Jakarta: PTElex Media Komputindo

www.datasheetcatalog.com

57

Page 70: Tugas Akhir Sample

58

LAMPIRAN

Page 71: Tugas Akhir Sample

59

Gambar 13. Kostruksi keypad 4x3

123456789101 1121314151617181920

1

0

987

654

32

* #

R1

R2

R3

R4

C1C2

C3

VCCGND

P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7

P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7

5V

Gambar 14. Hubungan mikrokontroler ke keypad

Gambar 15. Rangkaian bel

Page 72: Tugas Akhir Sample

62

5VDC

C

R array 10K

123456789

R/W

100

12

330

G

5VDC

10nF/400V

13

12VDC

29/2W

AT89C51

91819 29

30

31

40

12345678

2122232425262728

1011121314151617

3938373635343332

RSTXTAL2XTAL1 PSEN

ALE/PROG

EA/VPP

VCC

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

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

0

3

S1

10K

MT1

4K7

29/2W

12VDC

BD 139

8

2

10

220 VAC

POMPA

ELEKTRODA1

3

2

29/2W

MT2

4K7

10uF

12

Q4008L4/TO

56K

Vee

LCD 2 X 16

G

BD139

ELEKTRODA3

D0

K1

100

1K

15

4K7

12

12MHz

10K

MT1

BEL

6

K2

1K

BD139

Vss Vss

7

1K

5VDC

KIPAS

BD139

K3

149

CIRCUITCROSSZERO

MOC3041

1

2

6

4

+

-

CA3140

3

26

7 54 8 1

220 VAC

10

BD139

10

B1

D7D1

100uF

11

8

LM78051

2

3VI

GN

D

VO

*

RELAY

CIRCUITCROSSZERO

MOC3041

1

2

6

4

ELEKTRODA2

330

SENSOR ATAS

E

7

100

1

5 VCC

BD139

Vcc

MT2

B2

9

6

D2

VCC

5VDC

LM78051

2

3VI

GN

D

VO

#

G

B3

CIRCUITCROSSZERO

MOC3041

1

2

6

4

D6D4

10nF/400V

VCC

1K

10

SENSOR BAWAH

MT1

4

B4

RS

12

560

33056K

2x 33pF

K3 B3 B2

10k

LAMPU

K2 B1 K1 B4

10nF/400V

Vss

4

1N4002

Q4008L4/TO

12V

+

-

CA3140

3

26

7 54 8 1

5

220 VAC

D3

1

5VDC

Q4008L4/TO

16

MT2

560

VR 10K

560

D5

VR 10K

Gambar 16. Rangkaian lengkap pengendali peralatan elektronik berbasis mikrokontroler AT89C51

Page 73: Tugas Akhir Sample

DATA SHEET

Product specificationSupersedes data of 1997 Mar 04

1999 Apr 12

DISCRETE SEMICONDUCTORS

BD135; BD137; BD139NPN power transistors

book, halfpage

M3D100

Page 74: Tugas Akhir Sample

1999 Apr 12 2

Philips Semiconductors Product specification

NPN power transistors BD135; BD137; BD139

FEATURES

• High current (max. 1.5 A)

• Low voltage (max. 80 V).

APPLICATIONS

• Driver stages in hi-fi amplifiers and television circuits.

DESCRIPTION

NPN power transistor in a TO-126; SOT32 plasticpackage. PNP complements: BD136, BD138 and BD140.

PINNING

PIN DESCRIPTION

1 emitter

2 collector, connected to metal part ofmounting surface

3 base

Fig.1 Simplified outline (TO-126; SOT32) andsymbol.

handbook, halfpage

MAM2541 2 3 Top view

1

2

3

LIMITING VALUESIn accordance with the Absolute Maximum Rating System (IEC 134).

SYMBOL PARAMETER CONDITIONS MIN. MAX. UNIT

VCBO collector-base voltage open emitter

BD135 − 45 V

BD137 − 60 V

BD139 − 100 V

VCEO collector-emitter voltage open base

BD135 − 45 V

BD137 − 60 V

BD139 − 80 V

VEBO emitter-base voltage open collector − 5 V

IC collector current (DC) − 1.5 A

ICM peak collector current − 2 A

IBM peak base current − 1 A

Ptot total power dissipation Tmb ≤ 70 °C − 8 W

Tstg storage temperature −65 +150 °CTj junction temperature − 150 °CTamb operating ambient temperature −65 +150 °C

Page 75: Tugas Akhir Sample

1999 Apr 12 3

Philips Semiconductors Product specification

NPN power transistors BD135; BD137; BD139

THERMAL CHARACTERISTICS

Note

1. Refer to TO-126; SOT32 standard mounting conditions.

CHARACTERISTICSTj = 25 °C unless otherwise specified.

SYMBOL PARAMETER CONDITIONS VALUE UNIT

Rth j-a thermal resistance from junction to ambient note 1 100 K/W

Rth j-mb thermal resistance from junction to mounting base 10 K/W

SYMBOL PARAMETER CONDITIONS MIN. TYP. MAX. UNIT

ICBO collector cut-off current IE = 0; VCB = 30 V − − 100 nA

IE = 0; VCB = 30 V; Tj = 125 °C − − 10 µA

IEBO emitter cut-off current IC = 0; VEB = 5 V − − 100 nA

hFE DC current gain VCE = 2 V; (see Fig.2)

IC = 5 mA 40 − −IC = 150 mA 63 − 250

IC = 500 mA 25 − −DC current gain IC = 150 mA; VCE = 2 V;

(see Fig.2)BD135-10; BD137-10; BD139-10 63 − 160

BD135-16; BD137-16; BD139-16 100 − 250

VCEsat collector-emitter saturation voltage IC = 500 mA; IB = 50 mA − − 0.5 V

VBE base-emitter voltage IC = 500 mA; VCE = 2 V − − 1 V

fT transition frequency IC = 50 mA; VCE = 5 V;f = 100 MHz

− 190 − MHz

DC current gain ratio of thecomplementary pairs

IC = 150 mA; VCE = 2 V − 1.3 1.6hFE1

hFE2-----------

Page 76: Tugas Akhir Sample

1999 Apr 12 4

Philips Semiconductors Product specification

NPN power transistors BD135; BD137; BD139

Fig.2 DC current gain; typical values.

handbook, full pagewidth

0

160

80

120

40

MBH729

10−1

hFE

1 IC (mA)10 103102

VCE = 2 V

Page 77: Tugas Akhir Sample

1999 Apr 12 5

Philips Semiconductors Product specification

NPN power transistors BD135; BD137; BD139

PACKAGE OUTLINE

UNIT bp c D E e1 L Q w

REFERENCESOUTLINEVERSION

EUROPEANPROJECTION ISSUE DATE

IEC JEDEC EIAJ

mm 0.880.65

2.72.3

0.600.45

11.110.5

7.87.2

2.29

e

4.58 0.254

P

3.23.0

P1

3.93.6

DIMENSIONS (mm are the original dimensions)

Note

1. Terminal dimensions within this zone are uncontrolled to allow for flow of plastic and terminal irregularities.

16.515.3

1.50.9

L1(1)

max

2.54

SOT32 TO-126 97-03-04

0 2.5 5 mm

scale

A

Plastic single-ended leaded (through hole) package; mountable to heatsink, 1 mounting hole; 3 leads SOT32

D

P1

P

E

e1

A

L

Q

cbp

1 2 3

L1

w M

e

Page 78: Tugas Akhir Sample

1999 Apr 12 6

Philips Semiconductors Product specification

NPN power transistors BD135; BD137; BD139

DEFINITIONS

LIFE SUPPORT APPLICATIONS

These products are not designed for use in life support appliances, devices, or systems where malfunction of theseproducts can reasonably be expected to result in personal injury. Philips customers using or selling these products foruse in such applications do so at their own risk and agree to fully indemnify Philips for any damages resulting from suchimproper use or sale.

Data Sheet Status

Objective specification This data sheet contains target or goal specifications for product development.

Preliminary specification This data sheet contains preliminary data; supplementary data may be published later.

Product specification This data sheet contains final product specifications.

Limiting values

Limiting values given are in accordance with the Absolute Maximum Rating System (IEC 134). Stress above one ormore of the limiting values may cause permanent damage to the device. These are stress ratings only and operationof the device at these or at any other conditions above those given in the Characteristics sections of the specificationis not implied. Exposure to limiting values for extended periods may affect device reliability.

Application information

Where application information is given, it is advisory and does not form part of the specification.

Page 79: Tugas Akhir Sample

Internet: http://www.semiconductors.philips.com

Philips Semiconductors – a worldwide company

© Philips Electronics N.V. 1999 SCA63

All rights are reserved. Reproduction in whole or in part is prohibited without the prior written consent of the copyright owner.

The information presented in this document does not form part of any quotation or contract, is believed to be accurate and reliable and may be changedwithout notice. No liability will be accepted by the publisher for any consequence of its use. Publication thereof does not convey nor imply any licenseunder patent- or other industrial or intellectual property rights.

Netherlands: Postbus 90050, 5600 PB EINDHOVEN, Bldg. VB,Tel. +31 40 27 82785, Fax. +31 40 27 88399

New Zealand: 2 Wagener Place, C.P.O. Box 1041, AUCKLAND,Tel. +64 9 849 4160, Fax. +64 9 849 7811

Norway: Box 1, Manglerud 0612, OSLO,Tel. +47 22 74 8000, Fax. +47 22 74 8341

Pakistan: see Singapore

Philippines: Philips Semiconductors Philippines Inc.,106 Valero St. Salcedo Village, P.O. Box 2108 MCC, MAKATI,Metro MANILA, Tel. +63 2 816 6380, Fax. +63 2 817 3474

Poland: Ul. Lukiska 10, PL 04-123 WARSZAWA,Tel. +48 22 612 2831, Fax. +48 22 612 2327

Portugal: see Spain

Romania: see Italy

Russia: Philips Russia, Ul. Usatcheva 35A, 119048 MOSCOW,Tel. +7 095 755 6918, Fax. +7 095 755 6919

Singapore: Lorong 1, Toa Payoh, SINGAPORE 319762,Tel. +65 350 2538, Fax. +65 251 6500

Slovakia: see Austria

Slovenia: see Italy

South Africa: S.A. PHILIPS Pty Ltd., 195-215 Main Road Martindale,2092 JOHANNESBURG, P.O. Box 7430 Johannesburg 2000,Tel. +27 11 470 5911, Fax. +27 11 470 5494

South America: Al. Vicente Pinzon, 173, 6th floor,04547-130 SÃO PAULO, SP, Brazil,Tel. +55 11 821 2333, Fax. +55 11 821 2382

Spain: Balmes 22, 08007 BARCELONA,Tel. +34 93 301 6312, Fax. +34 93 301 4107

Sweden: Kottbygatan 7, Akalla, S-16485 STOCKHOLM,Tel. +46 8 5985 2000, Fax. +46 8 5985 2745

Switzerland: Allmendstrasse 140, CH-8027 ZÜRICH,Tel. +41 1 488 2741 Fax. +41 1 488 3263

Taiwan: Philips Semiconductors, 6F, No. 96, Chien Kuo N. Rd., Sec. 1,TAIPEI, Taiwan Tel. +886 2 2134 2886, Fax. +886 2 2134 2874

Thailand: PHILIPS ELECTRONICS (THAILAND) Ltd.,209/2 Sanpavuth-Bangna Road Prakanong, BANGKOK 10260,Tel. +66 2 745 4090, Fax. +66 2 398 0793

Turkey: Talatpasa Cad. No. 5, 80640 GÜLTEPE/ISTANBUL,Tel. +90 212 279 2770, Fax. +90 212 282 6707

Ukraine : PHILIPS UKRAINE, 4 Patrice Lumumba str., Building B, Floor 7,252042 KIEV, Tel. +380 44 264 2776, Fax. +380 44 268 0461

United Kingdom: Philips Semiconductors Ltd., 276 Bath Road, Hayes,MIDDLESEX UB3 5BX, Tel. +44 181 730 5000, Fax. +44 181 754 8421

United States: 811 East Arques Avenue, SUNNYVALE, CA 94088-3409,Tel. +1 800 234 7381, Fax. +1 800 943 0087

Uruguay: see South America

Vietnam: see Singapore

Yugoslavia: PHILIPS, Trg N. Pasica 5/v, 11000 BEOGRAD,Tel. +381 11 62 5344, Fax.+381 11 63 5777

For all other countries apply to: Philips Semiconductors,International Marketing & Sales Communications, Building BE-p, P.O. Box 218,5600 MD EINDHOVEN, The Netherlands, Fax. +31 40 27 24825

Argentina: see South America

Australia: 34 Waterloo Road, NORTH RYDE, NSW 2113,Tel. +61 2 9805 4455, Fax. +61 2 9805 4466

Austria: Computerstr. 6, A-1101 WIEN, P.O. Box 213,Tel. +43 1 60 101 1248, Fax. +43 1 60 101 1210

Belarus: Hotel Minsk Business Center, Bld. 3, r. 1211, Volodarski Str. 6,220050 MINSK, Tel. +375 172 20 0733, Fax. +375 172 20 0773

Belgium: see The Netherlands

Brazil: see South America

Bulgaria: Philips Bulgaria Ltd., Energoproject, 15th floor,51 James Bourchier Blvd., 1407 SOFIA,Tel. +359 2 68 9211, Fax. +359 2 68 9102

Canada: PHILIPS SEMICONDUCTORS/COMPONENTS,Tel. +1 800 234 7381, Fax. +1 800 943 0087

China/Hong Kong: 501 Hong Kong Industrial Technology Centre,72 Tat Chee Avenue, Kowloon Tong, HONG KONG,Tel. +852 2319 7888, Fax. +852 2319 7700

Colombia: see South America

Czech Republic: see Austria

Denmark: Sydhavnsgade 23, 1780 COPENHAGEN V,Tel. +45 33 29 3333, Fax. +45 33 29 3905

Finland: Sinikalliontie 3, FIN-02630 ESPOO,Tel. +358 9 615 800, Fax. +358 9 6158 0920

France: 51 Rue Carnot, BP317, 92156 SURESNES Cedex,Tel. +33 1 4099 6161, Fax. +33 1 4099 6427

Germany: Hammerbrookstraße 69, D-20097 HAMBURG,Tel. +49 40 2353 60, Fax. +49 40 2353 6300

Hungary: see Austria

India: Philips INDIA Ltd, Band Box Building, 2nd floor,254-D, Dr. Annie Besant Road, Worli, MUMBAI 400 025,Tel. +91 22 493 8541, Fax. +91 22 493 0966

Indonesia: PT Philips Development Corporation, Semiconductors Division,Gedung Philips, Jl. Buncit Raya Kav.99-100, JAKARTA 12510,Tel. +62 21 794 0040 ext. 2501, Fax. +62 21 794 0080

Ireland: Newstead, Clonskeagh, DUBLIN 14,Tel. +353 1 7640 000, Fax. +353 1 7640 200

Israel: RAPAC Electronics, 7 Kehilat Saloniki St, PO Box 18053,TEL AVIV 61180, Tel. +972 3 645 0444, Fax. +972 3 649 1007

Italy: PHILIPS SEMICONDUCTORS, Piazza IV Novembre 3,20124 MILANO, Tel. +39 2 6752 2531, Fax. +39 2 6752 2557

Japan: Philips Bldg 13-37, Kohnan 2-chome, Minato-ku,TOKYO 108-8507, Tel. +81 3 3740 5130, Fax. +81 3 3740 5077

Korea: Philips House, 260-199 Itaewon-dong, Yongsan-ku, SEOUL,Tel. +82 2 709 1412, Fax. +82 2 709 1415

Malaysia: No. 76 Jalan Universiti, 46200 PETALING JAYA, SELANGOR,Tel. +60 3 750 5214, Fax. +60 3 757 4880

Mexico: 5900 Gateway East, Suite 200, EL PASO, TEXAS 79905,Tel. +9-5 800 234 7381, Fax +9-5 800 943 0087

Middle East: see Italy

Printed in The Netherlands 115002/00/03/pp8 Date of release: 1999 Apr 12 Document order number: 9397 750 05576

Page 80: Tugas Akhir Sample

8-bit Microcontroller with 4K Bytes Flash

AT89C51

Not Recommended

Features• Compatible with MCS-51™ Products• 4K Bytes of In-System Reprogrammable Flash Memory

– Endurance: 1,000 Write/Erase Cycles• Fully Static Operation: 0 Hz to 24 MHz• Three-level Program Memory Lock• 128 x 8-bit Internal RAM• 32 Programmable I/O Lines• Two 16-bit Timer/Counters• Six Interrupt Sources• Programmable Serial Channel• Low-power Idle and Power-down Modes

DescriptionThe AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with 4Kbytes of Flash programmable and erasable read only memory (PEROM). The deviceis manufactured using Atmel’s high-density nonvolatile memory technology and iscompatible with the industry-standard MCS-51 instruction set and pinout. The on-chipFlash allows the program memory to be reprogrammed in-system or by a conven-tional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flashon a monolithic chip, the Atmel AT89C51 is a powerful microcomputer which providesa highly-flexible and cost-effective solution to many embedded control applications.

1

PQFP/TQFP

1234567891011

3332313029282726252423

P1.5P1.6P1.7RST

(RXD) P3.0NC

(TXD) P3.1(INT0) P3.2(INT1) P3.3

(T0) P3.4(T1) P3.5

PO.4 (AD4)P0.5 (AD5)P0.6 (AD6)P0.7 (AD7)EA/VPPNCALE/PROGPSENP2.7 (A15)P2.6 (A14)P2.5 (A13)

44 43 42 41 40 39 38 37 36 35 34

12 13 14 15 16 17 18 19 20 21 22

(WR

)P3.

6(R

D)

P3.

7X

TA

L2X

TA

L1G

ND

GN

D(A

8) P

2.0

(A9)

P2.

1(A

10)

P2.

2(A

11)

P2.

3(A

12)

P2.

4

P1.

4P

1.3

P1.

2 P

1.1

(T2

EX

)P

1.0

(T2)

NC

VC

CP

0.0

(AD

0)P

0.1

(AD

1)P

0.2

(AD

2)P

0.3

(AD

3)

PDIP

1234567891011121314151617181920

4039383736353433323130292827262524232221

P1.0 P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST

(RXD) P3.0(TXD) P3.1(INT0) P3.2(INT1) P3.3

(T0) P3.4(T1) P3.5

(WR) P3.6(RD) P3.7

XTAL2XTAL1

GND

VCCP0.0 (AD0)P0.1 (AD1)P0.2 (AD2)P0.3 (AD3)P0.4 (AD4)P0.5 (AD5)P0.6 (AD6)P0.7 (AD7)EA/VPPALE/PROGPSENP2.7 (A15)P2.6 (A14)P2.5 (A13)P2.4 (A12)P2.3 (A11)P2.2 (A10)P2.1 (A9)P2.0 (A8)

Rev. 0265G–02/00

for New Designs. Use AT89S51.

Pin Configurations

PLCC

7891011121314151617

3938373635343332313029

P1.5P1.6P1.7RST

(RXD) P3.0NC

(TXD) P3.1(INT0) P3.2(INT1) P3.3

(T0) P3.4(T1) P3.5

PO.4 (AD4)P0.5 (AD5)P0.6 (AD6)P0.7 (AD7)EA/VPPNCALE/PROGPSENP2.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(R

D)

P3.

7X

TA

L2X

TA

L1G

ND

NC

(A8)

P2.

0(A

9) P

2.1

(A10

) P

2.2

(A11

) P

2.3

(A12

) P

2.4

P1.

4P

1.3

P1.

2 P

1.1

P1.

0N

CV

CC

P0.

0 (A

D0)

P0.

1 (A

D1)

P0.

2 (A

D2)

P0.

3 (A

D3)

Page 81: Tugas Akhir Sample

AT89C512

Block Diagram

PORT 2 DRIVERS

PORT 2LATCH

P2.0 - P2.7

FLASHPORT 0LATCHRAM

PROGRAMADDRESSREGISTER

BUFFER

PCINCREMENTER

PROGRAMCOUNTER

DPTR

RAM ADDR.REGISTER

INSTRUCTIONREGISTER

BREGISTER

INTERRUPT, SERIAL PORT,AND TIMER BLOCKS

STACKPOINTERACC

TMP2 TMP1

ALU

PSW

TIMINGAND

CONTROL

PORT 3LATCH

PORT 3 DRIVERS

P3.0 - P3.7

PORT 1LATCH

PORT 1 DRIVERS

P1.0 - P1.7

OSC

GND

VCC

PSEN

ALE/PROG

EA / VPP

RST

PORT 0 DRIVERS

P0.0 - P0.7

Page 82: Tugas Akhir Sample

AT89C51

The AT89C51 provides the following standard features: 4Kbytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16-bittimer/counters, a five vector two-level interrupt architecture,a full duplex serial port, on-chip oscillator and clock cir-cuitry. In addition, the AT89C51 is designed with static logicfor operation down to zero frequency and supports twosoftware selectable power saving modes. The Idle Modestops the CPU while allowing the RAM, timer/counters,serial port and interrupt system to continue functioning. ThePower-down Mode saves the RAM contents but freezesthe oscillator disabling all other chip functions until the nexthardware reset.

Pin Description

VCC

Supply voltage.

GND

Ground.

Port 0

Port 0 is an 8-bit open-drain bi-directional I/O port. As anoutput port, each pin can sink eight TTL inputs. When 1sare written to port 0 pins, the pins can be used as high-impedance inputs.

Port 0 may also be configured to be the multiplexed low-order address/data bus during accesses to external pro-gram and data memory. In this mode P0 has internalpullups.

Port 0 also receives the code bytes during Flash program-ming, and outputs the code bytes during programverification. External pullups are required during programverification.

Port 1

Port 1 is an 8-bit bi-directional I/O port with internal pullups.The Port 1 output buffers can sink/source four TTL inputs.When 1s are written to Port 1 pins they are pulled high bythe internal pullups and can be used as inputs. As inputs,Port 1 pins that are externally being pulled low will sourcecurrent (IIL) because of the internal pullups.

Port 1 also receives the low-order address bytes duringFlash programming and verification.

Port 2

Port 2 is an 8-bit bi-directional I/O port with internal pullups.The Port 2 output buffers can sink/source four TTL inputs.When 1s are written to Port 2 pins they are pulled high bythe internal pullups and can be used as inputs. As inputs,

Port 2 pins that are externally being pulled low will sourcecurrent (IIL) because of the internal pullups.

Port 2 emits the high-order address byte during fetchesfrom external program memory and during accesses toexternal data memory that use 16-bit addresses (MOVX @DPTR). In this application, it uses strong internal pullupswhen emitting 1s. During accesses to external data mem-ory that use 8-bit addresses (MOVX @ RI), Port 2 emits thecontents of the P2 Special Function Register.

Port 2 also receives the high-order address bits and somecontrol signals during Flash programming and verification.

Port 3

Port 3 is an 8-bit bi-directional I/O port with internal pullups.The Port 3 output buffers can sink/source four TTL inputs.When 1s are written to Port 3 pins they are pulled high bythe internal pullups and can be used as inputs. As inputs,Port 3 pins that are externally being pulled low will sourcecurrent (IIL) because of the pullups.

Port 3 also serves the functions of various special featuresof the AT89C51 as listed below:

Port 3 also receives some control signals for Flash pro-gramming and verification.

RST

Reset input. A high on this pin for two machine cycles whilethe oscillator is running resets the device.

ALE/PROG

Address Latch Enable output pulse for latching the low byteof the address during accesses to external memory. Thispin is also the program pulse input (PROG) during Flashprogramming.

In normal operation ALE is emitted at a constant rate of 1/6the oscillator frequency, and may be used for external tim-ing or clocking purposes. Note, however, that one ALE

Port Pin Alternate Functions

P3.0 RXD (serial input port)

P3.1 TXD (serial output port)

P3.2 INT0 (external interrupt 0)

P3.3 INT1 (external interrupt 1)

P3.4 T0 (timer 0 external input)

P3.5 T1 (timer 1 external input)

P3.6 WR (external data memory write strobe)

P3.7 RD (external data memory read strobe)

3

Page 83: Tugas Akhir Sample

pulse is skipped during each access to external DataMemory.

If desired, ALE operation can be disabled by setting bit 0 ofSFR location 8EH. With the bit set, ALE is active only dur-ing a MOVX or MOVC instruction. Otherwise, the pin isweakly pulled high. Setting the ALE-disable bit has noeffect if the microcontroller is in external execution mode.

PSEN

Program Store Enable is the read strobe to external pro-gram memory.

When the AT89C51 is executing code from external pro-gram memory, PSEN is activated twice each machinecycle, except that two PSEN activations are skipped duringeach access to external data memory.

EA/VPP

External Access Enable. EA must be strapped to GND inorder to enable the device to fetch code from external pro-gram memory locations starting at 0000H up to FFFFH.Note, however, that if lock bit 1 is programmed, EA will beinternally latched on reset.

EA should be strapped to VCC for internal programexecutions.

This pin also receives the 12-volt programming enable volt-age (VPP) during Flash programming, for parts that require12-volt VPP.

XTAL1

Input to the inverting oscillator amplifier and input to theinternal clock operating circuit.

XTAL2

Output from the inverting oscillator amplifier.

Oscillator Characteristics XTAL1 and XTAL2 are the input and output, respectively,of an inverting amplifier which can be configured for use asan on-chip oscillator, as shown in Figure 1. Either a quartzcrystal or ceramic resonator may be used. To drive thedevice from an external clock source, XTAL2 should be left

unconnected while XTAL1 is driven as shown in Figure 2.There are no requirements on the duty cycle of the externalclock signal, since the input to the internal clocking circuitryis through a divide-by-two flip-flop, but minimum and maxi-mum voltage high and low time specifications must beobserved.

Idle Mode In idle mode, the CPU puts itself to sleep while all the on-chip peripherals remain active. The mode is invoked bysoftware. The content of the on-chip RAM and all the spe-cial functions registers remain unchanged during thismode. The idle mode can be terminated by any enabledinterrupt or by a hardware reset.

It should be noted that when idle is terminated by a hardware reset, the device normally resumes program execu-tion, from where it left off, up to two machine cycles beforethe internal reset algorithm takes control. On-chip hardwareinhibits access to internal RAM in this event, but access tothe port pins is not inhibited. To eliminate the possibility ofan unexpected write to a port pin when Idle is terminated byreset, the instruction following the one that invokes Idleshould not be one that writes to a port pin or to externalmemory.

Figure 1. Oscillator Connections

Note: C1, C2 = 30 pF ± 10 pF for Crystals= 40 pF ± 10 pF for Ceramic Resonators

C2XTAL2

GND

XTAL1C1

Status of External Pins During Idle and Power-down ModesMode Program Memory ALE PSEN PORT0 PORT1 PORT2 PORT3

Idle Internal 1 1 Data Data Data Data

Idle External 1 1 Float Data Address Data

Power-down Internal 0 0 Data Data Data Data

Power-down External 0 0 Float Data Data Data

AT89C514

Page 84: Tugas Akhir Sample

AT89C51

Figure 2. External Clock Drive Configuration

Power-down Mode In the power-down mode, the oscillator is stopped, and theinstruction that invokes power-down is the last instructionexecuted. The on-chip RAM and Special Function Regis-

ters retain their values until the power-down mode isterminated. The only exit from power-down is a hardwarereset. Reset redefines the SFRs but does not change theon-chip RAM. The reset should not be activated before VCCis restored to its normal operating level and must be heldactive long enough to allow the oscillator to restart andstabilize.

Program Memory Lock Bits On the chip are three lock bits which can be left unpro-grammed (U) or can be programmed (P) to obtain theadditional features listed in the table below.

When lock bit 1 is programmed, the logic level at the EA pinis sampled and latched during reset. If the device is pow-ered up without a reset, the latch initializes to a randomvalue, and holds that value until reset is activated. It is nec-essary that the latched value of EA be in agreement withthe current logic level at that pin in order for the device tofunction properly.

Lock Bit Protection ModesProgram Lock Bits

Protection TypeLB1 LB2 LB3

1 U U U No program lock features

2 P U U MOVC instructions executed from external program memory are disabled from fetching code bytes from internal memory, EA is sampled and latched on reset, and further programming of the Flash is disabled

3 P P U Same as mode 2, also verify is disabled

4 P P P Same as mode 3, also external execution is disabled

5

Page 85: Tugas Akhir Sample

Programming the Flash The AT89C51 is normally shipped with the on-chip Flashmemory array in the erased state (that is, contents = FFH)and ready to be programmed. The programming interfaceaccepts either a high-voltage (12-volt) or a low-voltage(VCC) program enable signal. The low-voltage program-ming mode provides a convenient way to program theAT89C51 inside the user’s system, while the high-voltageprogramming mode is compatible with conventional third-party Flash or EPROM programmers.

The AT89C51 is shipped with either the high-voltage orlow-voltage programming mode enabled. The respectivetop-side marking and device signature codes are listed inthe following table.

The AT89C51 code memory array is programmed byte-by-byte in either programming mode. To program any non-blank byte in the on-chip Flash Memory, the entire memorymust be erased using the Chip Erase Mode.

Programming Algorithm: Before programming theAT89C51, the address, data and control signals should beset up according to the Flash programming mode table andFigure 3 and Figure 4. To program the AT89C51, take thefollowing steps.

1. Input the desired memory location on the address lines.

2. Input the appropriate data byte on the data lines.

3. Activate the correct combination of control signals.

4. Raise EA/VPP to 12V for the high-voltage program-ming mode.

5. Pulse ALE/PROG once to program a byte in the Flash array or the lock bits. The byte-write cycle is self-timed and typically takes no more than 1.5 ms. Repeat steps 1 through 5, changing the address

and data for the entire array or until the end of the object file is reached.

Data Polling: The AT89C51 features Data Polling to indi-cate the end of a write cycle. During a write cycle, anattempted read of the last byte written will result in the com-plement of the written datum on PO.7. Once the write cyclehas been completed, true data are valid on all outputs, andthe next cycle may begin. Data Polling may begin any timeafter a write cycle has been initiated.

Ready/Busy: The progress of byte programming can alsobe monitored by the RDY/BSY output signal. P3.4 is pulledlow after ALE goes high during programming to indicateBUSY. P3.4 is pulled high again when programming isdone to indicate READY.

Program Verify: If lock bits LB1 and LB2 have not beenprogrammed, the programmed code data can be read backvia the address and data lines for verification. The lock bitscannot be verified directly. Verification of the lock bits isachieved by observing that their features are enabled.

Chip Erase: The entire Flash array is erased electricallyby using the proper combination of control signals and byholding ALE/PROG low for 10 ms. The code array is writtenwith all “1”s. The chip erase operation must be executedbefore the code memory can be re-programmed.

Reading the Signature Bytes: The signature bytes areread by the same procedure as a normal verification oflocations 030H, 031H, and 032H, except that P3.6 andP3.7 must be pulled to a logic low. The values returned areas follows.

(030H) = 1EH indicates manufactured by Atmel(031H) = 51H indicates 89C51(032H) = FFH indicates 12V programming(032H) = 05H indicates 5V programming

Programming InterfaceEvery code byte in the Flash array can be written and theentire array can be erased by using the appropriate combi-nation of control signals. The write operation cycle is self-timed and once initiated, will automatically time itself tocompletion.

All major programming vendors offer worldwide support forthe Atmel microcontroller series. Please contact your localprogramming vendor for the appropriate software revision.

VPP = 12V VPP = 5V

Top-side Mark AT89C51xxxx

yyww

AT89C51xxxx-5

yyww

Signature (030H) = 1EH

(031H) = 51H(032H) =F FH

(030H) = 1EH

(031H) = 51H(032H) = 05H

AT89C516

Page 86: Tugas Akhir Sample

AT89C51

Note: 1. Chip Erase requires a 10 ms PROG pulse.

Figure 3. Programming the Flash Figure 4. Verifying the Flash

Flash Programming ModesMode RST PSEN ALE/PROG EA/VPP P2.6 P2.7 P3.6 P3.7

Write Code Data H L H/12V L H H H

Read Code Data H L H H L L H H

Write Lock Bit - 1 H L H/12V H H H H

Bit - 2 H L H/12V H H L L

Bit - 3 H L H/12V H L H L

Chip Erase H L H/12V H L L L

Read Signature Byte H L H H L L L L

(1)

P1

P2.6

P3.6

P2.0 - P2.3

A0 - A7ADDR.

OOOOH/OFFFH

T

SEE FLASHPROGRAMMINGMODES ABLE

3-24 MHz

A8 - A11P0

+5V

P2.7

PGMDATA

PROG

V /VIH PP

VIH

ALE

P3.7

XTAL2 EA

RST

PSEN

XTAL1

GND

VCC

AT89C51

P1

P2.6

P3.6

P2.0 - P2.3

A0 - A7ADDR.

OOOOH/0FFFH

3-24 MHz

A8 - A11P0

+5V

P2.7

PGM DATA(USE 10KPULLUPS)

VIH

VIH

ALE

P3.7

XTAL2 EA

RST

PSEN

XTAL1

GND

VCC

AT89C51

T

SEE FLASHPROGRAMMINGMODES ABLE

7

Page 87: Tugas Akhir Sample

Flash Programming and Verification Waveforms - High-voltage Mode (VPP = 12V)

Flash Programming and Verification Waveforms - Low-voltage Mode (VPP = 5V)

tGLGHtGHSL

tAVGL

tSHGL

tDVGLtGHAX

tAVQV

tGHDX

tEHSH tELQV

tWC

BUSY READY

tGHBL

tEHQZ

P1.0 - P1.7P2.0 - P2.3

ALE/PROG

PORT 0

LOGIC 1LOGIC 0EA/VPP

VPP

P2.7(ENABLE)

P3.4(RDY/BSY)

PROGRAMMINGADDRESS

VERIFICATIONADDRESS

DATA IN DATA OUT

tGLGH

tAVGL

tSHGL

tDVGLtGHAX

tAVQV

tGHDX

tEHSH tELQV

tWC

BUSY READY

tGHBL

tEHQZ

P1.0 - P1.7P2.0 - P2.3

ALE/PROG

PORT 0

LOGIC 1LOGIC 0EA/VPP

P2.7(ENABLE)

P3.4(RDY/BSY)

PROGRAMMINGADDRESS

VERIFICATIONADDRESS

DATA IN DATA OUT

AT89C518

Page 88: Tugas Akhir Sample

AT89C51

Note: 1. Only used in 12-volt programming mode.

Flash Programming and Verification Characteristics TA = 0°C to 70°C, VCC = 5.0 ± 10%

Symbol Parameter Min Max Units

VPP(1) Programming Enable Voltage 11.5 12.5 V

IPP(1) Programming Enable Current 1.0 mA

1/tCLCL Oscillator Frequency 3 24 MHz

tAVGL Address Setup to PROG Low 48tCLCL

tGHAX Address Hold after PROG 48tCLCL

tDVGL Data Setup to PROG Low 48tCLCL

tGHDX Data Hold after PROG 48tCLCL

tEHSH P2.7 (ENABLE) High to VPP 48tCLCL

tSHGL VPP Setup to PROG Low 10 µs

tGHSL(1) VPP Hold after PROG 10 µs

tGLGH PROG Width 1 110 µs

tAVQV Address to Data Valid 48tCLCL

tELQV ENABLE Low to Data Valid 48tCLCL

tEHQZ Data Float after ENABLE 0 48tCLCL

tGHBL PROG High to BUSY Low 1.0 µs

tWC Byte Write Cycle Time 2.0 ms

9

Page 89: Tugas Akhir Sample

Absolute Maximum Ratings*

Notes: 1. Under steady state (non-transient) conditions, IOL must be externally limited as follows:Maximum IOL per port pin: 10 mAMaximum IOL per 8-bit port: Port 0: 26 mAPorts 1, 2, 3: 15 mAMaximum total IOL for all output pins: 71 mAIf IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater than the listed test conditions.

2. Minimum VCC for Power-down is 2V.

Operating Temperature.................................. -55°C to +125°C *NOTICE: Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent dam-age to the device. This is a stress rating only and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability.

Storage Temperature ..................................... -65°C to +150°C

Voltage on Any Pinwith Respect to Ground .....................................-1.0V to +7.0V

Maximum Operating Voltage ............................................ 6.6V

DC Output Current...................................................... 15.0 mA

DC CharacteristicsTA = -40°C to 85°C, VCC = 5.0V ± 20% (unless otherwise noted)

Symbol Parameter Condition Min Max Units

VIL Input Low-voltage (Except EA) -0.5 0.2 VCC - 0.1 V

VIL1 Input Low-voltage (EA) -0.5 0.2 VCC - 0.3 V

VIH Input High-voltage (Except XTAL1, RST) 0.2 VCC + 0.9 VCC + 0.5 V

VIH1 Input High-voltage (XTAL1, RST) 0.7 VCC VCC + 0.5 V

VOL Output Low-voltage(1) (Ports 1,2,3) IOL = 1.6 mA 0.45 V

VOL1Output Low-voltage(1)

(Port 0, ALE, PSEN)IOL = 3.2 mA 0.45 V

VOHOutput High-voltage(Ports 1,2,3, ALE, PSEN)

IOH = -60 µA, VCC = 5V ± 10% 2.4 V

IOH = -25 µA 0.75 VCC V

IOH = -10 µA 0.9 VCC V

VOH1Output High-voltage(Port 0 in External Bus Mode)

IOH = -800 µA, VCC = 5V ± 10% 2.4 V

IOH = -300 µA 0.75 VCC V

IOH = -80 µA 0.9 VCC V

IIL Logical 0 Input Current (Ports 1,2,3) VIN = 0.45V -50 µA

ITLLogical 1 to 0 Transition Current (Ports 1,2,3)

VIN = 2V, VCC = 5V ± 10% -650 µA

ILI Input Leakage Current (Port 0, EA) 0.45 < VIN < VCC ±10 µA

RRST Reset Pull-down Resistor 50 300 KΩ

CIO Pin Capacitance Test Freq. = 1 MHz, TA = 25°C 10 pF

ICC

Power Supply CurrentActive Mode, 12 MHz 20 mA

Idle Mode, 12 MHz 5 mA

Power-down Mode(2)VCC = 6V 100 µA

VCC = 3V 40 µA

AT89C5110

Page 90: Tugas Akhir Sample

AT89C51

AC CharacteristicsUnder operating conditions, load capacitance for Port 0, ALE/PROG, and PSEN = 100 pF; load capacitance for all other outputs = 80 pF.

External Program and Data Memory Characteristics

Symbol Parameter

12 MHz Oscillator 16 to 24 MHz Oscillator

UnitsMin Max Min Max

1/tCLCL Oscillator Frequency 0 24 MHz

tLHLL ALE Pulse Width 127 2tCLCL-40 ns

tAVLL Address Valid to ALE Low 43 tCLCL-13 ns

tLLAX Address Hold after ALE Low 48 tCLCL-20 ns

tLLIV ALE Low to Valid Instruction In 233 4tCLCL-65 ns

tLLPL ALE Low to PSEN Low 43 tCLCL-13 ns

tPLPH PSEN Pulse Width 205 3tCLCL-20 ns

tPLIV PSEN Low to Valid Instruction In 145 3tCLCL-45 ns

tPXIX Input Instruction Hold after PSEN 0 0 ns

tPXIZ Input Instruction Float after PSEN 59 tCLCL-10 ns

tPXAV PSEN to Address Valid 75 tCLCL-8 ns

tAVIV Address to Valid Instruction In 312 5tCLCL-55 ns

tPLAZ PSEN Low to Address Float 10 10 ns

tRLRH RD Pulse Width 400 6tCLCL-100 ns

tWLWH WR Pulse Width 400 6tCLCL-100 ns

tRLDV RD Low to Valid Data In 252 5tCLCL-90 ns

tRHDX Data Hold after RD 0 0 ns

tRHDZ Data Float after RD 97 2tCLCL-28 ns

tLLDV ALE Low to Valid Data In 517 8tCLCL-150 ns

tAVDV Address to Valid Data In 585 9tCLCL-165 ns

tLLWL ALE Low to RD or WR Low 200 300 3tCLCL-50 3tCLCL+50 ns

tAVWL Address to RD or WR Low 203 4tCLCL-75 ns

tQVWX Data Valid to WR Transition 23 tCLCL-20 ns

tQVWH Data Valid to WR High 433 7tCLCL-120 ns

tWHQX Data Hold after WR 33 tCLCL-20 ns

tRLAZ RD Low to Address Float 0 0 ns

tWHLH RD or WR High to ALE High 43 123 tCLCL-20 tCLCL+25 ns

11

Page 91: Tugas Akhir Sample

External Program Memory Read Cycle

External Data Memory Read Cycle

tLHLL

tLLIV

tPLIV

tLLAXtPXIZ

tPLPH

tPLAZtPXAV

tAVLL tLLPL

tAVIV

tPXIX

ALE

PSEN

PORT 0

PORT 2 A8 - A15

A0 - A7 A0 - A7

A8 - A15

INSTR IN

tLHLL

tLLDV

tLLWL

tLLAX

tWHLH

tAVLL

tRLRH

tAVDV

tAVWL

tRLAZ tRHDX

tRLDV tRHDZ

A0 - A7 FROM RI OR DPL

ALE

PSEN

RD

PORT 0

PORT 2 P2.0 - P2.7 OR A8 - A15 FROM DPH

A0 - A7 FROM PCL

A8 - A15 FROM PCH

DATA IN INSTR IN

AT89C5112

Page 92: Tugas Akhir Sample

AT89C51

External Data Memory Write Cycle

External Clock Drive Waveforms

External Clock DriveSymbol Parameter Min Max Units

1/tCLCL Oscillator Frequency 0 24 MHz

tCLCL Clock Period 41.6 ns

tCHCX High Time 15 ns

tCLCX Low Time 15 ns

tCLCH Rise Time 20 ns

tCHCL Fall Time 20 ns

tLHLL

tLLWL

tLLAX

tWHLH

tAVLL

tWLWH

tAVWL

tQVWXtQVWH

tWHQX

A0 - A7 FROM RI OR DPL

ALE

PSEN

WR

PORT 0

PORT 2 P2.0 - P2.7 OR A8 - A15 FROM DPH

A0 - A7 FROM PCL

A8 - A15 FROM PCH

DATA OUT INSTR IN

tCHCX

tCHCX

tCLCX

tCLCL

tCHCLtCLCHV - 0.5VCC

0.45V0.2 V - 0.1VCC

0.7 VCC

13

Page 93: Tugas Akhir Sample

Shift Register Mode Timing Waveforms

AC Testing Input/Output Waveforms(1)

Note: 1. AC Inputs during testing are driven at VCC - 0.5V for a logic 1 and 0.45V for a logic 0. Timing measurements are made at VIH min. for a logic 1 and VIL max. for a logic 0.

Float Waveforms(1)

Note: 1. For timing purposes, a port pin is no longer floating when a 100 mV change from load voltage occurs. A port pin begins to float when 100 mV change from the loaded VOH/VOL level occurs.

Serial Port Timing: Shift Register Mode Test Conditions(VCC = 5.0 V ± 20%; Load Capacitance = 80 pF)

Symbol Parameter

12 MHz Osc Variable Oscillator Units

Min Max Min Max

tXLXL Serial Port Clock Cycle Time 1.0 12tCLCL µs

tQVXH Output Data Setup to Clock Rising Edge 700 10tCLCL-133 ns

tXHQX Output Data Hold after Clock Rising Edge 50 2tCLCL-117 ns

tXHDX Input Data Hold after Clock Rising Edge 0 0 ns

tXHDV Clock Rising Edge to Input Data Valid 700 10tCLCL-133 ns

tXHDV

tQVXH

tXLXL

tXHDX

tXHQX

ALE

INPUT DATA

CLEAR RI

OUTPUT DATA

WRITE TO SBUF

INSTRUCTION

CLOCK

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

SET TI

SET RI

8

VALID VALIDVALID VALIDVALID VALIDVALID VALID

0.45V

TEST POINTS

V - 0.5VCC 0.2 V + 0.9VCC

0.2 V - 0.1VCC

VLOAD+ 0.1V

Timing ReferencePoints

V

LOAD- 0.1V

LOAD

V VOL+ 0.1V

VOL- 0.1V

AT89C5114

Page 94: Tugas Akhir Sample

AT89C51

Ordering InformationSpeed(MHz)

PowerSupply Ordering Code Package Operation Range

12 5V ± 20% AT89C51-12AC 44A Commercial

AT89C51-12JC 44J (0° C to 70° C)

AT89C51-12PC 40P6

AT89C51-12QC 44Q

AT89C51-12AI 44A Industrial

AT89C51-12JI 44J (-40° C to 85° C)

AT89C51-12PI 40P6

AT89C51-12QI 44Q

16 5V ± 20% AT89C51-16AC 44A Commercial

AT89C51-16JC 44J (0° C to 70° C)

AT89C51-16PC 40P6

AT89C51-16QC 44Q

AT89C51-16AI 44A Industrial

AT89C51-16JI 44J (-40° C to 85° C)

AT89C51-16PI 40P6

AT89C51-16QI 44Q

20 5V ± 20% AT89C51-20AC 44A Commercial

AT89C51-20JC 44J (0° C to 70° C)

AT89C51-20PC 40P6

AT89C51-20QC 44Q

AT89C51-20AI 44A Industrial

AT89C51-20JI 44J (-40° C to 85° C)

AT89C51-20PI 40P6

AT89C51-20QI 44Q

24 5V ± 20% AT89C51-24AC 44A Commercial

AT89C51-24JC 44J (0° C to 70° C)

AT89C51-24PC 40P6

AT89C51-24QC 44Q

AT89C51-24AI 44A Industrial

AT89C51-24JI 44J (-40° C to 85° C)

AT89C51-24PI 40P6

AT89C51-24QI 44Q

15

Package Type

44A 44-lead, Thin Plastic Gull Wing Quad Flatpack (TQFP)

44J 44-lead, Plastic J-leaded Chip Carrier (PLCC)

40P6 40-lead, 0.600” Wide, Plastic Dual Inline Package (PDIP)

44Q 44-lead, Plastic Gull Wing Quad Flatpack (PQFP)

Page 95: Tugas Akhir Sample

Packaging Information

Controlling dimension: millimeters

1.20(0.047) MAX

10.10(0.394)9.90(0.386)

SQ

12.21(0.478)11.75(0.458)

SQ

0.75(0.030)0.45(0.018)

0.15(0.006)0.05(0.002)

0.20(.008)0.09(.003)

07

0.80(0.031) BSC

PIN 1 ID

0.45(0.018)0.30(0.012)

JEDEC STANDARD MS-026 ACB

AT89C5116

.045(1.14) X 45° PIN NO. 1IDENTIFY

.045(1.14) X 30° - 45° .012(.305).008(.203)

.021(.533)

.013(.330)

.630(16.0)

.590(15.0)

.043(1.09)

.020(.508)

.120(3.05)

.090(2.29).180(4.57).165(4.19)

.500(12.7) REF SQ

.032(.813)

.026(.660)

.050(1.27) TYP

.022(.559) X 45° MAX (3X)

.656(16.7)

.650(16.5)

.695(17.7)

.685(17.4)SQ

SQ

2.07(52.6)2.04(51.8) PIN

1

.566(14.4)

.530(13.5)

.090(2.29)MAX

.005(.127)MIN

.065(1.65)

.015(.381)

.022(.559)

.014(.356).065(1.65).041(1.04)

015

REF

.690(17.5)

.610(15.5)

.630(16.0)

.590(15.0)

.012(.305)

.008(.203)

.110(2.79)

.090(2.29)

.161(4.09)

.125(3.18)

SEATINGPLANE

.220(5.59)MAX

1.900(48.26) REF

Controlling dimension: millimeters

13.45 (0.525)12.95 (0.506)

0.50 (0.020)0.35 (0.014)

SQ

PIN 1 ID

0.80 (0.031) BSC

10.10 (0.394)9.90 (0.386) SQ

070.17 (0.007)

0.13 (0.005)

1.03 (0.041)0.78 (0.030)

2.45 (0.096) MAX

0.25 (0.010) MAX

44A, 44-lead, Thin (1.0 mm) Plastic Gull Wing Quad Flatpack (TQFP)Dimensions in Millimeters and (Inches)*

44J, 44-lead, Plastic J-leaded Chip Carrier (PLCC)Dimensions in Inches and (Millimeters)JEDEC STANDARD MS-018 AC

40P6, 40-lead, 0.600" Wide, Plastic Dual Inline Package (PDIP)Dimensions in Inches and (Millimeters)

44Q, 44-lead, Plastic Quad Flat Package (PQFP)Dimensions in Millimeters and (Inches)*JEDEC STANDARD MS-022 AB

Page 96: Tugas Akhir Sample

© Atmel Corporation 2000.Atmel Corporation makes no warranty for the use of its products, other than those expressly contained in the Company’s standard war-ranty which is detailed in Atmel’s Terms and Conditions located on the Company’s web site. The Company assumes no responsibility forany errors which may appear in this document, reserves the right to change devices or specifications detailed herein at any time withoutnotice, and does not make any commitment to update the information contained herein. No licenses to patents or other intellectual prop-erty of Atmel are granted by the Company in connection with the sale of Atmel products, expressly or by implication. Atmel’s products arenot authorized for use as critical components in life support devices or systems.

Atmel Headquarters Atmel Operations

Corporate Headquarters2325 Orchard ParkwaySan Jose, CA 95131TEL (408) 441-0311FAX (408) 487-2600

EuropeAtmel U.K., Ltd.Coliseum Business CentreRiverside WayCamberley, Surrey GU15 3YLEnglandTEL (44) 1276-686-677FAX (44) 1276-686-697

AsiaAtmel Asia, Ltd.Room 1219Chinachem Golden Plaza77 Mody Road TsimhatsuiEast KowloonHong KongTEL (852) 2721-9778FAX (852) 2722-1369

JapanAtmel Japan K.K.9F, Tonetsu Shinkawa Bldg.1-24-8 ShinkawaChuo-ku, Tokyo 104-0033JapanTEL (81) 3-3523-3551FAX (81) 3-3523-7581

Atmel Colorado Springs1150 E. Cheyenne Mtn. Blvd.Colorado Springs, CO 80906TEL (719) 576-3300FAX (719) 540-1759

Atmel RoussetZone Industrielle13106 Rousset CedexFranceTEL (33) 4-4253-6000FAX (33) 4-4253-6001

Fax-on-DemandNorth America:1-(800) 292-8635

International:1-(408) 441-0732

[email protected]

Web Sitehttp://www.atmel.com

BBS1-(408) 436-4309

Printed on recycled paper.

0265G–02/00/xM

Marks bearing ® and/or ™ are registered trademarks and trademarks of Atmel Corporation.

Terms and product names in this document may be trademarks of others.

Page 97: Tugas Akhir Sample

1

Listing Program

cdetik equ 08hcmenit equ 09hCJam equ 0ahDCol equ 0bhDkolp equ 0chDRowP equ 0dhDKeyb equ 0ehdtlcd equ 0fhbufkyb equ 10hhitdet equ 12hDJam equ 13hDMenit equ 14hDDetik equ 15hIdEntry equ 16hBykTmbl equ 17hBKybTmbl1 equ 18hBKybTmbl2 equ 19hJnsEntry equ 1AhDlyBel equ 11h

DJPompaOn equ 1BhDMPompaOn equ 1ChDJPompaOf equ 1DhDMPompaOf equ 1Eh

DJLampuOn equ 30hDMLampuOn equ 31hDJLampuOf equ 32hDMLampuOf equ 33h

DJKipasOn equ 34hDMKipasOn equ 35hDJKipasOf equ 36hDMKipasOf equ 37h

Keyp bit 20h.0ShwTm bit 20h.1SetTm bit 20h.2EntrySet bit 20h.3CekSensor bit 20h.4

Page 98: Tugas Akhir Sample

2

Kipas bit p2.0Bel bit p2.1Lampu bit p2.2Pompa bit p2.3 org 00h JMP Start

org 01Bh jmp Tmr1Rtn

org 30hStart: Call InitLCD Call InitVar

lloop: jb EntrySet,JmpSetTm Call KybProc jnb keyp,loop mov a,dkeyb

;------------------- cjne a,#010,Loop ;tombol set or run mov jnsentry,#01

Call VwJnsEntry

setb EntrySet

mov dptr,#TSetWaktu mov dtlcd,#0c0h Call WriteLn ;tampilkan set waktu

jmp loop

JmpSetTm: Call NextTmbl jmp loop

;-------- Tampilkan Jenis Entry -----------------------------------

VwJnsEntry: mov a,jnsentry cjne a,#01,BknEnt1 mov dptr,#TSetWaktu jmp extvwent

BknEnt1: cjne a,#02,BknEnt2 mov 38h,DJKipasOn

Page 99: Tugas Akhir Sample

3

mov 39h,DMKipasOn mov 3ah,#0 Call TampDWkt mov dptr,#TSetKpsOn jmp extvwent

BknEnt2: cjne a,#03,BknEnt3 mov 38h,DJKipasOf mov 39h,DMKipasOf mov 3ah,#0 Call TampDWkt mov dptr,#TSetKpsOf jmp extvwent

BknEnt3: cjne a,#04,BknEnt4 mov 38h,DJLampuOn mov 39h,DMLampuOn mov 3ah,#0 Call TampDWkt mov dptr,#TSetLampOn jmp extvwent

BknEnt4: cjne a,#05,BknEnt5 mov 38h,DJLampuOf mov 39h,DMLampuOf mov 3ah,#0 Call TampDWkt mov dptr,#TSetLampOf jmp extvwent

BknEnt5: cjne a,#06,BknEnt6 mov 38h,DJPompaOn mov 39h,DMPompaOn mov 3ah,#0 Call TampDWkt mov dptr,#TSetPompaOn jmp extvwent

BknEnt6: cjne a,#07,BknEnt7 mov 38h,DJPompaOf mov 39h,DMPompaOf mov 3ah,#0 Call TampDWkt

Page 100: Tugas Akhir Sample

4

mov dptr,#TSetPompaOf jmp extvwent

BknEnt7: mov Jnsentry,#0 clr entryset

mov dptr,#Hapus mov dtlcd,#0c0h Call WriteLn

mov dptr,#Tampwkt mov dtlcd,#080h Call WriteLn

mov dtlcd,#080h mov dptr,#TampWkt Call writeln

mov a,cjam mov dtlcd,#86h ;tampilkan jamposisi detik 86H Call WrPartTm mov a,cmenit mov dtlcd,#89h ;tampilkanmenit posisi detik 89H Call WrPartTm mov a,cdetik mov dtlcd,#8ch ;tampilkandetik posisi detik 8cH Call WrPartTm ret

extvwent: mov dtlcd,#0c0h Call WriteLn

;mov dtlcd,#86h ;jika entry pdjam set cursor ke pos jam ;Call ClrDispTm

mov dtlcd,#86h Call WriteIr ;set kursor pdentry jam ret

Page 101: Tugas Akhir Sample

5

;-------------------------------------------------------------------

TampDWkt: mov a,38h mov dtlcd,#86h ;tampilkan jam posisidetik 88H Call WrPartTm

mov a,39h mov dtlcd,#89h ;tampilkan menit posisidetik 88H Call WrPartTm

mov a,3ah mov dtlcd,#8ch ;tampilkan detik posisidetik 88H Call WrPartTm ret

;---------------------------------------------------------------------

SetPomSen: jnb ceksensor,excsensor2 jb pompa,cekatasexcsensor: setb p2.5 ;sensor bawah jb p2.5,SetPompaOn2 ;p2.5=1 air kosong clr pompa ;p2.5=0 air msh ada jmp excsensor2SetPompaOn2: setb pompa mov dptr,#TpompaOn Call TampStaBbn ret

cekatas: setb p2.4 ;sensor atas jb p2.4,SetPompaOn2 ;p2.4=1 blm penuh clr pompa ;p2.4=0 sudah penuhmatikan pompa mov dptr,#TpompaOff Call TampStaBbnexcsensor2: ret

;----------------------------------------------------------------CompPompa: mov a,cjam cjne a,DJPompaOn,TdsmOn mov a,cmenit cjne a,DMPompaOn,TdsmOn

Page 102: Tugas Akhir Sample

6

setb Ceksensor ;WSkrg=WSetOn retWSkrgLKclWSet: clr Ceksensor ;WSkrg<WSetOn retTDsmOn: jc WSkrgLKclWSet

;Waktu Skrg Lbh bsr Waktu Set

mov a,cjam cjne a,DJPompaOf,TdSmof mov a,cmenit cjne a,DMPompaOf,TdSmofWSkrgLKclWSetOf: setb Ceksensor ;WSkrg>WSetOnand WSkrg<=WSetOf ret

TDsmOf: jc WSkrgLKclWSetOf clr Ceksensor ;WSkrg>WSetOf ret

;----------------------------------------------------------------------CompTm:

;--- Cek Lampu -----

NLoad2: mov a,cjam cjne a,DJLampuOn,NLoad3 mov a,cmenit cjne a,DMLampuOn,NLoad3 setb Lampu

mov dptr,#TLampOn Call TampStaBbn ;ret

NLoad3: mov a,cjam cjne a,DJLampuOf,NLoad4 mov a,cmenit cjne a,DMLampuOf,NLoad4 clr Lampu

mov dptr,#TLampOf Call TampStaBbn ;ret

Page 103: Tugas Akhir Sample

7

;--- Cek Bel T1 -----

NLoad4: mov a,cjam cjne a,#07h,NLoad5 mov a,cmenit cjne a,#0,NLoad5 mov a,cdetik cjne a,#0,NLoad5 setb Bel

mov dptr,#TBelOn Call TampStaBbn

;ret

NLoad5: mov a,cjam cjne a,#07h,NLoad6 mov a,cmenit cjne a,#00,NLoad6 mov a,cdetik cjne a,dlybel,NLoad6 clr Bel

mov dptr,#TBelOf Call TampStaBbn

;ret

;--- Cek Bel T2 -----

NLoad6: mov a,cjam cjne a,#07h,NLoad7 mov a,cmenit cjne a,#045h,NLoad7 mov a,cdetik cjne a,#0,NLoad7 setb Bel

mov dptr,#TBelOn Call TampStaBbn ;ret

NLoad7: mov a,cjam cjne a,#07h,NLoad8 mov a,cmenit cjne a,#045h,NLoad8

Page 104: Tugas Akhir Sample

8

mov a,cdetik cjne a,DlyBel,NLoad8 clr Bel

mov dptr,#TBelOf Call TampStaBbn ;ret

;--- Cek Bel T3 -----

NLoad8: mov a,cjam cjne a,#08h,NLoad9 mov a,cmenit cjne a,#030h,NLoad9 mov a,cdetik cjne a,#0,NLoad9 setb Bel

mov dptr,#TBelOn Call TampStaBbn ;ret

NLoad9: mov a,cjam cjne a,#08h,NLoad10 mov a,cmenit cjne a,#030h,NLoad10 mov a,cdetik cjne a,DlyBel,NLoad10 clr Bel

mov dptr,#TBelOf Call TampStaBbn ;ret

;--- Cek Bel T4 -----

NLoad10: mov a,cjam cjne a,#09h,NLoad11 mov a,cmenit cjne a,#015h,NLoad11 mov a,cdetik cjne a,#0,NLoad11 setb Bel

mov dptr,#TBelOn Call TampStaBbn

Page 105: Tugas Akhir Sample

9

;ret

NLoad11: mov a,cjam cjne a,#09h,NLoad12 mov a,cmenit cjne a,#015h,NLoad12 mov a,cdetik cjne a,DlyBel,NLoad12 clr Bel

mov dptr,#TBelOf Call TampStaBbn ;ret

;--- Cek Bel T5 -----

NLoad12: mov a,cjam cjne a,#010h,NLoad13 mov a,cmenit cjne a,#0,NLoad13 mov a,cdetik cjne a,#0,NLoad13 setb Bel

mov dptr,#TBelOn Call TampStaBbn ;ret

NLoad13: mov a,cjam cjne a,#010h,NLoad14 mov a,cmenit cjne a,#00,NLoad14 mov a,cdetik cjne a,DlyBel,NLoad14 clr Bel

mov dptr,#TBelOf Call TampStaBbn ;ret

;--- Cek Bel T6 -----

NLoad14: mov a,cjam cjne a,#010h,NLoad15 mov a,cmenit cjne a,#015h,NLoad15

Page 106: Tugas Akhir Sample

10

mov a,cdetik cjne a,#0,NLoad15 setb Bel

mov dptr,#TBelOn Call TampStaBbn ;ret

NLoad15: mov a,cjam cjne a,#010h,NLoad16 mov a,cmenit cjne a,#015h,NLoad16 mov a,cdetik cjne a,DlyBel,NLoad16 clr Bel

mov dptr,#TBelOf Call TampStaBbn ;ret

;--- Cek Bel T7 -----

NLoad16: mov a,cjam cjne a,#011h,NLoad17 mov a,cmenit cjne a,#0,NLoad17 mov a,cdetik cjne a,#0,NLoad17 setb Bel

mov dptr,#TBelOn Call TampStaBbn ;retNLoad17: mov a,cjam cjne a,#011h,NLoad18 mov a,cmenit cjne a,#0,NLoad18 mov a,cdetik cjne a,DlyBel,NLoad18 clr Bel

mov dptr,#TBelOf Call TampStaBbn ;ret

Page 107: Tugas Akhir Sample

11

;--- Cek Kipas -----

NLoad18: mov a,cjam cjne a,DJKipasOn,NLoad19 mov a,cmenit cjne a,DMKipasOn,NLoad19 setb Kipas

mov dptr,#TKpsOn Call TampStaBbn ;ret

NLoad19: mov a,cjam cjne a,DJKipasOf,ExCompLd mov a,cmenit cjne a,DMKipasOf,ExCompLd clr Kipas

mov dptr,#TKpsOf Call TampStaBbnExCompLd: ret

;---------------------------------------------------TampStaBbn: jb EntrySet,NoDBbn mov dtlcd,#0c0h Call WriteLn mov r5,#015 call DelayNoDBbn: ret

;---------- Handle entry pd jam,menit dan detik ------------------------------

Nexttmbl: call Kybproc ;rutin scan keypad jnb keyp,nokey ;tdk ada tmbl ygditekan lompat ke nokey cjne a,#011,BknTb11 ;cek data tombol >10 jmp NextEntry

BknTb11: cjne a,#010,BknTb10 ;cek data tombol >10 jmp TblLbhDr10

BknTb10: jnc TblLbhDr10 ;tbl>10 lompat tbllbhdr10

NextEntry: mov r0,bufkyb ;tbl<=10

Page 108: Tugas Akhir Sample

12

mov @r0,a ;simpan tmbl ke buf tmbl

Call SvDBufkyb ;ubah data bufkyb(18h,19h)ke BCD&simpan ke var djam,dmnt,ddet

mov dtlcd,a ;tampilkn tmbl ke lcd orl dtlcd,#030h Call WriteDt

inc bufkyb ;naikkan buf tmbl djnz BykTmbl,nexttmbl ;kurangi byk tombol

mov bufkyb,#018h ;sudah habis resetalmt buffer,banyak tmbl mov BykTmbl,#02 Call SetCurEn

nokey: ret

TblLbhDr10: cjne a,#012,BknPgr ;jika Tmbl=# ( utkenter pindah kolom) inc identry mov a,identry Call ClrEntryTm ;hapus data entry ret

Bknpgr: cjne a,#010,BknBntg ;jika Tmbl=* ( utkenter selesai entry) Call MsgSimpan

inc jnsentry Call VwJnsEntryBknBntg: ret

;---------- Pesan Simpan (y/n) -----------------------

;sampe ditekn 1(y)/0(n)

MsgSimpan: mov dtlcd,#0c0h mov dptr,#TSave call Writeln

nokeypsv: call Kybproc ;rutin scan keypad jnb keyp,nokeypsv ;tdk ada tmbl ygditekan lompat ke nokey cjne a,#01,BknTblY ;cek data tombol=1=Y

Page 109: Tugas Akhir Sample

13

mov dtlcd,#’ ‘ Call WriteDt mov dtlcd,#’Y’ Call WriteDt Call SvSetWaktu ret

BknTblY: cjne a,#011,BknTblN ;cek data tombol=0=N mov dtlcd,#’ ‘ Call WriteDt mov dtlcd,#’N’ Call WriteDt ret

BknTblN: jmp nokeypsv

;----------- Simpan Data waktu Jam,menit,detik -------------------------------

SvSetWaktu: mov a,jnsentry cjne a,#01,BSvWaktu clr tr1 mov cjam,djam mov cmenit,dmenit mov cdetik,ddetik

ret

BSvWaktu: cjne a,#02,BSvKipasOn mov dJKipasOn,djam mov dMKipasOn,dmenit ret

BSvKipasOn: cjne a,#03,BSvKipasOf mov dJKipasOf,djam mov dMKipasOf,dmenit ret

BSvKipasOf: cjne a,#04,BSvLampuOn mov dJLampuOn,djam mov dMLampuOn,dmenit retBSvLampuOn: cjne a,#05,BSvLampuOf mov dJLampuOf,djam mov dMLampuOf,dmenit

Page 110: Tugas Akhir Sample

14

ret

BSvLampuOf: cjne a,#06,BSvPompaOn mov dJPompaOn,djam mov dMPompaOn,dmenit ret

BSvPompaOn: cjne a,#07,BSvPompaOf mov dJPompaOf,djam mov dMPompaOf,dmenitBSvPompaOf: ret

;---------------------------------------------------------------------------

;--------- pindah kursor entry dan reset entry data ke 00 ------------------

SetCurEn: mov a,IdEntry cjne a,#01,bknejam ;kode entry jam=1 mov dtlcd,#86h ;jika entry pd jamset cursor ke pos jam Call writeIR ret

Bknejam: cjne a,#02,bknemnt mov dtlcd,#89h ;kode entry menit=2 Call writeIR ;jika entry pd menitset cursor ke pos menit ret

Bknemnt: cjne a,#03,bknedtk mov dtlcd,#8ch ;kode entry detik=3 Call writeIR ;jika entry pd detikset cursor ke pos detik ret

Bknedtk: ret

;-------- Hapus data entry jam,menit atau detik ---------------------------------------

ClrEntryTm: cjne a,#01,BEntJam ;kode entry jam=1 mov dtlcd,#86h ;jika entry pd jamset cursor ke pos jam Call ClrDispTm mov djam,#0 ret

Page 111: Tugas Akhir Sample

15

BEntJam: cjne a,#02,BEntMnt ;kode entry menit=2 mov dtlcd,#89h ;jika entry pd menitset cursor ke pos menit Call ClrDispTm mov dmenit,#0 ret

BEntMnt: cjne a,#03,ExtClrDT ;kode entry detik=3 mov dtlcd,#8ch ;jika entry pd detikset cursor ke pos detik Call ClrDispTm mov ddetik,#0 ret

ExtClrDT: ret

;------- Hapus disp waktu lcd ---------------------------

ClrDispTm: Call writeIR ;jika entry pd jamset cursor ke pos jam

mov dtlcd,#30h ;tuliskan angka ‘0’ Call writeDt mov dtlcd,#30h Call writeDt

Call writeIR ret

;----------- ubah Data BufKyb ke bcd & simpan ke var waktu jam,mnt,det------

SvDBufkyb: mov a,IdEntry cjne a,#01,bknSvjam ;kode entry jam=1 Call getdtbufkyb ;gabungkan antaraMSB(18h)-LSB(19h) ke 1 byte mov DJam,a ret

Bknsvjam: cjne a,#02,bknsvmnt Call getdtbufkyb mov DMenit,a ret

Bknsvmnt: cjne a,#03,ExtSvDKyb Call getdtbufkyb

Page 112: Tugas Akhir Sample

16

mov DDetik,aExtSvDKyb: ret

;------------- ubah data keyb(bufkyb) 8 bit(1 kar) ke BCD -----------------------------------

GetDtBufKyb: mov bufkyb,#018h mov r0,bufkyb mov a,@r0 ;ambil kyb msb anl a,#0fh swap a ;pindah ke msb Acc push acc inc r0 ;next buffkyb mov a,@r0 anl a,#0fh pop b ;ambil data kyb msb dr stack orl a,b ;a=KybLsb + KtbMsb ret

;-----------------------------------------------------------------------------------

kybproc: anl a,dcol ;copykan dcol ke acc orl a,#0f0h ;set acc high fh mov a,p3 ;ambil dt p3 ke a swap a anl a,#0fh ;ambil yg high cjne a,#0fh,cnvrt ;if a=0f(no key pres) then jmp ncolcnvrt: mov a,p3 swap a anl a,#0fh cjne a,#0fh,cnvrt1 ;cek lagi msh adapenekanan tombol? jmp ncolcnvrt1: mov a,p3 cpl a anl a,#0fh ;ambil dt col scan balikkan cjne a,#04,tdk4 mov a,#03tdk4: mov dkolp,a ;dkolompres=a mov a,p3 swap a cpl a anl a,#0fh ;ambil dt brsbalikkan bagi dng 2 mov b,#02

Page 113: Tugas Akhir Sample

17

div ab cjne a,#04,tdk4rw mov a,#03tdk4rw: mov drowp,a ;drowpres=not(drow) div 2 mov b,#03 clr c mul ab mov b,dkolp add a,b ;a=dkolp+((drowp-1)*3) mov dkeyb,a setb keyp

NCol: mov a,dcol setb c rlc a jnb acc.3,ResCol mov dcol,a retResCol: mov dcol,#0eh ret

;-------------------------------------------------------------------------------------Tmr1Rtn: clr tr1 mov th1,#03ch mov tl1,#0b0h setb tr1

mov a,Hitdet dec a mov hitdet,a jz onesec

exttmr1: reti

onesec: Call CompPompa Call SetPomSen Call CompTm

mov hitdet,#021

mov a,cdetik clr c add a,#01

Page 114: Tugas Akhir Sample

18

cjne a,#060,DetBlmOvr mov cdetik,#00 mov dtlcd,#8ch ;8ch=cursor detik Call RstDispTm

mov a,cmenit clr c add a,#01

cjne a,#060,MntBlmOvr mov cmenit,#0 mov dtlcd,#89h ;89h=cursor menit Call RstDispTm

mov a,cjam clr c add a,#01

cjne a,#024,JamBlmOvr ;86h=cursor jam mov dtlcd,#86h Call RstDispTm mov cjam,#0 jmp exttmr1

DetBlmOvr: mov cdetik,a jb EntrySet,nodispdet mov dtlcd,#8ch ;tampilkan detikposisi detik 8cH Call WrPartTmnodispdet: jmp exttmr1

MntBlmOvr: mov cmenit,a jb EntrySet,nodispmnt mov dtlcd,#89h ;tampilkan detikposisi detik 89H Call WrPartTmnodispmnt: jmp exttmr1

JamBlmOvr: mov cjam,a jb EntrySet,nodispjam mov dtlcd,#86h ;tampilkan Jamposisi jam 86H Call WrPartTm

Page 115: Tugas Akhir Sample

19

nodispjam: jmp exttmr1

;-------- set tampilan jam,mnt,detik - 00 --------------

RstDispTm: jb EntrySet,nodisp1 Call ClrDispTmnodisp1: ret

;----- tampilkan data waktu di Acc -----------WrPartTm: Call WriteIR anl a,#0f0h swap a mov dtlcd,a orl dtlcd,#030h Call WriteDt

anl a,#0fh mov dtlcd,a orl dtlcd,#030h Call WriteDt ret

;-------------------------------------------------------------------------------------IniTLCD: Mov DtLcd,#038H ;Function Set Call WriteIR Mov DtLcd,#0eh ;disp On,blink Call WriteIR Mov DtLcd,#06h ;entry mode set Call WriteIR

mov dptr,#TampWkt mov dtlcd,#080h Call WriteLn

Ret

;----------------- Initial Var --------------------------------

InitVar: clr ea mov tmod,#011h ;set tmr0,1 16bit mov ie,#0h ;enable int Tmr1,Ext0 setb et1 setb ea mov th1,#03ch

Page 116: Tugas Akhir Sample

20

mov tl1,#0b0h setb tr1

mov hitdet,#021

mov DJPompaOn,#06 mov DMPompaOn,#00 mov DJPompaOf,#07 mov DMPompaOf,#00

mov DJLampuOn,#018 mov DMLampuOn,#00 mov DJLampuOf,#05 mov DMLampuOf,#00 mov DJKipasOn,#07 mov DMKipasOn,#00 mov DJKipasOf,#012 mov DMKipasOf,#00

ret;-------------------------------------------------------------------------------------;Tuliskan data ke baris 1WriteLn: Call WriteIR mov r0,#016 mov r1,#0ndtkar: mov a,r1 Movc a,@a+dptr mov dtlcd,a Call WriteDt inc r1 djnz r0,ndtkar ret

;-------------------------------------------------------------------------------------;Kirimkan Instruksi Ke LCD

WriteIR: clr p2.7 ;RS = 0 Instruction Reg Mov P0,DtLcd ;Code Instruksi Call ClockE ;CLock Enable Signal L-H-L Ret

;-------------------------------------------------------------------------------------;Kirimkan Data Ke LCD

WriteDt: setb p2.7 ;RS = 1 Data Mov P0,DtLcd ;Data

Page 117: Tugas Akhir Sample

21

Call ClockE ;CLock Enable Signal L-H-L Ret

;-------------------------------------------------------------------------------------

;Memberikan sinyal clock pd pin E-LCD di P3.0

ClockE: clr p2.6 setb p2.6 clr p2.6 ret

Delay: mov r6,#0ffh ;FF 1uSwait: djnz r6,$ ; 2uS djnz r5,wait ; 2uS retTampWkt: Db ‘Waktu 00:00:00 ‘TampSet: Db ‘ Set Waktu ‘TKpsOn: Db ‘ Kipas ON ‘TKpsOf: Db ‘ Kipas OFF ‘TBelOn: Db ‘ Bel ON ‘TBelOf: Db ‘ Bel OFF ‘TLampOn: Db ‘ Lampu ON ‘TLampOf: Db ‘ Lampu OFF ‘TPompaOn: Db ‘ Pompa ON ‘TPompaOff: Db ‘ Pompa OFF ‘

TSetWaktu: Db ‘Set Waktu ‘TSetKpsOn: Db ‘Waktu Kipas ON ‘TSetKpsOf: Db ‘Waktu Kipas OFF ‘TSetLampOn: Db ‘Waktu Lampu ON ‘TSetLampOf: Db ‘Waktu Lampu OFF ‘TSetPompaOn: Db ‘Waktu Pompa ON ‘TSetPompaOf: Db ‘Waktu Pompa OFF ‘TSave: Db ‘Simpan (y/n)? ‘

Hapus: db ‘ ‘

end