Otra forma simple de hacerlo es usando comparaciones binarias.
Si cualquier byte lo comparas, por ejemplo, con el valor 00010000 usando el comparador AND, el resultado será un 1 si en el bit5 había un 1 o un 0 si no lo había. Por lo que el resultado será el valor que había en el bit5 original.
Te pongo un ejemplo que extrae los 8 bits y donde lo verás más claro:
Codigo:
#include <16F876a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=19200, xmit=PIN_C6, rcv=PIN_C7)
void main() {
int8 valor;
valor=230; // 11100110
printf("Bit 0: %u
", (valor & 1)!=0); // 00000001
printf("Bit 1: %u
", (valor & 2)!=0); // 00000010
printf("Bit 2: %u
", (valor & 4)!=0); // 00000100
printf("Bit 3: %u
", (valor & 8)!=0); // 00001000
printf("Bit 4: %u
", (valor & 16)!=0); // 00010000
printf("Bit 5: %u
", (valor & 32)!=0); // 00100000
printf("Bit 6: %u
", (valor & 64)!=0); // 01000000
printf("Bit 7: %u
", (valor & 128)!=0); // 10000000
}
De nuevo, muchas gracias por vuestras ideas. Es increíble lo que cualquier cosa puede dar de sí, y lo mucho que se aprende en este foro 
Al final lo he hecho así, que es básicamente como me dijísteis:
Codigo:
// ACCESO A LOS BITS DE UNA VARIABLE.
int variable = 0b10101111;
short bit;
// bit = Bit_Test(variable,bit_que_queramos); Dará 0 o 1 dependiendo del valor que
// tenga el bit correspondiente al que se accede.
bit = Bit_Test(variable,5); // bit valdrá 1 en este caso.
// que es lo mismo que hacer:
bit = ((var & (1 <<5)) != 0);
bit = Bit_Test(variable,4); // bit valdrá 0 en este caso.
// que es lo mismo que hacer:
bit = ((var & (1 <<4)) != 0);
// "ESTABLECIMIENTO" DE LOS BITS DE UNA VARIABLE.
// Para poner a 0 o a 1 un bit determinado de una variable,
// análogo al método Variable.5 = 1 o Variable.5 = 0 usado en Basic.
// queremos poner un 1 por ejemplo en el bit 5 de "variable".
Bit_Set(variable,5);
// que es lo mismo que hacer:
variable | = (1 << 5);
// Si lo queremos limpiar:
Bit_Clear(variable,5);
// que es lo mismo que hacer:
variable & = ~(1 << 5);
Con respecto a la obtención del byte más y menos significativo de una variable de 16 bits, la solución propuesta por gfp es impecable. 
Un saludo a todos, y nuevamente... ¡muchas gracias!