LAPORAN PRAKTIKUM1_UTS

35
LAPORAN PRAKTIKUM MIKROKONTROLER Disusun oleh : DENAR REGATA AKBI 05560164 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG 2008

Transcript of LAPORAN PRAKTIKUM1_UTS

Page 1: LAPORAN PRAKTIKUM1_UTS

LAPORAN

PRAKTIKUM MIKROKONTROLER

Disusun oleh :

DENAR REGATA AKBI

05560164

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MALANG

2008

Page 2: LAPORAN PRAKTIKUM1_UTS

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.

Page 3: LAPORAN PRAKTIKUM1_UTS

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

Page 4: LAPORAN PRAKTIKUM1_UTS

o Percobaan 1_1.2

ORG 0h start : MOV p0,#22h ;isi P0 dg 22h

sjmp start ;lompat ke start

end

Page 5: LAPORAN PRAKTIKUM1_UTS

o Percobaan 1_1.3

ORG 0h

start : MOV p0,#44h ;isi P0 dg 44h sjmp start ;lompat ke start

end

Page 6: LAPORAN PRAKTIKUM1_UTS

o Percobaan 1_1.4

ORG 0h start : MOV p0,# 88h ;isi P0 dg 88h

sjmp start ;lompat ke start end

Page 7: LAPORAN PRAKTIKUM1_UTS

o Percobaan 1_1.5

ORG 0h start : MOV p0,#24h ;isi P0 dg 24h

sjmp start ;lompat ke start end

Page 8: LAPORAN PRAKTIKUM1_UTS

o Percobaan 1_1.6

ORG 0h start : MOV p0,#0AAh ;isi P0 dg0AAh sjmp start ;lompat ke start

end

Page 9: LAPORAN PRAKTIKUM1_UTS

o Percobaan 1_1.7

ORG 0h start : MOV p0,#0BBh ;isi P0 dg 0BBh

sjmp start ;lompat ke start end

Page 10: LAPORAN PRAKTIKUM1_UTS

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

Page 11: LAPORAN PRAKTIKUM1_UTS

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

Page 12: LAPORAN PRAKTIKUM1_UTS
Page 13: LAPORAN PRAKTIKUM1_UTS

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

Page 14: LAPORAN PRAKTIKUM1_UTS

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

Page 15: LAPORAN PRAKTIKUM1_UTS

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

Page 16: LAPORAN PRAKTIKUM1_UTS

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

Page 17: LAPORAN PRAKTIKUM1_UTS

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

Page 18: LAPORAN PRAKTIKUM1_UTS
Page 19: LAPORAN PRAKTIKUM1_UTS

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

Page 20: LAPORAN PRAKTIKUM1_UTS

Del1: mov R2,#255 Del2: djnz R2,del2

djnz R1,del1 ret

end

Page 21: LAPORAN PRAKTIKUM1_UTS
Page 22: LAPORAN PRAKTIKUM1_UTS
Page 23: LAPORAN PRAKTIKUM1_UTS
Page 24: LAPORAN PRAKTIKUM1_UTS

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.

Page 25: LAPORAN PRAKTIKUM1_UTS

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

Page 26: LAPORAN PRAKTIKUM1_UTS

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

Page 27: LAPORAN PRAKTIKUM1_UTS

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

Page 28: LAPORAN PRAKTIKUM1_UTS

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

Page 29: LAPORAN PRAKTIKUM1_UTS

o Percobaan 1_1.6

START

ALAMAT = 0

P0 =

0AAh

o Percobaan 1_1.7

START

ALAMAT = 0

P0 =

0BBh

Page 30: LAPORAN PRAKTIKUM1_UTS

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

Page 31: LAPORAN PRAKTIKUM1_UTS

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

Page 32: LAPORAN PRAKTIKUM1_UTS

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

Page 33: LAPORAN PRAKTIKUM1_UTS

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

Page 34: LAPORAN PRAKTIKUM1_UTS

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

Page 35: LAPORAN PRAKTIKUM1_UTS

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