AT89S51 dan Input Push-Button

Sekilas tentang Push-Button

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 4.1).

PB

Gambar 4.1. 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 4.2, 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 DefaultHigh, 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.

koneksi PB

Gambar 4.2. 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 4.3, 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 4.3. 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.

*Modul Depok Instruments yang Memudahkan Pembelajaran:

mov p0, #0 ; Membuat port-0 = “0” yang berarti seluruh LED akan menyala.

Iklan

8 thoughts on “AT89S51 dan Input Push-Button

  1. pak saya mau tanya lagiu..
    itu di jelaskan bahwa lampu di hubungkan ke port-2
    tapi kenapa program nya tertulis port-0
    “Program di atas akan membuat seluruh LED pada Port-0 menyala saat push-button pada P3.2 ditekan dan sebaliknya LED akan padam saat P3.3 yang ditekan.”

    Suka

  2. pak saya mau naya bagaimana program nya jika si ditekan led hidup satu persatu geser kekiri,,,jk s3 ditekan semua led mati,,jk s2 ditekan led geser kekanan…jk s3 ditekan lagi led mati semua..tq pak mohon secspztnya

    Suka

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s