⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isp_entry.asm

📁 一个非常好的微处理器烧录EEPROM的C++ 原代码项目文件,直接可用,而且还是一拖八的, 成果奉献
💻 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 + -