Estoy programando el PIC16F877 usando el módulo MSSP configurado como I2C.
Al momento de simularlo en el MPLAB, la condición de START, el bit SSPIF del registro PIR1, jamás se coloca a 1.
Esta es la configuración del I2C que estoy utilizando:
MOVLW B'10000000'
MOVWF SSPSTAT ;SELECCIONO VELOCIDAD CON NIVELES I2C
MOVLW .9
MOVWF SSPADD ;VELOCIDAD DEL BUS 12C 100KHZ
BCF STATUS,RP0 ;BANCO 0
MOVLW B'00101000'
MOVWF SSPCON ;MÓDULO MSSP EN ON
Y esta es la rutina del envío de la secuencia de Start. Lo que me pasa es que queda el CP en las líneas btfss pir1,sspif. Este bit jamás se coloca a 1.
START_I2C bcf PIR1,SSPIF
bsf STATUS,RP0 ;Selecciona página 1
bsf SSPCON2,SEN ;Activa secuencia de inicio
bcf STATUS,RP0 ;Selecciona página 0
Espera_Start btfss PIR1,SSPIF ;¿Fin de secuencia de tranmisión?
goto Espera_Start ;Espera fin de transmision
return
Al momento de llamar a la rutina START_I2C estoy en el banco 0