|ARM Technical Support Knowledge Articles|
Applies to: C51 C Compiler
Information in this article applies to:
How I can read the latch for an I/O port instead of reading the pins (from C)?
There is no way to read the latch value of an 8051 I/O port. However, there are instructions that allow you to read, modify, and write back the new value to the port latch. Basically, the ANL, ORL, and XRL instructions support this READ-MODIFY-WRITE feature.
If you must have access to the port latch you can create a shadow variable that contains the latch value. For example:
sfr P1 = 0x90; unsigned char P1_shadow = 0xFF; // same reset as P1 . . . P1 &= 0xF0; P1_shadow &= 0xF0; . . . P1 |= 0x03; P1_shadow |= 0x03;
Then, when you need to know how the latch is set you can read the P1_shadow variable.
Article last edited on: 2005-09-22 11:34:32
Did you find this article helpful? Yes No
How can we improve this article?