;
; NOTE : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------
SENDC
CLRWDT ; RESET WATCHDOG TIMER
BCF PORTB,CS ; RESET CS STATE
BCF PORTB,CLK ; RESET CLK STATE
BCF PORTB,DIO ; RESET DIO STATE
MOVLW WRCFG
TRIS PORTB ; DIO = OUTPUT
GOTO $+1 ; WAIT FOR OUTPUTS TO SETTLE
BSF PORTB,CS ; SELECT EEPROM
SETC ; START BIT = 1
MOVLW 9D ; START BIT + 8 DATA BITS
MOVWF CNT1
SENDC2
SKPC ; TEST BIT
BCF PORTB,DIO ; WRITE
TO DIO
SKPNC ; TEST BIT
BSF PORTB,DIO ; WRITE TO DIO
GOTO $+1 ; WAIT 2 US
RLF OUTBYT,F ; GET NEXT BIT INTO CARRY
BSF PORTB,CLK ; CLOCK HIGH
GOTO $+1 ; WAIT 2 US
GOTO $+1 ; WAIT 2 US
BCF PORTB,CLK ; CLOCK LOW
DECFSZ CNT1,F ; LOOP COUNTER
GOTO SENDC2
BCF PORTB,DIO ; AVOID CONTENTION WITH READ
RETLW 0
;------------------------------------------------------------------------------
;
; FUNCTION : EEWRITE ()
;
; DESCRIPTION : WRITE 16 BIT VALUE TO EEPROM
;
; NOTE : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------
EEWRITE
; ******* EEPROM WRITE ENABLE ******************
WRITE0 MOVLW 30H ; WRITE ENABLE COMMAND
MOVWF OUTBYT
CALL SENDC ; SEND COMMAND TO EEPROM
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.

