Anda di halaman 1dari 16

1

MODUL II
ANTARMUKA MIKROKONTROLER DENGAN TOGGLE SWITCH

TUJUAN

 Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan


rangkaian input saklar toggle.
 Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk membaca
data input dari saklar toggle.

SAKLAR TOGGLE

Saklar toggle adalah salah satu saklar elektrik yang digerakkan secara manual oleh
batang mekanik. Saklar toggle tersedia dalam berbagai bentuk dan ukuran, serta digunakan
dalam berbagai aplikasi. Gambar 2.1 (a) dan (b) memperlihatkan bentuk fisik dan simbol
saklar toggle.

(a) (b)

R18
470
R19 Q9
PX.Y 2N3904
1k

SW1
SW-SPST

(c)
Gambar 2.1 Toggle switch (a) Bentuk Fisik, (b) Simbol, dan (c) Rangkaian

Dalam modul I/O yang dipakai dalam praktikum, saklar toggle yang digunakan diberi
rangkaian tambahan berupa rangkaian LED untuk melihat secara langsung logika yang ada
pada saklar. Rangkaian LED sama dengan rangkaian dalam Modul I. Delapan rangkaian saklar
dihubungkan ke sebuah soket jumper bernama INPUT.
2
PERINTAH DASAR MEMBACA DATA

 Sebelum membaca data, perlu dibuat deklarasi variabel untuk data yang dimasukkan.
Data bisa bertipe char. Deklarasi variabel diletakkan di variabel lokal pada main
program.
void main (void)
{
//Declare your local variables here
unsigned char data_in;

 Untuk membaca data byte ke PORTX (X=A, B, C, D) digunakan statement
data_in = PINX;
contoh: data_in = PINB;
 Untuk membaca data bit ke PORTX.Y (X=A, B, C, D dan Y=0, 1, 2 , 3, 4, 5, 6, 7)
digunakan statement
data_in = PINX.Y;
contoh: data_in = PINB.1;

ALAT DAN BAHAN YANG DIGUNAKAN

 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama Programmer
 1 set trainer mikrokontroler
 2 buah kabel pita 10p untuk data

PROSEDUR

1. Hubungkan soket jumper PORTB pada minimum system dengan soket jumper
OUTPUT pada I/O dan soket jumper PORTC pada minimum system dengan soket
jumper INPUT pada I/O.
2. Buka aplikasi Code Vision AVR.
3. Buatlah file project (.prj) kemudian pilih IC yang digunakan (ATmega8535) dan atur
clock 4.000 Mhz seperti pada praktikum sebelumnya.
4. Buatlah file source (.c) kemudian hubungkan file project dengan file source seperti
pada praktikum sebelumnya.
5. Tambahkan file header

6. Buat program utama dan inisialisasikan PORTB sebagai output (DDRB = FFH) dan
output value = 0 (PORTB=00H), dan PORTC sebagai input (DDRC = 00H) dan resistor
pullup dihubungkan (PORTC=FFH) sehingga pada program bagian inisialisasi PORTB
dan PORTC terlihat sebagai berikut:
3

7. Tambahkan deklarasi variabel lokal di bawah ini dalam program utama.

8. Tuliskan dalam program utama tepatnya tuliskan program di dalam while (1)

9. Compile program tersebut dengan cara klik Project>> Compile atau ketik F9.
10. Jika ada error , koreksi program yang error dan perbaiki. Jika sudah tidak ada yang
error build program tersebut dengan cara klik Project>> Build atau klik Shift + F9.
11. Hubungkan kabel usb printer antara PC/ Laptop dengan trainer.
12. Buka aplikasi Khanzama AVR Programmer. Pilih ATmega8535 pada pilihan chip AVR.
Kemudian buka program kompilasi saklar.hex biasanya terdapat pada folder atau sub
derektori..\Exe yang terdapat pada folder “praktikum 2 “ dengan cara klik file>> Load
Flash File to Buffer atau ketik Ctrl + L kemudian klik Open.
13. Klik Auto Program kemudian pindahkan saklar sesuai tabel 2.1 dibawah, amati dan
catat nyala LED.

Tabel 2.1 Program Saklar1


No. Saklar LED
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 1
2 0 0 0 0 0 0 1 1
3 0 0 0 0 0 1 0 1
4 0 0 0 0 1 0 0 1
5 0 0 0 1 0 0 0 1
6 0 0 1 0 0 0 0 1
7 0 1 0 0 0 0 0 1
8 1 0 0 0 0 0 0 1
9 1 1 1 1 1 1 1 1
4
14. Hapus program yang ada pada program utama tepatnya program di dalam while (1)
kemudian tuliskan program di dalam while(1).

15. Compile dan Build program, jika ada yang error perbaiki program. Masukkan file hex
menggunakan Khanzama AVR Programer. Klik auto program.
16. Pindahkan saklar sesuai tabel 3.1 dibawah, amati dan catat nyala LED.

Tabel 3.1 Program Saklar2


No. Saklar LED
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 1
2 0 0 0 0 0 0 1 1
3 0 0 0 0 0 1 0 0
4 0 0 0 0 1 0 0 1
5 0 0 0 1 0 0 0 0
6 0 0 1 0 0 0 0 1
7 0 1 0 0 0 0 0 0

17. Buat program untuk masing–masing algoritma berikut dengan menggunakan if :


a) Jika switch bit 0 berlogika 1 maka LED bit 4 menyala.
b) Jika switch bit 1 berlogika 1 maka LED bit 7 menyala.
18. Buat satu program untuk masing–masing algoritma berikut dengan menggunakan if-
else.
a) Jika switch bit 0 berlogika 1 maka LED bit 4 menyala.
b) Jika switch bit 1 berlogika 1 maka LED bit 7 menyala.
c) Jika switch bit 2 berlogika 1 maka LED menyala dengan konfigurasi
ON-OFF-ON-OFF-ON-OFF-ON-OFF (bit7-bit0).
d) Jika switch bit 3 berlogika 1 maka LED menyala dengan konfigurasi
OFF-ON-OFF-ON-OFF-ON-OFF-ON (bit7-bit0).
e) Jika switch bit 4 berlogika 1 maka LED menyala semua.
f) JIka switch bit 5 berlogika 1 maka LED mati semua.
g) Jika switch bit 6 berlogika 1 maka LED menyala berurutan mulai dari bit0 ke bit7
lalu kembali lagi ke bit0 dengan delay 1 detik
h) Jika switch bit 7 berlogika 1 maka LED akan menyala dengan nilai sama dengan
dua digit terakhir NIM anda.
5
DATA HASIL PERCOBAAN

1. Tabel 2.1
No. Saklar LED
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
2 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1
3 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1
4 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1
5 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
6 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1
7 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1
8 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1
9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2. Tabel 3.1
No. Saklar LED

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0

2 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0

3 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0

4 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0

5 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0

6 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0

7 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6

3. Source code program pada percobaan langkah 17


Buat Program menggunakan fungsi if :

Gambar program keseluruhan dari langkah 17

a. Jika switch bit 0 berlogika maka LED bit 4 menyala


while (1)
{
if(PINC.0==1)
PORTB.4=1; }

b. Jika switch Bit 1 berlogika 1 maka LED nit 7 menyala


while (1)
{
if(PINC.1==1)
PORTB.7=1; }
7
4. Source code program pada percobaan langkah 18
Buat Program menggunakan fungsi if else :

Gambar program keseluruhanan dari langkah 18


8
a. Jika switch bit 0 berlogika maka LED bit 4 menyala
while (1)
{
if(PINC.0==1)
PORTB.4=1;
else
PORTB.4=0; }

b. Jika switch Bit 1 berlogika 1 maka LED nit 7 menyala


while (1)
{
if(PINC.1==1)
PORTB.7=1;
else
PORTB.7=0; }

c. Jika switch bit 2 berlogika 1 maka LED menyala dengan konfigurasi ON-OFF-ON-OFF-ON-OFF-
ON-OFF (bit7-bit0)
while (1)
{
if(PINC.2==1)
PORTB=0b10101010;
else
PORTB=0b00000000; }

d. Jika switch bit 3 berlogika 1 maka LED menyala dengan konfigurasi OFF-ON-OFF-ON-OFF-ON-
OFF-ON (bit7-bit0)
while (1)
{
if(PINC.3==1)
PORTB=0b01010101;
else
PORTB=0b00000000; }

e. Jika switch bit 4 berlogika 1 maka LED menyala semua


while (1)
{
if(PINC.4==1)
PORTB=0xff;
else
PORTB=0x00; }

f. Jika switch bit 5 berlogika 1 maka LED mati semua


while (1)
{
if(PINC.5==1)
PORTB=0x00;
else
PORTB=0x00; }
9
g. Jika switch bit 6 berlogika 1 maka LED menyala berurutan mulai dari bit7 lalu kembali lagi ke
bit0 dengan delay 1 detik
while (1)
{
if(PINC.6==1){
PORTB=0b00000001;
delay_ms(1000);
PORTB=0b00000010;
delay_ms(1000);
PORTB=0b00000100;
delay_ms(1000);
PORTB=0b00001000;
delay_ms(1000);
PORTB=0b00010000;
delay_ms(1000);
PORTB=0b00100000;
delay_ms(1000);
PORTB=0b01000000;
delay_ms(1000);
PORTB=0b10000000;
delay_ms(1000);
PORTB=0b00000001;
;delay_ms(1000);
}

h. Jika switch bit 7 berlogika 1 maka LED akan menyala dengan nilai sama dengan dua digit
terakhir NIM. (08) karena tidak ada angka 8 maka saya menggantinya dengan angka 7, jadi
saya menggunakan (07).
while (1)
{
if(PINC.7==1)
PORTB=0b10000001;
else
PORTB=0x00; }

ANALISIS DATA

1. Analisis Program Saklar1 dan Saklar2!

a. Analisis Program Saklar1


Pada program saklar 1 menggunakan library #include<mega.8535.h> sebagai piranti
mikrokontrolernya. Selanjutnya pada “VOID MAIN” di insialisasikan PORTB sebagai piranti
output (DDRB = 0xFF) dan output yang berlogika awal = 0 (PORTB=00), dan PORTC sebagai
piranti input (DDRC = 00) dan resistor pullup dihubungkan (PORTC=FF).
Dalam program WHILE terdapat statement “data_in=PINC” untuk membaca data input dari
port C pin C, pada output menggunakan keseluruhan statment dari port B yaitu
“PORTB=data_in” untuk mengirimkan sinyal output pada PORT B sesuai dengan urutan sinyal
input yang diterima pada PORT C.
10
b. Analisis Program Saklar2

Pada proogram saklar 2 menggunakan library #include<mega.8535.h> sebagai piranti


mikrokontrolernya. Selanjutnya pada VOID MAIN di insialisasikan PORTB sebagai piranti
output (DDRB = 0xFF) dan output berlogika awal = 0 (PORTB=00), dan PORTC sebagai piranti
input (DDRC = 00) dan resistor pullup dihubungkan (PORTC=FF).
Dalam baris program “while” terdapat statement “data_in=PINC.0” yaitu untuk membaca
data input dari PORT C Pin ke 0, dan selanjutnya terdapat statement “PORTB.7=data_in”
yaitu untuk mengirimkan sinyal output pada PORT B sesuai dengan sinyal input yang
diterima pada PORT C Pin ke 0.

2. Instruksi apa yang digunakan untuk membaca data input?


: Menggunakan data_in atau dalam program ditulis untuk memanggil library tersebut
adalah ( unsigned char data_in; )

3. Apakah perbedaan program yang menggunakan if dan if-else?


: Program menggunakan fungsi If hanya satu perintah yang dijalankan fungsi if menjelaskan
jika maka. Sedangkan fungsi if-else perintah yang diinputkan bisa lebih dari satu pernyataan
dan perintah else-if dijalankan ketika jika tidak atau jika program if tidak terpenuhi maka
perintah else-if akan dijalankan.

KESIMPULAN

Dari percobaan praktikum diatas dapat disimpulkan bahwa:


a) Saklar toggle dapat menjalankan program bila saklar dalam kondisi On, namun jika dalam
kondisi Off saklar tidak akan menjalankan program.
b) Fungsi If dalam pemrograman digunakan menjalan perintah jika pernyataan benar, namun
jika salah perintah tidak dijalankan.
c) Fungsi If-else dalam pemrograman digunakan untuk pernyataan majemuk. Jika
pernyataannya bukan pernyataan pertama maka yang akan dijalankan pernyataan
selanjutnya.
11
LAMPIRAN

1. Tampilan nyala LED pada soal no 13 tabel 2.1 :

No. 1 No. 2 No. 3

No. 4 No. 5
No. 6
12

No. 7 No. 8 No. 9

2. Tampilan nyala LED pada soal no 16 tabel 3.1 :

No. 1 No. 2 No. 3


13

No. 4 No. 5 No. 6

No. 7
14
3. Tampilan nyala LED pada soal no 17 :

No. 1 No. 2

4. Tampilan nyala LED pada soal no 18 :

No. 1 No. 2 No. 3


15

No. 4 No. 5 No. 6

No. 8 lampiran NIM

No. 7 atau point G lampirannya berupa video yang bisa dibuka melalui link dibawah
video Lampiran No. 18 point' G atau No. 7 - Google Drive
16

Anda mungkin juga menyukai