Sabtu, 05 Juni 2010

Dasar-dasar pemrograman Input Output untuk mikrokontroler MCS51 menggunakan bahasa assembly.

    Hubungan Input Output dalam penggunaan Mikrokontroler merupakan hal terpenting. Karena nantinya akan banyak digunakan keterkaitan antara Input dan Output. Input atau masukan yang digunakan akan berupa sebuah sensor atau dapat juga sebuah saklar yang memberikan masukan ke mikrokontroler dan menjalankan intruksi yang ditunjuk sesuai masukan yang diberikan.
    Masukan yang diberikan bisa berupa data analog ataupun juga berupa data digital. Untuk data yang bersifat analaog maka kita akan membutuhkan perlakuan yang berbeda baik terhadap Rangkaian Hardware maupun juga untuk softwre yang akakn dibuat. Namun jika data inputan yang kita gunakan berpa sinyal-sinyal digital 1 , 0 ataupun dapat juga dalam bentuk gelombang persegi yang dinamis maka kita cukup mendefinisikannya sesuai kebutuhan dan ketentuannya.
    Berikut kita akan mencoba menggunakan sebuah saklar ( Push Button ) sebagai Inputan dan Led sebagai indikator/keluarannya. Kita akan menggunakan Push Button (PB) di Port1.0  dan 8 Buah Led di PORT.2 . Untuk Rangkaiannya dapat dilihat gambar dibawah.


Gambar.1 Rangkaian Mikrokontroler MCS51

    Selanjut kita membuat program untuk menajalankan sistem yang telah kita buat. Seperti biasa kita siapkan juga apa yang kita butuhkan seperti kabel ISP downloader STK200, Software ISP Programer buatan Asim Khan ataupun juga ATMEL ISP Programer, program kompiler ASM51 dan Text Editor untuk kita menuliskan listingt program assembly nanti.
    Silakan buka notepad,ketikan listing program berikut:

$MOD51
$TITLE(IO)

    ORG     0000H
LOOP:
    MOV     A,P1.0
    CJNE     A,#01H,BUKAN
YA:
    MOV     A,#0FFH
    SJMP     LED
BUKAN:
    MOV     A,#00
LED:
    MOV     P2,A
    SJMP     LOOP

    Cara kerja dari program yang kita buat adalah sebagai berikut. Jika kita menekan memberikan logika pada PORT1.0 dengan cara menekan PB maka nilai tersebut akakn kita pindahkan ke Register A (ACC) selanjut mikrokontroler akan mengecek jika nilai tersebut 1 maka akan lompat ke label YA namun jika logika yang di dapat 0 maka akan melompat ke label BUKAN. Selanjutnya jika label YA yang didapat,Register A akan akan kita isi dengan nilai 255 selanjutnya nilai tersebut akakn kita pindahkan ke PORT2 dan ditampilkan ke LED. Sebaliknya jika 0 maka LED akan tetap mati.(lihat label BUKAN,nilai register A adalah nol)

2 komentar:

  1. Keren ndik...berjuang kren2 postingan kw..

    BalasHapus
  2. gambarnya kok ngga ada maaaas? hehe
    dasar teorinya juga hehe

    BalasHapus

Need Your Comments, Please !!!