English
Language : 

W79E648 Datasheet, PDF (78/80 Pages) Winbond – Fast 8051 Compatible microcontroller with a redesigned Processor
Preliminary W79E648
CJNE A,#FFH,BLANK_CHECK_ERROR
INC SFRAL
; NEXT ADDRESS
MOV A,SFRAL
JNZ BLANK_CHECK_LOOP
INC SFRAH
MOV A,SFRAH
CJNE A,#0H,BLANK_CHECK_LOOP ; END ADDRESS = FFFFH
JMP PROGRAM_64KROM
BLANK_CHECK_ERROR:
JMP $
;*******************************************************************************
;* RE-PROGRAMMING 64KB APFlash BANK
;*******************************************************************************
PROGRAM_64KROM:
MOV R2,#00H
MOV R1,#00H
MOV DPTR,#0H
MOV SFRAH,R1
MOV SFRCN,#21H
MOV R6,#9CH
MOV R7,#FFH
MOV TL0,R6
MOV TH0,R7
; TARGET LOW BYTE ADDRESS
; TARGET HIGH BYTE ADDRESS
; SFRAH, TARGET HIGH ADDRESS
; SFRCN = 21H, PROGRAM 64K APFLASH0
; SFRCN = A1H, PROGRAM 64K APFLASH1
; SET TIMER FOR PROGRAMMING, ABOUT 50 µS.
PROG_D_64K:
MOV SFRAL,R2
; SFRAL = LOW BYTE ADDRESS
CALL GET_BYTE_FROM_PC_TO_ACC ; THIS PROGRAM IS BASED ON USER’S CIRCUIT.
MOV @DPTR,A
; SAVE DATA INTO SRAM TO VERIFY CODE.
MOV SFRFD,A
; SFRFD = DATA IN
MOV TCON,#10H
; TCON = 10H, TR0 = 1,GO
MOV PCON,#01H
; ENTER IDLE MODE (PRORGAMMING)
INC DPTR
INC R2
CJNE R2,#0H,PROG_D_64K
INC R1
MOV SFRAH,R1
CJNE R1,#0H,PROG_D_64K
;*****************************************************************************
; * VERIFY 64KB APFLASH BANK
;*****************************************************************************
MOV R4,#03H
; ERROR COUNTER
MOV R6,#FDH
; SET TIMER FOR READ VERIFY, ABOUT 1.5 µS.
MOV R7,#FFH
MOV TL0,R6
MOV TH0,R7
MOV DPTR,#0H
; The start address of sample code
MOV R2,#0H
; Target low byte address
MOV R1,#0H
; Target high byte address
MOV SFRAH,R1
; SFRAH, Target high address
MOV SFRCN,#00H
; SFRCN = 00H, Read APFlash0
- 78 -