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.