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