Anda di halaman 1dari 42

Laporan Praktikum

Laboratorium MIKROKONTROLER 1
8051 AT89S52

Proyek 04
Tabel Konversi

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 04
TABEL KONVERSI
1. Tujuan
Tujuan dari percobaan ini praktikan dapat :
a) Memahami cara kerja sistem pengendali masukan luaran digital secara keseluruhan dan
mampu membuat sistem untuk membaca masukan dan menghasilkan luaran digital.
b) Memahami cara kerja perangkat keras (rangkaian) pengendali masukan luaran digital
dan mampu menghubungkan mikrokontroler 8051 dengan rangkaian penggerak
masukan luaran
c) Memahami cara kerja perangkat lunak (program) dan perintah bahasa rakitan
mikrokontroler 8051 dan mampu membuat program untuk rangkaian penggerak
masukan luaran
d) Memahami cara kerja sistem tunda pada perangkat lunak dan mampu membuat program
tunda.
e) Mampu membuat program masukan dengan keluaran variasi penyalaan LED.
f) Memahami dan mempraktikan program pengecekan bit dalam proyek masukan dan
luaran.

2. Dasar Teori
Mikrokontroller 8051 mempunyai beberapa cara pengalamatan, yaitu:
1. Pengalamatan Register (register addressing).
Cara ini hanya berlaku untuk register R0 sampai R7. Misalnya instruksi;
a) MOV R7,22H menyebabkan isi RAM internal alamat 22H disalin ke
Register R7.
2. Pengalamatan Langsung (direct addressing).
Cara pengalamatan seperti ini hanya berlaku untuk RAM internal dan SFR. Pada
cara ini, dalam instruksinya operand ditunjukkan oleh suatu alamat yang
lebarnya 8-bit. Misalnya instruksi;
a) MOV 24H,22H menyebabkan isi RAM internal alamat 22H disalin ke RAM
internal alamat 24H.
b) MOV TMOD,#00010001B menyebabkan angka biner 00010001
dimasukkan ke register TMOD.
c) MOV 24H,P1 menyebabkan kondisi pin pada Port 1 direkam ke dalam
RAM internal alamat 24H.
3. Pengalamatan tidak langsung (indirect addressing).
Cara pengalamatan ini hanya berlaku untuk RAM internal. Pada cara ini,
instruksi menunjukkan suatu register yang isinya adalah alamat dari suatu
operand . Misalnya instruksi;
MOV @R0,22H menyebabkan isi RAM internal alamat 22H disalin ke
RAM internal yang alamatnya tersimpan pada registe R0.
4. Pengalamatan segera (immediate addressing).
Cara ini berlaku untuk RAM internal dan SFR, di mana data yang akan
dilibatkan tertulis langsung pada instruksinya, misalnya instruksi;
MOV TMOD,#00010001B menyebabkan angka biner 00010001
dimasukkan ke register TMOD.
MOV 24H,#22H menyebabkan angka 22H dimasukkan ke RAM internal
alamat 24H.
5. Pengalamatan berindeks (indexed addressing).
Biasanya cara ini digunakan untuk mengambil data yang ditulis pada memory
program. Cara ini ditujukan untuk menbaca look-up table yang ada di memori
program. Misalnya instruksi :
MOVC A,@A+DPTR menyebabkan data yang terletak pada memory
yang alamatnya merupakan hasil penjumlahan isi register A dengan isi register
DPTR disalin ke register A.
CPL bit berfungsi melengkapi variabel bit ditentukan. Sedikit yang telah menjadi 1
diubah menjadi 0 dan sebaliknya. Tidak ada yang lain flag yang terpengaruh. CLR dapat
beroperasi pada carry atau bit langsung dialamatkan.
Catatan: Ketika instruksi ini digunakan untuk memodifikasi output pin, nilai yang
digunakan sebagai data asli dibaca dari output data latch, bukan input pin. Misalnya
instruksi;
Port 1 sebelumnya telah ditulis dengan 5BH (01.011.101 B). instruksi mengikuti
urutan, CPL P1.1CPL P1.2 meninggalkan pelabuhan diatur ke 5BH (01.011.011
B).
CLR bit berfungsi membersihkan bit ditunjukkan (reset ke 0). Tidak ada flag lain
yang terpengaruh. CLR dapat beroperasi pada carry flag atau bit langsung dialamatkan.
Misalnya instruksi;
Port 1 sebelumnya telah ditulis dengan 5DH (01.011.101 B). Instruksi berikut,
CLR P1.2 meninggalkan pelabuhan set ke 59H (01.011.001 B).
SetB menetapkan bit ditunjukkan untuk satu. SetB dapat beroperasi pada carry flag
atau bit langsung dialamatkan. Tidak ada yang lain flag yang terpengaruh. Misalnya
instruksi;
Membawa bendera dibersihkan. Output Port 1 yang telah ditulis dengan nilai
34h (00110100B). Pengikut instruksi,
SetB C
SetB P1.0
menetapkan membawa bendera ke 1 dan perubahan output data pada Port 1 ke
35H (00110101B).
SJMP cabang kontrol program tanpa syarat ke alamat yang ditunjukkan. Tujuan cabang
dihitung dengan menambahkan perpindahan masuk instruksi byte kedua untuk PC, setelah
incrementing PC dua kali. Oleh karena itu, berbagai tujuan yang diizinkan adalah dari 128
byte sebelumnya instruksi ini 127 byte mengikutinya
6. Dekoder

Pengertian Decoder adalah alat yang di gunakan untuk dapat mengembalikan proses
encoding sehingga kita 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 seven segmen. Itu lah
sebabnya kita menggunakan decoder agar dapat dengan cepat menyalakan seven segmen.
Output dari decoder maksimum adalah 2n. Jadi dapat kita bentuk n-to-2n decoder. Jika kita
ingin merangkaian decoder dapat kita buat dengan 3-to-8 decoder menggunakan 2-to-4
decoder. Sehingga kita dapat membuat 4-to-16 decoder dengan menggunakan dua buah 3-
to-8 decoder.
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. Jika kita perhatikan, pengertian decoder sangat mirip dengan
demultiplexer dengan pengecualian yaitu decoder yang satu ini tidak mempunyai data
input. Sehingga input hanya di gunakan sebagai data control.

Pengertian decoder dapat di bentuk dari susunan gerbang logika dasar atau menggunakan
IC yang banyak jual di pasaran, seperti decoder 74LS48, 74LS154, 74LS138, 74LS155 dan
sebagainya. Dengan menggunakan IC, kita dapat merancang sebuah decoder dengan
jumlah bit dan keluaran yang di inginkan. Contohnya adalah dengan merancang sebuah
decoder 32 saluran keluar dengan IC decoder 8 saluran keluaran.

7. 7 ruas (7 segment)
Konfigurasi 7 segment :
Berikut ini adalah Blok Diagram Dasar untuk mengendalikan LED 7 Segmen :

Blok Dekoder pada diagram diatas mengubah sinyal Input yang diberikan menjadi 8 jalur
yaitu a sampai g dan poin decimal (koma) untuk meng-ON-kan segmen sehingga
menghasilkan angka atau digit yang diinginkan. Contohnya, jika output dekoder adalah a,
b, dan c, maka Segmen LED akan menyala menjadi angka 7. Jika Sinyal Input adalah
berbentuk Analog, maka diperlukan ADC (Analog to Digital Converter) untuk mengubah
sinyal analog menjadi Digital sebelum masuk ke Input Dekoder. Jika Sinyal Input sudah
merupakan Sinyal Digital, maka Dekoder akan menanganinya sendiri tanpa harus
menggunakan ADC.
Fungsi daripada Blok Driver adalah untuk memberikan arus listrik yang cukup kepada
Segmen/Elemen LED untuk menyala. Pada Tipe Dekoder tertentu, Dekoder sendiri dapat
mengeluarkan Tegangan dan Arus listrik yang cukup untuk menyalakan Segmen LED
maka Blok Driver ini tidak diperlukan. Pada umumnya Driver untuk menyalakan 7 Segmen
ini adalah terdiri dari 8 Transistor Switch pada masing-masing elemen LED.

Tabel Pengaktifan Seven Segment Display

ANGKA h g f e d c b a
0 0 0 1 1 1 1 1 1
1 0 0 0 0 0 1 1 0
2 0 1 0 1 1 0 1 1
3 0 1 0 0 1 1 1 1
4 0 1 1 0 0 1 1 0
5 0 1 1 0 1 1 0 1
6 0 1 1 1 1 1 0 1
7 0 0 0 0 0 1 1 1
8 0 1 1 1 1 1 1 1
9 0 1 1 0 1 1 1 1
3. Praktikum
3.1. Tugas
a. Membuat program untuk menyalakan Tampilan 7 ruas sesuai nama kelompok.
Masukan : tidak ada
Proses : Peralihan data dari accumulator ke Port 0
Keluaran : Pintu P0.0-7 (8 buah 7 segment).
b. Membuat program untuk menyalakan tampilan 7 ruas sesuai saklar yang ditekan.
Masukan : 8 buah push button
Proses : peralihan data segera dari Port 2.0-2.7 ke accumulator. Peralihan data segera
accumulator ke port 0.0-0.7
Keluaran : Pintu P0.0-7 (8 buah 7 segment).
c. Membuat program untuk menyalakan tampilan 7 ruas sebagai pencacah naik.
Masukan : tidak ada
Proses :peralihan data segera dari accumulator ke port 0.0-0.7
Keluaran : Pintu P0.0-7 (8 buah 7 segment).

3.2. Penyelesaian
3.2.1.Flowcart
a.) P041-a
b.) P041-b dan P041-c Tampilan 7 segment berdasarkan switch
c.) P042-a Pencacah naik
d.) P042b Pencacah turun
e.) P043a dan P043b

3.2.2 Program
a. Program P041a-T7r.asm
P
;/* ==============================================================
;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, 23 Maret 2017
;=================================================================
;Proyek04-Tabel Konversi
;P041a-Tabel Hex7R
; program untuk menampilkan 1 karakter pada
;tampilan 7 ruas dengan melihat Tabel KONVERSI
;-----------------------------------------------------------------
;Materi baru:
;- Tabel Konversi
;- Perintah: MOV DPTR,#data16bit
;- MOVC A, @A+DPTR
;-----------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;===============================================================*/

;=== Deklarasi variabel ===


kode equ 6 ;sesuai T7R sesuai kelompok
t7r equ P0 ;T7R dipasang pada P0

;=== Pengesetan Awal ====


ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
;tampilkan kode kelompok di T7R
MOV A,#kode ;ambil kode

MOV DPTR,#hex7r ;lihat tabel konversi


MOVC A,@A+DPTR ; hasil konversi

MOV t7r,A ;tampilkan di T7R

SJMP mulai ;kembali ke mulai


;------------------------------------------------------------------------
--

;=== Sub program ===

;------------------------------------------------------------------------
--

;=== Tabel Konversi ===


;-Tabel Konversi Hex-7ruas (aktif 0) ------------------------------------
--
;ORG 1x0h ;alamat awal Tabel KONVERSI

hex7r:
; 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 ;angka Hex
db 0C0h,0F9h,0A4h,0B0h,099h,092h,082h,0F8h ;konversi ke t7r
; 8 - 9 - A - B - C - D - E - F
db 080h,090h,088h,080h,0c6h,0A1h,084h,08Eh
;------------------------------------------------------------------------
--

END ;selesai

;/*
=======================================================================le
sai

b. Program P041b-T7rSwEDSIM.asm
P
;/* ==============================================================
;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, 23 Maret 2017
;=================================================================
;Proyek04-Tabel Konversi
;P041a-Tabel Hex7R
; program untuk menampilkan 1 karakter pada
;tampilan 7 ruas dengan melihat Tabel KONVERSI
;-----------------------------------------------------------------
;Materi baru:
;- Tabel Konversi
;- Perintah: MOV DPTR,#data16bit
;- MOVC A, @A+DPTR
;-----------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;===============================================================*/

;=== Deklarasi variabel ===


kode equ 6 ;sesuai T7R sesuai kelompok
t7r equ P0 ;T7R dipasang pada P0
sw equ p2
;=== Pengesetan Awal ====
ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
;tampilkan kode kelompok di T7R
sw0:
JB p2.0,sw1
MOV A,#0 ;ambil kode
call konversi
sjmp sw0
sw1:
JB p2.0,sw1
MOV A,#1 ;ambil kode
call konversi
sjmp sw0
sw2:
JB p2.0,sw1
MOV A,#2 ;ambil kode
call konversi
sjmp sw0
sw3:
JB p2.0,sw1
MOV A,#3 ;ambil kode
call konversi
sjmp sw0
sw4:
JB p2.0,sw1
MOV A,#4 ;ambil kode
call konversi
sjmp sw0

konversi:
MOV DPTR,#hex7r ;lihat tabel konversi
MOVC A,@A+DPTR ; hasil konversi

MOV t7r,A ;tampilkan di T7R

SJMP mulai ;kembali ke mulai


;------------------------------------------------------------------------
--

;=== Sub program ===

;------------------------------------------------------------------------
--

;=== Tabel Konversi ===


;-Tabel Konversi Hex-7ruas (aktif 0) ------------------------------------
--
ORG 140h ;alamat awal Tabel KONVERSI

hex7r:
; 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 ;angka Hex
db 0C0h,0F9h,0A4h,0B0h,099h,092h,082h,0F8h ;konversi ke t7r
; 8 - 9 - A - B - C - D - E - F
db 080h,090h,088h,080h,0c6h,0A1h,084h,08Eh
;------------------------------------------------------------------------
--

END ;selesai

c. P041c-T7rSwKIT.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, 23 Maret 2017
;=================================================================
;Proyek04-tampilan 7 ruas dengan switch
;P031a-tampilan 7 ruas
; program untuk menyalakan 7 ruas sesuai switch yang ditekan
;-----------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;- tabel konversi
;------------------------------------------------------------------------
--
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;========================================================================
*/
;==============deklarasi variabel==============================
kode0 equ 0
kode1 equ 1
t7r equ p0
sw0 equ p2.0
sw1 equ p2.1
sw2 equ p2.2
sw3 equ p2.3
sw4 equ p2.4
sw5 equ p2.5
sw6 equ p2.6
sw7 equ p2.7
;pengesatan awal
org 0

;program utama
mulai :
;tampilkan kode kelompok di t7r
cekmenu0 :
jb sw0,cekmenu1
call menu0
sjmp cekmenu0

cekmenu1 :
jb sw1,cekmenu2
call menu1
sjmp cekmenu1

cekmenu2 :
jb sw2,cekmenu3
call menu2
sjmp cekmenu2

cekmenu3 :
jb sw3,cekmenu4
call menu3
sjmp cekmenu3

cekmenu4 :
jb sw4,cekmenu5
call menu4
sjmp cekmenu4

cekmenu5 :
jb sw5,cekmenu6
call menu5
sjmp cekmenu5

cekmenu6 :
jb sw6,cekmenu7
call menu6
sjmp cekmenu6

cekmenu7 :
jb sw7,cekmenu0
call menu7
sjmp cekmenu7

menu0 :
mov a,#0
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
ajmp cekmenu0

menu1 :
mov a,#1
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
ajmp cekmenu0
menu2 :
mov a,#2
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
ajmp cekmenu0

menu3 :
mov a,#3
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
ajmp cekmenu0

menu4 :
mov a,#4
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
ajmp cekmenu0

menu5 :
mov a,#5
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
ajmp cekmenu0

menu6 :
mov a,#6
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
ajmp cekmenu0

menu7 :
mov a,#7
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
ajmp cekmenu0
;sub program

;table konversi
;tabel konversi hex-7ruas aktif 0
org 100h ;alamat awal Tabel
hex7r:
; 0 - 1 - 2 - 3
db 0C0h,0F9h,0A4h,0B0h
; 4 - 5 - 6 - 7
db 099h,092h,082h,0F8h
; 8 - 9 - A - B
db 080h,090h,088h,083h
; C - D - E - F
db 0C6h,0A1h,086h,08Eh
NOP
end ;selesai

d. P042a-T7rPencacah naik.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, 23 Maret 2017
;=================================================================

;Proyek04-tampilan 7 ruas dengan switch


;P031a-tampilan 7 ruas
; program untuk menyalakan 7 ruas sesuai kelompok
;-----------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;- tabel konversi
;------------------------------------------------------------------------
--
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;========================================================================
*/
;==============deklarasi variabel==============================
kode equ 9
t7r equ p0
nilaiawal equ 0
nilaiakhir equ 10

;pengesatn awal
org 0

;program utama
mulai :
;tampilkan kode kelompok di t7r
mov r0,#nilaiawal
bacar0 :
mov a,r0
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
call delay
inc r0
cjne R0,#nilaiakhir,bacar0
sjmp mulai

delay:
mov 71h,#1
tunda1:
mov 72,#0
tunda2:
mov 73h,#0
tunda3 :
NOP
DJNZ 73h,tunda3
DJNZ 72h,tunda2
DJNZ 71h,tunda1
RET

;sub program
;table konversi
;tabel konversi hex-7ruas aktif 0
ORG 100h ;alamat awal Tabel
hex7r:
; 0 - 1 - 2 - 3
db 0C0h,0F9h,0A4h,0B0h
; 4 - 5 - 6 - 7
db 099h,092h,082h,0F8h
; 8 - 9 - A - B
db 080h,090h,088h,083h
; C - D - E - F
db 0C6h,0A1h,086h,08Eh
NOP
end ;selesai
e. P042a-T7rPencacah naik.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, 23 Maret 2017
;=================================================================
;Proyek04-tampilan 7 ruas dengan switch
;P031a-tampilan 7 ruas
; program untuk menyalakan 7 ruas sesuai kelompok
;-----------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;- tabel konversi
;-----------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;===============================================================*/
;==============deklarasi variabel==============================
kode equ 2
t7r equ p0
nilaiawal equ 9
nilaiakhir equ 0

;pengesatan awal
org 0

;program utama
mulai :
;tampilkan kode kelompok di t7r
mov r0,#nilaiawal
bacar0 :
mov a,r0
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
call delay
dec r0
cjne R0,#nilaiakhir,bacar0
sjmp mulai

delay:
mov 71h,#1
tunda1:
mov 72,#0
tunda2:
mov 73h,#0
tunda3 :
NOP
DJNZ 73h,tunda3
DJNZ 72h,tunda2
DJNZ 71h,tunda1
RET

;sub program

;table konversi
;tabel konversi hex-7ruas aktif 0
ORG 100h ;alamat awal Tabel
hex7r:
; 0 - 1 - 2 - 3
db 0C0h,0F9h,0A4h,0B0h
; 4 - 5 - 6 - 7
db 099h,092h,082h,0F8h
; 8 - 9 - A - B
db 080h,090h,088h,083h
; C - D - E - F
db 0C6h,0A1h,086h,08Eh
NOP
end ;selesai

f. P043a-pesan.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, 23 Maret 2017
;=================================================================
;Proyek04-tampilan 7 ruas dengan switch
;P031a-tampilan 7 ruas
; program untuk menyalakan 7 ruas sesuai kelompok
;-----------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;- tabel konversi
;------------------------------------------------------------------------
--
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;========================================================================
*/
;==============deklarasi variabel==============================
kode equ 2
t7r equ p0
nilaiawal equ 0
nilaiakhir equ 47
;pengesatn awal
org 0

;program utama
mulai :
;tampilkan kode kelompok di t7r
mov r0,#nilaiawal
bacar0 :
mov a,r0
mov dptr,#hex7r
movc a,@a+dptr
mov t7r,a
call delay
inc r0
cjne R0,#nilaiakhir,bacar0
sjmp mulai

delay:
mov 71h,#2
tunda1:
mov 72,#0
tunda2:
mov 73h,#0
tunda3 :
NOP
DJNZ 73h,tunda3
DJNZ 72h,tunda2
DJNZ 71h,tunda1
RET

;sub program

;table konversi
;tabel konversi hex-7ruas aktif 0
ORG 100h ;alamat awal Tabel
hex7r:
; P - a - g - i - - - A - y - o ;urutan
db 08ch,0A0h,090h,0FBh,0BFh,088h,099h,0A3h ;konversi ke t7r
; B - e - l - a - j - a - r - -
db 080h,084h,0CFh,0A0h,0F1h,0A0h,0Afh,0BFh
; C - o - b - a - l - a - g - i
db 0C6h,0A3h,083h,0A0h,0CFh,0A0h,090h,0FBh
; - - p - a - s - t - i - b - i
db 0BFh,08Ch,0A0h,092h,087h,0FBh,083h,0FBh
; s - a - - - G - i - t - u - a
db 092h,0A0h,0BFh,082h,0FBh,087h,0E3h,0A0h
; j - a - r - e - p - o - t
db 0F1h,0A0h,0AFh,084h,08Ch,0A3h,087h
NOP
end ;selesai

g. P043b-pesan87r.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, 23 Maret 2017
;=================================================================
;Proyek04-tampilan 7 ruas dengan switch
;P031a-tampilan 7 ruas
; program untuk menyalakan 7 ruas sesuai kelompok
;-----------------------------------------------------------------
;Materi baru:
;- tampilan 7 ruas
;- dekoder 74138
;- tabel konversi
;------------------------------------------------------------------------
--
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;========================================================================
*/
;==============deklarasi variabel==============================
kode equ 2
t7r equ p0
nilaiawal equ 0
nilaiakhir equ 47
PosC equ P3.7 ;Posisi T7R CBA dekoder 74138
PosB equ P3.6
PosA equ P3.5
kar0 equ 0
kar1 equ 1
kar2 equ 2
kar3 equ 3
kar4 equ 4
kar5 equ 5
kar6 equ 6
kar7 equ 7

;pengesatn awal
org 0

;program utama
mulai :
;tampilkan kode kelompok di t7r

;tampilkan kode kelompok di T7R


;--- Posisi Y0 (0-0-0)
CLR PosC ;posisi tampilan 0
CLR PosB
CLR PosA
MOV A,#kar0 ;kar0
mov dptr,#hex7r
movc a,@a+dptr
MOV t7r,A ;kirimkan ke T7R
CALL tunda
;--- Posisi Y1 (0-0-1)
CLR PosC ;posisi tampilan 1
CLR PosB
SETB PosA
MOV A,#kar1 ;kar1
mov dptr,#hex7r
movc a,@a+dptr
MOV t7r,A ;kirimkan ke T7R
CALL tunda
;--- Posisi Y2 (0-1-0)
CLR PosC ;posisi tampilan 2
SETB PosB
CLR PosA
MOV A,#kar2 ;kar2
mov dptr,#hex7r
movc a,@a+dptr
MOV t7r,A ;kirimkan ke T7R
CALL tunda
;--- Posisi Y3 (0-1-1)
CLR PosC ;posisi tampilan 3
SETB PosB
SETB PosA
MOV A,#kar3 ;kar3
mov dptr,#hex7r
movc a,@a+dptr
MOV t7r,A ;kirimkan ke T7R
CALL tunda
;--- Posisi Y4 (1-0-0)
SETB PosC ;posisi tampilan 4
CLR PosB
CLR PosA
MOV A,#kar4 ;kar4
mov dptr,#hex7r
movc a,@a+dptr
MOV t7r,A ;kirimkan ke T7R
CALL tunda
;--- Posisi Y5 (1-0-1)
SETB PosC ;posisi tampilan 5
CLR PosB
SETB PosA
MOV A,#kar5 ;kar5
mov dptr,#hex7r
movc a,@a+dptr
MOV t7r,A ;kirimkan ke T7R
CALL tunda
;--- Posisi Y6 (1-1-0)
SETB PosC ;posisi tampilan 6
SETB PosB
CLR PosA
MOV A,#kar6 ;kar6
mov dptr,#hex7r
movc a,@a+dptr
MOV t7r,A ;kirimkan ke T7R
CALL tunda
;--- Posisi Y7 (1-1-1)
SETB PosC ;posisi tampilan 7
SETB PosB
SETB PosA
MOV A,#kar7 ;kar7
mov dptr,#hex7r
movc a,@a+dptr
MOV t7r,A ;kirimkan ke T7R
CALL tunda

AJMP mulai ;kembali ke mulai

tunda:
mov 71h,#2
tunda1:
mov 72,#0
tunda2:
mov 73h,#0
tunda3 :
NOP
DJNZ 73h,tunda3
DJNZ 72h,tunda2
DJNZ 71h,tunda1
RET

;sub program

;table konversi
;tabel konversi hex-7ruas aktif 0
ORG 100h ;alamat awal Tabel
hex7r:
; P - a - g - i - - - A - y - o ;urutan
db 08ch,0A0h,090h,0FBh,0BFh,088h,099h,0A3h ;konversi ke t7r
; B - e - l - a - j - a - r - -
db 080h,084h,0CFh,0A0h,0F1h,0A0h,0Afh,0BFh
; C - o - b - a - l - a - g - i
db 0C6h,0A3h,083h,0A0h,0CFh,0A0h,090h,0FBh
; - - p - a - s - t - i - b - i
db 0BFh,08Ch,0A0h,092h,087h,0FBh,083h,0FBh
; s - a - - - G - i - t - u - a
db 092h,0A0h,0BFh,082h,0FBh,087h,0E3h,0A0h
; j - a - r - e - p - o - t
db 0F1h,0A0h,0AFh,084h,08Ch,0A3h,087h
NOP
end ;selesai

3.3 Hasil Percobaan


a. Program Program P041a-T7r.asm (program untuk menyalakan 7 segmen sesuai
kelompok.)
Simulasi EDSIM 51

Simulasi pada Proteus

Tampilan 7 segment pada kit trainer


b. P041b-T7rSwEDSIM.asm
Simulasi pada proteus
1. Saat saklar 0 ditekan maka tampilan pada 7 ruas :

2. Saat saklar 1 ditekan maka tampilan pada 7 ruas :

3. Saat saklar 2 ditekan maka tampilan pada 7 ruas :

4. Saat saklar 3 ditekan maka tampilan pada 7 ruas :


5. Saat saklar 4 ditekan maka tampilan pada 7 ruas :

6. Saat saklar 5 ditekan maka tampilan pada 7 ruas :

7. Saat saklar 6 ditekan maka tampilan pada 7 ruas :


8. Saat saklar 7 ditekan maka tampilan pada 7 ruas :

TAMPILAN PADA EDSIM 51


1. Saat saklar 0 ditekan maka tampilan pada 7 ruas :

2. Saat saklar 1 ditekan maka tampilan pada 7 ruas :


3. Saat saklar 2 ditekan maka tampilan pada 7 ruas :

4. Saat saklar 3 ditekan maka tampilan pada 7 ruas :

5. Saat saklar 4 ditekan maka tampilan pada 7 ruas :

6. Saat saklar 5 ditekan maka tampilan pada 7 ruas :

7. Saat saklar 6 ditekan maka tampilan pada 7 ruas :


8. Saat saklar 7 ditekan maka tampilan pada 7 ruas :

c. Program P041c-T7rSwKIT.asm
Tampilan pada kit trainer
1. Saat saklar 0 ditekan :

2. Saat saklar 1 ditekan :

3. Saat saklar 2 ditekan :

4. Saat saklar 3 ditekan :

5. Saat saklar 4 ditekan :

6. Saat saklar 5 ditekan :


7. Saat saklar 6 ditekan :

8. Saat saklar 7 ditekan :

d. Program P042a-T7rPencacah naik.asm


Simulasi pada proteus
Tampilan 7 ruas akan menampilkan counter 0-9 setelah tercapai 9 maka akan kembali
ke 0 lagi.
a. Program P043a-T7rPencacah.asm
Hasil percobaan pada kit trainer
Tampilan 7 ruas akan menampilkan counter 0-9 setelah tercapai 9 maka akan kembali
ke 0 lagi.
TAMPILAN PADAKIT TRAINER
Tampilan 7 ruas akan menampilkan counter 0-9 setelah tercapai 9 maka akan kembali
ke 0 lagi.

e. Program P042b-T7rPencacah turun.asm


Simulasi pada proteus
Tampilan 7 ruas akan menampilkan counter 9-0 setelah tercapai 0 maka akan kembali
ke 9 lagi.
Hasil percobaan pada kit trainer
Tampilan 7 ruas akan menampilkan counter 9-0 setelah tercapai 0 maka akan kembali
ke 9 lagi.
TAMPILAN PADAKIT TRAINER
Tampilan 7 ruas akan menampilkan counter 0-9 setelah tercapai 9 maka akan kembali
ke 0 lagi.

f. Program P043a-pesan.asm
g. Program P043b-pesan87r.asm
3.1.1 Pembahasan
a. Proyek P41a menampilkan tampilan pada 7 segmen berdasarkan nama kelompok yang
disimpan di accumulator, sebelum ditampilkan pada 7 segmen terlebih dahulu kode
pada accumulator di konversi pada tabel konversi untuk dirubah menjadi heksa dari
nama kelompok.
b. Proyek 41b menampilkan tampilan 7 ruas, berdasarkan nomor saklar yang ditekan pada
edsim, setiap penekanan tombol pada Port 2 maka data akan disimpan pada accumulator
kemudian di konversi ke heksa dengan melihat di tabel konversi, setelah dikonversi baru
ditampilkan pada 7ruas.
c. Proyek 41c menampilkan tampilan 7 ruas, berdasarkan nomor saklar yang ditekan pada
kit, setiap penekanan tombol pada Port 2 maka data akan disimpan pada accumulator
kemudian di konversi ke heksa dengan melihat di tabel konversi, setelah dikonversi baru
ditampilkan pada 7ruas. Tampilan 7 ruas akan menunjukan nomor saklar yang ditekan.
d. Proyek 42a menampilkan tampilan 7 ruas dengan program pencacah naik , yaitu
menghitung dari 0 sampai 9, dengan menggunakan perintah increment R0 maka nilai
akan ditambah 1,kemudian dikonversi pada tabel konversi untuk diubah ke heksa
kemudian ditampilkan pada 7 ruas.
e. Proyek 42b menampilkan tampilan 7 ruas dengan program pencacah turub , yaitu
menhitung dari 9 sampai 0, dengan menggunakan perintah decrement R0 maka nilai
akan dikurangi 1,kemudian dikonversi pada tabel konversi untuk diubah ke heksa
kemudian ditampilkan pada 7 ruas.
f. Proyek 43a menampilkan tampilan 7 ruas dengan kata "Pagi - Ayo Belajar - Coba Lagi
- Pasti Bisa - Gitu aja repot" pada 1 buah 7 ruas saja. Sebelum ditampilkan pada 7 ruas
dikonversi dahulu pada tabel konversi untuk dirubah ke heksa.
g. Proyek 43b menampilkan tampilan 7 ruas dengan kata "Pagi - Ayo Belajar - Coba Lagi
- Pasti Bisa - Gitu aja repot" pada 8 buah 7 ruas saja. Sebelum ditampilkan pada 7 ruas
dikonversi dahulu pada tabel konversi untuk dirubah ke heksa.

Sub Program Tunda


Untuk program P032a membuat program untuk menyalakan t7r dengan berkedip
menggunakan program tunda dengan menggunakan perintah MOV membentuk kode YX
hex (Y: kelas dan X:kelompok)
Masukan : tidak ada
Proses : peralihan data segera ke pintu P0
Keluaran : pintu P3.0-7 (t7r).
Untuk program 032a-LED
tunda:
MOV R7, #jeda ;untuk memberikan nilai tunda1 sesuai harga jeda yang diberikan
tunda1:
MOV R6, #50 ;untuk memberikan nilai tunda2 seharga 50ms
tunda2:
MOV R5, #50 ;untuk memberikan nilai tunda3 seharga 50ms
tunda3:
NOP ; tidak melakukan apa-apa selama jeda
DJNZ R5, tunda3 ; untuk decrement R5 lompat ke tunda3
DJNZ R6, tunda2 ; untuk decrement R6 lompat ke tunda2
DJNZ R7, tunda1 ; untuk decrement R7 lompat ke tunda1
RET ;kembali
END
4. Pertanyaan
1. Bagaimana prinsip kerja Tabel Konversi?
cara ini digunakan untuk mengambil data yang ditulis pada memory program. (look-
up table yang ada di memori program). Instruksi pengalamatan berindex yaitu
MOVC A,@A+DPTR (data yang terletak pada memory yang alamatnya merupakan
hasil penjumlahan isi register A dengan isi register DPTR disalin ke register A).
2. Dimanakah Tabel Konversi Tersimpan?
di SP (stack pointer) dimana dalam program disimpan mulai pada register 100h.
3. Bagaimana cara kerjanya? (Jelaskan dengan gambar diagram alir)
Cara kerjanya dimulai dari menyalin kode ke acc. Kemudian menyalin tabel konversi
ke stack pointer. Kemudian mengambil tumpukan dari stackpointer berdasarkan nilai
accumulator, kemudian kode yang disalin dari stack pointer , ditampilkan pada 7ruas.

5. Kesimpulan
Beberapa simpulan yang dapat ditarik dari dari praktikum ini:
1. Dalam program proyek 4 ini terdapat pengalamatan berindex , cara ini digunakan
untuk mengambil data yang ditulis pada memory program. (look-up table yang ada
di memori program).
2. Instruksi pengalamatan berindex yaitu MOVC A,@A+DPTR (data yang terletak
pada memory yang alamatnya merupakan hasil penjumlahan isi register A dengan
isi register DPTR disalin ke register A).
3. Proyek P41a menampilkan tampilan pada 7 segmen berdasarkan nama kelompok ,
sebelum di tampilkan pada 7 ruas, kode kelompok terlebih dahulu dikonversi di
tabel konversi.
4. Proyek 41b menampilkan tampilan 7 ruas, berdasarkan nomor saklar yang ditekan
pada edsim. Sebelum ditampilkan pada 7 ruas dikonversi dahulu pada tabel
konversi untuk dirubah ke heksa.
5. Proyek 41c menampilkan tampilan 7 ruas, berdasarkan nomor saklar yang ditekan
pada kit. Sebelum ditampilkan pada 7 ruas dikonversi dahulu pada tabel konversi
untuk dirubah ke heksa.
6. Proyek 42a menampilkan tampilan 7 ruas dengan program pencacah naik , yaitu
menghitung dari 0 sampai 9, dengan menggunakan perintah increment R0 maka
nilai akan ditambah 1,kemudian dikonversi pada tabel konversi untuk diubah ke
heksa kemudian ditampilkan pada 7 ruas.
7. Proyek 42b menampilkan tampilan 7 ruas dengan program pencacah turub , yaitu
menhitung dari 9 sampai 0, dengan menggunakan perintah decrement R0 maka
nilai akan dikurangi 1,kemudian dikonversi pada tabel konversi untuk diubah ke
heksa kemudian ditampilkan pada 7 ruas.
8. Proyek 43a menampilkan tampilan 7 ruas dengan kata "Pagi - Ayo Belajar - Coba
Lagi - Pasti Bisa - Gitu aja repot" pada 1 buah 7 ruas saja. Sebelum ditampilkan
pada 7 ruas dikonversi dahulu pada tabel konversi untuk dirubah ke heksa.
9. Proyek 43b menampilkan tampilan 7 ruas dengan kata "Pagi - Ayo Belajar - Coba
Lagi - Pasti Bisa - Gitu aja repot" pada 8 buah 7 ruas saja. Sebelum ditampilkan
pada 7 ruas dikonversi dahulu pada tabel konversi untuk dirubah ke heksa.

Anda mungkin juga menyukai