📄 isp_entry.asm
字号:
;--------------------------------------------------------
; ISP Serve program Entry
; Description:
;
; Ensure whether it enter the isp function,receive
; the first data if it is and lead to the isp function
; entry.
; ------------------write by laijun---------------------
; -----------------------------------Ver1.00--2005.08.19
; Add follow 2 mode at the new version
; 1: Use Eeprom(AT24C512) direct write to sm5964 flash
; 2: Use Eeprom(AT24C512) direct read from sm5964 flash
; Above 2 mode support PnP technology,and the iic wire
; use the UART 2 wire,it needn`t change any hardware
; the entry addr is: 0xf800
; ------------------added by laijun---------------------
; -----------------------------------Ver1.10--2005.09.22
;--------------------------------------------------------
NAME GOTOISP
PUBLIC _GoToIsp
;PUBLIC GoToServe
GOTOISP_CODE SEGMENT CODE
RSEG GOTOISP_CODE
USING 3
;========================================================
#include "sm5964.h"
#include "EepromCopyver.h"
END_FLAG1 EQU 55H
END_FLAG2 EQU 0AAH
ISP_MODE_ISP EQU 00H
ISP_MODE_EEPROM EQU 01H
ISP_MODE_READ EQU 02H
;define power contrl pin
sbit Pin_Power_RADIO=P0^1
sbit Pin_Power_DVD=P4^1
;========================================================
;---------------program-entry----------------------------
_GoToIsp:
PUSH ACC
MOV A,PSW
PUSH ACC
MOV A,DPL
PUSH ACC
MOV A,DPH
PUSH ACC
MOV A,R6
PUSH ACC
MOV A,R7
PUSH ACC
Chek_IspMode:
CJNE A,#ISP_MODE_EEPROM,Chek_IspMode_1
JMP ISP_Enable1
Chek_IspMode_1:
CJNE A,#ISP_MODE_READ,Chek_IspMode_2
JMP ISP_Enable1
Chek_IspMode_2:
CJNE A,#ISP_MODE_ISP,ISP_Error
JB RI,ISP_Entry_Ok
ISP_Error:
CLR TI
CLR RI
POP ACC
MOV R7,A
POP ACC
MOV R6,A
POP ACC
MOV DPH,A
POP ACC
MOV DPL,A
POP ACC
MOV PSW,A
POP ACC
RET
ISP_Entry_Ok:
MOV A,SBUF
CLR C
SUBB A,#07H
JNC ISP_Error
MOV DPTR,#00H
;---------------receive the first data------------------
ISP_Receive:
MOV R6,#05H
ISP_Rec_Wait1:
MOV R7,#0FFH
ISP_Rec_Wait2:
JBC RI,ISP_ChekData
DJNZ R7,ISP_Rec_Wait2
DJNZ R6,ISP_Rec_Wait1
SJMP ISP_Error
ISP_ChekData:
MOV A,SBUF
MOVX @DPTR,A
CJNE A,#END_FLAG2,ISP_Rec_Next
DEC DPL
MOVX A,@DPTR
CJNE A,#END_FLAG1,ISP_Rec_Continue
MOV SP,#07H
MOV A,DPL
PUSH ACC
MOV A,#ISP_MODE_ISP
JMP ISP_Enable1
ISP_Enable:
MOV SP,#07H
ISP_Enable1:
PUSH ACC
MOV A,#Isp_Server_AddrL
PUSH ACC
MOV A,#Isp_Server_AddrH
PUSH ACC
MOV IE,#00H
MOV FDATA,#55H
MOV FDATA,#0AAH
MOV FDATA,#55H
CLR Pin_Power_RADIO
SETB Pin_Power_DVD
RET
ISP_Rec_Continue:
INC DPTR
ISP_Rec_Next:
INC DPTR
CLR C
MOV A,DPL
SUBB A,#07H
JNC ISP_Error
JMP ISP_Receive
;--------------------------------------------------------
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -