Ayuda para programa en C + inside

Hola,

estoy desarrollando un programa para un PIC 16F84, lo que quiero es que cuando en las entradas RB0,RB1,RB2,RB3 haya un 1, me salga un 1 por la patilla RB7, es decir hasya que no haya 1111 en esas patillas no se me salga ese 1.

He probado con la instrucción:
Código:
 if (PORTB & 0x0F) PORTB |= 0x80;

pero no me funciona, se me activa la salida RB7 en cuanto haya un 1 es cualquiera de esas entradas.

mi codigo es el siguiente:

Código:
#include <16f84a.h>

#fuses XT,NOWDT,NOPROTECT,PUT

#use delay (clock=4000000)                        // relog a 4 MHz
#BYTE TRISB = 0x86                                // variable TRISB en 86h
#BYTE PORTB = 0x06                                // variable PORTB en 06h
#BYTE OPTION_REG = 0x81                            // variable OPTION_REG en 81h

void main ()
{    bit_clear (OPTION_REG,7) ;                    // habilitación pull-up. OPTION_REG.7=0
    TRISB =0x0F;                                // Puerto B= B0,B1,B2,B3,B4,B5,B6 Entradas, B7 Salida
    output_bit(pin_B7,0);
    output_bit(pin_B6,0);
    output_bit(pin_B5,0);
    output_bit(pin_B4,0);
    while (true)
    {
        if (PORTB & 0x0F) PORTB |= 0xA0;
        delay_ms(1000);
        output_bit(pin_B6,1);
    }
}

Gracias
 
Atrás
Arriba