PRAKTIKUM MIKROKONTROLLER
P27838012017
LABORATORIUM MIKROKONTROLLER
JURUSAN TEKNIK ELEKTROMEDIK
POLTEKKES KEMENKES SURABAYA
2013
LED DAN SW PUSH BUTTON
Inisialisasi data
For(i=0;i<0;i++)
Yes
I<8
No
I=8
Yes
Selesai
PORTC=urutan
[i]
Delay_ms(100
#include <mega8535.h>
void main(void)
dijalankan
{
DDRC=0xFF;
PORTC=0x0F;
}
Percobaan LED On/ Off dengan fungsi delay
#include <mega8535.h>
>>berfungsi sebagai pernyataan kompenen yang
digunakan berarti Atmega 8535
#include <delay.h>
>>mengenalkan perintah delay agar dapat diproses
saat dimasukkannya suatu perintah atau instruksi
adanya jeda atau waktu
void main(void)
>>merupakan librari bagian inti yang akan
dijalankan
{
DDRC= 0xFF;
>> seluruh pin-pin pada Port C digunakan
sebagai output
while (1)
>>program akan terus berjalan apabila dalam
kondisi awal bernilai benar
{
PORTC=0xFF;
>>dengan konfigurasi 0x0F (0b11111111) atau
PORTC.0 menyala semua
delay_ms(1000);
PORTC=0x00;
atau
delay_ms(1000);
}
}
Percobaan LED dengan data Tabel
#include <mega8535.h> >>berfungsi sebagai pernyataan kompenen yang
digunakan
berarti Atmega 8535
#include <delay.h>
>>mengenalkan perintah delay agar dapat diproses
saat dimasukkannya suatu perintah atau instruksi
adanya jeda atau waktu
void main(void)
>>sebagai software utama
{
char urutan[8]={0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80};
>>Deklarasi variabel urutan yang berisi 8 data,
bertipe data char yang dimulai dari indeks LED
terkecil (0x01) ke terbesar (0x80).
char i;
>>Deklasi variabel i sebagai tipe char
DDRC=0xFF; >>seluruh pin-pin pada Port C digunakan sebagai output
PORTC=0xFF;
>>dengan konfigurasi 0x0F (0b11111111) atau
PORTC.0 menyala semua
while(1)
{
for (i=0;i<8;i++)
{
PORTC=urutan[i];
delay_ms(1000);
}
}
}
Penjelasan
Gambar rangkaian diatas merupakan gambar rangkaian percobaan LED
sebagai pengendali ON/OFF dengan mengunakan saklar push button dalam
sebuah sistem program mikrokontroler AVR buatan Atmel menggunakan
software CodeVision AVR, dimana dalam program dapat ditulis dengan bahasa
C yang akan dihubungkan dengan salah satu PORT pada Atmega 8535 yaitu
pada PORT C. Di dalam PORT C terdapat 8 delapan LED, yang pada setiap
LEDnya akan terhubung pada komponen komponen pendukung , kaki anoda
akan terhubung dengan resistor yang akan menyambung ke VCC 220 volt
pada pin 2 dari konektor yang dipakai. Dan kaki katoda akan menyambung ke
PORT C sebagai output. Jadi ketika LED mendapat logika 1 maka LED tidak
akan menyala, sedangkan jika mendapat logika 0 LED akan menyala. Pada
percobaan ini PORTB difungsikan sebagai output.
PORTC=PIN
B
Selesai
percobaan Input/Output dengan fungsi BIT
MULAI
Inisialisasi Data
Check PINB
PINB.0==0
YE
S
PORTC=0x01
No
PINB.1==0
NO
PINB.2==0
YES
PORTC=0x02
YES
PORTC=0x0
4
No
YES
PINB.3==0
No
PORTC=0x0
8
PORTC=0x00
Selesai
Percobaan SW dengan pemilihan kombinasi LED
Mulai
Inisialisasi Data
Pengaktifan PIN
Check PINB
PINB.0==0
Yes
For(i=0;i<3:
i++
No
Yes
I<3
No
PORTC=p1[i]
delay_ms(30
0)
PORTC=0
Yes
PINB.1==0
No
For(i=0;i<3;
i++
I<3
N
O
Yes
PORTC=p1[i]
delay_ms(30
0)
PORTC=
0
Selesai
void main(void)
{
DDRC=0xFF;
DDRB=0x00;
PORTB=0xFF;
while (1)
{
PORTC=PINB;
}
}
Percobaan Input/output dengan fungsi BIT
#include <mega8535.h>
>>berfungsi sebagai pernyataan kompenen
yang digunakan berarti Atmega 8535
void main(void)
>>sebagai software utama
{
DDRC=0xFF;
>>seluruh pin-pin pada Port C digunakan
sebagai output
DDRB=0x00;
>>seluruh pin-pin pada Port B digunakan
sebagai input
PORTB=0xFF;
>>memberi logika 1 pada Port B saat kondisi
pertama program dimulai
while(1)
>>program akan terus berjalan apabila dalam
kondisi awal bernilai benar
{
if (PINB.0==0) {PORTC=0x01;} >>apabila pada PINB.0 ditekan maka
indikator LED pada PORTC.1 akan menyala
else if (PINB.1==0){PORTC=0x02;}
>>apabila pada PINB.1 ditekan
maka indikator LED pada PORTC.2 akan menyala
else if (PINB.2==0){PORTC=0x04;}
>>apabila pada PINB.2 ditekan
maka indikator LED pada PORTC.3 akan menyala
else if (PINB.3==0){PORTC=0x08;}
>>apabila pada PINB.3 ditekan
maka indikator LED pada PORTC.3 akan menyala
else {PORTC=0x00;}
>>jika bit bit yang lain diperintahkan selain 4 bit
di atas maka Port C yang memiliki indeks 0 akan
menyala
}
}
Percobaan SW dengan pemilihan kombinasi LED
#include <mega8535.h>
>>berfungsi sebagai pernyataan kompenen
yang digunakan berarti Atmega 8535
#include <delay.h>
>>mengenalkan perintah delay agar dapat
diproses saat dimasukkannya suatu perintah
atau instruksi adanya jeda atau waktu
unsigned char p1[4]={0b10000001,
0b01000010,
0b00100100,
0b00011000};
>>Variabel p1 mempunyai tipe data unsigned char yang mempunyai isi data 4.
unsigned char p2[4]={0b11111111,
0b01111110,
0b00111100,
0b00011000};
>>Variabel p2 mempunyai tipe data unsigned char yang mempunyai isi data 4.
void main()
>>merupakan librari bagian inti yang akan
dijalankan
{
unsigned char i;
>>memperkenalkan variabel i pada tipe char
PORTB.0=1;
>>bit 0 pada Port B diberi logika 1
PORTB.1=1;
>>bit 1 pada Port B diberi logika 1
DDRB=0x00;
>>konfigurasi Port B sebagai input
PORTC=0x00;
>>memerintahkan Port C pada kondisi awal
mendapat logika 0
DDRC=0xFF;
>>konfigurasi Port C sebagai output
while (1)
>>Perintah yang akan terus mengeksekusi
program selama program bernilai benar (1).
{
if(PINB.0==0)
>>Jika bit 0 pada Port B diberi logika 0, maka
akan menjalankan suatu perintah
{
for(i=0;i<4;i++)
>>data dimulai dari data 0. Terdapat 4 buah
data yang akan berulang sebanyak 3 kali ( i<4).
Data akan berjalan menuju data yang lebih
besar dari yang paling kecil.
{
PORTC=p1[i];
>>Port C diperintahkan untuk menjalankan
program p2 yang sudah ditentukan
delay_ms(300);
>>akan diberi jeda atau waktu selama 0,3 detik
pada saat program ini dijalankan
}
PORTC=0;
>>setelah program berjalan dan berulang
sebanyak 3 kali, maka Port C mendapat logika 0
}
if(PINB.1==0)
>>Jika bit 1 pada Port B diberi logika 0, maka
akan menjalankan suatu perintah
{
for(i=0;i<4;i++)
>>data dimulai dari data 0. Terdapat 4 buah
data yang akan berulang sebanyak 3 kali ( i<4).
Data akan berjalan menuju data yang lebih
besar dari yang paling kecil.
{
PORTC=p2[i];
>>Port C diperintahkan untuk menjalankan
program p2 yang sudah ditentukan
delay_ms(300);
>>akan diberi jeda atau waktu selama 0,3 detik
pada saat program ini dijalankan
}
PORTC=0;
>>setelah program berjalan dan berulang
sebanyak 3 kali, maka Port C mendapat logika 0
}
}
}
Percobaan Input/Output