BUENO, COMO ERA DE ESPERAR TENGO QUE PREGUNTAR
HE REALIZADO UNA PROTOBOARD CON UN 16F877, AL CUAL ENTRE EL PUERTO B Y CUATRO LINEAS DEL A, TENGO 4 DISPLAYS DE 7SEG.
HE CONECTADO EL MAX COMO ME DIJISTE MAUNIX, SOLO QUE EL CS LO HE COGIDO DEL RE0. PUSE AL SDO LA RESISTENCIA DE 10K, REALIZE EL PROGRAMA, PARA QUE LEYERA LOS DATOS, Y EN PRINCIPIO (A MODO DE PRUEBA), COGER POR EJEMPLO EL MAXLOW Y PASARLO A BCD Y PONERLO EN EL DISPLAY.
PERO NO ME FUNCIONA.
LAS DOS RUTINAS (DDE CONFIGURACION DEL SPI) Y LA DE LEER SON LAS SIGUIENTES:
RUTINA DE CONFIGURACION DEL SPI:
CONF_SPI
BCF STATUS,RP1 ;BANCO 1
BSF STATUS,RP0
MOVLW B'00000000' ;REGISTRO
MOVWF SSPSTAT
BCF STATUS,RP1 ;BANCO 0
BCF STATUS,RP0
MOVLW B'00110001' ;SSPCON1
MOVWF SSPCON
BCF STATUS,RP1 ;BANCO 1
BSF STATUS,RP0
MOVLW B'00000000' ;SSPCON2
MOVWF SSPCON2
RETURN
RUTINA DE CONFIGURACION DEL PUERTO E (PARA EL CS):
CONF_PORTE ;CONFIGURA EL PORT B COMO SALIDA
BCF STATUS,RP1 ;BANCO 1
BSF STATUS,RP0
MOVLW B'00000000' ;SALIDAS
MOVWF TRISE
BCF STATUS,RP0 ;BANCO 0
MOVLW B'00000111'
MOVWF PORTE
RETURN
Y LA RUTINA QUE SE SUPUNE QUE LEERIA EL PUERTO Y ALMACENA EN VARIABLE
LEE_SPI
bcf STATUS, RP0 ; Go to BANK0
bcf STATUS, RP1
MOVLW B'00000110' ;ACTIVAMOS CS DEL MAX
MOVWF PORTE
MOVLW B'01010101' ;BYTE BASURA
MOVWF SSPBUF
NOP
NOP
bSf STATUS, RP0 ; Go to BANK1
bcf STATUS, RP1
ESP1 BTFSS SSPSTAT,BF
GOTO ESP1
bcf STATUS, RP0 ; Go to BANK0
bcf STATUS, RP1
MOVFW SSPBUF
MOVWF MAXHIGH ;ESCRIBE EN MAXHIG LOS PRIMEROS 8 BITS
NOP
MOVLW B'01010101' ;BYTE BASURA
MOVWF SSPBUF
NOP
NOP
bSf STATUS, RP0 ; Go to BANK1
bcf STATUS, RP1
ESP2 BTFSS SSPSTAT,BF
GOTO ESP2
bcf STATUS, RP0 ; Go to BANK0
bcf STATUS, RP1
MOVFW SSPBUF
MOVWF MAXLOW ;ESCRIBE EN MAXHIG LOS SEGUNDOS 8 BITS
NOP
bcf STATUS, RP0 ; Go to BANK0
bcf STATUS, RP1
MOVLW B'00000111' ;DESACTIVAMOS CS DEL MAX
MOVWF PORTE
RETURN
DE MOMENTO ESA ES MI DUDA, NO SE SI HAGO ALGO MAL EN EL SOFTWARE O EN EL HARDWARE, PUES SEGUN SEEXPLICA ES SENCILLO DE HACER ESTO...
GRACIAS