You have nowtraxonja said:And, I couldn't download a file from this forum because I am stil a new user and I don't have any points
LIST P=16F84
INCLUDE "P16F84.inc"
TITLE " 24Cxx Programming with pic"
EEPROM EQU 1CH
ADDR EQU 1DH
DATAI EQU 1EH
DATAO EQU 1FH
TXBUF EQU 20H
RXBUF EQU 21H
COUNT EQU 22H
DEL EQU 23H
SEL EQU 24H
DI EQU 7
DO EQU 6
SDA EQU 1
SCL EQU 0
;PortA.0--------->Serial Clock----------24Cxx's Pin:6
;PortA.1<-------->Serial Data-----------24Cxx's Pin:5
;PortB LED outs
__CONFIG _WDT_OFF & _XT_OSC & _CP_OFF
;====================================================
;========= start======================
ORG 000H
GOTO START
START
CALL PORT_INIT
MAIN
MOVLW 00H ;Eeprom write Adress
MOVWF ADDR
MOVLW 23H ;Eeprom data
MOVWF DATAO
CALL WRITE_EEPROM
MOVLW .100
CALL DELAY_NMS
MOVLW 00H ;Eeprom read adress
MOVWF ADDR
CALL READ_EEPROM
MOVF DATAI,W
MOVWF PORTB ;read from Eeprom transfer data portb
MOVLW .100
CALL DELAY_NMS
DONE
GOTO DONE
;========================================================
;================= Port Init ============================
PORT_INIT
CLRF PORTA
CLRF PORTB
;
BSF STATUS, RP0 ;page1 select
CLRF TRISA
CLRF TRISB
BCF STATUS, RP0 ;page0 select
;
CLRF PORTB
RETURN
;=============================================================
;======== eeprom cominication=========================
WRITE_EEPROM
CALL BSTART
;
MOVLW B'10100000'
MOVWF TXBUF
CALL TX
;
MOVF ADDR,W
MOVWF TXBUF
CALL TX
;
MOVF DATAO,W
MOVWF TXBUF
CALL TX
;
CALL BSTOP
;
RETURN
READ_EEPROM
CALL BSTART
;
MOVLW B'10100000'
MOVWF TXBUF
CALL TX
;
MOVF ADDR,W
MOVWF TXBUF
CALL TX
;
CALL BSTART
;
MOVLW B'10100001'
MOVWF TXBUF
CALL TX
;
CALL RX
;
CALL BSTOP
;
RETURN
BSTART
BSF PORTA,SDA
BSF STATUS, RP0
MOVLW 00H
MOVWF TRISA
BCF STATUS, RP0
;
BCF PORTA,SCL
NOP
BSF PORTA,SCL
NOP
NOP
NOP
NOP
NOP
BCF PORTA,SDA
NOP
NOP
NOP
NOP
NOP
BCF PORTA,SCL
NOP
NOP
RETURN
BSTOP
BSF STATUS, RP0
MOVLW 00H
MOVWF TRISA
BCF STATUS, RP0
;
BCF PORTA,SDA
NOP
NOP
NOP
BSF PORTA,SCL
NOP
NOP
NOP
BSF PORTA,SDA
NOP
NOP
BCF PORTA,SCL
NOP
NOP
NOP
RETURN
BITOUT
BSF STATUS, RP0
MOVLW 00H
MOVWF TRISA
BCF STATUS, RP0
;
BTFSS EEPROM,DO
GOTO BITLOW
BSF PORTA,SDA
GOTO CLK_OUT
BITLOW
BCF PORTA,SDA
CLK_OUT
BSF PORTA,SCL
NOP
NOP
NOP
NOP
BCF PORTA,SCL
NOP
RETURN
BITIN
BSF EEPROM,DI
;
BSF STATUS,RP0
MOVLW 02H
MOVWF TRISA
BCF STATUS, RP0
;
BSF PORTA,SCL
NOP
NOP
NOP
NOP
NOP
BTFSS PORTA,SDA
BCF EEPROM,DI
BCF PORTA,SCL
RETURN
TX
MOVLW .8
MOVWF COUNT
TXLP
BCF EEPROM,DO
BTFSC TXBUF,7
BSF EEPROM,DO
CALL BITOUT
RLF TXBUF,F
DECFSZ COUNT,F
GOTO TXLP
CALL BITIN
RETURN
RX
CLRF DATAI
MOVLW .8
MOVWF COUNT
BCF STATUS,0
RXLP
RLF DATAI,F
CALL BITIN
BTFSC EEPROM,DI
BSF DATAI,0
DECFSZ COUNT,F
GOTO RXLP
BSF EEPROM,DO
CALL BITOUT
RETURN
DELAY_NMS
MOVWF DEL
OUTTER_MS
MOVLW .110
MOVWF SEL
INNER_MS
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ SEL,F
GOTO INNER_MS
DECFSZ DEL,F
GOTO OUTTER_MS
RETURN
END
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?