Hola buenos días foreros, tengo una interrogante y a ver si alguien me echa un cable al respecto, estaba empezando a programar un 16F887 con hitech c en mplab, me ocurre que quiero utilizar el puerto B como salida para alimentar un puente H, si manejo los puertos como:
RB=0;
RB1=1;
Etc., simplemente el programa no funciona, no me presenta voltaje en los pines.
El programa compila sin problemas.
En cambio si utilizo portb =0bXXXXXXXX;
El pograma funciona sin más problema.

Espero alguien me pueda ayudar, dejo el código a continuación:
RB=0;
RB1=1;
Etc., simplemente el programa no funciona, no me presenta voltaje en los pines.
El programa compila sin problemas.
En cambio si utilizo portb =0bXXXXXXXX;
El pograma funciona sin más problema.
Espero alguien me pueda ayudar, dejo el código a continuación:
Código:
#include <pic.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
__CONFIG(FOSC_XT & WDTE_OFF & PWRTE_ON & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & IESO_OFF & FCMEN_OFF & LVP_OFF);
__CONFIG(BOR4V_BOR40V & WRT_OFF);
#define XTAL_FREQ 20MHZ
#include "Delay.h"
#include "Delay.c"
#include "lcd.h"
#include "lcd.c"
//char buf1[3],buf2[3];
//definiciones del PORT B para el LCD
int i=64,h,j; unsigned int x=0;
unsigned char sensor[5]= 0;
void main(void)
{
TRISA= 255;
TRISB=0;
PORTB=0;
TRISE=255;
TRISC= 0;
TRISD= 0;
PORTC=0;
PORTD=0;
WPUB=0;
OPTION_REG=0;
GIE=0; // Desactiva las interrupciones
INTCON=0;
IOCB=0;
//*************************Puerto AD*******************
ADCON1=0b10000000; //Resultado justificado a la derecha
ADCON0=0b11000000; //FOSC/32
ADON=0; //
ADIE = 0;
//*****************************************************
//*****************************************************
while(1)
{
RB0=1;
RB1=0;
RB2=1;
RB3=1;
RB4=0;
RB5=1;
//PORTB=0b00101101;
DelayMs(2000);
RB3=0;
RB4=1;
RB5=1;
//PORTB=0;
DelayMs(2000);
}
}