B. Teori Pendukung
Di dalam IC PPI 8255 alamat setiap port akan berurutan dari dari yang rendah ke yang
tinggi mulai dari port A, B, C terus ke port control. Misalnya kalau port pertama diberikan
alamat 300h maka dapat dipastikan :
1. Port A mempunyai alamat 00h
2. Port B mempunyai alamat 02h
3. Port C mempunyai alamat 04h
4. Port Control mempunyai alamat 06h
Untuk membuat PPI 8255 dapat bekerja maka yang pertama sekali diprogram adalah
port Control. Sekali diprogram port control memegang data yang dimasukkan kepadanya
sampai data baru masuk ke alamat port Control itu. Data yang ada di dalam port Control
menentukan fungsi port A, B, C dan mode transfer data.
Untuk dapat memprogram port Control maka perlu diperhatikan arti masing-masing bit
yang tedapat di dalamnya (Control Word) sebagai berikut :
D7 D6 D5 D4 D3 D2 D1 D0
Port C
Mode set Port C Mode
Mode selection Port A Port B Bawah
Flag Atas (CH) selection
( CL)
D7 : 0 = data diset perbit 1 = data di set berkelompok ( d7……d0)
D6+D5 : 00 = Mode 0 01 = mode 1 10 atau 11 = Mode 2
D4 : 0 = Port A sebagai Output 1 = Port A sebagai input
D3 : 0 = Port C atas sebagai Output 1 = Port C atas sebagai input
--------------------------------------------------------------------------------------------------------------------------------------
Dibuat Oleh Dr.Eddas, MT
Job 13. Memprogram uP 8086 untuk Membaca Tombol pada Port C PPI 8225 Halaman 1 dari 9
D2 : 0 = Mode 0 group A 1 = = Mode 1 group A
D1 : Port B sebagai Output 1 = Port B sebagai input
D0 : 0 = Port C bawah sebagai Output 1 = Port C bawah sebagai input
Contoh : Percobaan berikut yang akan dilakukan adalah membuat port A dan B sebagai
keluaran dan port C sebagai masukan .Program untuk menginisialisasi supaya
port A, B sebagai keluaran dan port C sebagai masukan (Control Word =
10001001b atau 89h
Portk equ 06h
mov al,10000000b ; isi AL dengan 80h
mov dx, portk ; isi dx dengan alamat 6h
out dx,al ; masukan data al ke port Control
Keterangan : Inisialisasi port PPI adalah bahwa port pertama beralamat 00h dan portControl
diberi nama portk yang alamatnya sudah pasti 6h
LED
D2
D3
D4
ad[0..15}
ad[0..15] D5
U3 U1
AD0 3 2
AD0 34
D0 PA0
4 D6
D0 Q0 AD1 33 3
AD1 4 5 D1 PA1
AD2 7
D1 Q1
6
AD2 32
D2 PA2
2 D7
D2 Q2 AD3 31 1
AD3 8 9 D3 PA3
AD4 13
D3 Q3
12
AD4 30
D4 PA4
40
D8 BAT1
D4 Q4 AD5 29 39
AD5 14 15 D5 PA5 12V
D5 Q5 AD6 28 38
AD6 17 16 D6 PA6
D6 Q6 AD7 27 37
AD7 18 19 D7 PA7
D7 Q7
1
5
RD PB0
18 U2
OE 36 19
11 WR PB1 9
LE 9 20 COM
A0 PB2 1 16
8 21 1B 1C
74HC373 A1 PB3 2 15
35 22 2B 2C
RESET PB4 3 14
23 3B 3C
PB5 4 13
VCC 6 24 4B 4C
CS PB6 5 12
ad[0..15] 25 5B 5C
PB7 6 11 +88.8
6B 6C
U4 7
7B 7C
10
14
21 PC0
RESET AD[0..15] 15
22 PC1 ULN2003A
READY A[16..19] 16
0
24 PC2
INTA/QS1 17
18 25 PC3
INTR ALE/QS0 13
31 34 PC4
HOLD/GT1 BHE 12
30 27 PC5
HLDA/GT0 DT/R/S1 11
23
TEST DEN/S2
26 PC6
10 S1
17 32 PC7
NMI RD
33 29
MN/MX WR/LOCK
19
CLK M/IO/S0
28
8255A
S2
8086
S3
S4
--------------------------------------------------------------------------------------------------------------------------------------
Dibuat Oleh Dr.Eddas, MT
Job 13. Memprogram uP 8086 untuk Membaca Tombol pada Port C PPI 8225 Halaman 2 dari 9
Gambar 2. Kontruksi Motor Stepper Unipolar
Tabel 1. Data Input Untuk Pilihan Animasi Led atau Motor Stepper Unipolar
Port PPI
Langkah ke PC3 PC2 PC1 PC0 Animasi LED dan Motor
1 1 1 1 0 Led Jalan ke Kanan
2 1 1 0 1 Led Jalan Bolak-balik (Wiper)
3 1 0 1 1 Motor Stepper Berputar kearah CW
4 0 1 1 1 LED dan Motor Stepper berhenti
3. Software DOS BOX (jika SO Komputer anda Windows 10) ….. 1 buah
--------------------------------------------------------------------------------------------------------------------------------------
Dibuat Oleh Dr.Eddas, MT
Job 13. Memprogram uP 8086 untuk Membaca Tombol pada Port C PPI 8225 Halaman 3 dari 9
D. Listing Program : pilih.asm
; Program 1: Memprogram Mikroprosesor mov dx,portb
; 8086 unutk Membaca Tombol pada Port C mov al,00000010b
; untuk Memilih program yang akan ;dijalankan out dx,al
call delay
ppi segment
assume cs:ppi mov dx,portb
org 100h mov al,00000100b
out dx,al
Mulai: jmp pilih call delay
delay proc near
push bp mov dx,portb
push cx mov al,00001000b
mov bp,50 out dx,al
ulang: mov cx,400 call delay
lagi: loop lagi
dec bp push ax
jnz ulang mov dx,portc
pop cx in al,dx
pop bp mov cl,al
ret cmp cl,11111110b
delay endp jz pilih
pop ax
porta equ 00h mov dx,portb
portb equ 02h jmp motorcw
portc equ 04h
portk equ 06h ledkanan: mov dx,porta
mov al,00000001b
pilih: push ax
xor ax,ax lagiled: out dx,al
mov dx,portk call delay
mov al,89h rol al,1
out dx,al push ax
mov dx,portc
mov dx,portc in al,dx
in al,dx mov cl,al
mov cl,al cmp cl,11111101b
cmp al,11111110b pop ax
jz ledkanan jz pilih
mov dx,porta
cmp al,11111101b jmp lagiled
jz motorcw
berhenti: INT 20H
cmp al,11110111b ppi ends
jz berhenti end mulai
pop ax
jnz pilih
D. Langkah Kerja.
1. Siapkan komputer dalam sistem operasi DOS (atau menggunakan DOSBOX) !
--------------------------------------------------------------------------------------------------------------------------------------
Dibuat Oleh Dr.Eddas, MT
Job 13. Memprogram uP 8086 untuk Membaca Tombol pada Port C PPI 8225 Halaman 4 dari 9
2. Buatlah skema rangkain mikroprosesor 8086 sebagai kontroler LED pada port A dan
motor stepper bipolar pada port B serta Switch S1,S2,S3,S4 pada port C pada port
PPI 8255, seperti Gambar 1. !
3. Jalankan program EDIT.COM
4. Ketiklah program pilih.ASM
5. Simpanlah file itu dengan nama pilih.ASM
5. Compile program pilih.ASM sehingga menjadi pilih.obj
perintahnya : masm pilih.ASM
6. Link program pilih.objsehingga menjadi pilih.exe
perintahnya : link pilih.obj
7. Rubah pilih.exe menjadi pilih.com
perintahnya : exe2bin pilih.exe pilih.com
8. Upload program pilih.com ke IC Mikroprosesor 8086 dengan cara mengklik diatas
symbol IC itu.
9. Jalankan program pilih dan amati keadaan putaran motor stepper bipolar pada port B.
dan animasi LED di Port A.
10. Kembangkan program anda untuk model pergerakan motor stepper bipolar pada port B
serta gabungan dengan program LED pada port A, dalam suatu program assembler pada
PPI 8225 seperti yang ada pada table 1.
--------------------------------------------------------------------------------------------------------------------------------------
Dibuat Oleh Dr.Eddas, MT
Job 13. Memprogram uP 8086 untuk Membaca Tombol pada Port C PPI 8225 Halaman 5 dari 9
LED Jalan Kanan
Putaran Motor
stepper kontinyu ke
arah CW
2 LED OFF 11111101
1. Kembangkan program berbagai animasi LED dan putaran motor stepper bipolar
pada port-port PPI 8225 minimal sebanyak macam yang terdapat dalam Tabel Pengamatan
diatas.
ppi segment
assume cs:ppi
org 100h
--------------------------------------------------------------------------------------------------------------------------------------
Dibuat Oleh Dr.Eddas, MT
Job 13. Memprogram uP 8086 untuk Membaca Tombol pada Port C PPI 8225 Halaman 6 dari 9
mulai: jmp pilih
delay proc near
push bp
push cx
mov bp,50
ulang: mov cx,400
lagi: loop lagi
dec bp
jnz ulang
pop cx
pop bp
ret
delay endp
pilih: push ax
xor ax,ax
mov dx,portk
mov al,89h
out dx,al
mov dx,portc
in al,dx
mov cl,al
cmp al,11111110b
jz ledkanan
cmp al,11111101b
jz motorcw
cmp al,11111011b
jz ledwiper
cmp al,11110111b
jz berhenti
--------------------------------------------------------------------------------------------------------------------------------------
Dibuat Oleh Dr.Eddas, MT
Job 13. Memprogram uP 8086 untuk Membaca Tombol pada Port C PPI 8225 Halaman 7 dari 9
pop ax
jnz pilih
mov dx,portb
mov al,00000100b
out dx,al
call delay
mov dx,portb
mov al,00001000b
out dx,al
call delay
push ax
mov dx,portc
in al,dx
mov cl,al
cmp cl,11111110b
jz pilih
pop ax
mov dx,portb
jmp motorcw
--------------------------------------------------------------------------------------------------------------------------------------
Dibuat Oleh Dr.Eddas, MT
Job 13. Memprogram uP 8086 untuk Membaca Tombol pada Port C PPI 8225 Halaman 8 dari 9
mov cl,al
cmp cl,11111101b
pop ax
jz berhenti
mov dx,porta
jmp lagiled1
ledwiper: mov dx,porta
mov al,00000001b
push ax
mov dx,portc
in al,dx
mov cl,al
cmp cl,11110111b
pop ax
jz berhenti
mov dx,porta
jmp lagiled2
2. Buat laporan anda dengan baik dan rapi dan dikumpulkan ke elearning !
3. Demonstrasikan program yang telah anda buat sebelum file-nya diserahkan ke
dosen Anda.
***** SELAMAT BEKERJA SEMOGA SUKSES *****
--------------------------------------------------------------------------------------------------------------------------------------
Dibuat Oleh Dr.Eddas, MT
Job 13. Memprogram uP 8086 untuk Membaca Tombol pada Port C PPI 8225 Halaman 9 dari 9