P87C554 NXP Semiconductors, P87C554 Datasheet - Page 51

The P87C554 Single-Chip 8-Bit Microcontroller is manufactured inan advanced CMOS process and is a derivative of the 80C51microcontroller family

P87C554

Manufacturer Part Number
P87C554
Description
The P87C554 Single-Chip 8-Bit Microcontroller is manufactured inan advanced CMOS process and is a derivative of the 80C51microcontroller family
Manufacturer
NXP Semiconductors
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Company:
Part Number:
P87C554SBAA
Quantity:
160
Part Number:
P87C554SBAA,512
Manufacturer:
NXP Semiconductors
Quantity:
10 000
Part Number:
P87C554SBAAЈ¬512
Manufacturer:
NXP
Quantity:
188
Part Number:
P87C554SBBD
Manufacturer:
TQS
Quantity:
1
Part Number:
P87C554SFAA
Manufacturer:
FSC
Quantity:
3 000
Part Number:
P87C554SFAA,512
Manufacturer:
Maxim
Quantity:
145
Part Number:
P87C554SFAA,512
Manufacturer:
NXP Semiconductors
Quantity:
10 000
Part Number:
P87C554SFAAЈ¬512
Manufacturer:
PH3
Quantity:
468
Company:
Part Number:
P87C554SFBD
Quantity:
542
Part Number:
P87C554X2
Manufacturer:
PHI
Quantity:
20 000
Company:
Part Number:
P87C554X2
Quantity:
108
Philips Semiconductors
Software Examples of SIO1 Service Routines: This section
consists of a software example for:
– Initialization of SIO1 after a RESET
– Entering the SIO1 interrupt routine
– The 26 state service routines for the
I
In the initialization routine, SIO1 is enabled for both master and
slave modes. For each mode, a number of bytes of internal data
RAM are allocated to the SIO to act as either a transmission or
reception buffer. In this example, 8 bytes of internal data RAM are
reserved for different purposes. The data memory map is shown in
Figure 47. The initialization routine performs the following functions:
– S1ADR is loaded with the part’s own slave address and the
– P1.6 and P1.7 bit latches are loaded with logic 1s
– RAM location HADD is loaded with the high-order address byte of
– The SIO1 interrupt enable and interrupt priority bits are set
– The slave mode is enabled by simultaneously setting the ENS1
The SIO1 hardware now begins checking the I
slave address and general call. If the general call or the own slave
address is detected, an interrupt is requested and S1STA is loaded
with the appropriate state information. The following text describes a
fast method of branching to the appropriate service routine.
2002 Mar 25
NITIALIZATION
general call bit (GC)
the service routines
and AA bits in S1CON and the serial clock frequency (for master
modes) is defined by loading CR0 and CR1 in S1CON. The
master routines must be started in the main program.
80C51 8-bit microcontroller – 12 clock operation
16K/512 OTP/RAM, 8 channel 10-bit A/D, I
capture/compare, high I/O
– Master transmitter mode
– Master receiver mode
– Slave receiver mode
– Slave transmitter mode
(1) Unsuccessful attempt to send a Start condition
(2) SDA line released
(3) Successful attempt to send a Start condition; state 08H is entered
STA FLAG
SDA LINE
SCL LINE
Figure 46. Recovering from a Bus Obstruction Caused by a Low Level on SDA
(1)
2
C bus for its own
2
(1)
C, PWM,
49
The state service routines are located in a 256-byte page of program
SIO
When the SIO1 interrupt is entered, the PSW is first pushed on the
stack. Then S1STA and HADD (loaded with the high-order address
byte of the 26 service routines by the initialization routine) are
pushed on to the stack. S1STA contains a status code which is the
lower byte of one of the 26 service routines. The next instruction is
RET, which is the return from subroutine instruction. When this
instruction is executed, the high and low order address bytes are
popped from stack and loaded into the program counter.
The next instruction to be executed is the first instruction of the state
service routine. Seven bytes of program code (which execute in
eight machine cycles) are required to branch to one of the 26 state
service routines.
SI
memory. The location of this page is defined in the initialization
routine. The page can be located anywhere in program memory by
loading data RAM register HADD with the page number. Page 01 is
chosen in this example, and the service routines are located
between addresses 0100H and 01FFH.
T
The state service routines are located 8 bytes from each other. Eight
bytes of code are sufficient for most of the service routines. A few of
the routines require more than 8 bytes and have to jump to other
locations to obtain more bytes of code. Each state routine is part of
the SIO1 interrupt routine and handles one of the 26 states. It ends
with a RETI instruction which causes a return to the main program.
HE
1
S
I
TATE
NTERRUPT
PUSH PSW
PUSH S1STA
PUSH HADD
RET
S
(2)
ERVICE
START CONDITION
R
OUTINE
R
OUTINES
(3)
Save PSW
Push status code
(low order address byte)
Push high order address byte
Jump to state service routine
SU00977
P87C554
Product data

Related parts for P87C554