PORTB = 0xFF; //กำหนดให้ PORTB มีค่าเป็น 1 ทั้งหมด
PORTB = 0x00; //กำหนดให้ PORTB มีค่าเป็น 0 ทั้งหมด
วิธีการนี้ก็ง่ายๆ ตรงไปตรงมาดี แต่บางครั้งการเขียนโปรแกรมเราไม่สนใจว่าขณะนั้น PORTx มีค่าเป็นอะไร แต่เราต้องการสลับค่าภายใน จึงเปลี่ยนไปใช้คำสั่งระดับบิตในการสลับจะง่ายกว่า เช่น
PORTB = ~PORTB
คำสั่งนี้จะสั่งให้โปรแกรมสลับค่าใน PORTB จากเดิมที่เป็นให้เป็นตรงกันข้าม ถ้าเดิมเป็น 1 ให้กลับเป็น 0 ถ้าเดิมเป็น 0 ก็ให้เป็น 1 ซึ่งวิธีนี้จะง่ายและเหมาะสำหรับการกลับค่าที่ไม่เหมือนกันทั้งหมด เช่น
...
PORTB = 0b10101010;
while(1){
PORTB = ~PORTB;
}
...
คำสั่งสองสามบรรทัดข้างบนนี้จะทำให้ PORTB มีค่าระหว่าง 0b10101010 กับ 0b01010101 นั่นเอง
![]() |
ตัวอย่างการสลับค่า I/O |