A continuación se muestra una posible solución para la tarea solicitada:
a. Diagrama Esquemático en Proteus
Descripción del Esquema:
- Microcontrolador: Utilice un ATmega328 (por ejemplo, presente en una placa Arduino UNO) para implementar la lógica.
- Entrada digital: Conecte un interruptor (o botón) al pin PC0. Asegúrese de incluir un elemento de pull-down o pull-up, según su diseño, para definir un estado estable cuando el interruptor no esté activado.
- Salida digital: Conecte los pines del PORTB a indicadores visuales (por ejemplo, 8 LEDS) a través de resistencias limitadoras de corriente.
- Alimentación y Tierra: Proporcione las conexiones adecuadas a VCC y GND para el microcontrolador y los dispositivos periféricos.
El circuito en Proteus deberá representar estas conexiones. La idea es que cuando el pin PC0 detecte un nivel lógico alto (1), los LEDS conectados a PORTB se enciendan (todos en 1); en caso contrario, se apaguen (todos en 0).
b. Programa en Arduino IDE
Utilice el siguiente código para lograr el comportamiento descrito:
void setup() {
// Configurar PORTB como salida (todos los 8 pines)
DDRB = 0xFF;
// Configurar PC0 como entrada
DDRC &= ~(1 << PC0);
}
void loop() {
// Leer el estado del bit 0 de PORTC
if (PINC & 0x01) {
// Si PC0 es 1, poner todos los bits de PORTB en 1
PORTB = 0xFF;
} else {
// Si PC0 es 0, poner todos los bits de PORTB en 0
PORTB = 0x00;
}
}
Explicación breve del código:
- La función
setup() configura el puerto B como salida (para controlar los LEDS) y el bit 0 del puerto C como entrada.
- En el ciclo
loop(), se lee el registro PINC; si el bit 0 es alto, se asigna el valor 0xFF (todos los bits en 1) a PORTB. Si es bajo, se asigna 0x00 (todos los bits en 0).
c. Verificación en la Simulación de Proteus
-
Cree el Esquema en Proteus:
- Coloque el microcontrolador ATmega328 en el diagrama.
- Conecte un interruptor al pin PC0 y configure la resistencia de pull según su diseño (por ejemplo, usando una resistencia de 10kΩ conectada a tierra en caso de pull-up o a VCC en caso de pull-down).
- Conecte cada uno de los pines del PORTB a un LED acompañado de su respectiva resistencia limitadora (por ejemplo, 330Ω).
-
Carga del Programa:
- Compile y cargue el código anterior en el microcontrolador dentro de Proteus (asegúrese de usar el archivo hex resultante del Arduino IDE).
-
Simulación:
- Ejecute la simulación y verifique que:
- Al presionar el botón (generando un nivel lógico 1 en PC0), se enciendan todos los LEDS conectados a PORTB.
- Al soltar el botón (estado lógico 0 en PC0), los LEDS se apaguen.
Esta solución cumple con la lógica requerida: la lectura del bit 0 de PORTC determina el estado de salida de PORTB.
Recuerde que el diseño en Proteus debe reflejar fielmente las conexiones eléctricas y la configuración del microcontrolador para simular correctamente el comportamiento del programa. ¡Éxito con la implementación y la simulación!