tugas akhir sample
TRANSCRIPT
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
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.
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
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
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.
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
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
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
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
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
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
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.
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.
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.
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.
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.
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
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)
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.
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
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
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.
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
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).
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
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.
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.
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.
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
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:
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
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).
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
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
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
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.
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.
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
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 #
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
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
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.
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
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
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.
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
35
Mulai
Set waktu
Bandingkan&kerjakan
Seting Ulang?Y
T
Gambar 10. Flowchart utama
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
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
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.
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
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
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
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
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
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.
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
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.
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
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
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.
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
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.
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
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
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
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
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.
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
58
LAMPIRAN
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
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
DATA SHEET
Product specificationSupersedes data of 1997 Mar 04
1999 Apr 12
DISCRETE SEMICONDUCTORS
BD135; BD137; BD139NPN power transistors
book, halfpage
M3D100
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
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-----------
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
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
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.
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
© 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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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