Anda di halaman 1dari 36

63

2.2 Perangkat Keras


REGISTER-REGISTER MIKROPROSESSOR 8088
Mikroprosessor 8088 memiliki empat kelompok register 16-bit,
yaitu Data Register, Pointer dan Index Register, Flag Register dan
Instruction Pointer, dan Segment Register.

Data Register
Data Register terdiri dari 4 register 16 bit, dimana tiap register
dapat dipisah menjadi dua register 8 bit, seperti Tabel 2.

Tabel 2. Data Register


7 0 7 0
AH AL AX : Accumulator
BH BL BX : Basis
CH CL CX : Count
DH DL DX : Data

Huruf-huruf ‘H’ dan ‘L’ menyatakan status sebagai high byte atau
low byte, dan dapat digunakan secara terpisah.
Register AX berfungsi sebagai accumulator dan berhubungan
dengan operasi-operasi khusus seperti IN, OUT, perkalian, pembagian
dan lain-lain.
Register BX sering dipergunakan sebagai register basis untuk
mereferensikan lokasi memory. Dalam hal ini BX menyimpan alamat
basis bagi suatu tabel atau array yang lokasi spesifiknya
direferensikan dengan menambahkan nilai offset.
Register CX berfungsi sebagai register pencacah 16-bit untuk
mencacah banyaknya byte atau kata dalam string data tertentu
selama pelaksanaan operasi-operasi string dan dalam operasi-operasi
loop. Register CL yang merupakan bagian dari register CX
dipergunakan dalam operasi geser (shift) dan rotasi.
Register DX dipergunakan dalam operasi perkalian untuk
menyimpan sebagian dari hasil kali 32-bit, atau dalam operasi
pembagian untuk menyimpan suatu nilai sisa. Dapat juga
dipergunakan dalam operasi IN dan OUT untuk menspesifikasikan
alamat port I/O yang dipakai.

Pointer dan Index Register


Pointer dan Index Register sendiri terbagi dalam 4 register 16-bit
yang tak dapat dipisah seperti Data Register. Register yang termasuk
dalam kelompok ini adalah : SP (stack pointer), BP (Base Pointer), SI
(Source Index) dan DI (Destination Index).
64

Tabel 3. Pointer dan IndexRegister


15 0
SP : Stack Pointer
BP : Base Pointer
SI : Source Index
DI : Destination Index

Register index dan pointer dipakai untuk menyimpan nilai offset


guna mengakses lokasi-lokasi memory tertentu yang lazim digunakan,
seperti lokasi puncak stack atau blok-blok data dalam suatu segment
seperti array serta record-record individual.
Kedua register pointer, yaitu SP dan BP dipakai untuk
menyimpan nilai-nilai offset segment stack memori pada saat yang
bersangkutan, sedang kedua register indeks, SI dan DI, digunakan
untuk menyimpan nilai-nilai offset dalam segment data memori pada
saat yang bersangkutan.
Satu hal yang penting diketahui, keempat register ini dapat
dipakai dalam operasi aritmatika maupun logika, sehingga
memungkinkan nilai-nilai offset yang tersimpan didalamnya
merupakan hasil perhitungan-perhitungan sebelumnya.
Register SP merupakan stack pointer yang menunjukkan lokasi
puncak stack. Penunjuk stack merupakan register yang secara implisit
dipakai oleh instruksi PUSH dan POP yang menyimpan dan
mendapatkan kembali data dari stack.
Register SI dapat dipergunakan sebagai register indeks dalam
modus pengalamatan tak-langsung tertentu. Juga digunakan untuk
menyimpan offset untuk mengalamati lokasi suatu operand sumber
selama berlangsungnya operasi string.
Register DI mempunyai fungsi yang hampir sama dengan
register SI di atas, bedanya register ini menunjukkan lokasi suatu
operand tujuan selama berlangsungnya operasi string.

Flag Register dan Instruction Pointer


Register Flag adalah sebuah register 2-byte yang berisi
sembilan bit flag yang digunakan untuk menyatakan berbagai kondisi
selama pelaksanaan suatu program. Bit 0, 2, 4, 6, 7, dan 11 berisi
flag-flag status yang menyatakan hasil operasi-operasi program. Bit 8
sampai 10 berisi flag-flag pengendali, bit 1, 3, 5, dan 12 sampai 15
tidak dipergunakan.
65

Gambaran kedua register yang termasuk dalam kelompok ini


diberikan pada tabel 4., dibawah ini:

Tabel 4. Flag Register dan Instruction Pointer


15 0
IP Instruction
Pointer
Status word atau
O D I T Z A P C
flag
15 11 0

Instruction Pointer dipergunakan untuk melokasikan posisi dalam


Code Segment pada saat yang bersangkutan, maka suatu alamat 20-
bit tertentu dalam segment tersebut dilokasikan dengan menggunakan
IP sebagai offset dari CS.

Segment Register
Daerah-daerah memory yang disediakan bagi program, data dan
stack dialamatkan secara terpisah, walaupun daerah-daerah ini
mungkin saja saling bertumpang tindih. Pada setiap saat tersedia
empat blok memori yang dapat dialamatkan, yang dinamakan
segment dan masing-masing panjangnya 64K.
Register-register segment yang disediakan yaitu CS, DS, SS
dan ES yang masing-masing dipakai untuk menunjukkan keempat
segment memory yang dapat dialamati : Code Segment, Data
Segment, stack Segment dan Extra Segment, seperti pada tabel 5.

Tabel 5. Segment Register


15 0
CS : Code Segment
DS : Data Segment
SS : Stack Segment
ES : Extra Segment

Lokasi memory tertentu dalam suatu segment dialamatkan


dengan menambahkan suatu nilai offset kepada register segment
yang bersangkutan. Sebagai contoh, alamat instruksi program
berikutnya yang harus dilaksanakan dihitung dengan menambahkan
nilai Instruction Pointer kepada nilai Code Segment (CS). Akan tetapi,
suatu lokasi memory harus dialamatkan dengan suatu nilai alamat 20-
bit, sedangkan CS maupun IP hanya berisi nilai-nilai 16-bit. Oleh
karena itu alamat sepenuhnya dihitung dengan menggeser isi register
CS empat bit ke kiri dan mereset bit 0 sampai 3 ( sama saja dengan
66

mengalikan CS dengan 16), kemudian menambahkan nilai 16-bit yang


terkandung dalam IP.
Lokasi-lokasi dalam ketiga segment yang lain dapat dihitung
dengan cara yang sama, sedangkan kombinasi register segment dan
offset bergantung pada jenis operasi yang sedang dilaksanakan.
Secara umum, jika tidak ditentukan oleh pemakai, maka akan
berlaku aturan-aturan berikut;
a) Jika dipakai offset BX, SI atau DI maka alamat operand
diasumsikan berada dalam Data Segment (DS).
b) Jika offset yang dipakai adalah SP atau BP, maka operand
akan dianggap tersimpan dalam Stack Segment (SS).
Sedang untuk instruksi string, untuk sumber (source) digunakan
offset SI dengan Data Segment (DS), dan untuk tujuan (destination)
dipakai offset DI dengan Extra Segment (ES).

MEMORY

CODE STACK
STACK
DATA DATA 2
EXTRA
DATA 1
SEGMENT
REGISTER PROGRAM

Gambar 65 Segment dan memory yang dialamati

Pada gambar 65 diberikan gambaran umum tentang segment-


segment tersebut dan memory yang dialamatinya.
Pada gambar 66. berikut ini diperlihatkan cara untuk
menentukan address 20-bit dari segment dan offset yang masing-
masing 16-bit.

2.2.1 Antarmuka (Interface)


2.2.1.1 Slot ISA
Suatu tempat piranti tambahan yang dipasang pada komputer
sehingga pada motherboard disediakan tempat yang bisa digunakan
untuk memasang piranti tersebut. Ada 2 macam slot yaitu ISA dan PCI
yang kegunaannya disesuaikan dengan piranti yang akan dipasang.
Fungsi pin-pin pada slot ISA IBM PC
a. D0 – D7 (Data 0 – Data 7): Data bus uP8088, 8 bit,
bidirectional.
67

b. adalah
MEMR (MEMory Read) dan MEMW (MEMory Write) yang
menandakan µP sedang melakukan pembacaan / penulisan
memori.
c. adalah IOR (I/O Read) dan
IOW (I/O Write) yang menandakan µP sedang melakukan
pembacaan / penulisan rangkaian I/O.
d. ALE ( Address Latch Enable ) adalah Menandakan AD0 –
AD7 dan A8 – A19 µP 8088 berisi A0 – A19.
e. AEN (Address Enable) adalah Setiap mikroprosesor
mengirimkan Address maka sinyal kontrol AEN diaktifkan.

Gambar 66 Pembentukan address 20-bit

Contoh rangkaian interface output seperti ditunjukkan pada gambar


67, yaitu rangkaian aplikasi untuk menghidupkan led melalui PC yang
dipasang pada slot ISA.
Prinsip kerja rangkaian adalah pertama-tama PC mengirimkan alamat
300H sesuai alamat card interface yang dirancang sehingga output
nand gate aktif rendah karena semua inputnya berlogika ‘1’. Output
nand gate diumpankan ke kaki E1 IC 74LS 138 yang aktif rendah
disamping itu E2 dari pin kontrol AEN dan E3 aktif tinggi dihubungkan
ke Vcc maha IC decoder aktif dan siap menyalurkan kondisi input (A,
B & C). Dengan alamat 300H maka nilai input A=B=C = ‘0’ dan input
kontrol IOW yang aktif rendah maka membuat output gerbang NOR
berlogika ‘1’. Output gerbang NOR yang berlogika ‘1’ diumpankan ke
68

CLK (Clock) IC Latch 73LS374 sehingga IC 73LS374 menyalurkan


data D0 : D7 ke output Q0 : Q7. Output-output Q yang berlogika ‘1’
akan menghidupkan led.

Gambar 67 Rangkaian Interface output

Contoh programnya:
MOV DX,300h ; alamat interface output 300H
MOV AL,10101010b ; data AAH
OUT DX,AL ; 4 led hidup
69

Untuk rangkaian Interface input yang dapat mengetahui suatu


kondisi saklar (switsh) on atau off adalah seperti pada gambar 68.
Rangkaian ini berbeda dengan rangkaian interface output pada IC
74LS374 diganti dengan IC buffer 74LS244. Dengan rancangan yang
membuat output gerbang OR berlogika ‘0’ maka Data input saklar
(1A1 s/d 1A4 dan 2A1 s/d 2A4) disalurkan ke output (1Y1 s/d 1 Y 4
dan 2 Y 1 s/d 2 Y 4) serta diteruskan ke mikroprosesor sebagai data
input.

Gambar 68 Rangkaian Interface input

Contoh programnya:
MOV DX,300h ; alamat interface input 300H
IN DX,AL ; kondisi saklar disimpan di reg. AL
70

Soal:
a) Rancanglah rangkaian interface output dengan address 31AH
dan interface input dengan address 30CH.
b) Ulangi rancangan dengan memakai slot PCI.

b.2.2 Programmable I/O


Rangkaian interface yang bisa diprogram dengan memakai IC
8255. IC ini adalah suatu Programmable Peripheral Interface (PPI),
yang Input atau Output-nya dapat diprogram sesuai dengan keinginan
pemakai. Dengan demikian akan didapatkan suatu fleksibilitas yang
cukup tinggi. Adapun blok diagram Programmable I/O seperti gambar
70.
PPI 8255 memiliki 24 buah pin I/O yang terbagi dalam 3 buah
port yang bisa diprogram secara individual dalam dua group dan 3
buah mode operasi. Group A yang meliputi port A (8 bit) dan port C
upper (4 bit) sedangkan group B terdiri dari port B (8 bit) dan port C
lower (4 bit). Konfigurasi pin PPI 8255 dapat dilihat pada gambar 69.

Gambar 69 Konfigurasi pin PPI 8255

Adapun fungsi pin-pin PPI 8255 adalah:


a. D0 – D7 berfungsi sebagai data bus 3 state 2 arah yang
dihubungkan ke data bus sistem komputer.
71

b. Chip Select (CS) aktif rendah yang berfungsi untuk mengaktifkan


PPI 8255.
c. Read (RD) aktif rendah yang berfungsi untuk menandakan
bahwa CPU akan membaca data dari PPI.

Gambar 70 Blok diagram Programmable I/O

d. Write (WR) aktif rendah yang berfungsi mengizinkan CPU untuk


menulis data ke dalam PPI.
72

e. Port Select (A0 dan A1). Pin ini digunakan untuk memilih port
yang akan digunakan.
f. Reset yang berfungsi untuk me-reset seluruh port I/O menjadi
input dengan kondisi high pada seluruh pin.

Dalam pengoperasian PPI, dapat dibedakan atas 3 mode


operasi dasar yang dapat dipilih melalui software, yaitu :
a) Mode 0 (Basic I/O)
Konfigurasi operasi ini menyediakan operasi-operasi
sederhana untuk input dan output bagi ketiga buah port yang
ada. Tidak ada sinyal handshaking yang bisa diberikan
ataupun diterima, melainkan data secara sederhana dikirim
dan dibaca dari port.
b) Mode 1 (Basic I/O)
Konfigurasi operasi ini menyediakan fasilitas untuk transfer
data I/O dari dan ke port tertentu dengan dilengkapi oleh
sinyal handshaking. Dalam hal ini port A dan port B digunakan
sebagai transfer data, sedangkan port C sebagai pembangkit
sinyal handshaking.
c) Mode 2 (Strobed bidirectional I/O)
Konfigurasi operasi ini menyediakan fasilitas untuk
komunikasi data 8-bit dua arah dengan peralatan luar.
Tersedia sinyal-sinyal untuk handshaking dan interrupt dengan
fungsi enable dan disable-nya.

Ketika PPI mendapat sinyal reset, maka semua port di-set


menjadi mode input (ke 24 jalur menjadi high impedance). Setelah
dilakukan inisialisasi pasa IC 8255 tersebut, maka port-port tersebut
dapat berfungsi sebagai input atau output sesuai nilai CW.
Inisialisasi pada IC 8255 dapat dilakukan dengan mengirimkan
Control Word (CW) yang mempunyai format seperti gambar 71.
Inisialisasi dilakukan untuk menentukan mode PPI sekaligus fungsi
dari tiap port, apakah sebagai input atau output.
Dalam program, penulisan alamat port-port dan CW dari IC 8255
adalah sebagai berikut :
Port A equ 300h
Port B equ 301h
Port C equ 302h
Port CW equ 303h
73

Contoh program inisialisasi adalah:


MOV AL, 10011001b
MOV DX,303h
OUT DX,AL
Dari inisialisasi PPI 8255 diatas artinya sebagai mode 0, dengan port
A dan Port C sebagai input serta Port B sebagai output. Control Word
yang harus dikirim supaya IC 8255 dapat berfungsi demikian,
diberikan seperti pada gambar 72.

Gambar 71 Control Word pada IC 8255


74

Gambar 72 Contoh Control Word untuk IC 8255

Kemudian program dapat dilanjutkan dengan melakukan


pembacaan pada port A, misalnya, atau bisa juga memberikan output
ke port B. Berikut ini contoh instruksi untuk melakukan pembacaan
input dari port A.
MOV DX,300h
IN AL,DX

Didalam program tersebut terlihat instruksi-instruksi IN dan OUT


yang memegang peranan penting dalam pengiriman data ke dalam
dan ke luar sistem komputer. Instruksi OUT DX,AL berarti
mengirimkan data yang berada di register AL ke alamat port yang
tersimpan di DX. Dan IN AL,DX berarti membaca data dari port yang
alamatnya tersimpan di DX kemudian menyimpan data tersebut di
register AL.

Ada 3 contoh rangkaian yang dibedakan pada rangkaian decodernya.


1. Memakai decoder gerbang nand seperti pada gambar 73.
Secara singkat prinsip kerjanya adalah pertama-tama
mikroprosesor mengirimkan alamat interface seperti pada gambar
rangkaian dapat dirancang untuk alamat 300H, 310H, 308H dan
318H dengan mengkombinasikan switch yang terhubung ke pin Slot
ISA pada A3 dan A4. Jika salah satu alamat tersebut dikirim oleh
mikroprosesor maka IC 7430 akan aktif ‘0’ yang diumpankan ke CS
dari IC 8255 untuk mengaktifkannya dan ke E dari IC 74LS245 untuk
mengaktifkan IC ini. Sebagai contoh misalnya mikroprosesor ingin
mengirimkan data ke Port A dari rangkaian interface. Misal memakai
alamat 300H maka untuk mengakses Port A dikirimkan alamat 300H
dengan sendirinya CS dari IC 8255 dan E dari IC 74LS245 aktif lalu
75

mikroprosesor mengirimkan data misal 80H dan bersamaan dengan


itu mengirimkan sinyal kontrol WR ke IC 8255 dan dengan sendirinya
sinyal kontrol RD dalam kondisi logika ‘0’ maka pin DIR dari IC
74LS245 menerima logika ‘1’ yang artinya akan melewatkan dari 8-bit
A ke 8-bit B. Begitu juga sebaliknya, jika membaca data di suatu port
maka sinyal kontrol RD yang berlogika ‘0’ sehingga pin DIR berlogika
‘0’ yang artinya data dilewatkan dari 8-bit B ke 8-bit A.
1. Memakai decoder Nand Gate IC 74LS30

Gambar 73 Rangkaian interface dengan decoder nand


76

Soal.
1) Rancanglah rangkaian interface untuk alamat 30CH
2) Rancanglah rangkaian interface untuk alamat 30CH atau
304H dengan memasang sebuah switch SPDT

2. memakai decoder IC 74LS138

Gambar 74 Rangkaian interface dengan decoder 74LS138


77

Rangkaian ini beralamat 300H yang membuat output Y4 dari IC


decoder 74LS138 berlogika ‘0’ karena A8 dari slot ISA dihubungkan
ke input C dari IC 74LS138. Selain itu rangkaian interface dilengkapi
dengan aplikasi led yang terhubung ke Port A dan switch yang
terhubung ke Port B serta Port C tidak terhubung, seperti gambar 74.
Maka dalam program inisialisasi Port A sebagai output, Port B
sebagai input dan Port C bisa sebagai Input atau Output karena tidak
terhubung ke suatu rangkaian aplikasi.

Soal.
1) Rancanglah rangkaian interface untuk alamat 30CH.
2) Rancanglah rangkaian interface untuk alamat 31CH.

3. Memakai decoder IC 74LS688 seperti pada gambar 75.


Prinsip kerjanya adalah membandingkan input switch yang diset
secara hardware dengan membuat alamat yang akan dikirimkan oleh
program sesuai alamat yang diset secara hardware. Misalnya, P0 s/d
P7 diset menjadi 11100011 maka program dialamatkan ke Q0 s/d Q7
(A2 s/d A9) menjadi alamat 31CH sehingga alamat Port A = 31CH
dan berturut-turut Port B = 31DH, Port C = 31EH dan Control Word =
31FH. Contoh program untuk rangkaian ini adalah, seperti listing
program berikut dan hasil program–nya, diperlihatkan pada gambar
76. Program tersebut memakai rangkaian interface pada alamat
300H dengan semua port sebagai output yang terhubung ke led.

Soal.
1) Rancanglah rangkaian interface untuk alamat 308H dan
rancanglah program aplikasi untuk switch dan led.
2) Rancanglah rangkaian interface untuk alamat 318H dan
rancanglah program aplikasi untuk animasi led.
78

Gambar 75 Rangkaian interface dengan decoder 74LS688

Listing Program animasi led:


;Program pergeseran led call delay
;dengan kontrol lewat mov al,11111000b
79

;keyboard call out


pa equ 300h awal:
pb equ 301h mov cx,8
pc equ 302h kanan1:
cw equ 303h shr al,1
time equ 200 call delay
jmp mulai call cek
menu db 13,10,' Pilih' call out
db 13,10,' Tekan [R]' loop kanan1
db 13,10,' Tekan [S]' mov cx,5
db 13,10,' Tekan [ESC]' kiri0:
db 13,10,'$' stc
mulai: rcl al,1
mov ah,09h call delay
lea dx,menu call cek
int 21h call out
kembali: loop kiri0
mov ah,0 mov cx,8
int 16h kiri1:
cmp al,1bh shl al,1
je keluar call delay
or al,20h call cek
cmp al,'r' call out
jne kembali loop kiri1
mov al,80h mov cx,5
mov dx,cw kanan0:
out dx,al stc
rcr al,1
80

call delay cek:


call cek push ax
call out mov ah,6
loop kanan0 mov dl,0ffh
loop awal int 21h
keluar: cmp al,27
int 20h
keluar0: je keluar
out: or al,20h
mov dx,pa cmp al,'s'
out dx,al jne run
mov dx,pb
out dx,al stop:
ret mov ah,6
mov dl,0ffh
int 21h
delay: cmp al,27
push cx je keluar0
mov cx,time or al,20h
a: push cx cmp al,'r'
mov cx,1000h jne stop
b: loop b
pop cx run:
loop a pop ax
pop cx ret
ret
81

Gambar 76 Tampilan program animasi pergeseran led

b.2.3 Port Paralel


Nama lain dari port paralel adalah port printer karena memang
dirancang untuk melayani pencetak paralel. Data port paralel 8-bit
hanya dirancang untuk mengirim data (pencetak).
Nama-nama port parallel, seperti Tabel 6:
– LPT1 dan LPT2 untuk port printer
– LPT0 untuk video adapter

Tabel 6 Gambaran umum LPT


LPT0 LPT1 LPT2 Sifat Nama
$38C $378 $278 R/W Data port (DP), 8-bit
$38E $37A $27A R/W Printer control (PC), 4-bit
$38D $379 $279 R Printer Status (PS), 5 bit

PC (Printer control):
a) Bit 0 : Strobe, sunsang
b) Bit 1 : Autofeed, sunsang
c) Bit 2 : Init, normal
d) Bit 3 : Select in, sunsang
e) Bit 4 s/d 7 : tidak dipakai

PS (Printer status):
a. Bit 0 s/d 2 : Tidak dipakai
b. Bit 3 : Error, normal
c. Bit 4 : Select, normal
d. Bit 5 : Paper end, normal
e. Bit 6 : Acknowledge (ACK), normal
f. Bit 7: Busy, sunsang
82

Port paralel dapat difungsikan sama seperti IC 8255 untuk


interfacing, tetapi setiap port-nya hanya dapat difungsikan sebagai
input atau output saja, seperti penjelasan pin-pin pada Tabel 7.
Tabel 7 Fungsi dari 25 pin dari port paralel.
No.
Sinyal Arah Keterangan
pin
Dalam keadaan normal adalah high
1 PC-0 STROBE OUT dan akan low apabila ada data
masuk.
2 DP-0 DATA1 OUT
3 DP-1 DATA2 OUT
4 DP-2 DATA3 OUT
5 DP-3 DATA4 OUT Sinyal-sinyal ini menjelaskan
6 DP-4 DATA5 OUT informasi dari bit ke-1 sampai ke-8
7 DP-5 DATA6 OUT dari data paralel, adalah high atau
8 DP-6 DATA7 OUT low.
9 DP-7 DATA8 OUT
Akan low yang menandakan data
10 PS-6 ACKNLG IN telah diterima dan siap untuk
menerima data selanjutnya.
Akan high yang menandakan bahwa
11 PS-7 BUSY IN printer tidak bisa menerima data
karena printer sedang beroperasi.
Akan high yang menunjukkan bahwa
12 PS-5 PE IN
printer butuh kertas.
Sinyal yang menunjukkan bahwa
13 PS-4 SLCT IN
printer adalah dalam status select.
AUTO Dijadikan low agar supaya printer
14 PC-1 FEED OUT mempunyai suatu kecepatan tertentu
XT setelah mem-print.
PS-3 ERROR IN Menjadi low bila printer butuh
15
kertas/error
PC-2 INIT OUT Akan low untuk mereset buffer
16
printer
Data akan masuk ke printer hanya
17 PC-3 SLCT IN OUT
bila sinyal ini dalam keadaan low.
18- GND - Level Gnd
25
83

Port paralel sama halnya dengan printer, hanya memanfaatkan


port data (DP/Data Port) 8-bit yaitu DP0 s/d DP7 sebagai output, Port
Control (PC/Printer Control) 4-bit yaitu PC0 s/d PC3 sebagai output
dan Port Status (PS/Printer Status) 5-bit (PS3 s/d PS7) sebagai input
yang berturut-turut LPT1 dengan alamat 378h, 379h, dan 37Ah. Untuk
menguji data yang dikeluarkan sebagai data ke printer maka harus
dilakukan komunikasi PS dan PC seperti pada gambar 77.

Gambar 77 Plug uji untuk uji LPT


Contoh rangkaian mengirim dan menerima data dari/ke port
printer, diperlihatkan pada gambar 78, 79 dan, 80.

Gambar 78 Contoh rangkaian aplikasi Port 378H


84

Gambar 79 Contoh rangkaian aplikasi Port 379H

Gambar 80 Contoh rangkaian aplikasi Port 37AH


85

Contoh program :
Program dirancang memakai bahasa tingkat tinggi yaitu Visual
Basic (VB). VB tidak bisa mengakses hardware secara langsung
sehingga digunakan file io.dll yang dikopikan ke system32.
Pada VB digunakan modul sebagai berikut :
Public Declare Sub PortOut Lib "io.dll" (ByVal Port As Integer, ByVal
Value As Byte)
Public Declare Function PortIn Lib "io.dll" (ByVal Port As Integer) As
Byte

a) Menggunakan Port 378H

Listing program :

Dim i, data As Integer Private Sub Timer1_Timer()


Call PortOut(&H378, data)
Private Sub data = 2 ^ i
running_Click() i = i + 1
Timer1.Enabled = True If i > 7 Then i = 0
End Sub End Sub

Private Sub Form_Load()


i=0
Timer1.Enabled = False
End Sub
86

b) Menggunakan Port 379H

Listing Program :

Dim data, data7, data3456 As Private Sub hapus_Click()


Integer Text1.Text = ""
End Sub
Private Sub baca_Click()
data = PortIn(&H379) Private Sub exit_Click()
data = data And &HF8 Unload Me
data3456 = data And &H78 End Sub
data7 = data And &H80
data7 = Not data7
data7 = data7 And &H80
data = data7 Or data3456
Text1.Text = Int(data)
End Sub
87

c) Menggunakan Port 37AH

Listing Program :

Dim data, d24567, d013 As Integer

Private Sub tulis_Click()


data = Val(Text1.Text)
data = data And &HF
d24567 = data And &H4
d013 = data And &HB
d013 = Not d013
d013 = d013 And &HB
data = d24567 Or d013
Call PortOut(&H37A, data)
End Sub

Soal.
1) Rancanglah rangkaian dan program aplikasi counter 00 s/d 255
dengan display ke 8-bit led.
2) Rancanglah rangkaian dan program aplikasi counter 00 s/d 255
dengan display ke 8-bit led dan setting counter dimulai dari
input keypad 2x2.
88

b.2.4 Port Serial


Port serial dikenal juga sebagai port RS-232, dengan
kekurangan dibanding port paralel adalah transmisi data kecepatan
rendah karena data dikirimkan satu bit dalam suatu waktu, seperti
gambar 81. Kecepatan transfer data dinyatakan dalam baudrate atau
bitpersecond (bps). Adapun penjelasan konfigurasi pin-pin port serial,
seperti Tabel 8 dan konektor port serial DB 9, seperti pada gambar
82 .

Gambar 81 Blok diagram komunikasi lewat port Serial

Tabel 8 Konfigurasi pin-pin port RS-232


Pin DB-9 Pin DB-25 Nama Deskripsi
3 2 TD Transmit Data
2 3 RD Receive Data
7 4 RTS Request To Send
8 5 CTS Clear To Send
6 6 DSR Data Set Ready
Data Terminal
4 20 DTR
Ready
Data Carrier
1 8 DCD
Detect
89

9 22 RI Ring Indicator
5 7 GND Signal Ground

a) Data Carrier Detect/ Received Line Signal Detect (DCD): DCE


memberitahu DTE ada data masuk di terminal masukan
b) Receive Data (RxD): digunakan DTE menerima data dari DCE
c) Transmit Data (TxD): digunakan DTE mengirim data ke DCE
d) Data Terminal Ready (DTR): DTE memberitahu kesiapan
terminalnya.
e) Signal Ground: saluran Ground
f) Ring Indikator (RI): DCE memberitahu ke DTE bahwa sebuah
stasiun menghendaki hubungan dengannya.
g) Clear to Send (CTS): DCE memberitahu bahwa DTE boleh mulai
mengirim data.
h) Request To Send (RTS): DCE diminta mengirim data oleh DTE.
i) DCE Ready (DSR): Sinyal aktif pada saluran ini menunjukkan
bahw DCE sudah siap.

Gambar 82 Konektor Serial DB-9 bagian belakang CPU


Port serial membutuhkan Sinkronisasi pada transmisi data agar
data yang dikirimkan dapat diterima dengan benar. Setiap byte yang
dikirimkan diberi bit tambahan yaitu 1 bit start dan 1 sampai 2 bit stop.
Kadang diperlukan juga bit parity yang menyatakan apakah data yang
dikirimkan memiliki bit 1 genap atau ganjil untuk keperluan
sinkronisasi. Bit tambahan ini bersifat opsional, tergantung pada
setting port tersebut. Aplikasi wireless: contoh, komputer dengan
telepon seluler (Bluetooth). Dan dengan kabel data: contoh, telepon
seluler dengan port serial pada komputer.
90

Kecepatan transfer data pada RS232 dinyatakan dalam


baudrate (bps) dimana baudrate menyatakan banyaknya bit yang
dapat ditransfer dalam 1 detik. Baudrate terendah RS232 adalah 110
bps. Baik pengirim maupun penerima data harus mempunyai
konfigurasi RS232 yang sama agar transfer data dapat berjalan
dengan baik. Pengiriman data dilakukan dengan mengirimkan bit LSB
terlebih dahulu dan data terakhir merupakan bit MSB. Gambar timing
diagram sinyal asinkron untuk pengiriman data 01010011 tanpa bit
paritas, 8 bit data dan stop bit sebesar 1 bit dapat dilihat pada gambar
83 dibawah ini.

Logic 0
(+5 - +25V)
Logic 1
(-5 - -25V) Start
Kondisi 1 1 0 0 1 0 1 0 Stop bit
bit
idle (LSB) (MSB)

1/ baudrate

Gambar 83 Timing Diagram Sinyal Data pada Port Serial


Contoh:
Spesifikasi port serial untuk hubungan PC dengan HP
a. Port : COM1
b. Baudrate : 19200 bps
c. Data bit : 8 bit
d. Parity Bits : None (tidak ada)
e. Stop bit : 1 bit
f. Flow Control : None (tidak ada)
Level tegangan antara RS 232 tidak sama dengan level
tegangan telepon seluler yang memiliki level tegangan TTL. Oleh
karena itu komunikasi antara komputer dengan telepon seluler
memerlukan antar muka. Sebuah rangkaian transceiver digunakan
untuk menyamakan level tegangan antara RS 232 dengan level
tegangan TTL yang dimiliki oleh telepon seluler. Sebuah rangkaian
transceiver digunakan untuk menyamakan level tegangan antara RS
232 dengan level tegangan TTL yang dimiliki oleh telepon seluler.
Rangkaian ini menggunakan IC MAX 232, seperti gambar 84 dan
contoh form pengaturan setting program, seperti pada gambar 85.
91

Gambar 84 Rangkaian Transceiver RS 232

Gambar 85 form pengaturan setting program


b.2.5 PIT 8253 (Programmable Interrupt Timer)
92

Kebanyakan Komputer menggunakan PIT untuk waktu tunda


(time delay) karena hasilnya sangat akurat dan dapat diprogram
dengan software. Adapun konfigurasi pin-pin PIT, seperti pada gambar
86.
Ada 2 Fungsi PIT:
a. Pembagi frekuensi
b. Monostabil Multivibrator
PIT Memiliki 3 buah counter internal ynag msing-masing, mempunyai:
1. 1 input clock
2. 1 gate pengendali
3. 1 output

Gambar 86 Konfigurasi pin-pin PIT 8253


Fungsi pin-pin PIT 8253:
a) D7 – D0 : data bus
b) RD : Proses pembacaan, Aktif low
c) WR : Proses penulisan, aktif low
d) A0 – A1 :
A0 A1
0 0 Access counter 0
0 1 Access counter 1
1 0 Access counter 2
1 1 Access reg. control
CS : chip select

Inisialisasi: (8-bit)
93

Setiap counter harus diinisialisasi secara terpisah


Control word

D7 D6 D5 D4 D3 D2 D1 D0
SC1 SC0 RW1 RW0 M2 M1 M0 BCD

a. SC – Select Counter (D7-D6)

SC1 SC0
0 0 Select Counter 0
0 1 Select Counter 1
1 0 Select Counter 2
1 1 Read Back

Read Back:
melihat status counter setelah inisialisasi tapi hanya terdapat
pada PIT 8254.

b. RW – Read/Write (D5-D4):
Metoda pembacaan data oleh counter.
RW1 RW0
0 0 Counter Latch
0 1 R/W LSB Only
1 0 R/W MSB Only
1 1 R/W LSB then MSB

Counter latch:
digunakan bersamaan dengan fasilitas read back
pada PIT 8254.
c. M – Mode (D3-D1):
Mode 3 adalah:
1. sebagai pembagi frekuensi terprogram.
2. Lebih sederhana dan memiliki penerapan yang luas.
94

M2 M1 M0
0 0 0 Mode 0 - Interrupt on terminal counter
0 0 1 Mode 1 – Hardware one shot
X 1 0 Mode 2 – Pulse Generator
X 1 1 Mode 3 – Square Wave Generator
1 0 0 Mode 4 – Software Triggered Strobe

1 0 1 Mode 5 – Hardware Triggered Strobe

d. BCD (D0):

D0
0 Binary Counter : 00 s/d FF
1 Decimal Counter : 00 s/d 99

Contoh soal:
Diket:
Sebuah PIT 8253 memperoleh masukan clock dengan
frekuensi sebesar 1,19 MHz di semua counter. Diperlukan
keluaran dengan frekuensi sebesar 47,6 khz pada counter 0.
Penyelesaian:
Counter 0 harus diinisialisasi sebagai pembagi frekuensi
dengan nilai pembagian sebesar 1,19 MHz : 47,6 khz = 25.
Maka komposisi control word atau data inisialisasi:
00 01 111 1 = 1Fh
Sehingga program inisialisasinya:
;mengirim control word
mov dx,address_register_kontrol
mov al,1Fh
out dx,al
; mengirim nilai pembagi frekuensi
mov dx,address_counter_0
mov al,25h
out dx,al
95

Setelah program di-execute maka counter 0 akan mengeluarkan


clock dengan frekuensi 47,6 khz.

Soal:
a) Diperlukan sebuah sinyal keluaran pada counter 1 pada PIT
8253. Sinyal keluaran yang diperlukan memiliki frekuensi 950 hz.
b) Buatlah program inisialisasinya.

b.2.6 PIC 8259 (Programmable Interrupt Controller)


Ada 2 cara melayani sinyal trigger dari piranti luar:
Interupsi:
subrutin dijalankan jika ada trigger dari luar piranti
Polling:
μP menanyakan pada piranti-piranti luar, secara bergilir,
apakah ada tugas.
Ada 2 macam interupsi:
• Software: (contoh Int 65h)
– Digunakan untuk melayani kondisi tertentu
pada software yang sedang berjalan.
• Hardware:
– Digunakan untuk melayani trigger dari luar.
PIC 8259 mempunyai 8 masukan interupsi yaitu: IRQ0 sampai
dengan IRQ7, seperti diperlihatkan pada konfigurasi pin-pin gambar
87 dan prioritas interrupt, seperti pada tabel 9.

Gambar 87 Konfigurasi pin-pin PIC 8259


Tabel 9 masukan interupsi 8259

Request Interrupt Prioritas


96

IRQ 0 Type 8 Timer Tertinggi


IRQ 1 Type 9 Keyboard Ke-2
IRQ 2 Type A Kosong Cadang AT

IRQ 3 Type B Komunikasi serial ke-2 Ke-4

IRQ 4 Type C Komunikasi serial ke-1 Ke-5

IRQ 5 Type D Fixed Disk Ke-6


IRQ 6 Type E Disk Drive Ke-7
IRQ 7 Type F Printer Terendah

PIC 8259 mempunyai 4 register:


a) Interrupt Request Register (IRR):
– 8-bit data internal yang setiap bitnya mewakili masing-
masing IRQ#.
b) Priority Resolver (PR):
– Menentukan prioritas bagi setiap bit IRQ yang ada.
c) In Service Register (ISR):
– Menyimpan data IRQ# yang sedang dilayani
permintaannya.
d) Interrupt Mask Register (IMR):
– Menyimpan data IRQ# yang di-mask (non-aktif) dan
unmask (aktif)

Fungsi pin-pin PIC 8259:


1. D7 – D0 : data bus
2. RD : Proses pembacaan, Aktif low
3. WR : Proses penulisan, aktif low
4. A0 :
A0 Address
0 20h
1 21h
97

5. CS : chip select
6. CAS0-CAS2: perluasan PIC

Inisialisasi:
Ada 2 data inisialisasi yaitu ICW dan OCW.
1. Initialization Control Word (ICW):
menyiapkan piranti agar dapat menerima satu interrupt
atau lebih.
a) ICW1:
A0 D7 D6 D5 D4 D3 D2 D1 D0
0 A7 A6 A5 1 LTIM ADI SNGL IC4
1. A0 : alamat internal tujuan pengiriman ICW1
2. D7-D5: untuk sistem µP 8085
3. D4: harus diberi logika 1
4. D3 = 0, melayani permintaan interrupt jika IRQ# berubah
dari 0 ke 1.
5. D2 = 0, karena tidak dipakai di µP 8088
6. D1 : 0 bila beroperai dalam perluasan
7. D1 = 1 karena µP 8088 perlu ICW4

b) ICW2:
Nomor tipe interupsi, misalkan. ICW2 diberi nomor tipe 8h maka
IRQ0 = 8h dan lalu IRQ1=9h dan seterusnya.
A0 D7 D6 D5 D4 D3 D2 D1 D0
1 T7 T6 T5 T4 T3 T2 T1 T0
1). A0 =1, alamat ICW2.
2). D7 – D0 : diisi data tipe interupsi IRQ0.
c) ICW3:
Mode kaskade, kalau PIC dalam operasi single, ICW3
ini tidak digunakan.
d) ICW4:
A0 D7 D6 D5 D4 D3 D2 D1 D0

1 0 0 0 SFNM BUF M/S AEOI μPM

Contoh
98

Dengan ICW diatas maka program inisialisasinya yaitu:


mov dx,20H
mov al,13h
out dx,al ;mengirim ICW1

mov dx,21H
mov al,08h
out dx,al ;mengirim ICW2

mov al,1h
out dx,al ;mengirim ICW4

Anda mungkin juga menyukai