Anda di halaman 1dari 21

LAPORAN PRAKTIKUM

MIKROPROSESOR

ANTARMUKA MIKROKONTROLER DENGAN TOGGLE SWITCH

Disusun untuk memenuhi Matakuliah Mikroprosesor


Yang diampu oleh Yogi Dwi Mahandi S.Pd, M.T

Disusun Oleh:

Nama : Kezia Cindi Dwinata Lumban Gaol


NIM : 220534600068

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
DEPARTEMEN TEKNIK ELEKTRO DAN INFORMATIKA
PRODI S1 PENDIDIKAN TEKNIK ELEKTRO
SEPTEMBER 2023
A. Tujuan Praktukum

 Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian


input saklar toggle.

 Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk membaca data


input dari saklar toggle.

B. Deskripsi

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 dibawah memperlihatkan bentuk fisik dan symbol saklar toggle.

a. Salah satu toggle switch b. Simbol elektronik

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. Kedelapan rangkaian
saklar tersebut dihubungkan ke sebuah soket jumper bernama INPUT.
C. Alat dan Bahan
 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
 1 buah catu daya DC +5V
 1 buah multimeter
 1 buah ISP Downloader AVR
 1 buah sistem minimum AVR
 1 buah I/O
 1 buah kabel printer USB
 2 buah kabel pita hitam

D. Langkah Kerja

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 program Code Vision AVR
3. Buat file baru dengan cara klik File>>New, atau klik icon Create a New File or
Project, atau ketik Ctrl + N. Kemudian muncul dialog box, pilih Project pada File Type,
kemudian klik OK.

4. Kemudian klik No ketika muncul dialog box untuk menanyakan apakah ingin
menggunakan CodeWizardAVR
5. Kemudian pilih lokasi penyimpanan file dan buat folder baru dengan nama “praktikum
2” untuk menyimpan file.
6. Kemudian simpan file pada folder tersebut dan berinama file dengan nama ”saklar“
dan klik Save.
7. Kemudian muncul dialog box Configure Project. Pada subtab Code Generation pada
tab C Compiler pilih chip ATmega8535 dan ubah Clock menjadi 4 Mhz. Kemudian
klik OK

8. Buat file Source baru dengan cara klik File>>New, atau klik icon Create a New File or
Project, atau ketik Ctrl + N. Kemudian muncul dialog box, pilih Source pada File Type,
kemudian klik OK. Kemudian Save as file Source itu dengan nama ”saklar“ dan
simpan di dalam direktori yang sama yaitu di dalam folder “praktikum 2”.
9. Hubungkan file Project dengan File Source dengan Cara klik Project>> Configure

10. Pada dialog box, klik Add pada tab Input Files. Kemudian pilih file yang sudah
anda simpan tadi dan klik Open. Kemudian klik OK.

11. Jika sudah ditambahkan, maka pada Code Navigator akan terlihat saklar.c.
12. Tambahkan file header

13. 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:

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

15. Tuliskan dalam program utama tepatnya tuliskan program didalam while (1)

16. Compile program tersebut dengan cara klik Project>> Compile atau ketik F9.
17. 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.
18. Hubungkan kabel usb printer antara PC/ Laptop dengan trainer.
19. 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.
20. 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 00000001
2 0 0 0 0 0 0 1 1 00000011
3 0 0 0 0 0 1 0 1 00000101
4 0 0 0 0 1 0 0 1 00001001
5 0 0 0 1 0 0 0 1 00010001
6 0 0 1 0 0 0 0 1 00100001
7 0 1 0 0 0 0 0 1 01000001
8 1 0 0 0 0 0 0 1 10000001
9 1 1 1 1 1 1 1 1 11111111

21. Hapus program yang ada pada program utama tepatnya program di dalam while (1)
kemudian tuliskan program di dalam while(1).

22. Compile dan Build program, jika ada yang error perbaiki program. Masukkan file hex
menggunakan Khanzama AVR Programer. Klik auto program.
23. 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 10000000
2 0 0 0 0 0 0 1 1 10000000
3 0 0 0 0 0 1 0 0 00000000
4 0 0 0 0 1 0 0 1 10000000
5 0 0 0 1 0 0 0 0 00000000
6 0 0 1 0 0 0 0 1 10000000
7 0 1 0 0 0 0 0 0 00000000
24. 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.

25. 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.
210534615631
E. 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

00000001

2 0 0 0 0 0 0 1 1

00000011

3 0 0 0 0 0 1 0 1

00000101

4 0 0 0 0 1 0 0 1

00001001
5 0 0 0 1 0 0 0 1

00010001

6 0 0 1 0 0 0 0 1

00100001

7 0 1 0 0 0 0 0 1

01000001

8 1 0 0 0 0 0 0 1

10000001
9 1 1 1 1 1 1 1 1

11111111

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

10000000

2 0 0 0 0 0 0 1 1

10000000

3 0 0 0 0 0 1 0 0

00000000
4 0 0 0 0 1 0 0 1

10000000

5 0 0 0 1 0 0 0 0

00000000

0 0 1 0 0 0 0 1

10000000

7 0 0 0 1 0 0 1 1

00010011
3. Source code program pada percobaan langkah 9
#include <mega8535.h>

void main(void)
{
unsigned char data_in;
PORTB=0x00;
DDRB=0xFF;
PORTC=0xFF;
DDRC=0x00;

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

}
4. Source code program pada percobaa langkah 10
#include <mega8535.h>
#include <delay.h>

void main(void)
{
unsigned char data_in;
PORTB=0x00;
DDRB=0xFF;
PORTC=0xFF;
DDRC=0x00;

while (1)
{
if (PINC.0==1)
{
PORTB.4=1;
}
else
{
PORTB.4=0;
}
if (PINC.1==1)
{
PORTB.7=1;
}
else
{
PORTB.7=0;
}
if (PINC.2==1)
{
PORTB=0xAA;
}
else
{
PORTB=0x00;
}
if (PINC.3==1)
{
PORTB=0x55;
}
else
{
PORTB=0x00;
}
if (PINC.4==1)
{
PORTB=0xFF;
}
else
{
PORTB=0x00;
}
if (PINC.5==1)
{
PORTB=0x00;
}
else
{
PORTB=0;
}
if (PINC.6==1)
{
PORTB=0b00000001;
delay_ms(1000);
PORTB=0b00000011;
delay_ms(1000);
PORTB=0b00000111;
delay_ms(1000);
PORTB=0b00001111;
delay_ms(1000);
PORTB=0b00011111;
delay_ms(1000);
PORTB=0b00111111;
delay_ms(1000);
PORTB=0b01111111;
delay_ms(1000);
PORTB=0b11111111;
delay_ms(1000);
}
else
{
PORTB=0;
}
if (PINC.7==1)
{
PORTB=0b00010011;
}
else
{
PORTB=0x00;
}
}

}
F. Analisis Data
1. Analisis program saklar 1 dan saklar 2
Pada saklar 1, jika tiap-tiap switch bit berlogika 1 maka LED juga menyala
mengikuti urutan saklar tersebut. Sehingga didapatkan INPUT=OUTPUT
Sedangkan pada program saklar 2 ini keluaran LED hanya akan menyalakan
LED pada bit 7 meskipun tiap-tiap switch bit berlogika 1. Hal tersebut karena
yang diperintahkan hanya pada satu masukan yaitu masukan saat PINC.7.

2. Instruksi apa yang digunakan untuk membaca data input?


untuk membaca data input diperlukan instruksi sebagai berikut:
a. Ubah deklarasi variable pada void main()
b. Ganti DDR (Data Direction Register) dengan nilai 0x00 sebagai input 1
PORT dan PORT menjadi 0xFF sebagai input pull up.
c. Beri variabel pada input (contoh: unsigned char)
d. Input diberi nama PINX, X dapat diubah sesuai kebutuhan (contoh: PIN
C)

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


Pada operator kondisi if akan menjalankan atau memproses script yang ada
dalam kurung kurawa if tersebut apabila pernyataan terpenuhi, namun apabila
pernyataan tidak terpenuhi maka tidak akan menjalankan atau memproses
script yang ada dalam kurung kurawa if tersebut.
Sedangkan pada operator kondisi if-else, if akan menjalankan atau
memproses script yang ada dalam kurung kurawa if tersebut apabila
pernyataan terpenuhi, else akan menjalankan atau memproses script yang ada
dalam kurung kurawa else tersebut apabila pernyataan if tidak terpenuhi.
G. Kesimpulan
Berdasarkan praktikum yang telah dilakukan dapat disimpulkan sebagai berikut:

1. Praktikum ini bertujuan untuk memahami cara mengantarmukakan mikrokontroler


dengan rangkaian input saklar toggle dan memprogram mikrokontroler untuk
membaca data input dari saklar toggle.
2. Dalam praktikum ini, digunakan bahasa pemrograman C dan aplikasi CodeVision
AVR untuk membuat program mikrokontroler.
3. Saklar toogle dapat menjalankan program bila saklar dalam kondisi On. Namun jika
dalam kondisi Off saklar tidak akan menjalankan program.
4. Fungsi if dalam pemrograman digunakan menjalankan perintah jika pernyataan
benar, namun jika salah perintah tidak dijalankan.
5. Fungsi if-else dalam pemrograman digunakan untuk pernyataan majemuk. Jika
pernyataannya bukan pernyataan pertama maka yang akan dijalankan pernyaaan
selanjutnya.

6. Untuk membaca data


bit ke PORTX.Y (X=A,
B, C, D dan Y=0, 1, 2 , 3,
4,
7. 5, 6, 7) digunakan
statement data_in =
PINX.Y;
8. Untuk membaca data
bit ke PORTX.Y (X=A,
B, C, D dan Y=0, 1, 2 , 3,
4,
9. 5, 6, 7) digunakan
statement data_in =
PINX.Y;
10. Untuk membaca data
bit ke PORTX.Y (X=A,
B, C, D dan Y=0, 1, 2 , 3,
4,
11. 5, 6, 7) digunakan
statement data_in =
PINX.Y;
H. REFERENSI

1. https://pdfcoffee.com/laporan-praktikum-ii-antarmuka-mikrokontroler-dengan-toggle-
switch-pdf-free.html
2. https://id.scribd.com/document/328239267/Laporan-Antar-Muka-Mikrokontroler-Dengan-
Toogle-Swicth
3. https://id.scribd.com/document/379065768/antarmuka-mikrokontroler-dengan-Toggle-
Switch
4. https://www.academia.edu/5034319/
MODUL_II_ANTARMUKA_MIKROKONTROLER_DENGAN_TOGGLE_SWITCH_Ima
m_Arief_SN_110534406826_TanggalPercobaan_20_09_2012_PTE408_Praktikum_Mikropr
osesor_Laboratorium_Mikroprosesor_S1_Pendidikan_Teknik_Elektro_Fakultas_Teknik_Un
iversitas_Negeri_Malang
5. https://www.studocu.com/id/document/universitas-negeri-malang/electrical-engineering/
laporan-praktikum-mikroprosesor-antarmuka-mikrokontroler-dengan-toggle-switch/
44030756
6. https://libraryelektro.blogspot.com/2016/12/laporan-antarmuka-mikrokontroler-toggle.html?
m=1

Anda mungkin juga menyukai