Jumat, 01 Mei 2009

bermain led2


Membuat Led dengan nyala naik turun seperti grafik BAR/grafik batang
berikut contoh program dengan bahasa Assembly:

; ---------------------------------------------------
; Demo BAR LED pada Port 1
; BAR naik/turun File name LED4
; ---------------------------------------------------
$include(REG51.inc)

Org 0h
Mulai:
Mov A,#01111111B ; A=01111111B
MOV R4,#8 ; R4=8 sejumlah LED pd P1
cek1: Mov P1,A ; P1 = A
CLR C ; Carry = 0
RRC A ; Geser A kekanan, paling kiri diisi Carry
call Delay ; panggil delay
djnz R4,cek1 ; ulangi mulai label cek 1 sebanyak R4 (8 kali)
;
MOV R4,#8 ; R4=8 sejumlah LED pd P1
cek2: setb C ; Carry = 1
RLC A ; Geser A kekiri, paling kanan diisi Carry
mov P1,A ; P1 = A
call Delay ; panggil delay
call delay
djnz R4,cek2 ; ulangi mulai label cek2 sebanyak R4 (8 kali)
call delay ; panggil delay
call delay
call delay
jmp mulai ; ulangi lagi mulai dari awal ke label “Mulai”
;-------------------
; sub routine delay
;-------------------
Delay: DJNZ R3,delay
Djnz R1,Delay
Ret
End


Sedangkan penulisan dalam bahasa C sbb:

#include // file name LED4C

void Delay ()
{
int lama = 10000; // lama diberi nilai awal = 10000
while (lama-- > 0); // lama=lama-1, ulangi terus sampai lama = 0
}

void main ()
{
int batas; // definisi variable batas
while (batas < p1 =" 0x7F;" 1 =" 11111110" batas =" 0;" batas =" 0" p1 =" (P1">>1); // P1 = P1 di rotate kekanan
delay(); // panggil rutin delay
batas++; // batas = batas + 1 (increment)
}
batas = 0; // batas = 0
while (batas <= 7) // bila batas <= 7 kerjakan dibawah ini { P1 = (P1<<1|1); // P1 = P1 di rotate kekiri, LSB diisi ‘1’ delay(); // panggil rutin delay batas++; // batas = batas + 1 (increment) } delay(); delay(); } }

file bisa didownload disini atau disini

Selamat mencoba!!
Read More..

Kamis, 30 April 2009

Bermain Led

Pada percobaan ini kita akan coba bermain dengan Led,

Kelebihan dari produk HB2000W ,salah satunya sudah dilengkapi dengan evaluation board jadi kita dapat melakukan experimen dengan mudah langsung pada hardware tanpa harus memindahkan ic yang telah diprogram.

Aplikasi Led terhubung dengan port 1, sedangkan tombol terhubung dengan port3, jadi ini kita gunakan sebagai dasar acuan pada saat membuat program, jika outputan dari program yang kita buat akan disimulasikan dengan nyala LED maka penulisan programnya diarahkan ke arah port1 demikian juga untuk aplikasi tombol kita arahkan programnya ke port3.


Percobaan1.


Membuat led berkedip pada Port1.0



; ----------------------------------------------------------------

; Lampu di Port 1.0 berkedip File name LED1

; ----------------------------------------------------------------

; $include(REG51.inc) ; harus ditulis paling atas, deklarasi register 80X51
org 0h ; awal program

mulai: cpl P1.0 ; complement

P1.0delay:

djnz R0,delay ;

R0 = R0-1, bila tdk sama nol lompat ke delay

djnz R1,delay ; R1 = R1-1, bila tdk sama nol lompat ke delay

jmp mulai ; lompat ke label Mulai

end ; akhir program


Setelah program di masukkan ke dalam mikrokontroller ,maka hasil yang dapat kita lihat seperti gambar di samping, yaitu led pada port 1.0 kedip bergantian
mudah bukan...






Untuk penulisan dengan bahasa C yaitu:


// Lampu di Port 1.0 berkedip File name LED1C
#include // hrs selalu ditulis, merupakan deklarasi register MCS’51
sbit Lampu = 0x90; // definisi kaki P1.0

void Delay ()
{ int lama = 20000; // definisi variable lama = integer dgn nilai awal=20000
while (lama > 0,lama = lama-1); // lama=lama-1, ulangi terus sampai lama = 0
}
void main () // program utama\
{
while(1) // untuk pengulangan terus menerus
{ Lampu = !Lampu; // Lampu = not Lampu
delay(); // panggil fungsi delay
}}


untuk dapat langsung mencobanya pada HB2000W anda bisa download filenya disini
Selamat mencoba
Read More..