Praktikum Mikrokontroler
PERCOBAAN
1
Program : Led Flip-Flop
Deskripsi : Led menyala kedap-kedip
Hardware : P2 ke X1 atau P2 ke X2
Line Number
|
Mnemonik
|
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
|
Awal:
MOV
P2, #0FFH
ACALL
DELAY
MOV
P2, #0
ACALL
DELAY
SJMP
AWAL
DELAY:
MOV
R0, #7
DEL1:
MOV
R1, #255
DEL2:
MOV
R2, #255
DEL3:
DJNZ
R2, DEL3
DJNZ
R1, DEL2
DJNZ
R0, DEL1
RET
|
PERCOBAAN
2
Program : Led Ping-pong
Deskripsi : Led menyala bolak-balik kekanan
kekiri
Hardware : P2 ke X1 atau P2 ke X2
Line Number
|
Mnemonik
|
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
|
Awal:
MOV
P2, #00FH
ACALL
DELAY
MOV
P2, #0F0H
ACALL
DELAY
SJMP
AWAL
DELAY:
MOV
R0, #7
DEL1:
MOV
R1, #255
DEL2:
MOV
R2, #255
DEL3:
DJNZ
R2, DEL3
DJNZ
R1, DEL2
DJNZ
R0, DEL1
RET
|
PERCOBAAN
3
Program : Led Berjalan
Deskripsi : Led menyala secara berurutan dari
kanan ke kiri
Hardware : P2 ke X1 atau P2 ke X2
Line Number
|
Mnemonik
|
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
|
Awal:
MOV P2, #0FEH
ACALL DELAY
MOV P2, #0FDH
ACALL DELAY
MOV P2, #0FBH
ACALL DELAY
MOV P2, #0F7H
ACALL DELAY
MOV P2, #0EFH
ACALL DELAY
MOV P2, #0DFH
ACALL DELAY
MOV P2, #0BFH
ACALL DELAY
MOV P2, #07FH
ACALL DELAY
SJMP AWAL
DELAY:
MOV R0, #7
DEL1:
MOV R1, #255
DEL2:
MOV R2, #255
DEL3:
DJNZ R2, DEL3
DJNZ R1, DEL2
DJNZ R0, DEL1
RET
|
PERCOBAAN
4
Program : Seven Segmen Display
Deskripsi : Seven Segmen menampilkan angka 0 s.d
9
Hardware : P2 ke X1, P1 ke X2
Line Number
|
Mnemonik
|
Line Number
|
Mnemonik
|
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
|
Awal:
MOV
P1, #0FEH
MOV
P2, #0C0H
ACALL
DELAY
MOV
P2, #0F9H
ACALL
DELAY
MOV
P2, #0A4H
ACALL
DELAY
MOV
P2, #0B0H
ACALL
DELAY
MOV
P2, #099H
ACALL
DELAY
MOV
P2, #092H
ACALL
DELAY
MOV
P2, #082H
ACALL
DELAY
MOV
P2, #0F8H
ACALL
DELAY
MOV
P2, #080H
ACALL
DELAY
MOV
P2, #090H
ACALL
DELAY
SJMP
AWAL
DELAY:
MOV
R0, #7
DEL1:
MOV
R1, #255
DEL2:
MOV
R2, #255
DEL3:
DJNZ
R2, DEL3
DJNZ
R1, DEL2
DJNZ
R0, DEL1
RET
|
PERCOBAAN
5
Program : Push Button 1
Deskripsi : Led menyala sesuai dengan tombol yang
ditekan
Hardware : P2 ke X1, P1 ke X2 ke Pushbutton
Line Number
|
Mnemonik
|
001
002
003
|
Awal:
MOV
P1,P3
SJMP
AWAL
|
PERCOBAAN
6
Program : Motor stepper
Deskripsi : motor berputar berlawanan jarum jam
Hardware : P0 ke motor stepper
Line Number
|
Mnemonik
|
Keterangan
|
001
002
003
004
005
006
007
008
009
010
|
Awal:
MOV
P2, #0F7H
ACALL
DELAY
MOV
P2, #0FBH
ACALL
DELAY
MOV
P2, #0FDH
ACALL
DELAY
MOV
P2, #0FEH
ACALL
DELAY
SJMP
AWAL
|
Isi port 2 dengan data 0F7H
Panggil subrutin tunda
Isi port 2 dengan data 0FBH
Panggil subrutin tunda
Isi port 2 dengan data 0FDH
Panggil subrutin tunda
Isi port 2 dengan data 0FEH
Panggil subrutin tunda
Lompat ke label awal (lakukan
berulang)
|
PERCOBAAN
7
Program : Led Berjalan
Deskripsi : Led berjalan dari kiri ke kanan
secara berulang
Hardware : P2 ke X1 atau P2 ke X2
Line Number
|
Mnemonik
|
Keterangan
|
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
|
Awal:
MOV
P2, #07FH
Putar:
MOV
P2, A
RR
A
ACALL
DELAY
SJMP
PUTAR
DELAY:
MOV
R5, #250
DEL1:
MOV
R6, #100
DEL2:
MOV
R7,#10
DJNZ
R7,$
DJNZ
R6, DEL2
DJNZ
R5, DEL1
RET
|
Isi akumulator dengan data 7FH
Salin data dari akumulator ke P0
(nyalakan 1 lampu)
Putar 1 bit data pada akumulator ke
arah kanan
Panggil subrutin tunda untuk waktu
tunda penyelaan
Lompat ke label awal (lakukan
secara berulang)
Isi register 5 dengan data 250
Isi register 6 dengan data 100
Isi register 7 dengan data 10
Kurangi R7 dengan 1 sampai 0*
Kurangi R6 jika belum 0 lompat ke
label delay2**
Kurangi R7 jika belum 0 lompat ke
label delay1***
Kembali ke program utama
|
PERCOBAAN
8
Program : Led Berjalan
Deskripsi : Led berjalan dari tengah ke pinggir
secara berulang
Hardware : P2 ke X1 atau P2 ke X2
Line Number
|
Mnemonik
|
Keterangan
|
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
|
Awal:
MOV
P2, #0E7H
ACALL
DELAY
MOV
P2,#0DBH
ACALL
DELAY
MOV
P2,#0BDH
ACALL
DELAY
MOV
P2,#07EH
ACALL
DELAY
SJMP
AWAL
DELAY:
MOV
R5, #250
DEL1:
MOV
R6, #40
DEL2:
MOV
R7,#10
DJNZ
R7,$
DJNZ
R6, DEL2
DJNZ
R5, DEL1
RET
|
Isi port 0 denagn data 0E7H
Panggil subrutin delay
Isi port 0 denagn data 0DBH
Panggil subrutin delay
Isi port 0 denagn data 0BDH
Panggil subrutin delay
Isi port 0 denagn data 07EH
Panggil subrutin delay
Lompat ke label awal (lakuan
berulang)
Isi register 5 dengan data 250
Isi register 6 dengan data 40
Isi register 7 dengan data 10
Kurangi R7 dengan 1 sampai 0*
Kurangi R6 jika belum 0 lompat ke
label delay2**
Kurangi R7 jika belum 0 lompat ke
label delay1***
Kembali ke program utama
|
Comments
Post a Comment