Sabtu, 13 Oktober 2012

Program Sederhana Sistem Tertanam

Program sederhana sistem tetanam ini, saya menggunakan mikrokontroler keluarga ATMEL --> AT89C52.
Mikrokontroler ini merupakan mikrokontroler dasar, cocok untuk kita yang baru belajar mikrokotroler. Dalam mikrokontroler ini kita menggunakan bahasa Assembly, karena dengan bahasa Assembly kita yang masih pemula dapat mempelajari setiap langkah-langkah program.

Pelajaran pertama :
1. Cara menginputkan data ke mikrokontroler


sebelum kita melakukan pemrograman kita harus mengetahui output kita terhubung ke port mikrokontroler berapa? seperti pada gambar diatas.
Seperti kita lihat dari gambar diatas 8 led-green terhubung ke p1 AT89C52.
8 led diatas bersifat aktif low, sehingga :
 led nyala = 0
  led mati  =  1
maka program penginputan datanya, yaitu :

utama :                                     ; utama sebagai label program
      mov p1,#055h                   ; p1 diisi data senilai 55
      sjmp utama                        ; lompat ke utama
      ret
      end                                   ; selesai

Penjelasan nilai 55h seperti pada tabel di bawah ini :

Jika kita ingin menginput data AAh, maka tinggal diganti saja --> mov p1,#0AAh. begitu juga jika kita ingin menginputkan data yang lain.

2. Cara memprogram seven segment
Sevent segment terdiri dari 7 segment, yaitu a,b,c,d,e,f,g.
Kita menggunakan 7 segment common anoda yang bersifat aktif low
misalkan : segmen a akan menyala jika kita beri logika 0, dan mati jika diberi logika 1, begitu juga dengan segment-segment yang lain.

Jika kita ingin membuat karakter 0, maka kita harus menyalakan segmen a,b,c,d,e,f dan mematikan segment g.  Seven segment seperti pada gambar terhubung pada port 0 (P0)
Untuk lebih jelas perhatikan gambar dibawah ini :
 Program nya jika kita hanya ingin menampilkan 1 angka saja , programnya sebagai berikut :
1. utama :
      mov p0, #40h     ; angka 0 saja tampil
      sjmp utama
      ret
      end
2. utama :
      mov p0, #79h     ; angka 1 saja tampil
      sjmp utama
       ret
       end

Jika kita ingin menampilkan lebih dari 1 angka, programnya sebagai berikut :

utama :
   mov p0,#40h   ; angka 0 tampil
   acall delay
   mov p0,#79h   ; angka 1 tampil
   acall delay
   mov p0,#24h   ; angka2 tampil
   acall delay
   sjmp utama
delay:
    mov R2,#3
dly:
    mov R1,#255
dy:
    mov R0,#255
    Djnz R0,$
    Djnz R1,dy
    Djnz R2,dly
    Ret
    end

Program diatas akan melakukan counter 0 sampai 2.

3. Program untuk traffic light
Program traffic light ini sama seperti pada program led, cuma traffic light bersifat aktif high
nyala = 1
mati  = 0
 programnya :
utama :
      mov p0, #01h     ; lampu merah akan nyala
      sjmp utama
       ret
       end

utama :
   mov p0,#01h   ; lampu merah akan nyala
   acall delay
   mov p0,#02h; lampu kuning akan nyala
   acall delay
   mov p0,#04h; lampu hijau akan nyala
   acall delay
   sjmp utama
delay:
    mov R2,#3
dly:
    mov R1,#255
dy:
    mov R0,#255
    Djnz R0,$
    Djnz R1,dy
    Djnz R2,dly
    Ret
    end
 program diatas akan menyalakan lampu merah, kuning dan hijau secara bergantian


===SELAMAT MENCOBA===

0 komentar:

Posting Komentar