laporan interface jadi

50
Percobaan 1 Tampilan Led 1. Rangkaian Percobaan Gambar Rangakaian modul percobaan Tampilan LED 2. Flow Chart Program 1

Upload: d-angga-ranie

Post on 24-Oct-2014

72 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Laporan Interface Jadi

Percobaan 1

Tampilan Led

1. Rangkaian Percobaan

Gambar Rangakaian modul percobaan Tampilan LED

2. Flow Chart Program

1

Page 2: Laporan Interface Jadi

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 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 Delay[ms]

1 1 0 0 0 0 0 0 0 1000

2 0 1 0 0 0 0 0 0 1000

3 0 0 1 0 0 0 0 0 1000

4 0 0 0 1 0 0 0 0 1000

5 0 0 0 0 1 0 0 0 1000

6 0 0 0 0 0 1 0 0 1000

7 0 0 0 0 0 0 1 0 1000

8 0 0 0 0 0 0 0 1 1000

4. Hasil atau Tampilan Percobaan

a. Tampilan pada monitor

2

Page 3: Laporan Interface Jadi

b. Tampilan pada Modul

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);

3

Page 4: Laporan Interface Jadi

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.

4

Page 5: Laporan Interface Jadi

PERCOBAAN 2

DIGITAL INPUT - OUTPUT

1. Rangkaian Percobaan

Gambar Rangakaian modul percobaan Tampilan LED

2. Flow Chart Program

5

Page 6: Laporan Interface Jadi

3. Tugas Percobaan

Membuat tampilan nyala Led dengan ketentuan sebagai berikut :

SW0 : Geser kiri 1 bit

SW1 : Geser kanan 1 bit

SW2 : Keluar

4. Hasil atau Tampilan Percobaan

a. Tampilan Monitor

b. Tampilan pada Modul

∎LED geser kiri 1 bit, saat SW0 bernilai ‘1’ ∎LED geser kanan 1 bit, saat SW1 bernilai’1’

∎Program akan keluar, jika SW2 diberi nilai ‘1’ dan SW1 maupun SW0 bernilai ’0’6

Page 7: Laporan Interface Jadi

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;BEGINOUT(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;BEGINOUT(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;BEGINCLRSCR;OUT(PA,$00);END;

(*Program Utama*)BEGINCLRSCR;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

7

Page 8: Laporan Interface Jadi

CASE DATA_PC OF $01:G_KIRI_1BIT; $02:G_KANAN_1BIT; $04: EXIT; End; End;

Until KeypressedEND.

6. Analisa dan Kesimpulan

Pada percobaan ini merupakan percobaan pengaturan saklar. Untuk pengaturan saklar

menggunakan aturan sebagai berikut :

Switch PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 DATA

SW0 0 0 0 0 0 0 0 1 $01

SW1 0 0 0 0 0 0 1 0 $02

SW2 0 0 0 0 0 1 0 0 $04

Jika SW2 berlogik ’1’, kondisi LED sebelumnya akan berakhir atau stop pada akhir

prosedur, baik prosedur SW1 maupun SW0.

8

Page 9: Laporan Interface Jadi

PERCOBAAN 3

TAMPILAN LAMPU LALU LINTAS

1. Rangkaian Percobaan

Gb.2 Rangkaian Modul Percobaan Lalu Lintas

2. Flow Chart Program

9

Komputer

Interface 8255

Modul Port_A

M2

K2

H2

MP2

HP2

MP1

HP1

M1

K1

H1

Port_C

Page 10: Laporan Interface Jadi

3. Tugas Percobaan

Membuat simulasi tampilan lampu lalu lintas dengan ketentuan sebagai berikut :

SW0 (ON) : Cross 1

SW1 (ON) : Cross 2

SW2 (ON) : Exit

4. Hasil atau Tampilan Percobaan

a. Tampilan pada Monitor

10

Page 11: Laporan Interface Jadi

LED Kuning kedip 3 kali

LED menyala sesuaiProsedur Traffic Light

b. Tampilan pada Modul

11

Cross 1 Cross 2

Page 12: Laporan Interface Jadi

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);

12

Page 13: Laporan Interface Jadi

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

13

Page 14: Laporan Interface Jadi

PERCOBAAN 4

MOTOR DC

1. Rangkaian Percobaan

2. Flow Chart Program

14

Gambar 4.1 Rangkaian kontrol Motor DC

Gambar 4.2. rangkaian modul percobaan Kontrol Motor DC

Page 15: Laporan Interface Jadi

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

5. Listing Program

PROGRAM MOTOR_DC;

USES CRT, DOS;

CONST PA=$300;CWR=303;

VAR TOMBOL :CHAR;

PROCEDURE OUT (AL:INTEGER; DATA:BYTE);

BEGIN

PORT[AL]:=DATA;

END;

PROCEDURE MOTOR_KIRI;

BEGIN

15

∎Motor Stop di sembarang posisi (SW2 = 1 )∎Motor putar kiri ( SW1=1 )∎Motor putar kanan

( SW0=1 )

Page 16: Laporan Interface Jadi

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.

16

Page 17: Laporan Interface Jadi

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.

17

Page 18: Laporan Interface Jadi

PERCOBAAN 5MOTOR STEPPER

1. Rangkaian Percobaan

2. Flow Chart Program

18

Gambar 12.a Rangkaian

kontrol motor stepper

Gambar 12.b Rangkaian modul

percobaan kontrol motor stepper

Page 19: Laporan Interface Jadi

3. Tugas Percobaan

Membuat program yang dapat memutar motor stepper dengan ketentuan putaran dan

tombol sebagai berikut :

A : Motor Stepper kiri Full Step

B : Motor Stepper kanan Half Step

C : Motor Stop

D : Keluar

4. Hasil atau Tampilan Percobaan

a. Tampilan pada Monitor

b. Tampilan pada Modul∎Motor Stepper kiri Full Step

∎Motor Stepper kanan Half Step5. 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 ');

19

Page 20: Laporan Interface Jadi

REPEAT

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);

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 ');

20

Page 21: Laporan Interface Jadi

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.

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.

21

Page 22: Laporan Interface Jadi

PERCOBAAN 6

PROGRAM INETRFACING TO SEVEN SEGMEN

1. Rangkaian Percobaan

2. Flow Chart Program

22

Page 23: Laporan Interface Jadi

3. Tugas Percobaan

Membuat program yang dapat memunculkan tampilan 7 segmen dengan decoder dan tanpa

decoder dengan ketentuan tombol sebagai berikut :

A : 7 segmen dengan decoder

B : 7 segmen tanpa decoder

C : 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;

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

23

Page 24: Laporan Interface Jadi

PROCEDURE JUDUL;BEGINCLRSCR;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;BEGINCLRSCR;

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);

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;BEGINCLRSCR;

24

Page 25: Laporan Interface Jadi

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

GOTOXY(20,20);WRITE('ANGKA : 1');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);

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;

BEGINCLRSCR;OUT(CWR,$80);

25

Page 26: Laporan Interface Jadi

REPEATJUDUL;

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

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

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.

26

Page 27: Laporan Interface Jadi

PERCOBAAN 7PROGRAM SCAN SEVEN SEGMENT

1. Rangkaian Percobaan

Gambar 7 Rangkaian modul percobaan scanning 7 segmen

2. Flow Chart Program

27

Page 28: Laporan Interface Jadi

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 : 1 ms

B : 4 ms

C : 20 ms

D : 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;

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);

28

Page 29: Laporan Interface Jadi

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);

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(' SCANING 7 SEGMEN : ');

GOTOXY(5,05);WRITE(' KELOMPOK 1 ');

GOTOXY(5,06);WRITE(' ----------------------');

29

Page 30: Laporan Interface Jadi

GOTOXY(5,07);WRITE(' AGUS SETIAWAN ');

GOTOXY(5,08);WRITE(' DINA AFRILIYA ');

GOTOXY(5,09);WRITE(' RAHMAN FAUZI ');

GOTOXY(5,13);WRITE(' A:SCAN DELAY 1mS ');

GOTOXY(5,14);WRITE(' B:SCAN DELAY 4mS ');

GOTOXY(5,15);WRITE(' C:SCAN DELAY 20mS ');

GOTOXY(5,16);WRITE(' 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’ digunakan untuk menyalakan 7 segment dengan delay 20 mS dan untuk keluar

dari program menggunakan masukan ‘D’.

30

Page 31: Laporan Interface Jadi

PERCOBAAN 8

KEYPAD TANPA COMMON

1. Rangkaian Percobaan

Gambar 8. Rangkaian modul percobaan keypad tanpacommon

2. Flow Chart Program

31

Page 32: Laporan Interface Jadi

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 BEGIN CASE DATAPB OF $01:TOMBOL:='1'; $02:TOMBOL:='2'; $04:TOMBOL:='3';

32

Page 33: Laporan Interface Jadi

$08:TOMBOL:='A'; END; FLAG_ON:=TRUE; ENDELSE 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; ENDELSE 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; ENDELSE BEGIN 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; ENDELSE FLAG_ON:=TRUE;END;END;END;END;(*PROGRAM UTAMA*)BEGIN CLRSCR; OUT(CWR,$82);

GOTOXY(4,8);WRITE('KEYPAD TANPA COMMON'); GOTOXY(4,9);WRITE('KELOMPOK 1'); GOTOXY(4,10);WRITE('AGUS SETIAWAN'); GOTOXY(4,11);WRITE('DINA AFRILIYA'); GOTOXY(4,12);WRITE('RAHMAN FAUZI');

33

Page 34: Laporan Interface Jadi

REPEAT KELOMPOK_1; BACA_TOMBOL; 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 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.

34

Page 35: Laporan Interface Jadi

PERCOBAAN 9

KEYPAD DENGAN COMMON

1. Rangkaian Percobaan

Gambar 9. Rangkaian modul percobaan keypad dengan common

2. Flow Chart Program

35

Page 36: Laporan Interface Jadi

3. Tugas Percobaan

Membuat program yang bisa memunculkan tulisan ‘KELOMPOK_1’ pada monitor,

ketika tombol 1 dan 4 ditekan bersamaan.

4. Hasil atau Tampilan Percobaan

∎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';

36

Page 37: Laporan Interface Jadi

$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'); 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).

37