Philips Semiconductors
Preliminary specification
80C554/83C554/87C554
80C51 8-bit microcontroller – 6 clock operation
16K/512 OTP/ROM/ROMless, 7 channel 10 bit A/D, I
2
C, PWM,
capture/compare, high I/O, 64L LQFP
2000 Nov 10
57
!********************************************************************************************************
!********************************************************************************************************
! 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
mts40
.base
0x140
0140
75D8C5
mov
S1CON,#ENS1_NOTSTA_NOTSTO_NOTSI_AA_CR0
! clr STA, STO, SI set AA
0143
D0D0
32
pop
reti
psw
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
! STATE
: 48, SLA+R have been transmitted, NOT ACK received.
! ACTION
: STOP condition will be generated.
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
.sect
mts48
.base
0x148
0148
75D8D5
STOP:
mov
S1CON,#ENS1_NOTSTA_STO_NOTSI_AA_CR0
! set STO, clr SI
014B
014D
D0D0
32
pop
reti
psw
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
! 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
mrs50
.base
0x150
0150
0153
0155
75D018
A6DA
01C0
mov
mov
ajmp REC1
psw,#SELRB3
@r0,S1DAT
! Read received DATA
.sect
.base
mrs50s
0xc0
00C0
00C3
D55205
75D8C1
REC1:
djnz
mov
NUMBYTMST,NOTLDAT2
S1CON,#ENS1_NOTSTA_NOTSTO_NOTSI_NOTAA_CR0
! clr SI,AA
00C6
00C8
8003
75D8C5
sjmp RETmr
mov
S1CON,#ENS1_NOTSTA_NOTSTO_NOTSI_AA_CR0
NOTLDAT2:
! clr SI, set AA
00CB
00CC
00CE
08
D0D0
32
RETmr:
inc
pop
reti
r0
psw
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
! STATE
: 58, DATA have been received, NOT ACK returned.
! ACTION
: Read DATA of S1DAT and generate a STOP condition.
!– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
.sect
mrs58
.base
0x158
0158
015B
015D
75D018
A6DA
80E9
mov
mov
sjmp STOP
psw,#SELRB3
@R0,S1DAT