Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
FACULTAD DE ENERGÍA LAS INDUSTRIAS Y LOS RECURSOS NATURALES NO RENOVABLES Carrera Computación LABORATORIO DE SISTEMAS DIGITALES “HELLO WORLD CON MICROCONTROLADORES” Integrante(s) Brigith Lojan Gerardo Quizhpe Cecilia Trueba Loja - Ecuador 2022 ÍNDICE I. INTRODUCCIÓN 3 II. OBJETIVOS. 3 III. MATERIALES Y MÉTODOS IV. RESULTADOS 5 V. CONCLUSIONES Y RECOMENDACIONES 5 VI. BIBLIOGRAFÍA 5 VII. ANEXOS 7 I. INTRODUCCIÓN La idea de la programación surge con la evolución de la electrónica y con ello los primeros transistores a microcontroladores, a causa de la complejidad de la electrónica, la tecnología ha hecho que los componentes cada vez sean más pequeños y con mayor capacidad tanto en almacenamiento y funcionamiento.Los lenguajes ensambladores llevan mucho tiempo entre nosotros. Aunque hoy existen lenguajes de programación de alto nivel, todavía se sigue utilizando el lenguaje ensamblador para la programación de dispositivos, controladores de hardware y mucho más. Además en los últimos años, la plataforma de desarrollo de Arduino ha crecido notablemente. Esto se debe a su fácil manejo, contribuciones de hardware y software e interés de empresas como Intel, Microsoft, Texas Instruments, etc., en adaptar sus productos a esta plataforma. Una de las tarjetas más usadas es la Arduino Uno, cuyo microcontrolador núcleo es el atmega328p.El ATmega328P es un microcontrolador de arquitectura RISC avanzado AVR de Atmel, de alto desempeño, bajo consumo y optimizado para compiladores C. Con la presente práctica hemos conocido las herramientas de Arduino y su respectivo proceso de programación, tanto en Microchip Studio utilizando el lenguaje ensamblador para el manejo de microcontroladores AVR, como al simularlo en proteus . Para comprobar la viabilidad de diversos sistemas de control de tráfico y así poder comparar su funcionalidad, se decidió implementar un semáforo capaz de mostrar su funcionamiento. El diseño consiste en un semáforo, el cual tendrá tres leds que se encenderán y apagaran en los segundos señalados. Es decir contará con tres luces (rojo, amarillo, verde) la cual cumple la funcion de alertarnos con el significado de cada uno de los colores del semaforo. Este proyecto fue muy interesante ya que representa lo que sabemos de un semáforo,que el rojo es para detenerce o parar, el amarillo representa cambio o disminuya la velocidad del vehiculo y por ultimo verde representa siga o adelante. II. OBJETIVOS. Principal: ● Emplear lenguaje ensamblador para el manejo de microcontroladores AVR. Específicos: ● Realizar la codificación del semáforo en microchip studio con el microcontrolador ATMEGA328P ● Implementar y/o simular un semáforo en proteus ● Comprender las partes del microcontrolador ATMEGA328P ● Experimentar con los puertos de salida del microcontrolador ATmega328p. ● Utilizar herramientas de software para simular la operación del microcontrolador. ● Armar el circuito en físico con la ayuda de la placa de desarrollo Arduino Uno para el manejo de salidas de microcontroladores. III. MATERIALES Y MÉTODOS Materiales • 1 Protoboard • 1 Fuente de poder de +5V • 1 Osciloscopio • 1 Multímetro • 1 Arduino Uno • 1 Cable USB tipo B (programación de Arduino) • N Cables Jumper macho – macho, o similar • 3 Resistores de 330 Ω • 1 Led verde • 1 Led rojo • 1 Led amarillo • Software Microchip Studio • Software Proteus • Software XLoader • Datasheets de ATmega328p. • Datasheets de Arduino Uno. Métodos 1. Cree un nuevo proyecto en ensamblador usando Microchip Studio. 2. Realice un programa en ensamblador que genere señales de salida que controlan un semáforo con tres leds, con las siguientes características: ● Usar el microcontrolador ATMega328p, con la placa de desarrollo Arduino Uno. ● Tener en cuenta el oscilador a emplear de 16 MHz. ● Usar los puertos PB0 (Rojo), PB1 (Amarillo), PB2 (Verde). ● La señal de salida debe mantener el LED Rojo encendido: 2 segundos (apagados amarillo y verde), luego encender 1 segundo el LED amarillo (apagados rojo y verde), luego encender 2 segundos el LED verde (apagados amarillo y rojo). ● Usar subrutinas. ● Colocar comentarios dentro del código. 3. Genere el archivo .HEX y simule el mismo en Microchip Studio. 4. Realizar una simulación del código, programando el microcontrolador con el uso del software Proteus. 5. Realice la programación del Arduino Uno y cargue el archivo .hex con la ayuda del software XLoader. 6. Con la ayuda del docente en el laboratorio de Electrónica, mida las señal generada en los puertos PB0, PB1, PB2 con el osciloscopio, y compruebe que los tiempos de encendido y apagado sean los solicitados en el numeral 2. IV. RESULTADOS Se hizo uso de las instrucciones para la configuración del semáforo: ● LDI: Carga un valor constante a un registro determinado ● RJMP: Es un salto relativo, es decir salta en un rango que se encuentra en la instrucción. ● DEC: Decrementa en 1 al registro de trabajo. ● BRNE: Salto condicionado. ● Etiquetas: que nos sirven para crear las subrutinas (L1. delay) CODIFICACIÓN En la codificación en emsamblador se configuro a los registros 16,17 y 18 como las salidas de los leds, tmabien se cambio de nombre a los registro es decir el R16(rojo), R17(amarillo), R18(verde). SIMULACIÓN En la herramienta proteus podemos simular el semáforo cargando el archivo hex, y así poder ver su funcionamiento. Por lo que se procede a ocupar los pines de salida declarados por Atmega328P, para PB0, PB1 y PB2. Cargamos el archivo hex al xloader, ya que esta herramienta nos permite enviar el código en ensamblador a nuestro Arduino. Semáforo armado y funcionando. CÁLCULOS REALIZADOS En las primeras 100 vueltas que da la rutina se demora un tiempo de 18.6874 us. t=18.6874 useg x (250) x (213) = 995.10405 ms ->0.99510405s Por lo que se obtiene un aproximado a 1s : 995104.05 segundos. CÁLCULOS OBTENIDOS Se obtuvo un tiempo de duración de 1.2 s en cada led, realizados en el osciloscopio. V. CONCLUSIONES HIPÓTESIS CONCLUSIÓN (EXTRACTO) ● La codificación del semáforo presenta diferentes opciones para realizarla tanto de manera física, como simulada,al utilizar diversas herramientas que nos permiten poner en práctica nuestros conocimientos sobre sistemas digitales. ● La experimentación con los puertos de salida del microcontrolador ATmega328p es de gran importancia para los estudiantes que están aprendiendo sobre sistemas digitales. ● Implementar un semáforo tanto en físico como simulado permite conocer cómo se generan las señales de salida que controlan un semáforo con tres leds. ● Podemos concluir que con la realización de la práctica hemos utilizado las herramientas como Microchip Studio que nos sirvió para programar en lenguaje ensamblador usando el microcontrolador ATMega328p, la herramienta Proteus que nos ayudó a implementar y simular para luego armar el circuito del semáforo en físico . ● Podemos concluir que la frecuencia de señal generada por el puerto PB0 fue de 10 Hz esto se puede obtener con ayuda del osciloscopio, de esta manera hemos conocido sobre los distintos puertos del microcontrolador ATmega328p como fue el caso de los puertos PB0, PB1 y PB2. ● Pudimos observar que la señal de salida del LED Rojo encendido fue de 2 segundos (apagados amarillo y verde). el LED Amarillo encendido fue de 1 seundo (apagados rojo y verde) y el LED Verde encendido fue de 2 segundos (apagados amarillo y rojo). VI. RECOMENDACIONES ● Tener en cuenta la frecuencia con la que trabaja el microcontrolador ATMEGA 328p y también el voltaje máximo que puede soportar. ● Verificar el datasheet para poder ver cuales son los pines de entrada y salida, entre otros. ● Al realizar un programa en ensamblador se recomienda colocar comentarios dentro del código, para poderse guíar con los demás compañeros que conforman el grupo de trabajo. ● Usar programas (Proteus) que nos permitan simular los resultados obtenidos de la codificación y así poder ir viendo cómo vamos y también poder corregiralgunos errores. VII. PREGUNTAS DE CONTROL: ¿Las señales generadas en los puertos PB son iguales si se usa otro valor de oscilador?, explique. No, porque si cambiamos el valor del oscilador nuestras señales de estado van a cambiar ya que este convierte la energía de corriente continua en corriente alterna de una determinada frecuencia. ¿Cuál es la frecuencia de la señal que se ha generado en el puerto PB0 medida en el osciloscopio? La frecuencia generada en el osciloscopio es de 10 Hz VIII. BIBLIOGRAFÍA [1] A. Molina. (26 Mayo, 2016). “Microcontrolador ATmega328p”. Escuela Técnica Superior de Tecnología e Informática. Disponible en: https://docplayer.es/20816120-Programacion-del-microcontrolador-atmega328p.ht ml [2] J. González. (15 Junio, 2018). “Introducción a los microcontroladores y lenguaje ensamblador”. Manual de microcontroladores. Disponible en:https://www.unioviedo.es/ate/alberto/manualPic.pdf [3] Santiago, F., Los Microcontroladores AVR de ATMEL, (2012): Universidad Tecnológica de Mixteca: 978-607-95222-7-8 IX. ANEXOS Semáforo implementado en el arduino 1, para luego realizar sus respectivas mediciones en cada led con el osciloscopio. https://docplayer.es/20816120-Programacion-del-microcontrolador-atmega328p.html https://docplayer.es/20816120-Programacion-del-microcontrolador-atmega328p.html https://www.unioviedo.es/ate/alberto/manualPic.pdf Medición del led rojo Medición del led amarillo Medición del led verde
Compartir