Depok Instruments

We Present Technologies As Arts

4. AT89S51 dan Input Push-Button

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

 

4.2. 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 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 4.2. Koneksi Push-Button dengan Mikrokontroler: a. Active-Low, b. Active-High.

4.3. 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.

mikro led pb

Gambar 4.3. Koneksi 8 buah Push-Button pada Port-3 dan 8 buah LED pada Port-0 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 Port-3 AT89S51.

 

Program 3:

org 0000h

sjmp awal

awal:

mov p0, #00h ; Menyalakan seluruh LED di Port-0

cek:

jnb p3.0, led0 ; Mengecek kondisi pin-0 dari port-3, jika = “0”, maka lompat ke label “led0”. Jika tidak, lanjutkan.

jnb p3.1, led1

jnb p3.2, led2

jnb p3.3, led3

jnb p3.4, led4

jnb p3.5, led5

jnb p3.6, led6

jnb p3.7, led7

sjmp cek

led0:

cpl p0.0 ; Membalik kondisi pin-0 dari port-0, jika awal = “0” menjadi “1” dan sebaliknya.

sjmp cek1 ; Lompat kembali ke label “cek”.

led1:

cpl p0.1

sjmp cek1

led2:

cpl p0.2

sjmp cek1

led3:

cpl p0.3

sjmp cek1

led4:

cpl p0.4

sjmp cek1

led5:

cpl p0.5

sjmp cek1

led6:

cpl p0.6

sjmp cek1

led7:

cpl p0.7

sjmp cek1

Cek1:

Mov a, p3 ; Accumulator (Acc) = Port-3

Cjne a, #0FFh, cek1 ; Jika Acc tidak = 0FFh, maka kembali ke label “Cek1”

Sjmp cek1

 

Pada “Program 3” di atas pengecekkan dilakukan per-pin dari Port-3 yang dihubungkan ke Push-Button. Program di atas akan mengubah kondisi pin dari Port-0 (Port LED) ke kondisi kebalikannya jika pin yang bersesuaian dari Port-3 (Port Push-Button) ditekan atau berkondisi “0”. Lalu program pada label “Cek1” adalah untuk memastikan penekan push-button telah selesai dilakukan. Selamat BERSENANG-SENANG!


September 19, 2007 - Ditulis oleh depokinstruments | 2.1 Mikrokontroler I | | & Komentar

& Komentar »

  1. thanks
    a lg nyari bahan buat tugas.
    sepertinya i9ni sangat membantu

    Komentar oleh setiadi | Oktober 28, 2008 | Balas

  2. tanya’ dunk!!!!

    gimana listing program AT89s51 untuk mengirim data secara serial ke PC (Delphi) dengan inputan 2 port (P0.0 & P0.1).

    Komentar oleh wawan | Desember 3, 2008 | Balas

  3. thxs ya atas bantuannya

    sepertinya ini sangat membantu buat saya

    good luck

    Komentar oleh oza | April 6, 2009 | Balas


Tinggalkan komentar