Anda di halaman 1dari 8

1

A. Tujuan
1. Agar mahasiswa dapat membuat program untuk menampilkan data ke
lampu LED yang terpasang pada port 378H PC.
2. Agar mahasiswa dapat membuat program untuk menampilkan animasi
FLIP-FLOP ke lampu LED yang terpasang pada port 378H PC.
3. Agar mahasiswa dapat membuat program untuk menampilkan animasi
LAMPU BERJALAN ke lampu LED yang terpasang pada port 378H
PC.
4. Agar mahasiswa dapat membuat program untuk menampilkan animasi
LAMPU WIPER ke lampu LED yang terpasang pada port 378H PC.
5. Agar mahasiswa dapat membuat program lampu berjalan dengan
animasi lainnya ke lampu LED yang terpasang pada port 378H PC.

B. Teori Singkat
Komputer

PC

mempunyai

port

printer

dengan

alamat

378H,

menggunakan soket DB25 dengan data 8 bit yang keluar pada pin no 2, 3,
9. Urutan data pada pin dimulai dari D0, D1,. D7, seperti gambar
berikut:

Gambar 1a. Photo Port 378H pada PC

Gambar 1b. Diagram PIN Port 378H pada PC


Port 378H bersifat keluaran keluaran, karena pada port ini dapat
mengeluarkan data untuk ditapilkan kea lat-alat luar. Pin yang bernama
S3-S7 adalah port yang beralamat 379H bersifat masukan, karna pada port

2
379H ini dapat dimaksukan data ke prosesor. Port ini dinamakan juga port
status, kerena berguna untuk memberitahukan status printer ke prosesor.
Perahtikan juga tanda pada S7 yang bergaris diatasnya, itu menandakan
bahwa datanya TERBALIK, kalau data yang masuk 1 maka yang sampai
ke prosesor adalah 0, begitu sebaliknya. Pin berikutnya adalah port 37aH
yang diberi inisial C0-C3, yang bersifat keluaran, bergunaka untuk
mengonontrol printer oleh prosesor. Perahatikan juga C1 dan C3 datanya
TERBALIK pula. Nomor pin untuk port 37aH adalah 1, 14, 16 dan 17.
Untuk menampilkan data pada LED yang tersambung ke Port 378H dapat
digunakan potongan program berikut :
mov al,10001001b
; isi AL dengan 89H
mov dx, 378H
; isi dx dengan alamat 378h
out dx,al
; masukan data al ke port
378H
Baris pertama mov AL,10001001B berarti isi register AL dengan data
89H. Penting !! Data yang akan dikirim ke port PC harus diletakkan pada
register AL terlebih dahulu. Baris kedua adalah

Mov DX,378 berarti

tunjuk akamat 378H. Inngat Alamat port yang akan dituju harus di tunjuk
oeh register DX. Baris ketiga Out DX,AL, berarti keluarkan data yang ada
di register AL ke port yang ditunjuk oleh reister DX. Untuk merealisasikan
program ini digunakan bahasa Pemrograman assembler MASM (Macro
Assembler). Membuat program dengan bahasa asembley memerlukan
program EDITOR untuk menulis sintag program, MASM.EXE untuk
mengompilenya, LINK.EXE dan EXE2BIN.exe untuk merubah menjadi
program bereksistensi com. Dengan demikian sebelum memulai menulis
program harus disiapkan 4 program sekaligus, yaitu :
1.
2.
3.
4.

Editor.com
Masm.exe
Link.exe
Exe2bin.exe

C. Alat Dan Bahan


1. Komputer PC yang mempunyai port 378H ...............
2. Indikator LED display .

1 buah
3 x 8

buah
3. Software Editor.com, Masm.exe, Link.exe dan exe2bin.exe 1 set

D. Listing Program :
POGRAM 1

3
;PROGRAM MENAMPILKAN DATA KE PORT 378H BY Edidas
Program1

segment
assume cs:program1
org
100h

mulai:
jalan:

jmp jalan
Mov al,00000100B
Mov dx, 378H
Out dx,al
ends

Program1
end mulai

PROGRAM 2
;PROGRAM MENAMPILKAN ANIMASI FLIP-FLOP KE PORT 378H
BY Edidas
flip

segment
assume cs:flip
org
100h

mulai:
jmp jalan
delay proc near
; prosedur delay
push cx
; Simpan nilai cx ke stack
push bp
mov bp,5555
terus: mov cx,9999h ; Isi cx sekarang dg 9999h
hitung: loop hitung
dec bp
jnz terus
pop bp
pop cx
ret
delay endp

;ulang sampai cx=0


; ulang sampai bp=0
; keluarkan kembali nilai bp
; return (kembali ke program induk)
; Akhir prosedur delay

jalan: Mov Al,00001111b


Mov dx,378H
Out dx,AL
Call delay
mov ah,0Bh
; servis untuk mnghentkan
int 21H
; dengan menekan sebarang tombol
cmp aL,11111111b
je berhenti
mov al,11110000b
out dx,al
call delay

4
jmp jalan
berhenti:

int 20h

flip ends
end mulai
PROGRAM 3
;LAMPU BERJALAN MELALUI PORT 378H BY EDIDAS
LJAL segment
assume cs:LJAL
org 100h
start: jmp mulai
pembuka db ,13,10,' PROGRAM LAMPU BERJALAN PADA
PORT378H PC
db ,13,10,' Creaty by edidas'
db ,13,10,,13,10,'Program ini baru untuk satu lampu'
db ,13,10,'berjalan ke satu arah saja pada port 378H!'
db ,13,10,'Anda Wajib mengembangkannya dengan variasi lain'
db ,13,10,' seperti yang terdapat dalam Tabel pengamatan!'
db ,13,10,
' OK...', ,13,10,,13,10,'$'
delay proc near
push cx
push bp
mov bp,1111
terus: mov cx,9999h
hitung: loop hitung
dec bp
jnz terus
pop bp
pop cx
ret
delay endp
mulai: mov ah,0h
mov al,3h
int 10h

; prosedur delay
; Simpan nilai cx ke stack
; Isi cx sekarang dg bp+9999h
;ulang sampai cx=0
; ulang sampai bp=0
; keluarkan kembali nilai bp
; return (kembali ke program induk)
; Akhir prosedur delay
; Bersih layar

Mov ah,9h
mov dx, offset pembuka ; Tampilkan kata pembuka
int 21h
mov al,01h
lagi:

mov dx,378h

; isi al mula-mula 01h


; isi dx dgn alamat port B

5
push ax
out dx,al

; simpan isi al ke dl dulu


; keluarkan isi al ke port B

call delay
; panggil delay utk menunggu
mov ah,0Bh
; servis untuk keluar
int 21H
; dengan menean sebarang tombol
cmp aL,11111111b
je selesai
pop ax
; ambil data ax kembali
ror al,1
; putar bit al 1 ke kanan
jmp lagi
; lompat ke lagi (ulang terus)
selesai: int 20h
LJAL ends
end start

E. Langkah Kerja.
1.
2.
3.
4.
5.

Siapkan komputer dalam sistem operasi DOS


Jalankan program EDIT.COM
Ketiklah program1 mulai judul sampai ketemu kata-kata end
Simpanlah file itu dengan nama prog1.asm
Compile program inisial.asm sehingga menjadi prog1.obj
perintahnya : masm prog1.asm
6. Link program prog1.obj sehingga menjadi prog1.exe
perintahnya : link prog1.obj
7. Rubah inisial.exe menjadi prog1.com perintahnya : exe2bin prog1.exe
prog1.com
8. Selesai mengompile kembali ke prompt DOS.
9. Setelah berada di prompt DOS ketikan PROG1 lalu tekan enter. Jika
program anda benar maka akan tampil data biner 4 ke LED, yang
ditandai dengan menyalanya lampu LED ke 3 dari kanan ( sesuai data
pada AL= 00000100).
10. Lanjutkan dengan cara yang sama untuk PROGRAM 2. Jika Program
anda benar maka akan ditampilkan animasi FLIP-FLOP pada lampu
LED.
11. Lanjutkan dengan cara yang sama untuk PROGRAM 3. Jika Program
anda benar maka akan ditampilkan animasi LAMPU BERJALAN pada
lampu LED.
12. Lanjutkan dengan cara yang sama untuk PROGRAM 4 yang anda
rancang sendiri untuk menampilkan animasi LAMPU BERJALAN KE
KIRI DAN KE KANAN pada lampu LED ( animasi Wiper).
13. Kembangkan program anda untuk animasi lampu LED yang lain

F. Tugas Dan Perngayaan


1. Kembangkan program animasi lampu pada port 378H PC minimal :
a. Lampu LED Kembang Kempis
Jawab :
;PROGRAM MENAMPILKAN ANIMASI
KEMPIS KE PORT 378H BY THOMAS

KEMBANG

LJAL segment
assume cs:LJAL
org 100h
start: jmp mulai
delay proc near
push cx
push bp
mov bp,1111
terus: mov cx,9999h
hitung: loop hitung
dec bp
jnz terus
pop bp
pop cx
ret
delay endp

; prosedur delay
; Simpan nilai cx ke stack
; Isi cx sekarang dg bp+9999h
;ulang sampai cx=0
; ulang sampai bp=0
; keluarkan kembali nilai bp
; return (kembali ke program induk)
; Akhir prosedur delay

mulai: mov ah,0h


mov al,3h
int 10h

; Bersih layar

lagi:

; isi dx dgn alamat port B

mov dx,378h

mov al,00011000b
out dx,al
; keluarkan isi al ke port B
call delay
; panggil delay utk menunggu
mov al,00100100b
out dx,al
; keluarkan isi al ke port B
call delay
; panggil delay utk menunggu
mov al,01000010b
out dx,al
; keluarkan isi al ke port B
call delay
; panggil delay utk menunggu
mov al,10000001b
out dx,al
; keluarkan isi al ke port B
call delay
; panggil delay utk menunggu
mov al,01000010b

7
out dx,al
call delay

; keluarkan isi al ke port B


; panggil delay utk menunggu

mov al,00100100b
out dx,al
; keluarkan isi al ke port B
call delay
; panggil delay utk menunggu
mov ah,0Bh
; servis untuk keluar
int 21H
; dengan menean sebarang tombol
cmp aL,11111111b
je selesai
jmp lagi
selesai: int 20h
LJAL ends
end start

b. Lampu LED Kura-kura Lapar


Jawab :
;PROGRAM MENAMPILKAN ANIMASI KURA-KURA
LAPAR KE PORT 378H BY THOMAS
LJAL segment
assume cs:LJAL
org 100h
start:

jmp mulai

delay proc near


; prosedur delay
push cx
; Simpan nilai cx ke stack
push bp
mov bp,1111
terus: mov cx,9999h
; Isi cx sekarang dg bp+9999h
hitung: loop hitung
dec bp
jnz terus
pop bp
pop cx
ret
delay endp
mulai: mov ah,0h
mov al,3h
int 10h
lagi:

mov dx,378h
mov al,11111000b

;ulang sampai cx=0


; ulang sampai bp=0
; keluarkan kembali nilai bp
; return (kembali ke program induk)
; Akhir prosedur delay
; Bersih layar
; isi dx dgn alamat port B

8
out dx,al
call delay

; keluarkan isi al ke port B


; panggil delay utk menunggu

mov al,11110100b
out dx,al
; keluarkan isi al ke port B
call delay
; panggil delay utk menunggu
mov al,11110010b
out dx,al
; keluarkan isi al ke port B
call delay
; panggil delay utk menunggu
mov al,11110001b
out dx,al
; keluarkan isi al ke port B
call delay
; panggil delay utk menunggu
mov al,11110010b
out dx,al
; keluarkan isi al ke port B
call delay
; panggil delay utk menunggu
mov al,11110100b
out dx,al
; keluarkan isi al ke port B
call delay
; panggil delay utk menunggu
mov ah,0Bh
; servis untuk keluar
int 21H
; dengan menean sebarang tombol
cmp aL,11111111b
je selesai
jmp lagi
selesai: int 20h
LJAL ends
end start

Anda mungkin juga menyukai