Anda di halaman 1dari 19

LAPORAN PRAKTIKUM KENDALI MIKRO

SW PUSH BUTTON

Disusun oleh:

FAJRI ANUGERAH PRATAMA


3.39.19.0.14
LT-2E

PROGRAM STUDI TEKNIK LISTRIK


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
SEMARANG 2021
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. 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

III. Alat dan Bahan


1. Modul mikrokontroller
2. PC atau laptop
3. power supply DC
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

Gambar Rangkaian LED dan Push Button

V. Data Hasil
1. Percobaan 1

2. Percobaan 2

3. Percobaan 3
PINB.0
PINB.1

4. Tugas 1
5. Tugas 2
6. Tugas 3
7. Tugas 4
VI. Pembahasan
1. Percobaan 1
Pada percobaan 1 baris 1 merupakan penulisan pemrograman untuk penggunaan
mikrokontroler atmega 8535,pada baris kedua merupakan penulisan awal pada sebuah
pemrograman,pada baris ke 3 merupakan pembukaan pada sebuah fungsi pemrograman,baris
3 menunjukkan bahwa portc digunakkan sebagai output dengan nilai masukkan high pada
kondisi awal,pada baris ke 5 menunjukkan port b di jadikkan sebagai input,baris ke 6
menunjukkan bahwa input masukkan awal pada port b dalam kondisi high,pada baris 7
merupakkan fungsi perulangan,baris 8 menunjukkan awalan dalam sebuah fungsi
perulangan,baris 9 menunjukkan bahwa kondisi portc sama dengan input pada pin b,baris 10
menunjukkan penutupan fungsi perulangan,pada baris 11 menunjukkan penutupan dari
penulisan pemrograman.

#include <mega8535.h>

Setting pin mode:


Port C = output
Port B = input

While
high (1)

Salah satu port B Berulang


low (0)

Salah satu port C


low (0)

End

2. Percobaan 2
Pada baris 1 menyatakan pada compiler agar membaca file bernama
mega8535.h saat pelaksanaan kompilasi, Pada baris 2 merupakan perintah
program utama. Pada baris 3 merupakan awalan program. Pada baris 4, port C
digunakan sebagai output. Pada baris 5, port B digunakan sebagai fungsi input.
Pada baris 6 artinya memasukan bilangan 1 1 1 1 1 1 1 1 ke register PORT B,
yang membuat semua pin B menjadi berlogika high. Pada baris 7 merupakan
fungsi looping while dimana yang akan aktif ketika diberi logika high (1) dan
berulang sampai tidak ada batasan tertentu. Pada baris 8 terdapat tanda {
artinya, menyatakan awal eksekusi program. Pada baris 9 maksutnya jika pin 0
pada port B berlogika low (0), maka output / keluaran pada port C akan
berlogika logika high (1) pada pin 0. Pada baris 10 arinya jika pin 1 pada port
B berlogika low (0), maka output / keluaran pada port C akan berlogika logika
high (1) pada pin 1. Pada baris 11 adalah jika pin 2 pada port B berlogika low
(0), maka output / keluaran pada port C akan berlogika logika high (1) pada pin
2. Pada baris 12 adalah jika pin 3 pada port B berlogika low (0), maka output /
keluaran pada port C akan berlogika logika high (1) pada pin 3. Pada baris 13
adalah setelah salah satu pin 0, pin 1, pin 2, dan pin 3 pada port C berlogika
high, maka secara otomatis Kembali berlogikaa low (0). Pada baris 14-15
menyatakan akhir eksekusi program.

#include <mega8535.h>

Setting pin mode:


Port C = output
Port B = input

While
high (1)

Berulang

If Salah
satu pin
B low (0)

If Salah satu port C


high (1)

End

3. Percobaan 3
Dilihat dari program yang dibuat maka dapat dijelaskan bahwa pada
baris 1 menyatakan pada compiler agar membaca file bernama mega8535.h
saat pelaksanaan kompilasi, pada baris 2 menjukkan masukan untuk instruksi
delay pada program. pada baris 4-12 mendeklarasikan fungsi array dengan 2
pola. Pada pola pertama terdiri dari 4 bit, bit pertama yaitu PINC.0 dan PINC.7
berlogika high (1). Pada bit kedua yaitu PINC.1 dan PINC.6 berlogika high (1).
Pada bit ketiga yaitu PINC.2 dan PINC.5 berlogika high (1). Kemudian pada
bit keempat yaitu PINC.3 dan PINC 4 berlogika high (1). Pada pola kedua
terdiri dari 4 bit, bit pertama yaitu seluruh port A berlogika high (1). Pada bit
kedua yaitu PINC.0 dan PINB.7 berlogika low (0). Pada bit ketiga yaitu PINC.1
dan PINB.6 berlogika low (0). Kemudian pada bit keempat yaitu PINC.2 dan
PINB.5 berlogika low (0). Pada baris 13-14 adalah program utamanya. Pada
baris 15 adalah looping dari fungsi array. Pada baris 17-18 adalah port A
sebagai fungsi output dengan kondisi awalnya berlogika low (0). Pada baris 20-
22 adalah port B sebagai fungsi input dengan PINB.0 dan PINB.1 berlogika
high (1). Pada baris 24-45 adalah looping while dimana Ketika PINB.0
berlogika low (0), maka fungsi array pada pola pertama akan dijalankan dengan
delay 0,3s. Ketika PINB.1 berlogika low (0), maka fungsi array pada pola
kedua akan dijalankan dengan delay 0,3s
Pin C = Output
Pin B= Input

VII. Kesimpulan
1. Rangakaian common anode merupakan rangkaian yang akan aktif apabila
diberi logika 0(low).
2. Pada Program SW Push Button dapat memvariasi input dengan mengganti
pin yang diinginkan, sehingga output LED akan dapat dikendalikan melalui
Push Button.
3. Pada percobaan ini menggunakkan fungsi delay_ms yang berfungsi untuk
memberikan waktu jeda untuk menyalanya lampu ketika SW ditekan

VIII. Daftar Pustaka


https://www.google.com/search?q=praktikum+switch+button&oq=praktikum+switch+
+button&aqs=chrome..69i57.7848j0j9&sourceid=chrome&ie=UTF-8

Anda mungkin juga menyukai