Anda di halaman 1dari 13

Fungsi Tombol tombol pada Keyboard :

Tujuan Percobaan :
1. Mengetahui prinsip kerja trainer mikrokontroler
2. Mengetahui perintah perintah program yang diberikan
Alat dan Bahan:
1. Satu set trainer Mikrokontroler
2. Modul








Tombol Fungsi Deskripsi
F1 Menampilkan kode hexadesimal dari tiap baris
F2 Mereset IC Mikrokontroler pada modul target melalui konektor ISP
F3 Mengkompilasi semua baris intruksi
F4 Mengkompilasi semua baris intruksi kemudian mengupload hasilnya ke IC
Mikrokontroler pada modul target
F5 Memilih Slot memori 1
F6 Memilih Slot memori 2
F7 Memilih Slot memori 3
F8 Memilih Slot memori 4
Enter Menyimpan tulisan pada baris yang aktif ke slot memori yang aktif
Panah
Kanan/Kiri
Memindahkan cursor ke arah kanan atau kiri
Panah
Atas/Bawah
Memindahkan cursor ke baris atas atau bawah. Memindahkan cursor ke
baris yang berbeda sebelum menekan Enter akan menyebabkan teks
yang ditulis di baris tersebut hilang atau kembali ke teks sebelum diedit.
Insert Menyisipkan baris kosong
Delete Menghapus baris
Home Loncat ke baris pertama
End Loncat ke baris terakhir yang berisi teks
PageUp Loncat satu halaman ke atas (tujuh baris bergeser sekaligus)
PageDown Loncat satu halaman ke bawah (tujuh baris bergeser sekaligus)
1. Program LED Ping Pong (Bergerak ke kiri dan ke kanan)

Urutan Perintah Penjelasan
001 AWAL : Judul (Label)
002 MOV P2, #0FFH Isi Port 2 dengan data FFH
003 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
004 MOV P2, #0FEH Isi Port 2 dengan data FEH
005 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
006 MOV P2, #0FDH Isi Port 2 dengan data FDH
007 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
008 MOV P2, #0FBH Isi Port 2 dengan data FBH
009 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
010 MOV P2, #0F7H Isi Port 2 dengan data F7H
011 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
012 MOV P2, #0EFH Isi Port 2 dengan data EFH
013 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
014 MOV P2, #0DFH Isi Port 2 dengan data DFH
015 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
016 MOV P2, #0BFH Isi Port 2 dengan data BFH
017 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
018 MOV P2, #07FH Isi Port 2 dengan data 7FH
019 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
020 MOV P2, #0FFH Isi Port 2 dengan data FFH
021 MOV P2, #0BFH Isi Port 2 dengan data BFH
022 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
023 MOV P2, #0DFH Isi Port 2 dengan data DFH
024 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
025 MOV P2, #0EFH Isi Port 2 dengan data EFH
026 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
027 MOV P2, #0FFH Isi Port 2 dengan data FFH
028 MOV P2, #0F7H Isi Port 2 dengan data F7H
029 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
030 MOV P2, #0FBH Isi Port 2 dengan data FBH
031 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
032 MOV P2, #0FDH Isi Port 2 dengan data FDH
033 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
034 MOV P2, #0FEH Isi Port 2 dengan data FEH
035 ACALL DELAY Memanggil subrutin delay penyalaan lampu berikutnya
036 MOV P2, #0FFH Isi Port 2 dengan data FFH
037 SJMP AWAL: Lompat Ke Label mulai (lakukan secar berulang)
038 DELAY:
penundaan sesaat dengan cara mengulangi
proses (pengurangan isi register) hingga
dicapai suatu
kondisi tertentu
039 MOV R0, #3 Isi Register 0 dengan data 3 (sebagai waktu(detik))
040 DEL1:
041 MOV R1, #255 Mengisi R1 dengan data 225
042 DEL2:
043 MOV R2, #255 Mengisi R1 dengan data 225
044 DEL3:
045 DJNZ R2, DEL3 Kurangi R2 sampai dengan 0, jika belum 0 , lompat ke
DEL3
046 DJNZ R1, DEL2 Kurangi R1 sampai dengan 0, jika belum 0 , lompat ke
DEL2
047 DJNZ R0, DEL1 Kurangi R0 sampai dengan 0, jika belum 0 , lompat ke
DEL1
048 RET Kembali Ke program utama
049

FLOW CHART





















START
INPUT PORT 2
(MOV P2)
FFH, FEH, FDH, FBH, F7H, EFH, DFH,
BFH, 7FH, FFH, BFH, DFH, EFH, FFH,
F7H, FBH, FDH, FEH, FFH
INPUT REG.1; 2 ; 3
#3, #225,#255
PROSES

ACALL DELAY
SJMP
Apakah bilangan
di R2 = 0, R1=0,
R0=0
DEL3, DEL 2, DEL1
TIDAK
YA
RET
END
2. PROGRAM MENAMPILKAN ANGKA 0 SAMPAI DENGAN 9 MENGGUNAKAN REGISTER DPTR
Urutan Perintah Penjelasan
001 AWAL: Judul (Label)
002 MOV P1, #0FEH Isi port 2 dengan data FE
003 MOV R0, #10 Isi register 0 dengan data 10
004 MOV DPTR, #NUMB Isi DPTR dengan data numb
005 ULANG: Label ULANG
006 CLR A Me-reset A
007 MOVC A, @A+DPTR Ambil data dari ROM sesuai isi A dan DPTR
008 MOV P2, A Isi port 2 dengan data A
009 ACALL DELAY Memanggil subrutin delay
010 INC DPTR Menambahkan isi memori dengan 1 dan menyimpannya di
DPTR
011 DJNZ R0, ULANG Kurangi R0 sampai dengan 0, jika belum 0, lompat ke label
ULANG
012 SJMP AWAL Lompat ke label AWAL (lakukan secara berulang)
013 NUMB: Keterangan numb pada urutan 004
014 DB 0C0H, 0F9H, 0A4H Data bit 0C0H, 0F9H, 0A4H
015 DB 0B0H, 99H, 92H Data bit 0B0H, 99H, 92H
016 DB 82H, 0F8H, 80H Data bit 82H, 0F8H, 80H
017 DB 90H Data bit 90H
018 DELAY: Penundaan sesaat dengan cara mengulangi proses
(pengurangan isi register) hingga dicapai suatu kondisi tertentu.
019 MOV R1, #7 Isi register 1 dengan data 7
020 DEL1:
021 MOV R2, #0FFH Isi register 2 dengan data FF
022 DEL2:
023 MOV R3, #0FFH Isi register 3 dengan data FF
024 DEL3:
025 DJNZ R3, DEL3 Kurangi R3 sampai dengan 0, jika belum 0, lompat ke DEL3
026 DJNZ R2, DEL2 Kurangi R2 sampai dengan 0, jika belum 0, lompat ke DEL2
027 DJNZ R1, DEL1 Kurangi R1 sampai dengan 0, jika belum 0, lompat ke DEL1
028 RET Kembali ke program utama









START
P1=0FEH
R0=10
P1=0FEH
R0=10
DPTR=Numb
ANGKA=0C0H, 0F9H,
0A4H, 0B0H, 99H, 92H,
82H, 0F8H, 80H, 90H
A=0
A=A+DPTR
P2=A
Delay Function
DPTR=DPTR+1
R0=R0-1
R0=0 ?
END
YES
NO
FLOWCHART:


























3. PUSHBUTTON 1
Deskripsi : LED menyala sesuai dengan tombol yang ditekan


Flowchart:





4. PROGRAM PUSH BUTTON 2
Deskripsi : Ketika Saklar ditekan, LED menyala, Saklar 1 ditekan LED padam
Urutan Perintah Penjelasan
001 AWAL : Label
002 JNB P3.5, ON Cek/Tekan Port 3 dan 5 ON
003 JNB P3.4, OFF Cek/Tekan Port 3.4 untuk OFF
004 SJMP AWAL Lompat Ke Label Awal (lakukan secar
berulang)
005
006 ON Menyala
007 MOV P2, #000H Mengisi Port2 dengan data 0
008 RET Kembali ke program Utama
009
010 OFF: Mati
011 MOV P2, #0FFH Mengisi Port2 dengan data FFH
012 RET Kembali ke program utama
013






Urutan Perintah Penjelasan
001 MULAI : Label goto
002 MOV P1, P3 Pindahkan data dari P3 (pushbutton) ke P1 (input mikro)
003 SJMP MULAI Loncat ke label MULAI
START
P1=P3
END
FLOWCHART



























AWAL
INPUT ON Port 2 : 0
INPUT OFF Port 2: FFH
SJMP
Tekan tombol
3.5 Untuk ON
Tekan tombol
3.5 Untuk OFF
LED P2 ON
TIDAK
YA
LED P2 OFF
TIDAK
YA
RET
END
5. Push Button 4
Deskripsi : Meng-ON-kan relay setelah Saklar0 ditekan 5x, Men-OFF-kan relay
setelah Saklar0 ditekan 5x. (Tanpa bouncing remover)
Line Number Mnemonik Keterangan
001 MOV R0, #0 Isi register 0 dengan data 0
002 AWAL: Berikan label AWAL
003 JB P3. 0, AWAL Apakah tombol P3.0 ditekan . Bila
P3.0=0 maka jika tidak kembali ke awal
004 INC R0 Menambah register 0 dengan 1++
005 CJNE R0, #R5, TUNGGU Apakah R0 di tekan bila tidak cek
kembali ke Tunggu
006 MOV R0, #0 Isi register 0 dengan data 0
007 MOV C, P0. 4 Pindahkan Data dari Port 0 ke 4 ke C
008 CPL C Komplemenkan C
009 MOV P0. 4, C Pindahkan Data dari C ke Port 0 ke 4
010 TUNGGU: Label tunggu
011 JNB P3. 0, TUNGGU Cek/Tekan Port 3 ON . Tunggu
012 SJMP AWAL Kembali ke Awal































FLOW CHART


































R0 = 0; P3 =0 ;
P0=AWAL;
YA
P30
P3=TUNGGU
AWAL
R0+1
P3 5 ; P0=WAIT;
R00
P0 4 ; CP0;
CPLC
P0C
SJMP AWAL
END
6. PushButton5
Deskripsi : Men-ON-kan relay setelah Saklar0 ditekan 5x, Men-OFF-kan relay
setelah Saklar0 ditekan 5x. Dengan bouncing remover.
Hardware : P0 Relay, P3 Pushbutton
Line Number Mnemonik Keterangan
001 MOV R0, #0 Isikan Register 0 dengan data 0
002 AWAL: Label Awal
003 JB P3. 0, AWAL Apakah Port 3 ke 0 di tekan . jika tidak
kembali ke Awal
004 INC R0 Tambahankan Register 0 1++
005 CJNE R0, #5, TUNGGU Apakah R0 di tekan bila tidak cek kembali
ke Tunggu
006 MOV R0, #0 Pindahkan Register 0 dengan data 0
007 MOV C, P0. 4 Pindahkan data pada Port 0 ke 4 ke C
008 CPL C Komplemenkan C
009 MOV P0. 4, C Pindahkan Data C ke Port 0 ke 4
010 TUNGGU: Label Tunggu
011 ACALL DELAY Delay
012 JNB P3. 0, TUNGGU Cek/Tekan Port 3 ON . Tunggu
013 SJMP AWAL Kembali ke Label AWAL
014 DELAY: Label Delay
015 MOV R1, #0FFH Isikan data ke Register 1 dengan 0FFH
016 DEL1
017 DJNZ R1, DEL1 Kurangi R1 sampai dengan 0, jika belum 0,
018 RET

FLOW CHART












R0 = 0; P3 =0 ;
P0=AWAL;
AWAL
R0+1
P3 5 ; P0=WAIT;
1






























YA
P30
P3=TUNGGU
R00
P0 4 ; CP0;
CPLC
P0C
SJMP AWAL
END
1
R00FFH

R1=0?
TIDAK
YA
7. PROGRAM MIKROKONTROLER MENGGUNAKAN STEPPER MOTOR
Urutan Perintah Penjelasan
001 MULAI: Judul (Label)
002 MOV P0, #0FEH Isi port 0 dengan data FE
003 ACALL DELAY Memanggil subrutin delay
004 MOV P0, #OFBH Isi port 0 dengan data FB
005 ACALL DELAY Memanggil subrutin delay
006 MOV P0, #OFDH Isi port 0 dengan data FD
007 ACALL DELAY Memanggil subrutin delay
008 MOV P0, #0F7H Isi port 0 dengan data F7
009 ACALL DELAY Memanggil subrutin delay
010 SJMP MULAI Lompat ke label MULAI (lakukan secara berulang)
011 DELAY: Penundaan sesaat dengan cara mengulangi proses (pengurangan
isi register) hingga dicapai suatu kondisi tertentu.
012 MOV R0, #25H Isi register 0 dengan data 25
013 DELAY1:
014 MOV R1, #0FFH Isi register 1 dengan data FF
015 DELAY2:
016 DJNZ R1, DELAY2 Kurangi R1 sampai dengan 0, jika belum 0, lompat ke DEL2
017 DJNZ R0, DELAY1 Kurangi R0 sampai dengan 0, jika belum 0, lompat ke DEL1
018 RET Kembali ke program utama
















FLOWCHART:





















MULAI
ACALL DELAY
SJMP MULAI
DELAY

P0FE, FD, FB
,F7

R0 25
R1 FF

R0=0?
R1=0?
TIDAK
YA
RET
END

Anda mungkin juga menyukai