Upload
ai-chisuke
View
107
Download
15
Embed Size (px)
Citation preview
LAPORAN PRAKTIKUM
SISTEM MIKROPROSESOR, MIKROKONTROLER & PLC
LAMPU BERJALAN MELALUI PORT 378H PC
OLEH :
NAMA : SRI WAHYUNI PUTRI T
NIM : 1102100
PRODI : 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
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 :
Editor.com Masm.exe
Link.exe Exe2bin.exe
D. LISTING PROGRAM
PROGRAM 1; PROGRAM MENAMPILKAN DATA KE PORT 378H BY Edidas
Program1 segmentassume cs:program1org 100h
mulai: jmp jalanjalan: Mov al,00000100B
Mov dx, 378HOut dx,al
Program1 endsend mulai
PROGRAM 2
;PROGRAM MENAMPILKAN ANIMASI FLIP-FLOP KE PORT 378H BY Edidas
flip segmentassume cs:fliporg 100h
mulai: jmp jalan
delay proc near ; prosedur delay push cx ; Simpan nilai cx ke stack push bp mov bp,5555terus: mov cx,9999h ; Isi cx sekarang dg 9999h
hitung: loop hitung ;ulang sampai cx=0 dec bp jnz terus ; ulang sampai bp=0 pop bp ; keluarkan kembali nilai bp pop cx ret ; return (kembali ke program induk)delay endp ; Akhir prosedur delay
jalan: Mov Al,00001111bMov dx,378HOut dx,ALCall 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
berhenti: int 20h
flip endsend mulai
PROGRAM 3;LAMPU BERJALAN MELALUI PORT 378H BY EDIDASLJAL 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 ; prosedur delay push cx ; Simpan nilai cx ke stack push bp mov bp,1111terus: mov cx,9999h ; Isi cx sekarang dg bp+9999h
hitung: loop hitung ;ulang sampai cx=0 dec bp jnz terus ; ulang sampai bp=0 pop bp ; keluarkan kembali nilai bp pop cx ret ; return (kembali ke program induk)delay endp ; Akhir prosedur delay
mulai: mov ah,0h mov al,3h ; Bersih layar int 10h
Mov ah,9h mov dx, offset pembuka ; Tampilkan kata pembuka int 21h
mov al,01h ; isi al mula-mula 01h lagi: mov dx,378h ; isi dx dgn alamat port B push ax ; simpan isi al ke dl dulu 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
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. 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
PROGRAM LAMPU BERJALAN
LJAL 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: int 20h
LJAL ends
end mulai
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
PROGRAM KURA2 LAPAR KE KANAN
kura 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
PROGRAM KURA2 LAPAR KE KIRI
kura 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
PROGRAM KURA2 LAPAR KANAN DAN KIRI
kura 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
PROGRAM
kura 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.