Philips Semiconductors
Preliminary specification
80C51 8-bit microcontroller
8K/256 OTP, 8 channel 10 bit A/D, I2C, PWM,
capture/compare, high I/O, low voltage (2.7V–5.5V), low power
P87C552
!********************************************************************************************************
!********************************************************************************************************
! MASTER RECEIVER STATE SERVICE ROUTINES
!********************************************************************************************************
!********************************************************************************************************
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
! STATE
!
: 40, Previous state was STATE 08 or STATE 10,
SLA+R have been transmitted, ACK received.
! ACTION : DATA will be received, ACK returned.
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
.sect
.base
mts40
0x140
0140
0143
75D8C5
mov S1CON,#ENS1_NOTSTA_NOTSTO_NOTSI_AA_CR0
! clr STA, STO, SI set AA
pop psw
reti
D0D0
32
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
! STATE : 48, SLA+R have been transmitted, NOT ACK received.
! ACTION : STOP condition will be generated.
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
.sect
.base
mts48
0x148
0148
75D8D5
STOP:
mov S1CON,#ENS1_NOTSTA_STO_NOTSI_AA_CR0
! set STO, clr SI
014B
014D
D0D0
32
pop psw
reti
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
! STATE : 50, DATA have been received, ACK returned.
! ACTION : Read DATA of S1DAT.
DATA will be received, if it is last DATA
then NOT ACK will be returned else ACK will be returned.
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
!
.sect
.base
mrs50
0x150
0150
0153
0155
75D018
A6DA
01C0
mov psw,#SELRB3
mov @r0,S1DAT
ajmp REC1
! Read received DATA
.sect
.base
mrs50s
0xc0
00C0
00C3
D55205
75D8C1
REC1:
djnz NUMBYTMST,NOTLDAT2
mov S1CON,#ENS1_NOTSTA_NOTSTO_NOTSI_NOTAA_CR0
! clr SI,AA
00C6
00C8
8003
75D8C5
sjmp RETmr
NOTLDAT2:
RETmr:
mov S1CON,#ENS1_NOTSTA_NOTSTO_NOTSI_AA_CR0
! clr SI, set AA
00CB
08
inc
r0
00CC D0D0
pop psw
reti
00CE
32
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
! STATE : 58, DATA have been received, NOT ACK returned.
! ACTION : Read DATA of S1DAT and generate a STOP condition.
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
.sect
.base
mrs58
0x158
0158
015B
015D
75D018
A6DA
80E9
mov psw,#SELRB3
mov @R0,S1DAT
sjmp STOP
56
1999 Mar 30