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
DDAn | PORTAn | I/O | Pull Up | Comment |
0 | 0 | input | No | Tri-state (Hi-Z) |
0 | 1 | input | Yes | PAn will source current if ext. puuled low |
1 | 0 | output | No | Push-Pull Zero Output |
1 | 1 | output | No | Push-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 Pin | Alternate Functions |
PB0 | T0 (Timer/Counter 0 external conuter input) |
PB1 | T1 (Timer/Counter 0 external conuter input) |
PB2 | AIN0 (Analog comparator positive input) |
PB3 | AIN1 (Analog comparator positive input) |
PB4 | SS (SPI Select input) |
PB5 | MOSI (SPI Bus Master Output/Slave) |
PB6 | MOS0 (SPI Bus Master Input/Slave) |
PB7 | SCK (SPI Bus Serial Clock) |
ตารางการใช้งาน พอร์ต B เป็น INPUT / OUTPUT
DDBn | PORTBn | I/O | Pull Up | Comment |
0 | 0 | input | No | Tri-state (Hi-Z) |
0 | 1 | input | Yes | PBn will source current if ext. puuled low |
1 | 0 | output | No | Push-Pull Zero Output |
1 | 1 | output | No | Push-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
DDCn | PORTCn | I/O | Pull Up | Comment |
0 | 0 | input | No | Tri-state (Hi-Z) |
0 | 1 | input | Yes | PCn will source current if ext. puuled low |
1 | 0 | output | No | Push-Pull Zero Output |
1 | 1 | output | No | Push-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 Pin | Alternate Functions |
PB0 | RDX (UART Input line) |
PB1 | TDX (UART Output line) |
PB2 | INT0 (External interrupt 0 input) |
PB3 | INT1 (External interrupt 1 input) |
PB4 | OC1B (Timer/Counter1 output compareB match output) |
PB5 | OC1A (Timer/Counter1 output compareA match output) |
PB6 | ICP (Timer/Counter1 input capture pin) |
PB7 | OC2 (Timer/Counter2 output compare match output) |
ตารางการใช้งาน พอร์ต D
DDDn | PORTDn | I/O | Pull Up | Comment |
0 | 0 | input | No | Tri-state (Hi-Z) |
0 | 1 | input | Yes | PCn will source current if ext. puuled low |
1 | 0 | output | No | Push-Pull Zero Output |
1 | 1 | output | No | Push-Pull One Output |