Laporan Interface Jadi
-
Upload
d-angga-ranie -
Category
Documents
-
view
72 -
download
2
Transcript of Laporan Interface Jadi
Percobaan 1
Tampilan Led
1. Rangkaian Percobaan
Gambar Rangakaian modul percobaan Tampilan LED
2. Flow Chart Program
1
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
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
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
PERCOBAAN 2
DIGITAL INPUT - OUTPUT
1. Rangkaian Percobaan
Gambar Rangakaian modul percobaan Tampilan LED
2. Flow Chart Program
5
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
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
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
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
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
LED Kuning kedip 3 kali
LED menyala sesuaiProsedur Traffic Light
b. Tampilan pada Modul
11
Cross 1 Cross 2
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
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
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
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 )
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
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
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
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
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
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
PERCOBAAN 6
PROGRAM INETRFACING TO SEVEN SEGMEN
1. Rangkaian Percobaan
2. Flow Chart Program
22
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
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
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
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
PERCOBAAN 7PROGRAM SCAN SEVEN SEGMENT
1. Rangkaian Percobaan
Gambar 7 Rangkaian modul percobaan scanning 7 segmen
2. Flow Chart Program
27
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
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
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
PERCOBAAN 8
KEYPAD TANPA COMMON
1. Rangkaian Percobaan
Gambar 8. Rangkaian modul percobaan keypad tanpacommon
2. Flow Chart Program
31
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
$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
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
PERCOBAAN 9
KEYPAD DENGAN COMMON
1. Rangkaian Percobaan
Gambar 9. Rangkaian modul percobaan keypad dengan common
2. Flow Chart Program
35
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
$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