English
Language : 

HD6433802H Datasheet, PDF (69/435 Pages) Hitachi Semiconductor – Single-Chip Microcomputer
Example 2: BSET instruction executed designating port 3
P37 and P36 are designated as input pins, with a low-level signal input at P37 and a high-level
signal at P36. The remaining pins, P35 to P31, are output pins and output low-level signals. In this
example, the BSET instruction is used to change pin P31 to high-level output.
[A: Prior to executing BSET]
P37
Input/output Input
P36
Input
P35
P34
P33
P32
P31
—
Output Output Output Output Output —
Pin state Low level High level Low level Low level Low level Low level Low level —
PCR3
0
0
1
1
1
1
1
1
PDR3
1
0
0
0
0
0
0
1
[B: BSET instruction executed]
BSET #1 , @PDR3
The BSET instruction is executed designating port 3.
[C: After executing BSET]
P37
Input/output Input
P36
Input
P35
P34
P33
P32
P31
—
Output Output Output Output Output —
Pin state Low level High level Low level Low level Low level Low level High level —
PCR3
0
0
1
1
1
1
1
1
PDR3
0
1
0
0
0
0
1
1
[D: Explanation of how BSET operates]
When the BSET instruction is executed, first the CPU reads port 3.
Since P37 and P36 are input pins, the CPU reads the pin states (low-level and high-level input).
P35 to P31 are output pins, so the CPU reads the value in PDR3. In this example PDR3 has a
value of H'81, but the value read by the CPU is H'41.
Next, the CPU sets bit 1 of the read data to 1, changing the PDR3 data to H'43. Finally, the CPU
writes this value (H'43) to PDR3, completing execution of BSET.
As a result of this operation, bit 1 in PDR3 becomes 1, and P31 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.
51