Rev. 1.00
22
March 24, 2020
Rev. 1.00
23
March 24, 2020
BS83A04C
4-Key Enhanced Touch I/O Flash MCU
BS83A04C
4-Key Enhanced Touch I/O Flash MCU
Bank Pointer – BP
For this device, the Data Memory is divided into several banks. Selecting the required Data Memory
area is achieved using the Bank Pointer.
The Data Memory is initialised to Bank 0 after a reset, except for a WDT time-out reset in the
SLEEP or IDLE Mode, in which case, the Data Memory bank remains unaffected. Directly
addressing the Data Memory will always result in Bank 0 being accessed irrespective of the value of
the Bank Pointer. Accessing data from banks other than Bank 0 must be implemented using Indirect
Addressing.
• BP Register
Bit
7
6
5
4
3
2
1
0
Name
—
—
—
—
—
DMBP2
DMBP1
DMBP0
R/W
—
—
—
—
—
R/W
R/W
R/W
POR
—
—
—
—
—
0
0
0
Bit 7~3
Unimplemented, read as “0”
Bit 2~0
DMBP2~DMBP0
: Select Data Memory Banks
000: Bank 0
001~100: Unimplemented
101: Bank 5
110: Bank 6
111: Bank 7
Accumulator – ACC
The Accumulator is central to the operation of any microcontroller and is closely related with
operations carried out by the ALU. The Accumulator is the place where all intermediate results
from the ALU are stored. Without the Accumulator it would be necessary to write the result of
each calculation or logical operation such as addition, subtraction, shift, etc., to the Data Memory
resulting in higher programming and timing overheads. Data transfer operations usually involve
the temporary storage function of the Accumulator; for example, when transferring data between
one user-defined register and another, it is necessary to do this by passing the data through the
Accumulator as no direct transfer between two registers is permitted.
Program Counter Low Register – PCL
To provide additional program control functions, the low byte of the Program Counter is made
accessible to programmers by locating it within the Special Purpose area of the Data Memory. By
manipulating this register, direct jumps to other program locations are easily implemented. Loading
a value directly into this PCL register will cause a jump to the specified Program Memory location,
however, as the register is only 8-bit wide, only jumps within the current Program Memory page are
permitted. When such operations are used, note that a dummy cycle will be inserted.
Look-up Table Registers – TBLP, TBHP, TBLH
These three special function registers are used to control operation of the look-up table which is
stored in the Program Memory. TBLP and TBHP are the table pointers and indicate the location
where the table data is located. Their value must be setup before any table read commands are
executed. Their value can be changed, for example using the “INC” or “DEC” instructions, allowing
for easy table data pointing and reading. TBLH is the location where the high order byte of the table
data is stored after a table read data instruction has been executed. Note that the lower order table
data byte is transferred to a user defined location.