Anda di halaman 1dari 19

PRAKTIK

MIKROKONTROLER

SEMESTER 3 Certificate No.


QEC24489

LAPORAN 3

NAMA : MUHAMMAD HAFIDZ

No. BP : 1901024006

KELAS/PRODI : 1 PLN / D3 TEKNIK LISTRIK

INSTRUKTUR : 1.  JULSAM, M.Kom

: 2. ZULKA HENDRI, S.T.,M.T.

PROGRAM STUDI TEKNIK LISTRIK

POLITEKNIK NEGERI PADANG

TA. 2020/2021
BAB I

TUJUAN

1. Mahasiswa dapat memahami tentang mikrokontroler ATMEGA 8535


2. Mahasiswa dapat memahami sistem program AVR
3. Mahasiswa dapat membuat gambar rangkaian pada sebuah software Proteus
4. Mahasiswa dapat membuat program dimana menginput dan menghasilkan output
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
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:

Secara penulisan program

Adalah sebagai berikut:

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:

Gb.2. pembacaan sinyal masukan pada fungsi Toggle.


Kondisi pengaturan port masukan pada Pull up (‘P’) mendeteksi atau 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 kondisi falling edge. Selain itu
bahwa pada pengaturan kondisi Pull up mereset pin msukan didalam mikro terhubung dengan
VCC (5 V) 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;

Gb.3a. kondisi didalam mikrokontroler pada posisi Pull up

Gb.3b. pembacaan sinyal pada kondisi Pull up


Kebanyakan rangkaian masukan ke mikrokontroler mengambil prinsip falling
sebagai sinyal tanda aktif atau bisa dikatakan memiliki logika aktif jika sinyal
masukannnya rendah (low). Apabila terhubung dengan sebuah masukan dari saklar /
button maka saklar saat tertutup tehubung dengan ground (GND). Sebaliknya, apabila
sklar 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 dipull up, akan tetapi untuk
mengamankan kondisi datanya, maka akan dipasang resistor pull up lagi diluar pada sistem
minimum. Berikut ilustrasi skematiknya :

Gb.4 Pemasangan Resistor Pull Up External

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;

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 instruksi syarat
pada bahasa C. Salah satunya yaitu penggunaanya bersama instruksi “F”, berikut
contohnya;
if(PINA.1==0)

…..(aksi yang dilakukan)

};

Atau pada perulangan “while”;

While(PINA.1==0)

…..(aksi yang dilakukanberulang-ulang)

};

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

IV. Latihan mandiri

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

SW1 = sebagai start (mulai menjalankan motor bergantian)

SW2 = sebagai stop (menghentikan bergantinya jalan motor/berhenti pada salah satu
motor)

SW3 = sebagaireset (menghentikan dan mematikan semua 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

Dikesempatan kali ini, pratikum mikrokontroler yang dilakukan praktikan


berkaitan dengan diberikan sebuah modul pembelajaran dimana pada modul pembelajaran
itu mengajarkan tentang input-output, jadi praktikan diajarkan membuat program sekaligus
menjalankan simulasi pada prouteus. Pada modul pembelajaran terdapat contoh dan
latihan, dan pada laporan 3 kali ini, praktikan akan meembahas latihan mandiri D1 sampai
D3.

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.

Pertama, praktikan membuat rangkaian di proteus seperti gambar berikut :

Setelah itu, kita membuat program di CVAVR sebagai berikut :

#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.

b. Tugas Mandiri D.2.


Membuat program untuk menjalankan dua buah motor nyala bergantian
terus menerus dengan jeda pindah mendekati 2 detik.
Sw1 = sebagai START (mulai menjalankan motor bergantian)
Sw2 = sebagai STOP (menghentikan bergantinya jalan motor/berhenti pada
salah satu motor)
Sw3 = sebagai RESET (menghentikan dan mematikan semua motor)

Pertama, praktikan membuat rangkaian sebagai berikut :

Setelah itu, praktikan membuat program di CVAVR sebagai berikut :

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

// Declare your global variables here


unsigned char a=0x7F;


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.

c. Tugas Mandiri D.3.


Buatlah 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.

Pertama, praktikan membuat rangkaian pada aplikasi proteus sebagai berikut :

Setelah itu, praktikan membuat program pada CVAVR sebagai berikut :

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

// Declare your global variables here

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.

Anda mungkin juga menyukai