Está en la página 1de 4

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

MICROCONTROLADORES Y SISTEMAS EMBEBIDOS


EXAMEN SUSTITUTORIO
2022-A

NOMBRE: MENDOZA RUEDA JOSUÉ ISRAEL


CODIGO :1723225581

Tiempo: 50 minutos
Puntaje: 8 puntos

Carnet universitario

Profesor: Ing. Zenón Cucho Mendoza 26 de julio de 2022


CUESTIONARIO

Pregunta 1 (10 puntos)

Desarrollar un programa en Lenguaje C para el microcontrolador ATMEGA328 que permita comunicarse


por su puerto serial con una computadora virtual, donde el microcontrolador está conectado a 4
interruptores SW4-SW3-SW2-SW1 en los pines PD3.PD2.PB3 y PB2, respectivamente además tiene un
pulsador pull up conectado al pin PCx, (x es el penúltimo dígito de su código UNAC).
El programa consiste en leer el estado de los interruptores que representan dos números A y B de 2 bits y
realizar la suma entre ellos. Considerar:
El resultado de la suma y la visualización de sus operandos se obtienen luego de presionar y soltar el
pulsador, además se debe visualizar la suma también en un led mediante parpadeos.
El numero A lo determinan los interruptores SW4 y SW3. (SW3 es el bit menos significativo)
El número B lo determinan los interruptors SW2 y SW1. (SW1 representa al bit menos significativo)
Ejemplo:
2+5=7
3+1=4

Presentar
 Diagrama de flujo y circuito de Proteus (2 ptos)
 Código del programa (archivo *.cpp) (3ptos)
 Captura de pantallas que evidencian sus resultados (2 puntos)
 Circuito con Proteus y Link del funcionamiento (3 ptos.)

Parámetros de transmisión: 2400bps, 8 bits de datos, sin paridad, 1 bit de parada

Desarrollo

DIAGRAMAS DE FLUJO:

CODIGO EN C:
¬/*
* PREGUNTA 1_SUSTI.c
*

Profesor: Ing. Zenón Cucho Mendoza 26 de julio de 2022


* Created: 26/07/2022 18:15:21
* Author : Josue Mendoza
*/
#define F_CPU 16000000
#include <avr/io.h>
#include <util/delay.h>
#define SW1_ON ((PINB &(1<<PINB2)))
#define SW2_ON ((PINB &(1<<PINB3)))
#define SW3_ON ((PIND &(1<<PIND2)))
#define SW4_ON ((PIND &(1<<PIND3)))
#define SW1_OFF ((PINB &(1<<PINB2))==0))
#define SW2_OFF ((PINB &(1<<PINB3))==0))
#define SW3_OFF ((PIND &(1<<PIND2))==0))
#define SW4_OFF ((PIND &(1<<PIND3))==0))

const unsigned int Baudios= 4800;


void configura_usart(void);
void configurarComunicacionUSART(void);
int main(void)
{
int A=0;
int B=0;
DDRD &~=((1<<DDD3)|(1<<DDD2));
DDRB &~=((1<<DDB3)|(1<<DDB2));
configura_usart();
while (1)
{
while(!(UCSR0A &(1<<RXC0)));
// PARA PODER CONFIGURAR A EN BASE AL SW3 Y SW4 USAREMOS EL COMANDO
SWITCH CASE
switch (A)
{
case 1:
SW4_OFF;
SW3_OFF;
break;
case 2:
SW4_OFF;
SW3_ON;
break;
case 3:
SW4_ON;
SW3_OFF;
break;
case 4:
SW4_ON;
SW3_ON;
}
}

Profesor: Ing. Zenón Cucho Mendoza 26 de julio de 2022


Profesor: Ing. Zenón Cucho Mendoza 26 de julio de 2022

También podría gustarte