Perancangan Alat Pengering Tangan Otomatis Menggunakan Pengontrolan Waktu Berbasis AT89S52

(1)

BERBASIS AT89S52

TUGAS AKHIR

TIOMAS ELDAYANI SINAGA

(052408005)

PROGRAM STUDI FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2008


(2)

BERBASIS AT89S52

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat untuk mencapai gelar AhliMadya

TIOMAS ELADYANI SINAGA

(052408005)

PROGRAM STUDI FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2008


(3)

(4)

PERSETUJUAN

Judul : PERANCANGAN ALAT PENGERING

TANGAN OTOMATIS MENGGUNAKAN PENGONTROLAN WAKTU BERBASIS AT89S52

Kategori : TUGAS AKHIR

Nama : TIOMAS ELDAYANI SINAGA

Nomor Induk Mahasiswa : 052408005

Program Studi : FISIKA INSTRUMENTASI

Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM UNIVERSITAS SUMATERA UTARA MEDAN

Diluluskan di Medan, Juli 2008

Diketahui

Departemen Fisika FMIPA USU

Ketua Program Studi, pembimbing,

Drs. Syahrul Humaidi, M.Sc Dra. Manis Sembiring, MS


(5)

PERANCANGAN ALAT PENGERING TANGAN OTOMATIS MENGGUNAKAN PENGONTROLAN WAKTU

BERBASIS AT89S52

TUGAS AKHIR

Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2008

TIOMAS E. SINAGA 052408005


(6)

PENGHARGAAN

Puji dan syukur kehadirat Tuhan Yang Maha Pemurah dan Maha Penyayang, dengan limpah karunia-Nya kertas kajian ini dapat diselesaikan dalam waktu yang telah ditetapkan.

Ucapan terima kasih saya sampaiakan kepada Dra. Manis Sembiring, MS selaku pembimbing pada penyelesaian tugas akhir ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas dan padat dan profesional telah diberikan kepada saya agar penulis dapat menyelesaikan tugas ini.Ucapan terimakasih juga ditujukan kepada selaku Ketua dan Sekretaris Departemen, Drs. Syahrul Humaidi, M.Sc dan Dra. Justinon M.Si., Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua Dosen pada Departemen Fisika FMIPA USU, dan rekan-rekan kuliah jurusan Fisika Instrumentasi stambuk 2005. Akhirnya tidak terlupakan kepada kedua orang tua penulis dan semua ahli keluarga, kepada Christian F. Ginting dan yang selama ini memberikan bantuan dorongan yang diperlukan. Semoga Tuhan Yang Maha Esa akan membalasnya.


(7)

Alat pengering tangan otomatis merupakan alat yang bekerja secara otomatis sesuai dengan nilai yang diinputkan kedalam keypad. Nilai yang diinputkan oleh keypad akan diolah oleh mirokontroler untuk dicounterdown. Pemanas akan aktif apabila ada input data dari keypad. Mikrokontroler AT89S52 berfungsi sebagai otak dari keseluruhan sistem.


(8)

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Daftar Isi vi

Daftar Tabel viii

Daftar Gambar ix

Bab 1 Pendahuluan 1

1.1 Latar Belakang Masalah 1

1.2 Rumusan Masalah 2

1.3 Tujuan Penulisan 2

1.4 Batasan Masalah 3

1.5 Sistematika Penulisan 3

Bab 2 Landasan Teori 5

2.1 Perangkat Keras 5

2.1.1 AT89S52 5

2.1.2 Konstruksi AT89S52 6

2.1.3 SFR (Register Fungsi Khusus) pada Keluarga 52 9 2.1.4 Gambar IC Mikrokontroler AT89S52 12

2.2 Perangkat Lunak 15

2.2.1 Bahasa Assembly MCS-51 15

2.2.2 Software 8051 Editor, Assembler, Simulaor (IDE) 20

2.2.3 Software Downloader 21

2.2.4 Transistor sebagai Switching 22

2.2.5 Relay 23

2.2.6 Seven Segment 24

Bab 3 Perancangan Alat dan Cara Kerja Rangkaian 27

3.1 Diagram Blok Rangkaian 27

3.2 Rangkaian Power Supply (PSA) 28

3.3 Rangkaian Mikrokontroler AT89S52 29

3.4 Display Sevent Segment 31

3.5 Perancangan Rangkaian Keypad 32

Bab 4 Pengujian Alat dan Program 34

4.1 Pengujian Rangkaian Mikrokontroler AT89S52 34 4.2 Pengujian Rangkaian Display Seven Segment 36

4.3 Pengujian Rangkaian Relay 39

4.4 Pengujian Rangkaian Keypad 42


(9)

5.1 Kesimpulan 56

5.2 Saran 56

Daftar Pustaka 57


(10)

Halaman Tabel 2.1 Peta Register Fungsi Khusus-SFR (Special Function register) 9


(11)

Halaman

Gambar 2.1 IC Mikrokontroler AT89S52 12

Gambar 2.2 Software 8051 Editor, Assembler, Simulator (IDE) 20

Gambar 2.3 ISP-Flash Programmer 3.0a 21

Gambar 2.4 Transistor sebagai Switching 22

Gambar 2.5 Simbol Relay dan Rangkaian Drive 24

Gambar 2.6 Susunan Seven Segment 25

Gambar 2.7 Konfigurasi Seven Segment Tipe Common Anoda 25 Gambar 2.8 Konfigurasi Seven Segment Tipe Common Katoda 26

Gambar 3.1 Diagram Blok Rangkaian 27

Gambar 3.2 Rangkaian Power Supply 28

Gambar 3.3 Rangkaian Mirokontroler AT89S52 29

Gambar 3.4 Rangkaian display Sevet Segmen 31

Gambar 3.5 Rangkaian Keypad 32

Gambar 4.1 Rangkaian Display Sevent Segment

dengan Rangkaian Mikrokontroler 37

Gambar 4.2 Rangkaian Mikrokontroler dengan Rangkaian Relay 40


(12)

Alat pengering tangan otomatis merupakan alat yang bekerja secara otomatis sesuai dengan nilai yang diinputkan kedalam keypad. Nilai yang diinputkan oleh keypad akan diolah oleh mirokontroler untuk dicounterdown. Pemanas akan aktif apabila ada input data dari keypad. Mikrokontroler AT89S52 berfungsi sebagai otak dari keseluruhan sistem.


(13)

BAB 1

PENDAHULUAN

1.1. Latar Belakang Masalah

Dalam kurun waktu singkat perkembangan teknologi melaju dengan sangat pesat. Perkembangan teknologi ini merupakan hasil kerja keras dari rasa ingin tahu manusia terhadap suatu hal yang pada akhirnya diharapkan akan mempermudah manusia. Dengan pesatnya laju perkembangan teknologi tersebut banyak bermunculan alat-alat yang canggih yang dapat bekerja secara otomatis. Salah satu alat yang dapat bekerja secara otomatis tersebut adalah alat pengering tangan.

Pada restoran-restoran tertentu, khususnya yang menyediakan makanan cepat saji, seperti KFC biasanya disediakan alat pengering tangan. Alat pengering tangan ini secara otomatis akan menghembuskan udara/angin hangat jika tangan kita diletakkan di bawahnya.

Selain itu pada alat ini kita juga dapat mengatur lamanya heater menyala sesuai dengan keinginan kita. Kita hanya tinggal mengeset lamanya waktu heater


(14)

menyala dan mengentrinya maka dengan otomatis heater akan menyala dan berhenti sesuai dengan waktu yang kita inputkan.

Berdasarkan pemikiran-pemikiran di atas, maka penulis tertarik untuk merancang alat pengering tangan otomatis tersebut dan mengangkatnya sebagai tugas akhir.

1.2. Rumusan Masalah

Mengacu pada hal diatas, pada tugas akhir ini penulis akan merancang alat pengering tangan otomatis dengan menggunakan timer berbasis mikrokontroler AT89S52 dengan tampilan menggunakan seven segment.

1.3 Tujuan Penulisan

Tujuan dilakukan Tugas Akhir ini adalah sebagai berikut:

1. Memanfaatkan mikrokontroler sebagai alat pengering tangan otomatis. 2. Merancang suatu alat yang mudah untuk digunakan (user friendly). 3. Membuat alat pengering tangan otomatis.


(15)

1.4 Batasan Masalah

Mengacu pada hal di atas, penulis akan merancang alat pengering tangan otomatis berbasis mikrokontroler AT89S52, dengan batasan-batasan sebagai berikut :

1. Mikrokontroler yang digunakan adalah jenis AT89S52.

2. Heater (pemanas) yang digunakan di ambil dari blower / hairdryer. 3. Untuk menginputkan data timer digunakan keypad 4x4.

4. Waktu akan ditampilkan dalam satuan detik.

5. Display untuk menampilkan waktu digunakan seven segment

1.5 Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja alat pengering tangan otomatis dengan menggunakan timer berbasis mikrokontroler AT89S52, maka penulis menulis tugas akhir ini sebagai berikut:

BAB 1. PENDAHULUAN

Dalam bab ini berisikan mengenai latar belakang, rumusan masalah, tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB 2. LANDASAN TEORI

Landasan teori, dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian Teori pendukung itu antara lain tentang mikrokontroler AT89S52 (hardware


(16)

dan software), bahasa program yang digunakan. serta karakteristik dari komponen-komponen pendukung.

BAB 3. PERANCANGAN ALAT DAN CARA KERJA RANGKAIAN

Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok dari rangkaian, skematik dari masing-masing rangkaian dan diagram alir dari program yang akan diisikan ke mikrokontroler AT89S52.

BAB 4. PENGUJIAN ALAT DAN PROGRAM

Pada bab ini akan dibahas pengujian alat, penjelasan mengenai program-program yang digunakan untuk mengaktifkan rangkaian, penjelasan mengenai program yang diisikan ke mikrokontroler AT89S52.

BAB 5. KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang kesimpulan dari pembahasan yang dilakukan dari tugas akhir ini serta saran apakah rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.


(17)

BAB 2

LANDASAN TEORI

2.1. Perangkat Keras

2.1.1. Mikrokontroler AT89S52

Mikrokontroler, sebagai suatu terobosan teknologi mikrokontroler dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggih.

Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini


(18)

ditangani dengan mikrokontroler, karena tidak mungkin menggunakan komputer PC yang harus dipasang di samping (atau di belakang) mesin permainan yang bersangkutan.

Selain sistem tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam bidang pengukuran jarak jauh atau yang dikenal dengan sistem telemetri. Misalnya pengukuran disuatu tempat yang membahayakan manusia, maka akan lebih nyaman jika dipasang suatu sistem pengukuran yang bisa mengirimkan data lewat pemancar dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya. Sistem pengukuran jarak jauh ini jelas membutuhkan suatu sistem akuisisi data sekaligus sistem pengiriman data secara serial (melalui pemancar), yang semuanya itu bisa diperoleh dari mikrokontroler yang digunakan.

Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer RAM dan ROM-nya besar. Sedangkan pada mikrokontroler ROM dan RAM-nya terbatas. Pada mikrokontroler AT89S52 ROM atau flash PEROM berukuran 2 kilo byte, sedangkan RAM-nya berukuran 128 byte.

2.1.2. Konstruksi AT89S52

Mikrokontroler AT89S52 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 Kilo Ohm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini


(19)

AT89S52 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24 MHz dan kapasitor 30 pikro-Farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler.

Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS-52 memori penyimpanan program ini dinamakan sebagai memori program. Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.

Ada berbagai jenis ROM. Untuk mikrokontroler dengan program yang sudah baku dan diproduksi secara masal, progam diisikan ke dalam ROM pada saat IC mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler menggunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Progamble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah.

Jenis memori yang dipakai untuk Memori Program AT89S52 adalah Flash PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S52 Flash PEROM Programmer. Memori Data yang disediakan dalam chip AT89S52 sebesar 128 byte, meskipun hanya kecil


(20)

saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup. Sarana Input/Ouput yang disediakan cukup banyak dan bervariasi. AT89S52 mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).

AT89S52 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakan berhimpitan dengan P3.0 dan P3.1 di kaki nomor 10 dan 11, sehingga kalau sarana input/ouput yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau T0 dan T1 dipakai.

AT89S52 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output parelel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi. Port1 dan 2, UART, Timer 0,Timer 1 dan sarana lainnya merupakan register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Functoin Regeister (SFR).


(21)

2.1.3. SFR (Register Fungsi Khusus ) Pada Keluarga 52

Sekumpulan SFR atau Special Function Register yang terdapat pada Mikrokontroler Atmel Keluarga 52 ditunjukan pada tabel 2.1, pada bagian sisi kiri dan kanan dituliskan alamat-alamatnya dalam format heksadesimal.

Tidak semua alamat pada SFR digunakan, alamat-alamat yang tidak digunakan diimplementasikan pada chip. Jika dilakukan usaha pembacaan pada alamat-alamat yang tidak terpakai tersebut akan menghasilkan data acak dan penulisannya tidak menimbulkan efek sama sekali. Pengguna perangkat lunak sebaiknya jangan menuliskan ‘1’ pada lokasi-lokasi ‘tak bertuan’ tersebut, karena dapat digunakan untuk mikrokontroler generasi selanjutnya. Dengan demikian, nilai-nilai reset atau non-aktif dari bit-bit baru ini akan selalu ‘0’ dan nilai aktifnya adalah ‘1’. Berikut akan dijelaskan secara singkat SFR-SFR beserta fungsinya:


(22)

Akumulator

ACC atau akumulator yang menempati lokasi E 0h digunakan sebagai register untuk penyimpanan data sementara, dalam program, instruksi mengacunya sebagai register A (bukan ACC).

Register B

Register B (lokasi D 0h) digunakan selama operasi perkalian dan pembagian, untuk instruksi lain dapat diperlakukan sebagai register scratch pad (“papan coret-coret”) lainnya.

Program Status Word (PSW)

Register PSW (lokasi D 0h) mengandung informasi status program. Stack Pointer

Register SP atau Stack Pointer (lokasi 8 1h) merupakan register dengan panjang 8-bit, digunakan dalam proses simpan menggunakan instruksi PUSH dan CALL. Walau Stack bisa menempati lokasi dimana saja dalam RAM, register SP akan selalu diinisialisasi ke 07h setelah adanya reset, hal ini menyebabkan stack berawal di lokasi 08h.

Data Pointer

Register Data Pointer atau DPTR mengandung DPTR untuk byte tinggi (DPH) dan byte rendah (DPL) yang masing-masing berada dilokasi 83h dan 82h, bersama-sama membentuk register yang mampu menyimpan alamat 16-bit. Dapat dimanipulasi sebagai register 16-bit atau ditulis dari/ke port, untuk masing-masing Port 0,Port 1, Port2 dan Port 3.


(23)

Serial Data Buffer

SBUF atau Serial Data Buffer (lokasi 99h) sebenarnya terdiri dari dua register yang terpisah, yaitu register penyangga pengirim (transmit buffer) dan penyangga penerima (receive buffer). Pada saat data disalin ke SBUF, maka data sesungguhnya dikirim ke penyangga pengirim dan sekaligus mengawali transmisi data serial. Sedangkan pada saat data disalin dari SBUF, maka sebenarnya data tersebut berasal dari penyangga penerima.

Time Register

Pasangan register (TH0, TL0) dilokasi 8Ch dan 8Ah,(TH1, TL1) dilokasi 8Dh dan 8Bh serta (TH2, TL2) dilokasi CDh dan CCH merupakan register-register pencacah 16-bit untuk masing-masing Timer 0, Timer 1 dan Timer 2.

Capture Register

Pasangan register (RCAP2H, RCAP21) yang menempati lokasi CBh dan CAh merupakan register capture untuk mode Timer 2 capture. Pada mode ini, sebagai tanggapan terjadinya suatu transisi sinyal di kaki (pin) T2EX (pada AT89C52/55), TH2 dan TL2 disalin masing-masing ke RCAP2H dan RCAP2L. Timer 2 juga memiliki mode isi-ulang-otomatis 16-bit dan RCAP2H serta RCAP2L digunakan untuk menyimpan nilai isi-ulang tersebut.

Kontrol Register

Register-register IP, IE, TMOD, TCON, T2CON, T2MOD, SCON dan PCON berisi bit-bit kontrol dan status untuk sistem interupsi, pencacah/pewaktu dan port serial. Fasilitas yang terdapat dalam mikrokontroler AT89S52 antara lain :

1. Sesuai dengan produk-produk MCS-51.

2. Terdapat memori Flash yang terintegrasi dalam sistem. Dapat ditulis ulang hingga 1000 kali.


(24)

3. Beroperasi pada frekuensi 0 sampai 24 MH. 4. Memiliki 256 x 8 bit RAM internal.

5. Terdapat 32 jalur masukan/keluaran terprogram. 6. Tiga buah 16 bit Timer/Counter.

7. Delapan sumber interupsi. 8. Kanal serial terprogram.

9. Mode daya rendah dan mode daya mati.

2.1.4. Gambar IC Mikrokontroler AT89S52

Gambar IC mikrokontroler AT89S52 ditunjukkan pada gambar 2.1 di bawah ini:


(25)

Konfigurasi dan Deskripsi kaki-kaki mikrokontoler AT89S52 adalah sebagai berikut :

1. VCC (Pin 40)

Sebagai supply tegangan. 2. GND (Pin 20)

Ground.

3. Port 0 (Pin 39 – Pin 32)

Port 0 adalah port dua arah masukan/keluaran 8 bit saluran terbuka. Sebagai port keluaran, tiap kaki dapat menerima masukan TTL. Ketika logika 1 dimasukkan ke kaki-kaki port 0, kaki-kaki dapat digunakan sebagai masukan impedansi tinggi. Port 0 juga dapat diatur sebagai bus alamat/data saat mengakses program dan data dari memori luar. Pada mode ini port 0 memiliki pull-up internal. Port 0 juga menerima byte-byte kode saat pemrograman Flash dan mengeluarkan byte kode saat verifikasi. Pull-up eksternal diperlukan saat memverifikasi program.

4. Port 1 (Pin 1 – Pin 8)

Port 1 adalah port dua arah masukan/keluaran 8 bit dengan pull-up internal. Sebagai tambahan, P1.0 dan P1.1 dapat diatur sebagai pewaktu/pencacah-2 eksternal masukan pencacah (P1.0/T2) dan pewaktu/pencacah-2 masukan pemicu (P1.1/T2EX). Port 1 juga menerima byte-byte alamat saat pemrograman dan verifikasi Flash.

5. Port 2 (Pin 21 – Pin 28)

Port 2 adalah port masukan/keluaran dua arah 8 bit dengan pull-up internal. Port 2 juga menerima bit-bit alamat dan beberapa sinyal kendali saat pemrograman dan verifikasi Flash.


(26)

6. Port 3 (Pin 10 – Pin 17)

Port 3 adalah port masukan/keluaran dua arah 8 bit dengan pull-up internal. Port 3 juga menyediakan fasilitas bebagai fungsi khusus dari AT89C51. Port 3 juga menerima beberapa sinyal kendali saat pemrograman dan verifikasi Flash. Port 3 mempunyai fungsi pin masing-masing, yaitu sebagai berikut :

Tabel 2.2 Fungsi Pin pada Port 3

PIN NAMA FUNGSI ALTERNATIF

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD TXD INTO INT1 TO T1 WR RD

Untuk menerima data port serial Untuk mengirim data port serial Interupsi eksternal 0

Interupsi eksternal 1

Input eksternal waktu/pencacah 0 Input eksternal waktu/pencacah 1 Jalur menulis memori data eksternal Jalur membaca memori data

eksternal

7. RST (Pin 9)

Masukan reset. Masukan tinggi pada kaki ini selama dua siklus instruksi mesin akan me-reset perangkat.

8. ALE/PROG (Pin 30)

Address Latch Enable (ALE) adalah pulsa keluaran untuk mengunci bit rendah dari alamat saat mengakses memori eksternal. Kaki ini juga digunakan sebagai masukan pulsa (PROG) saat pemrograman Flash.


(27)

Program Store Enable (PSEN) digunakan untuk mengakses memori program eksternal.

10. EA/Vpp External Access Enable (Pin 31)

Pada kondisi low, EA akan berfungsi menjalankan program yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, EA akan berfungsi menjalankan program yang ada pada memori internal. Pada saat memprogram Flash, pin ini akan mendapat tegangan 12 V.

11. XTAL1 (Pin 19)

Masukan inverting (pembalikan) penguat osilator dan masukan untuk operasi rangkaian clock (denyut) internal.

12. XTAL2 (Pin 18)

Keluaran dari inverting (pembalikan) penguat osilator.

2.2. Perangkat Lunak

2.2.1 Bahasa Assembly MCS-51

Bahasa yang digunakan untuk mengisi program ke IC mikrikontroler AT89S52 adalah bahasa assembly MCS-51. Jumlah instruksi pada bahasa ini hanya ada 51 instruksi. Dari 51 instruksi , yang sering digunakan hanya 10 instruksi. Instruksi-instruksi tersebut antara lain :

1. Instruksi MOV

Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung.


(28)

Contoh pengisian nilai secara langsung

MOV R0,#20h

Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0).

Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai. Contoh pengisian nilai secara tidak langsung

MOV 20h,#80h

... ...

MOV R0,20h

Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal ke register 0 (R0).

Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat.

2. Instruksi DJNZ

Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol. Contoh ,

MOV R0,#80h Loop: ...

...

DJNZ R0,Loop ...

R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya.


(29)

3. Instruksi ACALL

Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :

...

ACALL TUNDA ...

TUNDA: ...

4. Instruksi RET

Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan. Contoh,

ACALL TUNDA ...

TUNDA: ... RET

5. Instruksi JMP (Jump)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh,

Loop:

... ... JMP Loop


(30)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1). Contoh,

Loop:

JB P1.0,Loop ...

7. Instruksi JNB (Jump if Not bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0). Contoh,

Loop:

JNB P1.0,Loop ...

8. Instruksi CJNE (Compare Jump If Not Equal)

Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu. Contoh,

Loop:

...

CJNE R0,#20h,Loop ...

Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi selanjutnya..


(31)

Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1. Contoh,

MOV R0,#20h R0 = 20h ...

DEC R0 R0 = R0 – 1 ...

10. Instruksi INC (Increament)

Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh,

MOV R0,#20h R0 = 20h ...

INC R0 R0 = R0 + 1 ...


(32)

2.2.2. Software 8051 Editor, Assembler, Simulator (IDE)

Instruksi-instruksi yang berupa bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Kemudian instruksi-instruksi (program-program) tersebut akan di-save dan kemudian di-Assemble (di-Compile). Pada saat di-Assemble maka akan tampil pesan peringatan dan kesalahan. Jika masih ada peringatan tersebut, itu berarti masih ada kesalahan dalam penulisan instruksi atau ada nama subrutin yang sama. Dengan demikian kesalahan-kesalahan tersebut harus diperbaiki terlebih dahulu. Tampilannya dapat kita lihat pada gambar di bawah ini :

Gambar 2.2. Software 8051 Editor, Assembler, Simulator (IDE)

Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, dimana proses perubahan ini terjadi pada saat kita meng-Assemble program tersebut. Bilangan heksadesimal hasil proses inilah yang dikirim ke mikrokontroler.


(33)

2.2.3. Software Downloader

Untuk mengirimkan bilangan-bilangan heksadesimal tersebut ke mikrokontroler digunakan software ISP–Flash Programmer 3.0a sehingga mikrokontroler dapat menyimpan data. ISP-Flash Programmmer 3.0a dapat diperoleh dengan mendowmload dari internet. Tampilannya dapat kita lihat gambar di bawah ini :

Gambar 2.3. ISP-Flash Programmer 3.0a

Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051IDE, kemudian meng-klik Write untuk mengisikan hasil kompilasi tersebut ke mikrokontroler.


(34)

2.2.4. Transistor sebagai Switching

Disamping sebagai penguat, transistor juga sering digunakan sebagai switching untuk mengontrol suatu beban dengan arus kecil, medium, atau arus besar dalam aplikasi – aplikasi industri. Gambar 2.4. menunjukkan rangkaian transistor sebagai switching.

Gambar 2.4. Transistor sebagai switching

Pada penggunaan transistor sebagai switching tegangan nol volt pada Vbe transistor jenis NPN berarti mengaktipkan transistor tersebut sebagai saklar dengan keadaan terbuka, sedangkan memberi tegangan ≥ 0,7 volt untuk transistor silikon dan ≥ 0,3 volt untuk transistor germanium pada Vbe transistor akan memfungsikan transistor itu sebagai saklar dengan keadaan tertutup. Sedangkan pada transistor jenis PNP tegangan nol justru akan membuat transistor tersebut bekerja sebagai saklar dalam keadaan tertutup. Pada keadaan transistor sebagai saklar tertutup maka arus Ic dari transistor itu akan mengalir melalui Rc menuju ground, sedangkan pada keadaan transistor sebagai saklar terbuka maka arus Ic akan tertahan sampai Rc saja.

Vcc

Rb

Tr Rc

Ic Ib


(35)

2.2.5. Relay

Relay adalah suatu rangkaian switch magnetik yang bekerja bila mendapat catu dan suatu rangkaian trigger. Relay memiliki tegangan dan arus nominal yang harus dipenuhi output rangkaian pendriver atau pengemudinya. Arus yang digunakan pada rangkaian adalah arus DC.

Konstruksi dalam suatu relay terdiri dari lilitan kawat (coil) yang dililitkan pada inti besi lunak. Jika lilitan kawat mendapatkan aliran arus, inti besi lunak kontak menghasilkan medan magnet dan menarik switch kontak. Switch kontak mengalami gaya listrik magnet sehingga berpidah posisi ke kutub lain atau terlepas dari kutub asalnya. Keadaan ini akan bertahan selama arus mengalir pada kumparan relay. Dan relay akan kembali keposisi semula yaitu normaly ON atau Normaly OFF, bila tidak ada lagi arus yang mengalir padanya, posisi normal relay tergantung pada jenis relay yang digunakan. Dan pemakaian jenis relay tergantung pada kadaan yang diinginkan dalam suatu rangkaian.

Menurut kerjanya relay dapat dibedakan menjadi :

a. Normaly Open (NO), saklar akan tertutup bila dialiri arus b. Normaly Close (OFF), saklar akan terbuka bila dialiri arus

c. Change Over (CO), relay ini mempunyai saklar tunggal yang nomalnya tertutup yang lama, bila kumparan 1 dialiri arus maka saklar akan terhubung ke terminal A, sebaliknya bula kumparan 2 dialiri arus maka saklar akan terhubung ke terminal B.

Analogi rangkaian relay yang digunakan pada tugas akhir ini adalah saat basis transistor ini dialiri arus, maka transistor dalam keadaan tertutup yang dapat


(36)

menghubungkan arus dari kolektor ke emiter yang mengakibatkan relay terhubung. Sedangkan fungsi dioda disini adalah untuk melindungi transistor dari tegangan induksi berlebih, dimana tegangan ini dapat merusak transistor. Jika transistor pada basis tidak ada arus maju, transistor terbuka sehingga arus tidak mengalir dari kolektor ke emiter, relay tidak bekerja karena tidak ada arus yang mengalir pada gulungan kawat. Simbol relay yang digunakan dan bentuk relay dengan rangkaian driver dapat dilihat pada gambar 2.5 berikut ini:

Gambar 2.5. Simbol Relay dan Rangkaian Drive

2.2.6. Seven Segment

Seven segment merupakan komponen elektronika yang banyak digunakan untuk menampilkan angka. Seven segment ini sebenarnya merupakan LED yang disusun sedemikian rupa sehingga membentuk suatu pola tertentu, dimana jika LED –LED tersebut dinyalakan dengan kombinasi tertentu, maka akan terbentuk suatu angka tertentu.

Seven segment mempunyai 7 buah segment ditambah 1 segment yang berfungsi sebagai desimal point. Gambar susunan dari seven segment ditunjukkan

pada gambar berikut ini: Vcc

Tr VB

Dioda


(37)

Gambar 2.6. Susunan seven segment

Segment yang atas disebut segment a, segmen sebelah kanan atas disebut segment b, dan seterusnya sesuai gambar di atas. Dp merupakan singkatan dari desimal point.

Seven segment ada 2 tipe, yaitu common anoda dan common katoda. Pada seven segment tipe common anoda, anoda dari setiap LED dihubungkan menjadi satu kemudian dihubungkan ke sumber tegangan positip dan katoda dari masing-masing LED berfungsi sebagai input dari seven segment, seperti ditunjukkan pada gambar berikut ini :


(38)

BAB 3

PERANCANGAN ALAT DAN CARA KERJA RANGKAIAN

3.1. Diagram Blok Rangkaian

Adapun diagram blok dari system yang dirancang adalah seperti yang diperlihatkan pada gambar 3.1 berikut ini:

Gambar 3.1. Diagram Blok Rangkaian

Keypad 4 x 4 berfungsi untuk memberikan input data counter. Nilai yang diinputkan oleh keypad kemudian ditampilkan oleh display. Nilai yang diinputkan oleh keypad akan diolah oleh mikrokontroler untuk di counterdown. Relay berfungsi untuk mematikan dan menghidupkan pemanas. Pemanas akan aktif apabila ada input


(39)

data dari keypad. Mikrokontroler AT89S52 berfungsi sebagai otak dari keseluruhan sistem.

3.2. Rangkaian power supply ( PSA )

Rangkaian ini berfungsi untuk mensupply tegangan ke seluruh rangkaian yang ada. Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt, keluaran 5 volt digunakan untuk mensupply tegangan ke seluruh rangkaian, sedangkan keluaran 12 volt digunakan untuk mensuply tegangan ke relay. Rangkaian power supply ditunjukkan pada gambar 3.2 berikut ini :

Gambar 3.2 Rangkaian Power Supply (PSA)

Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan dengan menggunakan dua buah dioda, selanjutnya 12 volt DC akan diratakan oleh kapasitor 2200 μF. Regulator tegangan 5 volt (LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila PSA dinyalakan. Transistor PNP


(40)

TIP 32 disini berfungsi untuk mensupply arus apabila terjadi kekurangan arus pada rangkaian, sehingga regulator tegangan (LM7805CT) tidak akan panas ketika rangkaian butuh arus yang cukup besar. Tegangan 12 volt DC langsung diambil dari keluaran 2 buah dioda penyearah.

3.3. Rangkaian Mikrokontroler AT89S52

Rangkaian ini berfungsi sebagai pusat kendali dari seluruh sistem yang ada. Rangkaian mikrokontroler ditunjukkan pada gambar 3.3 berikut ini:

Gbr.3.3.Rangkaian mikrokontroler AT89S52

Pin 31 External Access Enable (EA) diset high (H). Ini dilakukan karena mikrokontroller AT89S8252 tidak menggunakan memori eskternal. Pin 18 dan 19 dihubungkan ke XTAL 12 MHz dan capasitor 33 pF. XTAL ini akan mempengaruhi


(41)

kecepatan mikrokontroler AT89S8253 dalam mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset (aktif tinggi). Pulsa transisi dari rendah ke tinggi akan me-reset mikrokontroller ini. Pin 32 sampai 39 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 port 0 ini masing masing pin dihubungkan dengan resistor 4k7 ohm. Resistor 4k7 ohm yan dihubungkan ke port 0 befungsi sebagai pull up( penaik tegangan ) agar output dari mikrokontroler dapat mntrigger transistor. Pin 1 sampai 8 adalah port 1. Pin 21 sampai 28 adalah port 2. Dan Pin 10 sampai 17 adalah port 3. Pin 39 yang merupakan P0.0 dihubungkan dengan sebuah resistor 330 ohm dan sebuah LED. Ini dilakukan hanya untuk menguji apakah rangkaian minimum mikrokontroler AT89S52 sudah bekerja atau belum.

Dengan memberikan program sederhana pada mikrokontroler tersebut, dapat diketahui apakah rangkaian minimum tersebut sudah bekerja dengan baik atau tidak. Jika LED yang terhubug ke Pin 39 sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap digunakan. Pin 20 merupakan ground dihubungkan dengan ground pada power supplay. Pin 40 merupakan sumber tegangan positif dihubungkan dengan + 5 volt dari power supply.


(42)

3.4. Display seven segment

Untuk menampilkan nilai input keypad diperlukan suatu rangkaian display yang dapat menampilkan nilai tersebut.

Rangkaian display yang digunakan untuk menampilkan nilai tersebut terlihat pada gambar 3.4 berikut:

Gbr.3.4. Rangkaian display seven segment

Display ini menggunakan 3 buah seven segment yang dihubungkan ke IC HEF 4094BP yang merupakan IC serial to paralel. IC ini akan merubah 8 bit data serial yang masuk menjadi keluaran 8 bit data paralel. Rangkaian ini dihubungkan dengan P3.0 dan P3.1 AT89S52.


(43)

. P3.0 merupakan fasilitas khusus pengiriman data serial yang disediakan oleh mikrokontroler AT89S52. Sedangkan P3.1 merupakan sinyal clock untuk pengiriman data serial. Pada rangkaian display ini digunakan dua buah dioda yang berfungsi untuk menurunkan tegangan supply untuk seven segment. Satu buah dioda dapat menurunkan tegangan sekitar 0,6 volt. Jadi, apabila dioda yang digunakan dua buah maka tegangan yang dapat diturunkannya adalah 1,8 volt. Tegangan ini diturunkan agar umur seven segment lebih tahan lama dan karena tegangan maksimum seven segment adalah 3,7 volt

3.5. Perancangan rangkaian keypad

Rangkaian Keypad berfungsi sebagai tombol untuk memasukkan pin. Kemudian data yang diketikkan pada keypad akan diterima oleh mikrokontroler AT89S52 untuk kemudian diolah dan ditampilkan pada display seven segmen. Rangkaian keypad ditunjukkan pada gambar berikut ini :

Tbl 1 Tbl 2 Tbl 3 Tbl 4 P2.0

P2.1

P2.2

P2.3 P2.4 P2.5 P2.6

P2.7


(44)

Rangkaian keypad yang digunakan adalah rangkaian keypad yang telah ada dipasaran. Keypad ini terdiri dari 16 tombol yang hubungan antara tombol-tombolnya seperti tampak pada gambar di atas. Rangkaian ini dihubungkan ke port 1 mikrokontroler AT89S52.


(45)

BAB 4

PENGUJIAN ALAT DAN PROGRAM

4.1 Pengujian Rangkaian Mikrokontroler AT89S52

Untuk mengetahui apakah rangkaian mikrokontroler AT89S52 telah bekerja dengan baik, maka dilakukan pengujian. Pengujian bagian ini dilakukan dengan memberikan program sederhana pada mikrokontroler AT89S52. Programnya adalah sebagai berikut:

Loop:

Setb P0.0 Acall tunda Clr P0.0 Acall tunda Sjmp Loop Tunda:

Mov r7,#255 Tnd: Mov r6,#255

Djnz r6,$ Djnz r7,tnd Ret

Program di atas bertujuan untuk menghidupkan LED yang terhubung ke P0.0 selama ± 0,13 detik kemudian mematikannya selama ± 0,13 detik secara terus


(46)

menerus. Perintah Setb P0.0 akan menjadikan P0.0 berlogika high yang menyebabkan LED menyala. Acall tunda akan menyebabkan LED ini hidup selama beberapa saat. Perintah Clr P0.0 akan menjadikan P0.0 berlogika low yang menyebabkan LED akan mati. Perintah Acall tunda akan menyebabkan LED ini mati selama beberapa saat. Perintah Sjmp Loop akan menjadikan program tersebut berulang, sehingga akan tampak LED tersebut tampak berkedip.

Lamanya waktu tunda dapat dihitung dengan perhitungan sebagai berikut : Kristal yang digunakan adalah kristal 12 MHz, sehingga 1 siklus mesin adalah (12 clock / 12 MHz ) maka satu siklus mesin membutuhkan waktu 1 mikro detik.

Mnemonic Siklus Waktu Eksekusi

MOV Rn,#data 2 2 x 1 μd = 2 μd

DJNZ 2 2 x 1 μd = 2 μd

RET 1 1 x 1 μd = 1 μd

Tunda: 1

mov r7,#255 2 Tnd: mov r6,#255 2

djnz r6,$ 255 x 2 = 510 x 255 = 130.054 = 130.058 = 130.060 μd

djnz r7,loop3 2 djnz r2,loop8 2

ret 1

Jadi waktu yang dibutuhkan untuk mengerjakan program di atas adalah 130.060 μdetik atau 0,130060 detik dan dapat dibulatkan menjadi 0,13 detik.


(47)

Jika program tersebut diisikan ke mikrokontroller AT89S52, kemudian mikrokontroller dapat berjalan sesuai dengan program yang diisikan, maka rangkaian minimum mikrokontroller AT89S52 telah bekerja dengan baik.

4.2 Pengujian Rangkaian Display Seven Segment

Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian ini dengan rangkaian mikrokontroler, kemudian memberikan data tertentu pada port serial dari mikrokontroler. Seven segment yang digunakan adalah common anoda, dimana segment akan menyala jika diberi logika 0 dan sebaliknya segment akan mati jika diberi logika 1. Rangkaian display seven segment dengan rangkaian mikrokontroler adalah sebagai berikut:


(48)

Gbr.4.1. Rangkaian display seven segment dengan rangkaian mikrokontroler

Dari hasil pengujian diperoleh data yang harus dikirimkan ke port serial untuk menampilkan angka desimal adalah sebagai berikut:

Angka Data yang dikirim

1 0ECH


(49)

3 88H

4 0C4H

5 82H

6 02H

7 0E8H

8 0h

9 80H

0 20H

Program yang diisikan pada mikrokontroler untuk menampilkan nilai-nilai tersebut adalah sebagai berikut:

bil0 equ 20h bil1 equ 0ech bil2 equ 18h bil3 equ 88h bil4 equ 0c4h bil5 equ 82h bil6 equ 02h bil7 equ 0e8h bil8 equ 0h bil9 equ 80h Loop:

mov sbuf,#bil0 Jnb ti,$

Clr ti sjmp loop

Program di atas akan menampilkan angka 0 pada semua seven segment. Sedangkan untuk menampilkan 3 digit angka yang berbeda pada seven segment


(50)

adalah dengan mengirimkan ke 3 data angka yang akan ditampilkan pada seven segment. Programnya adalah sebagai berikut :

Loop:

mov sbuf,#bil1 Jnb ti,$

Clr ti

mov sbuf,#bil2 Jnb ti,$

Clr ti

mov sbuf,#bil3 Jnb ti,$

Clr ti sjmp loop

Program di atas akan menampilkan angka 1 pada seven segment ketiga, angka 2 pada seven segment kedua dan angka 3 pada seven segment pertama.

4.3 Pengujian Rangkaian relay

Pengujian rangkaian relay dapat dilakukan dengan memberikan tegangan 5 volt dan 0 volt pada basis transistor C945. Transistor C945 merupakan transistor jenis NPN, transistor jenis ini akan aktif jika pada basis diberi tegangan > 0,7 volt dan tidak aktif jika pada basis diberi tegangan < 0,7 volt. Aktifnya transistor akan mengaktifkan relay. Pada rangkaian ini relay digunakan untuk memutuskan hubungan buzzer dengan sumber tegangan 12 volt, dimana hubungan yang digunakan adalah normally close (NO), dengan demikian jika relay aktif maka hubungan buzzer ke sumber


(51)

tegangan akan terhubung, sebaliknya jika relay tidak aktif, maka hubungan buzzer ke sumber tegangan akan terputus.

Pengujian dilakukan dengan memberikan tegangan 5 volt pada basis transistor, jika relay aktif dan buzzer berbunyi, maka rangkaian ini telah berfungsi dengan baik.

Pengujian selanjutnya dilakukan dengan menghubungkan input rangkaian ini ke mikrokontroler pada P0.1 . Adapun rangkaian mikrokontroler dengan relay adalah sebagai berikut:

Gbr.4.2 Rangkaian mikrokontroler dengan rangkaian relay

Kemudian memberikan program sederhana pada mikrokontroler AT89S52. Program yang diberikan adalah sebagai berikut:

Setb P0.1


(52)

Perintah di atas akan memberikan logika high pada P0.1, sehingga P0.1 akan mendapatkan tegangan 5 volt. Tegangan 5 volt ini akan mengaktifkan transistor C945, sehingga relay juga menjadi aktif dan heater menyala. Berikutnya memberikan program sederhana untuk menonaktifkan relay. Programnya sebagai berikut:

Clr P0.1

. . .

Perintah di atas akan memberikan logika low pada P0.1, sehingga P0.1 akan mendapatkan tegangan 0 volt. Tegangan 0 volt ini akan menonaktifkan transistor C945, sehingga relay juga menjadi tidak aktif dan heater tidak menyala.


(53)

4.4. Pengujian Rangkaian Keypad

Pengujian rangkaian tombol ini dapat dilakukan dengan menghubungkan rangkaian ini dengan mikrokontroler AT89S52, kemudian memberikan program sederhana untuk mengetahui baik/tidaknya rangkaian ini. Rangkaian dihubungkan ke port 2. Untuk Mengecek penekanan pada 4 tombol yang paling atas, maka data awal yang dimasukkan ke port 2 adalah FEH. Dengan demikian maka pin P2.0 akan mendapat logika low (0), dan yang lainnya mendapat logika high (1), seperti berikut:

Tbl 1 Tbl 2 Tbl 3 Tbl 4 P2.0 0

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

Gbr.4.3. Pengujian Rangkaian Keypad

Jika terjadi penekanan pada Tbl 1, maka P2.0 akan terhubung ke P2.4 yang menyebabkan P2.4 juga akan mendapatkan logika low (0). Seperti berikut :

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


(54)

Data pada port 2 akan berubah menjadi EEH. Data inilah sebagai indikasi adanya penekanan pada tombol 1.

Jika terjadi penekanan pada Tbl 2, maka P2.0 akan terhubung ke P2.5 yang menyebabkan P2.5 juga akan mendapatkan logika low (0). Seperti berikut:

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

1 1 0 1 1 1 1 0

Data pada port 2 akan berubah menjadi DEH. Data inilah sebagai indikasi adanya penekanan pada tombol 2. Demikian seterusnya untuk tombol-tombil yang lain.

Program yang diisikan pada mikrokontroler untuk menguji rangkaian keypad adalah sebagai berikut:

Tombol1:

Mov P1,#0FEH Mov a,P0

Cjne a,#0EEH,Tombol2 Setb P0.0

Sjmp Tombol1 Tombol2:

Cjne a,#0DEH,Tombol1 Clr P0.0

Sjmp Tombol1

Program diatas akan menunggu penekanan pada tombol 1 dan tombol 2, jika tombol 1 ditekan, maka program akan menyalakan LED yang ada pada P3.7. Jika tombol 2 ditekan, maka program akan mematikan LED yang ada pada P3.7.


(55)

Jika rangkaian telah berjalan sesuai program yang diberikan, maka rangkaian telah berfungsi dengan baik.

4.5. Program Sumber bil0 equ 20h bil1 equ 0ech bil2 equ 18h bil3 equ 88h bil4 equ 0c4h bil5 equ 82h bil6 equ 2h bil7 equ 0e8h bil8 equ 0h bil9 equ 80h Kosong equ 0ffh Saklar Bit P0.0 Utama: Clr Saklar acall delay mov sbuf,#Kosong jnb ti,$ clr ti mov sbuf,#Kosong jnb ti,$ clr ti mov sbuf,#Kosong jnb ti,$ clr ti tbl_Satu: mov P2,#7fh mov a,p2 cjne a,#77h,tbl_Dua mov 73h,#bil1 Mov 70h,#1 acall tampil Recek_tbl_Satu: mov a,p2 cjne a,#77h,Recek_tbl_Satu ljmp Tbl_Satu1 tbl_Dua:


(56)

cjne a,#7bh,tbl_Tiga mov 73h,#bil2 Mov 70h,#2 acall tampil Recek_tbl_Dua: mov a,p2 cjne a,#7bh,Recek_tbl_Dua ljmp Tbl_Satu1 tbl_Tiga: cjne a,#7dh,Tbl_Empat mov 73h,#bil3 Mov 70h,#3 acall tampil Recek_tbl_Tiga: mov a,p2 cjne a,#7dh,Recek_tbl_Tiga ljmp Tbl_Satu1 Tbl_Empat: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Tbl_Lima mov 73h,#bil4 Mov 70h,#4 acall tampil Recek_tbl_Empat: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Recek_tbl_Empat Ljmp Tbl_Satu1 Tbl_Lima: cjne a,#0bbh,Tbl_Enam mov 73h,#bil5 Mov 70h,#5 acall tampil Recek_tbl_Lima: mov a,p2 cjne a,#0bbh,Recek_tbl_Lima ljmp Tbl_Satu1 Tbl_Enam: cjne a,#0bdh,Tbl_Tujuh mov 73h,#bil6 Mov 70h,#6 acall tampil Recek_tbl_Enam: mov a,p2


(57)

cjne a,#0bdh,Recek_tbl_Enam ljmp Tbl_Satu1 Tbl_Tujuh: mov P2,#0dfh mov a,P2 cjne a,#0d7h,Tbl_Delapan mov 73h,#bil7 Mov 70h,#7 acall tampil Recek_tbl_Tujuh: mov P2,#0dfh mov a,p2 cjne a,#0d7h,Recek_tbl_Tujuh ljmp Tbl_Satu1 Tbl_Delapan: cjne a,#0dbh,Tbl_Sembilan mov 73h,#bil8 Mov 70h,#8 acall tampil Recek_tbl_Delapan: mov a,p2 cjne a,#0dbh,Recek_tbl_Delapan ljmp Tbl_Satu1 Tbl_Sembilan: cjne a,#0ddh,Tbl_nol mov 73h,#bil9 Mov 70h,#9 acall tampil Recek_tbl_Sembilan: mov a,p2 cjne a,#0ddh,Recek_tbl_Sembilan ljmp Tbl_Satu1 Tbl_Nol: mov P2,#0efh mov a,P2 cjne a,#0ebh,Balik_Tbl_Satu mov 73h,#bil0 Mov 70h,#0 acall tampil Recek_tbl_Nol: mov P2,#0efh mov a,p2 cjne a,#0ebh,Recek_tbl_Nol Ljmp Tbl_Satu1


(58)

Balik_Tbl_Satu: Ljmp Tbl_Satu tampil: mov sbuf,73h jnb ti,$ clr ti mov sbuf,#Kosong jnb ti,$ clr ti mov sbuf,#Kosong jnb ti,$ clr ti ret tbl_Satu1: acall reset acall delay mov P2,#7fh mov a,p2 cjne a,#77h,tbl_Dua1 mov 74h,#bil1 Mov 71h,#1 acall tampil1 Recek_tbl_Satu1: mov a,p2 cjne a,#77h,Recek_tbl_Satu1 ljmp Tbl_Satu2 tbl_Dua1: cjne a,#7bh,tbl_Tiga1 mov 74h,#bil2 Mov 71h,#2 acall tampil1 Recek_tbl_Dua1: mov a,p2 cjne a,#7bh,Recek_tbl_Dua1 ljmp Tbl_Satu2 tbl_Tiga1: cjne a,#7dh,Tbl_Empat1 mov 74h,#bil3 Mov 71h,#3 acall tampil1 Recek_tbl_Tiga1: mov a,p2 cjne a,#7dh,Recek_tbl_Tiga1 ljmp Tbl_Satu2


(59)

Tbl_Empat1: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Tbl_Lima1 mov 74h,#bil4 Mov 71h,#4 acall tampil1 Recek_tbl_Empat1: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Recek_tbl_Empat1 Ljmp Tbl_Satu2 Tbl_Lima1: cjne a,#0bbh,Tbl_Enam1 mov 74h,#bil5 Mov 71h,#5 acall tampil1 Recek_tbl_Lima1: mov a,p2 cjne a,#0bbh,Recek_tbl_Lima1 ljmp Tbl_Satu2 Tbl_Enam1: cjne a,#0bdh,Tbl_Tujuh1 mov 74h,#bil6 Mov 71h,#6 acall tampil1 Recek_tbl_Enam1: mov a,p2 cjne a,#0bdh,Recek_tbl_Enam1 ljmp Tbl_Satu2 Tbl_Tujuh1: mov P2,#0dfh mov a,P2 cjne a,#0d7h,Tbl_Delapan1 mov 74h,#bil7 Mov 71h,#7 acall tampil1 Recek_tbl_Tujuh1: mov P2,#0dfh mov a,p2 cjne a,#0d7h,Recek_tbl_Tujuh1 ljmp Tbl_Satu2 Tbl_Delapan1: cjne a,#0dbh,Tbl_Sembilan1 mov 74h,#bil8


(60)

Mov 71h,#8 acall tampil1 Recek_tbl_Delapan1: mov a,p2 cjne a,#0dbh,Recek_tbl_Delapan1 ljmp Tbl_Satu2 Tbl_Sembilan1: cjne a,#0ddh,Tbl_nol1 mov 74h,#bil9 Mov 71h,#9 acall tampil1 Recek_tbl_Sembilan1: mov a,p2 cjne a,#0ddh,Recek_tbl_Sembilan1 ljmp Tbl_Satu2 Tbl_Nol1: mov P2,#0efh mov a,P2 cjne a,#0ebh,Balik_Tbl_Satu1 mov 74h,#bil0 Mov 71h,#0 acall tampil1 Recek_tbl_Nol1: mov P2,#0efh mov a,p2 cjne a,#0ebh,Recek_tbl_Nol1 Ljmp Tbl_Satu2 Balik_Tbl_Satu1: Ljmp Tbl_Satu1 tampil1: mov sbuf,74h jnb ti,$ clr ti mov sbuf,73h jnb ti,$ clr ti mov sbuf,#Kosong jnb ti,$ clr ti ret Tbl_Satu2: acall reset acall delay mov P2,#7fh


(61)

mov a,p2 cjne a,#77h,tbl_Dua2 mov 75h,#bil1 Mov 72h,#1 acall tampil2 Recek_tbl_Satu2: mov a,p2 cjne a,#77h,Recek_tbl_Satu2 ljmp Tbl_Satu3 tbl_Dua2: cjne a,#7bh,tbl_Tiga2 mov 75h,#bil2 Mov 72h,#2 acall tampil2 Recek_tbl_Dua2: mov a,p2 cjne a,#7bh,Recek_tbl_Dua2 ljmp Tbl_Satu3 tbl_Tiga2: cjne a,#7dh,Tbl_Empat2 mov 75h,#bil3 Mov 72h,#3 acall tampil2 Recek_tbl_Tiga2: mov a,p2 cjne a,#7dh,Recek_tbl_Tiga2 ljmp Tbl_Satu3 Tbl_Empat2: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Tbl_Lima2 mov 75h,#bil4 Mov 72h,#4 acall tampil2 Recek_tbl_Empat2: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Recek_tbl_Empat2 Ljmp Tbl_Satu3 Tbl_Lima2: cjne a,#0bbh,Tbl_Enam2 mov 75h,#bil5 Mov 72h,#5 acall tampil2 Recek_tbl_Lima2:


(62)

mov a,p2 cjne a,#0bbh,Recek_tbl_Lima2 ljmp Tbl_Satu3 Tbl_Enam2: cjne a,#0bdh,Tbl_Tujuh2 mov 75h,#bil6 Mov 72h,#6 acall tampil2 Recek_tbl_Enam2: mov a,p2 cjne a,#0bdh,Recek_tbl_Enam2 ljmp Tbl_Satu3 Tbl_Tujuh2: mov P2,#0dfh mov a,P2 cjne a,#0d7h,Tbl_Delapan2 mov 75h,#bil7 Mov 72h,#7 acall tampil2 Recek_tbl_Tujuh2: mov P2,#0dfh mov a,p2 cjne a,#0d7h,Recek_tbl_Tujuh2 ljmp Tbl_Satu3 Tbl_Delapan2: cjne a,#0dbh,Tbl_Sembilan2 mov 75h,#bil8 Mov 72h,#8 acall tampil2 Recek_tbl_Delapan2: mov a,p2 cjne a,#0dbh,Recek_tbl_Delapan2 ljmp Tbl_Satu3 Tbl_Sembilan2: cjne a,#0ddh,Tbl_nol2 mov 75h,#bil9 Mov 72h,#9 acall tampil2 Recek_tbl_Sembilan2: mov a,p2 cjne a,#0ddh,Recek_tbl_Sembilan2 ljmp Tbl_Satu3 Tbl_Nol2: mov P2,#0efh


(63)

mov a,P2 cjne a,#0ebh,Balik_Tbl_Satu2 mov 75h,#bil0 Mov 72h,#0 acall tampil2 Recek_tbl_Nol2: mov P2,#0efh mov a,p2 cjne a,#0ebh,Recek_tbl_Nol2 Ljmp Tbl_Satu3 Balik_Tbl_Satu2: Ljmp Tbl_Satu2 tampil2: mov sbuf,75h jnb ti,$ clr ti mov sbuf,74h jnb ti,$ clr ti mov sbuf,73h jnb ti,$ clr ti ret Reset: mov P2,#0efh mov a,P2

cjne a,#0eeh,Tdk_reset ; tombol D Ljmp Utama Tdk_reset: ret Tbl_Satu3: acall reset mov P2,#7fh mov a,P2

cjne a,#7eh,Tbl_Satu3 ; tombol A Setb Saklar

CounterDown: acall reset

mov r0,70h ; nilai ratusan acall transfer

mov 73h,r1


(64)

acall transfer mov 74h,r1

mov r0,72h ; nilai satuan acall transfer mov 75h,r1 acall tampil_Nilai mov r2,72h cjne r2,#0,Kurangi_Satuan mov 72h,#9 sjmp puluhan Kurangi_Satuan: dec 72h sjmp CounterDown Puluhan: mov r2,71h cjne r2,#0,Kurangi_Puluhan mov 71h,#9 sjmp Ratusan Kurangi_Puluhan: dec 71h sjmp CounterDown Ratusan: mov r2,70h cjne r2,#0,Kurangi_Ratusan Ljmp Utama Kurangi_Ratusan: dec 70h sjmp CounterDown transfer: cjne r0,#0h,satu mov r1,#bil0 ret satu: cjne r0,#01h,dua mov r1,#bil1 ret dua: cjne r0,#02h,tiga mov r1,#bil2 ret tiga:


(65)

cjne r0,#03h,empat mov r1,#bil3 ret empat: cjne r0,#04h,lima mov r1,#bil4 ret lima: cjne r0,#05h,enam mov r1,#bil5 ret enam: cjne r0,#06h,tujuh mov r1,#bil6 ret tujuh: cjne r0,#07h,delapan mov r1,#bil7 ret delapan: cjne r0,#08h,sembilan mov r1,#bil8 ret sembilan: cjne r0,#09h,transfer mov r1,#bil9 ret tampil_Nilai: mov sbuf,75h jnb ti,$ clr ti mov sbuf,74h jnb ti,$ clr ti mov sbuf,73h jnb ti,$ clr ti acall Tunda_1Detik ret delay: mov r7,#5 dly: mov r6,#255 dl: mov r5,#255


(66)

djnz r5,$ djnz r6,dl djnz r7,dly ret

Tunda_1Detik: Mov r7,#8 tnd:

Mov r6,#255 Td:

mov r5,#255 djnz r5,$ Djnz r6,td Djnz r7,Tnd Ret


(67)

BAB 5

KESIMPULAN DAN SARAN

Kesimpulan

1. Pengering tangan otomatis ini menggunakan Mikrokontroleer AT89S52. 2. Pengering tangan akan mengeluarkan udara sesuai dengan nilai yang kita

inputkan melalui keypad.

3. Nilai input keypad ditampilkan melalui display seven segment.

Saran

1. Agar sistem / rangkaian yang diinginkan tidak terganggu, sebaiknya alat dikemas dalam bentuk yang lebih aman dan terlindungi, sehingga penggunaannya lebih efektif.

2. Alangkah baiknya jika alat yang dibuat ini dapat dimanfaatkan dan disosialisasikan kegunaannya dikalangan mahasiswa.


(68)

DAFTAR PUSTAKA

Agfianto. 2004. Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi. Edisi Ke-2. Yogyakarta: Penerbit: Gava Media.

Andi. 2003. Panduan Praktis Teknik Antarmuka dan Pemrograman Mikrokontroler AT89C51. Jakarta: Penerbit PT Elex Media Komputindo.

Clayton George, Winder Steve. 2004. Operational Amplifiers. Edisi Ke-5. jakarta: Penerbit Erlangga.

Malvino, Albert paul. 2003. Prinsip-prinsip Elektronika. Jilid 1 & 2. Edisi Pertama. Jakarta: Penerbit: Salemba Teknika.


(69)

(70)

(71)

(72)

(1)

56

BAB 5

KESIMPULAN DAN SARAN

Kesimpulan

1. Pengering tangan otomatis ini menggunakan Mikrokontroleer AT89S52. 2. Pengering tangan akan mengeluarkan udara sesuai dengan nilai yang kita

inputkan melalui keypad.

3. Nilai input keypad ditampilkan melalui display seven segment.

Saran

1. Agar sistem / rangkaian yang diinginkan tidak terganggu, sebaiknya alat dikemas dalam bentuk yang lebih aman dan terlindungi, sehingga penggunaannya lebih efektif.

2. Alangkah baiknya jika alat yang dibuat ini dapat dimanfaatkan dan disosialisasikan kegunaannya dikalangan mahasiswa.

3. Untuk di masa yang akan datang agar alat ini dapat lebih ditingkatkan lagi.


(2)

57

DAFTAR PUSTAKA

Agfianto. 2004. Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi. Edisi Ke-2. Yogyakarta: Penerbit: Gava Media.

Andi. 2003. Panduan Praktis Teknik Antarmuka dan Pemrograman Mikrokontroler AT89C51. Jakarta: Penerbit PT Elex Media Komputindo.

Clayton George, Winder Steve. 2004. Operational Amplifiers. Edisi Ke-5. jakarta: Penerbit Erlangga.

Malvino, Albert paul. 2003. Prinsip-prinsip Elektronika. Jilid 1 & 2. Edisi Pertama. Jakarta: Penerbit: Salemba Teknika.


(3)

LAMPIRAN 1. GAMBAR ALAT PENGERING TANGAN OTOMATIS TAMPAK DEPAN


(4)

(5)

LAMPIRAN 3. SKEMA RANGKAIAN ALAT PENGERING TANGAN OTOMATIS


(6)