Mikrokontroler AVR
Atmega 16
Port I/O Atmega 16
Contoh:
DDRC = 0xFF; //port C dikonfigurasikan sebagai output
yaitu PC0 – PC7
DDRD = 0x00; //port D dikonfigurasikan sebagai input
yaitu PD0 – PD7
Setiap pin I/O mikrokontroler AVR memiliki internal pull
up. Misalnya port B dikonigurasikan sebagai input dan
internal pull up nya diaktifkan, maka DDRB = 0x00 dan
PORTB = 0xFF.
Contoh:
DDRB = 0x00; // port B dikonfigurasikan sebagai input
yaitu PB0 – PB7
PORTB = 0XFF; //internal pull up aktif
Untuk membaca data pada salah satu port, dapat
digunakan fungsi PINx, sedangkan untuk membaca data
per pin pada suatu port dapat digunakan fungsi PINx.bit
Contoh:
PORTC = PIND; //semua data yang dibaca dari
portD dikeluarkan pada port C
PORTD.0 = PINC.1 ; // data yang dibaca dari port
C1 dikeluarkan pada port D0
Tegangan keluaran pada pin I/O mikrokontroler ketika
berlogika ‘1’ besarnya sekitar 4,2 V dan arusnya sebesar
20 mA. Port I/O sebagai output hanya memberikan arus
(sourcing) sebesar 20 mA, keluaran dari suatu port
mikrokontroler hanya dapat mengemudikan perangkat
output dengan arus yang kecil, sehingga untk peralatan
elektronika dengan arus yang besar perlu diberikan
penguat tambahan, oleh karena itu biasanya
dipergunakan penguat lagi berupa transistor atau IC
penguat