PROGRAM 1 (LED NYALA DAN MATI)
Program AT89S51 untuk menghidupkan LED1 dan LED2 secara bergantian.
Pembelajaran kali ini kita akan membahas tentang aplikasi dan pemograman sederhana IC AT89S51.
Rangkaian yang digunakan untuk pemrograman adalah rangkaian sebagai berikut :
Rangkaian tersebut berfungsi untuk menghidupkan 8 led pada port 0.
Logika "0" berarti Led nyala, dan logika "1" berarti Led mati.
Urutan data biner dan letak Led adalah sebagai berikut:
Silahkan difahami contoh program di bawah ini merupakan program aplikasi untuk menghidupkan Led1 dan Led2 secara bergantian :
---------------------------------------------
PROGRAM
---------------------------------------------
ORG 0H
Mulai : MOV P0,#11111110B
ACALL DELAY
MOV P0,#11111101B
ACALL DELAY
SJMP MULAI
--------------------------------
Subrutin delay
--------------------------------
DELAY : MOV R0,#5
DELAY 1: MOV R1,0FFH
DELAY 2: MOV R2,#0
DJNZ R2,$
DJNZ R1,DELAY2
DJNZ R0,DELAY1
RET
END
Penjelasan program:
ORG 0H artinya program ini disimpan pada memori ROM dengan alamat awal 0H
Mulai: ... merupakan Label pada sebuah baris program yng berfungsi untuk pemnggilan baris program.
MOV P0,#11111110B
artinya Led8=1 (mati), Led7=1(mati), Led6=1 (mati), Led5=1(mati), Led4 =1 (mati), Led3=1(mati),Led2=1 (mati), Led1=0(nyala).
ACALL DELAY artinya program memanggil subrutin delay untuk memberikan delay (waktu tunda) agar lampu Led1 nyala beberapa saat.
MOV P0,#11111101B
artinya Led8=1 (mati), Led7=1(mati), Led6=1 (mati), Led5=1(mati), Led4 =1 (mati), Led3=1(mati),Led2=0 (nyala), Led1=1(mati).
ACALL DELAY artinya program memanggil subrutin delay untuk memberikan delay (waktu tunda) agar lampu Led2 nyala beberapa saat.
SJMP Mulai artinya (short Jump) program kembali lagi ke baris program yng berlabel "Mulai"
Program SJMP Mulai ini berfungsi agar program secara terus menerus menyalakan Led1 dan Led2 secara bergntian tanpa henti.
Subrutin Delay (diawali dari DELAY : ...sampai RET) merupakan program delay untuk memberikan waktu tunda dan diakhiri dengan perintah RET untuk kembali ke program utama setelah delay habis.
END merupakan baris terakhir sebagai tanda akhir sebuah program.
Demikian penjelasan singkat ini semoga dapat difahami dan dimengerti.
Tugas :
Silahkan klik link berikut ini:
Comments
Post a Comment