Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Lab: Multiplexado de puertos en Microcontroladores y Sistemas Embebidos, Ejercicios de Microcontroladores

Una práctica de laboratorio en la que se enseña a programar en lenguaje c para el microcontrolador pic16f877a y a utilizar el multiplexado de los puertos de entrada y salida del microcontrolador para conectar múltiples visualizadores (displays) de siete segmentos a un mismo puerto del microcontrolador. Se proporcionan instrucciones detalladas para crear un nuevo proyecto con el pic c compiler, escribir y analizar código, configurar los pines del puerto, enviar datos por el puerto, leer el estado del puerto y crear un retardo en milisegundos. Se incluyen ejemplos de código y se proporciona una tabla con los valores de los segmentos que deben de estar activos para desplegar los símbolos y dígitos. Se espera que el estudiante modifique y compile el programa para que los displays desplieguen un valor inicial de 00 y para que realice la cuenta de 0 hasta 25 utilizando los dos displays.

Tipo: Ejercicios

2021/2022

Subido el 10/04/2024

aaron-esquivel-4
aaron-esquivel-4 🇲🇽

1 documento

1 / 10

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
ACA-ING-MA403
CETYS
Universidad Escuela
de Ingeniería Campus
Ensenada
FORMATO DE PRÁCTICAS DE LABORATORIO.
Fecha de elaboración
28 de Febrero de 2024
Elaborado por
M.I.I. Oskar Sandoval
Supervisado por
Dr. Gerardo Hirata
Aceptado por
M.C. Carlos Aleman / Director Escuela de Ingeniería
DATOS DE IDENTIFICACIÓN
Carrera(s)
IMEC
Nombre de la asignatura
Microcontroladores y Sistemas
Embebidos
Clave
ICE409
Nombre de la práctica
Multiplexado de puertos de Entrada/Salida
Duración (horas)
2
Número de la practica
5
JUSTIFICACIÓN
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga Lab: Multiplexado de puertos en Microcontroladores y Sistemas Embebidos y más Ejercicios en PDF de Microcontroladores solo en Docsity!

ACA-ING-MA

CETYS

Universidad Escuela

de Ingeniería Campus

Ensenada

FORMATO DE PRÁCTICAS DE LABORATORIO.

Fecha de elaboración (^) 28 de Febrero de 2024 Elaborado por (^) M.I.I. Oskar Sandoval Supervisado por (^) Dr. Gerardo Hirata Aceptado por M.C. Carlos Aleman / Director Escuela de Ingeniería DATOS DE IDENTIFICACIÓN Carrera(s) (^) IMEC Nombre de la asignatura (^) Microcontroladores y Sistemas Embebidos Clave ICE Nombre de la práctica Multiplexado de puertos de Entrada/Salida Duración (horas) 2 Número de la practica 5 JUSTIFICACIÓN

Introducción Los puertos del microcontrolador PIC16F877A son programables para realizar diversas tareas específicas. Algunas de las funciones con las que cuentan los PIC son: Comparadores de nivel, canales de 10-bits para el convertidor analógico-digital, modulación de ancho de pulso (PWM), comunicación serial síncrona por medio de SPI o I²C y comunicación serial asíncrona por medio de UART. En la práctica anterior se utilizaron los puertos de entrada/salida de un microcontrolador PIC para mostrar datos numéricos de tal forma que con un puerto se podía representar un número de 0 hasta 8 bits. Por lo tanto, se podían representar tantos números como puertos hubiesen disponibles. Para solucionar este inconveniente es posible utilizar un mismo puerto multiplexando los datos a diferentes salidas, es decir, dividir en tiempo los valores en el puerto de salida del microcontrolador. En esta práctica se utilizará un mismo puerto del microcontrolador PIC16F877A para controlar varios displays de 7 segmentos. El display de 7 segmentos o visualizador de 7 segmentos es un componente que se utiliza para la representación de números en muchos dispositivos electrónicos debido en gran medida a su simplicidad. Aunque externamente su forma difiere considerablemente de un diodo LED (diodos emisores de luz) típico, internamente están constituidos por una serie de diodos LED con unas determinadas conexiones internas. A cada uno de los segmentos que forman el display se les denomina por las letras a, b, c, d, e, f y g. Están ensamblados de forma que se permita activar cada segmento por separado consiguiendo formar cualquier dígito numérico.

  1. Crear un nuevo proyecto con el PIC C Compiler. De ser necesario, refiérase a prácticas anteriores.
    1. Escribir en el editor y analizar (de acuerdo a lo estipulado en la introducción) las siguientes líneas de código.
    2. En el menú de Compile , presione Build y verifique que no existan errores en la compilación. ¿Qué función realiza la línea set_tris_a(0b00000011)? Establece los dos primeros pines del puerto A como entradas, mientras que los restantes se configuran como salidas.
    3. Abra el simulador Proteus y realice el siguiente circuito.
    4. Modifique los parámetros del PIC16F877A haciendo doble-click. Modifique la frecuencia del oscilador a 4MHz y elija la ruta del archivo en lenguaje máquina (.hex) que utilizará el microcontrolador.
    5. Ejecute la simulación con el botón PLAY en la parte inferior izquierda y observe los resultados. ¿Qué número se despliega en los displays? 0 0 ¿Por qué? En el código, se envía el valor hexadecimal 63 al output b, que equivale a 111111 en binario, lo cual resulta en la activación de solo 6 líneas del display. 7. Modifique la línea output_b(0x3f) para que ahora despliega el número 1. Escríbala y muestre la captura de pantalla en Proteus void main() { //TODO: User Code set_tris_b(0b00000000); set_tris_a(0b00000011); output_b(0b0000110); while(TRUE) { } }
  1. Cree un arreglo llamado DISPLAY que contenga los dígitos del 0 al 9. (Utilice la tabla que se encuentra en el punto no.1 de trabajo extra). Escriba la línea con el arreglo declarado. char display []={0x3F,0X06,0X5B,0X4F,0x66,0X6D,0X7D,0X07,0X7F,0X6F};
  2. Modifique el código como el que se muestra en la figura y simule para verificar que los datos ingresados son correctos.
  1. Modifique y compile el programa para que realice la cuenta de 0 hasta 25 utilizando los dos displays. #include <practica5.h> void main() { //TODO: User Code set_tris_b(0b00000000); set_tris_a(0b00000011); char display []={0x3F,0X06,0X5B,0X4F,0x66,0X6D,0X7D,0X07,0X7F,0X6F}; while(1){ for(int i=0;i<=25;i++){ output_b(display[i/10]); output_low(PIN_A3); delay_ms(50); output_high(PIN_A3); output_b(display[i % 10]); output_low(PIN_A2); delay_ms(50); output_high(PIN_A2); } } }
  1. Cargue el código desarrollado al PIC16F877A utilizando el programador de su elección. Construya el circuito completo en un protoboard y verifique su funcionamiento. Los botones se utilizarán para el trabajo extra. TRABAJO EXTRA Trabajo extra y cuestionario
  2. Cree una tabla con los valores de los segmentos que deben de estar activos para desplegar los siguientes símbolos y dígitos.

Dígito g f e d c b a Hex

0 0 1 1 1 1 1 1 0x3F

1 0 0 0 0 1 1 0 0X

2 1 0 1 1 0 1 1 0X5B

3 1 0 0 1 1 1 1 0X4F

4 1 1 0 0 1 1 0 0X

5 1 1 0 1 1 0 1 0X6D

6 1 1 1 1 1 0 1 0X7D

7 0 0 0 0 1 1 1 0X

8 1 1 1 1 1 1 1 0X7F

9 1 1 0 1 1 1 1 0X6F

a 1 0 1 1 1 1 1 0X5F

b 1 1 1 1 1 0 0 0X7C

c 0 1 1 1 0 0 1 0X

d 1 0 1 1 1 1 0 0X5E

e 1 1 1 1 0 0 1 0X

f 1 1 1 0 0 0 1 0X

dos conceptos fundamentales que arrojan luz sobre este fenómeno.

● ¿Cuál es la frecuencia a partir de la cual no percibimos parpadeo?

La mayoría de las personas generalmente no percibe parpadeo en una fuente de luz cuando su

frecuencia supera los 60 Hz. Aunque los expertos no siempre coinciden en una cifra exacta, la

conclusión general es que la mayoría de los humanos dejan de percibir parpadeo a velocidades

comprendidas entre 30 y 60 fotogramas por segundo.

● Conclusiones.

En esta ocasión de aprender a programar en C fue bastante interesante para mí. Resultó ser bastante

accesible, ya que ya tenía algo de experiencia en programación. Durante la práctica, se explicaron de

manera clara y fácil de entender algunas funciones nuevas en microcontroladores que no conocía

previamente. Además, me di cuenta de que los microcontroladores pueden ser costosos y necesitan

varios programas especiales para funcionar correctamente. En resumen, esta experiencia no solo

mejoró mis habilidades de programación, sino que también me dio una mejor comprensión de la

complejidad asociada con los microcontroladores.

● Entregar reporte escrito en Blackboard. Formato PDF.

¿Cuántos FPS puede ver el ojo humano? Entre 60 y 90 hz https://www.laps4.com/preguntas-y-respuestas/cuantos-fps-puede-ver-el-ojo-humano