MIKROKONTROLER
LAPORAN 3
No. BP : 1901024006
TA. 2020/2021
BAB I
TUJUAN
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
microkontroler bias 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 2 cara, secara
menggunakan Code Wizard AVR, atau secara penulisan program. Sedangkan sebagai kondisi port
sebagai masukan terdapat 2 karakter yaitu ‘P’ dan ‘T’. ‘P’ merupakan kependekan dari Pull Up,
sedangkan ‘T’ merupakan kependakan dari Toggle. Berikut contoh pengaturan port mikro secara
Code Wizard AVR atau tertulis:
PORT A = 0xF0;
DDRA = 0x00;
Gb.1. pengaturan port sebagai masukan secara Code Wizard AVR
Seperti yang telah dijelaskan pada topic sebelumnya dalam pengaturan secara tertulis
inisialisasi port masukan memiliki fungsi sebagai berikut;
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 sebagai kondisi
rising edge. Prinsip tersebut mengakibatkan dalam pembacaan satu gelombang sinyal terdapat
dua kali sinyal masukan ke mikrokontroler. Berikut secara ilustrasi pembacaanya:
Pengambilan data atau mendeteksi sinyal masukan dari luar dilakukan mikroprosesor
instruksi program yang telah ditentukan. Instruksi pemprograman dalam bahasa C pada
Code Vision AVR yaitu “PINx”. Berikut penjabaran penulisan program untuk membaca
sinyal data dari luar;
Instruksi program masukan PIN biasanya digunakan bersamaan dengan instruksi syarat
pada bahasa C. Salah satunya yaitu penggunaanya bersama instruksi “F”, berikut
contohnya;
if(PINA.1==0)
};
While(PINA.1==0)
};
Pengguanaan symbol “==” (sama dengan dua kali), mempunyai fungsi sebagai
penyataan 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).
BAB III
ALAT BAHAN
1. Mikrokontroler ATMEGA8535
2. Resistor (disimulasikan)
3. LED (disimulasikan)
4. Push button (disimulasikan)
5. Kabel conector male 8 pin (disimulasikan)
6. Kabel USB (disimulasikan)
7. Laptop/notebook
8. Software Code Vision AVR
BAB IV
LANGKAH KERJA
D1. Membuat program apabila ditekan sw1 maka LED menyala berjalan bergantian ke
kiri, apabila ditekan SW2 nyala LED berjalan ke kanan
D2. Aplikatif
Membuat program untuk menjalankan dua buah motor nyala bergantian terus menerus
dengan jeda pindah mendekati 2 detik
SW2 = sebagai stop (menghentikan bergantinya jalan motor/berhenti pada salah satu
motor)
D3. Aplikatif
Membuat program apabila SW1 ditekan pertama LED menyala dan akan tetap menyala
saat saklar dilepas , pada penekanan sw1 yang ke dua akan mematikan LED dan
seterusnya
BAB VI
ANALISA
Pada awal pembuatan program, kita membuat rangkaian di aplikasi proteus. Lalu,
setelah selesai membuat rangkaian aplikasi di proteus, selanjutnya adalah membuat
program di CVAVR yang langkah-langkahnya dilakukan seperti biasanya. Dapat dilihat
pada gambar berikut :
Tugas mandiri
D.1. Membuat program apabila ditekan sw1 maka LED nyala berjalan bergantian ke kiri, apabila
ditekan sw2 nyala LED berjalan bergantian ke kanan.
#include <mega8535>
#include <delay.h>
…
PORTD=0XFF;
while (1)
{
{
if (PINA.0==0)
{
PORTD=0B00000000;
delay_ms(500);
PORTD=0B11111110;
delay_ms(500);
PORTD=0B11111101;
delay_ms(500);
PORTD=0B11111011;
delay_ms(500);
PORTD=0B11110111;
delay_ms(500);
PORTD=0B11101111;
delay_ms(500);
PORTD=0B11011111;
delay_ms(500);
PORTD=0B10111111;
delay_ms(500);
PORTD=0B01111111;
delay_ms(500);
}
if (PINA.1==0)
{
PORTD=0B00000000;
delay_ms(500);
PORTD=0B01111111;
delay_ms(500);
PORTD=0B10111111;
delay_ms(500);
PORTD=0B11011111;
delay_ms(500);
PORTD=0B11101111;
delay_ms(500);
PORTD=0B11110111;
delay_ms(500);
PORTD=0B11111011;
delay_ms(500);
PORTD=0B11111101;
delay_ms(500);
PORTD=0B11111110;
delay_ms(500);
}
}
}
}
Melalui percobaan D1, kita melakukan percobaan ketika ditekan sw1 maka nyala
LED berjalan bergantian ke kiri dan ketika ditekan sw2 maka nyala LED bergantian ke
kanan. #include<mega8535.h> digunakan untuk memberitahu kepada compiler bahwa
program yang kita buat menggunakan Atmega 8535. Kemudian juga dituliskan
#include<delay.h> sebagai library untuk program delay. Pernyataan While untuk
perulangan sebuah sebuah pernyataan atau blok pernyataan secara terus menerus selama
kondisi masih terpenuhi. Kemudian program kita jalankan dan terlihat pada saat kita tekan
sw1 maka LED nyala bergantian ke kiri dan kita tekan sw2 maka LED nyala bergantian ke
kanan sesuai dengan setingan waktu delaynya. Selanjutnya kita coba menggunakan modul
LED, ternyata hasilnya sama.
#include <mega8535.h>
#include <delay.h>
…
PORTD = 0xFF;
while (1)
{
if (PINA.0==0)
{
if (PINA.1==1)
{
if (PINA.2==1)
{
a=((a>>7)|(a<<1));
PORTD=a;
delay_ms(1000);
if (PORTD==0xFD)
{
a=0x7F;
}
}
else
{
PORTD = 0xFF;
};
}
else
{
if (PINA.2==1)
{
if (PORTD==0xFE)
{
PORTD.0=0;
}
if (PORTD==0xFD)
{
PORTD.1=0;
}
}
else
{
PORTD=0xFF;
};
};
}
else
{
PORTD=0xFF;
}
}
}
Pada bagian ini, sewaktu program ini dijalankan pada aplikasi proteus, maka
apabila praktikan mengunci tombol / switch 1 (SW1) maka motor (LED) akan running dari
motor 1 ke motor 2 dan selalu nyala. Apabila praktikan menekan switch 2 (SW2) maka
indikator motor tersebut akan berhenti tetapi lampu masih menyala. Lalu, apabila
praktikan menekan switch 3 (SW3) maka motor akan ke reset. Selanjutnya, lepaskan tuas
switch 2 dan 3 bila ingin menjalankan kembali.
#include <mega8535.h>
#include <delay.h>
void main(void)
{
// Declare your local variables here
int a,b,c,d,e,f,g,h;
…
a=0;
b=0;
c=0;
d=0;
e=0;
f=0;
g=0;
h=0;
PORTD=0xFF;
while (1)
{
if (PINA.0==0)
{
a=a+1;
if (a==1)
{
PORTD.0=0;
}
if (a==2)
{
PORTD.0=1;
a=0;
}
delay_ms(300);
}
if (PINA.1==0)
{
b=b+1;
if (b==1)
{
PORTD.1=0;
}
if (b==2)
{
PORTD.1=1;
b=0;
}
delay_ms(300);
}
if (PINA.2==0)
{
c=c+1;
if (c==1)
{
PORTD.2=0;
}
if (c==2)
{
PORTD.2=1;
c=0;
}
delay_ms(300);
}
if (PINA.3==0)
{
d=d+1;
if (d==1)
{
PORTD.3=0;
}
if (d==2)
{
PORTD.3=1;
d=0;
}
delay_ms(300);
} if (PINA.4==0)
{
e=e+1;
if (e==1)
{
PORTD.4=0;
}
if (e==2)
{
PORTD.4=1;
e=0;
}
delay_ms(300);
}
if (PINA.5==0)
{
f=f+1;
if (f==1)
{
PORTD.5=0;
}
if (f==2)
{
PORTD.5=1;
f=0;
}
delay_ms(300);
}
if (PINA.6==0)
{
g=g+1;
if (g==1)
{
PORTD.6=0;
}
if (g==2)
{
PORTD.6=1;
g=0;
}
delay_ms(300);
}
if (PINA.7==0)
{
h=h+1;
if (h==1)
{
PORTD.7=0;
}
if (h==2)
{
PORTD.7=1;
h=0;
}
delay_ms(300);
}
}
}
Pada bagian ini, sewaktu program ini dijalankan pada aplikasi proteus,
maka apabila praktikan menekan switch 1 (SW1) maka lampu 1 akan menyala, lalu bila
ditekan sekali lagi lampu 1 akan mati. Apabila praktikan menekan switch 2 (SW2) maka
lampu 2 akan menyala, dan ditekan sekali lagi lampu 2 akan mati. Apabila praktikan
menekan switch 3 (SW3) maka lampu 3 akan menyala, dan ditekan sekali lagi lampu 3
akan mati. Begitupun seterusnya hingga lampu 8.
BAB VII
KESIMPULAN
A. SIMPULAN
1. Melalui praktikum, praktikan dapat memahami mikrokontroler ATMEGA 8535 tentang
praktikum Paralel Input Output, serta telah mampu menentukan input ataupun output
untuk setiap PORT.
2. Program AVR yang digunakan dapat dibuat dan dimasukan dari yang ada dalam modul
sesuai dengan simulasi yang telah dilakukan.
3. Praktikan dapat membuat dan memahami gambar rangkaian pada sebuah software
Proteus. Contohnya simbol yang digunakan berpegaruh terhadap input dan output
program.
4. Praktikan dapat membuat program dimana menginput dan menghasilkan output.
Seperti : a. Program dalam pernyataan While untuk perulangan sebuah sebuah
pernyataan atau blok pernyataan secara terus menerus selama kondisi masih terpenuhi.
b. Input atau masukan untuk mikrokontroler yang bisa diprogram menggunakan saklar,
sinyal logika, atau rangkaian lain yang memiliki keluaran.
B. SARAN
1. Diharapkan praktikan agar lebih jeli dan teliti dalam melakukan praktikum.
2. Diharapkan dapat memastikan koneksi tetap terjaga selama pembelajaran daring ini.