Anda di halaman 1dari 17

LAPORAN PRAKTIKUM KENDALI MIKRO

PRAKTIKUM SW PUSH BUTTON DENGAN


MIKROKONTROLLER
Disusun untuk memenuhi tugas mata kuliah PRAKTIKUM KENDALI MIKRO
Dosen pengampu :
SYAHID, ST, M.ENG

DISUSUN OLEH:

AINUN NAJIB
3.31.19.0.01
LT2A

PROGRAM STUDI TEKNIK LISTRIK


JURUSAN TEKNIK ELEKTRO POLITEKNIK
NEGERI SEMARANG SEMARANG
2021
BAB V
SW PUSH BUTTON

I. Tujuan Instruksional Khusus :

Setelah Menyelesaikan praktek ini mahasiswa dapat :

1. Dapat membuat program dan mendownload ke modul mikrokontroller


2. Dapat menggunakan fungsi input dan output pada mikrokontroler AVR
3. Dapat membuat program dengan input push button dan output LED

II. Alat dan Bahan

❑ Modul mikrokontroller
❑ PC atau laptop
❑ power supply DC

III. Dasar Teori


Pada praktikum ini, akan dipelajari cara mengembangkan sebuah system menggunakan mikrokontroler AVR
buatan Atmel menggunakan software CodeVisionAVR. CodeVisionAVR merupakan software C-cross
compiler, dimana program dapat ditulis menggunakan bahasa-C. Dengan menggunakan pemrograman bahasa-
C diharapkan waktu disain (deleloping time) akan menjadi lebih singkat. Setelah program dalam bahasa-C
ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. Pada
percobaan ini anda akan mengendalikan LED dengan menggunakan Saklar Push Button.

Gambar Rangkaian LED terhubung ke port C

Gambar Rangkaian Push Button terhubung ke port B


Konfigurasi menggunakan codewizard AVR

IV. Langkah Kerja


1. Jalankan program codevision AVR
2. Mulai project Codevision AVR. File > New > Pilih Project > OK
Use codeWizardAVR? yes
3. ketikkan program berikut
a. Percobaan Input/Ouput
Pada percobaan ini PORTB difungsikan sebagai input dan PORTC difungsikan sebagai output.
#include <mega8535.h>
void main(void)
{
DDRC=0xFF;
DDRB=0x00;
PORTB=0xFF;
while (1)
{
PORTC=PINB;
}
}

simpan dengan nama file SW1 kemudian compile, menu Project -→Compile

b. Percobaan Input/ Output dengan fungsi BIT.


Pada percobaan ini, anda akan belajar bagaimana mengambil data per bit. Dengan menggunakan instruksi
PINB.X, dengan X adalah nilai bit.

#include <mega8535.h>
void main(void)
{
DDRC=0xFF;
DDRB=0x00;
PORTB=0xFF;
while(1)
{
if (PINB.0==0) {PORTC=0x01;}
else if (PINB.1==0){PORTC=0x02;}
else if (PINB.2==0){PORTC=0x04;}
else if (PINB.3==0){PORTC=0x08;}
else {PORTC=0x00;}
}
}

Simpan dengan nama file sw2 kemudian compile, menu Project -→Compile
c. Percobaan SW dengan pemilihan kombinasi LED
Pada percobaan ini anda akan mengambil data dengan menggunakan SW push button, setiap penekanan SW
akan menampilkan pola LED tertentu.

#include <mega8535.h>
#include <delay.h>

//declare global arrays for two patterns


unsigned char p1[4] = { 0b10000001,
0b01000010,
0b00100100,
0b00011000 };

unsigned char p2[4] = { 0b11111111,


0b01111110,
0b00111100,
0b00011000 };
void main()
{
unsigned char i; //loop counter

DDRC = 0xFF; //PB as output


PORTC= 0x00; //keep all LEDs off

DDRB = 0x00; //PC as input


PORTB.0 = 1; //enable pull ups for
PORTB.1 = 1; //only first two pins

while(1)
{
//# if SW0 is pressed show pattern 1
if(PINB.0==0)
{
for(i=0;i<4;i++)
{
PORTC=p1[i]; //output data
delay_ms(300); //wait for some time
}
PORTC=0; //turn off all LEDs
}

//# if SW1 is pressed show pattern 2


if(PINB.1==0)
{
for(i=0;i<4;i++)
{
PORTC=p2[i]; //output data
delay_ms(300); //wait for some time
}
PORTC=0; //turn off all LEDs
}

};
}

Simpan dengan nama file sw3 kemudian compile, menu Project -→Compile

4. Dowload program ke modul mikrokontroller dengan langkah – langkah sebagai berikut


a. buka program progISP168
b. Cek koneksi komputer ke modul mikrokontroller dengan cara lihat dalam program state
apakah PRG ISP nyala atau tidak. jika sudah nyala berarti komputer dan modul sudah
terhubung dan siap untuk melakukan download program
c. Pilih load flash kemudian pilih file.hex yang di buat

d. Kemudian pilih erase dan auto


e. Amati hasilnya pada modul.
V. Tugas
1. Buat program untuk menghidupkan LED dengan urutan nomor yang berbeda dengan urutan
nomor push button

2. Buat program untuk menjalankan LED secara bergantian dua-dua mulai dari LED no 1 sampai
LED no 8 yang diaktifkan dengan SW no 4

3. Buat program untuk menjalankan LED secara bergantian satu-satu mulai dari pinggir ke tengah
yang diaktifkan dengan SW no 3

4. Buat program untuk menjalankan LED dari pinggir ke tengah kemudian balik lagi dari tengah
ke pinggir yang diaktifkan dengan SW no 7

5. Buat Laporan dari semua program yang dibuat


VI. JAWABAN TUGAS

1. Buat program untuk menghidupkan LED dengan urutan nomor yang berbeda dengan urutan
nomor push button.
Pada saat SW Push Button No 1 ditekan maka LED 2 menyala

2. Buat program untuk menjalankan LED secara bergantian dua-dua mulai dari LED no 1 sampai
LED no 8 yang diaktifkan dengan SW no 4
LED no 1 sampai LED no 8 yang diaktifkan dengan SW no 4

3. Buat program untuk menjalankan LED secara bergantian satu-satu mulai dari pinggir ke tengah
yang diaktifkan dengan SW no 3.
Menjalankan LED secara bergantian satu-satu mulai dari pinggir ke tengah yang
diaktifkan dengan SW no 3.

4. Buat program untuk menjalankan LED dari pinggir ke tengah kemudian balik lagi dari tengah
ke pinggir yang diaktifkan dengan SW no 7.
Menjalankan LED dari pinggir ke tengah kemudian balik lagi dari tengah ke pinggir
yang diaktifkan dengan SW no 7.
VII. PEMBAHASAN
• FLOWCHART TUGAS 1

Program untuk menghidupkan LED dengan urutan nomor yang berbeda dengan urutan
nomor push button

START PUSH LED PUSH


BUTTON 3 6 ON BUTTON 8

PUSH LED PUSH


BUTTON 1 4 ON LED
BUTTON 6
1 ON

LED PUSH LED


2 ON BUTTON 4 6 ON
END

PUSH LED PUSH


BUTTON 2 5 ON BUTTON 7

LED PUSH LED


3 ON BUTTON 5 8 ON
Pada percobaan Tugas 1 ketika rangkaian dinyalakan dan SW no 1 ditekan maka LED no 2
akan menyala, SW no 2 ditekan maka LED no 3 akan menyala, SW no 3 ditekan maka LED
no 4 akan menyala, SW no 4 ditekan maka LED no 5 akan menyala, SW no 5 ditekan maka
LED no 6 akan menyala, SW no 6 ditekan maka LED no 7 akan menyala, SW no 7 ditekan
maka LED no 8 akan menyala, SW no 8 ditekan maka LED no 1 akan menyala.

• FLOWCHART TUGAS 2

Program untuk menjalankan LED secara bergantian dua-dua mulai dari LED no 1 sampai
LED no 8 yang diaktifkan dengan SW no 4

START

PUSH
BUTTON 4

LED
1,2 DELAY 300 ms
ON

LED
3,4
DELAY 300 ms ON

LED
5,6
ON DELAY 300 ms

LED
DELAY 300 ms 7,8
ON

END

Pada percobaan Tugas 2 ketika rangkaian dinyalakan dan SW no 4 ditekan maka LED akan
menyala dua-dua yaitu LED ke 1,2 kemudian LED 3,4 lalu LED 5,6 dan LED 7,8. Dengan
masing masing jeda 300ms, begitu seterusnya atau berulang dua-dua dari LED no 1 sampai
LED no 8.
• FLOWCHART TUGAS 3

Program untuk menjalankan LED secara bergantian satu-satu mulai dari pinggir ke tengah
yang diaktifkan dengan SW no 3

START

PUSH
BUTTON 3

LED
1,8 DELAY 300 ms
ON

LED
DELAY 300 ms 2,7
ON

LED
3,6 DELAY 300 ms
ON

LED
DELAY 300 ms 4,5
ON

END

Pada percobaan Tugas 3 ketika rangkaian dinyalakan dan SW no 3 ditekan maka LED akan
menyala bergantian dimulai dari pinggir yaitu LED ke 1,8 kemudian LED 2,7 lalu LED 3,6
dan LED 4,5. Dengan masing masing jeda 300ms, begitu seterusnya atau berulang dimulai
dari pinggir.
• FLOWCHART TUGAS 4

Program untuk menjalankan LED dari pinggir ke tengah kemudian balik lagi dari tengah ke
pinggir yang diaktifkan dengan SW no 7

START

PUSH
BUTTON 7

LED
1,8 DELAY 300 ms
ON

LED
2,7
DELAY 300 ms
ON

LED
3,6 DELAY 300 ms
ON

LED
4,5
DELAY 300 ms
ON

LED
3,6 DELAY 300 ms
ON

LED
2,7
DELAY 300 ms
ON

LED
1,8 DELAY 300 ms
ON

END
Pada percobaan Tugas 4 ketika rangkaian dinyalakan dan SW no 7 ditekan maka LED akan
menyala bergantian dimulai dari pinggir kemudian ke tengah lalu kembali lagi dari tengah
ke pinggiryaitu LED ke 1,8 kemudian LED 2,7 lalu LED 3,6 dan LED 4,5 kemudian LED 3,6
lalu 2,7 dan kembali lagi ke LED 1,8. Dengan masing masing jeda 300ms, begitu seterusnya
atau berulang.

VIII. KESIMPULAN
Pada percobaan di atas dapat disimpulkan bahwa:
1. Pada percobaan ini PORTB difungsikan sebagai input dan PORTC difungsikan
sebagai output.
2. Pada percobaan ini, kita dapat belajar bagaimana mengambil data per bit. Dengan
menggunakan instruksi PINB.X, dengan X adalah nilai bit.
3. Pada percobaan ini kita dapat mengambil data dengan menggunakan SW push button,
setiap penekanan SW akan menampilkan pola LED tertentu.

IX. DAFTAR PUSTAKA


[1]. Syahid ST, M.ENG, 2016, BPKM MIKROKONTROLLER, Semarang.

Anda mungkin juga menyukai