Hola amigos del foro. Les cuento que estoy haciendo un diseño que está dividido en 3 bloques que se comunican con un bloque principal, y este envía las órdenes a un último bloque. Así que tenemos bloque 1, bloque 2,bloque 3 que se comunican con bloque Ppal (bloque 4) y este se comunica con bloque 5 que ejecuta las órdenes. Cada bloque tiene una tabla de verdad de 4 bits. O sea que bloque 1 envía 0001 para que bloque 5 ejecute x función, luego bloque 2 envía tmb 0001 para que bloque 5 ejecute una función diferente y lo mismo con bloque 3. Eh aquí el dilema. El bloque Ppal recibe por sus puertos digitales todas las órdenes pero no puede enviárselas así como así al bloque 5, xq como los 3 bloques envían los mismos códigos ¿cómo sabe el bloque 5 cual de las 3 diferentes órdenes debe ejecutar?. Así que entre la comunicación del bloque Ppal con el bloque 5 tengo que crear algún tipo de lógica que le diga al bloque 5 de quién está recibiendo esa orden, si del bloque 1,2 o 3 y por ende saber qué función deb ejecutar. Bueno la limitante que tengo es que solo tengo 4 pines para comunicarme entre el bloque Ppal y el bloque 5. Mí pedido de ayuda o de sugerencia es: ¿Que lógica aplicarían ustedes para que el bloque Ppal le diga al bloque 5 antes de enviarle los datos de dónde proviene esa orden? Espero sepan ayudarme a encontrar alguna lógica interesante que me ayude en el proyecto. Gracias a todos. Cómo dato importante, yo programo en C, no soy experto para nada, me defiendo por prueba y error y foros maravillosos así como foreros admirables como ustedes y este sitio, por eso recurro a ustedes. Bueno espero se entienda la propuesta y a ver quién se gana el premio a la mejor lógica de control.... 
Lo que tienes que implementar ahí es un protocolo.
Es decir que mandas una trama (una serie de varios bytes) donde indicas la longitud (número de bytes),
dirección, comandos y datos,etc
Cuando el bloque principal necesita transmitir una orden y/o datos a un bloque, digamos al 3, envía una trama con la
dirección 3. Esto implica que cada bloque
esclavo posee su propia dirección.
Esta trama llega a todos, y todos comprenden que es una trama con datos u ordenes. Pero aquel que es dirección 3 procesa la información y responde al maestro (que puede ser dirección 0)
De esa manera logras que sólo el módulo deseado realice un proceso.
Podrías comprender o utilizar la comunicación RS485 que puede ser útil en lo que deseas implementar.