Anda di halaman 1dari 46

Percobaan 1 Tampilan Led

1. Rangkaian Percobaan

KO PUTER M PA 7 PA 6 PA5 PA 4 PA 3 PA 2 PA 1 PA0 M DUL LED O

INTERFACE

8255

PB 7

PB 6

PB5 PB 4

PB 3 PB 2

PB 1 PB0 MO DUL LED

M DUL O

PO RT -A PO RT -B PO RT -C PC7 PC6 PC5 PC 4 PC 3 PC 2 PC1 PC 0

MO DUL LED

Gambar Rangakaian modul percobaan Tampilan LED

2. Flow Chart Program

Mulai

LED Berjalan Kelompok 1

Inisialisasi PPI

8255

Baca Port A

LED geser kanan ( P7 sampai P 0 )

T
Until Keypressed

Y
Selesai

3. Tugas Percobaan

Buatlah program untuk tampilan LED di Port A dengan urutan 1 s/d 8 dan kembali lagi ke no-1 seperti ditabel 1 : No 1 2 3 4 5 6 7 8 PA7 1 0 0 0 0 0 0 0 PA6 0 1 0 0 0 0 0 0 PA5 0 0 1 0 0 0 0 0 PA4 0 0 0 1 0 0 0 0 PA3 0 0 0 0 1 0 0 0 PA2 0 0 0 0 0 1 0 0 PA1 0 0 0 0 0 0 1 0 PA0 0 0 0 0 0 0 0 1 Delay[ms] 1000 1000 1000 1000 1000 1000 1000 1000

4. Hasil atau Tampilan Percobaan a. Tampilan pada monitor

b. Tampilan pada Modul


PA07 PA06 PA05 PA04 PA03 PA02 PA01 PA00

5. Listing Program
PROGRAM LEDPA1; USES CRT, DOS; CONST PA = $300; CWR = $303; VAR TD : INTEGER; PROCEDURE OUT(AL1:INTEGER; DATA1:BYTE); BEGIN PORT[AL1]:= DATA1; END; (*PROGRAM UTAMA*) BEGIN CLRSCR;

GOTOXY(5,5);WRITE (' KELOMPOK 1 _ EK 2D; '); GOTOXY(5,6);WRITE (' TUGAS 1 '); GOTOXY(5,7);WRITE (' AGUS SETIAWAN '); GOTOXY(5,8);WRITE (' DINA AFRILIYA '); GOTOXY(5,9);WRITE (' RAHMAN FAUZI '); OUT(CWR,$80); TD := 1000; REPEAT OUT(PA,$80); DELAY(TD); OUT(PA,$40); DELAY(TD); OUT(PA,$20); DELAY(TD); OUT(PA,$10); DELAY(TD); OUT(PA,$08); DELAY(TD); OUT(PA,$04); DELAY(TD); OUT(PA,$02); DELAY(TD); OUT(PA,$01); DELAY(TD); OUT(PA,$00); DELAY(TD);

UNTIL KEYPRESSED; END.

6. Analisa dan Kesimpulan

Pada percobaan ini Port A digunakan sebagai output untuk menampilkan hasil program menuju tampilan LED (pada Modul) menyala seperti pada hasil di atas. Kecepatan LED dapat di atur pada delay dalam mili second (TD := 1000). Semakin besar nilai delay, semakin lambat pula kecepatan LED berjalan.

PERCOBAAN 2 DIGITAL INPUT - OUTPUT


1. Rangkaian Percobaan

KO PUTER M PA7 PA6 PA5 PA 4 PA 3 PA 2 PA 1 PA 0 M DUL LED O

INTERFACE

8255

PB7

PB6

PB5 PB 4

PB 3 PB 2

PB 1 PB 0 MO DUL LED

M DUL O

PO RT -A PO RT -B PO RT -C PC7 PC6 PC5 PC 4 PC 3 PC 2 PC1 PC 0

M DUL LED O

Gambar Rangakaian modul percobaan Tampilan LED 2. Flow Chart Program

M ulai

Tam pilkan M enu

Inisialisasi PPI

8255

Baca Port B T

Switch 0 =1? T

LED geser kiri 1 bit

Switch 1 =1? T

LED geser kanan 1 bit

Switch 2 =1? Y Selesai

3. Tugas Percobaan Membuat tampilan nyala Led dengan ketentuan sebagai berikut : SW0 SW1 SW2 : Geser kiri 1 bit : Geser kanan 1 bit : Keluar

4. Hasil atau Tampilan Percobaan a. Tampilan Monitor

b. Tampilan pada Modul


PC07 PC06 PC05 PC04 PC03 PC02 PC01 PC00 PC07 PC06 PC05 PC04 PC03 PC02 PC01 PC00

LED geser kiri 1 bit, saat SW0 bernilai 1

LED geser kanan 1 bit, saat SW1 bernilai1

Program akan keluar, jika SW2 diberi nilai 1 dan SW1 maupun SW0 bernilai 0

5. Listing Program
PROGRAM DIGITAL_IO; USES CRT; CONST PA = $300;PC = $302;CWR = $303;

VAR

TD:INTEGER; DATA_PC: INTEGER;

PROCEDURE OUT(AL1:INTEGER; DATA1:BYTE); BEGIN PORT[AL1]:= DATA1; END; PROCEDURE G_KIRI_1BIT; BEGIN OUT(CWR,$89); TD := 500; OUT(PA,$01); DELAY(TD); OUT(PA,$02); DELAY(TD); OUT(PA,$04); DELAY(TD); OUT(PA,$08); DELAY(TD); OUT(PA,$10); DELAY(TD); OUT(PA,$20); DELAY(TD); OUT(PA,$40); DELAY(TD); OUT(PA,$80); DELAY(TD); END; PROCEDURE G_KANAN_1BIT; BEGIN OUT(CWR,$89); TD := 500; OUT(PA,$80); DELAY(TD); OUT(PA,$40); DELAY(TD); OUT(PA,$20); DELAY(TD); OUT(PA,$10); DELAY(TD); OUT(PA,$01); DELAY(TD); OUT(PA,$02); DELAY(TD); OUT(PA,$04); DELAY(TD); OUT(PA,$08); DELAY(TD); END; PROCEDURE EXIT; BEGIN CLRSCR; OUT(PA,$00); END; (*Program Utama*) BEGIN CLRSCR; OUT(CWR,$89); GOTOXY(5,5);WRITE(' KELOMPOK 1'); GOTOXY(5,6);WRITE('AGUS SETIAWAN'); GOTOXY(5,7);WRITE('DINA AFRILIYA'); GOTOXY(5,8);WRITE(' RAHMAN FAUZI'); Repeat DATA_PC:= PORT [PC] AND $07; IF DATA_PC <> 0 THEN BEGIN CASE DATA_PC OF $01:G_KIRI_1BIT; $02:G_KANAN_1BIT; $04: EXIT; End; End; Until Keypressed END.

10

6. Analisa dan Kesimpulan Pada percobaan ini merupakan percobaan pengaturan saklar. Untuk pengaturan saklar menggunakan aturan sebagai berikut : Switch SW0 SW1 SW2 PA7 0 0 0 PA6 0 0 0 PA5 0 0 0 PA4 0 0 0 PA3 0 0 0 PA2 0 0 1 PA1 0 1 0 PA0 1 0 0 DATA $01 $02 $04

Jika SW2 berlogik 1, kondisi LED sebelumnya akan berakhir atau stop pada akhir prosedur, baik prosedur SW1 maupun SW0.

PERCOBAAN 3 TAMPILAN LAMPU LALU LINTAS


1. Rangkaian Percobaan
11

K puter om
M1 K1 MP1 HP1
M1 K1 H1 M 1 P H 1 P

Interface

8255H1

MP2

M2

P ort _C P ort_A
HP1

K2 H2
M2 K2 H2 M 2 P H 2 P

M odul

Gb.2 Rangkaian Modul Percobaan Lalu Lintas 2. Flow Chart Program


Mulai

Traffic Light Kelompok 1

Inisialisasi PPI 8255

LED Kuning berkedip 3 kali

Baca Switch (Port C )

Y
Data PC 01 ? Cross _1

T
Data PC 02 ?

Y
Cross _2

T
Data PC 04 ?

Y
Selesai

3.

Tugas Percobaan
12

Membuat simulasi tampilan lampu lalu lintas dengan ketentuan sebagai berikut : SW0 (ON) SW1 (ON) SW2 (ON) : Cross 1 : Cross 2 : Exit

4.

Hasil atau Tampilan Percobaan

a. Tampilan pada Monitor

b. Tampilan pada Modul

LED Kuning kedip 3 kali

LED menyala sesuai Prosedur Traffic Light

Cross 1

Cross 2

13

5.

Listing Program
PROGRAM_TRAFFICT_LIGHT; USES CRT, DOS; CONST PA=$300;PC=$302;CWR=$303; VAR DATA_PC:INTEGER; PROCEDURE OUT(AL:INTEGER;DATA:BYTE); BEGIN PORT[AL]:=DATA; END; PROCEDURE CROSS_1; BEGIN OUT(PA,$31);DELAY(3000); END; PROCEDURE CROSS_2; BEGIN OUT(PA,$29);DELAY(3000); END; PROCEDURE EXIT; BEGIN clrscr; GOTOXY (5,18); WRITELN ('exit program'); OUT(PA,$00); HALT; END; (*PROGRAM UTAMA*) BEGIN GOTOXY (5,4); WRITELN ('--TRAFFIC LIGHT--'); GOTOXY (5,5); WRITELN (' KELOMPOK 1 EK 2D'); GOTOXY (5,6); WRITELN (' AGUS SETIAWAN'); GOTOXY (5,7); WRITELN (' DINA AFRILIYA'); GOTOXY (5,8); WRITELN (' RAHMAN FAUZI'); OUT(CWR,$89); OUT(PA,$42);DELAY(500); OUT(PA,$00);DELAY(500); OUT(PA,$42);DELAY(500); OUT(PA,$00);DELAY(500); OUT(PA,$42);DELAY(500); OUT(PA,$00);DELAY(500);

14

repeat OUT(PA,$81);DELAY(5000); OUT(PA,$41);DELAY(2000); OUT(PA,$24);DELAY(5000); OUT(PA,$22);DELAY(2000); DATA_PC:=PORT[PC] AND$07; IF DATA_PC<>0 THEN CASE DATA_PC OF $01:CROSS_1; $02:CROSS_2; $04:EXIT; END; UNTIL KEYPRESSED; END.

6.

Analisa dan Kesimpulan Pada percobaan ini, kami membuat program pengaturan lampu lalu lintas. Lampu lalu lintas disimulasikan dengan LED berwarna merah, kuning, dan hijau. Kami mengatur jalannya lampu dengan diawali kedip LED kuning 3 kali dengan delay yang telah diatur selama 500 ms. Kemudian mengatur nyala LED ditiap jalur agar dapat mengatur jalur dengan baik. Penggunaan Switch (SW0 dan SW1) yang diisi dengan prosedur untuk Cross 1 dan Cross 2, merupakan simulasi bila ada pengguna trotoar yang ingin menyeberang jalan pada kondisi

15

PERCOBAAN 4 MOTOR DC
1. Rangkaian Percobaan
KOMPUTER
RL E IK IN4 01 0 L D E 1

INTERFACE 8255
+ 1 0 ,1 F B 13 D 9 M T RD OO C M -

M ODUL MOTOR DC

M T R OO K I IR /K N N A A P 1 B 4 K7 +

PORT A MO DU L PORT B PORT C

MOTOR DC

12 V

1 K IN 4 001

L D E

Gambar 4.2. rangkaian modul percobaan Kontrol Motor DC

P 0 B

B D 4 K7

13 9 TIP 3 A 1 1 0 K

Gambar 4.1 Rangkaian kontrol Motor DC

2. Flow Chart Program


Mla ui

Mt rD oo C Klo p k e mo

I is lis s P I n ia a i P

85 25

Bc I p t aa nu Ky o r e b ad

Tmo o bl

= A

Pt rKi ua ir

Tmo o bl

= B T

Pta Kn n u r aa

Tmo o bl

= C

Mt rS p oo t o

Tmo o bl

= D

Y
Sle a e si

16

3. Tugas Percobaan Membuat program yang dapat memutar motor stepper dengan ketentuan putaran dan tombol sebagai berikut : A : Motor DC putar kiri B : Motor DC putar kanan C : Motor Stop D : Keluar 4. Hasil atau Tampilan Percobaan

a. Tampilan Pada Monitor

b. Tampilan Pada Modul

Motor putar kanan ( SW0=1 )

Motor putar kiri ( SW1=1 )

Motor Stop di sembarang posisi (SW2 = 1 )

5. Listing Program
PROGRAM MOTOR_DC; USES CRT, DOS; CONST PA=$300;CWR=303; VAR BEGIN PORT[AL]:=DATA; END; PROCEDURE MOTOR_KIRI; BEGIN TOMBOL :CHAR; PROCEDURE OUT (AL:INTEGER; DATA:BYTE);

17

GOTOXY(6,15); WRITE(' KIRI '); OUT(PA,$03); END; PROCEDURE MOTOR_KANAN; BEGIN GOTOXY(6,16); WRITE(' KANAN OUT(PA,$02); END; PROCEDURE MOTOR_STOP; BEGIN GOTOXY(6,17); WRITE(' MOTOR STOP '); OUT(PA,$00); END; (*PROGRAM UTAMA*) BEGIN CLRSCR; OUT(CWR,$80); GOTOXY(4,2); WRITE('*** MOTOR DC ***'); GOTOXY(4,4); WRITE(' KELOMPOK 01 '); GOTOXY(4,5); WRITE(' AGUS SETIAWAN '); GOTOXY(4,6); WRITE(' DINA AFRILIYA '); GOTOXY(4,7); WRITE(' RAHMAN FAUZI '); GOTOXY(6,9); WRITE(' ___KONTROL MOTOR DC___ '); GOTOXY(6,10); WRITE(' A = KIRI '); GOTOXY(6,11); WRITE(' B = KANAN ' ); GOTOXY(6,12); WRITE(' C = STOP '); GOTOXY(6,13); WRITE(' D = KELUAR '); REPEAT REPEAT UNTIL KEYPRESSED; TOMBOL := UPCASE(READKEY); CASE TOMBOL OF 'A': MOTOR_KIRI; 'B': MOTOR_KANAN; 'C': MOTOR_STOP; END; UNTIL TOMBOL='D'; END. ');

18

6. Analisa dan Kesimpulan Pada program diatas digunakan jenis motor DC. Program utama untuk motor DC menggunakan data untuk mematikan, putar kanan, dan putar kiri. Data yang digunakan sederhana sebab untuk menggerakkan motor DC hanya memerlukan dua masukan yaitu positif dan negative. Pada program diatas untuk masukkannya digunakan inputan dari keyboard. Masukan A digunakan untuk menggerakkan motor DC ke kiri, masukan B digunakan untuk menggerakkan motor DC ke kanan, untuk mematikan motor DC menggunakan masukan C dan untuk keluar dari program menggunakan masukan D. Untuk mengatur kecepatan putaran motor, kita dapat mengubah delay sesuai keinginan kita.

19

PERCOBAAN 5 MOTOR STEPPER


1. Rangkaian Percobaan
+12 V +12 V

1K

IN4001

+12 V

IN4001

1K

KOMPUTER
B PA3

D PA 3

2K2 2K2 TIP31A +12 V MOTOR STEPPER TIP31A +12 V

INTERFACE 8255

1K

IN4001

IN4001

1K

MODUL
A PA1

PORT A PORT B PORT C

MOTOR STEPER

C PA2

2K2 2K 2 TIP31A TIP31A

Gambar 12.a Rangkaian kontrol motor stepper

Gambar 12.b Rangkaian modul percobaan kontrol motor stepper

2. Flow Chart Program

20

Ma ui l

M o S pe o r t pr t e Kl m k e p o o

I i i ls s P I n a ai P s i

85 25

Bc I pt aa nu Ky or eba d

Tm l ob o

= A

Pt rKi u a ir Fl S p u t l e

Tm l ob o

= B T

Pt rKnn u a aa Hlf S p a t e

Tm l ob o

= C T

MoS p or t t o

Tm l ob o

= D

Y
Sl s i e a e

3. Tugas Percobaan Membuat program yang dapat memutar motor stepper dengan ketentuan putaran dan tombol sebagai berikut : A B C D : Motor Stepper kiri Full Step : Motor Stepper kanan Half Step : Motor Stop : Keluar

4. Hasil atau Tampilan Percobaan

a. Tampilan pada Monitor

21

b. Tampilan pada Modul Motor Stepper kiri Full Step

Motor Stepper kanan Half Step

5. Listing Program
PROGRAM MOTOR_STEPPER; USES CRT, DOS; CONST PB=$301; CWR=303; VAR TOMBOL :CHAR;

PROCEDURE OUT (AL:INTEGER; DATA:BYTE); BEGIN PORT[AL]:=DATA; END;

PROCEDURE MOTOR_KIRI_FULL_STEP; BEGIN GOTOXY(6,15); WRITE(' KIRI FULL STEP '); REPEAT

22

OUT(PB,$08);DELAY(300); OUT(PB,$04);DELAY(300); OUT(PB,$02);DELAY(300); OUT(PB,$01);DELAY(300); UNTIL KEYPRESSED; END;

PROCEDURE MOTOR_KANAN_HALF_STEP; BEGIN GOTOXY(6,16); WRITE(' KANAN HALF STEP '); REPEAT OUT(PB,$03);DELAY(300); OUT(PB,$02);DELAY(300); OUT(PB,$06);DELAY(300); OUT(PB,$04);DELAY(300); OUT(PB,$0C);DELAY(300); OUT(PB,$08);DELAY(300); OUT(PB,$09);DELAY(300); OUT(PB,$01);DELAY(300); UNTIL KEYPRESSED; END;

PROCEDURE MOTOR_STOP; BEGIN GOTOXY(6,17); WRITE(' MOTOR STOP '); OUT(PB,$00);

23

END; (*PROGRAM UTAMA*) BEGIN CLRSCR; OUT(CWR,$80); GOTOXY(4,2); WRITE('*** MOTOR STEPPER***'); GOTOXY(4,4); WRITE(' KELOMPOK 01 ');

GOTOXY(4,5); WRITE(' AGUS SETIAWAN '); GOTOXY(4,6); WRITE(' DINA AFRILIYA '); GOTOXY(4,7); WRITE(' RAHMAN FAUZI '); GOTOXY(6,9); WRITE(' ___KONTROL MOTOR STEPPER___ '); GOTOXY(6,10); WRITE(' A = KIRI FULL STEP '); GOTOXY(6,11); WRITE(' B = KANAN HALF STEP ' ); GOTOXY(6,12); WRITE(' C = STOP '); GOTOXY(6,13); WRITE(' D = KELUAR '); REPEAT REPEAT UNTIL KEYPRESSED; TOMBOL := UPCASE(READKEY); CASE TOMBOL OF 'A': MOTOR_KIRI_FULL_STEP; 'B': MOTOR_KANAN_HALF_STEP; 'C': MOTOR_STOP; END; UNTIL TOMBOL='D'; END.

24

6. Analisa dan Kesimpulan Pada program diatas jenis motor yang digunakan adalah motor stepper. Program utama untuk motor stepper diperlukan data yang lebih rumit karena pada motor stepper inputannya tidak hanya positif dan negative saja melainkan memerlukan suatu sistem ring counter. Pada program diatas untuk masukkannya digunakan inputan dari keyboard. Masukan A digunakan untuk menggerakkan motor DC ke kiri dengan putaran penuh ( Full Step), masukan B digunakan untuk menggerakkan motor DC ke kanan dengan cara setengah putaran ( Half step ), untuk mematikan motor DC menggunakan masukan C dan untuk keluar dari program menggunakan masukan D. Untuk mengatur kecepatan motor maka kita haru mengatur delay nya. Semakin besar delaynya maka perputaran motor semakin cepat.

PERCOBAAN 6 PROGRAM INETRFACING TO SEVEN SEGMEN

1.

Rangkaian Percobaan

25

Kmu r o p te
Dkdr eoe In rfa e te c 85 25

Md l ou P rt _A o Md l ou P rt _B o P rt _C o

7 Sg e dna Dkdr e mn e g n e o e

Md l ou

7 S g e ta p D k d r e mn n a e o e

2.

Flow Chart Program


Ma ui l

I t rai go n fc t e n Kl m k e p o o

7 Sg et em n 1

I i i lssPI n a ai P s i

85 25

Bc I pt aanu Kyor eba d

Tm l ob o

= A

7 Sg et em n dna egn D oe e dr c

Tm l ob o

= B T

7 Sg et em n t na eoe ap D dr c

Tm l ob o

= C

Y
Sl si e a e

3.

Tugas Percobaan

Membuat program yang dapat memunculkan tampilan 7 segmen dengan decoder dan tanpa decoder dengan ketentuan tombol sebagai berikut : A B : 7 segmen dengan decoder : 7 segmen tanpa decoder
26

: Keluar

4.

Hasil atau Tampilan Percobaan

a. Tampilan pada Monitor

b. Tampilan pada Modul Tampilan 7 segmen dengan decoder

Tampilan 7 segmen tanpa decoder

5.

Listing Program

PROGRAM INTERFACING_TO_7_SEGMENT; uses CRT, dos ; const PA=$300;PB=$301;CWR=$303;PC=$302; VAR TOMBOL:CHAR; DATA_PC:BYTE;

27

PROCEDURE OUT(AL:INTEGER;DATA:BYTE); BEGIN PORT[AL]:=DATA; END;

PROCEDURE JUDUL; BEGIN CLRSCR; GOTOXY(5,6);WRITELN('____ 7 SEGMENT _____'); GOTOXY(5,8);WRITELN(' KELOMPOK 1');

GOTOXY(5,9);WRITELN(' AGUS SETIAWAN'); GOTOXY(5,10);WRITELN('DINA AFRILIYA'); GOTOXY(5,11);WRITELN('RAHMAN FAUZI'); GOTOXY(5,13);WRITELN('A: 7 SEGMENT DENGAN DECODER'); GOTOXY(5,14);WRITELN('B: 7 SEGMENT TANPA DECODER'); GOTOXY(5,15);WRITELN('C: EXIT'); END; PROCEDURE SEVEN_SEGMENT_DENGAN_DECODER; BEGIN CLRSCR;

GOTOXY(20,20);WRITE('ANGKA : 0'); OUT(PB,$00);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 1'); OUT(PB,$01);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 2'); OUT(PB,$02);DELAY(300);

28

GOTOXY(20,20);WRITE('ANGKA : 3'); OUT(PB,$03);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 4'); OUT(PB,$04);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 5'); OUT(PB,$05);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 6'); OUT(PB,$06);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 7'); OUT(PB,$07);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 8'); OUT(PB,$08);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 9'); OUT(PB,$09);DELAY(300);

END;

PROCEDURE SEVEN_SEGMENT_TANPA_DECODER; BEGIN CLRSCR;

GOTOXY(20,20);WRITE('ANGKA : 0'); OUT(PC,$3F);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 1');

29

OUT(PC,$06);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 2'); OUT(PC,$5B);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 3'); OUT(PC,$4F);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 4'); OUT(PC,$66);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 5'); OUT(PC,$6D);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 6'); OUT(PC,$7D);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 7'); OUT(PC,$07);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 8'); OUT(PC,$7F);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : 9'); OUT(PC,$6F);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : A'); OUT(PC,$77);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : b'); OUT(PC,$7C);DELAY(300);

30

GOTOXY(20,20);WRITE('ANGKA : C'); OUT(PC,$39);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : d'); OUT(PC,$5E);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : E'); OUT(PC,$79);DELAY(300);

GOTOXY(20,20);WRITE('ANGKA : F'); OUT(PC,$71);DELAY(300);

END;

BEGIN CLRSCR; OUT(CWR,$80); REPEAT JUDUL;

TOMBOL:=upcase (readkey); CASE TOMBOL OF 'A': SEVEN_SEGMENT_DENGAN_DECODER; 'B': SEVEN_SEGMENT_TANPA_DECODER;

END; UNTIL TOMBOL='C'; EXIT; END.

31

6.

Analisa dan Kesimpulan

Pada percobaan ini kita menggunakan port B dan port C untuk menampilkan outputnya. 7 segmen dengan decoder menggunakan port B sedangkan 7 segmen tanpa decoder menggunakan port C. perbedaan menggunakan decoder dan tanpa decoder adalah : 7 segmen dengan decoder membutuhkan rangkaian decoder BCD untuk menampilkan angka. Misalnya dengan decoder 74xx47 (untuk common anoda) dan 74xx48 (untuk common katoda). 7 segmen tanpa decoder terdiri dari 7 buah LED yang tersusun dengan semua anoda terhubung menjadi satu (common anoda) dan untuk menampilkan dihubungkan ke +VCC, atau jika katoda yang terhubung menjadi satu (common katoda) untuk menampilkan dihubungkan ke 0.

32

PERCOBAAN 7 PROGRAM SCAN SEVEN SEGMENT


1. Rangkaian Percobaan

K mu r o p te

In terfa ce

8255

P rt _C o

M odul P rt_ o B

Gambar 7 Rangkaian modul percobaan scanning 7 segmen 2. Flow Chart Program


M la u i

S n 7 Sg et ca e mn K lo p k e mo 1

In lisa P I isia si P

P rt_ o C

85 25

B ca In u a pt K yb a e o rd

T mo o bl

= A

S n D la ca e y 1m s

T mo o bl

= B T

S n D la ca e y 4m s

T mo o bl

=C T

S n D la ca e y 2 m 0 s

T mo o bl

=D

Y
S le i e sa

33

3.

Tugas Percobaan

Membuat program yang dapat menampilkan tulisan EC-2d1 dengan menggunakan scaning 7 segmen. Kemudian merubah delay dengan ketentuan tombol sebagai berikut : A B C D : 1 ms : 4 ms : 20 ms : Keluar

4.

Hasil atau Tampilan Percobaan

5.

Listing Program

PROGRAM SCAN_7SEGMEN; USES CRT,DOS; CONST PA=$300;PB=$301;PC=$302;CWR=$303; VAR DATA_PC:BYTE; TOMBOL:CHAR;

PROCEDURE OUT (AL:INTEGER;DATA:BYTE); BEGIN PORT [AL]:=DATA; END;

34

PROCEDURE SCAN_DELAY_1mS; BEGIN CLRSCR; GOTOXY (15,5); WRITE('TAMPILAN DENGAN T=1mS'); REPEAT OUT (PC,$86);OUT (PB,$01);DELAY(1); OUT (PC,$C6);OUT (PB,$02);DELAY(1); OUT (PC,$BF);OUT (PB,$04);DELAY(1); OUT (PC,$A4);OUT (PB,$08);DELAY(1); OUT (PC,$A1);OUT (PB,$10);DELAY(1); OUT (PC,$F9);OUT (PB,$20);DELAY(1); UNTIL KEYPRESSED; END;

PROCEDURE SCAN_DELAY_4mS; BEGIN CLRSCR; GOTOXY (15,5); WRITE('TAMPILAN DENGAN T=4mS'); REPEAT OUT (PC,$86);OUT (PB,$01);DELAY(4); OUT (PC,$C6);OUT (PB,$02);DELAY(4); OUT (PC,$BF);OUT (PB,$04);DELAY(4); OUT (PC,$A4);OUT (PB,$08);DELAY(4);

35

OUT (PC,$A1);OUT (PB,$10);DELAY(4); OUT (PC,$F9);OUT (PB,$20);DELAY(4); UNTIL KEYPRESSED; END;

PROCEDURE SCAN_DELAY_20mS; BEGIN CLRSCR; GOTOXY (15,5); WRITE('TAMPILAN DENGAN T=20mS'); REPEAT OUT (PC,$86);OUT (PB,$01);DELAY(20); OUT (PC,$C6);OUT (PB,$02);DELAY(20); OUT (PC,$BF);OUT (PB,$04);DELAY(20); OUT (PC,$A4);OUT (PB,$08);DELAY(20); OUT (PC,$A1);OUT (PB,$10);DELAY(20); OUT (PC,$F9);OUT (PB,$20);DELAY(20); UNTIL KEYPRESSED; END; (* PROGRAM UTAMA *) BEGIN CLRSCR; GOTOXY(5,04);WRITE(' GOTOXY(5,05);WRITE(' GOTOXY(5,06);WRITE(' SCANING 7 SEGMEN : '); KELOMPOK 1 ');

----------------------');

36

GOTOXY(5,07);WRITE(' GOTOXY(5,08);WRITE(' GOTOXY(5,09);WRITE(' GOTOXY(5,13);WRITE(' GOTOXY(5,14);WRITE(' GOTOXY(5,15);WRITE(' GOTOXY(5,16);WRITE('

AGUS SETIAWAN DINA AFRILIYA RAHMAN FAUZI A:SCAN DELAY 1mS B:SCAN DELAY 4mS C:SCAN DELAY 20mS D:EXIT

'); '); '); '); '); '); ');

GOTOXY(5,10);WRITE('__________________________'); OUT(CWR,$80); REPEAT TOMBOL:=UPCASE(READKEY); CASE TOMBOL OF 'A' : SCAN_DELAY_1mS; 'B' : SCAN_DELAY_4mS; 'C' : SCAN_DELAY_20mS; END; UNTIL TOMBOL='D'; END.

6.

Analisa dan Kesimpulan Percobaan di atas merupakan Pembacaan tampilan 7 segment, dimana port input

dihubungkan langsung ke 7 segment. Tampilan pada 7 segment diatur oleh switch pada modul. Pada program diatas tampilan pada layar akan sesuai dengan tampilan angka pada 7 segment. Tampilan 7 segment pada program di atas dibuat sedemikian rupa sehingga tampilan pada 7 segment akan menyala dengan delay yang kita inginkan. Program ini akan bekerja saat terdapat masukkan dari keyboard. Masukan A digunakan untuk menyalakan 7 segment dengan delay 1 mS, masukan B digunakan untuk menyalakan 7 segment dengan delay 4 mS, masukan C
37

digunakan untuk menyalakan 7 segment dengan delay 20 mS dan untuk keluar dari program menggunakan masukan D.

38

PERCOBAAN 8 KEYPAD TANPA COMMON


1. Rangkaian Percobaan
KOMPUTER

INTERFACE 8255 MODUL KEYPAD TANPA COMMON 1 PORT A MODUL PORT B PORT C 4 7 . 2 5 8 0 3 6 9 # A B C D

Gambar 8. Rangkaian modul percobaan keypad tanpacommon 2. Flow Chart Program

*
Ma ui l Kya epd 4x4 Tna o m ap Cmo n Kl m k e p o o 1 85 25 Dt P a B a = $ 0 1 Bc Tm l aa o b o Lj r a u 1 T Dt P a B a = $ 0 2 1 T Y Tml n il yr a pa d aa i Aga nk Dt P a B a = $ 0 4 2 T T Dt P a B a = $ 0 4 T Dt P a B a = $ 0 8 T StF g e l a = Te r u Dt P a B a = $ 0 1 T 2 Dt P a B a = $ 0 2 Tml n il yr a pa d aa i Aga nk 4 Y T Dt P a B a = $ 0 2 Y Tml n il yr a pa d aa i Aga nk Dt P a B a = $ 0 4 5 T Dt P a B a = $ 0 8 Y Tml n il yr a pa d aa i Aga nk 6 StF g e l a Y Tml n il yr a pa d aa i Hr f B uu T = Tu re Y Tml n il yr a pa d aa i Hr fD uu Y Tml n il yr a pa d aa i Aga nk # Y Tml n il yr a pa d aa i Aga nk 0 Y Tml n il yr a pa d aa i Aga nk Y Tml n il yr a pa d aa i Hr fA uu Y Tml n il yr a pa d aa i Aga nk 3 StF g e l a Dt P a B a = $ 0 8 T = Te r u Y Tml n il y r a pa d aa i Hr fC uu Y Tml n il y r a pa d aa i Aga nk 9 Y Tml n il yr a pa d aa i Aga nk StF g e l a = Tu re Bc Tm l aa o b o Lj r a u 3 I i i lssPI n a ai P si

Tml n il yr a pa d aa i Aga nk

Dt P a B a = $ 0 1 T Dt P a B a = $ 0 2

Tml n il yr a pa d aa i Aga nk

Bc Tm l aa o b o Lj r a u

Bc Tm l aa o b o Lj r a u

Dt P a B a = $ 0 1

T Dt P a B a = $ 0 4 T Dt P a B a = $ 0 8 T

Bc Tm l aa o b o Lj r a u 3 dn a

*
T

Dt P a B a = $ 0 3 T UtlKyr se n epesd i Y Sl si e a e

Tml n il y r a pa d aa i em k Kl p o o

39

3.

Tugas Percobaan Membuat program yang bisa memunculkan tulisan KELOMPOK_1 ketika tombol 7 dan

0 ditekan bersamaan.

4.

Hasil atau Tampilan Percobaan

Setelah tombol Keypad 7 dan 0 ditekan secara bersamaan, tulisan KELOMPOK_1 akan muncul di atas tulisan TOMBOL : pada monitor.

5.

Listing Program

PROGRAM KEYPAD_TANPA_COMMON; uses CRT,dos; const PA=$300;PB=$301;PC=$302;CWR=$303; var DATAPB:INTEGER; TOMBOL:CHAR; FLAG_ON:BOOLEAN; TAMPIL:WORD; procedure OUT(AL:integer;DATA:byte); begin PORT[AL]:=DATA; end; PROCEDURE KELOMPOK_1; BEGIN OUT(PA,$0C); DATAPB:=PORT[PB]AND $0F; IF DATAPB=$03 THEN BEGIN GOTOXY(4,4);WRITE('KELOMPOK_1'); DELAY(300); END; END; PROCEDURE BACA_TOMBOL; BEGIN OUT(PA,$01); DATAPB:=(PORT[PB]AND$0F); IF DATAPB<>0 THEN

40

BEGIN

CASE DATAPB OF $01:TOMBOL:='1'; $02:TOMBOL:='2'; $04:TOMBOL:='3'; $08:TOMBOL:='A'; END; FLAG_ON:=TRUE;

ELSE

END BEGIN OUT(PA,$02); DATAPB:=(PORT[PB]AND$0F); IF DATAPB<>0 THEN BEGIN CASE DATAPB OF $01:TOMBOL:='4'; $02:TOMBOL:='5'; $04:TOMBOL:='6'; $08:TOMBOL:='B'; END; FLAG_ON:=TRUE; END BEGIN OUT(PA,$04); DATAPB:=(PORT[PB]AND$0F); IF DATAPB<>0 THEN BEGIN CASE DATAPB OF $01:TOMBOL:='7'; $02:TOMBOL:='8'; $04:TOMBOL:='9'; $08:TOMBOL:='C'; END; FLAG_ON:=TRUE; END BEGIN

ELSE

ELSE

OUT(PA,$08); DATAPB:=(PORT[PB]AND$0F); IF DATAPB<>0 THEN BEGIN CASE DATAPB OF $01:TOMBOL:='*'; $02:TOMBOL:='0'; $04:TOMBOL:='#'; $08:TOMBOL:='D'; END; FLAG_ON:=FALSE; END ELSE FLAG_ON:=TRUE; END; END; END; END; (*PROGRAM UTAMA*) BEGIN CLRSCR; OUT(CWR,$82); GOTOXY(4,8);WRITE('KEYPAD TANPA COMMON');

41

GOTOXY(4,9);WRITE('KELOMPOK 1'); GOTOXY(4,10);WRITE('AGUS SETIAWAN'); GOTOXY(4,11);WRITE('DINA AFRILIYA'); GOTOXY(4,12);WRITE('RAHMAN FAUZI'); REPEAT KELOMPOK_1; BACA_TOMBOL; IF FLAG_ON THEN BEGIN END ELSE BEGIN GOTOXY(4,5);WRITE('TOMBOL:',TOMBOL);

GOTOXY(4,5);WRITE('TOMBOL:',''); END; UNTIL KEYPRESSED; END.

6.

Analisa dan Kesimpulan

Pada percobaan ini untuk memunculkan tulisan KELOMPOK_1 pada layar membutuhkan password. Dalam hal ini 7 dan 0 harus di tekan bersamaan, kalu tidak bersamaan maka tidak muncul tulisan yang kita harapkan atau yang kita atur pada prosedur. Tombol tombol tersebut digabung menurut rangkaian keypad tanpa common dan di dapatkan kode untuk PA 0C dan untuk PB 03.

42

PERCOBAAN 9 KEYPAD DENGAN COMMON


1. Rangkaian Percobaan
KOM PUTER

INTERFACE

8255 M ODUL KEYPAD DENGAN COM ON M 1 PORT A 4 7 . 2 5 8 0 3 6 9 #

M ODUL

PORT B PORT C

Gambar 9. Rangkaian modul percobaan keypad dengan common 2. Flow Chart Program

43

Mulai Keypad 4x3 Dengan Common Kelompok 1 Inisialisasi PPI 8255

T Y Tampilan di layar Angka 7

Data PA = $ 21

Baca Port A (Data _PA)

T Data PA = $ 22 Y Tampilan di layar Angka 1 T Data PB = $ 24 Y Tampilan di layar Angka 2 Y Tampilan di layar Angka 9 Y Tampilan di layar Angka 8

Data PA = $ 09 T Data PA = $ 0A

Data PA = $ 41 T

Tampilan di layar *

T Data PA = $ 0C T Data PB = $ 11 Y Tampilan di layar Angka 4 Y Tampilan di layar Angka 3

Data PA = $ 42

Tampilan di layar Angka 0

T Data PA = $ 44

Tampilan di layar #

Data PA = $ 12 T Data PA = $ 14

Tampilan di layar Angka 5

Data PB = $ 19 T

Tampilan di layar Kelompok 1

Tampilan di layar Angka 6 Until Keypressed

*
3. Tugas Percobaan

Y Selesai

Membuat program yang bisa memunculkan tulisan KELOMPOK_1 pada monitor, ketika tombol 1 dan 4 ditekan bersamaan.

4.

Hasil atau Tampilan Percobaan

44

Setelah tombol Keypad 1 dan 4 ditekan secara bersamaan, tulisan KELOMPOK_1 akan muncul di atas tulisan TOMBOL : pada monitor. 5. Listing Program
PROGRAM KEYPAD_DENGAN_COMMON; uses CRT,dos; const PA=$300;PB=$301;PC=$302;CWR=$303; var DATAPA:INTEGER; TOMBOL:CHAR; FLAG_ON:BOOLEAN; TAMPIL:WORD; procedure OUT(AL:integer;DATA:byte); begin PORT[AL]:=DATA; end; PROCEDURE KELOMPOK_1; BEGIN DATAPA:=PORT[PA]AND $7F; IF DATAPA=$19 THEN BEGIN GOTOXY(4,4);WRITE('KELOMPOK_1'); END; END;

PROCEDURE BACA_TOMBOL; BEGIN DATAPA:=(PORT[PA]AND$7F); IF DATAPA<>0 THEN BEGIN CASE DATAPA OF $09:TOMBOL:='1'; $0A:TOMBOL:='2'; $0C:TOMBOL:='3'; $11:TOMBOL:='4'; $12:TOMBOL:='5'; $14:TOMBOL:='6'; $21:TOMBOL:='7'; $22:TOMBOL:='8'; $24:TOMBOL:='9'; $41:TOMBOL:='*'; $42:TOMBOL:='0'; $44:TOMBOL:='#'; END; FLAG_ON:=TRUE; END ELSE FLAG_ON:=FALSE; END; (*PROGRAM UTAMA*) BEGIN CLRSCR; OUT(CWR,$9B); GOTOXY(4,8);WRITE('KEYPAD DENGAN COMMON'); GOTOXY(4,9);WRITE(' KELOMPOK 1');

45

GOTOXY(4,10);WRITE('AGUS SETIAWAN'); GOTOXY(4,11);WRITE('DINA AFRILIYA'); GOTOXY(4,12);WRITE('RAHMAN FAUZI'); REPEAT BACA_TOMBOL; KELOMPOK_1; IF FLAG_ON THEN BEGIN GOTOXY(4,5);WRITE('TOMBOL:',TOMBOL); END ELSE BEGIN GOTOXY(4,5);WRITE('TOMBOL:',''); END; UNTIL KEYPRESSED;

END.

6.

Analisa dan Kesimpulan

Pada percobaan ini menggunakan dua tombol untuk memunculkan tulisan KELOMPOK_1. Digunakan dua tombol pada keypad, yaitu 1dan 4 yang harus ditekan secara bersamaan untuk memunculkan tulisan KELOMPOK_1. Data PA pada program harus $19 yang di dapat dari operasi OR untuk nilai biner dari tombol tombol tersebut menurut pendeteksian tombol yang di tekan (dalam hal ini 1 dan 4). Sedangkan untuk penentuan nilai biner dari tombol yang di tekan, dapat dilakukan dengan cara menentukan kolom dan lajur mana yang terhubung dengan common sebagai akibat penekanan tombol (pada rangkaian keypad dengan common).

46