Hola colegas
Tengo el Siguiente Problema
quiero escribir y leer datos en la memoria spi 25lc080 desde el pic18f4520, ya lo hice en proteus y funciona,pero en la protoboard no funciona,no se cual es el error aquí dejo el código y la imagen del montaje en protoboard.
LIST P=18F4520 ;Directiva para definir el procesador
#include <P18F4520.INC> ;
CONFIG FCMEN = OFF
CONFIG OSC = XT ;Osc interno, RA6 como pin, USB usa Osc EC
CONFIG IESO = ON
CONFIG PWRT = OFF ;PWRT habilitado
CONFIG BOREN = NOSLP
CONFIG WDT = OFF ;Watchdog habilitado
CONFIG BORV = 0
CONFIG CCP2MX = PORTBE
CONFIG PBADEN = OFF ;Todos los pines como entradas analogicas
CONFIG LPT1OSC = OFF
CONFIG MCLRE = ON
CONFIG STVREN = OFF
CONFIG LVP = OFF
CONFIG XINST = OFF ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
CONFIG DEBUG = OFF ;Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
;Programacion en bajo voltaje apagado
CONFIG CP0 = OFF ;los bloques del codigo de programa
CONFIG CP1 = OFF ;no estan protegidos
CONFIG CP2 = OFF
CONFIG CP3 = OFF
CONFIG CPB = OFF ;Sector Boot esta protegido
CONFIG CPD = OFF
CONFIG WRT0 = OFF ;Block 0 (000800-001FFFh) not write-protected
CONFIG WRT1 = OFF
CONFIG WRT2 = OFF
CONFIG WRT3 = OFF
CONFIG WRTC = OFF
CONFIG WRTB = OFF
CONFIG WRTD = OFF
CONFIG EBTR1 = OFF ; Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
CONFIG EBTR2 = OFF
CONFIG EBTR3 = OFF
CONFIG EBTRB = OFF
ORG 0X0000
GOTO INICIO
ORG 0X0008
INICIO
BCF TRISA,RA0
CLRF TRISB
CLRF PORTB
BCF PORTA,RA0
;INICIALIZA VARIABLES
MOVLW H'00'
MOVWF CANTDATOS1
MOVLW H'00'
MOVWF CANTDATOS
MOVLW H'00'
MOVWF DATORXSPI
CALL CONF_SPI
BSF PORTE,CS ;DESHABILITO CS
BCF PORTE,CS ;HABILITO CS
MOVLW 0X06 ;HABILITA ESCRITURAS
CALL ESCRITURA_MEMORIASPI
BSF PORTE,CS ;DESHABILITO CS
BCF PORTE,CS ;HABILITO CS
MOVLW 0X02
CALL ESCRITURA_MEMORIASPI
MOVLW 0X00
CALL ESCRITURA_MEMORIASPI
MOVLW 0X00
CALL ESCRITURA_MEMORIASPI
MOVLW 'Z'
CALL ESCRITURA_MEMORIASPI
BSF PORTE,CS ;DESHABILITO CS
;LECTURA
CALL RETARDO
CALL RETARDO
CALL RETARDO
CALL RETARDO
CALL RETARDO
CALL RETARDO
BSF PORTE,CS ;DESHABILITO CS
BCF PORTE,CS ;HABILITO CS
MOVLW 0X03
CALL ESCRITURA_MEMORIASPI
MOVLW 0X00
CALL ESCRITURA_MEMORIASPI
MOVLW 0X00
CALL ESCRITURA_MEMORIASPI
MOVLW 0X00
CALL ESCRITURA_MEMORIASPI
ESREAD1
BTFSS SSPSTAT,BF
GOTO ESREAD1
MOVF SSPBUF,W ;WREG reg = contents of SSPBUF
MOVWF PORTB
BSF PORTE,CS ;DESHABILITO CS\
BSF PORTA,RA0
YT
GOTO YT
END
ESCRITURA_MEMORIASPI
MOVWF SSPBUF ;
ESWRITE
BTFSS PIR1,SSPIF
GOTO ESWRITE
BCF PIR1,SSPIF
RETURN
Tengo el Siguiente Problema
quiero escribir y leer datos en la memoria spi 25lc080 desde el pic18f4520, ya lo hice en proteus y funciona,pero en la protoboard no funciona,no se cual es el error aquí dejo el código y la imagen del montaje en protoboard.
LIST P=18F4520 ;Directiva para definir el procesador
#include <P18F4520.INC> ;
CONFIG FCMEN = OFF
CONFIG OSC = XT ;Osc interno, RA6 como pin, USB usa Osc EC
CONFIG IESO = ON
CONFIG PWRT = OFF ;PWRT habilitado
CONFIG BOREN = NOSLP
CONFIG WDT = OFF ;Watchdog habilitado
CONFIG BORV = 0
CONFIG CCP2MX = PORTBE
CONFIG PBADEN = OFF ;Todos los pines como entradas analogicas
CONFIG LPT1OSC = OFF
CONFIG MCLRE = ON
CONFIG STVREN = OFF
CONFIG LVP = OFF
CONFIG XINST = OFF ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
CONFIG DEBUG = OFF ;Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
;Programacion en bajo voltaje apagado
CONFIG CP0 = OFF ;los bloques del codigo de programa
CONFIG CP1 = OFF ;no estan protegidos
CONFIG CP2 = OFF
CONFIG CP3 = OFF
CONFIG CPB = OFF ;Sector Boot esta protegido
CONFIG CPD = OFF
CONFIG WRT0 = OFF ;Block 0 (000800-001FFFh) not write-protected
CONFIG WRT1 = OFF
CONFIG WRT2 = OFF
CONFIG WRT3 = OFF
CONFIG WRTC = OFF
CONFIG WRTB = OFF
CONFIG WRTD = OFF
CONFIG EBTR1 = OFF ; Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
CONFIG EBTR2 = OFF
CONFIG EBTR3 = OFF
CONFIG EBTRB = OFF
ORG 0X0000
GOTO INICIO
ORG 0X0008
INICIO
BCF TRISA,RA0
CLRF TRISB
CLRF PORTB
BCF PORTA,RA0
;INICIALIZA VARIABLES
MOVLW H'00'
MOVWF CANTDATOS1
MOVLW H'00'
MOVWF CANTDATOS
MOVLW H'00'
MOVWF DATORXSPI
CALL CONF_SPI
BSF PORTE,CS ;DESHABILITO CS
BCF PORTE,CS ;HABILITO CS
MOVLW 0X06 ;HABILITA ESCRITURAS
CALL ESCRITURA_MEMORIASPI
BSF PORTE,CS ;DESHABILITO CS
BCF PORTE,CS ;HABILITO CS
MOVLW 0X02
CALL ESCRITURA_MEMORIASPI
MOVLW 0X00
CALL ESCRITURA_MEMORIASPI
MOVLW 0X00
CALL ESCRITURA_MEMORIASPI
MOVLW 'Z'
CALL ESCRITURA_MEMORIASPI
BSF PORTE,CS ;DESHABILITO CS
;LECTURA
CALL RETARDO
CALL RETARDO
CALL RETARDO
CALL RETARDO
CALL RETARDO
CALL RETARDO
BSF PORTE,CS ;DESHABILITO CS
BCF PORTE,CS ;HABILITO CS
MOVLW 0X03
CALL ESCRITURA_MEMORIASPI
MOVLW 0X00
CALL ESCRITURA_MEMORIASPI
MOVLW 0X00
CALL ESCRITURA_MEMORIASPI
MOVLW 0X00
CALL ESCRITURA_MEMORIASPI
ESREAD1
BTFSS SSPSTAT,BF
GOTO ESREAD1
MOVF SSPBUF,W ;WREG reg = contents of SSPBUF
MOVWF PORTB
BSF PORTE,CS ;DESHABILITO CS\
BSF PORTA,RA0
YT
GOTO YT
END
ESCRITURA_MEMORIASPI
MOVWF SSPBUF ;
ESWRITE
BTFSS PIR1,SSPIF
GOTO ESWRITE
BCF PIR1,SSPIF
RETURN
Adjuntos
Última edición: