8-bit microcontrollers with two-clock 80C51 core
4 kB/8 kB 3 V Flash with 256-byte data RAM
Rev. 05 — 15 December 2004Product data
1.General description
The P89LPC930/931 are single-chip microcontrollers designed for applications
demanding high-integration, low cost solutions over a wide range of performance
requirements. The P89LPC930/931 is based on a high performance processor
architecture that executes instructions in two to four clocks, six times the rate of
standard 80C51 devices. Many system-level functions have been incorporated into
the P89LPC930/931 in order to reduce component count, board space, and system
cost.
2.Features
■ A high performance 80C51 CPU provides instruction cycle times of 111 ns to
222 ns for all instructions except multiply and divide when executing at 18 MHz.
This is 6 times the performance of the standard 80C51 running at the same clock
frequency. A lower clock frequency for the same performance results in power
savings and reduced EMI.
■ 2.4 V to 3.6 V VDDoperating range. I/O pins are 5 V tolerant (may be pulled up or
driven to 5.5 V).
■ 4 kB/8 kB Flash code memory with 1 kB sectors, and 64-byte page size.
■ Byte-erase allowing code memory to be used for data storage.
■ Flash program operation completes in 2 ms.
■ Flash erase operation completes in 2 ms.
■ 256-byte RAM data memory.
■ Two 16-bit counter/timers. Each timer may be configured to toggle a port output
upon timer overflow or to become a PWM output.
■ Real-Time clock that can also be used as a system timer.
■ Two analog comparators with selectable inputs and reference source.
detection, automatic address detection and versatile interrupt capabilities.
■ 400 kHz byte-wide I2C-bus communication port.
■ SPI communication port.
■ Eight keypad interrupt inputs, plus two additional external interrupt inputs.
■ Four interrupt priority levels.
■ Watchdog timer with separate on-chip oscillator, requiring no external
components. The Watchdog time-out time is selectable from 8 values.
■ Active-LOWreset. On-chip power-on reset allows operation without external reset
components. A reset counter and reset glitch suppression circuitry prevent
spurious and incomplete resets. A software reset function is also available.
Philips Semiconductors
■ Low voltage reset (Brownout detect) allows a graceful system shutdown when
■ Oscillator Fail Detect. The watchdog timer has a separate fully on-chip oscillator
■ Configurable on-chip oscillator with frequency range and RC oscillator options
■ Programmable port output configuration options:
■ Port ‘input pattern match’ detect. Port 0 may generate an interrupt when the value
■ Second data pointer.
■ Schmitt trigger port inputs.
■ LED drive capability (20 mA) on all port pins. Maximum combined I/O current of
■ Controlled slew rate port outputs to reduce EMI. Outputs have approximately
■ 23 I/O pins minimum (28-pin package). Up to 26 I/O pins while using on-chip
■ Only power and ground connections are required to operate the P89LPC930/931
■ Serial Flash programming allows in-circuit production coding. Flash security bits
■In-Application Programming of the Flash code memory. This allows changing the
■ Idle and two different Power-down reduced power modes. Improvedwake-upfrom
■ 28-pin TSSOP package.
■ Emulation support.
P89LPC930/931
8-bit microcontrollers with two-clock 80C51 core
power fails. May optionally be configured as an interrupt.
allowing it to perform an oscillator fail detect function.
(selected by user programmed Flash configuration bits). The RC oscillator (factory
calibrated to ±1 %) option allows operation without external oscillator
components. Oscillator options support frequencies from 20 kHz to the maximum
operating frequency of 18 MHz. The RC oscillator option is selectable and fine
tunable.
◆ Quasi-bidirectional
◆ Open drain
◆ Push-pull
◆ Input-only
of the pins match or do not match a programmable pattern.
100 mA.
10 ns minimum ramp times.
oscillator and reset options.
using on-chip oscillator and on-chip reset options.
prevent reading of sensitive programs.
code in a running application.
Power-down mode (a low interrupt input starts execution). Typical Power-down
current is 1 µA (total Power-down with voltage comparators disabled).
I/OPort 0: Port 0 is an 8-bit I/O port with a user-configurable output type. During reset
Port 0 latches are configured in the input only mode with the internal pull-up disabled.
The operation of Port 0 pins as inputs and outputs depends upon the port
configuration selected. Each port pin is configured independently. Refer to Section
8.11.1 “Port configurations” and Table 7 “DC electrical characteristics” for details.
The Keypad Interrupt feature operates with Port 0 pins.
All pins have Schmitt triggered inputs.
Port 0 also provides various special functions as described below:
Port 1: Port 1 is an 8-bit I/O port with a user-configurable output type, except for
three pins as noted below. During reset Port 1 latches are configured in the input only
mode with the internal pull-up disabled. The operation of the configurable Port 1 pins
as inputs and outputs depends upon the port configuration selected. Each of the
configurable port pins are programmed independently. Refer to Section 8.11.1 “Port
configurations” and Table 7 “DC electrical characteristics” for details. P1.2 - P1.3 are
open drain when used as outputs. P1.5 is input only.
All pins have Schmitt triggered inputs.
Port 1 also provides various special functions as described below:
18I/OP1.0 — Port 1 bit 0.
OTxD — Transmitter output for the serial port.
17I/OP1.1 — Port 1 bit 1.
IRXD — Receiver input for the serial port.
12I/OP1.2 — Port 1 bit 2 (open-drain when used as output).
I/OT0 — Timer/counter 0 external count input or overflowoutput(open-drain when used
as output).
I/OSCL — I
2
11IP1.3 — Port 1 bit 3 (open-drain when used as output).
I
I/OSDA — I
INT0 — External interrupt 0 input.
2
10IP1.4 — Port 1 bit 4.
I
INT1 — External interrupt 1 input.
6IP1.5 — Port 1 bit 5 (input only).
I
RST — External Reset input during Power-on or if selected via UCFG1. When
functioning as a reset input a LOW on this pin resets the microcontroller, causing I/O
ports and peripherals to take on their default states, and the processor begins
execution at address 0. Also used during a power-on sequence to force In-System
Programming mode. When using an oscillator frequency above 12 MHz, the
reset input function of P1.5 must be enabled. An external circuit is required to
hold the device in reset at power-up until V
When system power is removed V
operating voltage. When using an oscillator frequency above 12 MHz, in some
applications, an external brownout detect circuit may be required to hold the
device in reset when V
5I/OP1.6 — Port 1 bit 6.
4I/OP1.7 — Port 1 bit 7.
C serial clock input/output.
C serial data input/output.
falls below the minimum specified operating voltage.
1I/OP2.0 — Port 2 bit 0.
2I/OP2.1 — Port 2 bit 1.
13I/OP2.2 — Port 2 bit 2.
14I/OP2.3 — Port 2 bit 3.
15I/OP2.4 — Port 2 bit 4.
16I/OP2.5 — Port 2 bit 5.
27I/OP2.6 — Port 2 bit 6.
28I/OP2.7 — Port 2 bit 7.
…continued
I/OPort 2: Port 2 is a 8-bit I/O port with a user-configurable output type. During reset
Port 2 latches are configured in the input only mode with the internal pull-up disabled.
The operation of port 2 pins as inputs and outputs depends upon the port
configuration selected. Each port pin is configured independently. Refer to the
section on I/O port configuration and the DC Electrical Characteristics for details.
This port is not available in 20-pin package and is configured automatically as
outputs to conserve power. The alternate functions for these pins must not be
enabled.
All pins have Schmitt triggered inputs.
Port 2 also provides various special functions as described below.
I/OMOSI — SPI master out slave in. When configured as master, this pin is output,
when configured as slave, this pin is input.
I/OMISO — SPI master in slave out. When configured as master, this pin is input, when
configured as slave, this pin is output.
I
I/OSPICLK — SPI clock. When configured as master, this pin is output, when
P3.0 - P3.19, 8I/OPort 3: Port 3 is an 2-bit I/O port with a user-configurable output type. During reset
Port 3 latches are configured in the input only mode with the internal pull-up disabled.
The operation of Port 3 pins as inputs and outputs depends upon the port
configuration selected. Each port pin is configured independently. Refer to Section
8.11.1 “Port configurations” and Table 7 “DC electrical characteristics” for details.
All pins have Schmitt triggered inputs.
Port 3 also provides various special functions as described below:
9I/OP3.0 — Port 3 bit 0.
OXTAL2 — Output from the oscillator amplifier (when a crystal oscillator option is
selected via the FLASH configuration).
OCLKOUT — CPU clock divided by 2 when enabled via SFR bit (ENCLK - TRIM.6). It
can be used if the CPU clock is the internal RC oscillator, Watchdog oscillator or
external clock input, except when XTAL1/XTAL2 are used to generate clock source
for the real time clock/system timer.
8I/OP3.1 — Port 3 bit 1.
IXTAL1 — Input to the oscillator circuit and internal clock generator circuits (when
selected via the FLASH configuration). It can be a port pin if internal RC oscillator or
Watchdog oscillator is used as the CPU clock source,and if XTAL1/XTAL2 are not
used to generate the clock for the real time clock/system timer.
V
SS
V
DD
7IGround: 0 V reference.
21IPower Supply: This is the power supply voltage for normal operation as well as Idle
and Power Down modes.
[1] Input/Output for P1.0-P1.4, P1.6, P1.7. Input for P1.5.
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
9397 750 14472
Product dataRev. 05 — 15 December 200412 of 55
Table 4:Special function registers
* indicates SFRs that are bit addressable.
NameDescriptionSFR
ACC*AccumulatorE0H0000000000
AUXR1Auxiliary function registerA2HCLKLPEBRRENT1ENT0SRST0-DPS00
B*B registerF0H0000000000
BRGR0
BRGR1
BRGCONBaud rate generator controlBDH------SBRGSBRGEN00
CMP1Comparator 1 control registerACH--CE1CP1CN1OE1CO1CMF100
CMP2Comparator 2 control registerADH--CE2CP2CN2OE2CO2CMF200
DIVMCPU clock divide-by-M
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
C status registerD9HSTA.4STA.3STA.2STA.1STA.0000F811111000
Bit addressAFAEADACABAAA9A8
Bit addressEFEEEDECEBEAE9E8
Bit addressBFBEBDBCBBBAB9B8
Bit addressFFFEFDFCFBFAF9F8
86H0000000000
register
Bit address8786858483828180
Bit address9796959493929190
Bit addressA7A6A5A4A3A2A1A0
Bit addressB7B6B5B4B3B2B1B0
MSBLSBHexBinary
[1]
[1]
PT1HPX1HPT0HPX0H00
[1]
PSRH
[1]
[1]
KBIF00
[1]
_SEL
/KB6
CMPREF
/KB5
RSTINT1INT0/
CIN1A
/KB4
CIN1B
/KB3
CIN2A
/KB2
CIN2B
/KB1
CMP2
/KB0
T0/SCLRXDTXD
SDA
00x00000
x0000000
x0000000
00x00000
00x00000
xxxxxx00
[1]
[1]
[1]
[1]
Philips Semiconductors
8-bit microcontrollers with two-clock 80C51 core
P89LPC930/931
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
SCON*Serial port control98HSM0/FESM1SM2RENTB8RB8TIRI0000000000
SSTATSerial port extended status
SPStack pointer81H0700000111
SPCTLSPI Control RegisterE2HSSIGSPENDORDMSTRCPOLCPHASPR1SPR00400000100
SPSTATSPI Status RegisterE1HSPIFWCOL------0000xxxxxx
SPDATSPI Data RegisterE3H0000000000
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx
xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
9397 750 14472
Product dataRev. 05 — 15 December 200415 of 55
Table 4:Special function registers
* indicates SFRs that are bit addressable.
NameDescriptionSFR
TAMODTimer 0 and 1 auxiliary mode8FH---T1M2---T0M200xxx0xxx0
TCON*Timer 0 and 1 control88HTF1TR1TF0TR0IE1IT1IE0IT00000000000
TH0Timer 0 HIGH8CH0000000000
TH1Timer 1 HIGH8DH0000000000
TL0Timer 0 LOW8AH0000000000
TL1Timer 1 LOW8BH0000000000
TMODTimer 0 and 1 mode89HT1GATET1C/TT1M1T1M0T0GATET0C/TT0M1T0M00000000000
TRIMInternal oscillator trim register96H-ENCLKTRIM.5TRIM.4TRIM.3TRIM.2TRIM.1TRIM.0
WDCONWatchdog control registerA7HPRE2PRE1PRE0--WDRUNWDTOFWDCLK
WDLWatchdog loadC1HFF11111111
WFEED1Watchdog feed 1C2H
WFEED2Watchdog feed 2C3H
[1] All ports are in input only (high impedance) state after power-up.
[2] BRGR1 and BRGR0 must only be written if BRGEN in BRGCON SFR is ‘0’. If any are written while BRGEN = 1, the result is unpredictable.
Unimplemented bits in SFRs (labeled ’-’) are X (unknown) at all times. Unless otherwise specified, ones should not be written to these bits since they may be used for other
purposes in future derivatives. The reset values shown for these bits are ’0’s although they are unknown when read.
[3] The RSTSRC register reflects the cause of the P89LPC930/931 reset. Upon a power-up reset, all reset source flags are cleared except POF and BOF; the power-on reset value is
xx110000.
[4] After reset, the value is 111001x1, i.e., PRE2-PRE0 are all ‘1’, WDRUN = 1 and WDCLK = 1. WDTOF bit is ‘1’ after Watchdogresetandis‘0’afterpower-onreset. Other resets will
not affect WDTOF.
[5] On power-on reset, the TRIM SFR is initialized with a factory preprogrammed value. Other resets will not cause initialization of the TRIM register.
[6] The only reset source that affects these SFRs is power-on reset.
8-bit microcontrollers with two-clock 80C51 core
P89LPC930/931
Philips Semiconductors
8.Functional description
P89LPC930/931
8-bit microcontrollers with two-clock 80C51 core
Remark: Please refer to the
functional description.
8.1Enhanced CPU
The P89LPC930/931 uses an enhanced 80C51 CPU which runs at 6 times the speed
of standard 80C51 devices. A machine cycle consists of two CPU clock cycles, and
most instructions execute in one or two machine cycles.
8.2Clocks
8.2.1Clock definitions
The P89LPC930/931 device has several internal clocks as defined below:
OSCCLK — Input to the DIVM clock divider. OSCCLK is selected from one of four
clock sources (see Figure 4) and can also be optionally divided to a slower frequency
(see Section 8.7 “CPU CLOCK (CCLK) modification: DIVM register”).
Note: f
CCLK — CPU clock; output of the clock divider. There are two CCLK cycles per
machine cycle, and most instructions are executed in one to two machine cycles (two
or four CCLK cycles).
RCCLK — The internal 7.373 MHz RC oscillator output.
PCLK — Clock for the various peripheral devices and is CCLK/2
is defined as the OSCCLK frequency.
osc
P89LPC930/931 User’s Manual
for a more detailed
8.2.2CPU clock (OSCCLK)
The P89LPC930/931 providesseveraluser-selectableoscillator options in generating
the CPU clock. This allows optimization for a range of needs from high precision to
lowest possible cost. These options are configured when the FLASH is programmed
and include an on-chip Watchdog oscillator, an on-chip RC oscillator, an oscillator
using an external crystal, or an external clock source. The crystal oscillator can be
optimized for low, medium, or high frequency crystals covering a range from 20 kHz
to 12 MHz.
8.2.3Low speed oscillator option
This option supports an external crystal in the range of 20 kHz to 100 kHz. Ceramic
resonators are also supported in this configuration.
8.2.4Medium speed oscillator option
This option supports an external crystal in the range of 100 kHz to 4 MHz. Ceramic
resonators are also supported in this configuration.
8.2.5High speed oscillator option
This option supports an external crystal in the range of 4 MHz to 18 MHz. Ceramic
resonators are also supported in this configuration. When using an oscillator
frequency above 12 MHz, the reset input function of P1.5 must be enabled. An
external circuit is required to hold the device in reset at power-up until VDDhas
reached its specified level. When system power is removed VDD will fall below
the minimum specified operating voltage. When using an oscillator frequency
above 12 MHz, in some applications, an external brownout detect circuit may
be required to hold the device in reset when VDD falls below the minimum
specified operating voltage.
8.2.6Clock output
The P89LPC930/931 supports a user-selectable clock output function on the
XTAL2/CLKOUTpin when crystal oscillator is not being used. This condition occurs if
another clock source has been selected (on-chip RC oscillator, Watchdog oscillator,
external clock input on X1) and if the Real-Time clock is not using the crystal
oscillator as its clock source. This allows external devices to synchronize to the
P89LPC930/931. This output is enabled by the ENCLK bit in the TRIM register. The
frequency of this clock output is1⁄2that of the CCLK. If the clock output is not needed
in Idle mode, it may be turned off prior to entering Idle, saving additional power.
8.3On-chip RC oscillator option
The P89LPC930/931 has a 6-bit TRIM register that can be used to tune the
frequency of the RC oscillator. During reset, the TRIM value is initialized to a factory
pre-programmed value to adjust the oscillator frequency to 7.373 MHz, ±1% at room
temperature. End-user applications can write to the Trim register to adjust the on-chip
RC oscillator to other frequencies.
P89LPC930/931
8-bit microcontrollers with two-clock 80C51 core
8.4Watchdog oscillator option
The watchdog has a separate oscillator which has a frequency of 400 kHz. This
oscillator can be used to save power when a high clock frequency is not needed.
8.5External clock input option
In this configuration, the processor clock is derived from an external source driving
the XTAL1/P3.1 pin. The rate may be from 0 Hz up to 18 MHz. The XTAL2/P3.0 pin
may be used as a standard port pin or a clock output. When using an oscillator
frequency above 12 MHz, the reset input function of P1.5 must be enabled. An
external circuit is required to hold the device in reset at power-up until VDDhas
reached its specified level. When system power is removed VDD will fall below
the minimum specified operating voltage. When using an oscillator frequency
above 12 MHz, in some applications, an external brownout detect circuit may
be required to hold the device in reset when VDD falls below the minimum
specified operating voltage.