Font Size

Screen

Profile

Layout

Direction

Menu Style

Cpanel

Dasar input output Port AVR

16 Mar 2010

AVR saat ini lagi naik daun, ketimbang microcontroller Atmel 89Series, hal ini di sebabkan karena banyaknya fasilitas dan fitur yang ada pada microcontroller yang satu ini. Misalnya kebutuhan akan ADC, PWM, SRAM dan EEPROM, semua sudah tersedia pada AVR. Jadi tidak butuh lagi tambahan ADC, EEPROM Eksternal, sehingga kegunaan AVR lebih praktis dan efisien. di samping itu juga AVR mempunyai performance yang cukup bagus, karena AVR ini di design menggunakan teknology RISC (Reduced Instruction Set Computer). Artinya Technology kombinasi antara hardware (perangkat keras) dengan software(perangkat lunak pada microcontroller yang bertujuan untuk mempercepat proses eksekusi suatu instruksi yang di jalankan oleh CPU dalam microcontroller. Rata-rata eksekusi instruks hanya membutuhkan 1 clock oscilator saja. Jenis AVR ada 3 macam, yaitu TinyAVR, AVR (Classic AVR) dan megaAVR. Port-port pada AVR bisa di gunakan sesuai dengan kebutuhan. Misalnya port C bisa di gunakan untuk ADC (Analog to Digital Converter). bisa juga di gunakan untuk digital input output. Kapan digunakan sebagai ADC dan kapan bisa di gunakan sebagai digital input output. hal ini tergantung inisialisasi register pada AVR. Untuk posting kali ini hanya akan membahas atau sharing mengenai penggunaan port AVR sebagai digital input output.

Akses Port AVR menggunakan bahasa C

Pada artikel kami sebelumnya sudah di bahas mengenai penggunaan bahasa C untuk microcontroller. Silahkan anda baca jika mau, jika tidak lanjutkan baca bagian selanjutnya. Untuk mengakses port AVR ada 3 register yang perlu di inisialisasi, yaitu :

  • Register DDRx
  • Register PORTx
  • Register PINx

1. Register DDRx

DDRx (x adalah port AVR yang di gunakan, misalnya DDRD, berarti yang di gunakan adalah port D).  Register ini berfungsi untuk meengatur arah Pin/Port AVR. Nilai register ini sebesar 8 bit. Tiap bit mewakili tiap-tiap pin port AVR. Jika kaki / pin AVR di gunakan sebagai input, maka register ini di set "0". Apabila pin port AVR di gunakan sebagai output, maka register ini di set "1".

Contoh Port D bit 0 akan di gunakan sebagai input, sedangkan bit 1 ~ bit 7 di gunakan sebagai output, maka register DDRD di isi dengan nilai 1111 1110 (bit 1 ~ bit  7 di isi dengan 1 sedangkan bit 0 di isi dengan 0) . Dalam pemograman menggunakan bahasa C di tulis dengan sintax sebagai berikut.

DDRD = 0xFE ;  atau  DDRX = 0b11111110;

2. Register PORTx

PORTx (x adalah port AVR yang di gunakan, misalnya PORTD, berarti yang di gunakan adalah port D). Jika port di gunakan sebagai input, maka register ini sebagai penentu apakah port di pull up atau di floating. Pull up berarti kaki / pin port yang di buat sebagai inputan di pasang resistor sekitar 10K Ohm dan di hubungkan ke VCC, Jika di buat floating / ngambang, berarti kaki port yang di gunakan sebagai input di biar begitu saja. Selanjutnya apabila kaki / pin port di gunakan sebagai output, maka register PORTx ini menentukan kondisi port apakah high (1) atau low (0).

contoh

1. Seluruh pin Port D di jadikan sebagai input dan pin port di buat pull up. Maka pemogramannya sebagai berikut.

DDRD=0x00;  //Semua Pin Port D di gunakan sebagai input

PORTD=0xff;  //Semua Pin Port D di pull up

2. Seluruh pin Port D di jadikan sebagai input dan pin port di buat floating. maka pemogramannya sebagai berikut.

DDRD=0x00;  //Semua Pin Port D di gunakan sebagai input

PORTD=0x00; ///Semua Pin Port D di floating / ngambang

3. Seluruh pin Port D di jadikan sebagai input. Port D bit 0 ~ bit 3 di buat pull up dan bit 4 ~ bit 7 di buat floating, maka pemogramannya sebagai berikut.

DDRD=0x00; //Semua Pin Port D di gunakan sebagai input

PORTD=0x0F; // Port D bit 0 ~ bit 3 di pull up, sedangkan bit 4 ~ bit 7 di buat floating

4. Semua pin port D di buat sebagai output dan data yang akan di kirimkan dalam bentuk biner adalah 10101010. Maka pemogramannya adalah sebagai berikut.

DDRD=0xff; // Seluruh pin Port D di gunakan sebagai output

PORTD=0xAA; //data yang di kirim ke pin Port D dalam biner adalah 10101010. artinya bit 0,2,4,6 di buat low, sedangkan bit 1,3,5,7 di buat high.

3. Register PINx

PINx (x adalah port AVR yang di gunakan, misalnya PIND, berarti yang di gunakan adalah port D).

Register ini berfungsi untuk membaca input dari pin port AVR. pembacaan kondisi inputan yang masuk ke pin-pin AVR hanya boleh di baca menggunakan register PINx, tidak boleh menggunakan register PORTx.

Contoh.

Membaca kondisi inputan yang terhubung ke PORT D dan hasilnya di kirim / di copy ke Port A, maka programnya adalah :

PORTA = PIND; // membaca kondisi inputan yang terhubung ke Port D dan hasilnya di kirim ke Port A.

TIDAK BOLEH DI TULIS

PORTA=PORTD ;

Contoh lengkap

Program berikut ini membaca kondisi inputan yang terhubung ke Port D dan hasilnya di kirim ke Port A. Artinya kondisi Port A sama dengan kondisi Port D.

#include<mega8535>

void main()

{

DDRD=0x00;  //Seluruh Port D di gunakan sebagai input

PORTD=0xff;  //Seluruh pin Port D di pull up

DDRA=0xff;  //Seluruh pin Port A di gunakan sebagai output

while(1) //infinite loop(program akan looping terus)

{

PORTA=PIND; // nilai pada port D di kirim / copy ke Port A.

}

}

Selamat di coba, semoga bermanfaat. tunggu artikel berikutnya tentang pemograman AVR.



Tags:

Comments  

 
0 #1 burberry scarves 2012-04-28 08:12
Most easily with all kinds of color Louis Vuitton bags: http://www.louvoutlotzw.com/ with blue clothes and Louis Vuitton handbags: http://www.louvoutlotzw.com/ with blue clothing, whether Louis Vuitton outlet: http://www.louvoutlotzw.com/ is similar to the black?Louis Vuitton online: http://www.louvoutlotzw.com/ are relatively easy to match,blue Replica Louis Vuitton: http://www.louvoutlotzw.com/ have a good crunch to close the bodyis mad burberry outlet: http://www.bubrloutlot.com choice.
Quote
 

Add comment


Security code
Refresh

 

Latest Comments

  • www.officialheatjerseyshop.com: http://www.officialheatjerseyshop.com, http://www.officialthunderjer...
  • handmade oil painting canvas oil painting wholesale oil painting
  • baidu sina: http://www.sina.com
 

Tentang Training & Jasa

  • mau tanya,,kaLau saya mnta konsuLtasi ttg program assembler,,coun ter. pakai sensor infraRed dan Pho...
  • biaya training berlaku untuk 1 orang saja. sedangkan peserta training untuk private minimal 2 orang....
  • oia trus yg basic private biaya berapa? itu mulai dari dasar juga?
 

Tanya Bimbingan TA

  • Mas. kalau dari luar jawa cara bimbingan TA-nya gimana ? pengerjaannya butuh berapa lama ? harganya berapa ?
You are here: