LAPORAN PRAKTIKUM1_UTS
Transcript of LAPORAN PRAKTIKUM1_UTS
LAPORAN
PRAKTIKUM MIKROKONTROLER
Disusun oleh :
DENAR REGATA AKBI
05560164
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2008
I. TUJUAN
1. Mahasiswa memahami rangkaian mikrokontroller untuk menghidupkan dan mematikan
LED
2. Mahasiswa dapat memahami program assembly untuk menghidupkan dan mematikan
LED.
3. Mahasiswa memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, RL dan RR.
4. Mahasiswa memahami pembuatan instruksi waktu tunda
Gambar 1.1 Rangkaian Display LED
Perhatikan pada gambar 1.1 tersebut. Delapan buah LED terhubung ke port 0, yang
difungsikan sebagai output. Pada konfigurasi tersebut LED akan nyala bila diberi logika LOW ‘0’ melalui port 0, dan LED akan padam bila diberi logika HIGH ‘1’ melalui port 0. Agar Display LED ini dapat aktiv maka jumper EN LED harus dihubungkan singkat.
II. HASIL PRAKTIKUM 1
Percobaan 1.1. Instruksi MOV
o Percobaan 1_1
ORG 0h
start : MOV p0,#11110000b ;isi P0 dg 11110000
sjmp start ;lompat ke start
end
o Percobaan 1_1.1
ORG 0h start : MOV p0,#11h ;isi P0 dg 11h
sjmp start ;lompat ke start end
o Percobaan 1_1.2
ORG 0h start : MOV p0,#22h ;isi P0 dg 22h
sjmp start ;lompat ke start
end
o Percobaan 1_1.3
ORG 0h
start : MOV p0,#44h ;isi P0 dg 44h sjmp start ;lompat ke start
end
o Percobaan 1_1.4
ORG 0h start : MOV p0,# 88h ;isi P0 dg 88h
sjmp start ;lompat ke start end
o Percobaan 1_1.5
ORG 0h start : MOV p0,#24h ;isi P0 dg 24h
sjmp start ;lompat ke start end
o Percobaan 1_1.6
ORG 0h start : MOV p0,#0AAh ;isi P0 dg0AAh sjmp start ;lompat ke start
end
o Percobaan 1_1.7
ORG 0h start : MOV p0,#0BBh ;isi P0 dg 0BBh
sjmp start ;lompat ke start end
Jika diimplementasikan dalam table :
DATA LED
8 7 6 5 4 3 2 1 11h n n n p n n n p 22h n n p n n n p n 44h n p n n n p n n 88h p n n n p n n n 24h n n p n n p n n AAH p n p n p n p n BBH p n p p p n p p
Percobaan 1.2. Pembuatan Subrutine Waktu Tunda
o Percobaan 1_2
Org 0h
Start : Mov P0,#11111111b ; kirim data biner 11111111 ke p0 call delay ; Memanggil waktu tunda
Mov P0,#00000000b ; kirim data biner 00000000 ke P0 call delay ; memanggil waktu tunda sjmp start
; Delay : mov R1,#255
Del1 : mov R2,#255 Del2 : djnz R2,del2 djnz R1,del1
ret end
o Percobaan 1_2.1
Org 0h Start : Mov P0,#11111111b ; kirim data biner 11111111 ke p0
call delay ; Memanggil waktu tunda Mov P0,#11111110b ; kirim data biner 00000000 ke P0 call delay ; memanggil waktu tunda
sjmp start Delay : mov R1,#255
Del1 : mov R2,#255 Del2 : djnz R2,del2 djnz R1,del1
ret end
o Percobaan 1_2.2
Org 0h Start : Mov P0,#11111111b ; kirim data biner 11111111 ke p0 call delay ; Memanggil waktu tunda
Mov P0,#11111100b ; kirim data biner 00000000 ke P0 call delay ; memanggil waktu tunda
sjmp start ; Delay : mov R1,#255
Del1 : mov R2,#255 Del2 : djnz R2,del2
djnz R1,del1 ret end
o Percobaan 1_2.3
Org 0h Start : Mov P0,#11111111b ; kirim data biner 11111111 ke p0
call delay ; Memanggil waktu tunda Mov P0,#11110000b ; kirim data biner 00000000 ke P0 call delay ; memanggil waktu tunda
sjmp start ;
Delay : mov R1,#255 Del1 : mov R2,#255 Del2 : djnz R2,del2
djnz R1,del1 ret
end
Percobaan 1.3. Instruksi Setb dan Clr
o Percobaan 1_3
org 0h
start : clr P0.0 ; mengirimkan logika '0' ke P0.0 sjmp start ; jump ke start
end
o Percobaan 1_3.1
org 0h
start: Clr P0.0 ;kirim logika'0' ke P0.0 clr P0.1 ;kirim logika '0' ke P0.1 clr P0.2 ;kirim logika '0' ke P0.2
clr P0.3 ;kirim logika '0' ke P0.1 clr P0.4 ;kirim logika '0' ke P0.2
clr P0.5 ;kirim logika '0' ke P0.1
clr P0.6 ;kirim logika '0' ke P0.2 clr P0.7 ;kirim logika '0' ke P0.2
call delay ;memanggil waktu tunda
setb P0.0 ;kirim logika '1' ke P0.0 setb P0.1 ;kirim logika '1' ke P0.1 setb P0.2 ;kirim logika '1' ke P0.2
setb P0.3 ;kirim logika '1' ke P0.3 setb P0.4 ;kirim logika '1' ke P0.4
setb P0.5 ;kirim logika '1' ke P0.5 setb P0.6 ;kirim logika '1' ke P0.6 setb P0.7 ;kirim logika '1' ke P0.7
sjmp start ; lompat ke start
Delay : mov R1,#255 Del1 : mov R2,#255
Del2 : djnz R2,del2 djnz R1,del1
ret end
Percobaan 1.4. Instruksi RL/ RR ( Rotate Left dan Right ) o Percobaan 1_4
Org 0H
Start: Mov A,#11111110b Mov R0,#7 Kiri: Mov P0,A
Call Delay RL A
DEC R0 CJNE R0,#0,Kiri Mov R0,#7
Kanan: Mov P0,A Call Delay
RR A DEC R0 CJNE R0,#0,Kanan
Sjmp Start ;
Delay: mov R1,#100
Del1: mov R2,#255 Del2: djnz R2,del2
djnz R1,del1 ret
end
III. ANALISA
Percobaan 1.1. Instruksi MOV
o Percobaan 1_1 Dari percobaan 1_1, empat LED menyala yaitu P0.0; P0.1; P0.2; P0.3
Dari program 1_1 diatas awal program dimulai dari 0h, diposisi awal mikro. Kemudian MOV P0,#11110000b adalah mengisi P0 dengan 11110000, bit 1 sebanyak empat berfungsi untuk menghidupkan LED pada P0.0; P0.1; P0.2; P0.3
setelah itu lompat ke start, perintah sjmp adalah Short Jump yang berfungsi untuk melompat ke START. Program ini akan looping terus menerus
o Percobaan 1_1.1
Dari percobaan 1_1.1 LED ke 1 dan ke 5 padam dan LED yang lainnya menyala.
Dari program 1_1.1 diatas awal program dimulai dari 0h, diposisi awal mikro. Kemudian MOV P0,#11h adalah mengisi P0 dengan 11h yang mengakibatkan 6 LED menyala dan 2 LED padam, LED yang padam adalah LED ke 1 dan ke 5.
Setelah itu lompat ke start, perintah sjmp adalah Short Jump yang berfungsi untuk melompat ke START. Program ini akan looping terus menerus
o Percobaan 1_1.2
Dari percobaan 1_1.2 LED ke 2 dan ke 6 padam dan LED yang lainnya menyala.
Dari program 1_1.2 diatas awal program dimulai dari 0h, diposisi awal mikro. Kemudian MOV P0,#22h adalah mengisi P0 dengan 22h yang mengakibatkan 6
LED menyala dan 2 LED padam, LED yang padam adalah LED ke 2 dan ke 6. Setelah itu lompat ke start, perintah sjmp adalah Short Jump yang berfungsi untuk melompat ke START. Program ini akan looping terus menerus
o Percobaan 1_1.3
Dari percobaan 1_1.3 LED ke 3 dan ke 7 padam dan LED yang lainnya menyala. Dari program 1_1.3 diatas awal program dimulai dari 0h, diposisi awal mikro. Kemudian MOV P0,#44h adalah mengisi P0 dengan 44h yang mengakibatkan 6
LED menyala dan 2 LED padam, LED yang padam adalah LED ke 3 dan ke 7. Setelah itu lompat ke start, perintah sjmp adalah Short Jump yang berfungsi untuk
melompat ke START. Program ini akan looping terus menerus
o Percobaan 1_1.4
Dari percobaan 1_1.4 LED ke 4 dan ke 8 padam dan LED yang lainnya menyala. Dari program 1_1.4 diatas awal program dimulai dari 0h, diposisi awal mikro.
Kemudian MOV P0,#88h adalah mengisi P0 dengan 88h yang mengakibatkan 6 LED menyala dan 2 LED padam, LED yang padam adalah LED ke 4 dan ke 8. Setelah itu lompat ke start, perintah sjmp adalah Short Jump yang berfungsi untuk
melompat ke START. Program ini akan looping terus menerus
o Percobaan 1_1.5
Dari percobaan 1_1.5 LED ke 3 dan ke 6 padam dan LED yang lainnya menyala. Dari program 1_1.5 diatas awal program dimulai dari 0h, diposisi awal mikro.
Kemudian MOV P0,#24h adalah mengisi P0 dengan 24h yang mengakibatkan 6 LED menyala dan 2 LED padam, LED yang padam adalah LED ke 3 dan ke 6.
Setelah itu lompat ke start, perintah sjmp adalah Short Jump yang berfungsi untuk melompat ke START. Program ini akan looping terus menerus
o Percobaan 1_1.6
Dari percobaan 1_1.6 LED ke 2, 4, 6, dan 8 padam dan LED yang lainnya
menyala. Dari program 1_1.6 diatas awal program dimulai dari 0h, diposisi awal mikro. Kemudian MOV P0,#0AAh adalah mengisi P0 dengan 0AAh yang
mengakibatkan 4 LED menyala dan 4 LED padam, LED yang padam adalah LED ke 2, 4, 6, dan 8. Setelah itu lompat ke start, perintah sjmp adalah Short Jump yang berfungsi untuk
melompat ke START. Program ini akan looping terus menerus
o Percobaan 1_1.7
Dari percobaan 1_1.7 LED ke 1, 2, 4, 5, 6, dan 8 padam dan LED yang lainnya menyala. Dari program 1_1.7 diatas awal program dimulai dari 0h, diposisi awal
mikro. Kemudian MOV P0,#0BBh adalah mengisi P0 dengan 0BBh yang mengakibatkan 2 LED menyala dan 6 LED padam, LED yang padam adalah LED
ke 1, 2, 4, 5, 6, dan 8. Setelah itu lompat ke start, perintah sjmp adalah Short Jump yang berfungsi untuk melompat ke START. Program ini akan looping terus menerus
Percobaan 1.2. Pembuatan Subrutine Waktu Tunda o Percobaan 1_2
Dari percobaan 1_2 diatas semua LED menyala secara berkedip. Program dimulai dari alamat = 0, kemudian P0 diisi nilai 11111111 setelah itu memenggil subrutin delay kemudian P0 diisi nilai 00000000 setelah itu memanggil subrutin delay,
setelah memanggil subrutin delay dia akan lompat ke start dengan perintah sjmp start, program ini akan looping terus menerus. Fungsi dari call delay adalah
memanggil subrutin delay yang berfungsi memberi jeda pada nyala LED sehingga LED terlihat berkedip
o Percobaan 1_2.1
Dari percobaan 1_2.1 diatas semua LED menyala secara berkedip. Program dimulai dari alamat = 0, kemudian P0 diisi nilai 11111111 Setelah itu memenggil
subrutin delay, kemudian P0 diisi nilai 11111110 yang menyebabkan LED ke 1 berkedip. Setelah itu memanggil subrutin delay, setelah memanggil subrutin delay
dia akan lompat ke start dengan perintah sjmp start, program ini akan looping terus menerus. Fungsi dari call delay adalah memanggil subrutin delay yang berfungsi memberi jeda pada nyala LED sehingga LED terlihat berkedip
o Percobaan 1_2.2
Dari percobaan 1_2.2 diatas semua LED menyala secara berkedip. Program
dimulai dari alamat = 0, kemudian P0 diisi nilai 11111111 Setelah itu memenggil subrutin delay, kemudian P0 diisi nilai 11111100 yang menyebabkan LED ke 1
dan ke 2 berkedip. Setelah itu memanggil subrutin delay, setelah memanggil subrutin delay dia akan lompat ke start dengan perintah sjmp start, program ini akan looping terus menerus. Fungsi dari call delay adalah memanggil subrutin
delay yang berfungsi memberi jeda pada nyala LED sehingga LED terlihat berkedip
o Percobaan 1_2.3
Dari percobaan 1_2.3 diatas semua LED menyala secara berkedip. Program
dimulai dari alamat = 0, kemudian P0 diisi nilai 11111111 Setelah itu memenggil subrutin delay, kemudian P0 diisi nilai 11110000 yang menyebabkan LED ke 1, 2,
3 dan ke 4 berkedip. Setelah itu memanggil subrutin delay, setelah memanggil subrutin delay dia akan lompat ke start dengan perintah sjmp start, program ini akan looping terus menerus. Fungsi dari call delay adalah memanggil subrutin
delay yang berfungsi memberi jeda pada nyala LED sehingga LED terlihat berkedip
Percobaan 1.3. Instruksi Setb dan Clr
o Percobaan 1_3 Dari percobaan 1_3 didapat LED yang menyala adalah LED ke 1, program diatas
dimulai dari alamat = 0, kemudian perintah clr adalah berfungsi untuk mengirimkan logika 0 pada port P0.0 yang mengakibatkan LED ke 1 menyala.
o Percobaan 1_3.1
Dari percobaan 1_3.1 didapat nyala LED berkedip tidak beraturan , program diatas
dimulai dari alamat = 0, kemudian perintah clr adalah berfungsi untuk mengirimkan logika 0 pada port P0.0 sampai P0.7 dan perintah setb adalah
berfungsi untuk mengirimkan logika 1 pada port P0.0 sampai P0.7, dan diberikan delay agar LED menyala seakan akan bergantian.
Percobaan 1.4. Instruksi RL/ RR ( Rotate Left dan Right )
o Percobaan 1.4 Dari program 1.4 diatas didapat nyala LED bergantian dari dari kiri kekanan. Yang mana menggunakan beberapa fungsi yaitu delay untuk memberikan jeda pada
nyala LED, RL adalah untuk berputar kekiri dan RR untuk berputar kekanan. Pada percobaan 1.4 ini nyala LED teratur dari kiri kekanan dengan mengatur waktu
delaynya
IV. FLOW CHART
Percobaan 1.1. Instruksi MOV
o Percobaan 1_1
START
ALAMAT = 0
P0 =
11110000
o Percobaan 1_1.1
START
ALAMAT = 0
P0 = 11h
o Percobaan 1_1.2
START
ALAMAT = 0
P0 = 22h
o Percobaan 1_1.3
START
ALAMAT = 0
P0 = 44h
o Percobaan 1_1.4
START
ALAMAT = 0
P0 = 88h
o Percobaan 1_1.5
START
ALAMAT = 0
P0 = 24h
o Percobaan 1_1.6
START
ALAMAT = 0
P0 =
0AAh
o Percobaan 1_1.7
START
ALAMAT = 0
P0 =
0BBh
Percobaan 1.2. Pembuatan Subrutine Waktu Tunda
o Percobaan 1_2
START
ALAMAT
= 0
P 0 = 1
CALL
DELAY
P 0 = 0
CALL
DELAY
YA
DELAY
R0 = 255
R2 = 255
R2 = R2 - 1
R2 = 0
R1 = R1 - 1
R1 = 0
RET
TIDAK
TIDAK
o Percobaan 1_2.1
START
ALAMAT
= 0
P 0 =
11111111
1
CALL
DELAY
P 0 =
11111110
CALL
DELAY
YA
DELAY
R0 = 255
R2 = 255
R2 = R2 - 1
R2 = 0
R1 = R1 - 1
R1 = 0
RET
TIDAK
TIDAK
o Percobaan 1_2.2
START
ALAMAT
= 0
P 0 =
11111111
1
CALL
DELAY
P 0 =
11111100
CALL
DELAY
YA
DELAY
R0 = 255
R2 = 255
R2 = R2 - 1
R2 = 0
R1 = R1 - 1
R1 = 0
RET
TIDAK
TIDAK
o Percobaan S1_2.3
START
ALAMAT
= 0
P 0 =
11111111
1
CALL
DELAY
P 0 =
11110000
CALL
DELAY
YA
DELAY
R0 = 255
R2 = 255
R2 = R2 - 1
R2 = 0
R1 = R1 - 1
R1 = 0
RET
TIDAK
TIDAK
Percobaan 1.3. Instruksi Setb dan Clr o Percobaan 1_3
START
ALAMAT =
0
P0.0 = 0
o Percobaan 1_3.1
START
ALAMAT =
0
P0.0 – P0.7 = 0
CALL DELAY
P0.0 – P0.7 = 1
DELAY
RET
R1 = 255
R2 = 255
R2 = R2 - 1
R1 = R1 - 1
R2 = 0
R1 = 0YA
TIDAK
TIDAK
Percobaan 1.4. Instruksi RL/ RR ( Rotate Left dan Right )
START
ALAMAT
= 0
A =
11111110b
R0 = 7
GESER
KIRI
R0 = R0 - 1
P0 = A
CALL
DELAY
R0 ≠ 0
R0 = 7
P0 = A
CALL
DELAY
A
A
R0 = R0 - 1
GESER
KANAN
R0 ≠ 0YA
TIDAK
TIDAK
DELAY
R1 = 255
R2 = 255
R2 = R2 - 1
R2 = 1
R1 = R1 - 1
R1 = 1
RET
TIDAK
TIDAK
V. KESIMPULAN
Dari praktikum 1 dapat disimpulkan bahwa mahasiswa mempelajari bagaimana cara
menghidupkan LED, bagaimana struktur mikrokontroller dan memahami beberapa instruksi
assembly dasar, MOV, Setb, Clr, RL dan RR.
MOV = memindahkan data
- Mov a, b data dari b dimasukkan di a
- Mov a,#2 a diisi oleh angka 2
- Mov a,2 a diisi oleh datanya yang ada dialamat 2
- Mov a,@b b isinya alamatnya apa? Kemudian alamat tersebut ditunjuk dan
data dari alamt yang ada di b diisikan di a
Setb = membuat / memberikan logika 1
Clr = memberikan / membuat logika 0
RL = perintah untuk geser kiri
RR = perintah untuk geser kanan