beautypg.com

Philips P89LPC903 User Manual

Page 98

background image

Philips Semiconductors

User’s Manual - Preliminary -

P89LPC901/902/903

FLASH PROGRAM MEMORY

2003 Dec 8

98

r

Figure 14-4: Assembly language routine to erase/program a flash element

Figure 14-5: C-language routine to erase/program a flash element

;*

Inputs:

*

;*

R5 = data to write(byte)

*

;*

R7 = element address(byte)

*

;*

Outputs:

*

;*

None

*


CONF EQU 6CH

WR_ELEM:

MOV FMADRL,R7

;write

the

address

MOV

FMCON,#CONF

;load CONF command

MOV

FMDAT,R5

;write

the

data

MOV

R7,FMCON

;copy status for return

MOV

A,R7

;read

status

ANL

A,#0FH

;save only four lower bits

JNZ

BAD

;see if good or bad

CLR

C

;clear error flag if good

RET

;and

return

BAD:

SETB C

;set error flag if bad

RET

;and

return

unsigned char

Fm_stat;

// status result


bit PGM_EL (unsigned char, unsigned char);
bit prog_fail;

void main ()

{
prog_fail=PGM_EL(0x02,0x1C);
}

bit PGM_EL (unsigned char el_addr, unsigned char el_data)
{

#define CONF

0x6C

// access flash elements


FMADRL

= el_addr;

//write element address to addr reg

FMCON = CONF;

//load command, clears page reg

FMDATA

= el_data;

//write

data and start the cycle

Fm_stat = FMCON;

//read the result status

if ((Fm_stat & 0x0F)!=0) prog_fail=1; else prog_fail=0;

return(prog_fail);
}

This manual is related to the following products: