Posiblemente tengas algún conflicto dentro del programa, ya que no deberías tener problemas para controlar RB0.Hola D@rkbytes tengo que comentarte que me confundí y dije que el puerto en este caso B era usado por un LDC mas no es así, esta siendo usada por un teclado, como lo muestra la imagen.
Este puerto (B) está configurado como lo dice la librería de C CCS para manejar un teclado.
Como bien me indicas el puerto queda deshabilitado pero cuando trato de ponerlo en High el pin (B0) no lo mantiene. Me di cuenta que por ejemplo si yo pongo la intrusión Output_high(Pin_B0); y después le pongo un delay_ms(5000); se mantiene por ese tiempo y luego se deshabilita
Lo que yo quiero hacer con el pin (B0) que puse como ejemplo, es poderlo manejar en alto o bajo a mi parecer y por eso busque manuales que me ayuden con la direcciones TRISX que es donde pienso que estoy fallando. Y es por eso que acudo a ustedes para que me aclaren este punto o de no ser este el punto que afecta me ayuden a aclara el misterio.
Otra causa que podría estar interfiriendo con el pin RB0 son las instrucciones de la librería para el teclado.
También puedes usar la pantalla y el teclado por el mismo puerto, por ejemplo en el puerto C y así ahorras pines y aparte ya tienes libre todo el puerto B, aunque es más recomendable usar la pantalla y el teclado por el puerto B, ya que éste tiene resistencias pull-up internas.
Para que veas que no existe problema para controlar el pin RB0, adjunto un ejemplo que modifiqué para usar una pantalla LCD 16x2 y teclado matricial 3x4 por puertos separados.
Notarás que cuando se actúa sobre el pulsador en RA0 se detiene el proceso durante 5 segundos debido al retardo de encendido del LED en RB0.
Suerte.