LAPORAN MIKROKONTROLER JOB 1 AKSES I/O

PRAKTIKUM MIKROKONTROLER
AKSES I/O 

Disusun Oleh
 Khairinnisa Siregar (16507134042)
         




TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA









A.    Tujuan
Setelah melakukan praktik mahasiswa diharapkan dapat:
1.      Memahami konfigurasi input AVR
2.      Memahami konfigurasi output AVR
B.     Teori Dasar
Secara umum setiap mikrokontroler memiliki I/O port. Jumlahnya berbedabeda untuk masingmasing mikrokontroler. Mikrokontroler AVR AT90SXXX juga memiliki I/O port yang jumlahnya bervariasi, dari mulai satu port hingga lebih dari empat port. Meskipun dari sisi jumlah berbeda, namun karakteristik I/O port mikrokontroler AVR adalah sama. Untuk lebih jelasnya anda dapat membaca datasheet dari mikrokontroler yang anda pakai.

Untuk mengakses port pada mikrokontoler AVR maka anda harus mengenal register yang ada pada I/O port. Ada tiga register bit pada I/O port yaitu DDRx, PORTx dan PINx. Register DDRx digunakan untuk menentukan apakah port tersebut akan dijadikan sebagai input atau output. Sedangkan register PORTx dipakai untuk mengirim data keluar dari port ketika DDRx diset sebagai output. Dan register PINx dipakai untuk membaca data pada port ketika DDRx diset sebagai input.

Karena ketiga register di atas adalah register bit maka masingmasing pin pada port bisa diset secara bebas. Misalkan, kita menginginkan sebagian dari PORTA dijadikan sebagai input dan sebagian yang lain dijadikan sebagai output. Hal ini mudah dilakukan dengan mengatur register DDRA, sebagian sebagai input dan sebagian yang lain sebagai output.  Agar pin pada port berfungsi sebagai input maka bit pada register DDRx diset 0. Sedangkan, pin pada port akan berfungsi sebagai output ketika bit pada register DDRx diset 1. Untuk lebih detailnya anda bisa membaca di datasheet.
C.     Alat dan Bahan
1.      Modul AVR Atmega8535/8/16/32
2.      PC (Personal computer)/laptop
3.      Jumper



D.    Skema Rangkain
       
E.     Langkah Kerja
1.      Buatlah  alat dan bahan seperti rangkaian di atas;
2.      Buatlah program seperti yang tertulis berikut, uji cobakan/simulasikanlah di Proteus lalu coba pada hardware nyata;
3.      Cobalah list program berikut;
#include <mega8535.h>
#include <delay.h>
unsigned char kiri=0b00000001, kanan=0b10000000;
void nyala_led() //menyalakan led selama 0.5 detikkemudian dimatikan
{ POTA = 0xffh delay_ms(500);
PORTA = 0×00;
}
void geser_led_kanan() 
//fungsi untuk menggeser led berjalan kearah kanan
{
if (kanan ==0b00000001) kanan = 0b10000000; else kanan >>= 1; PORT_led = kanan; delay_ms(500); }
void geser_led_kiri()  
//fungsi untuk menggeser led berjalan kearah kiri
{
if (kiri==0b10000000) kiri = 0b00000001; else kiri <<= 1; PORT_led = kiri; delay_ms(500);
}

void tekan_tombol_led_nyala() 
//jika tombol PORTBx ditekan maka akan menyalakan led pada PORTAx {
PORTA = PINB;
}
void main(void) {
PORTA = 0xff;  
//Port A diberikan logika high atau LED mati
DDRA = 0xff; 
//port A sebagai output
PORTB = 0x0f; 
//PB.7-4 logika low, PB3-0 logika high
DDRB = 0×00; 
// port B sebagai input while(1) {
geser_led_kiri() ;  // pemanggilan fungsi
};
}
4.      Selanjutnya dengan cara yang sama coba program berikut;
while (1)       {       if (PINB.0==0)
      {PORTA=00xFF;}              
 };
 }

5.      Selanjutnya dengan cara yang sama coba program berikut;
while (1)       {
if (PINB.0==0)              
 PORTA=15;        
delay_ms(1000);   
      PORTA=240;         
delay_ms(1000);          };
}
6.      Selanjutnya dengan cara yang sama coba program berikut;
  #include <avr/io.h> 
   int main (void)
   { 
//Jadikan Semua PORTA Sebagai Output 
DDRA = 0xFF; 
//Hidupkan LED  PORTA = 0x0F; 
return 0; 
}
7.      Buatlah kesimpulan dari hasil praktik saudara.
8.      Tugas, buatlah program jika SW1 ditekan maka bit ganjil PORTA  menyala, kemudian jika SW2 ditekan bit genap PORTA padam.
9.      Tuliskan hasil praktikum ini dan praktikum selanjutnya dengan format berikut;
F.      Hasil dan Analisa
Gambar dibawah ini merupakan hasil simulation pada rangkaian.

Analisa : dari praktikum yang dilakukan dapat dianalisa bahwa pada Bagian awal program #include <mega8535.h> digunakan untuk memberitahu kepada compiler bahwa program yang  dibuat menggunakan Atmega 8535 Kemudian juga dituliskan #include <delay.h> sebagai library untuk program delay. Program PORTA=0x00; digunakan untuk memberikan masukan/nilai awal LOW pada kondisi awal setiap Port di A.
G.    Kesimpulan
Dari praktikum yang dilakukan dapat disimpulkan :
1.    Pada program di atas  DDR yang bernilai 0 digunakan untuk mendeklarasikan suatu port sebagai input, dan DDR bernilai 1 untuk mendeklarasikan suatu port sebagai output.
2.   Ada tiga register bit pada I/O port yaitu DDRx, PORTx dan PINx. Register DDRx digunakan untuk menentukan apakah port tersebut akan dijadikan sebagai input atau output. Sedangkan register PORTx dipakai untuk mengirim data keluar dari port ketika DDRx diset sebagai output. Dan register PINx dipakai untuk membaca data pada port ketika DDRx diset sebagai input.



Komentar

Postingan populer dari blog ini

LAPORAN MIKROKONTROLER TIMER/COUNTER

LAPORAN MIKROKONTROLER RTC

LAPORAN MIKROKONTROLER KEYPAD