Program yang satu ini merupakan pengembangan program saya sebelumnya tentang program Running Led dengan register. Perbedaannya adalah terletak pada adanya masukan input yang akan mengontrol mikrokontroler untuk menghidupkan running led ke arah kiri atau kanan.
Berikut akan saya tampilkan rangkaiannya.
Berikut adalah listing programnya menggunakan bahsa assembler dengan PORT1 Mikrokontroler sebagai input push button dan PORT2 sebagai output LED.
;=======================================================================
;PROGRAM KONTROL GERAK ARAH LED (KANAN-KIRI) DENGAN PUSH BUTTON
;Oleh : TRIHADI KURNIAWAN
;MIDBA 080012
;=======================================================================
org 0h
;=======================================================================
; PROGRAM INPUT AWAL
;=======================================================================
cekatas: JNB P1.2,belokkiri ;cek tombol atas ditekan ato ga, kalo YA -> langsung loncat ke belokkiri
call cekbawah ;kalo tidak coba cekbawah
sjmp cekatas ;kembali cekatas lagi
cekbawah: JNB P1.3,belokkanan ;cek tombol bawah ditekan ato ga, kalo YA -> langsung loncat ke belokkanan
call cekatas ;kalo tidak coba cekatas
sjmp cekbawah ;kembali cekbawah lagi
;=======================================================================
; PROGRAM JALAN LED PAKE 2 INPUT
;=======================================================================
belokkiri: mov A,#00000001b ;set susunan nyala led awal kalo mau belokkiri disimpan dalam Akumulator
mov R0,#8 ;perulangan sebanyak 8 langkah disimpan di R0
;
kiri:
JNB P1.3,belokkanan ;cek apakah selagi led belokkiri ada tombol atas yang ditekan ga,
;kalo YA -> langsung lompat belokkanan
mov P2,A ;Pindahkan data pada Akumulator ke PORT 2->output
call delay ;tunda dulu sebelum di rotasi
RL A ;rotate left data pada Akumulator
DEC R0 ;decrement/pengurangan terus dari data R0=8 sampe 0 jadi ngitung mundur doi
CJNE R0,#0,kiri ;bandingkan jika R0 udah 0 yaudah selese dia ngitungnya cape,hehe
;kalo R0 belum 0 ya ngulang lagi dari belokkiri
sjmp belokkiri
ret ;berhenti
;
belokkanan: mov A,#10000000b ;set susunan nyala led awal kalo mau belokkanan disimpan dalam Akumulator
mov R0,#8 ;simpan sebanyak 8 langkah di R0
kanan:
JNB P1.2,belokkiri ;cek apakah selagi led belokkanan ada tombol bawah yang ditekan ga,
;kalo YA -> langsung lompat belokkiri
mov P2,A ;Pindahkan data pada Akumulator ke PORT 2->output
call delay ;tunda dulu sebelum di rotasi
RR A ;rotate right data pada Akumulator
DEC R0 ;decrement/pengurangan terus dari data R0=8 sampe 0 jadi ngitung mundur doi
CJNE R0,#0,kanan ;bandingkan jika R0 udah 0 yaudah selese dia ngitungnya cape,hehe,
;kalo R0 belum 0 ya ngulang lagi dari belokkanan
sjmp belokkanan
ret ;berhenti
;
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Langganan:
Posting Komentar (Atom)
Rezeki Tambahan
"Rezeki tambahan" Namanya juga pedagang, mendapati pembeli yang menjual kembali barang yang sudah dibeli rasanya biasa. Dan saya ...
-
Beberapa saat yang lalu, saya melakukan transaksi yang cukup intens via whatsApp Messenger dengan pelanggan komputer baru saya yang tingga...
-
Oke, judul yang gw angkat ini lebih kepada keinginan besar gw untuk bisa sharing 2 rute pilihan apabila kalian pengen melakukan perjalanan...
-
Dalam 2 bulan terakhir ini, saya cukup dibuat terkejut dengan pergerakan harga Phenom II X4 955 yang menembus turun ke harga 800rb-an. Ber...
Tidak ada komentar:
Posting Komentar
Anda dapat memberikan saran dan kritik untuk pengembangan saya dan blog ini kedepan.