Senin, 11 Februari 2008

Perancangan Jam Alarm

PERANCANGAN SISTEM ALARM JAM KULIAH PADA POLITEKNIK MANDIRI BINA PRESTASI MEDAN
BERBASIS
MIKROKONTROLLER AT89S51

LAPORAN TUGAS AKHIR
Disusun Sebagai Salah Satu Syarat Kelulusan Diploma III Jurusan Elektro Program Studi Elektronika Komunikasi Komputer (EKK) Politeknik Mandiri Bina Prestas
i

Oleh
Melki Guslow
Nim : 035305046

JURUSAN ELEKTRO
PROGRAM STUDI ELEKTRONIKA KOMUNIKASI KOMPUTER
POLITEKNIK MANDIRI BINA PRESTASI
MEDAN

LEMBAR PENGESAHAN I

Yang bertanda tangan dibawah ini, pembim-bing jurusan dan ketua jurusan elektronika Politeknik Mandiri Bina Prestasi Medan menyatakan bahwa laporan tugas akhir dari :
Nama : Melki Guslow
NIM : 035305546
JURUSAN : TEKNIK ELEKTRO
PROGRAM STUDI : ELEKTRONIKA KOMUNIKASI KO MPUTER
Dengan judul :
PERANCANGAN SISTEM ALARM JAM KULIAH PADA POLITEKNIK MANDIRI BINA PRESTASI MEDAN BERBASIS MIKROKONTROLLER AT89S51.

Telah diperiksa dan dinyatakan selesai, serta dapat diajukan dalam Sidang Ujian.
Disetujui Oleh :
Medan, September 2007


Morlan pardede, MT
Pembimbing jurusan

Diketahui Oleh :
Medan, Septembert 2007


Mardaus purba, ST
Ketua Jurusan Teknik Elektro

LEMBAR PENGESAHAN II


Judul : Perancangan Sistem Alarm Jam Kuliah Pada
Politeknik Mandiri Bina Prestasi Medan
Berbasis Mikrokontroller At89s51

Nama : Melki Guslow
Nim : 035305046
Progra.Studi : Elektronika Komunikasi Komputer

Disetujui Oleh :
Medan, September 2007


Pembimbing Ketua Jurusan


Morlan Pardede, MT Mardaus Purba, ST

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala Rahmat dan Karunia-Nya yang telah memberikan kesehatan, pengetahuan, keterampilan, pengalaman yang senantiasa diberikan kepada penulis, sehingga penulis dapat menyelesaikan laporan tugas akhir ini dengan cukup baik.
Laporan tugas akhir ini berjudul ” PERANCANGAN SISTEM ALARM JAM KULIAH POLITEKNIK MANDIRI BINA PRESTASI MEDAN BERBASIS MIKROKONTROLLER AT89S51” dimana penulisannya secara informative dan analisa agar dapat menggambarkan proses dan cara kerja rangkaian serta system pengontrolan yang merupakan suatu syarat untuk menyelesaikan program Diploma-III Jurusan Teknik Elektonika Progran Studi Elektronika Komunikasi Komputer, Politeknik Mandiri Bina Prestasi Medan.

Selama proses perancangan, pembuatan dan pengujian system hingga dalam tahap penyusunan laporan ini penulis banyak menerima bantuan, bimbingan dan pengarahan dari berbagai pihak baik material, spiritual, informasi dan masukan saran. Pada kesempatan ini penulis mengucapkan terimakasih kepada :
1. Kedua Orang Tua A.SIagian dan D. Pangaribuan atas doa restu, cinta, kasih sayang serta pengorbanannya yang penulis terima.
2. Bapak Anggiat P. Simbolon, SE, Direktur Politeknik Mandiri Bina Prestasi Medan.
3. Bapak Mardaus Purba, ST, Ketua Jurusan Teknik Elektronika Politeknik Mandiri Bina Prestasi Medan.
4. Bapak Morlan Pardede, MT, Dosen pembimbing dan penulis di Politeknik Mandiri Bina Prestasi Medan.
5. Bapak Kurnia Sitepu, Ssi, Dosen pemograman Pascal Politeknik Mandiri Bina Prestasi Medan.
6. Bapak Ahmadi, A.Md, Staff dan Dosen Politeknik Mandiri Bina Prestasi Medan.
7. Seluruh Staf Pengajar Jurusan Elektronika Komunikasi Komputer dan staf serta pegawai di lingkungan Politeknik Mandiri Bina Prestasi Medan.
8. Abang Alex Reston, S terima kasih atas kesabaran, nasehat, bantuannya dan dukungannya selama ini.
9. Adik adikku, Nelly, Dina, Dahlia, Srywanjetika
10. Seluruh rekan - rekan di Politeknik Mandiri Bina Prestasi Medan.

Dalam penulisan laporan tugas akhir ini penulis menyadari sepenuhnya, walaupun penulis telah berupaya memberikan yang terbaik, penulisan ini masih jauh dari kesempurnaan baik isi, sistematika maupun redaksinya, maka penulis mengharapkan saran dan kritik yang bersifat membangun untuk kesempurnaan pengembangan laporan dalam perancangan Jam Kuliah ini nantinya.

Akhir kata penulis berharap semoga penulisan ini bermanfaat dan selanjutnya dapat dikembangkan, berguna bagi pihak yang membacanya dan tak lupa pula saya ucapkan Syukur kepada Tuhan Yang Maha Esa dimana akhirnya penulis dapat menyelesaikan Program Diploma III Politeknik Mandiri Bina Prestasi Medan.

Medan, September 2007
Penulis


Melki Guslow

DAFTAR ISI

HAL
LEMBAR PENGESAHAN I
LEMBAR PENGESAHAN II
KATA PENGANTAR i
DAFTAR ISI iv
DAFTAR GAMBAR vii
DAFTAR TABEL x
BAB 1 PENDAHULUAN 1
1.1. Latar Belakang 1
1.2. Batasan Dan Perumusan Masalah 2
1.2.1. Batasan Masalah 2
1.2.2. Perumusan Masalah 3
1.3. Tujuan Dan Manfaat 3
1.3.1. Tujuan 3
1.3.2. Manfaat 4
1.4. Metode Penelitian 4
1.5. Sistematika Penulisan 5
BAB 2 DASAR TEORI 9
2.1. Mikrokontroler At89s51 9
2.1.1. Pena-Pena Mikrokontroler At89s51 11
2.1.2. On – Chip Osilator Pada Versi Cmos 16
2.1.3. Diagram Blok Mikrokontroler At89s51 17
2.1.4. Organsisasi Memori 18
2.1.5. Struktur Pengoperasian Port 21
2.1.5.1. Port Input Output 21
2.1.5.2. Timer Counter 23
2.1.6. Sistem Interupsi 28
2.1.6.1. Perangkat Lunak Mikrokontroler At89s51 31
2.1.6.2. Instruksi Transfer Data 31
2.1.6.3. Instruksi I Aritmatika (Interupsi Perhitungan) 32
2.1.6.4. Instruksi I Logika 33
2.1.6.5. Instruksi Transfer Kendali 34
2.2. Ic Buffer Oktal Inverter 74ls204 36
2.3. Transistor 37
2.3.1. Transistor Sebagai Saklar 37
BAB 3 PERANCANGAN SISTEM 41
3.1. Blok Diagram Rangkaian 41
3.2. Perancangan Perangkat Keras (Hardware) 41
3.2.1. Unit Display 42
3.2.2. Unit Driver 43
3.2.3. Unit Pengaturan/Pengesetan Waktu 46
3.2.4. Unit Alarm 48
3.2.5. Unit Pengendali 49
3.3. Perancangan Perangkat Lunak (Software) 50
3.3.1. Program Tampil Waktu 50
3.3.2. Program Set Waktu 52
3.3.3. Program Naik Waktu 53
3.3.4. Sub-Program Periksa Alarm 55
BAB 4 PENGUJIAN DAN ANALISA 58
4.1. Pengujian Unit Display 58
4.2. Pengujian Unit Driver 59
4.2.1. Pengujian Ic Buffer 60
4.2.2. Pengujian Transistor Sebagai Saklar 66
4.3. Pengujian Unit Pengatur/Pengesetan Waktul 67
4.4. Pengujian Unit Alarm 68
4.5. Pengujian Unit Pengendali 69
BAB 5 PENUTUP 71
5.1. Kesimpulan 71
5.2. Saran 71
Daftar Pustaka 72
Lampiran-Lampiran

DAFTAR GAMBAR

Hal
1. Gambar 2.1. Konfigurasi Mikrokontroller At89s51 11
2. Gambar 2.2. On-Chip Osilator Pada Versi Cmos 17
3. Gambar 2.3. Blok Diagram At89s51 17
4. Gambar 2.4. Pemisahan Memori Program Dengan Memori Data 18
5. Gambar 2.5. Memori Mikrokontroller At89s51 19
6. Gambar 2.6. Memori Data Internal 19
7. Gambar 2.7. Bagian Bawah Internal Ram 256 Byte 19
8. Gambar 2.8. Bagian Atas Internal Ram 256 20
9. Gambar 2.9. Ruang Special Function Register 20
10. Gambar 2.10. Konfigurasi Bit Register Tcon 23
11. Gambar 2.12. Timer/Counter 1 Modus 0 26
12. Gambar 2.13. Timer/Counter Mode 2 27
13. Gambar 2.14. Timer/Counter Mode 3 27
14. Gambar 2.15. Konfigurasi Bit Register Ie 28
15. Gambar 2.17. Konfigurasi Bit Register Ip 29
16. Gambar 2.18. Konfigurasi Bit Register Smod 30
17. Gambar 2.19. Konfigurasi Bit Register Pcon 30
18. Gambar 2.20. Diagram Pin74ls240 36
19. Gambar 2.21. Karakteristik Transistor 38
20. Gambar 2.22. Transistor Sebagai Saklar 39
21. Gambar 2.23. Transistor Sebagai Saklar Off 40
22. Gambar 3.1. Diagram Blok Jam Digital 41
23. Gambar 3.2. Rangkaian Display Menggunakan Seven Segment 42
24. Gambar 3.3. Pengukuran Jatuh Tegangan Pada Led 42
25. Gambar 3.5. Rangkaian Driver Jam Digital 44
26. Gambar 3.6. Ekivalen Rangkaian Driver 44
27. Gambar 3.7. Rangkaian Driver Dengan Unit Display 46
28. Gambar 3.8. Rangkaian Pengatur/Pengesetan Waktu 47
29. Gambar 3.9. Rangkaian Clock Alarm 48
30. Gambar 3.10. Rangkaian Pengendali At89s51 49
31. Gambar 3.11. Proses Peragaan Waktu 50
32. Gambar 3.12. Diagram Alir Tampil Waktu 52
33. Gambar 3.13. Diagram Alir Set Waktu 53
34. Gambar 3.14. Naik Waktu 55
35. Gambar 3.15. Periksa Alarm 57
36. Gambar 4.1. Pengukuran Rangkaian Display 58
37. Gambar 4.2. Seven Segmen 59
38. Gambar 4.3. Pengujian Rangkaian Driver 60
39. Gambar 4.4. Pengujian Rangkaian Buffer 62
40. Gambar 4.5. Pengukuran Vol Ic 74ls240 64
41. Gambar 4.6. Pengujian Transistor Sebagai Saklar 66
42. Gambar 4.7. Pengujian Rangkaian Pengatur Jam Dengan Voltmeter 67
43. Gambar 4.8. Pengujian Rangkaian Clock Alarm Dengan Voltmeter 68
44. Gambar 4.9. Pengujian Rangkaian Pengendali Dengan Logic Probe 69

DAFTAR TABEL

Hal
1. Tabel 2.1. Keluarga Mikrokontroller Mcs- 51 10
2. Tabel 2.2. Fungsi Pengganti Dari Port 3 13
3. Tabel 2.3. Nilai Register Setelah Di-Reset/ 16
4. Tabel 2.4. Tabel Port 3 22
5. Tabel 2.5. Fungsi Bit Register Tcon 24
6. Tabel 2.6. Alamat Rutin Interupsi 29
7. Tabel 2.7. Tabel Kebenaran 74ls240 37
8. Tabel 3.1. Konversi Nilai Segmen 51
9. Tabel 4.1. Data Unit Display 59
10. Tabel 4.2. Hasil Pengujian Rangkaian Driver 61
11. Tabel 4.3. Pengujian Rangkaian Buffer 63
12. Tabel 4.4. Hasil Pengukuran Vol 74ls240 65
13. Tabel 4.5. Hasil Pengujian Transistor 67
14. Tabel 4.6. Hasil Pengukuran Pada Rangkaian Pengatur Jam 68
15. Tabel 4.7. Hasil Pengukuran Pada Rangkaian Pengatur Jam 69
16. Tabel 4.2. Hasil Pengujian Port 1 70
17. Tabel 4.2. Hasil Pengujian Port 1 70

BAB 1
PENDAHULUAN

1.1 Latar Belakang
Penandaan waktu dalam kehidupan modern saat ini sangatlah penting, dimana penandaan waktu ini bisa menandakan awal dan berakhirnya suatu kegiatan. Dengan perkembangan teknologi mikroprosesor/mikrokontroler penanda waktu ini dapat kita rancang sendiri biasanya awal dan berakhirnya suatu kegiatan ini ditandai dengan suatu bunyi alarm.
Berdasarkan pengamatan kami awal akhirnya suatu kegiatan masih berdasarkan jam umum yang di buat dikampus Politeknik MBP dan jam pribadi yang dikenakan dosen dan tidak menghasilkan indikasi pergantian (alarm pergantian perkuliahan) .
Melihat hal diatas penulis ingin merancang dan membuat suatu alat jam digital berikut alarm pergantian waktu belajar, dengan judul Tugas Akhir “ PERANCANGAN SISTEM ALARM JAM KULIAH PADA POLITEKNIK MANDIRI BINA PRESTASI MEDAN BERBASIS MIKROKONTROLLER AT89S51”
Mikrokontroller AT89S51 digunakan sebagai pusat pengaturan dari pada sistem jam digital. Peragaan waktu di aplikasikan pada sevent segment, sedangkan referensi waktu dihasilkan oleh timer 0 (nol) dari mikrokontroller dimana sumber Cloknya berasal dari Crystal mikrokontroler yang berkapasitas 12MHz,

pengesetan waktu dilakukan melalui toggle switch dan penambahan menit, jam pada saat pengesetan dilakukan dengan penekanan tombol.
Alat ini juga dirancang dalam dua pilihan waktu jam perkuliahan diantaranya : Waktu perkuliahan saat kuliah dalam keadaan normal, dan saat waktu kuliah dalam keadaan puasa.
Diharapkan alat ini dapat mengingatkan mulai dan berakhirnya suatu kegiatan atau waktu masuk dan berakhirnya suatu kegiatan terutama pada Kampus Politeknik Mandiri Bina Prestasi Medan.

1.2 Batasan dan Perumusan Masalah
1.2.1 Batasan Masalah
Dalam perancangan pembuatan Tugas Akhir ini penulis membuat batasan masalah yaitu : jam alarm hanya menampilkan menit dan jam sedangkan indikasi detik dilakukan dengan di indikasikan pada dot 7- segment . (segment H), alat yang dirancang tidak mengindikasikan hari tanggal, bulan dan tahun. Alarm pergantian jam kuliah berdasarkan jam perkuliahan normal Politeknik MBP dan jam perkuliahan saat bulan puasa pengaturan jam alarm digital diset melalui program yang menggunakan Mikrokontroller AT89S51, pada intinya Mikrokontroller AT89S51 yang merupakan inti (otak) dari Jam Alarm Digital tersebut.


1.2.2. Perumusan Masalah
Dari permasalahan yang diuraikan diatas dapat diambil beberapa rumusan masalah yaitu :
1. Bagaimana mengindikasikan waktu 1 (satu) detik dengan timer mikrokontroller.
2. Bagaimana menampilkan waktu jam menit yang dihasilkan timer pada peraga 7- segment.
3. Bagaimana mengaktifkan alarm pada saat waktu sesuai dengan jam mulai dan berakhirnya suatu perkuliahan.
Sesuai dengan permasalahan yang dihadapi dalam perancangan jam alarm tersebut maka penulis memberikan pemecahan masalah tersebut, yakni : Agar alarm dapat berfungsi secara otomatis maka rangkaian jam alarm digital ini dilengakapai dengan suatu alat yang dapat menyimpan data (program untuk menjalankan rangkaian jam alarm digital tersebut).

1.3 Tujuan dan Manfaat
1.3.1 Tujuan
Tujuan pembuatan proyek ini adalah :
1. Untuk memenuhi salah satu persyaratan guna menyelesaikan program Dipoloma III Jurusan Elektro Program Studi Elektronika Komunikasi Komputer pada Politeknik Mandiri Bina Prestasi Medan.
2. Untuk menerapkan ilmu yang didapat penulis selama dalam bangku perkuliahan.
3. Untuk membuat suatu alat jam alarm digital.

1.3.2 Manfaat
Adapun manfaat yang diberikan alat ini adalah :
1. Tersedianya alat untuk referensi pada teknisi sebagai cara membuat jam digital
2. Memberikan kepada pembaca bagaimana membuat suatu alarm jam digital Alat ini bisa mengatur suatu alarm berbunyi menjadi otomatis sesuai dengan program yang telah di isikan pada alat ini, selain dari situ juga diharapkan, proyek Tugas Akhir ini menambah sarana bagi Kampus, terutama untuk Laboratorium Politeknik Mandiri Bina Prestasi Medan.

1.4 Metode Penelitian
Dalam penulisan karya yang bersifat ilmiah, harus ada suatu metode studi yang siap dipakai untuk membantu penelitian dalam memperoleh data-data yang diperlukan untuk mengidentifikasi dan menguji kebenaran suatu ilmu pengetahuan. Metode studi yang digunakan yaitu :
1. Kepustakaan ( library research ), yakni :
Pencarian yang berdasarkan perpustakaan meliputi hal-hal sebagai berikut:
a. Membaca buku-buku literatur, majalah-majalah, artikel - artikel, materi perkuliahan dan lain sebagainya yang ada hubunganya dengan masalah analisa system Komunikasi.
b. Ulasan-ulasan yang memperkuat makalah, maka diadakan pula pengutipan terhadap beberapa pendapat dari para ahli atau sarjana untuk dijadikan dasar didalam melakukan penelitian.
2. Pengamatan Lapangan ( filed research ), yakni :
Pengamatan yang langsung dilakukan pada obyek yang dipilih. Data dan informasi yang dibutuhkan diperoleh dengan mengadakan wawancara terhadap pihak-pihak yang dapat memberikan informasi yang diperlukan dalam obyek pengamatan.

1.5 Sistematika penulisan
Adapun sitematika penulisan Tugas Akhir ini adalah sebgai berikut :

BAB 1 PENDAHULUAN
1.1. Latar Belakang
1.2. Batasan dan Perumusan Masalah
1.2.1. Batasan Masalah
1.2.2. Perumusan Masalah
1.3. Tujuan dan Manfaat
1.3.1 Tujuan
1.3.2 Manfaat
1.4 Metode Penelitian
1.5 Sistematika Penulisan

BAB 2 DASAR TEORI
2.1. Mikrokontroler AT89S51
2.1.1 Pena-pena Mikrokontroler AT89S51
2.1.2 On – Chip Osilator pada Versi CMOS
2.1.3 Diagram Blok Mikrokontroler AT89S51
2.1.4 Organsisasi Memori
2.1.5 Struktur Pengoperasian Port
2.1.5.1 Port input output
2.1.5.2 Timer counter
2.1.6 Sistem Interupsi
2.1.6.1 Perangkat Lunak Mikrokontroler AT89S51
2.1.6.2 Instruksi transfer data
2.1.6.3 Instruksi i aritmatika (Interupsi perhitungan)
2.1.6.4 Instruksi i logika
2.1.6.5 Instruksi transfer kendali
2.2. IC Buffer Oktal Inverter 74LS204
2.3. Transistor
2.3.1 Transistor sebagai saklar

BAB 3 PERANCANGAN SISTEM
3.1. Blok Diagram Rangkaian
3.2. Perancangan Perangkat Keras (Hardware)
3.2.1 Unit Display
3.2.2 Unit Driver
3.2.3 Unit Pengaturan/Pengesetan Waktu
3.2.4 Unit Alarm
3.2.5 Unit Pengendali
3.3 Perancangan Perangkat Lunak (Software)
3.3.1 Program Tampil Waktu
3.3.2 Program Set Waktu
3.3.3 Program Naik Waktu
3.3.4 Sub-Program Periksa Alarm

BAB 4 PENGUJIAN DAN ANALISA
4.1 Pengujian Unit Display
4.2 Pengujian Unit Driver
4.2.1 Pengujian Ic Buffer
4.2.2 Pengujian Transistor Sebagai Saklar
4.3 Pengujian Unit Pengatur/Pengesetan Waktu
4.4 Pengujian Unit Alarm
4.5 Pengujian Unit Pengendali

BAB 5 PENUTUP
5.1 Kesimpulan
5.2 Saran
Daftar pustaka
Lampiran-lampiran


BAB 2
DASAR TEORI

2.1 Mikrokontroller AT89S51
Dengan memadukan arsitektur perangkat keras keluarga mikrokontroller MCS-51 dan teknologi flash memory, dihasilkan AT89S51 sebagai sebuah mikrokontroller dengan fasilitas timer, port serial, 32 Programmable I/O lines, RAM dan Flash Memory untuk keperluan penyimpanan program.
AT89S51 merupakan versi yang dilengkapi dengan ROM (internal) yaitu berupa EEPROM. Mikrokontroller AT89S51 adalah low power high performance CMOS 8 bit, 8 Kbyte Flash Programable and Erasable Read Only Memory (PEROM). IC mikrokontroller kompatibel dengan standart MCS-51 baik dari instruksi maupun pena-penanya yang dapat diaplikasikan sebagai Embedded Controller.
Disamping itu terdapat RAM Internal dengan kapasitas 128 x 8 bit. Dan frekuensi pengoperasian hingga 24 MHz. Mikrokontroler ini juga memiliki 32 port I/O yang terbagi menjadi 4 buah port dengan 8 jalur I/O, kemudian terdapat pula Sebuah port serial dengan kontrol serial full duplex, tiga timer/counter 16 bit dan sebuah osilator internal dan rangkaian pewaktu(timer). Keluarga mikrokontroller MCS-51 dapat dilihat pada table berikut :


Tabel 2.1 Keluarga Mikrokontroller MCS- 51
Type Type tanpa
EPROM Type dengan EROM ROM RAM
(byte) I/O


8051 8031 - 4K 128 4
8051 AH 8031 AH 8751 H 1K 128 4
- - 8751 BH - - -
8052 AH 8032 AH 8752 BH 8K 256 4
80C51 BH 8032 BH 87C51 2K 128 4
83C51 FA 80C51 FA 87C51 FA 8K 256 4
83C51 FB 80C51 FB 8751 FB 16K 256 5

Berikut ini adalah kemampuan yang dimiliki oleh mikrokontroller AT89S51:
1. Kompatibel dengan keluarga MCS-51
2. 8 Kbyte ReProgrammable Flash Memory (PEROM) didalam chip yang dapat ditulis dan dihapus sampai 1000 kali.
3. Dapat beroperasi pada frekuensi 0 Hz sampai 24 MHz.
4. 3 level program kunci memory.
5. 128 x 8-bit RAM internal.
6. 32 jalur I/O.
7. 4 port I/O 8-bit
8. 3 buah timer/counter 16 bit.
9. 8 buah jalur interupsi
10. Hemat catu daya dan memiliki power down modes.
11. Kemampuan pengalamatan memory
- 128 K – ROM
12. Pelaksanaan instruksi dalam 0,3 μS.
13. Tersedia dengan kemasan :
- 40-pin DIP
- 44-pin PLCC
- 44-pin PQFP

2.1.1. Pena-pena Mikrokontroller AT89S51
Susunan pena-pena Mikrokontroller AT89S51 diperlihatkan pada gambar 2.1

Gambar 2.1 Konfigurasi Mikrokontroller AT89S51
Mikrokontroler ini memiliki 40 konfigurasi pin seperti digambarkan pada gambar 2.1 Fungsi dari tiap – tiap pin dapat dikelompokkan menjadi sumber tegangan, kristal, kontrol, dan input - output.
Disamping itu mikrokontroller ini dapat ditambahkan sebuah minimum memori eksternal atau komponen eksternal lain. Dari kedelapan line dapat digunakan sebagai suatu unit yang berhubungan ke perangkat paralel seperti printer, pengubah digital ke analog, dan sebagainya, atau tiap line dapat mengoperasikan sendiri ke perangkat single bit seperti saklar, LED, transistor, selenoid, motor, dan speaker. Sedangkan fungsi pin dari mikrokontroler seperti berikut ini :
1. Pin 1 sampai 8
Ini adalah port 1 yang merupakan saluran/bus I/O 8 bit dua arah. Dengan internal pull-up yang dapat digunakan untuk berbagai keperluan. Pada port ini juga digunakan sebagai saluran alamat pada saat pemograman dan verifikasi.
2. Pin 9
Merupakan masukan reset (aktif tinggi), pulsa transisi dari rendah ke tinggi akan me-reset mikrokontrokller ini.
3. Pin 10 sampai 17
Ini adalah port 3 merupakan saluran/bus I/O 8 bit dua arah dengan internal pull up yang memiliki fungsi pengganti. Fungsi pengganti meliputi TxD, RxD, INT0, INT1, T0, T1, WR, RD,. Bila fungsi pengganti tidak dipakai pin-pin ini dapat dipakai sebagai port parallel serbaguna.


4. Pin 18 dan 19
Ini merupakan masukan ke penguat osilator berpenguat tinggi. Pada mikrokontroler ini memiliki seluruh rangkaian osilator yang diperlukan pada serpih yang sama (on chip) kecuali rangkaian kristal yang mengendalikan frekuensi osilator. Karenanya 18 dan 19 sangat diperlukan untuk dihubungkan dengan kristal. Selain itu XTAL 1 dapat juga sebagai input untuk inverting oscilator amplifier dan input ke rangkaian internal clock sedangkan XTAL 2 merupakan output dari inverting oscilator amplifier.
Tabel 2.2 Fungsi pengganti dari port 3
Bit Nama Alamat Bit Fungsi Alternatif
P3.0 RXD B0H Untuk menerima data port serial
P3.1 TXD B1H Untuk mengirim data port serial
P3.2 INT0 B2H Interupsi eksternal 0
P3.3 INT1 B3H Interupsi eksternal 1
P3.4 T0 B4H Input Eksternal waktu/pencacah 0
P3.5 T1 B5H Input Eksternal waktu/pencacah 1
P3.6 WR B6H Jalur menulis memori data eksternal
P3.7 RD B7H Jalur membaca memori data eksternal

5. Pin 20
Merupakan ground sumber tegangan yang diberi simbol GND.
6. Pin 21 sampai 28
Ini adalah port 2 yang merupakan saluran/bus I/O 8 bit dua arah dengan internal pull up. Saat pengambilan data dari program memori eksternal atau selama mengakses data memori eksternal yang menggunakan alamat 16 bit (MOVX @ DPTR), port 2 berfungsi sebagai saluran/bus alamat tinggi (A8 – A15). Sedangkan pada saat mengakses ke data memori eksternal yang menggunakan alamat 8 bit (MOVX @ R1), port 2 mengeluarkan isi dari P2 pada Special Function Register.
7. Pin 29
Program Strore Enable (PSEN) merupakan sinyal pengontrol untuk mengakses program memori eksternal masuk ke dalam bus selama proses pemberian/pengambilan instruksi (fetching).
8. Pin 30
Address Latch Enable (ALE)/PROG merupakan penahan alamat memori eksternal (pada port 1) selama mengakses ke memori eksternal. Pena ini juga sebagai pulsa/sinyal input pemograman (PROG) selama proses pemograman.
9. Pin 31
Eksternal Access Enable (EA) merupakan sinyal control untuk pembacaan memori program. Apabila diset rendah (L) maka mikrokontroller akan melaksanakan seluruh instruksi dari memori program eksternal, Sedangkan apabila diset tinggi (H) maka mikrokontroller akan melaksanakan instruksi dari memori program internal ketika isi program counter kurang dari 4096. Ini juga berfungsi sebagai tegangan pemograman (Vpp = +12V) selama proses pemograman.
10. Pin 32 sampai 39
Ini adalah port 0 yang merupakan saluran/bus I/O 8 bit open collector, dapat juga digunakan sebagai multipleks bus alamat rendah dan bus data selama adanya akses ke memori program eksternal. Pada saat proses pemograman dan verifikasi port 0 digunakan sebagai saluran/bus data. Eksternal pull up diperlukan selama proses verifikasi.
11. Pin 40
Pin 40 merupakan Vcc yang dihubungkan ke tegangan + 5 V.
PSEN (Program Store Enable)
PSEN adalah sinyal control yang mengizinkan untuk mengakses program (code) memri eksternal. Pin ini dihubungkan ke pin OE (Output Enable) dari EPROM. Sinyal PSEN akan “0” (LOW) pada tahap fetch (penjemputan) instruksi. PSEN akan selalu bernilai “1” (HIGH) pada pembacaan program memori internal. PSEN terdapat pada pin 29.
ALE (Address Latch Enable)
ALE digunakan untuk men-demultiplex address (alamat) dan data bus. Ketika menggunakan program memori eksternal, port 0 akan berfungsi sebagai address (alamat) dan data bus. Pada setengah paruh pertama memori cycle ALE akan bernilai “1” (HIGH) sehingga mengizinkan penulisan address (alamat) pada register eksternal. Dan pada setengah paruh berikutnya akan bernilai “1” (HIGH) sehingga port 0 dapat digunakan sebagai data bus. ALE terdapat pada pin 30.
EA (External Access)
Jika EA diberi input “1” (HIGH), maka mikrokontroller menjalankan program memori internal saja. Jika EA diberi input “0” (LOW), maka AT89C51 menjalankan program memori eksternal (PSEN akan bernilai “0”). EA terdapat pada pin 31.
RST (Reset)
RST terdapat pada pin 9. Jika pada pin ini diberi input “1” (HIGH) selama minimal 2 machine cycle, maka system akan di-reset dan register-register internal AT89C51 akan berisi nilai default tertentu. Nilai default setelah sistem reset tersebut terlihat pada table 2.3.
Tabel 2.3 Nilai register setelah di-reset
REGISTER ISI
Program Counter 0000H
Accumulator 00H
B Register 00H
PSW 00H
SP 07H
DPTR 0000H
Port 0 - 3 FFH
IP XXX00000B
IE 0XX00000B
Timer Register 00H
SCON 00H
SBUF 00H
PCON (HMOS) 0XXXXXXXB
PCON (CMOS) 0XXX0000B

2.1.2. On - Chip Osilator pada versi CMOS
Rangkaian osilator pada chip untuk AT89S51 terdiri dari inverter satu tingkat yang digunakan untuk mengontrol kristal, clock yang digunakan adalah internal clock. Gambar 2.5 menunjukkan penggunaan on-chip osilator dengan menghubungkan pin XTAL1 dan XTAL2 dengan kristal atau kapasitor keramik. Untuk kristalnya dapat digunakan frekuensi dari 6 sampai 12 MHz. Sedangkan untuk kapasitor dapat bernilai antara 27 pF sampai 33 pF. Bila digunakan eksternal clock, pin ATAL1 dihubungkan dengan output eksternal clock tersebut.

Gambar 2.2. On-Chip Osilator pada Versi CMOS
2.1.2. Diagram Blok Mikrokontroller AT89S51
Diagram blok Mikrokontroller AT89S51 diperlihatkan pada gambar2.3.

Gambar 2.3 Blok Diagram AT89S51
Dengan keistimewaan gambar di atas, pembuatan alat menggunakan AT89S51 menjadi lebih sederhana dan tidak memerlukan IC pendukung yang banyak. Jadi mikrokontroler ini juga mempunyai keistemewaan dari segi perangkat keras.

2.1.4. Organisasi Memori
Seluruh anggota MCS-51 mempunyai alamat program dan memori data terpisah seperti ditunjukkan pada gambar 2.6. data. Lebar memori data adalah 8 bit dan 16 bit (register DPTR).

Gambar 2.4 Pemisahan Memori Program dengan Memori data
Memory program hanya dapat dibaca, tidak dapat dituliskan. Pada mikrokontroler AT89C51, 8K Byte memori program terendah terdapat dalam chip (internal). Sinyal untuk membaca memori program internal PSEN. CPU membangkitkan sinyal baca, RI dan sinyal tulis WR yang diperlukan pada saat akses data memori data eksternal dengan instruksi MOVX.

Gambar 2.5 Memori Mikrokontroller AT89S51
Ruang memori terlihat dalam blok, yang disebut sebagai lower 256, upper 256 dan ruang SFR. Internal memori data dialamati dengan lebar 1 byte. Lower 256 (alamat 00H-7Fh) terdapat pada semua anggota keluarga MCS-51.

Gambar 2.6 Memori data internal


Gambar 2.7. Bagian bawah internal RAM 256 Byte
Gambar 2.7 merupakan bagian atas dari internal RAM. Sebanyak 32 byte terendah terbagi atas 4 bank dari 8 register disebut sebagai R0-R7. Dua bit dari register PSW memilih bank mana yang digunakan. Kemudian 16 byte diatas bank register membentuk blok memori yang dapat dialamati per-bit. Upper 256 tidak tersedia di 8031. Special Function Register atau SFRs adalah register yang befungsi khusus misalnya lacth port, timer, control pheripheral dsb.

Gambar 2.8. Bagian atas internal RAM 256

Gambar 2.9. Ruang special function register

2.1.5. Struktur Pengoperasian Port
2.1.5.1. Port Input/Output
One chip mikrokontroler memiliki 32 jalur port yang dibagi menjadi 8 port bit. Masing – masing port ini bersifat bidirectional sehingga dapat digunakan sebagai input port atau output port. Pada blok diagram AT89C51 dapat dilihat lacth tiap bit pada keempat port : port 0, port 1, port 2, port 3. Masing – masing jalur port terdiri dari lacth , output driver dan input buffer port 0 dan port 2 dapat digunakan sebagai saluran data alamat sekaligus yang dimultipleks. Untuk mengakses memori eksternal, port 0 akan mengeluarkan alamat bawah memori eksternal yang dimultipleks dengan data yang dapat dibaca dan ditulis, sedangkan port 2 mengeluarkan bagian atas memori eksternal sehingga total alamat semuanya 16 bit.
Khususnya untuk port 3 mempunyai fungsi yang lain diluar sebagai port. Port 3 adalah input/ output 8-bit dua arah. Port 3 juga berfungsi melayani fungsi-fungsi dari berbagai fitur-fitur spesial dari AT89C51, seperti yang ditunjukkan oleh tabel di bawah. Port 3 juga menerima beberapa signal kontrol untuk pemrograman flash dan verifikasi.

Tabel 2.4. Tabel port 3
Pin Port Fungsi alternatif
P3.0 RXD (port input serial)
P3.1 TXD (port output serial)
P3.2
INT0 (eksternal interupsi 0)
P3.3
INT1 (eksternal interupsi 1)
P3.4 T0 (input timer 0 eksternal)
P3.5 T1(input timer 1 eksternal)
P3.6
WR (memori data eksternal write strobe)
P3.7
RD (memori data ekternal read strobe)

Latch yang digunakan dapat dipresentasikan dengan flip-flop D. Data dari bus internal di latch saat CPU memberi sinyal tulis ke latch dan output latch diberikan ke bus internal sebagai respon dari sinyal baca pin dari CPU.
Beberapa intruksi yang berfungsi membaca port mengaktifkan sinyal baca latch dan yang lain mengaktifkan sinyal baca pin. Port 1, port 0, port 3 mempunyai pull-up internal sedangkan port 0 dengan output open drain. Masing-masing jalur I / O dapat digunakan sebagai input ataupun output. Bila digunakan sebagai input, port latch harus 1. Untuk port 1, 2 dan 3 pin-pin akan di pull-up tinggi oleh pull-up internal, dan bias juga di pull-up rendah dengan sumber external.
Port 0 tidak mempunyai pull-up internal, pull-up fet hanya akan digunakan saat akses external memori. Jika isi latch diatur pada keadaaan 1, maka port ini akan berfungsi sebagai impedansi tinggi dan jika sebagai output akan versifat open drain. Demikian halnya dengan port 2 yang digunakan untuk multiplex data dan alamat 16 bit sebesar 16 Kbyte mempunyai konfigurasi yang sama dengan yang dimiliki oleh port 0 sedangkan pada port 3 yang biasa dimanfaatkan untuk kaki control mempunyai pengaturan fungsi output saja. Pada port ini juga dilengkapi dengan rangkaian pull-up internal. Penggunaan port 3 dapat dialamati langsung sebagai control langsung pada suatu tugas yang dilakukan oleh fungsi yang dimiliki oleh port ini.

2.1.5.2. Timer/Counter
Timer/Counter 0 dan Timer/Counter 1 merupakan timer 16-bit yang mempunyai pasangan register 16-bit yaitu THx, TLx. Setiap pasangan register dapat diprogram secara terpisah melalui software. Penggunaan dari Timer/counter ditentukan melalui dua register 8-bit yaitu TMOD (Timer Mode) dan TCON (Timer Control). Register TMOD dan TCON diset dengan program. Konfigurasi bit dari Register TCON ditunjukkan pada gambar 2.7. dan konfigurasi register TMOD ditunjukkan pada gambar 2.8.
MSB LSB
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Gambar 2.10. Konfigurasi bit Register TCON

Tabel 2. 5 Fungsi bit Register TCON
Simbol Posisi Fungsi
TF1 TCON.7 Timer 1 overflow flag. diset oleh perangkat saat Timer/Counter menghasilkan overflow
TR1 TCON.6 Bit untuk menjalankn Timer1.Diset/clear melalui
software
TF0 TCON.5 Timer 0 ovefrflow flag. Diset oelh perangkat keras
TR0 TCON.4 Bit untuk menjalankan Timer 0. diset/clear oleh software untuk membuat timer on atau off.
IE1 TCON.3 External interupt 1 (edge flag). Diset oleh hardware apabila tepi sinyal interupsi eksternal telah terdeteksi, dan direset kembali oleh hardware apabila interupsi telah diproses.
IT1 TCON.2 Interrupt 1 type control bit. Diset/direset oleh software untuk menetapkan jenis trigger tepi negatif/level rendah dari interupsi eksternal 1.
IE0 TCON.1 Eksternal Interupt 0 (edge flag).
IT0 TCON.0 Interupt 0 type control bit


MSB LSB
GATE C/T
M1 M0 GATE C/T
M1 M0


Gambar 2.11. Konfigurasi bit Register TMOD
Gate : Apabila TRx pada register TCON diset dan GATE =1, maka Timer/Counter akan bekerja ketika pin INT x memperoleh keadaan high (Hardware control), dan apabila GATE=0, Timer/Counter x akan berjalan hanya apabila Trx=1 (software control).
C/T : Pemilih Timer atau Counter, bila diset logika 1 maka Timer/Counter x berfungsi sebagai counter dan jika logika 0 Timer/conter x berfungsi sebagai timer.
M0,M1 : Pemilih modus 0, 1 atau 2.
Timer/counter pada 8031 dapat diprogram sesuai dengan kebutuhan. Perhitungan waktu oleh timer ditentukan frekuensi osilator yang digunakan, dimana frekuensi kerja timer adalah besar frekuensi kristal dibagi 12. Sebagai contoh, jika frekuensi kristal sebesar 12MHz maka timer akan bertambah setiap satu mikro detik (1s). Apabila periode waktu tertentu telah dilalui, timer/counter segera menginterupsi CPU untuk memberitahu bahwa perhitungan periode waktu telah selesai dilaksanakan. Periode waktu timer/counter secara umum ditentukan persamaan berikut:

a. Sebagai timer 8-bit:
T= (255-TLx) x 1 s ...............................................1)
dimana Tlx adalah isi register TL0 atau TL1
b. Sebagai timer 16-bit :
T=(65.535 x-THxTLx) x 1s .................................2)
dimana THx adalah isi register TH0 atau TH1, TLx adalah isi register TL0 atau TL1.
Timer/counter dari 8031 dapat diset pada 3(tiga) modus yaitu modus 0, modus 1, modus 2 dan modus 3.
Mode 0: Pada mode 0 register timer disusun sebagai register 13-bit. Setelah semua perhitungan selesai, mikrokontroler akan men-set Timer interupt Flag (TF1). Dengan membuat Gate=1, timer dapat dikontrol oleh masukan eksternal INT 1.



Gambar 2.12. Timer/Counter 1 Modus 0

Mode 1: Mode 1 sama dengan mode 0 kecuali register timer bekerja dalam 16-bit.
Mode 2: Mode 2 menyusun timer sebagai 8-bit counter. Limpahan (overflow) dari TL1 selain men-set TF1 juga mengisi TL1 dengan isi TH1 yang diatur secara software. Pengisian ini tidak mengubah TH1.

Gambar 2.13. Timer/Counter Mode 2

Mode 3: Timer 1 dalam mode 3 hanya untuk memegang hitungan. Efeknya sama seperti men-set TR1=0. Timer 0 dalam mode 3 menetapkan TL0 dan TH0 sebagai dua counter terpisah. TL0 menggunakan kontrol bit timer 0 yaitu C/T, Gate, TR0, INT0, dan TF0. TH0 ditetapkan sebagai fungsi timer.




Gambar 2.14. Timer/Counter Mode 3
2.1.6.2. Sistem Interupsi
Mikrokontroler AT89C51 mempunyai lima sumber interupsi. Dua sumber merupakan sumber external INT0 dan INT1. Kedua interupsi external dapat aktif level atau aktif transisi tergantung isi IT 0 dan IT 1 pada register TCON. Interupsi timer 0 dan timer 1 aktif pada saat timer yang sesuai mengalami rollover. Interupsi serial dibangkitkan dengan melakukan operasi OR pada R1. Tiap-tiap sumber interupsi dapat enable atau disable secara software melalui register IE. Untuk mengenabelkan interupsi EA diberi logika 1, dan memberikan logika 1 pada bit yang sesuai.
Register Interupsi Enable (IE)

MSB LSB
EA - - ES ET1 EX1 ET0 EX0

Gambar 2.15. Konfigurasi bit Register IE

EX0= Untuk mengenabelkan INT0
EX1= Untuk mengenabelkan INT1
ET0=Untuk mengenabelkan interupsi Timer 0
ET1=Untuk mengenabelkan interupsi Timer 1
ES=Untuk mengenabelkan interupsi Serial Komunikasi


Tabel 2.6 Alamat Rutin Interupsi
Nama Lokasi Alat Interupsi
Reset 00H Power On
Int 0 03H INT 0
Timer 0 0BH Timer 0
Int 1 13H INT 1
Timer 1 1BH Timer 1
Sint 23H Port I/O serial

Tingkat prioritas semua sumber interupsi dapat diprogram dengan set atau clear bit pada IP( Interupt Priority). Interupsi tingkat rendah dapat diinterupsi oleh interupsi yang mempunyai tingkat lebih tinggi tidak bisa menginterupsi sumber interupsi yang lain.
Perioritas Interupsi
MSB LSB
- - - PS PT1 PX1 PT0 PX0
Gambar 2.17 Konfigurasi bit Register IP

Perioritas bit=1 menandakan perioritas tertinggi
Perioritas bit=0 menandakan perioritas rendah

Port Serial
Sebelum menggunakan port serial terlebih dahulu diset modus dan fungsinya melalui register SMOD. Susunan bit dari register SMOD ditunjukkan pada gambar …berikut.
MSB LSB
SM0 SM1 SM2 REN TB8 RB8 T1 RI
Gambar 2.18 Konfigurasi bit Register SMOD

SM0 SM1 Mode Keterangan Baud Rate
0 0 0 Shift Register Fre.osc/12
0 1 1 8 bit UART Variable
1 0 2 9 bit UART Frek.Osc/64 atau Frek.osc/32

MSB LSB
SMOD - - - GF1 GF0 PD IDL
Gambar 2.19 Konfigurasi bit Register PCON

Pengaturan kecepatan transmisi diset melalui timer 1 dan bit SMOD dari PCON sebagai berikut:

Baud rate atau
Baud rate mode x timer 1 overflow rate atau
TH1

2.1.6.3. Perangkat Lunak Mikrokontroller AT89S51
Sebuah mikrokontroler tidak akan bekerja bila tidak diberikan program kepadanya. Program tersebut memberitahu mikrokontroler apa yang dilakukan sebuah mikrokontroler yang telah bekerja baik dengan suatu program, tidak akan bekerja lagi bila programnya diganti.
Instruksi-intruksi perangkat lunak berbeda untuk masing-masing jenis mikrokontroler. Instruksi-intruksi ini hanya bisa dipahami oleh jenis mikrokontroler yang bersangkutan. Sebuah mikrokontroler tidak dapat memahami instruksi-instruksi yang berlaku pada mikrokontroler lain. Sebagai contoh, mikrokontroler buatan intel dengan mikrokontroler buatan motorolla memiliki perangkat instruksi yang berbeda. Instruksi-instruksi inilah yang dikenal sebagai bahasa pemrograman system mikrokontroler.

2.1.6.4. Instruksi Transfer Data
Perangkat lunak adalah seperangkat instruksi yang disusun menjadi sebuah program untuk memerintahkan computer melakukan sesuatu pekerjaan. Sebuah instruksi selalu berisi kode pengoperasian (op-code), kode pengoperasian inilah yang disebut dengan bahasa mesin yang dapat dimengerti oleh computer. Instruksi-instruksi yang digunakan dalam memprogram suatu program yang diisikan pada IC AT89C51 adalah instruksi bahasa pemrograman assembler atau sama dengan instruksi pemrograman pada IC mikrokontroller 8031 dan MCS-51.
Instruksi transfer data terbagi menjadi dua kelas sebagai berikut :
• Transfer data utama (general purpuse transfer) yaitu : MOV, PUSH, dan POP
• Transfer spesifik akumulator (accumulator specific transfer) yaitu : XCH, ACHD, dan MOVC
Instruksi transfer data adalah instruksi pemindahan / pertukaran data berupa antara operand sumber dengan operand tujuan, operandnya dapat berupa register, memori atau lokasi suatu memori.
Deskripsi instruksi transfer data tersebut dijelaskan dibawah ini :
MOV : transfer bit atau byte dari operand sumber ke operand tujuan.
PUSH : transfer bit atau byte dari operand sumber ke suatu lokasi dalam stack yang alamat ditunjukan oleh register penunjuk (stack pointer)
POP : transfer byte dari dalam stack ke operand tujuan.
XCH : pertukaran data antara operand akumulator dengan operand sumber
XCHD: pertukaran nibble orde rendah, antara RAM internal (lokasinya ditunjukkan ( lokasinya ditunjukkan oleh R0 dan R1 ).

2.1.6.5. Instruksi Aritmatika (Instruksi perhitungan)
Operasi dasar aritmatika seperti penjumlahan, pengurangan, perkalian, dan pembagian dimiliki oleh mikrokontroler AT89C51 dengan mnemonic : INC, ADD, ADDC, DA, SUBB, DEC, MUL dan DIV. Deskripsi operasi mnemonic tersebut dijelaskan sebagai berikut :
INC : menambahkan satu isi sumber operand dan menyimpan hasilnya ke operand tersebut.
ADD : penjumlahan antara akumulator dengan sumber operand dan hasilnya disimpan di akumulator..
ADDC : hasil dari instruksi ADD ditambah satu bila cy diset.
SUBB : pengurangan akumulator dengan sumber operand, lalu dikurangi satu bila cy diset dan hasilnya disimpan dalam operand tersebut.
DEC : mengurangi sumber operand dengan satu dan hasilnya disimpan dalam operand tersebut.
MUL : perkalian antara akumulator dengan register B.
DIV : pembagian antara akumulator dengan register B dan hasilnya disimpan dalam akumulator, sisanya diregister B.

2.1.6.6. Instruksi Logika
Mikrokontroler AT89C51 dapat melalukan operasi logika bit maupun operasi logika byte. Operasi logika tersebut dibagi atas dua bahagian yaitu : operasi logika tunggal yang terdiri dari CLR, SETB, CPL, RL, RLC, RR, RRC dan SWAB. Operasi logika dua operand seperti ANL, ORL, dan XRL.
Operasi yang dilakukan oleh AT89C51 dengan pembacaan instruksi logika tersebut dapat dijelaskan sebagai berikut :
CLR : menghapus bit atau byte menjadi satu.
SETB : mengeset bit atau byte menjadi satu.
CPL : mengkomplemenkan akumulator.
RL : rotasi akumulator 1 bit kekanan dan bit 1 digeser melalui flag carry.
SWAB : pertukaran nibble orde tinggi.
ANL : operasi logika AND dan hasilnya disimpan dalam operand pertama.
ORL : operasi logika OR dan hasilnya disimpan dalam operand pertama.
XRL : operasi logika XOR dan hasilnya disimpan dalam operand pertama.

2.1.6.7. Instruksi Transfer Kendali
Instruksi transfer data kendali (control tranfer) terdiri dari 3 kelas operasi yaitu :
1. Lompatan tidak bersyarat (unconditional jump) seperti ACALL, AJMP, LJMP, dan SJMP.
2. Lompatan bersyarat (conditional jump) seperti JZ, JNZ, JB, CJNE dan DJNZ.
3. Interupsi seperti RET 1 dan RET.
Deskripsi instruksi transfer kendali dijelaskan sebagai berikut. Lompatan untuk percabangan maksimum 2 Kbyte untuk :
ACALL : instruksi pemanggilan subroutine bila alamat subroutine tidak lebih dari 2 Kbyte.
LCALL : pemanggilan subroutine yang mempunyai alamat antara 2 Kbyte sampai 64 Kbyte.
AJMP : lompatan untuk percabangan maksimum 2 Kbyte.
LJMP : lompatan untuk percabangan maksimum 64 Kbyte.
JMP@+DPTR : instruksi percabangan ke suatu lokasi yang ditunjukkan oleh DPTR + isi akumulator.
JNB : percabangan bila bit tidak diset
JZ : percabangan akan dilakukan jika acumulator adalah 0
JNZ : percabangan akan dilakukan jika akumulator tidak 0
JC : percabangan terjadi jika cy diset 1.
CJNE : operasi perbandingan operand pertama dengan operand ke dua, jika sama akan dilakukan percabangan.
DJNZ : mengurangi isi operand sumber dan percabangan akan dilakukan apabila isi operand tersebut tidak 0.
RET : kembali ke subroutine.
RET 1 : instruksi kembali ke program interupsi utama.
Sebagai operand dari perlengkapan insteruksi tersebut dapat dijelaskan sebagai berikut :
Rn : register R0-R7 yang dipilih dari tumpukan register.
Data : lokasi alamat data internal 8 bit, yang dilokasikan pada data RAM internal (0-127) SFR pada 128-255 (I/O port, register pengontrol, register status)
@Ri : data RAM internal lokasi 0 – 255 8 bit, yang dialamati secara tidak langsung melalui R0 dan register R1.
#data 8 : yang diisikan ke dalam instruksi adalah 8 bit.
#data16 : yang diisikan ke dalam instruksi adalah 16 bit.
Addr 16 : untuk tujuan alamat 16 bit.digunakan pada operasi LCALL dan LJMP yang dilakukan dimana saja dalam 64 Kbyte daerah alamat program memori.
Addr 11 : 11 bit alamat tujuan dipakai oleh operasi ACALL dan AJMP percabangan dapat dilakukan dimana saja dalam 2 Kbyte daerah program.

2.2 IC Buffer Oktal Inverter 74LS240
IC 74LS240 merupakan sebuah IC buffer saluran yang terdiri dari delapan inverter dengan output tri-state yang dirancang untuk digunakan sebagai pendorong(driver) saluran alamat, data, clock dari sistem mikioprosesor. Gambar diagram pin IC 74LS240 ditunjukkan pada gambar 2.20 dan tabel kebenarannya ditunjukkan pada tabel 2.7

Gambar 2.20 Diagram pin 74 LS 240.
Tabel 2.7 Tabel Kebenaran 74LS240

Pemberian logika tinggi pada masukan enable ( ) akan mengakibatkan output pada keadaan impedansi tinggi atau tri-state (Z). Jika masukan enable ( ) mendapat logika 0, keluaran setiap output(Y) merupakan kebalikan logika dari masukannya (A).

2.1 Transistor
2.2.1 Transistor sebagai saklar
Transistor merupakan salah satu komponen aktif yang dapat digunakan pada rangkaian untuk memperkuat sinyal, sebagai saklar, alarm dll.
Didalam pemakaiannya, transistor dipakai sebagai komponen saklar (switching), dengan memanfaatkan daerah penjenuhan (saturasi) dan daerah penyumbatan (Cut off) yang ada pada karakteristik transistor. Bila transistor dalam keadaan jenuh (saturasi) transistor identik dengan saklar dalam keadaan tertutup (On) dan Cut off sama dengan terbuka (Off).
Untuk mendapatkan keadaan tersebut kita dapat memperhatikan suatu karakteristik transistor, hal ini dapat dilihat pada gambar karakteristik transistor pada gambar 2.15.


Gambar 2.21. Karakteristik Transistor

Pada daerah penjenuhan ( saturasi ), nilai resistansi persambungan kolektor an emiter secara ideal sama dengan nol, atau kolektor dan emiter terhubung langsung (short). Keadaan ini meyebabkan tegangan kolektor emiter ( Vce = 0 Volt ) pada keadaan ideal, tetapi kenyataannya Vce bernilai 0,3 V. Dengan menganalogikan transistor sebagai saklar, transistor tersebut dalam keadaan On seperti gambar dibawah ini. Saturasi pada transistor terjadi apabila arus basis menyebabkan arus pada kolektor menjadi maksimum. Untuk mencari besar arus basis agar transistor saturasi dengan menggunakan rumus berikut :
(2.1)
(2.2)
(2.3)

Gambar 2.22 Transistor sebagai saklar

Hubungan antara tegangan basis ( Vb ) dan arus basis ( IB ) adalah: (2.4)
(2.5)
(2.6)
Jadi bila tegangan VBB telah mencapai , transistor akan saturasi dengan Ic mencapai maksimum. Pada daerah penyumbatan ( Cut off ), nilai resistansi persambungan kolektor emitor secara ideal dengan tidak terhingga atau terminal kolektor dan emitor terbuka ( open ).
Keadaan ini menyebabkan tegangan kolektor – emiter ( VCE ) sama dengan tegangan sumber ( Vcc ), tetapi pada kenyataannya VCE pada saat ini kurang dari Vcc karena terdapat arus bocor dari kolektor dan emitor. Dengan demikian transistor tersebut dalam keadaan Off, seperti pada gambar 2.17.

Gambar 2.23 Transistor sebagai saklar Off

BAB 3
PERANCANGAN SISTEM

3.1. Blok Diagram Rangkaian
Diagram blok merupakan gambaran dasar dari rangkaian yang akan di rancang . Adapun diagram blok rangkaian adalah seperti diperlihatkan pada gambar 3.1 .

Gambar 3.1 Diagram blok Jam Digital

3.2 Perangcangan Perangkat Keras (Hardware)
Perancangan perangkat keras adalah bagian dari perancangan sistem Jam Digital yang terdiri dari :
1. Unit Display
2. Unit Driver
3. Unit Pengatur/Pengesetan Waktu
4. Unit Alarm
5. Unit Pengendali

3.2.1 Unit Display
Unit Display dirancang menggunakan seven segment common anoda . Unit ini berfungsi sebagai tampilan daripada Jam Digital yang dirancang memakai seven segment dan dihubungkan secara parallel seperti ditunjuk pada gambar 3.2.

Gambar 3.2 Rangkaian display menggunakan seven segment

Sebelum unit display dihubungkan ke-unit driver, terlebih dahulu diukur jatuh tegangan pada seven segment menggunakan “LED” untuk hidup dan matinya seven segment ini. Untuk itu perlu diukur jatuh tegangan pada seven segment seperti diperlihatkan pada gambar 3.3.

Gambar 3.3 Pengukuran jatuh tegangan pada led
Adapun langkah untuk mengukur jatuh tegangan pada LED adalah sebagai berikut :
1. Hubungkan tahanan sebesar 68 pada LED
2. Hubungkan Ampmeter seperti gambar 3.3
3. Siapkan Catu Daya
Setelah dihubungkan sesuai dengan gambar 3.3 maka akan terbaca pada Ampmeter arus yang mengalir pada rangkaian sebesar 19mA. Berdasarkan hukum tegangan Kirchhoff pada loop tertutup dari gambar 3.3 maka di nyatakan sebagai berikut :





3.2.2 Unit Driver
Pada unit driver ini penulis menggunakan Ic 74LS240, resistor dan transistor. Untuk pemilihan Ic dan transistor ditentukan dari seven segment yang digunakan unit display. Disebabkan karena seven segment common anoda maka dipilih Ic 74LS240 sebagai buffer dan transistor Bc327 (PNP) seperti diperlihatkan pada gambar 3.4.


Gambar 3.5 Rangkaian driver Jam Digital

Dari gambar 3.5 bila diekivalenkan akan membentuk rangkaian seperti diperlihatkan pada gambar 3.6.


Gambar 3.6 Ekivalen rangkaian driver
Sesuai dengan Gambar 3.6, maka dapat dirumuskan dengan hukum tegangan Kirchhoff pada loop tertutup.


Diketahui dari masing – masing datasheet bahwa jatuh tegangan pada masing-masing komponen adalah:
Vcesat : 0,4V , Vd : 3.7V , Vol : 0,5V
Arus yang dibutuhkan 160 mA
Vcc : 5 V
Maka tahanan dapat dicari , melalui rumus diatas sebagai berikut :


Besar tahanan yang dipakai pada Unit Driver adalah 68 , sehingga dapat dirancang kembali rangkaian lengkap Unit Driver dan Unit Display seperti diperlihatkan pada gambar 3.7.

Gambar 3.7 Rangkaian driver dengan unit display

Unit driver ini dikontrol melalui Port 1 dan Port 0. Bila salah satu Port 1 aktif high dan salah satu Port 0 aktif low , maka unit display akan menyala pada led tertentu yang diaktifkan.

3.2.3 Unit Pengatur/Pengesetan Waktu
Pada unit ini penulis menggunakan 2 switch dan 2 tombol push yang berfungsi untuk set jam, set jadwal , atur jam dan menit.

Gambar 3.8 Rangkaian pengatur/pengesetan waktu

Unit pengatur/pengesetan ini berfungsi untuk set jam, set jam kuliah di bulan puasa, atur jam dan atur menit . Ketika switch set jam di tekan maka data berlogika low akan masuk ke port 2.7 sehingga jam digital dapat mengatur jam dan menit. Setelah diatur jam dan menit maka bila switch dikembalikan seperti posisi semula atau berlogika high maka jam digital sudah bekerja dan tidak dapat diatur kembali baik jam maupun menit. Switch untuk mengatur jadwal bulan puasa dihubungkan pada port 2.4. Prinsip kerjanya sama dengan switch set jam.
Kedua tombol push dihubungkan ke port 2.6 dan port2.5 . Kedua tombol bila ditekan akan menghasilkan data logika low yang berfungsi untuk mengatur jam dan menit.
Unit pengatur set jam ini menggunakan tahanan sebesar 4K7 . Resistor ini berfungsi sebagai penahan arus agar tidak berlebih ketika masuk ke unit pengendali (AT89S51). Berdasarkan datasheet karakteristik AT89S51 pada port 2 diketahui bahwasanya Vol = 0.45V dengan benaman arus maksimum 1,6mA ketika output low. Dari keterangan ini maka dapat dihitung tahanan yang digunakan sebagai pull-up.

Pemasangan tahanan sesuai dengan perhitungan diatas adalah 3 KΩ . Tetapi ini adalah nilai minimum pemasangan tahanan untuk arus maksimum 1,6mA, sehingga dipilih tahanan senilai 4K7 agar arus benaman pada port 2 AT89S51 lebih kecil.

3.2.4 Unit Alarm
Unit alarm seperti gambar 3.9 berfungsi untuk mengaktifkan alarm apabila waktu yang ditentukan telah sampai.


Gambar 3.9 Rangkaian clock alarm
Unit ini menggunakan tahanan sebesar 4k7 yang berfungsi sebagai pembatas arus, ketika port 3.7 berlogika data high, maka alarm akan berbunyi.

3.2.5 Unit Pengendali
Pada unit pengendali penulis menggunakan AT89S51 sebagai pengendali atau pengontrol semua sistem unit rancangan agar dapat menerima akses. Penulis menggunakan Port 0, Port 1, Port 2, Port 3 untuk semua unit rancangan. Sesuai dengan gambar 3.9, Port 0.0 s/d Port 0.3 dipakai untuk data trace. Port 1.0 s/d Port 1.7 dipakai untuk memegang data seven segmen. Port 2.4 s/d Port 2.7 dipakai untuk data tombol dan switch. Port 3.7 dipakai untuk data clock alarm.

Gambar 3.10 Rangkaian Pengendali AT89S51
3.3 Perancangan Perangkat Lunak (Software)
Untuk mempermudah membuat program jam digital, terlebih dahulu dibuat program bagian per bagian yaitu program menampilkan waktu, program set waktu, program alarm.

3.3.1 Program Tampil Waktu
Program ini berfungsi menampilkan isi memori 41H dan 42H ke peraga 7-segment dimana isi memori RAM alamat 41H adalah nilai Menit dan isi memori RAM alamat 42H adalah nilai Jam. Adapun algoritma dari untuk menampilkan waktu ini dijelaskan sebagai seperti gambar 3.11

Gambar 3.11 Proses Peragaan Waktu

Nilai Menit (isi memori 41H) diubah ke nilai segment dan nilai segment tersebut disimpan pada memori display. Konversi nilai segment ini sesuai dengan tabel 3.1 Dimana angka 8 nilai segmentnya adalah 3FH angka 2 mempunyai nilai segment 5BH, angka 4 mempunyai nilai segment 66H, dan angka 1 mempunyai nilai segment 06H. Pengkonversian ini dilakukan dengan look up table dimana nilai angka ditambahkan ke alamat awal tabel dan kemudian membaca isi tabel tersebut sebagai nilai segmentnya.
Tabel 3.1 konversi nilai segmen
Masukan Basis Masukan 74LS240
Tampilan 7-segment
TR3 TR2 TR1 TR0 2A4 2A3 2A2 1A4 1A3 1A2 1A1

0
1
1
1
0
0
0
0
1
1
0


1
0
1
1
0
1
1
0
1
1
0


1
1
0
1
0
1
0
1
0
1
1


1
1
1
0
1
1
1
1
1
1
1


Diagram alir dari penampilan waktu ini ditunjukkan pada gambar 3.12

Gambar 3.12 Diagram alir tampil waktu

3.3.2 Program Set Waktu
Program ini berfungsi untuk mengubah isi memori 41H (Menit) dan 42H(Jam) dengan cara menaikkan isi memori tersebut. Program akan menjalankan Setwaktu jika tombol Set waktu (port P2.7) diberi logika 1, dan menit akan bertambah setiap 0,5 kira-kira detik jika tombol set menit ditekan atau P2.6 diberi logia 1, dan Jam akan bertambah 1 jika tombol set jam ditekan atau P2.5 diberi logika 1. Program akan keluar dari set waktu jika P2.7 diberi logika 0. Diagram alir dari set waktu ditunjukkan pada gambar 3.12.


Gambar 3.13 Diagram alir set waktu

3.3.3 Program Naik Waktu
Penghasilan 1 detik dilaksanakan dengan menggunakan Timer 0, dimana Timer 0 diset menghasilkan interupsi setiap 0,05 detik sebanyak 20 kali. Untuk itu Timer 0 diset sebagai berikut: Modus kerja modus 1, bekerja sebagai timer. Frekuensi kristal yang digunakan sebagai sumber clock adalah 11,059200 MHz dengan demikian frekuensi kerja mikrokontroler adalah sebesar 0,921600MHz dengan demikian periode kerja adalah 1.085069µS. Untuk menghasilkan interupsi setiap 0,05 detik maka Timer 0 diset pada 65.535-(50000µS / 1.085069µS)= 65.535-46.080= 19455 atau 4BFFH dengan demikian TL0 diisi FFH dan TH0 diisi 4BH. Dengan demikian sub-program inisialisasi ditunjukkan pada berikut ini.
Sub-Program Inisialisasi:

INISIAL: MOV IE,#82H ;Set interupsi Timer 0
MOV TMOD,#01H ;set T0=16-bit
MOV TH0,#4BH ;PEMBAGI
MOV TL0,#0FFH ;Set Timer T0= 0,05dtk
MOV TCON,#10H ;Enable timer 1 dan T0
MOV 24H,#00 ;clear indiksi 1 dtk
MOV 20H,#00 ;counter indikasi 0,05 dtk
RET

Agar waktu bertambah setiap 0,05 detik maka alamat vektor interupsi diisikan dengan perintah melompat ke program penambahan 0,05 detik, dengan demikian alamat 0BH diisi dengan SJMP NAIKTIMER. Diagram alir untuk menaikkan waktu setiap 0,05 detik dan menaikkan waktu detik setelah 1 detik ditunjukkan gambar 3.14 dan programnya ditunjukkan pada program Naik-Waktu


Gambar 3.14 naik waktu

3.3.4 Sub-Program Periksa Alarm
Program Periksa alaram ini berfungsi untuk memeriksa apakah waktu masuk, pergantian dan berakhirnya perkuliahan telah dicapai yang diindikasikan dengan bunyi alaram. Data waktu alaram dibagi atas dua yaitu waktu perkuliahan normal dan waktu perkuliahan saat bulan Puasa. Pemilihan waktu perkuliahan normal dan saat bulan puasa dilaksanakan dengan melalui port P2.4 dimana waktu saat normal diset dengan P2.4 diberi logika 1 dan waktu perkuliahan saat puasa P2.4 logika 0. Alaram diaktivkan dengan memberikan logika 0 pada port P3.7. Waktu perkuliahan Pokiteknik MBP normal adalah sebagi berikut:
07.30-09.00,
09.00-10.30,
10.30-12.00,
12.30-14.00,
14.00-15.30,
15.30-17.00,
17.00-18.30,
19.00-20.30
Waktu perkuliahan Pokiteknik MBP saat bulan Puasa adalah sebagai berikut:
07.30-08.40,
08.40-10.10,
10.10-11.30,
13.00-14.20,
14.20-15.40,
15.40-17.00,
17.00-18.20,
19.00-20.20
Diagram alir periksa alaram ini ditunjukkan pada gambar 3.15 dan programnya ditunjukkan pada program Periksa alarm.

Gambar 3.15 Periksa alarm


BAB 4
PENGUJIAN DAN ANALISA

4.1 Pengujian Unit Display
Pengujian unit display dilakukan memakai catu daya 5 V dan sebuah tahanan sebesar 50 Ω

Gambar 4.1 Pengukuran rangkaian display

Pengujian dilakukan satu persatu mulai dari LSB s/d MSB dan dari Tr1 s/d Tr4. Dari pengujian unit ini, maka akan didapat data logika untuk menampilkan angka 0 s/d 9 dan perpindahan dari segmen berikutnya.
Setelah pengujian ini penulis melakukan pengujian memakai bit switch. Bit switch merupakan komponen pengujian yang dirangkai dari switch dan tahanan yang dihubungkan secara pull-up sehingga dapat menghasilkan logika high dan low. Dengan cara ini penulis dapat mencatat logika untuk unit display.


Gambar 4.2 Seven segmen

Tabel 4.1 Data unit display
Seven Segmen Common Anoda Tampilan
Data
Trace h g f e d c b a Angka
h h h l l l l l l 0
h h h h h h l l h 1
h h l h l l h l l 2
h h l h h l l l l 3
h h l l h h l l h 4
h h l l h l l h l 5
h h l l l l l h h 6
h h h h h h l l l 7
h h l l l l l l l 8
h h l l h h l l l 9


4.2 Pengujian Unit Driver
Pengujian unit driver dilakukan memakai bit switch. Hal ini dilakukan agar unit driver yang terpasang nantinya akan berfungsi dengan baik sehingga arus yang mengalir pada rangkaian tidak berlebih dan juga tidak kurang dari yang di harapkan.


4.2.1 Pengujian Ic Buffer


Gambar 4.3 Pengujian rangkaian driver

Sebelum dilakukan pengujian sebaiknya datasheet yang berhubungan dengan komponen unit driver di lampirkan. Ic 74LS240 merupakan Ic buffer yang mampu mengeluarkan maksimum 24 mA dalam keadaan low dan maksimum jatuh tegangan 0,5 Volt. Ic ini juga mempunyai karakteristik sebagai invers yang mana input dan output selalu bertolak belakang. Bila input adalah logika low maka output akan high dan begitu juga sebaliknya.
Hasil dari pengujian Ic 74LS240 diperlihatkan pada tabel 4.2. Pengujian dilakukan dengan memakai alat bantu bit switch sebagai pemberi logika (High =5Vdan logika low =0V).

Tabel 4.2 Hasil pengujian rangkaian driver
Bit Switch (Trace) Output Tcare Bit Switch (seven segmen) Output Seven Segmen
Bit 3 Bit 2 Bit 1 Bit 0 Tr 4 Tr 3 Tr 2 Tr 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 h g f e d c b a
H H H L OFF OFF OFF ON L L L L L L L H OFF OFF OFF OFF OFF OFF OFF ON
H H H L OFF OFF OFF ON L L L L L L H L OFF OFF OFF OFF OFF OFF ON OFF
H H H L OFF OFF OFF ON L L L L L H L L OFF OFF OFF OFF OFF ON OFF OFF
H H H L OFF OFF OFF ON L L L L H L L L OFF OFF OFF OFF ON OFF OFF OFF
H H H L OFF OFF OFF ON L L L H L L L L OFF OFF OFF ON OFF OFF OFF OFF
H H H L OFF OFF OFF ON L L H L L L L L OFF OFF ON OFF OFF OFF OFF OFF
H H H L OFF OFF OFF ON L H L L L L L L OFF ON OFF OFF OFF OFF OFF OFF
H H H L OFF OFF OFF ON H L L L L L L L ON OFF OFF OFF OFF OFF OFF OFF

Sementara transistor yang digunakan sebagai switch adalah komponen yang bekerja apabila di beri low. Dari data yang ada maka dapat dilakukan pengujian melalui pengukuran pada jalur output dari unit driver.

Gambar 4.4 Pengujian rangkaian buffer

Dari gambar 4.4 penulis dapat menguji unit driver tersebut. Pemberian tahanan pada unit ini berfungsi sebagai penahan arus sehingga jatuh tegangan pada Ic tidak berlebih sesuai dengan datasheet Ic 74LS240 sebesar 0,5 Volt ketika keadaan low. Hasil dari pengujian rangkaian buffer diperlihatkan pada tabel 4.3.
Pengujian dilakukan dengan memakai alat bantu bit switch sebagai pemberi logika (High =5Vdan logika low =0V).

Tabel 4.3 Pengujian rangkaian buffer
Bit Switch (Trace) Output Tcare Bit Switch (74LS240)
Bit 3 Bit 2 Bit 1 Bit 0 Tr 4 Tr 3 Tr 2 Tr 1 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
H H H L OFF OFF OFF ON L L L L L L L H
H H H L OFF OFF OFF ON L L L L L L H L
H H H L OFF OFF OFF ON L L L L L H L L
H H H L OFF OFF OFF ON L L L L H L L L
H H H L OFF OFF OFF ON L L L H L L L L
H H H L OFF OFF OFF ON L L H L L L L L
H H H L OFF OFF OFF ON L H L L L L L L
H H H L OFF OFF OFF ON H L L L L L L L

Catatan :
Logika high pada Ic 74LS240 mengakibatkan led menyala

Untuk kebenaran dari unit ini dalam pemakaian tahanan maka dilakukan sekali pengujian pengukuran pada output Ic sebelum tahanan.

Gambar 4.5 Pengukuran Vol Ic 74LS240

Dari gambar 4.5 maka penulis dapat mengukur Vol Ic 74LS240 yaitu sebesar 0,47 V. Sehingga angka tersebut dibawah nilai maksimum dari Vol Ic sesuai dengan datasheetnya. Untuk itu pemakaian tahanan pada unit ini sudah benar. Hasil pengukuran diperlihatkan pada table 4.4.


Tabel 4.4 Hasil pengukuran Vol 74LS240
Bit Switch (Trace) Bit Switch (seven segmen) Vol 74LS240 (volt)
Bit 3 Bit 2 Bit 1 Bit 0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Pin 3 Pin 5 Pin 7 Pin 9 Pin 12 Pin 14 Pin 16 Pin 18
H H H L L L L L L L L H 4.9 4.9 4.9 4.9 4.9 4.9 4.9 0.28
H H H L L L L L L L H L 4.9 4.9 4.9 4.9 4.9 4.9 0.28 4.9
H H H L L L L L L H L L 4.9 4.9 4.9 4.9 4.9 0.28 4.9 4.9
H H H L L L L L H L L L 4.9 4.9 4.9 4.9 0.28 4.9 4.9 4.9
H H H L L L L H L L L L 4.9 4.9 4.9 0.28 4.9 4.9 4.9 4.9
H H H L L L H L L L L L 4.9 4.9 0.28 4.9 4.9 4.9 4.9 4.9
H H H L L H L L L L L L 4.9 0.28 4.9 4.9 4.9 4.9 4.9 4.9
H H H L H L L L L L L L 0.28 4.9 4.9 4.9 4.9 4.9 4.9 4.9


4.2.2 Pengujian Transistor sebagai saklar
Transistor sebagai saklar dalam pengujian ini adalah BC 327. Transistor jenis ini mempunyai penguatan hampir 300 kali menurut datasheet BC327.


Gambar 4.6 Pengujian transistor sebagai saklar

Bila logika low diberikan pada basis maka transistor bekeja sebagai switch. Pengukuran dapat dilakukan dengan voltmeter dengan melihat adanya tegangan pada kolektor. Ini membuktikan bahwa arus mengalir dari emitter ke kolektor. Logika high pada basis membuat transistor tidak bekerja dan pada pengukuran tidak terdapat adanya tegangan atau arus tidak mengalir pada kolektor.
Hasil dari pengujian transistor sebagai saklar diperlihatkan pada tabel 4.5.
Pengujian dilakukan dengan memakai alat bantu bit switch sebagai pemberi logika (High =5Vdan logika low =0V).

Tabel 4.5 Hasil pengujian transistor
VBB IB(Sat) IC(Sat) VCE Status Led
5 0 0mA 2.3V OFF
0 2mA 16mA 0.049V ON


4.3 Pengujian Unit Pengatur/Pengesetan Waktu
Pengujian unit dilakukan dengan pengukuran memakai voltmeter. Hal ini dilakukan agar unit tombol yang terpasang nantinya akan berfungsi dengan baik sehingga arus yang mengalir pada rangkaian tidak berlebih atau kurang dari yang di harapkan.


Gambar 4.7 Pengujian rangkaian pengatur jam dengan voltmeter

Bila tombol ditekan maka arus mengalir ke ground dan voltmeter akan mengukur tegangan yang sangat rendah sehingga dapat dikatakan dalam keadaan low. Dalam keadaan tombol tidak ditekan arus mengalir ke unit pengendali. Hasil dari rangkaian pengatur jam diperlihatkan pada tabel 4.6.
Pengujian dilakukan dengan memakai alat bantu bit switch sebagai pemberi logika (High =5Vdan logika low =0V).
Tabel 4.6 Hasil pengukuran pada rangkaian pengatur jam
Status tombol V.Out
Ditekan 0
Tidak Ditekan 5


4.4 Pengujian Unit Alarm


Gambar 4.8 Pengujian rangkaian clock alarm dengan voltmeter

Logika high akan mengakibatkan arus mengalir pada clock alarm dan dapat di ukur melalui voltmeter. Hasil dari rangkaian pengatur jam diperlihatkan pada tabel 4.7. Pengujian dilakukan dengan memakai alat bantu bit switch sebagai pemberi logika (High =5Vdan logika low =0V).


Tabel 4.7 Hasil pengukuran pada rangkaian pengatur jam
Data logika Vout Status Alarm
High (5V) 5 Mengeluarkan Sinyal Suara
Low (0V) 0 Tidak Mengeluarkan Sinyal Suara


4.5 Pengujian Unit Pengendali
Pengujian dilakukan dengan memasukkan program untuk mengeluarkan data 55H pada port 1 .
MOV P1,#55 H
Selanjutnya dilakukan pengujian dengan menggunakan logic probe pada port 1.

Gambar 4.9 Pengujian rangkaian pengendali dengan logic probe
Pengujian dilakukan dari P1.1 sampai P1.7. hasil dari pengujian dapat dilihat pada table 4.2.
Tabel 4.2 Hasil Pengujian Port 1
Port P1.7 P1.6 P0.5 P1.4 P1.3 P1.2 P1.1 P1.0
Logic Probe L H L H L H L H


Tabel 4.2 Hasil Pengujian Port 1
Port P1.7 P1.6 P0.5 P1.4 P1.3 P1.2 P1.1 P1.0
Voltmeter 0.2 3.7 0.2 3.7 0.2 3.7 0.2 3.7

Dari hasil pengujian tabel 4.2 dapat disimpulkan bahwa unit pengendali telah bekerja dengan benar, dimana perintah yang diberikan adalah menghasilkan logika 010101012 pada port P1.


BAB V
PENUTUP
5.1 Kesimpulan
Setelah melalui tahap perancangan dan pengujian system maka dapat diambil kesimpulan sebagai berikut :
1. Perancangan ini sangat bagus untuk aplikasi pengaturan jadwal pada kantor, kampus dan sekolah.
2. Dengan fungsi Jam Alarm Digital ini memungkinkan keakuratan waktu yang lebih tepat dalam penjadwalan kegiatan perkuliahan.
3. Dengan menggunakan interupsi timer, perhitungan waktu sangat tepat sebab sumber clock adalah sebuah crystal yang stabil.
4. Dengan mengggunakan mikrokontroller AT89S51 penandaan waktu pergantian jam kuliah dapat lebih sederhana dan pengubahan waktu alarm dapat dilakukan dengan mengubah data waktu pada program dan pengesetan waktu dapat dilakukan dengan pengesetan tombol.

5.2 Saran
Dalam penyelesaian laporan tugas akhir ini diharapkan kepada pembaca untuk lebih mengembangkan lagi bagi pengguna system penambahan rangkaian penunjang maupun pengembangan program dan penambahan rangkaian yang lebih efisien. Untuk pengembangan jam digital ini disarankan untuk menggunakan alarm yang lebih besar dan tampilan display seven segmen yang lebih besar juga, dan alat ini dapat dihubungkan dengan computer.
DAFTAR PUSTAKA

1. Malvino Barmawi (1996) Prinsip-prinsip Elektronika. Edisi 2 Jilid 1,2. Jakarta, Penerbit Erlangga.
2. Malvino Barmawi (1996) Prinsip-prinsip Elektronika. Edisi 3 Jilid 1,2. Jakarta, Penerbit Erlangga.
3. Albert paul Malvino (1983) Elektronika Komputer Digital, Pengantar Mikrokomputer Edisi 2, Itb, Penerbit Erlangga.
4. Wasito Suyono (1992) Data sheet Book 1, data IC Linier, TTL dan CMOS : (kumpulan data penting komponen elektronika) Cet. 2. Jakarta, Penerbit PT. Elex Media komputindo,
5. Richard Blocher, Dipl. Phys (2004) Dasar Elektronika, Penerbit Andi Yogyakarta.
6. Milman dan Halkias (1993) Elektronika Terpadu, Jilid 1. Penerbit Erlangga.
7. www.atmel.com
8. www.maxim-ic.com
9. www.DatasheetCatalog.com
10. www.Design-NET.com


Proram untuk menjalankan Jam alarm perkuliahan
ORG 00
SJMP START;

ORG 30H
START: CALL CLEAR_DISP
MOV 25H,#80H
MOV 41H,#00
MOV 42H,#00
ULANG:
JB P2.7,TERUS ;Jika logik 0 set waktu
CALL SET_WAKTU
TERUS: MOV A,41H
MOV R0,#30h
CALL SEGMENT
MOV A,42H
MOV R0,#32h
CALL SEGMENT
MOV R7,#05H
DEL2: MOV R6,#0FFH
DEL1: CALL TAMPIL ;Tampilkan
DJNZ R6,DEL1
DJNZ R7,DEL2
SJMP ULANG

SET_WAKTU: MOV A,P2 ;Periksa port P2
ANL A,#0E0H
CJNE A,#20H,T_NMNT
MOV A,42H ;Naik Jam
ADD A,#01
DA A
MOV 42H,A
CJNE A,#24H,T_SET
MOV 42H,#00
SJMP T_SET
T_NMNT: CJNE A,#40H,T_SET
MOV A,41H ;Naik Menit
ADD A,#01
DA A
MOV 41H,A
CJNE A,#60H,T_SET
MOV 41H,#00
T_SET: MOV R0,#30h
MOV A,41H ;Ubah ke Segment
CALL SEGMENT
MOV A,42H
MOV R0,#32h
CALL SEGMENT
MOV R7,#10H
DEL_SET2: MOV R6,#0FFH
DEL_SET1: CALL TAMPIL ;Tampilkan
DJNZ R6,DEL_SET1
DJNZ R7,DEL_SET2
JNB P2.7,SET_WAKTU
RET


CLEAR_DISP: MOV R0,#30H
UL_kOSONG: MOV A,#00
MOV @R0,A
INC R0
CJNE R0,#34H,UL_kOSONG
RET

SEGMENT: MOV DPTR,#100H
MOV R1,A
ANL A,#0FH ;Ambil Low-Niblle
MOVC A,@A+DPTR
MOV @R0,A ;Simpan ke buffer
MOV A,R1
RR A
RR A
RR A
RR A
ANL A,#0FH
MOVC A,@A+DPTR
INC R0
MOV @R0,A
RET

TAMPIL: MOV R0,#30H ;set alamat awal buffer
MOV DPTR,#110H ;Set alaat awal data Trace
UL_DISP: MOV P1,#00 ;Clear display
MOV R5,#03 ;Delay
DJNZ R5,$
CLR A ;Ambil data trace
MOVC A,@A+DPTR
MOV P0,A ;Berkan ke Tr
MOV A,@R0 ;Ambil data
ORL A,25H ;Aktifkan dot
MOV P1,A ;Tampilkan
MOV R5,#03 ;Delay
DJNZ R5,$
INC DPTR
INC R0
CJNE R0,#34H,UL_DISP
MOV P1,#00
RET


ORG 100H

DB 3FH,06H,5BH,4FH ; 0;1;2;3
DB 66H,6DH,7DH,07H ; 4;5;6;7
DB 7FH,67H,77H,7CH ; 8;9;A;B
DB 39H,5EH,79H,75H ; C;D;E;F


ORG 110H
DB 07H,0BH,0DH,0EH ;Data Trace

ORG 00
SJMP START;
ORG 0BH
AJMP NAIKTIMER

ORG 30H
START: CALL INISIAL
CALL CLEAR_DISP
CLR P3.7 ;Alaram off
MOV 40H,#50H ;set waktu 07.30.30
MOV 41H,#30H
MOV 42H,#07
ULANG: JB P2.7,TERUS
CALL SET_WAKTU
TERUS: MOV A,24H
CJNE A,#01,TERUS2
CALL NAIK_WAKTU
TERUS2: MOV A,41H ;Ambil nilai menit
MOV R0,#30H ;Set digit 0,1
CALL SEGMENT
MOV A,42H ;Ambil nilai jam
MOV R0,#32H ;Set digit 2,3
CALL SEGMENT
CALL TAMPIL ;Tampilkan
CALL CHEK_ALARAM
SJMP ULANG

SET_WAKTU:MOV A,P2 ;Periksa port P2
ANL A,#0E0H
CJNE A,#20H,T_NMNT
MOV A,42H ;Naik Jam
ADD A,#01
DA A
MOV 42H,A
CJNE A,#24H,T_SET
MOV 42H,#00
SJMP T_SET
T_NMNT: CJNE A,#40H,T_SET
MOV A,41H ;Naik Menit
ADD A,#01
DA A
MOV 41H,A
CJNE A,#60H,T_SET
MOV 41H,#00
T_SET: MOV R0,#30h
MOV A,41H ;Ubah ke Segment
CALL SEGMENT
MOV A,42H
MOV R0,#32h
CALL SEGMENT
MOV R7,#10H
DEL_SET2: MOV R6,#0FFH
DEL_SET1: CALL TAMPIL ;Tampilkan
DJNZ R6,DEL_SET1
DJNZ R7,DEL_SET2
JNB P2.7,SET_WAKTU
RET

NAIK_WAKTU: MOV A,40H ;Ambil nilai dtk
CLR C
SUBB A,#60H ;Periksa apakah >=60
JC KEL_NAIK ;Keluar jika tdk
CJNE A,#60H,KEL_NAIK;
MOV 40H,#00 ;Jika >atau =60, Set dtk =lebihnya
MOV 40H,A
MOV A,41H ;Naikkan menit
ADD A,#01
DA A ;Desimalkan
MOV 41H,A
CJNE A,#60H,KEL_NAIK ;Periksa apakah telah 60
MOV 41H,#00 ;Jika ya set 00
MOV A,42H ;Naikkan jam
ADD A,#01
DA A ;Desimalkan
MOV 42H,A
CJNE A,#24H,KEL_NAIK ;Periksa apakah sdh 24
MOV 42H,#00
KEL_NAIK: MOV 24H,#00 ;Clear indikasi 1 dtk
RET

NAIKTIMER: INC 20H ;Naikkan indikasi 0,05dtk
MOV R5,20H
CJNE R5,#0AH,LMPT ;Periksa apakah sdh 0,5dtk?
MOV 20H,#00
MOV A,25H
CJNE A,#80H,SET ;Periksa indikasi kedip
MOV 25H,#00 ; jika 01 set jadi 00
SJMP LMPT_NAIK
SET: MOV 25H,#80H ;Jika 00 set 01
LMPT_NAIK: INC R2
CJNE R2,#02,LMPT
MOV R2,#00 ;Clear count 0,5dtk
MOV A,40H ;Naikkan detik
ADD A,#01H
DA A ;Desimalkan
MOV 40H,A
MOV 24H,#01H ;Set indikasi 1dtk
LMPT: MOV TH0,#3CH ; Menghasilkan interupt setiap
MOV TL0,#0AFH ; 0,05 detik
MOV IE,#82H ; Interupsi T0 dan serial enable
RETI


;
INISIAL: MOV IE,#82H ;Set interupsi Timer 0
MOV TMOD,#01H ;set T0=16-bit
MOV TH0,#3CH ;Baud rate 9600bps dgn 11.0592MHz
MOV TL0,#0AFH ;Set Timer T0= 0,05dtk
MOV TCON,#10H ;Enable timer 1 dan T0
MOV 24H,#00 ;clear indiksi 1 dtk
MOV 20H,#00 ;counter indikasi 0,05 dtk
MOV 25H,#00 ;indikasi dot detik
MOV R2,#00 ;counter indikasi 0,5 dtk
RET

CLEAR_DISP: MOV R0,#30H
UL_kOSONG: MOV A,#00
MOV @R0,A
INC R0
CJNE R0,#34H,UL_kOSONG
RET

SEGMENT: MOV DPTR,#200H
MOV R1,A
ANL A,#0FH ;Ambil Low-Niblle
MOVC A,@A+DPTR
MOV @R0,A ;Simpan ke buffer
MOV A,R1
RR A
RR A
RR A
RR A
ANL A,#0FH
MOVC A,@A+DPTR
INC R0
MOV @R0,A
RET

TAMPIL: MOV R0,#30H ;set alamat awal buffer
MOV DPTR,#210H ;Set alamat awal data Trace
UL_DISP: MOV P1,#00 ;Clear display
CLR A ;Ambil data trace
NOP
MOVC A,@A+DPTR
MOV P0,A ;Berkan ke Tr
MOV A,@R0 ;Ambil data
ORL A,25H ;Aktifkan dot
MOV P1,A ;Tampilkan
MOV 27H,#05 ;Delay
DJNZ 27H,$
INC DPTR
INC R0
CJNE R0,#34H,UL_DISP
MOV P1,#00
RET

CHEK_ALARAM: MOV DPH,#02H ;Set alamat awal tabel alaram
MOV R3,#20H ;Alamat alaram menit
MOV R4,#30H ;Alamat alaram jam
CHEK_ALRM: MOV DPL,R3
CLR A
MOVC A,@A+DPTR
CJNE A,41H,LAIN ;Bandingkan menit
MOV DPL,R4
CLR A
MOVC A,@A+DPTR
CJNE A,42H,LAIN ;Bandingkan menit
SETB P3.7 ;Jika sama menit dan jam alaram ON
MOV R7,#01H
DELAY_ALARAM2: MOV R6,#01H
DELAY_ALARAM1: NOP
DJNZ R6,DELAY_ALARAM1
DJNZ R7,DELAY_ALARAM2
SJMP KEL_ALARAM
LAIN: INC R3
INC R4
CJNE R3,#2BH,CHEK_ALRM
KEL_ALARAM: CLR P3.7
RET

ORG 200H

DB 3FH,06H,5BH,4FH ; 0;1;2;3
DB 66H,6DH,7DH,07H ; 4;5;6;7
DB 7FH,67H,77H,7CH ; 8;9;A;B
DB 39H,5EH,79H,75H ; C;D;E;F


DB 0C0H,0F9H,0A4H,0B0H ; 0;1;2;3
DB 99H,92H,82H,0F8H ; 4;5;6;7
DB 80H,90H,88H,43H ; 8;9;A;B
DB 0C6H,0A1H,86H,8EH ; C;D;E;F

ORG 210H
DB 07H,0BH,0DH,0EH ;Data Trace

ORG 220H
DB 30H,00H,30H,00H,30H,00H,30H,00H,30H,00H,30H ;Data menit alaram

ORG 230H
DB 07H,09H,10H,12H,12H,14H,15H,17H,18H,19H,20H ;Data jam alaram


ORG 00
SJMP START;

START: CALL CLEAR_DISP
MOV 41H,#23H
MOV 42H,#15H
MOV A,41H ;Ambil nilai menit
MOV R0,#30H ;Set digit 0,1
CALL GET_SEGMENT
MOV A,42H ;Ambil nilai jam
MOV R0,#32H ;Set digit 2,3
CALL GET_SEGMENT
TERUS2: CALL TAMPIL ;Tampilkan
SJMP START


CLEAR_DISP: MOV R0,#30H
UL_kOSONG: MOV A,#00
MOV @R0,A
INC R0
CJNE R0,#34H,UL_kOSONG
RET

GET_SEGMENT: MOV DPTR,#100H
MOV R1,A
ANL A,#0FH ;Ambil Low-Niblle
MOVC A,@A+DPTR
MOV @R0,A ;Simpan ke buffer
MOV A,R1
RR A
RR A
RR A
RR A
ANL A,#0FH
MOVC A,@A+DPTR
INC R0
MOV @R0,A
RET

TAMPIL: MOV R0,#30H ;set alamat awal buffer
MOV DPTR,#110H ;Set alamat awal data Trace
UL_DISP: MOV P1,#00 ;Clear display
MOV R5,#01 ;Delay
DJNZ R5,$
CLR A ;Ambil data trace
MOVC A,@A+DPTR
MOV P0,A ;Berikan ke Tr
MOV A,@R0 ;Ambil data
MOV P1,A ;Tampilkan
MOV R5,#05H ;Delay
DJNZ R5,$
INC DPTR
INC R0
CJNE R0,#34H,UL_DISP
MOV P1,#00
RET

ORG 100H

DB 3FH,06H,5BH,4FH ; 0;1;2;3
DB 66H,6DH,7DH,07H ; 4;5;6;7
DB 7FH,67H,77H,7CH ; 8;9;A;B
DB 39H,5EH,79H,75H ; C;D;E;F


ORG 110H
DB 07H,0BH,0DH,0EH ;Data Trace

Tidak ada komentar: