Pada dasarnya, terdapat 2 jenis Push-Button di pasaran: Push-On dan Push-Off. Tetapi yang kita gunakan pada tutorial ini adalah yang berjenis Push-On,
yaitu komponen yang terdiri atas dua kutub yang saling terpisah / tidak
terhubung, dan sebuah tombol yang ketika ditekan akan menghubungkan
kedua kutub tersebut sehingga akan mengalirkan arus listrik dari satu
sisi kutub ke sisi kutub berikutnya (Lihat gambar).
Gambar - Komponen Push-Button .
Merangkai AT89S51 dan Push-Button
Seperti
juga pada LED, setelah kita mengetahui cara kerja dari komponen yang
kita gunakan, Push-Button , kita perlu mengetahui cara merangkainya
dengan Mikrokontroler kita, AT89S51. Dapat dilihat pada gambar di bawah ini, ada 2
cara perangkaian Push-Button: (1) Active-Low, yang berarti ketika Push-Button ditekan, ia akan memberikan data “Low” atau logika “0”. (2) Active-High, yang berarti kebalikan dari yang pertama. Lalu
mengapa pada gambar ada perbedaan rangkaian antara 2 jenis koneksi.
Mengapa yang pertama, Active-Low, tidak perlu adanya resistor? Hal
tersebut dikarenakan pin Mikrokontroler favorit kita, AT89S51, ini
memiliki Default-High, yang artinya ketika tidak terkoneksi dengan divais apapun dan tidak dikondisikan oleh suatu program apapun atau dalam keadaan Reset,
ia akan berkondisi “High” atau logika “1”. Itulah sebabnya pada
tutorial ini kita akan menggunakan jenis koneksi yang pertama, Active-Low.
Gambar - Koneksi Push-Button dengan Mikrokontroler: a. Active-Low, b. Active-High.
Program Interaksi Nyala LED terhadap Rangsangan Input Push-Button
Setelah mengetahui cara merangkai Push-Button, maka selanjutnya adalah menentukan jumlah komponen yang akan kita gunakan dan pada Port AT89S51 mana akan kita rangkai Push-Button
tersebut. Seperti dapat dilihat pada gambar dibawah ini, jumlah Push-Button
yang kita gunakan adalah 8 buah dan dirangkaikan pada Port-3 dari
AT89S51. Lalu mengapa pada gambar kita juga dapat melihat adanya
rangkaian LED yang telah kita gunakan pada bab sebelumnya? Hal ini
dikarenakan untuk mengetahui suatu program pengecekkan input tentu kita
memerlukan suatu kondisi output yang ber-interaksi terhadap perubahan
input. Dan untuk memudahkan perangkaian, maka kita gunakan rangkaian LED
yang sebelumnya telah kita pelajari.
Gambar - Koneksi 2 buah Push-Button pada P3.2 dan P3.3, dan 8 buah LED pada Port-2 AT89S51.
Oleh karena data yang diberikan oleh push-button
ketika ditekan adalah logika “0”, maka program pengecekkan yang dibuat
adalah program yang akan memeriksa kondisi logika “0” di Pin3.2 dan
Pin3.3 AT89S51.
Program 3:
org 0000h
sjmp Awal
Awal:
mov p2, #00h ; Menyalakan seluruh LED di Port-2
Cek:
jnb p3.2, Nyala ; Mengecek kondisi Pin3.2, jika = “0”, maka lompat ke label “Nyala”. Jika tidak, lanjutkan.
jnb p3.3, Padam
sjmp Cek
Nyala:
mov p2, #0 ; Membuat seluruh pin pada port-2 = “0” yang berarti seluruh LED akan menyala.
jnb P3.2, $ ; Tunggu sampai dengan tombol P3.2 tidak lagi ditekan.
sjmp Cek ; Lompat kembali ke label “Cek”.
Padam:
mov p2, #255 ; Membuat seluruh pin pada port-2 = “1” yang berarti seluruh LED akan padam.
jnb P3.3, $ ; Tunggu sampai dengan tombol P3.3 tidak lagi ditekan.
sjmp Cek ; Lompat kembali ke label “Cek”
Pada “Program 3” di atas pengecekkan dilakukan per-pin, P3.2 dan P3.3, yang dihubungkan ke Push-Button. Program di atas akan membuat seluruh LED pada Port-2 menyala saat push-button pada P3.2 ditekan dan sebaliknya LED akan padam saat P3.3 yang ditekan.
0 komentar:
Posting Komentar