Sunday, 15 December 2013

Konfigurasi Port input dan output Pada Bahasa C

kali ini anda akan membuat code sederhana yaitu memberikan nilai logika 0 atau 1 pada port output ATmega8535. Port I/O akan diset menjadi port output. Port yang sama dapat dialihkan fungsinya menjadi port input dengan mengatur DDR (Data Direction Register) dari tiap-tiap port.

konfigurasi port atmega

Konfigurasi port I/O pada ATmega8535 dapat dilakukan dengan melakukan settingan:  Port I/O sebagai output:  DDR diset high atau bit 1 dengan mengetikkan DDRx =1; x bisa berarti A,B,C,D (port). Penyettingan ini dilakukan dengan akses per byte pada satu port dengan delapan pin sekaligus.

Misal kita ingin menjadikan PA0 menjadi port output, contoh kodenya:

DDRA = 0x01; //menjadikan porta.0 menjadi port output (hex)
DDRA = 0b00000001; //sama dengan diatas namun dengan bilangan bit, //kedua perintah diatas membuat port selain //porta.0 menjadi port input

Untuk melakukan penyettingan terhadap satu pin saja maka dapat dilakukan dengan DDRx.y = 1; y bisa terdiri angka 0,1,...,7 (8 bit). Contoh kodenya:

DDRA.0 = 1; //menjadikan porta.0 menjadi port output

Memberikan keluaran high pada PA0 dilakukan dengan mengetikan kode:

PORTA = 1;//porta.0 diberi logic high ‘1’

Jika ingin memberikan logic high pada lebih dari satu port ketikkan kode:

PORTA = 0xAA; //porta.1,3,5,7 diberi logic high atau

PORTA = 0b10101010;

Penyettingan hanya terhadap satu pin saja dari satu port dapat menggunakan kode:

PORTA.2 = 1; //porta.2 memiliki logic high  Port output pada ATmega8535 dapat memberikan arus source sebesar 20 mA. Arus ini cukup untuk menyalakan LED sedang. Arus ini dapat terjadi karena AVR telah memiliki internal pull up resistor di dalamnya untuk setiap pinnya.

Port I/O sebagai input:  Untuk menjadikan port I/O menjadi port output DDR diset low atau ‘0’. Ketikkan kode  DDRA.0 = 0; //porta.0 menjadi port input

Untuk mengambil data dari port input kita gunakan perintah PINA . Akses byte atau per bit dari port input sama dengan penjelasan pada DDR dan port output diatas. Contoh dari penggunaan perintah PINA:

if (PINA.0 == 1)

{  PORTA.2 = 1;  } // jika pin A0 = 1, maka port A2 diberi logic high

Port input dapat di pullup dengan menambahkan perintah PORT setelah DDR seperti pada contoh dibawah ini:

DDRA.0 = 0;  PORTA.0 = 1; //membuat porta.0 sebagai input dan di pullup

Contoh program kecil:

include <mega8535.h>

void main()

{

DDRA.0 = 1;

PORTA.0 = 1;

DDRB = 0b00110011;

PORTB.3 = 1

}

 

No comments:

Post a Comment