PSW (Program Status Word) คือหนึ่งใน Special Function Register (SFR) ที่สำคัญที่สุดของ MCS-51 ครับ มันทำหน้าที่เป็น Flag เพื่อบอกสถานะการคำนวณของ CPU และใช้สำหรับเลือกชุดของ Register (Bank Select)
PSW เป็น Register ขนาด 8 บิต ที่สามารถเข้าถึงได้แบบระดับบิต Bit-Addressable โดยแต่ละบิตมีความหมายดังนี้ :
1. การเลือก Register Bank (RS1, RS0)
MCS-51 มี RAM ภายในที่แบ่งเป็น Register Bank 4 ชุด (Bank 0-3) ซึ่งแต่ละชุดจะมี R0-R7 ของตัวเอง เราเปลี่ยนการใช้งานได้ผ่านสองบิตนี้ครับ:
11: Bank 3 (Address 18H-1FH)
00: Bank 0 (Address 00H-07H) -> ค่า Default หลัง Reset
01: Bank 1 (Address 08H-0FH)
10: Bank 2 (Address 10H-17H)
2. Carry Flag (CY)
บิตนี้สำคัญมาก เพราะนอกจากจะใช้บอกตัวทดแล้ว ใน MCS-51 บิตนี้ยังทำหน้าที่เป็น “Boolean Accumulator” หรือตัวแปรหลักสำหรับการคำนวณทางตรรกะระดับบิต (เช่น คำสั่ง ANL C, bit)
3. Parity Flag (P)
บิตนี้จะเปลี่ยนแปลงอัตโนมัติทุกครั้งที่มีการประมวลผลใน Accumulator (A) เพื่อเช็คว่ามีเลข “1” ใน A เป็นจำนวนคู่หรือคี่ มักใช้ในการตรวจสอบความถูกต้องของการส่งข้อมูลผ่าน Serial Port (UART)

