Tutorial menyalakan 2 PORT sekaligus, misalnya membuat program sederhana untuk menyalakan LED pada PORTC dan PORTA secara bersamaan seperti pada gambar dibawah:
1. rangkaian

catatan: rangkaian tidak digambarkan semua. seperti kaki VCC dan Ground pada IC mikrokontroler ATMega16 tidak digambarkan.
2. kode program
#include <io.h>
#include <delay.h>
void main(void)
{
PORTA=0xFF;
DDRA=0xFF;
PORTC=0xFF;
DDRC=0xFF;
while (1)
{
PORTA=0x00;
PORTC=0x00;
delay_ms(300);
PORTA=0x80;
PORTC=0x01;
delay_ms(300);
PORTA=0x40;
PORTC=0x02;
delay_ms(300);
PORTA=0x20;
PORTC=0x04;
delay_ms(300);
PORTA=0x10;
PORTC=0x08;
delay_ms(300);
PORTA=0x08;
PORTC=0x10;
delay_ms(300);
PORTA=0x04;
PORTC=0x20;
delay_ms(300);
PORTA=0x02;
PORTC=0x40;
delay_ms(300);
PORTA=0x01;
PORTC=0x80;
delay_ms(300);
}
}
3. pembahasan
PORTA=0xFF; DDRA=0xFF; PORTC=0xFF; DDRC=0xFF;
PORTA dan PORTC digunakan sebagai output untuk menyalakan LED. Sehingga DDRA dan DDRC diberi bilangan hexsa 0xFF.

PORTA=0x00;
PORTC=0x00;
delay_ms(300);
Pertama LED pada PORTA & C mati semua maka dari itu PORTA & PORTC diberi bilangan hexsa 0x00; kemudian disusul perintah delay selama 0,3 detik.

PORTA=0x80;
PORTC=0x01;
delay_ms(300);
Selanjutnya PORTC LED pada PORTC paling kanan pada PORTC.0 maka PORTC diberi data biner 0x00000001 bila dikonfersi ke hexsa = 0x01. sedangkan PORTA sama nyala LED berada disebelah kanan, tapi bila diperhatikan LED yang menyala pada PORTA adalah PORTA.7 bukan PORTA.0 . Jadi nyala LED PORTA sebenarnya kebalikan PORTC, maka dari itu PORTA diberi data biner 0b10000000 dikonfersi ke hexsa = 0x80.
Untuk kode program pada baris 20 dan seterusnya silakan mencoba diartikan secara mandiri.
