Anda di halaman 1dari 28

Laporan Praktikum

Laboratorium MIKROKONTROLER 1
AVR AT89S52

Proyek 03
Luaran Digital

Disusun oleh:

Kelompok EK-2A / 01
06 - Ari Hardoyo Abdur Rahman NIM 3.32.15.0.06
12 - Helmi Adi Pradana 3.32.15.0.12
18 - Prasetyo Muhammad Sakti 3.32.15.0.18

Dosen: Dr. Samuel BETA; Ing-Tech.,M.T.

PROGRAM STUDI TEKNIK ELEKTRONIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2016-2017
Proyek 03
Tampilan 7 Ruas

1. Tujuan
1. Mahasiswa mampu memahami cara kerja sistem 7-segment (tujuh ruas).
2. Mahasiswa mampu membuat sistem menghasilkan luaran digital pada 7-segment (tujuh
ruas).
3. Mahasiswa mampu memahami perintah-perintah pada perangkat lunak (program), dan
mampu membuat perangkat lunak (program) untuk rangkaian pengendali 7-segment
(tujuh ruas).
4. Mahasiswa mampu membuat perangkat lunak (program) untuk menampilkan suatu
karakter atau angka pada tampilan 7-segment (tujuh ruas).
5. Mahasiswa mampu memahami cara kerja sistem tunda dan mampu membuat perintah
sistem tunda pada perangkat lunak (program).

2. Dasar Teori
Mikrokontroler AT89S52 termasuk kedalam keluarga MCS-51 merupakan suatu
mikrokomputer CMOS 8 bit dengan daya rendah, kemampuan tinggi, memiliki 8 Kbyte
Flash Programmable and Erasable Read Only Memory (PEROM). Memori merupakan
bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam
memori yang sifatnya berbeda yaitu:
1. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu
daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan
program ini dinamakan sebagai memori program.
2. Random Access Memory (RAM) yang isinya akan hilang begitu IC kehilangan catu
daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai
untuk menyimpan data ini disebut memori data.
Untuk berhubungan dengan dunia luar mikrokontroler AVR AT 8952 mempunyai
empat buah pintu masukan luaran 8 bit yaitu: P0, P1, P2 dan P3. Setiap pintu mempunyai
alamat dan dapat berfungsi sebagai masukan maupun luaran. Alamat pintu P0=80h,
P1=90h, P2=A0h dan P3=B0h. Selain itu setiap dari setiap pintu juga memiliki alamat bit
tersendiri dan dapat diakses secara individu.
Pengertian dari Decoder yaitu alat yang di gunakan untuk dapat mengembalikan proses
encoding sehingga praktekan dapat melihat atau menerima informasi aslinya. Pengertian
Decoder juga dapat di artikan sebagai rangkaian logika yang di tugaskan untuk menerima
input input biner dan mengaktifkan salah satu outputnya sesuai dengan urutan biner
tersebut. Kebalikan dari decoder adalah encoder.
Fungsi Decoder adalah untuk memudahkan kita dalam menyalakan 7-segment. Itu
lah sebabnya kita menggunakan decoder agar dapat dengan cepat menyalakan 7-segment.
Output dari decoder maksimum adalah 2n.
Beberapa rangkaian decoder yang sering kita jumpai saat ini adalah decoder jenis 3
x 8 (3 bit input dan 8 output line), decoder jenis 4 x 16, decoder jenis BCD to Decimal (4
bit input dan 10 output line) dan decoder jenis BCD to 7 segmen (4 bit input dan 8 output
line). Khusus untuk pengertian decoder jenis BCD to 7 segmen mempunyai prinsip kerja
yang berbeda dengan decoder decoder lainnya, di mana kombinasi setiap inputnya dapat
mengaktifkan beberapa output linenya.
Salah satu jenis IC decoder yang umum di pakai adalah 74138, karena IC ini
mempunyai 3 input biner dan 8 output line, di mana nilai output adalah 1 untuk salah satu
dari ke 8 jenis kombinasi inputnya.

3. Praktikum
3.1 Merubah Posisi Penyalaan 7-Segment dengan Merubah Kondisi Logik Pada
Masukan Decoder
3.1.1 Permasalahan
a. Membuat perangkat lunak (progam) untuk menyalakan LED pada 7-segment dan
modul keluaran (kit) dan juga merubah posisi penyalaan 7-segment, dengan
merubah kondisi logik pada pin A0 dan A1 pada IC decoder.
Masukan : Tidak ada.
Proses : Peralihan data segera ke pintu P0.
Keluaran : Pintu P0.0-7 (8 buah LED).

b. Membuat perangkat lunak (progam) untuk menyalakan LED pada 7-segment dan
modul keluaran (kit) dan juga merubah posisi penyalaan 7-segment sesuai dengan
nomor kelompok, dengan cara menuliskan perintah pada perangkat lunak
(program).
Masukan : Tidak ada.
Proses : Peralihan data segera ke pintu P0.
Keluaran : Pintu P0.0-7 (8 buah LED).
c. Membuat perangkat lunak (progam) untuk menyalakan LED pada 7-segment dan
modul keluaran (kit) dan juga merubah posisi penyalaan 7-segment sesuai dengan
nomor kelompok, dengan cara menuliskan perintah pada perangkat lunak
(program).
Masukan : Tidak ada.
Proses : Peralihan data segera ke pintu P0.
Keluaran : Pintu P0.0-7 (8 buah LED).

d. Membuat perangkat lunak (progam) untuk menapilkan sebuah kata pada tampilan
7-segment, dan setiap 7-segment hanya digunakan hanya untuk menampilkan 1
huruf.
Masukan : Tidak ada.
Proses : Peralihan data segera ke pintu P0.
Keluaran : Pintu P0.0-7 (8 buah LED).

3.1.2 Penyelesaian
3.1.2.1 Flowchart
P031a-T7R P031b-T7RPosisi

MULAI

MULAI
Tentukan Posisi

A = Kode A = Kode

Tampilkan Tampilkan
di t7r di 7 ruas
P032a-c

MULAI A B C

Baca Posisi 0 Baca Posisi 2 Baca Posisi 4 Baca Posisi 6

Baca Karakter 0 Baca Karakter 2 Baca Karakter 4 Baca Karakter 6

Tampilkan Tampilkan Tampilkan Tampilkan


di 7 ruas di 7 ruas di 7 ruas di 7 ruas

Baca Posisi 1 Baca Posisi 3 Baca Posisi 5 Baca Posisi 7

Baca Karakter 1 Baca Karakter 3 Baca Karakter 5 Baca Karakter 7

Tampilkan Tampilkan Tampilkan Tampilkan


di 7 ruas di 7 ruas di 7 ruas di 7 ruas

A B C SELESAI

3.1.2.2 Program

a). P031a-T7R.asm
;/* ==========================================================
; Pemrogram : Kelompok EK-2A /06
; 1. 06-Ari Hardoyo A.R. NIM:3.32.15.0.06
; 2. 12-Helmi Adi Pradana NIM:3.32.15.0.12
; 3. 18-Prasetyo Muhammad S. NIM:3.32.15.0.18
;Tgl.Praktikum : Senin, 16 Maret 2017
;=============================================================
;Proyek03-Tampilan 7 Ruas
;P031a-T7R
; program untuk menyalakan Tampilan 7 Ruas sesuai kelompok
;-------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;-------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;===========================================================*/
;=== Deklarasi variabel ===
kode equ 82h ;sesuai kelompok
t7r equ P0 ;t7r dipasang pada P0

;=== Pengesetan Awal ====


ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
;tampilkan kode kelompok di led
MOV A,#kode ;ambil kode
MOV t7r,A ;kirimkan ke t7r

SJMP mulai ;kembali ke mulai


;=== Sub program ===

;=== Tabel Konversi ===


END ;selesai

b). P031b-T7RPosisi.asm
;/* =======================================================================
; Pemrogram : Kelompok EK-2A /06
; 1. 06-Ari Hardoyo A.R. NIM:3.32.15.0.06
; 2. 12-Helmi Adi Pradana NIM:3.32.15.0.12
; 3. 18-Prasetyo Muhammad S. NIM:3.32.15.0.18
;Tgl.Praktikum : Senin, 16 Maret 2017
;==========================================================================
;Proyek03-Tampilan 7 Ruas
;P031b-T7RPosisi
; program untuk menyalakan Tampilan 7 Ruas
;dengan angka dan posisi sesuai kelompok
;--------------------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;--------------------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;======================================================================= */
;=== Deklarasi variabel ===
kode equ 82h ;sesuai kelompok
t7r equ P0 ;t7r dipasang pada P0
posC equ P3.7 ;posisi CBA (dekoder 74138)
posB equ P3.6
posA equ P3.5

;=== Pengesetan Awal ====


ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
;tampilkan kode kelompok di t7r sesuai posisi
SETB posC ;Posisi Tampilan Yx (1-1-0)
SETB posB
CLR posA
MOV A,#kode ;ambil kode
MOV t7r,A ;kirimkan ke t7r

SJMP mulai ;kembali ke mulai


;=== Sub program ===

;=== Tabel Konversi ===


END ;selesai

c). P032a-T7RPesan.asm
;/* =======================================================================
; Pemrogram : Kelompok EK-2A /06
; 1. 06-Ari Hardoyo A.R. NIM:3.32.15.0.06
; 2. 12-Helmi Adi Pradana NIM:3.32.15.0.12
; 3. 18-Prasetyo Muhammad S. NIM:3.32.15.0.18
;Tgl.Praktikum : Kamis, 13 Maret 2017
;================================================================
;Proyek03-Tampilan 7 Ruas
;P032a-T7RPesan
; program untuk menampilkan pesan pada Tampilan 7 Ruas
;----------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;----------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;=================================================================*/
;=== Deklarasi variabel ===
t7r equ P0 ;t7r dipasang pada P0
;Pengatur posisi
posC equ P3.7 ;posisi CBA (dekoder 74138)
posB equ P3.6
posA equ P3.5
;Pesan 8 karakter
kar0 equ 089h ;H untuk pesan:HALO-Yxx
kar1 equ 088h ;A
kar2 equ 0C7h ;L
kar3 equ 0C0h ;O
kar4 equ 0BFh ;-
kar5 equ 088h ;A
kar6 equ 0C0h ;0
kar7 equ 082h ;6

;=== Pengesetan Awal ====


ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
;tampilkan karakter di t7r sesuai posisi
;--- Posisi Y0 kar0
CLR posC ;Posisi Y0 (0-0-0)
CLR posB
CLR posA
MOV A,#kar0 ;ambil kar0
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y1 kar1
CLR posC ;Posisi Y1 (0-0-1)
CLR posB
SETB posA
MOV A,#kar1 ;ambil kar1
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y2 kar2
CLR posC ;Posisi Y2 (0-1-0)
SETB posB
CLR posA
MOV A,#kar2 ;ambil kar2
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y3 kar3
CLR posC ;Posisi Y3 (0-1-1)
SETB posB
SETB posA
MOV A,#kar3 ;ambil kar3
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y4 kar4
SETB posC ;Posisi Y4 (1-0-0)
CLR posB
CLR posA
MOV A,#kar4 ;ambil kar4
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y5 kar5
SETB posC ;Posisi Y5 (1-0-1)
CLR posB
SETB posA
MOV A,#kar5 ;ambil kar5
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y6 kar6
SETB posC ;Posisi Y6 (1-1-0)
SETB posB
CLR posA
MOV A,#kar6 ;ambil kar6
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y7 kar7
SETB posC ;Posisi Y7 (1-1-1)
SETB posB
SETB posA
MOV A,#kar7 ;ambil kar7
MOV t7r,A ;kirimkan ke t7r
CALL tunda

SJMP mulai ;kembali ke mulai

;=== Sub program ===


;- tunda : penunda waktu
tunda: ;tunda:
MOV 71h,#1 ;nilai awal t1
tunda1: ; tunda1
MOV 72h,#0 ;nilai awal t2 *sesuaikan!
tunda2: ; tunda2
MOV 73h,#0 ;nilai awal t3 *sesuaikan!
tunda3: ; tunda3
NOP ;diam
DJNZ 73h,tunda3 ;balik ke tunda3
DJNZ 72h,tunda2 ;balik ke tunda2
DJNZ 71h,tunda1 ;balik ke tunda1
RET ;kembali

;=== Tabel Konversi ===


END ;selesai

d). P032b-T7RPesan.asm
;/* =======================================================================
; Pemrogram : Kelompok EK-2A /06
; 1. 06-Ari Hardoyo A.R. NIM:3.32.15.0.06
; 2. 12-Helmi Adi Pradana NIM:3.32.15.0.12
; 3. 18-Prasetyo Muhammad S. NIM:3.32.15.0.18
;Tgl.Praktikum : Kamis, 13 Maret 2017
;================================================================
;Proyek03-Tampilan 7 Ruas
;P032a-T7RPesan
; program untuk menampilkan pesan pada Tampilan 7 Ruas
;----------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;----------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;=================================================================*/
;=== Deklarasi variabel ===
t7r equ P0 ;t7r dipasang pada P0
;Pengatur posisi
posC equ P3.7 ;posisi CBA (dekoder 74138)
posB equ P3.6
posA equ P3.5
;Pesan 8 karakter
kar0 equ 089h ;H untuk pesan:HALO-Yxx
kar1 equ 088h ;A
kar2 equ 0C7h ;L
kar3 equ 0C0h ;O
kar4 equ 0BFh ;-
kar5 equ 088h ;A
kar6 equ 0C0h ;0
kar7 equ 082h ;6

;=== Pengesetan Awal ====


ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
;tampilkan karakter di t7r sesuai posisi
;--- Posisi Y0 kar0
CLR posC ;Posisi Y0 (0-0-0)
CLR posB
CLR posA
MOV A,#kar0 ;ambil kar0
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y1 kar1
CLR posC ;Posisi Y1 (0-0-1)
CLR posB
SETB posA
MOV A,#kar1 ;ambil kar1
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y2 kar2
CLR posC ;Posisi Y2 (0-1-0)
SETB posB
CLR posA
MOV A,#kar2 ;ambil kar2
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y3 kar3
CLR posC ;Posisi Y3 (0-1-1)
SETB posB
SETB posA
MOV A,#kar3 ;ambil kar3
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y4 kar4
SETB posC ;Posisi Y4 (1-0-0)
CLR posB
CLR posA
MOV A,#kar4 ;ambil kar4
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y5 kar5
SETB posC ;Posisi Y5 (1-0-1)
CLR posB
SETB posA
MOV A,#kar5 ;ambil kar5
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y6 kar6
SETB posC ;Posisi Y6 (1-1-0)
SETB posB
CLR posA
MOV A,#kar6 ;ambil kar6
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y7 kar7
SETB posC ;Posisi Y7 (1-1-1)
SETB posB
SETB posA
MOV A,#kar7 ;ambil kar7
MOV t7r,A ;kirimkan ke t7r
CALL tunda

SJMP mulai ;kembali ke mulai

;=== Sub program ===


;- tunda : penunda waktu
tunda: ;tunda:
MOV 71h,#10 ;nilai awal t1
tunda1: ; tunda1
MOV 72h,#10 ;nilai awal t2 *sesuaikan!
tunda2: ; tunda2
MOV 73h,#10 ;nilai awal t3 *sesuaikan!
tunda3: ; tunda3
NOP ;diam
DJNZ 73h,tunda3 ;balik ke tunda3
DJNZ 72h,tunda2 ;balik ke tunda2
DJNZ 71h,tunda1 ;balik ke tunda1
RET ;kembali

;=== Tabel Konversi ===


END ;selesai

e). P032c-T7RAri.asm
;/* =======================================================================
; Pemrogram : Kelompok EK-2A /06
; 1. 06-Ari Hardoyo A.R. NIM:3.32.15.0.06
; 2. 12-Helmi Adi Pradana NIM:3.32.15.0.12
; 3. 18-Prasetyo Muhammad S. NIM:3.32.15.0.18
;Tgl.Praktikum : Kamis, 16 Maret 2017
;====================================================================================
;Proyek03-Tampilan 7 Ruas
;P032c-T7RAri
; program untuk menampilkan nama AriHardo pada Tampilan 7 Ruas
;------------------------------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;------------------------------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;================================================================================= */
;=== Deklarasi variabel ===
t7r equ P0 ;t7r dipasang pada P0
;Pengatur posisi
posC equ P3.7 ;posisi CBA (dekoder 74138)
posB equ P3.6
posA equ P3.5
;Pesan 8 karakter
kar0 equ 088h ;A
kar1 equ 0AFh ;r
kar2 equ 0EFh ;I
kar3 equ 089h ;H
kar4 equ 0A0h ;a
kar5 equ 0AFh ;r
kar6 equ 0A1h ;d
kar7 equ 0A3h ;o

;=== Pengesetan Awal ====


ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
;tampilkan karakter di t7r sesuai posisi
;--- Posisi Y0 kar0
CLR posC ;Posisi Y0 (0-0-0)
CLR posB
CLR posA
MOV A,#kar0 ;ambil kar0
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y1 kar1
CLR posC ;Posisi Y1 (0-0-1)
CLR posB
SETB posA
MOV A,#kar1 ;ambil kar1
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y2 kar2
CLR posC ;Posisi Y2 (0-1-0)
SETB posB
CLR posA
MOV A,#kar2 ;ambil kar2
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y3 kar3
CLR posC ;Posisi Y3 (0-1-1)
SETB posB
SETB posA
MOV A,#kar3 ;ambil kar3
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y4 kar4
SETB posC ;Posisi Y4 (1-0-0)
CLR posB
CLR posA
MOV A,#kar4 ;ambil kar4
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y5 kar5
SETB posC ;Posisi Y5 (1-0-1)
CLR posB
SETB posA
MOV A,#kar5 ;ambil kar5
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y6 kar6
SETB posC ;Posisi Y6 (1-1-0)
SETB posB
CLR posA
MOV A,#kar6 ;ambil kar6
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y7 kar7
SETB posC ;Posisi Y7 (1-1-1)
SETB posB
SETB posA
MOV A,#kar7 ;ambil kar7
MOV t7r,A ;kirimkan ke t7r
CALL tunda

SJMP mulai ;kembali ke mulai


;=== Sub program ===
;- tunda : penunda waktu
tunda: ;tunda:
MOV 71h,#10 ;nilai awal t1
tunda1: ; tunda1
MOV 72h,#10 ;nilai awal t2 *sesuaikan!
tunda2: ; tunda2
MOV 73h,#10 ;nilai awal t3 *sesuaikan!
tunda3: ; tunda3
NOP ;diam
DJNZ 73h,tunda3 ;balik ke tunda3
DJNZ 72h,tunda2 ;balik ke tunda2
DJNZ 71h,tunda1 ;balik ke tunda1
RET ;kembali

;=== Tabel Konversi ===


END ;selesai

f). P032c-T7RPradana.asm
;/* =======================================================================
; Pemrogram : Kelompok EK-2A /06
; 1. 06-Ari Hardoyo A.R. NIM:3.32.15.0.06
; 2. 12-Helmi Adi Pradana NIM:3.32.15.0.12
; 3. 18-Prasetyo Muhammad S. NIM:3.32.15.0.18
;Tgl.Praktikum : Kamis, 16 Maret 2017
;====================================================================================
;Proyek03-Tampilan 7 Ruas
;P032a-T7RPradana
; program untuk menampilkan nama Pradana pada Tampilan 7 Ruas
;------------------------------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;------------------------------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;================================================================================= */
;=== Deklarasi variabel ===
t7r equ P0 ;t7r dipasang pada P0
;Pengatur posisi
posC equ P3.7 ;posisi CBA (dekoder 74138)
posB equ P3.6
posA equ P3.5
;Pesan 8 karakter
kar0 equ 08Ch ;P
kar1 equ 0AFh ;r
kar2 equ 0A0h ;a
kar3 equ 0A1h ;d
kar4 equ 0A0h ;a
kar5 equ 0C8h ;n
kar6 equ 0A0h ;a
kar7 equ 0FFh ;

;=== Pengesetan Awal ====


ORG 0 ;alamat awal
;=== Program Utama ===
mulai:
;tampilkan karakter di t7r sesuai posisi
;--- Posisi Y0 kar0
CLR posC ;Posisi Y0 (0-0-0)
CLR posB
CLR posA
MOV A,#kar0 ;ambil kar0
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y1 kar1
CLR posC ;Posisi Y1 (0-0-1)
CLR posB
SETB posA
MOV A,#kar1 ;ambil kar1
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y2 kar2
CLR posC ;Posisi Y2 (0-1-0)
SETB posB
CLR posA
MOV A,#kar2 ;ambil kar2
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y3 kar3
CLR posC ;Posisi Y3 (0-1-1)
SETB posB
SETB posA
MOV A,#kar3 ;ambil kar3
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y4 kar4
SETB posC ;Posisi Y4 (1-0-0)
CLR posB
CLR posA
MOV A,#kar4 ;ambil kar4
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y5 kar5
SETB posC ;Posisi Y5 (1-0-1)
CLR posB
SETB posA
MOV A,#kar5 ;ambil kar5
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y6 kar6
SETB posC ;Posisi Y6 (1-1-0)
SETB posB
CLR posA
MOV A,#kar6 ;ambil kar6
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y7 kar7
SETB posC ;Posisi Y7 (1-1-1)
SETB posB
SETB posA
MOV A,#kar7 ;ambil kar7
MOV t7r,A ;kirimkan ke t7r
CALL tunda
SJMP mulai ;kembali ke mulai

;=== Sub program ===


;- tunda : penunda waktu
tunda: ;tunda:
MOV 71h,#1 ;nilai awal t1
tunda1: ; tunda1
MOV 72h,#10 ;nilai awal t2 *sesuaikan!
tunda2: ; tunda2
MOV 73h,#10 ;nilai awal t3 *sesuaikan!
tunda3: ; tunda3
NOP ;diam
DJNZ 73h,tunda3 ;balik ke tunda3
DJNZ 72h,tunda2 ;balik ke tunda2
DJNZ 71h,tunda1 ;balik ke tunda1
RET ;kembali

;=== Tabel Konversi ===


END ;selesai

g). P032c-T7RPras.asm
;/* =======================================================================
; Pemrogram : Kelompok EK-2A /06
; 1. 06-Ari Hardoyo A.R. NIM:3.32.15.0.06
; 2. 12-Helmi Adi Pradana NIM:3.32.15.0.12
; 3. 18-Prasetyo Muhammad S. NIM:3.32.15.0.18
;Tgl.Praktikum : Kamis, 16 Maret 2017
;====================================================================================
;Proyek03-Tampilan 7 Ruas
;P032a-T7RPras
; program untuk menampilkan nama Prasetyo pada Tampilan 7 Ruas
;------------------------------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;------------------------------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;================================================================================= */
;=== Deklarasi variabel ===
t7r equ P0 ;t7r dipasang pada P0
;Pengatur posisi
posC equ P3.7 ;posisi CBA (dekoder 74138)
posB equ P3.6
posA equ P3.5
;Pesan 8 karakter
kar0 equ 08Ch ;P
kar1 equ 0AFh ;r
kar2 equ 0A0h ;a
kar3 equ 092h ;S
kar4 equ 084h ;e
kar5 equ 087h ;t
kar6 equ 091h ;y
kar7 equ 0A3h ;o
;=== Pengesetan Awal ====
ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
;tampilkan karakter di t7r sesuai posisi
;--- Posisi Y0 kar0
CLR posC ;Posisi Y0 (0-0-0)
CLR posB
CLR posA
MOV A,#kar0 ;ambil kar0
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y1 kar1
CLR posC ;Posisi Y1 (0-0-1)
CLR posB
SETB posA
MOV A,#kar1 ;ambil kar1
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y2 kar2
CLR posC ;Posisi Y2 (0-1-0)
SETB posB
CLR posA
MOV A,#kar2 ;ambil kar2
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y3 kar3
CLR posC ;Posisi Y3 (0-1-1)
SETB posB
SETB posA
MOV A,#kar3 ;ambil kar3
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y4 kar4
SETB posC ;Posisi Y4 (1-0-0)
CLR posB
CLR posA
MOV A,#kar4 ;ambil kar4
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y5 kar5
SETB posC ;Posisi Y5 (1-0-1)
CLR posB
SETB posA
MOV A,#kar5 ;ambil kar5
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y6 kar6
SETB posC ;Posisi Y6 (1-1-0)
SETB posB
CLR posA
MOV A,#kar6 ;ambil kar6
MOV t7r,A ;kirimkan ke t7r
CALL tunda
;--- Posisi Y7 kar7
SETB posC ;Posisi Y7 (1-1-1)
SETB posB
SETB posA
MOV A,#kar7 ;ambil kar7
MOV t7r,A ;kirimkan ke t7r
CALL tunda

SJMP mulai ;kembali ke mulai

;=== Sub program ===


;- tunda : penunda waktu
tunda: ;tunda:
MOV 71h,#1 ;nilai awal t1
tunda1: ; tunda1
MOV 72h,#10 ;nilai awal t2 *sesuaikan!
tunda2: ; tunda2
MOV 73h,#10 ;nilai awal t3 *sesuaikan!
tunda3: ; tunda3
NOP ;diam
DJNZ 73h,tunda3 ;balik ke tunda3
DJNZ 72h,tunda2 ;balik ke tunda2
DJNZ 71h,tunda1 ;balik ke tunda1
RET ;kembali

;=== Tabel Konversi ===


END ;selesai

3.1.2.3 Hasil Percobaan


a. P031-a
1. Langkah 1
Setelah penulisan perangkat lunak (program) selesai, lalu menjalan perangkat
lunak (program) dengan cara klik Run pada menu edSim dan juga
menyimulasikannya dengan proteus dan modul kit maka akan menghasilkan
tampilan seperti berikut;
Tampilan edSim51di.

Tampilan simulasi proteus.

Tampilan modul kit.


2. Langkah 2
Setelah selesai melakukan penyimulasian pada langkah pertama, lalu ubah kondisi
logik pin A0 dan A1 pada IC decoder dengan cara perubah logik P3.5 dan P3.6
pada edSim. Untuk memahami lebih lanjut perhatikan gambar berikut;

Kondisi P3 10011111b

Kondisi P3 10111111b

Kondisi P3 11011111b
Kondisi P3 11111111b

b. P031-b
1. Tampilan edSim51di.

2. Tampilan simulasi proteus.

3. Tampilan modul kit.


c. P032-a
1. Tampilan simulasi proteus. (Urutan nyala 7-segment)
2. Tampilan modul kit. (Urutan nyala 7-segment)
d. P032-b
1. Tampilan simulasi proteus.

2. Tampilan di Kit

e. P032c-Ari
1. Tampilan simulasi proteus.

2. Tampilan di Kit

f. P032c-Pradana
1. Tampilan simulasi proteus.
2. Tampilan di Kit

g. P032c-Pras
1. Tampilan simulasi proteus.

2. Tampilan di Kit

3.1.3 Pembahasan
i. P031-a Saat perangkat lunak (program) dijalankan, bit yang dijadikan sebagai
masukan menuju ke karakter kode, lalu kode dimasukkan ke Register A.
Selanjutnya data di Register A dikirim ke 7-segment di P0 dan ditampilkan di
tampilan 7-segment
ii. P031-b Saat perangkat lunak (program) dijalankan, keudian menetukan posisi
tampilan pada 7-segment ke 4 (sesuai kelompok) dengan menggunkan perintah
CLR dan SETB. Lalu bit yang dijadikan sebagai masukan menuju ke karakter kode,
lalu kode dimasukkan ke Register A. Selanjutnya data di Register A dikirim ke 7-
segment di P0 dan ditampilkan di tampilan 7-segment.
iii. P032-aPada saat program dimulai, program membaca pengaturan posisi yang
telah diatur sebelumnya yaitu pada penge-Set-an posisi tampilan0, kemudian
program membaca karakter0 yang merupakan kode hex dari karakter yang akan
ditampilkan lalu hasil dari proses ditampilkan pada 7-segment, kemudian
memanggil tunda untuk mendelay pembacaan selanjutnya. Kemudian program
membaca posisi dan karakter yang akan ditampilkan dengan cara yang sam dengan
sebelumnya. Program akan mengulangi langkah-langkah tersebut sampai tampilan
ke-7 dan karakter ke-7, kemudian program kembali ke pembacaan tampilan0 dan
program akan berhenti sampai terdapat kesalahan pada program atau hardware, dan
ini termasuk program yang berulang.
iv. P032-bProgram dan flowchart sama dengan percobaan sebelumnya, namun
perbedaannya hanya diberi jarak yang sempit maka semua tampilan karakter
seakan-akan tampil secara bersamaan. Dan dalam hal ini hanya merubah lama
waktu tunda pada program.
v. P032-cProgram hampir sama dan flowchart sama dengan percobaan sebelumnya,
namun perbedaannya karakter diberi inputan yang berbeda sesuai nama
AriHardo, Pradana, dan Prasetyo serta diberi jarak yang sempit maka semua
tampilan karakter seakan-akan tampil secara bersamaan. Dan dalam hal ini hanya
merubah lama waktu tunda pada program.

4. Langkah Percobaan
Untuk mendapatkan hasil percobaan ini, langkah percobaan yang dilakukan adalah
sebagai berikut:
1. Membuka aplikasi EdSim51DI. Membuka file .asm dengan cara mengeklik Load ->
pilih dengan extensi Tempate.asm->Open.
2. Menulis program sesuai dengan instruksi yang telah diberikan.
3. Setelah menulis program sesuai dengan perintah maka langkah selanjutnya
mengompile program dengan cara mengeklik Assm.
4. Apabila No errors berarti program yang telah dituliskan tersebut benar, tidak ada
yang errors.
5. Setelah itu geser kursor ke tombol [ LI / DI ], klik [ LI ]. Setelah muncul menunya,
mencari Display-select Input 0 lalu dikonfigurasi pada P [3] bit [5], lalu Display-select
Input 1 lalu dikonfigurasi pada P [3] bit [6] Kemudian simpan, keluar, dan buka
kembali.
6. Setelah itu melihat Logic Diagram. Klik Diselect All lalu pilih Multiplexed 7-Segment
Display untuk mengecek bagian pin decoder yang digunakan.
7. Setelah itu menjalankan program langkah per langkah [ Step ]. Hasilnya diamati setiap
langkah.
8. Sebelum keluar simpan dengan nama: P031a-T7ruas, P031b-T7rPosisi, dan P032a-
T7rPesan. Untuk melihat Simulasi program tersebut, maka menggunakan aplikasi
Proteus. Membuka aplikasi Proteus, lalu Open file dengan nama extensi
P3dek138P2SwP0bar+7R. Klik IC AT89S52. Membuka program file P031a-
T7ruas.hex, P031b-T7rPosisi.hex, dan P032a-T7rPesan.hex.
9. Setelah membuka program melakukan simulasi dengan mengeklik Play. Maka pada
tampilan 7-segment akan tertampil tampilan angka dan huruf yang menyala sesuai
yang dikehendaki program P031a-T7ruas.hex, P031b-T7rPosisi.hex, dan P032a-
T7rPesan.hex.
10. Menghubungkan bootloader ke pintu USB komputer dan ke konektor
[PROGRAMER] dengan cara menginstall device USB ASP untuk menghubungkan
komputer dengan modul pelatihan yang sudah dinyalakan.
11. Untuk menginstall Device USB ASP dilakukan dengan cara membuka Cotrol Panel-
> Hardware and Sound->Device Manager-> USBASP. Lalu klik kanan Update Driver
Software->Update Automatically-> Close.
12. Membuka Program ProgISP168. Pada Program State tampilan RG ISP akan menyala
merah. Setelah itu klik Erase untuk membersihkan program yang telah diupload ke
modul sebelumnya. Setelah itu Load Flash untuk mengupload program P031a-
T7ruas.hex, P031b-T7rPosisi.hex, dan P032a-T7rPesan.hex ke Modul Pelatihan.
13. Setelah mengupload program ke Modul Pelatihan klik Auto untuk mengupload dan
menjalankan program di Modul Pelatihan.
14. Apabila tampilan LED pada Modul Pelatihan sesuai dengan Saklar yang ditekan pada
simulasi Proteus maka Program dan Modul berjalan sesuai dengan yang diharapkan.

5. Kesimpulan
Setelah melaksanakan praktikum ketiga yang berjudul Tampilan 7 Ruas ini kami
simpulkan bahwa;
1. Pada program pertama (Merubah Posisi Penyalaan 7-Segment dengan Merubah
Kondisi Logik Pada Masukan Decoder).
Untuk merubah posisi penyalaan 7-segment pada tampilan keluaran dapat
menggunakan cara merubah kondisi logik masukan IC decoder, dan praktikum ini
masukan decoder dihubungkan pada P3.5 untuk Display Select Input 0 dan P3.6 untuk
Display Select Input 1.
Apabila masukan diberi logik 0 (P3.6) dan 0(P3.5) maka keluaran akan
menyalakan 7-segment ke-0. Apabila masukan diberi logik 0 (P3.6) dan 1 (P3.5) maka
keluaran akan menyalakan 7-segment ke-1. Apabila masukan diberi logik 1 (P3.6) dan
0 (P3.5) maka keluaran akan menyalakan 7-segment ke-2. Apabila masukan diberi
logik 1 (P3.6) dan 1 (P3.5) maka keluaran akan menyalakan 7-segment ke-3.
2. Pada program kedua (Merubah Posisi Penyalaan 7-Segment Menggunakan Perangkat
Lunak (Program)).
Berbeda dengan program pertama yang merubah posisi penyalaan 7-segment
dengan cara merubah kondisi masukan IC decoder, pada program kali ini juga merubah
posisi penyalaan 7-segmnet tetapi dengan cara memberi perintah pada program.
Perintah yang digunakan adalah CLR dan SETB, perintah tersebut digunakan
untuk memberi masukan pada PosA, PosB dan PosC. Sementara PosA, PosB dan PosC
adalah sebagai pengganti variabel P3.5, P3.6 dan P3.7.
Pada program kedua ini penyalaan posisi 7-segment sesuai dengan nomor
kelompok, maka kami menuliskan perintah;
CLR PosC
CLR PosB
SETB PosA
Penulisan tersebut dikarenakan hasil yang diinginkan adalah posisi penyalaan 7-
segment ke-1 (sesuai kelompok), atau dengan kata lain adalah kode biner dari angka 1.
Dan tampilan 7-segment akan menyalakan angka 1 sesuai kode 11111001b yang
diberikan oleh masukan.
3. Pada program ketiga (Menampilkan Sebuah Kata Pada Tampilan 7-Segment).
Pada program ini kami menggunakan perintah yang sama dengan program
sebelumnya yaitu CLR dan SETB, perintah tersebut digunakan untuk memberi
masukan pada PosA, PosB dan PosC. Sementara PosA, PosB dan PosC adalah sebagai
pengganti variabel P3.5, P3.6 dan P3.7.
Pada program diberi masukan 0-0-0 (PosC-PosB-PosA) maka keluaran akan
menyalakan 7-segment yang ke-0, dan 7-segment akan menampilkan nyala huruf H
sesuai dengan kode heksa 089h. Pada program diberi masukan 0-0-1 (PosC-PosB-
PosA) maka keluaran akan menyalakan 7-segment yang ke-1, dan 7-segment akan
menampilkan nyala huruf E sesuai dengan kode heksa 088h. Pada program diberi
masukan 0-1-0 (PosC-PosB-PosA) maka keluaran akan menyalakan 7-segment yang
ke-2, dan 7-segment akan menampilkan nyala huruf L sesuai dengan kode heksa
0C7h. Pada program diberi masukan 0-1-1 (PosC-PosB-PosA) maka keluaran akan
menyalakan 7-segment yang ke-3, dan 7-segment akan menampilkan nyala huruf O
sesuai dengan kode heksa 0C0h.
Pada program diberi masukan 1-0-0 (PosC-PosB-PosA) maka keluaran akan
menyalakan 7-segment yang ke-4, dan 7-segment akan menampilkan nyala tanda -
sesuai dengan kode heksa 0BFh. Pada program diberi masukan 1-0-1 (PosC-PosB-
PosA) maka keluaran akan menyalakan 7-segment yang ke-5, dan 7-segment akan
menampilkan nyala huruf E sesuai dengan kode heksa 086h. Pada program diberi
masukan 1-1-0 (PosC-PosB-PosA) maka keluaran akan menyalakan 7-segment yang
ke-6, dan 7-segment akan menampilkan nyala huruf C sesuai dengan kode heksa
0C6h. Pada program diberi masukan 1-1-1 (PosC-PosB-PosA) maka keluaran akan
menyalakan 7-segment yang ke-7, dan 7-segment akan menampilkan nyala angka 1
sesuai dengan kode heksa 0F9h.
4. Pada program keempat (Menampilkan Sebuah Kata Pada Tampilan 7-Segment dan
Tampil Bersamaan).
Pada program ini sama dengan program sebelumnya, yaitu menampilkan pesan
HELO-EC1. Akan tetatapi keluaran menapilkan pesan tersebut secara bersamaan.
Untuk menampilkan pesan tersebut secara bersamaan, yaitu dengan cara
pemberian waktun tunda yang sangat sempit, sehingga seolah-olah pesan tersebut
tampil secara bersamaan.

Anda mungkin juga menyukai