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

📄 eeprom.asm

📁 PS2 Game Products Test-Jig source code,
💻 ASM
字号:
;***********************************************************************
;FILENAME	: EEPROM.ASM
;ROUTINE NAME	: EE_IO
;INPUT		: EE_IO_BUF 
;OUTPUT		: EE_IO_BUF
;RAM AFFECTED	: EE_IO_BUF
;SFR AFFECTED	: STATUS.C
;I/O AFFECTED	: EEDI_PIN , EESK_PIN
;SUBROUTINE CALL: 
;***********************************************************************
EE_IO:		
		MOVWF	EE_IO_CNT
		BCF	EEDI_PIN
		BCF	EESK_PIN
		
EE_IO_LP:		
		BTFSS	EE_IO_BUF,7		;--|--EEPROM DI input = 1 or 0 ?
		BCF	EEDI_PIN		;  |	
		BTFSC	EE_IO_BUF,7		;  |
		BSF	EEDI_PIN		;--|	
				
		BSF	EESK_PIN		;Set Clock is Rising Edge for EEPROM Data in/out
		
		BCF	STATUS,C		;--|--Read EEPROM DO Data
		BTFSC	EEDO_PIN		;  |	
		BSF	STATUS,C		;--|
		
		RLF	EE_IO_BUF,F		
		BCF	EESK_PIN		;Set Clock is Low ?
		
		DECFSZ	EE_IO_CNT,F		;Transmit/Receive is Complete ?
		GOTO	EE_IO_LP		;No
		
		BCF	EEDI_PIN		;EEPROM DI Pin is Low
		
		RETURN			

;***********************************************************************
;FILENAME	: EEPROM.ASM
;ROUTINE NAME	: EE_READY
;INPUT		: 
;OUTPUT		: 
;RAM AFFECTED	: TEMP_BUFFER1 , TEMP_BUFFER2
;SFR AFFECTED	: 
;I/O AFFECTED	: EECS_PIN , EEDO_PIN
;SUBROUTINE CALL: EE_FINISH
;***********************************************************************
EE_READY: 
		BCF	EECS_PIN
		NOP
		NOP
		NOP
		NOP
		NOP
		NOP		
		NOP
		NOP
		BSF	EECS_PIN		;>1us from CS low

		MOVLW	0xFF
		MOVWF	TEMP_BUFFER1
		MOVWF	TEMP_BUFFER2

EE_READY_LP:
		CLRWDT
		
		BTFSC	EEDO_PIN		;wait self-programming finish ?								
		GOTO	EE_FINISH		;Yes 

		DECFSZ	TEMP_BUFFER1,F		
		GOTO	EE_READY_LP
		
		DECFSZ	TEMP_BUFFER2,F
		GOTO	EE_READY_LP

;		BCF	EECS_PIN		;Goto EE_FINISH:
				
;***********************************************************************
;FILENAME	: EEPROM.ASM
;ROUTINE NAME	: EE_FINISH
;INPUT		: 
;OUTPUT		: 
;RAM AFFECTED	: 
;SFR AFFECTED	: 
;I/O AFFECTED	: EEDI_PIN , EESK_PIN , EECS_PIN
;SUBROUTINE CALL: 
;***********************************************************************
EE_FINISH:
		BCF	EECS_PIN		;Clear changed pins to low
		BCF	EESK_PIN
		BCF	EEDI_PIN

		RETURN


;***********************************************************************
;FILENAME	: EEPROM.ASM
;ROUTINE NAME	: EE_READ
;INPUT		: EE_ADDR , EE_BUF0
;OUTPUT		: EE_BUF0
;RAM AFFECTED	: EE_IO_BUF  
;SFR AFFECTED	: 
;I/O AFFECTED	: 
;SUBROUTINE CALL: EE_ACCESS , EE_IO , EE_FINISH
;***********************************************************************
EE_READ:
		CALL	EE_ACCESS
		
		MOVLW	B'11000000'		;110 : READ Command
		MOVWF	EE_IO_BUF
		MOVLW	3			;Out 3 bits command
		CALL	EE_IO
		
		RLF	EE_ADDR,W		
		MOVWF	EE_IO_BUF
		RLF	EE_IO_BUF,F
		MOVLW	D'6'
		CALL	EE_IO			;Out 6 bits address
		
		CLRF	EE_IO_BUF
		MOVLW	D'8'			;Read 8 bits data
		CALL	EE_IO
		MOVF	EE_IO_BUF,W
		MOVWF	EE_BUF1

		CLRF	EE_IO_BUF
		MOVLW	D'8'			;Read 8 bits data
		CALL	EE_IO
		MOVF	EE_IO_BUF,W
		MOVWF	EE_BUF0
				
		GOTO	EE_FINISH
		
		
;***********************************************************************
;FILENAME	: EEPROM.ASM
;ROUTINE NAME	: EE_WRITE
;INPUT		: EE_ADDR , EE_BUF0
;OUTPUT		: EE_BUF0
;RAM AFFECTED	: EE_IO_BUF  
;SFR AFFECTED	: 
;I/O AFFECTED	: 
;SUBROUTINE CALL: EE_ACCESS , EE_IO , EE_READY
;***********************************************************************		
EE_WRITE:
		CALL	EE_ACCESS
		
		MOVLW	B'10100000'		;101 : WRITE Command
		MOVWF	EE_IO_BUF
		MOVLW	D'3'			
		CALL	EE_IO			;out 3 bits command
		
		RLF	EE_ADDR,W
		MOVWF	EE_IO_BUF
		RLF	EE_IO_BUF,F		
		MOVLW	D'6'			;out 6 bits address
		CALL	EE_IO
		
		MOVF	EE_BUF1,W
		MOVWF	EE_IO_BUF
		MOVLW	D'8'
		CALL	EE_IO			;out 8 bits data
		
		MOVF	EE_BUF0,W
		MOVWF	EE_IO_BUF
		MOVLW	D'8'
		CALL	EE_IO			;out 8 bits data		
		
		GOTO	EE_READY						
		
;***********************************************************************
;FILENAME	: EEPROM.ASM
;ROUTINE NAME	: EE_ERASE
;INPUT		: EE_ADDR 
;OUTPUT		: 
;RAM AFFECTED	: EE_IO_BUF  
;SFR AFFECTED	: 
;I/O AFFECTED	: 
;SUBROUTINE CALL: EE_ACCESS , EE_IO , EE_READY
;***********************************************************************		
EE_ERASE:
		CALL	EE_ACCESS
		MOVLW	B'11100000'		;111 : ERASE Command
		MOVWF	EE_IO_BUF
		MOVLW	D'3'			
		CALL	EE_IO			;out 3 bits command
		
		RLF	EE_ADDR,W
		MOVWF	EE_IO_BUF		
		RLF	EE_IO_BUF,F
		MOVLW	D'6'			;out 6 bits address
		CALL	EE_IO
	
		GOTO	EE_READY		
		
		
;***********************************************************************
;FILENAME	: EEPROM.ASM
;ROUTINE NAME	: EE_WPROT
;INPUT		: EE_ADDR 
;OUTPUT		: 
;RAM AFFECTED	: EE_IO_BUF  
;SFR AFFECTED	: 
;I/O AFFECTED	: 
;SUBROUTINE CALL: EE_ACCESS , EE_IO , EE_FINISH
;***********************************************************************		
EE_WPROT:
		CALL	EE_ACCESS
		MOVLW	B'10000000'		;100 : Write Enable/Disable Command
		MOVWF	EE_IO_BUF
		MOVLW	D'3'			
		CALL	EE_IO			;out 3 bits command
		
		MOVLW	B'11000000'		;Enable
		BTFSC	STATUS,C
		MOVLW	B'00000000'
		MOVWF	EE_IO_BUF		
		MOVLW	D'6'			;out 6 bits address
		CALL	EE_IO
	
		GOTO	EE_FINISH
		
		
;***********************************************************************
;FILENAME	: EEPROM.ASM
;ROUTINE NAME	: EE_ACCESS
;INPUT		:  
;OUTPUT		: 
;RAM AFFECTED	: 
;SFR AFFECTED	: INTCON.GIE
;I/O AFFECTED	: EECS_PIN
;SUBROUTINE CALL: 
;***********************************************************************		
EE_ACCESS:
		BCF	INTCON,GIE		;Disable all interrupt
		BCF	EESK_PIN
		BCF	EEDI_PIN
		BSF	EECS_PIN		;Select EEPROM
		
		RETURN		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -