Anda di halaman 1dari 20

POLITEKNIK NEGERI PADANG

DIII TEKNIK LISTRIK

PRAKTIKUM

ELEKTRONIKA DAYA

JOB 1

PENYEARAH SATU FASA SETENGAH GELOMBANG

Nama : ZEN RESTI MAULANA


No. BP : 1901031005
Kelas : 11B
Instruktur : 1. JULSAM,M.Kom
2. ZULKA HENDRI,ST.MT

PROGRAM STUDI TEKNIK LISTRIK


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI PADANG

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB I
TUJUAN

1. Menggunakan suatu pin pada ATMega8535 sebagai pin input


2. Menggunakan suatu pin pada ATMega8535 sebagai pin output
3. Memodifikasi outpur melalui program CVAVR

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB II
TEORI DASAR
Pada topic sebelumnya sudah dikenalkan cara meng-akses port sebagai keluaran, sehingga
selanjutnya pada topic ini akan digabung dengan masukan atau input. Masukan untuk
mikrokontroler bisa dari saklar, sinyal logika, atau rangkaian lain yang memiliki keluaran.
Sebagai dasar mempelajari masukan pada mikrokontroler, pada topic ini akan digunakan
saklar/button sebagai masukannya.
Pengaturan inisialisasi port pada mikrokontroler dapat dilakukan dengan dua cara, secara
menggunakan CodeWizardAVR, atau secara penulisan program. Sedangkan sebagai kondisi
port sebagai masukan terdapat dua karakter yaitu ‘P’ dan ‘T’. ‘P’ merupakan kependekan dari
Pull Up, sedangkan ‘T’ merupakan kependekan dari Toggle. Berikut contoh pengaturan port
mikro secara CodeWizardAVR atau tertulis;

Seperti yang telah dijelaskan pada topic sebelumnya dalam pengaturan secara tertulis
inisialisasi port masukan memiliki fungsi sebagai derikut;
PORTA =0x00; Kondisi 8 bit pada PORTA semuanya Toggle (‘T’)
=0xFF;  Kondisi 8 bit pada PORTA semuanya Pull up (‘P’)
=0xF0;  Kondisi 4 bit LSB PORTA berfungsi sebagai Toggle (‘T’), sedangkan 4 bit
MSB PORTA berfungsi sebagai Pull up (‘P’).

DDRA =0x00;  Semua 8 bit pada PORTA berfungsi sebagai masukan.

Fungsi pada kondisi Toggle masukan mikrokontroler akan membaca sinyal setiap ada
perubahan logika. Perubahan itu bisa dari logika tinggi (1) menuju rendah (0) dikatakan
sebagai kondisi falling edge, atau sebaliknya dari logika rendah (0) ke tinggi (1) dikatakan

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

sebagai kondisi rising edge. Prinsip tersebut mengakibatkan dalam pembacaan satu
gelombang sinyal terdapat dua kali sinyal masukan ke mikrokontroler. Berikut secara ilustrasi
pembacaannya;

Seperti yang telah dijelaskan pada topic sebelumnya dalam pengaturan secara tertulis
inisialisasi port masukan memiliki fungsi sebagai derikut;
PORTA =0x00;  Kondisi 8 bit pada PORTA semuanya Toggle (‘T’)
=0xFF;  Kondisi 8 bit pada PORTA semuanya Pull up (‘P’)
=0xF0;  Kondisi 4 bit LSB PORTA berfungsi sebagai Toggle (‘T’), sedangkan 4 bit
MSB PORTA berfungsi sebagai Pull up (‘P’).

DDRA =0x00;  Semua 8 bit pada PORTA berfungsi sebagai masukan.

Kondisi pengaturan port masukan pada Pull up (‘P’) mendeteksi/membaca masukan hanya
satu kali dalam satu gelombang masukan. Pembacaan tersebut pada saat gelombang pada
kondisi dari logika tinggi (1) ke logika rendah (0) dikatakan sebagai kondidi falling edge.
Selain itu bahwa pada pengaturan kondisi pull up mengeset pin masukan didalam mikro
terhubung dengan VCC (5V) melalui resistor. Resistor yang memiliki prinsip seperti tersebut
dinamakan sebagai resistor pull up. Resistor ini menjaga agar pada pin masukan yang telah
diatur berlogika tinggi, dan menunggu sinyal masukan dengan logika rendah untuk meng-
aktif-kannya. Berikut secara ilustrasi prinsip kerja masukan pada kondisi pull up;

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

Kebanyakan rangkaian masukan ke mikrokontroler mengambil prinsip falling edge sebagai


sinyal tanda aktif, atau bisa dikatakan memiliki logika aktif jika sinyal masukannya rendah
(low). Apabila terhubung dengan sebuah masukan dari saklar/button, maka saklar saat
tertutup terhubung dengan ground (Gnd). Sebaliknya, apabila saklar dalam kondisi terbuka
akan mempertahankan logika tinggi (high) pada masukan, dikarenakan terdapat resistor pull
up yang menjaga jalur data masukan dalam kondisi tinggi. Walaupun dalam pengaturan
kondisi masukan sudah di pull up, akan tetapi untuk mengamankan kondisi datanya , maka
akan dipasang resistor pull up lagi di luar pada system minimum. Berikut ilustrasi
skematiknya;

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

Pengambilan data atau mendeteksi sinyal masukan dari luar dilakukan mikroprosesor dengan
instruksi program yang telah ditentukan. Instruksi pemrograman dalam bahasa C pada Code
Vision AVR yaitu “PINx”. Berikut penjabaran penulisan program untuk membaca sinyal data
dari luar;
PINA==0b11111101; pada PORTA bit 1 berlogika rendah (terdapat sinyal masukan),
bit 0 dan bit 2-7 berlogika 1 (tidak terdapat sinyal masukan)

Atau,
 PINA.1==0;  Pada PORTA bit 0 berlogika rendah yang menunjukkan terdapat
sinyal masukan ( saklar tertutup)

Instruksi program masukan PIN biasanya digunakan bersamaan dengan dengan intruksi
syarat pada bahasa C. Salah satunya yaitu penggunaanya bersama instruksi “IF”, berikut
contohnya;
if(PINA.1==0)
{
…….. (aksi yang dilakukan)
};
Atau pada perulangan “while”;
while(PINA.1==0)
{
…….. (aksi yang dilakukan berulang-ulang)
};
Penggunaan symbol “==” (sama dengan dua kali), mempunyai fungsi sebagai pertanyaan
kondisi pada PIN yang dituju. Apakah kondisi PIN masukan dalam kondisi rendah atau pada
kondisi tinggi. Sedangkan untuk mengetahui hasil dari pembacaan masukan program
masukan (INPUT) digabung dengan program keluaran (OUTPUT)

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB III
LANGKAH KERJA

A. Membuat Rangkaian LED atau Motor dengan Mikrokontroler

a. Pilih menu File, New Project atau tekan icon


b. nama file pada kolom Name dan pilih tempat penyimpanan pada path atau
pilih lokasi dari browse, kemudian tekan next
c. Pilih create schematic kemudian pilih jenis design yang dibutuhkan lalu tekan
next
d. Pilih create PCB layout jika dibutuhkan lalu next
e. Pilih create Firmware untuk menentukan jenis mikrokontroler yang
dibutuhkan. Yaitu: pada kolom Family pilih AVR, pada kolom Controller pilih
ATmega8535, dan pada kolom Compiler pilih AVRASM(Proteus) lalu next
kemudia tekan finish
f. Kemudian buatlah rangkaian sebagai berikut :
1. Project 3
a. C2

b. C2

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

2. Latihan Mandiri
a. D1

b. D2

c. D3

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

B. Membangun program pada CVAVR


a. Pilih menu File > New>Project
b. Pada jendela Confirm, pilih yes
c. Pilih target AVR Chip Family yang sesuai dengan jenis Mikrokontroler yang
digunakan pada proteus
d. Pilih jenis Mikrokontroler Atmega8535 pada kolom Chip, lalu tentukan frekuensi
sebesar 8MHz pada kolom Clock
e. Pada Ports, aturlah nilai dari masing-masing Pin yang dibutuhkan. Semua pin pada
Port D dijadikan output
f. Pada menu program, pilih Generate, Save and Exit
g. Tentukan tempat penyimpanan dan buat nama file yang sama disetiap jendela save
muncul
h. Tuliskan program pada bagian yang bertuliskan //place your code here, sebagai
berikut :
1. Project 3
a. C1
……. ……
while(1)
{
if(PINA.0==0)
{
PORTD.0=0; //LED bit 0 ON
}
else
{
PORTD.0=1; //LED bit 0 OFF
}; };

b. C2
……. ……

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

while(1)
{
if(PINA.0==0)
{
PORTD.0=0; //LED bit 0 ON
}
if (PINA.1==0)
{
PORTD.0=1; //LED bit 0 OFF
}; };

2. Latihan Mandiri
a. D1(membuat program yang apabila ditekan Sw1 ditekan nyala LED berjalan
bergantian ke kiri, apabila ditekan Sw2nyala LED berjalan bergantian kekanan)

#include <atmega8535.h>
#include <delay.h>

void main (void)


//Declare your local variables here
unsigned char a=0x01;
unsigned char b=0x80;

while (1)
{ PORTD=0XFF;
// Place your code here
if (PINA.1==0)
{
int i;
for (i=0;i<8;i++)
{
if (PINA.0==0)
{
PORTD=0XFF;
break;
}
PORTD=((0xFF)-(a<<i));
delay_ms(500);
}
}

if (PINA.2==0)
{
int i;
for (i=0;i<8;i++)
{
if (PINA.0==0)
{
PORTD=0XFF;

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

break;
}
PORTD=((0xFF)-(b>>i));
delay_ms(500);
}
}

b. D2(aplikatif)
Buatlahprogramuntukmenjalankanduabuahmotornyalabergantianterusmenerusdengan
jedapindahmendekati2detik.
Sw1 = sebagai START (mulai menjalankan motor bergantian)
Sw2=sebagai STOP(menghentikan bergantinya jalan motor/berhenti pada salah satu
motor)
Sw3=sebagaiRESET(menghentikandanmematikansemuamotor)

#include <atmega8535.h>
#include <delay.h>

void main (void)


//Declare your local variables here
unsigned char a=0x01;
char b=0;

while (1)
{
// Place your code here
PORTD=0XFF;

if (PINA.0==0)
{
int i;
for (i=0;i<2;i++)
{
if (PINA.1==0)
{

if (b==0XFE)
{
PORTD.0=0;
delay_ms(100);
}
else
{
PORTD.1=0;
delay_ms(100);

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

}
break;
}

if (PINA.2==0)
{
PORTD=0XFF;
break;
}
PORTD=((0XFF)-(a<<i));
b=PORTD;
delay_ms(2000);
}
}

c. D3(aplikatif)
Membuat program yang apabila Sw1 ditekan pertama LED menyala dan akan tetap
menyala saat saklar dilepas, pada penekanan Sw1 yang ke dua akan mematikan LED,
dan seterusnya.

#include <atmega8535.h>
#include <delay.h>

void main (void)


//Declare your local variables here
unsigned char A=0;

while (1)
{
// Place your code here
A =PORTD.0;
if (PINA.0==0)
{
if (A==1)
{
PORTD.0=0;
delay_ms(500);
}
else
{
PORTD.0=1;
delay_ms(500);
}
}

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB IV
ANALISA DAN PEMBAHASAN
A. Analisa
1. Project 3
a. C1
 Jika push button yang terhubung pada PINA.0 ditekan tanpa ditahan maka
LED yang terhubung pada PORTD.0 hanya berkedip
 Jika push button yang terhubung pada PINA.0 ditekan dan ditahan pada
posisi 0 maka LED yang terhubung pada PORTD.0 akan terus menyala
sampai push button dilepaskan

b. C2
 Awal simulasi semua LED menyala
 Jika off ditekan maka LED yang terhubung pada PORTD.0 akan mati, dan
terus mati meskipun off dilepas
 Jika on ditekan maka LED yang terhubung dengan PORTD.0 akan
menyala dan terus menyala mesikpun on dilepas
2. Latihan Mandiri
c. Latihan D1
 Apabila Sw1 ditekan dan ditahan maka LED hidup bergantian dari LED
yang terhubung dengan PORTD.0 sampai PORTD.7 dan terus berulang
sampai start Sw1
 Jika off ditekan dan ditahan selama Sw1 ditahan, maka pergantian LED
akan berhenti dan semua LED mati
 Apabila Sw1 ditekan tanpa ditahan, maka LED akan menyala bergantian
satu kali tanpa perulangan
 Apabila Sw2 ditekan dan ditahan maka LED hidup bergantian dari LED
yang terhubung dengan PORTD.7 sampai PORTD.0 dan terus berulang
sampai start Sw2
 Jika off ditekan dan ditahan selama Sw2 ditahan, maka pergantian LED
akan berhenti dan semua LED mati
ZEN RESTI MAULANA/1901031005
PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

 Apabila Sw2 ditekan tanpa ditahan, maka LED akan menyala bergantian
satu kali tanpa perulangan
 Apabila Sw1 dan Sw2 ditekan dan tahan bersamaan, maka LED akan
menyala bergantian secara bolak balik secara otomati, dari pergantian bit
kiri ke kanan, dan kanan ke kiri

d. Latihan D2
 Apabila Start ditekan, maka motor akan menyala bergantian dengan jeda 2
detik dan terus berulang selama Start ditahan
 Dalam keadaan start ditahan, jika Stop ditekan dan ditahan, maka
pergantian akan berhenti namun satu motor yang berjalan terakhir kali
ketika Stop ditekan akan terus berjalan
 Setelah Stop dilepaskan, maka pergantian akan dimulai lagi
 Dalam keadaan Start masih ditahan, jika reset ditekan dan ditahan, maka
pergantian akan berhenti, dan juga kedua motor akan berhenti berjalan
e. Latihan D3
 Kondisi pertama kali ketika running adalah LED menyala
 Jika push button ditekan tanpa ditahan, maka LED akan mati
 Jika push button ditekan lagi maka LED kembali menyala
 Dan seterusnya setiap penekanan push button
B. Pembahasan
1. Project 3
a. C1
Semua LED menyala ketika program di simulasikan karena PORTD yang
mengontrol LED berada pada kondisi LSB, kecuali LED pertama. LED
pertama dalam keadaan awal tidak menyala, hal ini karena PORTD.0 yang
mengontrol LED pertama sudah diprogramkan dalam sebuah fungsi if
yang kondisinya diambil dari PINA.0. Maka, pada PORTD.0 atau LED
aksi yang akan dikerjakan tergantung PINA.0.
Dalam program dapat dibaca bahwa jika PINA bernilai 0 atau terhubung
ke ground, maka LED menyala. Sedangkan pada kondisi awal running

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

program, PINA.0 tidak terhubung ke ground atau bernilai 1 sehingg aksi


yang dijalankan adalah yang berada dalam fungsi else, yaitu mengubah
PORTD.0 bernilai 1 sehingga LED mati pada kondisi awal.
Kemudian ketika ditekan PINA.0 bernilai 0 karena terhubung ke ground,
maka aksi yang dilakukan adalah mengubah PORTD.0 menjadi bernilai 0,
maka LED akan menyala. Namun kondisinya ketika ditekan push button
sesaat akan kembali ke posisi 1, sehingga LED hanya menyala sesaat, atau
terkesan berkedip saja. Namun jika push button ditekan dan ditahan maka
LED terus hidup.
b. C2
Program C2 dituliskan sebagaimana C1, namun program dalam dua fungsi
dengan kondisi yang berbeda, yang pertama if dengan PINA.0 sebagai
kondisi, dan if kedua dengan PINA.1 sebagai kondisi sehingga kondisi
LED tergantung pada dua push button yaitu On dan Off.
2. Latihan Mandiri
a. Latihan D1
Untuk penggunaan instruksi delay, maka harus disertakan #include
<delay.h>
Pada deklarasi variabel lokal, variabel a dideklarasikan dengan nilai
tetapan 0x01. Juga variabel b yang dideklarasikan dengan nilai tetapan
0x80.
Untuk programnya sendiri, terdapat dua fungsi if yang masing-masing
diprogram untuk Sw1 dan Sw2. Secara struktural, aksi yang berada dalam
kedua if ini adalah sama. Dimana di dalamnya terdapat fungsi
pengulangan yaitu for, dan aksi yang ditulis dalam for adalah aksi yang
diprogram agar LED menyala bergantian sesuai yang diinginkan dan juga
terdapat instruksi untuk menghentikan for.
If yang pertama, jika Sw1 ditekan, maka nilai PINA.1 adalah 0 hal ini
memungkin untuk melakukan perulangan/for. Kondisi yang dituliskan
dalam for memungkinkan perulangan diulang sebanyak 8 kali setiap Swq
ditekan. Di dalam for terdapat program PORTD=((0xFF)-(a<<i)); jika

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

diartikan maka; nilai PORTD adalah 11111111 - (00000001 digeser


sebesar i bit ke kiri). i dalam for adalah dari 0 sampai kurang dari 7 maka :
11111111 - (00000001 geser kiri 0 bit) = 11111111 - 00000001
=11111110
11111111 - (00000001 geser kiri 1 bit) = 11111111 - 00000010
=11111101
11111111 - (00000001 geser kiri 2 bit) = 11111111 - 00000100
=11111011
11111111 - (00000001 geser kiri 3 bit) = 11111111 - 00001000
=11110111
11111111 - (00000001 geser kiri 4 bit) = 11111111 - 00010000
=11101111
11111111 - (00000001 geser kiri 5 bit) = 11111111 - 00100000
=11011111
11111111 - (00000001 geser kiri 6 bit) = 11111111 - 01000000
=10111111
11111111 - (00000001 geser kiri 7 bit) = 11111111 - 10000000
=01111111
Data diatas adalah urutan kejadian yang diprogram pada for, hasilnya
dapat dilihat bahwa nilai bit secara bertahap berpindah dari bit pertama
bernilai 0 sampai bit terakhir bernilai 0, kemudian karena dituliskan juga
delay_ms(500) perpindahan antar bit diatas akan dijeda selama 500ms
atau setengah detik. Program inilah yang membuat LED terkesan menyala
secara bergantian. Kemudian untuk menghentikan perulangan ini cukup
ditambahkan break pada kondisi yang diinginkan seperti pada program ini
yaitu ketika Off ditekan atau PINA.0 bernilai 0.
Untuk Sw2, pada dasarnya sama saja namun susunan bitnya berbeda
karena variabel yang digunakan adalah variabel b, dan programnya
kebalikan dari yang sebelumnya. Dimana perulang terjadi dari 0 sampai
kurang dari 8 dengan rincian sebagai berikut :
11111111 - (10000000 geser kanan 0 bit) = 11111111 - 10000000 =01111110
11111111 - (10000000 geser kanan 1 bit) = 11111111 - 01000000 =10111111
ZEN RESTI MAULANA/1901031005
PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

11111111 - (10000000 geser kanan 2 bit) = 11111111 - 00100000 =11011111


11111111 - (10000000 geser kanan 3 bit) = 11111111 - 00010000 =11101111
11111111 - (10000000 geser kanan 4 bit) = 11111111 - 00001000 =11110111
11111111 - (10000000 geser kanan 5 bit) = 11111111 - 00000100 =11111011
11111111 - (10000000 geser kanan 6 bit) = 11111111 - 00000010 =11111101
11111111 - (10000000 geser kanan 7 bit) = 11111111 - 00000001 =11111110

b. Latihan D2
Setelah menyertakan #include <delay.h>, ada dua variabel yang
dideklarasikan yaitu variabel a dengan nilai tetapan 0x01, dan variabel b
dengan nilai tetapan 0.
Ada satu fungsi if utama yang berkondisi pada nilai PINA.0, jika bernilai 0
maka aksi didalamnya dikerjakan yaitu perintah for atau perulangan.
Karena hanya ada dua motor yang dikontrol, maka for cukup ditetapkan
dari i sama dengan 0 sampai kurang dari 2. Dengan perintah :
PORTD=((0XFF)-(a<<i)); dan delay_ms(2000);
11111111 - (00000001 geser kiri 0 bit) = 11111111 - 00000001
=11111110 maka motor yang terhubung pada PORTD.0 berjalan
Kemudian setelah dua detik. :
11111111 - (00000001 geser kiri 1 bit) = 11111111 - 00000010
=11111101 maka motor yang terhubung pada PORTD.1 berjalan
Selama PINA.0 masih dalam kondisi 0 maka instruksi tersebut akan terus
diulang dari awal.
Kemudain untuk memproses tombol Stop, cukup diberikan instruksi break
dalam fo dan dimasukkan pada kondisi yang diinginkan, pada program ini
yaitu if dengan syarat PINA.1 bernilai 0. Namun, agar ketika distop hanya
perulangannya yang berhenti sedangkan motor yang terakhir kali menyala
ketika PINA.1 bernilai 0 harus tetap menyala maka di dalam if ini haru
ditambah if lagi dengan menggunakan variabel b sebagai syarat. Variabel
b sebelumnya sudah ditetapkan bernilai 0, namun didalam for kembali

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

diprogram agar nilai b berubah sesuai nilai bit pada PORTD selama
perpindahan bit.
Pada if yang berada di dalam for ini, jika nilai b adalah 0xFE(11111110)
maka selama break, motor yang terhubung pada PORTD.0 tetap berjalan
dan motor lainnya berhenti. Namun jika kondisi tidak terpenuhi maka
perintah yang dijalankan adalah agar motor yang tidak terhubung dengan
PORTD.0 tetap berjalan selama break.
Untuk memprogram tombol reset pada push button di PINA.2 cukup
dengan menambahkan fungsi if yang baru di dalam fungsi for, dengan
perintah break sekaligus perintah untuk merubah nilai PORTD menjadi
0xFF;
c. Latihan D3
Setelah menyertakan instruksi #include <delay.h> cukup di deklarasikan
satu variabel yaitu variabel A dengan tetapan nilai 0.
Untuk membangun program sebagaimana telah ditentukan di atas, langkah
pertama yang harus dilakukan adalah dengan memasukkan nilai yang
PORTD.0 ke dalam variabel A.
Kemudian untuk membangun program, dibuat dengan cara nested if.
Artinya ada dua percabangan yang harus dilalui. Yang pertama if
(PINA.0==0) dimana perintah berikutnya bisa dijalankan jika terpenuhi
bahwa PINA bernilai 0 yaitu ketika push button ditekan sehingga PINA.0
terhubung ke ground. Jika terpenuhi maka akan berlanjut pada if
berikutnya yaitu, jika nilai A setelah diambil dari PORTD.0 adalah 0
karena LED menyala, maka nilai dari PORTD berubah jadi 1 dan LED
menjadi mati. Jika LED menjadi mati maka nilai PORTD berubah lagi
menjadi 1, dan ketika dimasukkan kedalam variabel A, maka A juga
bernilai 1 sehingga ketika push button ditekan lagi, maka kondisi pertama
terpenuhi dilanjutkan dengan if kedua bermodal nilai A adalah 1, maka
perintah yang dijalankan adalah mengubah PORTD.0 menjadi 0.

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER
POLITEKNIK NEGERI PADANG
DIII TEKNIK LISTRIK

BAB VI
KESIMPULAN

Berdasarkan praktikum, dapat disimpulkan bahwa :


1. Pada saat PIN Mikrokontroler terhubung ke ground maka, pin tersebut bersifat LSB
2. Pada kondisi LSB, nilai bit 0 akan menyebabkan tegangan mengalir menuju output
menuju beban yang tersambung kepadanya
3. PORT yang berada pada kondisi LSB akan berfungsi sebagai Toggle dan PORT yang
berada pada kondisi MSB berfungsi sebagai Pull Up
4. PORT dengan kondisi input sebagai Toggle akan mendekteksi setiap perubahan
dalam tiap-tiap gelombann masukan
5. PORT dengan kondisi input sebagai Pull Up hanya mendeteksi masukan satu kali
setiap gelombang masukan

ZEN RESTI MAULANA/1901031005


PRAKTIKUM MIKROKONTROLER

Anda mungkin juga menyukai