English
Language : 

W78IRD2 Datasheet, PDF (73/76 Pages) Winbond – 8-BIT MICROCONTROLLER
W78IRD2
BLANK_CHECK_ERROR:
MOV P1, #F0H
MOV P3, #F0H
JMP $
;*******************************************************************************
;* RE-PROGRAMMING 64KB AP Flash EPROM BANK
;*******************************************************************************
PROGRAM_64KROM:
MOV DPTR, #0H
MOV R2, #00H
MOV R1, #00H
MOV DPTR, #0H
MOV SFRAH, R1
MOV SFRCN, #21H
MOV R6, #5AH
MOV R7, #FFH
MOV TL0, R6
MOV TH0, R7
; THE ADDRESS OF NEW ROM CODE
; TARGET LOW BYTE ADDRESS
; TARGET HIGH BYTE ADDRESS
; EXTERNAL SRAM BUFFER ADDRESS
; SFRAH, TARGET HIGH ADDRESS
; SFRCN(C7H) = 21 (PROGRAM 64K)
; SET TIMER FOR PROGRAMMING, ABOUT 50 µS.
PROG_D_64K:
MOV SFRAL, R2
; SFRAL(C4H) = LOW BYTE ADDRESS
MOVX A, @DPTR ; READ DATA FROM EXTERNAL SRAM BUFFER
MOV SFRFD, A
; SFRFD(C6H) = 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 AP Flash EPROM BANK
;*****************************************************************************
MOV R4, #03H
; ERROR COUNTER
MOV R6, #FBH
; 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 = 00 (Read ROM CODE)
READ_VERIFY_64K:
MOV SFRAL, R2
; SFRAL(C4H) = LOW ADDRESS
MOV TCON, #10H ; TCON = 10H, TR0 = 1, GO
MOV PCON, #01H
INC R2
MOVX A, @DPTR
INC DPTR
CJNE A, SFRFD, ERROR_64K
CJNE R2, #0H, READ_VERIFY_64K
- 73 -
Publication Release Date: October 2, 2006
Revision A7