You are on page 1of 52

LAPORAN

PRAKTIKUM MIKROKONTROLER

Disusun oleh :

DENAR REGATA AKBI


05560164

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG

2008
PERCOBAAN 3
DISPLAY 7 SEGMEN

I. TUJUAN:
1. Mahasiswa memahami rangkaian interface mikrokontroller dengan 7 segmen
2. Mahasiswa dapat memahami program assembly untuk menampilkan data ke 7 segment
3. Mahasiswa memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, dan waktu tunda.

(a)

(b)

Tabel 3.1. Tabel kebenaran 74LS138

INPUT
ENABLE OUTPUT
SELECTOR

C B A G1 /G2A /G2B Y1 Y2 Y2 Y3 Y4 Y5 Y6 Y7

0 0 0 1 0 0 0 1 1 1 1 1 1 1

0 0 1 1 0 0 1 0 1 1 1 1 1 1
0 1 0 1 0 0 1 1 0 1 1 1 1 1

0 1 1 1 0 0 1 1 1 0 1 1 1 1

1 0 0 1 0 0 1 1 1 1 0 1 1 1

1 0 1 1 0 0 1 1 1 1 1 0 1 1

1 1 0 1 0 0 1 1 1 1 1 1 0 1

1 1 1 1 0 0 1 1 1 1 1 1 1 0

Pada tabel kebenaran tersebut tampak bahwa seven segmen yang hidup tergantung pada output
dari dekoder 74LS138, yang sedang mengeluarkan logika low ”0”, sehingga dari 8 buah display
tersebut, selalu hanya satu display yang akan dihidupkan. Agar display tampak nyala secara
bersamaan maka ketiga display tersebut harus dihidupkan secara bergantian dengan waktu tunda
tertentu.
Pada gambar tersebut seven segment commont anoda dikendalikan dengan menggunakan
transistor PNP melalui decoder 74LS138, apabila ada logika low pada basis transistor, maka 7
segment akan nyala dan sebaliknya akan padam.

Gambar 3.2 Modul 7 Segment tunggal


Tabel 3.2. Data Display 7 Segmen

P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 Display

G F e D c B A

1 0 0 0 0 0 0 0

1 1 1 1 0 0 1 1

0 1 0 0 1 0 0 2

0 1 1 0 0 0 0 3

: : : : : : : :

0 0 0 1 0 0 0 A

0 0 0 0 0 1 1 B

Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen, harus dikirimkan data
logika low ”0” dan sebaliknya untuk mematikan segmen, harus dikirimkan data logika high ”1”.
II. HASIL PRAKTIKUM III

Percobaan 3.1. Tulis Sebuah Karakter pada 7 Segmen ( Display 1 )


o Percobaan 3.1

org 0h
start : clr P3.5 ;P3.5= '0'
clr P3.6 ;P3.6= '0'
clr P3.7 ;P3.7= '0'
mov P2,#11110111b ;Cetak karakter'A'
sjmp start ; Lompat ke start
end

Print Screen :

o Percobaan 3.1.1
org 0h
start: setb P3.5 ;P3.5=A='1'
clr P3.6 ;P3.6=B='0'
clr P3.7 ;P3.7=C='0'
mov P2,#10111001b ; CetakKarakter'C'
sjmp start ; Lompat ke start
end
Print Screen:

o Percobaan 3.1.2
org 0h
start: clr P3.5 ;P3.5=A='0'
clr P3.6 ;P3.6=B='0'
setb P3.7 ;P3.7=C='1'
mov P2,#11111001b ; CetakKarakter'E'
sjmp start ; Lompat ke start
end

Print Screen:
o Percobaan 3.1.3
org 0h
start: setb P3.5 ;P3.5=A='1'
setb P3.6 ;P3.6=B='1'
setb P3.7 ;P3.7=C='1'
mov P2,#11001111b ; CetakKarakter'3'
sjmp start ; Lompat ke start
end

Print Screen:

Percobaan 3.2. Tulis Tiga Karakter pada 7 Segmen


o Percobaan 3.2
org 0h
start : clr P3.5 ;P3.5= '0'
clr P3.6 ;P3.6= '0'
clr P3.7 ;P3.7= '0'
mov P2,#11110111b;Cetak karakter'A'
call delay ;panggil waktu tunda
setb P3.5 ;P3.5='1'
clr P3.6 ;P3.6='0'
clr P3.7 ;P3.7='0'
mov P2,#11111100b;cetak karakter'B'
call delay ;Panggil waktu tunda
clr P3.5 ;P3.5='0'
setb P3.6 ;P3.6='1'
clr P3.7 ;P3.7='0'
mov P2,#10111001b;Cetak karakter'C'
call delay ;Panggil waktu tunda
sjmp start ;lompat ke start
;=============================================
;subroutime dekay created to rise delay time
;==============================================
delay:mov R1,#255
del1:mov R2,#255
del2:djnz R2,del2
djnz R1,del1
ret
end

Print Screen:
o Percobaan 3.2.1
Org 0h
start :clr P3.5 ;P3.5 = '0'
clr P3.6 ;P3.6 = '0'
clr P3.7 ;P3.7 = '0'

mov P2,#11111001b ;cetak karakter 'E'


call delay ;panggil waktu tunda
setb P3.5 ; P3.5='1'
clr P3.6 ; P3.6='0'
clr P3.7 ; P3.7='0'
mov P2,#11110001b ; cetak karakter 'F'
call delay ; panggil waktu tunda
clr P3.5 ; P3.5 = '0'
setb P3.6 ; P3.6 = '1'
clr P3.7 ; P3.7 = '0'
mov P2,#11111101b ; cetak karakter 'G'
call delay ; panggil waktu tunda
sjmp start ; lompat ke start
;======================================
;sub routine delay created to rise delay time
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2, del2
djnz R1, del1
ret
end
Print Screen:
o Percobaan 3.2.2
Org 0h
start :setb P3.5 ;P3.5 = '1'
setb P3.6 ;P3.6 = '1'
clr P3.7 ;P3.7 = '0'
mov P2,#11110110b ;cetak karakter 'h'
call delay ;panggil waktu tunda
clr P3.5 ; P3.5='0'
clr P3.6 ; P3.6='0'
setb P3.7 ; P3.7='1'
mov P2,#10011110b ; cetak karakter 'j'
call delay ; panggil waktu tunda
setb P3.5 ; P3.5 = '1'
clr P3.6 ; P3.6 = '0'
setb P3.7 ; P3.7 = '1'
mov P2,#10111000b ; cetak karakter 'L'
call delay ; panggil waktu tunda
sjmp start ; lompat ke start
;=====================================
;sub routine delay created to rise delay time
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2, del2
djnz R1, del1
ret
end

Print Screen:
o Percobaan 3.2.3
Org 0h
start :setb P3.5 ;P3.5 = '1'
clr P3.6 ;P3.6 = '0'
setb P3.7 ;P3.7 = '1'
mov P2,#10000110b ;cetak karakter '1'
call delay ;panggil waktu tunda
clr P3.5 ; P3.5='0'
setb P3.6 ; P3.6='1'
setb P3.7 ; P3.7='1'
mov P2,#11110111b ; cetak karakter 'a'
call delay ; panggil waktu tunda
setb P3.5 ; P3.5 = '1'
setb P3.6 ; P3.6 = '1'
setb P3.7 ; P3.7 = '1'
mov P2,#11001111b ; cetak karakter '3'
call delay ; panggil waktu tunda
sjmp start ; lompat ke start
;=====================================
;sub routine delay created to rise delay time
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2, del2
djnz R1, del1
ret
end
Print Screen:
Percobaan 3.3. Tulis 8 Karakte r pada 7 Segmen
o Percobaan 3.3
org 0h
start:
clr P3.5
clr P3.6
clr P3.7
mov P2,#00000110b
call delay
setb P3.5
clr P3.6
clr P3.7
mov P2,#11011011b
call delay
clr P3.5
setb P3.6
clr P3.7
mov P2,#11001111b
call delay
setb P3.5
setb P3.6
clr P3.7
mov P2,#11100110b
call delay
clr P3.5
clr P3.6
setb P3.7
mov P2,#11101101b
call delay
setb P3.5
clr P3.6
setb P3.7
mov P2,#11111101b
call delay
clr P3.5
setb P3.6
setb P3.7
mov P2,#10000111b
call delay
setb P3.5
setb P3.6
setb P3.7
mov P2,#11111111b
call delay
sjmp start
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Print Screen:
o Percobaan 3.3.1
org 0h
start:
clr P3.5
clr P3.6
clr P3.7
mov P2,#10111000b
call delay
setb P3.5
clr P3.6
clr P3.7
mov P2,#11110111b
call delay
clr P3.5
setb P3.6
clr P3.7
mov P2,#11111100b
call delay
setb P3.5
setb P3.6
clr P3.7
mov P2,#11001111b
call delay
clr P3.5
clr P3.6
setb P3.7
mov P2,#10000110b
call delay
setb P3.5
clr P3.6
setb P3.7
mov P2,#11111000b
call delay
clr P3.5
setb P3.6
setb P3.7
mov P2,#11010000b
call delay
setb P3.5
setb P3.6
setb P3.7
mov P2,#11011100b
call delay
sjmp start
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Print Screen:
o Percobaan 3.3.2
org 0h
start:clr P3.5
clr P3.6
clr P3.7
mov P2,#11110110b
call delay
setb P3.5
clr P3.6
clr P3.7
mov P2,#11110111b
call delay
clr P3.5
setb P3.6
clr P3.7
mov P2,#10110000b
call delay
setb P3.5
setb P3.6
clr P3.7
mov P2,#10110000b
call delay
clr P3.5
clr P3.6
setb P3.7
mov P2,#11011100b
call delay
setb P3.5
clr P3.6
setb P3.7
mov P2,#11111011b
call delay
clr P3.5
setb P3.6
setb P3.7
mov P2,#10011100b
call delay
setb P3.5
setb P3.6
setb P3.7
mov P2,#11101110b
call delay
sjmp start
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Print Screen:
o Percobaan 3.3.3
org 0h
start:clr P3.5
clr P3.6
clr P3.7
mov P2,#11101110b
call delay
setb P3.5
clr P3.6
clr P3.7
mov P2,#11011100b
call delay
clr P3.5
setb P3.6
clr P3.7
mov P2,#10011100b
call delay
setb P3.5
setb P3.6
clr P3.7
mov P2,#11010000b
call delay
clr P3.5
clr P3.6
setb P3.7
mov P2,#11010100b
call delay
setb P3.5
clr P3.6
setb P3.7
mov P2,#11110111b
call delay
clr P3.5
setb P3.6
setb P3.7
mov P2,#11001111b
call delay
setb P3.5
setb P3.6
setb P3.7
mov P2,#11111011b
call delay
sjmp start
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end
Print Screen:
III. ANALISA

Percobaan 3.1. Tulis Sebuah Karakter pada 7 Segmen ( Display 1 )


o Percobaan 3.1
Pada percobaan 3.1 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter’A’ pada posisi awal atau index pertama pada display.
Untuk menentukan Posisi karakter‘A’ pada display kita harus menuliskan sintax’clr’
pada P3.5, P3.6, P3.7, sintax’clr’ ini dimaksudkan untuk mengeset/memberikan logika
0, sebagai contoh:

Sedangkan untuk Membentuk karakter’A’ kita harus menuliskan sintax ’MOV


P2,#11110111b’ .Berhubung dalam praktikum ini kita menggunakan’Display
Commond Catoda’ jadi untuk menyalakan display Commond Catoda kita memberikan
nilai atau bit’1’. Sebagai contoh:

F B
G

E C
H
D

Dimisalkan pada gambar diatas, jadi dengan memberikan nilai / bit 1 pada
A,B,C,E,F,G,H sedangkan D diberikan nilai / bit 0, maka akan terbentuk karakter’A’

o Percobaan 3.1.1
Pada percobaan 3.1.1 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter’C’ pada posisi atau index kedua pada display. Untuk
menentukan Posisi karakter‘C’ pada display kita harus menuliskan sintax ’setb’ pada
P3.5 sintax ’clr’ pada P3.6, P3.7, sintax ’setb’ ini dimaksudkan untuk
mengeset/memberikan logika’1’, sedangkan sintax ’clr’ ini dimaksudkan untuk
mengeset/memberikan logika’0’, sebagai contoh:
Sedangkan untuk Membentuk karakter’C’ kita harus menuliskan sintax ‘MOV
P2,#10111001b’ .Berhubung dalam praktikum ini kita menggunakan’Display
Commond Catoda’ jadi untuk menyalakan display Commond Catoda kita memberikan
nilai atau bit’1’. Sebagai contoh:

F B
G

E C
H
D

Dimisalkan pada gambar diatas, jadi dengan memberikan nilai / bit 1 pada A,D,E,F,H
sedangkan B,C,G diberikan nilai / bit 0, maka akan terbentuk karakter’C’

o Percobaan 3.1.2
Pada percobaan 3.1.2 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter’E’ pada posisi atau index kelima pada display. Untuk
menentukan Posisi karakter‘E’ pada display kita harus menuliskan sintax ’setb’ pada
P3.7 sintax ’clr’ pada P3.5, P3.6, sintax ’setb’ ini dimaksudkan untuk
mengeset/memberikan logika’1’, sedangkan sintax ’clr’ ini dimaksudkan untuk
mengeset/memberikan logika’0’, sebagai contoh:
Sedangkan untuk Membentuk karakter’E’ kita harus menuliskan sintax ’MOV
P2,#11111001b’ .Berhubung dalam praktikum ini kita menggunakan’Display
Commond Catoda’ jadi untuk menyalakan display Commond Catoda kita
memberikan nilai atau bit’1’. Sebagai contoh:

F B
G

E C
H
D

Dimisalkan pada gambar diatas, jadi dengan memberikan nilai / bit 1 pada
A,D,E,F,G,H sedangkan B,C diberikan nilai / bit 0, maka akan terbentuk karakter’E’

o Percobaan 3.1.3
Pada percobaan 3.1.3 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter’3’ pada posisi atau index ke delapan pada display. Untuk
menentukan Posisi karakter‘3’ pada display kita harus menuliskan sintax ’setb’ pada
P3.5, P3.6, P3.7 sintax ’setb’ ini dimaksudkan untuk mengeset/memberikan logika’1’,
sebagai contoh:

Sedangkan untuk Membentuk karakter’3’ kita harus menuliskan sintax ’MOV


P2,#11001111b’ .Berhubung dalam praktikum ini kita menggunakan’Display
Commond Catoda’ jadi untuk menyalakan display Commond Catoda kita
memberikan nilai atau bit’1’. Sebagai contoh:

F B
G

E C
H
D
Dimisalkan pada gambar diatas, jadi dengan memberikan nilai / bit 1 pada
A,B,C,D,G,H sedangkan E,F diberikan nilai / bit 0, maka akan terbentuk karakter’3’

Percobaan 3.2. Tulis Tiga Karakter pada 7 Segmen


o Percobaan 3.2
Pada percobaan 3.2 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter’A,B,C’ secara bergantian pada display dan posisi index
pada masing – masing karakter berbeda, sehingga didapat nyala karakter A,B,C secara
bergantian dengan mengeset DELAY.
Untuk membentuk karakter A,B,C kita harus menuliskan sintax ‘MOV’ sebanyak tiga
kali, contoh : ‘MOV P2,#11110111B’ untuk membentuk karakter A, ‘MOV
P2,#11111100B’ untuk membentuk karakter b, ‘MOV P2,#10111001B’ untuk
membentuk karakter C.
Untuk menentukan masing – masing karakter sehingga menempati posisi atau index
yang berbeda kita harus mengeset atau menuliskan sintax SETB dan CLR sebagai
contoh :
Karakter P3.5 P3.6 P3.7 Posisi/index
ke
A 0 0 0 1
b 1 0 0 2
C 0 1 0 3

NB : untuk memberikan logika 1 pada P3.5, P3.6, atau P3.7 kita harus menuliskan /
memberikan sintax SETB, sebaliknya untuk memberikan logika 0 pada P3.5, P3.6, atau
P3.7 kita harus menuliskan / memberikan sintax CLR.

Untuk mengatur nyala antara karakter satu dengan yang lain sehingga terlihat nyalanya
bergantian kita harus mengeset delay, contoh : delay: mov R1,#255

o Percobaan 3.2.1
Pada percobaan 3.2.1 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter’E,F,G’ secara bergantian pada display dan posisi index
pada masing – masing karakter berbeda, sehingga didapat nyala karakter E,F,G secara
bergantian dengan mengeset DELAY.
Untuk membentuk karakter E,F,G kita harus menuliskan sintax ‘MOV’ sebanyak tiga
kali, contoh : ‘MOV P2,#11111001B’ untuk membentuk karakter E, ‘MOV
P2,#11110001B’ untuk membentuk karakter F, ‘MOV P2,#11111101B’ untuk
membentuk karakter G.
Untuk menentukan masing – masing karakter sehingga menempati posisi atau index
yang berbeda kita harus mengeset atau menuliskan sintax SETB dan CLR sebagai
contoh :

Karakter P3.5 P3.6 P3.7 Posisi/index


ke
A 0 0 0 1
b 1 0 0 2
C 0 1 0 3

NB : untuk memberikan logika 1 pada P3.5, P3.6, atau P3.7 kita harus menuliskan /
memberikan sintax SETB, sebaliknya untuk memberikan logika 0 pada P3.5, P3.6, atau
P3.7 kita harus menuliskan / memberikan sintax CLR.

Untuk mengatur nyala antara karakter satu dengan yang lain sehingga terlihat nyalanya
bergantian kita harus mengeset delay, contoh : delay: mov R1,#255

o Percobaan 3.2.2
Pada percobaan 3.2.2 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter’H,J,L’ secara bergantian pada display dan posisi index
pada masing – masing karakter berbeda, sehingga didapat nyala karakter H,J,L secara
bergantian dengan mengeset DELAY.
Untuk membentuk karakter H,J,L kita harus menuliskan sintax ‘MOV’ sebanyak tiga
kali, contoh : ‘MOV P2,#11110110B’ untuk membentuk karakter H, ‘MOV
P2,#10011110B’ untuk membentuk karakter J, ‘MOV P2,#10111000B’ untuk
membentuk karakter L
Untuk menentukan masing – masing karakter sehingga menempati posisi atau index
yang berbeda kita harus mengeset atau menuliskan sintax SETB dan CLR sebagai
contoh :
Karakter P3.5 P3.6 P3.7 Posisi/index
ke
H 1 1 0 4
J 0 0 1 5
L 1 0 1 6

NB : untuk memberikan logika 1 pada P3.5, P3.6, atau P3.7 kita harus menuliskan /
memberikan sintax SETB, sebaliknya untuk memberikan logika 0 pada P3.5, P3.6, atau
P3.7 kita harus menuliskan / memberikan sintax CLR.

Untuk mengatur nyala antara karakter satu dengan yang lain sehingga terlihat nyalanya
bergantian kita harus mengeset delay, contoh : delay: mov R1,#255

o Percobaan 3.2.3
Pada percobaan 3.2.3 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter’1,a,3’ secara bergantian pada display dan posisi index pada
masing – masing karakter berbeda, sehingga didapat nyala karakter 1,a,3 secara
bergantian dengan mengeset DELAY.
Untuk membentuk karakter H,J,L kita harus menuliskan sintax ‘MOV’ sebanyak tiga
kali, contoh : ‘MOV P2,#10000110B’ untuk membentuk karakter 1, ‘MOV
P2,#11110111B’ untuk membentuk karakter A, ‘MOV P2,#11001111B’ untuk
membentuk karakter 3

Untuk menentukan masing – masing karakter sehingga menempati posisi atau index
yang berbeda kita harus mengeset atau menuliskan sintax SETB dan CLR sebagai
contoh :

Karakter P3.5 P3.6 P3.7 Posisi/index


ke
1 1 0 1 6
A 0 1 1 7
3 1 1 1 8
NB : untuk memberikan logika 1 pada P3.5, P3.6, atau P3.7 kita harus menuliskan /
memberikan sintax SETB, sebaliknya untuk memberikan logika 0 pada P3.5, P3.6, atau
P3.7 kita harus menuliskan / memberikan sintax CLR.

Untuk mengatur nyala antara karakter satu dengan yang lain sehingga terlihat nyalanya
bergantian kita harus mengeset delay, contoh : delay: mov R1,#255

Percobaan 3.3. Tulis 8 Karakte r pada 7 Segmen


o Percobaan 3.3
Pada percobaan 3.3 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter angka dimulai dari 1 sampai 8 secara bergantian. Karakter
angka 1 menempati display pertama dan seterusnya sampai karakter angka 8
menempati display ke delapan. Untuk menentukan posisi display tiap karakter angka
sehingga menempati posisi atau index yang diinginkan kita harus mengeset atau
menuliskan sintax SETB dan CLR sebagai adalah sbb :

Karakter P3.5 P3.6 P3.7 Posisi/index


ke
1 0 0 0 1
2 1 0 0 2
3 0 1 0 3
4 1 1 0 4
5 0 0 1 5
6 1 0 1 6
7 0 1 1 7
8 1 1 1 8

NB : untuk memberikan logika 1 pada P3.5, P3.6, atau P3.7 kita harus menuliskan /
memberikan sintax SETB, sebaliknya untuk memberikan logika 0 pada P3.5, P3.6, atau
P3.7 kita harus menuliskan / memberikan sintax CLR.
Untuk mengatur nyala antara karakter satu dengan yang lain sehingga terlihat nyalanya
bergantian kita harus mengeset delay, contoh : delay: mov R1,#255

o Percobaan 3.3.1
Pada percobaan 3.3.1 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter ’Labmikro’ secara bergantian. Karakter ‘L’ akan
menempati display pertama dan seterusnya sampai karakter ‘o’ menempati display ke
delapan. Untuk menentukan posisi display tiap karakter sehingga menempati posisi atau
index yang diinginkan kita harus mengeset atau menuliskan sintax SETB dan CLR
sebagai adalah sbb :

Karakter P3.5 P3.6 P3.7 Posisi/index


ke
L 0 0 0 1
A 1 0 0 2
b 0 1 0 3
m 1 1 0 4
i 0 0 1 5
k 1 0 1 6
r 0 1 1 7
o 1 1 1 8

NB : untuk memberikan logika 1 pada P3.5, P3.6, atau P3.7 kita harus menuliskan /
memberikan sintax SETB, sebaliknya untuk memberikan logika 0 pada P3.5, P3.6, atau
P3.7 kita harus menuliskan / memberikan sintax CLR.
Untuk mengatur nyala antara karakter satu dengan yang lain sehingga terlihat nyalanya
bergantian kita harus mengeset delay, contoh : delay: mov R1,#255

o Percobaan 3.3.2
Pada percobaan 3.3.2 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter ’HAlloguy’ secara bergantian. Karakter ‘H’ akan
menempati display pertama dan seterusnya sampai karakter ‘y’ menempati display ke
delapan. Untuk menentukan posisi display tiap karak ter sehingga menempati posisi atau
index yang diinginkan kita harus mengeset atau menuliskan sintax SETB dan CLR
sebagai adalah sbb :

Karakter P3.5 P3.6 P3.7 Posisi/index


ke
H 0 0 0 1
A 1 0 0 2
l 0 1 0 3
l 1 1 0 4
o 0 0 1 5
g 1 0 1 6
u 0 1 1 7
y 1 1 1 8

NB : untuk memberikan logika 1 pada P3.5, P3.6, atau P3.7 kita harus menuliskan /
memberikan sintax SETB, sebaliknya untuk memberikan logika 0 pada P3.5, P3.6, atau
P3.7 kita harus menuliskan / memberikan sintax CLR.
Untuk mengatur nyala antara karakter satu dengan yang lain sehingga terlihat nyalanya
bergantian kita harus mengeset delay, contoh : delay: mov R1,#255

o Percobaan 3.3.3
Pada percobaan 3.3.3 program dimulai pada ORG(Origin) 0h yang mana program ini
akan menampilkan karakter ’YournAme’ secara bergantian. Karakter ‘Y’ akan
menempati display pertama dan seterusnya sampai karakter ‘e’ menempati display ke
delapan. Untuk menentukan posisi display tiap karakter sehingga menempati posisi atau
index yang diinginkan kita harus mengeset atau menuliskan sintax SETB dan CLR
sebagai adalah sbb :

Karakter P3.5 P3.6 P3.7 Posisi/index


ke
Y 0 0 0 1
o 1 0 0 2
u 0 1 0 3
r 1 1 0 4
n 0 0 1 5
A 1 0 1 6
m 0 1 1 7
e 1 1 1 8

NB : untuk memberikan logika 1 pada P3.5, P3.6, atau P3.7 kita harus menuliskan /
memberikan sintax SETB, sebaliknya untuk memberikan logika 0 pada P3.5, P3.6, atau
P3.7 kita harus menuliskan / memberikan sintax CLR.

Untuk mengatur nyala antara karakter satu dengan yang lain sehingga terliha t nyalanya
bergantian kita harus mengeset delay, contoh : delay: mov R1,#255
IV. FLOWCHART

Percobaan 3.1. Tulis Sebuah Karakter pada 7 Segmen ( Display 1 )


o Percobaan 3.1
START

INISIALISASI
AWAL
ALAMAT 0h

AKTIFKAN
DIGIT 1 PADA
7 SEGMENT

CETAK
KARAKTER
“A”

o Percobaan 3.1.1
START

INISIALISASI
AWAL
ALAMAT 0h

AKTIFKAN
DIGIT 2 PADA
7 SEGMENT

CETAK
KARAKTER
“C”

o Percobaan 3.1.2
START

INISIALISASI
AWAL
ALAMAT 0h

AKTIFKAN
DIGIT 5 PADA
7 SEGMENT

CETAK
KARAKTER
“E”
o Percobaan 3.1.3
START

INISIALISASI
AWAL ALAMAT
0h

AKTIFKAN
DIGIT 8 PADA 7
SEGMENT

CETAK ANGKA
“3”

Percobaan 3.2. Tulis Tiga Karakter pada 7 Segmen


o Percobaan 3.2
DELAY

R1 = 255
START

R2 = 255
INISIALISASI
AWAL ALAMAT D E
0h
R2 = R2 - 1

AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 1 PADA DIGIT 2 PADA DIGIT 3 PADA
7 SEGMENT 7 SEGMENT 7 SEGMENT YA
R2 = 0

TIDAK
CETAK CETAK CETAK
KARAKTER “A” KARAKTER “B” KARAKTER “C” R1 = R1 - 1

DELAY DELAY DELAY YA


R1 = 0

TIDAK
D E RET
o Percobaan 3.2.1
DELAY

R1 = 255
START

R2 = 255
INISIALISASI
AWAL ALAMAT D E
0h
R2 = R2 - 1

AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 1 PADA DIGIT 2 PADA DIGIT 3 PADA
7 SEGMENT 7 SEGMENT 7 SEGMENT YA
R2 = 0

TIDAK
CETAK CETAK CETAK
KARAKTER “E” KARAKTER “F” KARAKTER “G” R1 = R1 - 1

DELAY DELAY DELAY YA


R1 = 0

TIDAK
D E RET

o Percobaan 3.2.2
DELAY

R1 = 255
START

R2 = 255
INISIALISASI
AWAL ALAMAT D E
0h
R2 = R2 - 1

AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 4 PADA DIGIT 5 PADA DIGIT 6 PADA
7 SEGMENT 7 SEGMENT 7 SEGMENT YA
R2 = 0

TIDAK
CETAK CETAK CETAK
KARAKTER “H” KARAKTER “J” KARAKTER “L” R1 = R1 - 1

DELAY DELAY DELAY YA


R1 = 0

TIDAK
D E RET
o Percobaan 3.2.3
DELAY

R1 = 255
START

R2 = 255
INISIALISASI
AWAL ALAMAT D E
0h
R2 = R2 - 1

AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 6 PADA DIGIT 7 PADA DIGIT 8 PADA
7 SEGMENT 7 SEGMENT 7 SEGMENT YA
R2 = 0

TIDAK
CETAK CETAK CETAK
KARAKTER “1” KARAKTER “A” KARAKTER “3” R1 = R1 - 1

DELAY DELAY DELAY YA


R1 = 0

TIDAK
D E RET

Percobaan 3.3. Tulis 8 Karakte r pada 7 Segmen


o Percobaan 3.2
START

INISIALISASI
AWAL D E N
ALAMAT 0h

AKTIFKAN AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 1 PADA DIGIT 3 PADA DIGIT 5 PADA DIGIT 7 PADA
7 SEGMENT 7 SEGMENT 7 SEGMENT 7 SEGMENT

DELAY
CETAK CETAK CETAK CETAK
KARAKTER KARAKTER KARAKTER KARAKTER
“1” “3” “5” “7” R1 = 255

DELAY DELAY DELAY R2 = 255


DELAY

R2 = R2 - 1
AKTIFKAN AKTIFKAN AKTIFKAN AKTIFKAN
DIGIT 2 PADA DIGIT 4 PADA DIGIT 6 PADA DIGIT 8 PADA
7 SEGMENT 7 SEGMENT 7 SEGMENT 7 SEGMENT
YA
R2 = 0

CETAK CETAK CETAK CETAK


KARAKTER KARAKTER KARAKTER TIDAK
KARAKTER
“2” “4” “6” “8”
R1 = R1 - 1

DELAY DELAY DELAY DELAY YA


R1 = 0

TIDAK
D E N
RET
o Percobaan 3.2.1
START

INISIALISASI
AWAL D E N
ALAMAT 0h

AKTIFKAN AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 1 PADA DIGIT 3 PADA DIGIT 5 PADA DIGIT 7 PADA DELAY
7 SEGMENT 7 SEGMENT 7 SEGMENT 7 SEGMENT

CETAK CETAK R1 = 255


CETAK CETAK
KARAKTER KARAKTER KARAKTER
KARAKTER “I”
“L” “B” “R”
R2 = 255

DELAY DELAY DELAY DELAY


R2 = R2 - 1

AKTIFKAN AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 2 PADA DIGIT 4 PADA DIGIT 6 PADA DIGIT 8 PADA
YA
7 SEGMENT 7 SEGMENT 7 SEGMENT 7 SEGMENT R2 = 0

CETAK CETAK CETAK TIDAK


CETAK
KARAKTER KARAKTER KARAKTER KARAKTER
“A” “K” “O” R1 = R1 - 1
“M”

DELAY DELAY DELAY DELAY YA


R1 = 0

TIDAK
D E N
RET
o Percobaan 3.2.2

START

INISIALISASI
AWAL D E N
ALAMAT 0h

AKTIFKAN AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 1 PADA DIGIT 3 PADA DIGIT 5 PADA DIGIT 7 PADA DELAY
7 SEGMENT 7 SEGMENT 7 SEGMENT 7 SEGMENT

R1 = 255
CETAK CETAK CETAK
CETAK
KARAKTER KARAKTER KARAKTER
KARAKTER “L”
“H” “O” “U”
R2 = 255

DELAY DELAY DELAY DELAY


R2 = R2 - 1

AKTIFKAN AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 2 PADA DIGIT 4 PADA DIGIT 6 PADA DIGIT 8 PADA YA
7 SEGMENT 7 SEGMENT 7 SEGMENT 7 SEGMENT R2 = 0

TIDAK
CETAK CETAK CETAK
CETAK KARAKTER KARAKTER
KARAKTER
KARAKTER “L” “G” “Y”
R1 = R1 - 1
“A”

DELAY DELAY DELAY DELAY YA


R1 = 0

TIDAK
D E N
RET
o Percobaan 3.2.3
START

INISIALISASI
AWAL D E N
ALAMAT 0h

AKTIFKAN AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 1 PADA DIGIT 3 PADA DIGIT 5 PADA DIGIT 7 PADA
7 SEGMENT 7 SEGMENT 7 SEGMENT 7 SEGMENT

CETAK CETAK CETAK CETAK


KARAKTER KARAKTER KARAKTER KARAKTER
“Y” “U” “N” “M”

DELAY DELAY DELAY DELAY

AKTIFKAN AKTIFKAN AKTIFKAN AKTIFKAN


DIGIT 2 PADA DIGIT 4 PADA DIGIT 6 PADA DIGIT 8 PADA
7 SEGMENT 7 SEGMENT 7 SEGMENT 7 SEGMENT

CETAK CETAK CETAK CETAK


KARAKTER KARAKTER KARAKTER KARAKTER
“O” “R” “A” “E”

DELAY DELAY DELAY DELAY

D E N

DELAY

R1 = 255

R2 = 255

R2 = R2 - 1

YA
R2 = 0

TIDAK

R1 = R1 - 1

YA
R1 = 0

TIDAK

RET
V. KESIMPULAN
 ORG ( ORIGINAL )
ORG singkatan dari ORIGINAL adalah perintah pada assembler agar berikutnya assembler
bekerja pada memori-program nomor yang disebut di belakang ORG.
Sebagai contoh :
org 0h

end
(dalam hal ini meminta assembler berikutnya bekerja pada memori-program nomor 0h / atau program
dimulai pada 0h).

 MOV ( MOVE )
MOV merupakan singkatan dari MOVE artinya memindahkan data
Sebagai contoh :
- 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 alamat
b yang telah ditunjuk diisikan di a

 SET-B & Clr


Set b  membuat / memberikan logika 1
Clr  membuat / memberikan logika 0

 SUB-RUTIN
Sub-rutin merupakan suatu potong program yang karena berbagai pertimbangan dipisahkan dari
program utama. Bagian-bagian di program utama akan ‘memanggil’ (CALL) sub-rutin, artinya
mikrokontroler sementara meninggalkan alur program utama untuk mengerjakan instruksi-instruksi
dalam sub-rutin, selesai mengerjakan sub-rutin mikrokontroler kembali ke alur program utama.
Satu-satunya cara membentuk sub-rutin adalah memberi instruksi RET pada akhir potongan program
sub-rutin.

 WAKTU TUNDA
Waktu tunda digunakan untuk delay atau waktu jeda, jadi nya la LED atau display bisa diatur
dengan mengeset waktu tunda atau delaynya.

 Logika Untuk Membuat Angka atau Karakter Dalam Display

A A

F B F B
G G

E C E C
H H
D D
Untuk Commond Katoda :
Untuk menghidupkan display CC ( Commond Catoda ) kita harus memberikan nilai bit”1”
Untuk Commond Anoda :
Untuk menghidupkan display CA ( Command Anoda ) kita harus memberikan nilai bit”0”

 Logika Untuk Menentukan Posisi Dalam Display


P3.5 P3.6 P3.7 Posisi/index ke
0 0 0 1
1 0 0 2
0 1 0 3
1 1 0 4
0 0 1 5
1 0 1 6
0 1 1 7
1 1 1 8

You might also like