PORT INPUT/OUTPUT

พอร์ต A
           เป็นพอร์ต 2 ทิศทางขนาด 8 บิท โดยมีหน่วยควบคุมการทำงานต่าง ๆ ของพอร์ต คือ รีจิสเตอร์ PORT A ( DATA REGISTER ) 
อยู่ที่ตำแหน่ง $1B($3B) ,  รีจิสเตอร์ DDRA ( DATA DIRECTION REGISTER ) อยู่ที่ตำแหน่ง $1A( $3A ) และ PINA 
( PORT A INPUT PINS ) อยู่ที่ตำแหน่ง $19 ( $39 ) โดย   PTNA  จะสามารถอ่านได้อย่างเดียว ไม่สามารถเขียนข้อมูลลงได้ในขณะที่
PORT A และ DDRA สามารถเขียนและอ่านได้ และยังถูกนำไปใช้งานเป็นขสสัญญาณ INPUT ของวงจร ANALOG TO DIGITAL
การใช้งาน พอร์ต A เป็นขา INPUT / OUTPUT
           บิท  DDAn  ในรีจีสเตอร์  DDRA  จะเป็นบิทที่ใช้ในการกำหนดทิศทางของแต่ละพอร์ต ถ้าเป็นบิท DDAn ถูกเซ็ตเป็น 1 จะทำให้ขาของ
พอร์ตนั้นเป็น OUTPUT แต่เมื่อ DDAn เป็น 0 จะทำให้ขานั้นถูกกำหนดเป็น INPUT 
ตาราง DDAn Effects on PORTA Pins
DDAnPORTAnI/OPull UpComment
00inputNoTri-state (Hi-Z)
01inputYesPAn will source current if ext. puuled low
10outputNoPush-Pull Zero Output
11outputNoPush-Pull One Output (Hi-Z)
รูปแสดง โครงสร้างของ พอร์ต A
           
พอร์ต B
           เป็นพอร์ต 2 ทิศทางขนาด 8 บิท โดยมีรีจีสเตอร์ที่ใช้ควบคุมพอร์ต B  คือ รีจิสเตอร์ PORT B อยู่ที่ตำแหน่ง $18($38) , รีจิสเตอร์ DDRB
อยู่ที่ตำแหน่ง $17( $37 ) และ PINA ( PORT AINPUT PINS ) อยู่ที่ตำแหน่ง$16 ( $36 ) โดยที่  PORT A แต่ละขาสามารถกำหนด
Pull Up ได้ตามต้องการ โดยพอร์ต B สามารถใช้งานเป็นฟังกชั่นต่าง ๆดังตาราง 
ตาราง การใช้งานฟังกชั่นอื่น ๆ ของพอร์ต B
Port PinAlternate Functions
PB0T0 (Timer/Counter 0 external conuter input)
PB1T1 (Timer/Counter 0 external conuter input)
PB2AIN0 (Analog comparator positive input)
PB3AIN1 (Analog comparator positive input)
PB4SS (SPI Select input)
PB5MOSI (SPI Bus Master Output/Slave)
PB6MOS0 (SPI Bus Master Input/Slave)
PB7SCK (SPI Bus Serial Clock)
ตารางการใช้งาน พอร์ต B เป็น INPUT / OUTPUT
DDBnPORTBnI/OPull UpComment
00inputNoTri-state (Hi-Z)
01inputYesPBn will source current if ext. puuled low
10outputNoPush-Pull Zero Output
11outputNoPush-Pull One Output (Hi-Z)
พอร์ต C
           เป็นพอร์ต 2 ทิศทางขนาด 8 บิท โดยมีหนาวยควบคุมการทำงาน 3 หน่วย คือ PORT C ( Data Register - PORTC) อยู๋ที่ตำแหน่ง
หน่วยความจำ $15($35) ,DDRC อยู่ที่ตำแหน่งหน่วย $14($34) และ PINC อยู๋ที่ตำแหน่ง $13($33) โดย PINC จะสามารถอ่านได้อย่างเดียว
ขณะที่ PORT C และ DDRC จะสามารถอ่านและเขียนได้ในแต่ละขาของ PORT C สามารถแยกการกำหนดความต้านทาน Pull Up ได้ตามต้องการ
ในขณะที่พอร์ต C แต่ละขาสามารถรับกระแสได้ 20 mA  โดยถ้าภายในกำหนดให้มีความต้านทาน Pull Up และภายนอกมีความต้านทาน Pull Low
จะทำให้ MCU 1จ่ายกระแสออกภายนอก  
Port C As General Digital I/O
            ทั้ง 8 บิทของพอร์ต C จะมีลักษณะเหมือนกัน โดย PCn แทนขาตาง ๆ ๆของพอร์ต C และ DDCn เป็นบิทที่ใช้ควบคุมทิศทางของขานั้น ๆ
โดยถ้า DDCn มีการเซ็ทเป็น 1   แสดงว่าเป็นขา Output  แต่ถ้าขา DDCn เป็นการกำหนดให้เป็นขา Input  ถ้าต้องการให้ Mos Pull Up 
เกิดการ Active จะเคีลยให้ Port Cn เป็น 0  ดังค่าแสดงในตาราง     
ตารางการใช้งาน พอร์ต C
DDCnPORTCnI/OPull UpComment
00inputNoTri-state (Hi-Z)
01inputYesPCn will source current if ext. puuled low
10outputNoPush-Pull Zero Output
11outputNoPush-Pull One Output
ขาอื่น ๆ ของ Port C
            เมื่อบิท AS2 ในรีจีสเตอร์ ASSR ถูกเซ็ตให้เป็น 1 จะเป็นการกำหนดให้มีการรับ CLOCK จากภายนอกของ TIMER/CONTER2 ที่ตำแหน่งขา PC6,PC7     
Port D
            เป็น พรอ์ต 2 ทิศทางมีหน่วยควบคุมการทำงานของพอร์ตดังนี้ PORTD อยู่ที่ตำแหน่ง $12($32) , DDRD อยู๋ที่ตำแหน่ง $11($31) PIND อยู๋ที่ตำแหน่ง 
$10($30) โดยที่ PIND อ่านได้อย่างเดียว  PORTD และ DDRD สามารถอ่านและเขียน โดยพอร์ต D สามารถรับกระแสได้ 20 mA  ซึ่งแต่ละขาของพอร์ต D 
สามารถเลือกฟังก์ชั้นการทำงานอื่น ๆ ดังในตาราง
ตารางฟังกชั่นอื่น ๆ ของพอร์ต D
Port PinAlternate Functions
PB0RDX (UART Input line)
PB1TDX (UART Output line)
PB2INT0 (External interrupt 0 input)
PB3INT1 (External interrupt 1 input)
PB4OC1B (Timer/Counter1 output compareB match output)
PB5OC1A (Timer/Counter1 output compareA match output)
PB6ICP (Timer/Counter1 input capture pin)
PB7OC2 (Timer/Counter2 output compare match output)
ตารางการใช้งาน พอร์ต D
DDDnPORTDnI/OPull UpComment
00inputNoTri-state (Hi-Z)
01inputYesPCn will source current if ext. puuled low
10outputNoPush-Pull Zero Output
11outputNoPush-Pull One Output