Rabu, 07 Mei 2014

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).
PB
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.
koneksi PB
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