As a result of this operation, bit 0 in PDR3 becomes 1, and P3
0
outputs a high-level signal.
However, bits 7 and 6 of PDR3 end up with different values.
To avoid this problem, store a copy of the PDR3 data in a work area in memory. Perform the bit
manipulation on the data in the work area, then write this data to PDR3.
[A: Prior to executing BSET]
The PDR3 value (H'80) is written to a work area in memory
(RAM0) as well as to PDR3.
P3
7
P3
6
P3
5
P3
4
P3
3
P3
2
P3
1
P3
0
Input/output
Input
Input
Output
Output
Output
Output
Output
Output
Pin
state
Low High Low Low Low Low Low Low
level
level level level level level level level
PCR3
0
0
1
1
1
1
1
1
PDR3
1
0
0
0
0
0
0
0
RAM0
1
0
0
0
0
0
0
0
[B: BSET instruction executed]
The BSET instruction is executed designating the PDR3
work area (RAM0).
[C: After executing BSET]
The work area (RAM0) value is written to PDR3.
P3
7
P3
6
P3
5
P3
4
P3
3
P3
2
P3
1
P3
0
Input/output
Input
Input
Output
Output
Output
Output
Output
Output
Pin
state
Low High Low Low Low Low Low High
level
level level level level level level level
PCR3
0
0
1
1
1
1
1
1
PDR3
1
0
0
0
0
0
0
1
RAM0
1
0
0
0
0
0
0
1
MOV. B @RAM0, R0L
MOV. B R0L, @PDR3
BSET #0 , @RAM0
MOV. B #80, R0L
MOV. B R0L, @RAM0
MOV. B R0L, @PDR3
57