Data Register
Data Register terdiri dari 4 register 16 bit, dimana tiap register
dapat dipisah menjadi dua register 8 bit, seperti Tabel 2.
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.
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.
MEMORY
CODE STACK
STACK
DATA DATA 2
EXTRA
DATA 1
SEGMENT
REGISTER PROGRAM
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.
Contoh programnya:
MOV DX,300h ; alamat interface output 300H
MOV AL,10101010b ; data AAH
OUT DX,AL ; 4 led hidup
69
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.
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.
Soal.
1) Rancanglah rangkaian interface untuk alamat 30CH
2) Rancanglah rangkaian interface untuk alamat 30CH atau
304H dengan memasang sebuah switch SPDT
Soal.
1) Rancanglah rangkaian interface untuk alamat 30CH.
2) Rancanglah rangkaian interface untuk alamat 31CH.
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
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
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
Listing program :
Listing Program :
Listing Program :
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
9 22 RI Ring Indicator
5 7 GND Signal Ground
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
Inisialisasi: (8-bit)
93
D7 D6 D5 D4 D3 D2 D1 D0
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
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
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
Soal:
a) Diperlukan sebuah sinyal keluaran pada counter 1 pada PIT
8253. Sinyal keluaran yang diperlukan memiliki frekuensi 950 hz.
b) Buatlah program inisialisasinya.
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
Contoh
98
mov dx,21H
mov al,08h
out dx,al ;mengirim ICW2
mov al,1h
out dx,al ;mengirim ICW4