Anda di halaman 1dari 10

LAPORAN

Praktik Mikroprocessor
(ELA 349)

NAMA :

NIM :

PROGRAM STUDI TEKNIK ELEKTRONIKA

FAKULTAS TEKNIK

UNIVERSITAS NEGERI PADANG

2017
Topik : operasi input output

Judul : pemrograman Mikroprosesor untuk tampilan angka pada seven segmen melalui port
378H PC

A. Tujuan
1. Agar mahasiswa dapat membuat program untuk menampilkan sebuah angka
dengan SEVEN SEGMEN yang terpasang pada port 378H PC.
2. Agar mahasiswa dapat membut program untuk menampilkan ANGKA BERURUT
NAIK dengan SEVEN SEGMEN yang terpasang pada port 378H PC.
3. Agar mahasiswa dapat membuat program untuk menampilkan ANGKA
BARURUT TURUN dengan SEVEN SEGMEN yang terpasang pada port 378H
PC.
4. Agar mahasiswa dapat membuat program untuk menampilkang ANGKA
MELALUI KEYBOARD dengan SEVEN SEGMEN yang terpasang pada port
378H PC.

B. Teori Penunjang
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:

Port 378H bersifat keluaran keluaran, karena pada port ini dapat mengeluarkan data
untuk ditampilkan ke alat-alat luar. Pada percobaan ini akan dibangun program untuk
menampilkan data angka dengan seven segmen yang terpasang pada port 378H.
Untuk membangun program harap diperhatikan koneksi antara pin seven segmen
dengan pin port 378H tersebut. Koneksi pin antara keduanya adalah sebagai berikut:

Ada dua jenis seven segmen yaitu: Common Katoda dan Common anoda. Common
katoda adalah seven segmen yang setiap katoda LED-nya disambung bersama
sehingga hanya yang keluar hanya satu pin saja yang keluar yang diberi nama
Common. Data untuk seven segmen common katoda dimasukan pada setiap anoda
LED. Begitu juga untuk Common Anoda, semua anoda LED-nya disambungkan
bersama, sehingga data akan dimasukan pada masing-masing katoda.
Sebelum memprogram tampilan seven segmen perlu disusun data untuk masing angka
yang akan ditampilkan. Sesuai dengan koneksi pin-pin perangkat kerasnya dan
common pin dari seven segmen seperti gambar 3a, maka dapat disusun tabel data
untuk tampilan masing-masing angka seperti tabel 1. Untuk memprogram tampilan
sebuah angka pada seven segmen dilakukan dengan mengirimkan data yang sudah
disusun tadi melalui port, seperti potongan program berikut.

Mov al,00111111b ;isi AL dengan 3fH (angka 0)


Mov dx,378H ;isi dx dengan alamat 378H
Out dx,al ;memasukan data al ke port 378aH

Tabel 1. Komposisi data satu seven segmen common katoda

TAMPILAN KOMPOSISI DATA DATA (HEXA)


ANGKA (h,g,f,e,d,c,b,a)
0 0011 1111 3F
1 0000 0110 06
2 0101 1011 5B
3 0100 1111 4F
4 0110 0110 66
5 0110 1101 6D
6 0111 1101 7D
7 0000 0111 07
8 0111 1111 7F
9 0110 1111 6F

Menampilkan ngka secara berurut dilakukan dengan cara mengirimkan komposisi


data melalui port sepaket demi sepaket dan yang diselingin dengan delay. Artinya
setelah sebuah angka tampil harus ditahan dulu sebentar baru dukirim data berikutnya.
Jika anda ingin menampilkan angka secara berurut turun mka dapat dilakukan dengan
mengirimkan data mulai dari komposisi data angka 9 menuju ke angka 0.
Persoalan berikutnya adalah menampilkan angka lebih dari satu. Sebenarnya angka
yang ditampilkan tetap satu demi satu juga, tetapi ditampilkan secara bergantian
dengan kecepatan lebih dari 25 kali setiap detik. Yang perlu diperhatikan juga adalah
bahwa tampilan bukan sekedar hanya bergantian tetapi yang lebih penting lagia
adalah posisi tampilan angka tersebut harus sesuai dengan bobotnya, apakah angka ini
satuan, puluhan atau ratusan.
Untuk pemprogram tampilan dua buah seven segmen seperti rangkaian 3b. Dimana
kedua pin common tidak digabung lagi tetapi masing-masing common disambung ke
pin 16 (C2)dan 17 (C3) port 37aH. Tujuannya adalah agar masing-masing seven
segmen dapat dinyalakan sendiri. Data untuk kedua seven segmen dimasukan pada
saluran yang sama. Dengan demikian kedua port 378H dan 37aH harus diprogram
secara bersama. Agar angka satuan tampil pada seven segmen satuan maka common
seven segmen satuan harus diberi logika 0 sedangkan common yang lain harus
berlogika 1. Begitu juga untuk menapilkan angka puluhan maka common seven
segmen puluhan yang diberi logika 0 sedangkan common yang satuan diberi logika 1.
Kemudian yang amat penting adalah bahwa angka satuan dan puluhan ditampilkan
dengan cara berganti dengan frekuensi yang lebih besar dari batas penglihatan
manusia (>25 kali / detik). Berikut potongan program tampilan dua angka pada seven
segmen common katoda yang dirangkai seperti gambar 3b:
Ulang :mov al,01011011b
Mov dx,378H
Out dx,al
Mov al,00000000b
Mov dx,37aH
Out dx,al
Call delay
Mov al,00000111b
Mov dx,378H
Out dx,al
Mov al,11111111b
Mov dx,37aH
Out dx,al
Call delay
Jmp ulang

C. Alat dan Bahan


1. Komputer PC yang mempunyai port 378H....................... 1 buah
2. SEVEN SEGMEN display common katoda......................... 1 buah
3. Software Editor.com,Masm.exe dan exe2bin.exe............ 1 set
D. Listing Program
PROGRAM 1

;PROGRAM MENAMPIKAN SEBUH ANGKA 2 DENGAN SEVEN SEGMEN


;MELALUI PORT 378H by edidas

Seven segment
Assume cs:seven
Org 100h

Mulai : jmp jalan


Jalan : Mov al,01011011b
Mov dx,378H
Out dx,al
Seven ends
End mulai

PROGRAM 2

;PROGRAM MENAMPILKAN ANGKA DECIMAL BERURUT NAIK


DENGAN ;SEVEN SEGMEN
;MELALUI PORT 378H by edidas

Urutnaik segment
Assume cs:urutnaik
Org 100h

Mulai: jmp jalan


Delay proc near
Push cx
Push bp
Mov bp,5555
Terus: mov cx,9999h

Hitung: loop hitung

Dec bp
Jnz terus
Pop bp
Pop cx
Ret
Delay endp

Jalan: mov Al,00111111b


Mov dx,Al
Call delay
Mov Al,00000110b
Mov dx,Al
Call delay

Mov Al,01011011b
Mov dx,Al
Call delay
Mov Al,01001111b
Mov dx,Al
Call delay
Mov Al,01100110b
Mov dx,Al
Call delay
Mov Al,01101101b
Mov dx,Al
Call delay
Mov Al,01111101b
Mov dx,Al
Call delay
Mov Al,00000111b
Mov dx,Al
Call delay
Mov Al,01111111b
Mov dx,Al
Call delay
Mov Al,01101111b
Mov dx,Al
Call delay
Mov ah,0Bh
Int 21H
Cmp aL,11111111b
Je berhenti

Jmp jalan

Berhenti: int 20h

Urutnaik ends
End mulai

PROGRAM 3

;PROGRAM MENAMPILKAN ANGKA DECIMAL BERURUT NAIK DENGAN


SEVEN ;SEGMEN
;MELALUI PORT 378H MENGGUNAKAN ARAY DATA, by edidas

Urutnaik2 segment
Assume cs:urutnaik2
Org 100h
Start: jmp jalan

Angka db00111111b, 00000110b, 01011011b, 01001111b, 01100110b


db01101101b, 01111101b, 00000111b, 01111111b, 01101111b

pembuka db,13,10, TAMPILAN PROGRAM ANGKA BERURUT NAIK PORT378H PC


db,13,10, creaty by edidas
db,13,10,,13,10, Program ini tampilannya sama dengan PROGRAM 2
db,13,10, Tetapi listing programnya lebih pendek !!!
db,13,10, Ini adalah program terapan !!!
db,13,10. Cara kerjanya masih sama dengan PROGRAM 2!
db,13.10, OK..., ,13,10,,13,10, $

Delay proc near


Push cx
Push bp
Mov bp,5555
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

Mov ah,9h
Mov dx, offset pembuka
Int 21h

Ulang: mov bx,offset angka


Mov al,[bx]
Mov cx,0aH

Lagi: mov dx,378h


Out dx,al

Call delay

Mov ah,0Bh
Int 21H
Cmp aL,11111111b
Je selesai
Inc bx
Mov al,[bx]
Loop lagi
Jmp ulang

Selesai: int 20h


Urutnaik2 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 7s.asm
5. Compile program inisial.asm sehingga menjadi 7s.obj
Perintahnya: masm 7s.asm
6. Link program 7s.obj sehingga menjadi 7s.exe
Perintahnya: link 7s.obj
7. Rubah inisial.exe menjadi 7s.com
Perintahnya: exe2bin 7s.exe 7s.com
8. Selesai mengompile kembali ke prompt DOS.
9. Setelah berada di prompt DOS ketikan 7S 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=000000100).
10. Lanjutkan dengan cara yang sama untuk PROGRAM 2. Jika program anda benar
maka akan ditampilkan ANKA DESIMAL BERURUT NAIK pada SEVEN
SEGMEN.
11. Lanjutkan dengan cara yang sama untuk PROGRAM 3. Jika program anda benar
maka akan ditampilkan juga ANGKAH DESIMAL BERURUT NAIK pada
SEVEN SEGMEN.
12. Lanjutkan dengan cara yang sama untuk PROGRAM 4 yang and rancang sendiri
untuk menampilkan DUA BUAH ANGKA DENGAN SEVEN SEGMEN
13. Kembangkan program anda untuk TAMPILAN ANGKA CARA LAIN

F. Analisa Data
Delay proc near : prosedur delay
Push cx : simpan nilai cx ke stack
Push bp : simpan nilai bp ke stack
Mov bp,5555 :isi bp sekarang dengan 5555
Terus:mov cx 9999h :isi cx sekrang dengan 9999h
Loop hitung :loncat ke lbel hitung
Dc bp :menurunkan nilai bp dengan 1
Jnz terus :ulang sampai cx=0
Pop bp :mengembalikan nilai bp ke stack
Pop cx mengembalikan nialai cx ke stack
Ret :kembali ke program induk
Delay endp :akhir prosedur delay
Mov dx,378H :isi dx dengan alamat 378H
Mov al,00111111b :isi AL dengan 3fH(angka 0)
Out dx ,al :masukan data al ke port 378H
Call delay :mengarahkan pelaksanaan ke alamat delay
Mov ah,0Bh :service untuk keluar/ service baca tombol
Int 21h :untuk mengakhiri program
Cmp al,11111111b :ffh
Int 20h :untuk mengakhiri program
Int 10h :untuk mengatur jenis layar
Mov ah,0h :menunjukkan service 0 mengatur format layar
Mov al,3h :format layar
Inc bx :untuk menaikkan bx dengan 1
Jmp ulang :ulang sampai ke cx
Loop lagi :loncat ke lagi selama cx belum 0
Mov al [bx] :putar bit al 1 kekanan

Anda mungkin juga menyukai