0% encontró este documento útil (0 votos)
3 vistas15 páginas

Laboratorio de Microcontroladores LS53

Este resumen describe cuatro ejercicios realizados en un laboratorio sobre microcontroladores. El primer ejercicio involucra el parpadeo de un LED controlado por botones. El segundo ejercicio incrementa bits de salida con cada pulsación de un botón. El tercero verifica si números ingresados son primos. El cuarto controla un toldo usando lógica booleana.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas15 páginas

Laboratorio de Microcontroladores LS53

Este resumen describe cuatro ejercicios realizados en un laboratorio sobre microcontroladores. El primer ejercicio involucra el parpadeo de un LED controlado por botones. El segundo ejercicio incrementa bits de salida con cada pulsación de un botón. El tercero verifica si números ingresados son primos. El cuarto controla un toldo usando lógica booleana.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

MICROCONTROLADORES

(LS53)

LABORATORIO CALIFICADO 1

Alumnos:
Alexander Menacho Valencia U202122414
Jhonny Marcelo Salis Salazar U20201C220

Profesor: Oscar Ucchelly Romero Cortez

San Miguel, Lima


11 de septiembre del 2022
Ejercicio 1 – Logrado en laboratorio

Planteamiento:
El núcleo del problema se encuentra en la capacidad de resolver sucesivas
evaluaciones en diferentes registros con diferentes constantes y variables. La
solución pasó por la identificación correcta y definición de los procesos que se harán
uno por uno de manera separada y de ahí se les unificó.
La subrutina encargada del retardo no ha sido detallada porque ya se revisó en el
trabajo de las clases.
Diagrama de Flujo:
Código de la solución:
Explicación:
El programa inicia configurando los puertos con los que se realizará el trabajo y una
variable llamada cuenta para almacenar las veces en que se encenderá el led. A partir
de ahí, el programa inicia verificando si se ha presionado el botón para encender el
led en el bit 1 del puerto D (RD1). Se pregunta si su valor es 0 porque normalmente
está en 1. Si no fuese presionado, verifica si se presionó el otro botón que controla la
cuenta en el bit 0 del puerto D (RD0). Si se presionara, se aumenta el valor de la
cuenta antes de volver al inicio.
Por otro lado, en caso se decidiera hacer parpadear el led, deberá verificarse si la
cuenta se encuentra entre 3 y 6 primero. Si no perteneciera a ese rango, la cuenta se
reinicia y se apaga el led.
Si pasara el filtro, el led se encenderá tantas veces como el número de veces que la
cuenta tenga. Los casos posibles son solo dos: parpadear 4 veces o parpadear 5
veces. Finalmente, se reinicia la cuenta y se apaga el led en el bit 5 del puerto B.
Circuito electrónico:

El circuito armado para verificar el funcionamiento durante el laboratorio se presenta


a continuación.

El circuito funcionó correctamente al conectarse a la computadora. Todos los


componentes y conexiones estaban energizados y tenían continuidad.
Ejercicio 2 - Complementado

Diagrama de Flujo:
Código de la solución:

El código mostrado realiza lo requerido por el ejercicio número 2. Dentro de la etiqueta


SETUP configuramos los pines, en este caso se configuraron todos pines del puerto
D como salidas, y los pines 0 y 1 del puerto B como entradas. En la etiqueta INICIO
se evalúa si el botón de reset (RB1) está en 1 lógico. Debido a que esta entrada
permanece en 1 lógico normalmente, el resultado de la evaluación será verdadero.
Lo cual ejecutará lo que se encuentra dentro de la etiqueta RSTOFF. Dentro que esta,
evaluamos si el botón del reloj (RB0) se encuentra en 0 lógico, como el botón
normalmente está en 0, la evaluación es verdadera, ahora se evaluará si el botón se
encuentra en 1 lógico, en caso de que el botón no haya sido presionado, se ejecutará
“goto INICIO”. En caso el botón haya sido presionado, la evaluación resultará
verdadera y se incrementa en 1 a la variable cuentaCP, luego se compara si este
valor es igual a 2, si el botón RB0 fue presionado 1 vez se ejecutará la línea 34 del
código, si este fue presionado 2 veces, se ejecutará la línea 35, la cual incrementa en
1 a los bits del puerto D. Cabe recalcar que la variable cuentaCP no incrementa su
valor si el botón RB0 se mantiene [Link]ás, si el botón de reset (RB1) es
presionado, se ejecutará lo que está dentro de la etiqueta RSTON, la cual limpia la
variable cuentaCP y los bits del puerto D.

Circuito implementado:
Ejercicio 3 - Complementado

Diagrama de Flujo:
Código de la solución:
Explicación:
Este problema es muy similar a la pregunta 2. Ambos emplean una verificación de
flanco de subida. Es por ello que la lógica empleada para ambos casos es la misma.
La lógica de verificación del número primo se solucionó empleando lo aprendido en
clase para evaluar un valor en el puerto de entrada D.
Luego de eso, solo fue cuestión de diferenciar los casos y prender el led en caso se
verifique un número primo en la entrada del puerto D.
El diagrama de flujo es sumamente simple. Se tiene 6 casos válidos y se controla
mediante un flanco de subida de un CLOCK. Solo cuando se presente el flanco de
subida, se evaluará si existe un número primo en las entradas del puerto D.
En cada una de estas evaluaciones se busca evaluar solo los 4 bits menos
significativos. Por ende, hay que enmascarar o filtrar los 4 más significativos. Para
ello, se hace uso de la función lógica ‘and’ bit por bit con el valor 0x0F. Con ello solo
se necesita evaluar ese valor.
El registro STATUS cuenta con un bit bandera que se enciende cuando el resultado
de una operación aritmética o lógica dé como resultado el valor de cero. Es decir,
podemos restar el valor del puerto con el número primo que se evalúe para verificar
si se encuentra o no en el puerto. Una vez determinado si la resta, con el número
primo da cero, se prende el led y regresa al inicio a esperar otro flanco de subida. Si
no se encontrara un número primo, se apagará el led.
Este proceso se realiza idénticamente para cada número y eso es todo el proceso.
Circuito electrónico:
El circuito presentado ha sido armado correctamente.
Ejercicio 4 - Complementado
Diagrama de flujo:
Código de la solución:

Para este ejercicio se tuvo que elaborar la tabla de verdad y el mapa de Karnaugh
para determinar la ecuación booleana que determina si RB5=0 o RB5=1.
Tabla de verdad:
Mapa de Karnaugh:

Ecuación lógica simplificada:

El código mostrado realiza lo requerido por el ejercicio número 4. Dentro de la etiqueta


SETUP configuramos los pines, en este caso se configuraron todos pines del puerto
B como salidas, y los pines 0,1,2 y 3 del puerto D como entradas. Dentro de la etiqueta
inicio, evaluamos si el pin RD1 es igual a 1 lógico, si el resultado es verdadero se
ejecuta la línea 20 del código y se ejecuta lo que está dentro de la etiqueta TOLDO,
es decir, se da el valor de 1 lógico al pin RB5, lo cual represente a bajar el toldo, y
luego vuelve a INICIO. Si la evaluación realizada resulta falsa, se ejecuta la etiqueta
NOLLUEVE, donde se evalúa si el pin RD3 tiene como valor a 1, si la evaluación es
falsa, se ejecuta “goto TOLDO” y se ejecuta lo que está dentro de la etiqueta. Si la
evaluación es verdadera, se ejecuta “goto HAYSOL”, dentro de esta etiqueta se
evalúa si el pin RD0 es igual a 1 lógico, si el resultado es falso se ejecuta la etiqueta
TOLDO, pero si el resultado es verdadero se da el valor de 0 lógico al pin RB5, lo cual
representa a subir el toldo.
Circuito implementado:

También podría gustarte