Anda di halaman 1dari 20

LAPORAN PRAKTIKUM SISTEM MIKROPROSESOR, MIKROKONTROLER & PLC LAMPU BERJALAN MELALUI PORT 378H PC

OLEH :

NAMA NIM PRODI

: SRI WAHYUNI PUTRI T : 1102100 : PEND. TEKNIK ELEKTRONIKA

FAKULTAS TEKNIK UNIVERSITAS NEGERI PADANG 2013

A. TUJUAN PRAKTIKUM 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. ALAT DAN BAHAN 1. Komputer PC yang mempunyai port 378H 2. Indikator LED display 3. Software Editor.com, Masm.exe, Link.exe dan exe2bin.exe

C. 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 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 ; isi dx dengan alamat 378h ; masukan data al ke port 378H

mov dx, 378H out dx,al

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 : Editor.com Link.exe Masm.exe Exe2bin.exe

D. LISTING PROGRAM PROGRAM 1


; PROGRAM MENAMPILKAN DATA KE PORT 378H BY Edidas Program1 segment assume cs:program1 org 100h jmp Mov Mov Out ends jalan al,00000100B dx, 378H dx,al

mulai: jalan: Program1 end mulai

PROGRAM 2
;PROGRAM MENAMPILKAN ANIMASI FLIP-FLOP KE PORT 378H BY Edidas flip segment assume cs:flip org 100h jmp jalan proc near push cx push bp mov bp,5555 mov cx,9999h loop hitung dec bp jnz terus pop bp pop cx ret endp 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 jmp jalan ; prosedur delay ; Simpan nilai cx ke stack ; Isi cx sekarang dg 9999h ;ulang sampai cx=0 ; ulang sampai bp=0 ; keluarkan kembali nilai bp ; return (kembali ke program induk) ; Akhir prosedur delay

mulai: delay

terus: hitung:

delay jalan:

berhenti: int 20h flip ends end mulai

PROGRAM 3
;LAMPU BERJALAN MELALUI PORT 378H LJAL segment assume cs:LJAL org 100h start: jmp mulai pembuka db db db db db db db delay ,13,10,' PROGRAM LAMPU BERJALAN PADA PORT378H PC ,13,10,' Creaty by edidas' ,13,10,,13,10,'Program ini baru untuk satu lampu' ,13,10,'berjalan ke satu arah saja pada port 378H!' ,13,10,'Anda Wajib mengembangkannya dengan variasi lain' ,13,10,' seperti yang terdapat dalam Tabel pengamatan!' ,13,10, ' OK...', ,13,10,,13,10,'$' ; 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 BY EDIDAS

terus: hitung:

proc near push cx push bp mov bp,1111 mov cx,9999h loop hitung dec bp jnz terus pop bp pop cx ret endp mov ah,0h mov al,3h int 10h

delay mulai:

Mov ah,9h mov dx, offset pembuka int 21h mov al,01h lagi: mov dx,378h push ax out dx,al call delay

; Tampilkan kata pembuka ; isi al mula-mula 01h ; isi dx dgn alamat port B ; simpan isi al ke dl dulu ; keluarkan isi al ke port B ; panggil delay utk menunggu

mov ah,0Bh ; servis untuk keluar int 21H ; dengan menean sebarang tombol cmp aL,11111111b

je selesai pop ax ror al,1 jmp lagi selesai: int 20h LJAL ends end start ; ambil data ax kembali ; putar bit al 1 ke kanan ; lompat ke lagi (ulang terus)

E. LANGKAH KERJA 1. Siapkan komputer dalam sistem operasi DOS 2. Jalankan program EDIT.COM 3. Ketiklah program1 mulai judul sampai ketemu kata-kata end 4. Simpanlah file itu dengan nama prog1.asm 5. 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. HASIL PRAKTIKUM
LJAL

PROGRAM LAMPU BERJALAN


segment assume cs:ljal org 100h

mulai:

jmp jalan

delay

proc near push cx push bp mov bp,500

terus:

mov cx,9999h

hitung: loop hitung dec bp jnz terus pop bp pop cx ret delay endp

jalan:

mov ah,0h mov al,3h int 10h

mov al,01h

lagi:

mov dx,378H

push ax out dx,al

call delay

mov ah,0Bh int 21h cmp aL,11111111b je selesai

pop ax rol al,1 jmp lagi

selesai: LJAL ends end mulai

int 20h

PROGRAM KEMBANG KEMPIS

kembang segment assume cs:kembang org 100h

mulai:

jmp jalan

delay

proc near push cx push bp mov bp,500

terus:

mov cx,9999h

hitung: loop hitung dec bp jnz terus pop bp pop cx ret delay endp

jalan:

mov dx,378H mov al,10000001b out dx,al call delay

mov al,01000010b out dx,al call delay

mov al,00100100b out dx,al call delay

mov al,00011000b out dx,al call delay

mov al,00100100b out dx,al call delay

mov al,01000010b

out dx,al call delay

mov al,10000001b out dx,al call delay

XOR ax,ax mov ah,0bh int 21h cmp al,11111111b jz selesai jmp jalan

selesai: int 20h kembang ends end mulai

kura

PROGRAM KURA2 LAPAR KE KANAN


segment assume cs:kura org 100h

mulai:

jmp jalan

delay

proc near push cx push bp mov bp,500

terus:

mov cx,9999h

hitung: loop hitung dec bp jnz terus pop bp pop cx ret delay endp

jalan:

mov dx,378H mov al,11110001b out dx,al call delay

mov al,11110010b out dx,al call delay

mov al,11110100b out dx,al call delay

mov al,11111000b out dx,al call delay

mov al,11110100b out dx,al call delay

mov al,11110010b out dx,al call delay

mov al,11110001b out dx,al call delay

XOR ax,ax mov ah,0bh int 21h cmp al,11111111b jz selesai jmp jalan

selesai: int 20h kura ends end mulai

kura

PROGRAM KURA2 LAPAR KE KIRI


segment assume cs:kura org 100h

mulai:

jmp jalan

delay

proc near push cx push bp mov bp,500

terus:

mov cx,9999h

hitung: loop hitung dec bp jnz terus pop bp pop cx ret delay endp

jalan:

mov dx,378H mov al,10001111b out dx,al call delay

mov al,01001111b out dx,al call delay

mov al,00101111b out dx,al call delay

mov al,00011111b out dx,al call delay

mov al,00101111b out dx,al call delay

mov al,01001111b out dx,al call delay

mov al,10001111b out dx,al call delay

XOR ax,ax mov ah,0bh int 21h cmp al,11111111b jz selesai jmp jalan

selesai: int 20h kura ends end mulai

kura

PROGRAM KURA2 LAPAR KANAN DAN KIRI


segment assume cs:kura org 100h

mulai:

jmp jalan

delay

proc near push cx push bp mov bp,1000

terus:

mov cx,9999h

hitung: loop hitung dec bp jnz terus pop bp pop cx ret delay endp

jalan:

mov dx,378H mov al,10001111b out dx,al call delay

mov al,01001111b out dx,al call delay

mov al,00101111b out dx,al call delay

mov al,00011111b out dx,al call delay

mov al,00101111b out dx,al call delay

mov al,01001111b out dx,al call delay

mov al,10001111b out dx,al call delay

mov al,11110001b out dx,al call delay

mov al,11110010b out dx,al call delay

mov al,11110100b out dx,al call delay

mov al,11111000b out dx,al call delay

mov al,11110100b out dx,al call delay

mov al,11110001b out dx,al

call delay

mov al,10001111b out dx,al call delay

XOR ax,ax mov ah,0bh int 21h cmp al,11111111b jz selesai jmp jalan

selesai: int 20h kura ends end mulai

kura

PROGRAM
segment assume cs:kura org 100h

mulai:

jmp jalan

delay

proc near push cx push bp mov bp,1000

terus:

mov cx,9999h

hitung: loop hitung dec bp jnz terus pop bp pop cx ret delay endp

jalan:

mov dx,378H mov bx,3

ulang: mov al,10001111b out dx,al call delay

mov al,01001111b out dx,al call delay

mov al,00101111b out dx,al call delay

mov al,00011111b out dx,al call delay

mov al,00101111b out dx,al call delay

mov al,01001111b out dx,al call delay

mov al,10001111b out dx,al call delay dec bx jnz ulang

mov bx,7 lagi: mov al,11110001b out dx,al call delay

mov al,11110010b out dx,al call delay

mov al,11110100b out dx,al call delay

mov al,11111000b out dx,al call delay

mov al,11110100b out dx,al

call delay

mov al,11110001b out dx,al call delay

mov al,10001111b out dx,al call delay dec bx jnz lagi

XOR ax,ax mov ah,0bh int 21h cmp al,11111111b jz selesai jmp jalan

selesai: int 20h kura ends end mulai

G. KESIMPULAN Fungsi bp pada program adalah untuk menentukan waktu untuk pergerakan lampu LED. Jika waktu dirancang lambat, maka waktu akan lambat, namun pergerakan lampu pada program akan bisa cepat jika waktu pada program diinputkan lebih cepat. Pada praktikum, pergerakan lampu LED tergantung pada program yang diinputkan. Jika program kura2 lapar ke kiri maka lampu LED akan berjalan dari kanan ke kiri sesuai dengan waktu yang telah ditentukan pada program.