English
Language : 

W79E548 Datasheet, PDF (76/79 Pages) Winbond – 8-BIT MICROCONTROLLER
W79E548/W79L548
RETI
;************************************************************************
;* 4KB LDFlash MAIN PROGRAM
;************************************************************************
ORG 100H
MAIN_4K:
MOV TA,#AAH
MOV TA,#55H
MOV CHPCON,#03H ; CHPCON = 03H, ENABLE IN-SYSTEM PROGRAMMING.
MOV SFRCN,#0H
MOV TCON,#00H
; TCON = 00H, TR = 0 TIMER0 STOP
MOV TMOD,#01H
; TMOD = 01H, SET TIMER0 A 16BIT TIMER
MOV IP,#00H
; IP = 00H
MOV IE,#82H
; IE = 82H, TIMER0 INTERRUPT ENABLED
MOV R6,#F0H
MOV R7,#FFH
MOV TL0,R6
MOV TH0,R7
MOV TCON,#10H
; TCON = 10H, TR0 = 1, GO
MOV PCON,#01H
; ENTER IDLE MODE
UPDATE_64K:
MOV TCON,#00H
MOV IP,#00H
MOV IE,#82H
MOV TMOD,#01H
MOV R6,#D0H
MOV R7,#8AH
MOV TL0,R6
MOV TH0,R7
; TCON = 00H , TR = 0 TIM0 STOP
; IP = 00H
; IE = 82H, TIMER0 INTERRUPT ENABLED
; TMOD = 01H, MODE1
; SET WAKE-UP TIME FOR ERASE OPERATION, ABOUT 15 ms
DEPENDING ON USER'S SYSTEM CLOCK RATE.
ERASE_P_4K:
MOV SFRCN,#22H
MOV TCON,#10H
MOV PCON,#01H
; SFRCN = 22H, ERASE 64K APFlash0
; SFRCN = A2H, ERASE 64K APFlash1
; TCON = 10H, TR0 = 1,GO
; ENTER IDLE MODE (FOR ERASE OPERATION)
;*********************************************************************
;* BLANK CHECK
;*********************************************************************
MOV SFRCN,#0H
; SFRCN = 00H, READ 64KB APFlash0
; SFRCN = 80H, READ 64KB APFlash1
MOV SFRAH,#0H
; START ADDRESS = 0H
MOV SFRAL,#0H
MOV R6,#FDH
; SET TIMER FOR READ OPERATION, ABOUT 1.5 μS.
MOV R7,#FFH
MOV TL0,R6
MOV TH0,R7
BLANK_CHECK_LOOP:
SETB TR0
; ENABLE TIMER 0
MOV PCON,#01H
; ENTER IDLE MODE
MOV A,SFRFD
; READ ONE BYTE
CJNE A,#FFH,BLANK_CHECK_ERROR
INC SFRAL
; NEXT ADDRESS
- 76 -