0 calificaciones0% encontró este documento útil (0 votos)
4 vistas5 páginas
Time Counter
La práctica se centra en la configuración y uso de los puertos de entrada y salida del microcontrolador ATmega para controlar dispositivos y leer señales digitales mediante programación en C. Se implementaron ejercicios prácticos que fortalecieron la comprensión del funcionamiento de los registros DDRx, PORTx y PINx, así como la interacción entre hardware y software. Los estudiantes desarrollaron competencias en el diseño y programación de sistemas embebidos, sentando las bases para aplicaciones más complejas en telecomunicaciones y automatización.
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 calificaciones0% encontró este documento útil (0 votos)
4 vistas5 páginas
Time Counter
La práctica se centra en la configuración y uso de los puertos de entrada y salida del microcontrolador ATmega para controlar dispositivos y leer señales digitales mediante programación en C. Se implementaron ejercicios prácticos que fortalecieron la comprensión del funcionamiento de los registros DDRx, PORTx y PINx, así como la interacción entre hardware y software. Los estudiantes desarrollaron competencias en el diseño y programación de sistemas embebidos, sentando las bases para aplicaciones más complejas en telecomunicaciones y automatización.
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
{
UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE INGENIERIA
GUÍA DE PRÁCTICAS VERSIÓN: 1
PERIODO ACADÉMICO: 2026 1S Página 1 de 5 CARRERA: DOCENTE: SEMESTRE: CUARTO TELECOMUNICACIONES LEONARDO RENTERIA PARALELO: A NOMBRE DE LA ASIGNATURA: CÓDIGO DE LA LABORATORIO A UTILIZAR: MICROPROCESADDORES Y ASIGNATURA: ELECTRONICA MICROCONTROLADORES. TEP120344
Objetivos de la Práctica: Configurar y utilizar los puertos de entrada y salida digitales del microcontrolador ATmega para controlar dispositivos externos y leer señales digitales mediante programación en lenguaje C. Equipos, Materiales e Insumos:
- Placa de desarrollo o circuito mínimo - LEDs - Resistencias (220 Ω – 330 Ω) - Pulsadores - Switches - Protoboard y cables - Programador ISP (USBasp) - Microchip Studio
Introducción: Los microcontroladores constituyen una de las tecnologías más importantes en el desarrollo de sistemas electrónicos modernos, debido a su capacidad para controlar y procesar información proveniente de diferentes dispositivos. Una de sus principales características es la posibilidad de interactuar con el entorno mediante los periféricos de entrada y salida (E/S), los cuales permiten recibir señales de elementos externos, como pulsadores y switches, así como controlar dispositivos de salida, entre ellos LEDs, relés y otros actuadores. Gracias a esta capacidad, los microcontroladores son ampliamente utilizados en aplicaciones de automatización, instrumentación, telecomunicaciones y control industrial.
En la presente práctica se trabajó con el microcontrolador ATmega, realizando la configuración de sus puertos digitales mediante programación en lenguaje C utilizando Microchip Studio. Se implementaron diferentes ejercicios que permitieron configurar pines como entradas y salidas, controlar el encendido y apagado de LEDs, leer el estado de pulsadores y switches, y desarrollar una aplicación capaz de visualizar el resultado de la suma de dos números binarios ingresados mediante interruptores. Estas actividades permitieron comprender el funcionamiento de los registros DDRx, PORTx y PINx, fundamentales para el manejo de los puertos digitales del microcontrolador. El desarrollo de esta práctica permitió fortalecer los conocimientos teóricos y prácticos relacionados con la programación de sistemas embebidos, comprendiendo la interacción entre el hardware y el software para el control de dispositivos electrónicos. Además, se verificó experimentalmente el correcto funcionamiento de los circuitos implementados, consolidando las competencias necesarias para el diseño y desarrollo de aplicaciones basadas en microcontroladores.
Marco Teórico: Microcontroladores AVR: Los microcontroladores AVR son dispositivos electrónicos programables que integran en un solo circuito una unidad de procesamiento (CPU), memoria y periféricos de entrada y salida. Son ampliamente utilizados en sistemas embebidos debido a su bajo consumo de energía, facilidad de programación y capacidad para controlar dispositivos electrónicos. En este proyecto se utiliza un microcontrolador de la familia AVR para implementar un contador digital mediante el uso de un temporizador configurado como contador externo.
Puertos de Entrada y Salida (GPIO):
Los puertos de entrada y salida, conocidos como GPIO (General Purpose Input/Output), permiten la comunicación entre el microcontrolador y el entorno. Cada pin puede configurarse como entrada para recibir señales externas o como salida para controlar dispositivos como LEDs, relés o motores. La dirección de cada pin se configura mediante los registros DDR (Data Direction Register). Un valor de '1' configura el pin como salida y un valor de '0' como entrada. El estado lógico de los pines se controla mediante los registros PORT y PIN.
Temporizador/Contador Timer0: El Timer0 es un periférico de 8 bits capaz de funcionar tanto como temporizador, utilizando el reloj interno del microcontrolador, como contador, empleando pulsos provenientes de una fuente externa. En este proyecto se configura en modo contador para registrar cada pulso recibido en la entrada T0 (PD4). El registro TCNT0 almacena el valor actual del conteo y puede representar valores entre 0 y 255. La configuración del modo de funcionamiento se realiza mediante los registros TCCR0A y TCCR0B.
Contador Externo: Cuando el Timer0 trabaja en modo contador externo, incrementa automáticamente el contenido del registro TCNT0 cada vez que detecta un flanco de subida o de bajada en el pin T0, dependiendo de la configuración seleccionada. En esta práctica se utiliza el conteo por flanco ascendente, es decir, cuando la señal cambia de nivel lógico bajo (0) a alto (1). Este mecanismo permite contabilizar eventos externos sin necesidad de que el programa supervise continuamente el estado del pulsador.
Registro TCNT0: El registro TCNT0 (Timer/Counter Register 0) contiene el valor del contador de 8 bits. Cada pulso detectado incrementa automáticamente este registro. Cuando alcanza el valor máximo de 255 y recibe un nuevo pulso, el contador vuelve a cero, produciéndose un desbordamiento (overflow).
Rebote Mecánico del Pulsador:
Los pulsadores mecánicos presentan un fenómeno conocido como rebote (debounce), el cual ocurre debido a que los contactos internos no cambian de estado instantáneamente al presionarlos o soltarlos. Como consecuencia, el microcontrolador puede detectar múltiples pulsos durante una sola pulsación. Para minimizar este problema, es común implementar un retardo por software utilizando funciones como "_delay_ms()", permitiendo que los rebotes desaparezcan antes de aceptar una nueva pulsación.
Visualización Binaria mediante LEDs:
Los LEDs constituyen una forma sencilla de visualizar información digital. En este proyecto, el valor almacenado en el contador se representa en formato binario utilizando ocho LEDs. Cada LED corresponde a un bit del número almacenado, donde un LED encendido representa un nivel lógico alto (1) y un LED apagado representa un nivel lógico bajo (0). Esta representación permite observar directamente el incremento del contador en código binario.
Lenguaje de Programación C para Sistemas Embebidos:
El lenguaje C es uno de los más utilizados para la programación de microcontroladores debido a su eficiencia, velocidad de ejecución y acceso directo a los registros del hardware. Mediante el uso de bibliotecas como "<avr/io.h>" y "<util/delay.h>", es posible configurar periféricos internos, controlar puertos de entrada y salida e implementar retardos necesarios para aplicaciones de control digital.
Puertos digitales en AVR
Los puertos de entrada/salidas digitales permiten al microcontrolador interactuar con el mundo exterior, ya sea recibiendo señales desde sensores (entrada) o controlando actuadores, LEDs o relés (salida). En los microcontroladores Atmel AVR, los puertos se manejan a través de registros específicos que permiten configurar la dirección y el estado de los pines. Cada puerto está compuesto por 8 pines digitales, identificados como Px0 a Px7 (donde X = A, B, C, D según el puerto). Por ejemplo:
Cada puerto se controla mediante 3 registros principales:
Registro Función DDRx Configura el pin como entrada (0) o salida (1) PORTx Escribe un valor lógico o activa pull-up PINx Lee el estado del pin x representa el puerto: B, C, D, etc.
La configuración de pines es la siguiente:
Modo salida • Escribimos 1 en DDRx • El pin puede entregar 5V (alto) o 0V (bajo) Modo entrada • Escribimos 0 en DDRx • El pin puede leer señales externas • Si PORTx = 1, se habilita resistencia pull-up interna
Modo DDRx PORTx Función
Salida 1 0 → bajo / 1 → alto Control de actuadores o LEDs Entrada 0 0 → flotante / 1 → pull-up Lectura de sensores o botones
Procedimiento:
1. Arme el circuito de la figura. Considere Vcc, Gnd y RST.
2. Crear nuevo proyecto y crear un código para encender y apagar los 4 leds cada 100ms. Agrega las librerías de retardo y configura correctamente la frecuencia de oscilador
3. Verificar el funcionamiento del código anterior con el uso del osciloscopio.
4. Cambiar el código anterior para encender el led correspondiente de acuerdo con el botón presionado. 5. Remplace los botones por switches y cree un código que permita visualizar la suma de dos números de dos bits ingresados y cuyo resultado se muestre en los LEDs.
Conclusiones: La práctica realizada permitió comprender de manera integral el funcionamiento de los periféricos de entrada y salida del microcontrolador ATmega, así como la importancia que tienen dentro del desarrollo de sistemas embebidos. Mediante la configuración de los registros DDRx, PORTx y PINx se logró establecer correctamente el comportamiento de cada pin, permitiendo controlar dispositivos de salida como los LEDs y leer el estado de dispositivos de entrada como pulsadores y switches. Esto permitió evidenciar que la correcta configuración de los puertos digitales es un paso fundamental para garantizar el funcionamiento adecuado de cualquier aplicación basada en microcontroladores.
Durante el desarrollo de la práctica también se fortalecieron los conocimientos sobre programación en lenguaje C aplicada a sistemas embebidos, comprendiendo la relación existente entre el software y el hardware del microcontrolador. Se verificó que las instrucciones programadas permiten manipular directamente los registros internos del dispositivo, facilitando el control de los diferentes periféricos y logrando que el sistema responda de acuerdo con las condiciones establecidas en el programa. Asimismo, se observó la importancia de realizar una adecuada conexión del circuito y de verificar experimentalmente su funcionamiento para identificar posibles errores de programación o de montaje.
Finalmente, esta práctica permitió reforzar las habilidades adquiridas en la asignatura de Microprocesadores y Microcontroladores, desarrollando competencias tanto en el diseño como en la implementación de sistemas digitales básicos. Los conocimientos obtenidos constituyen una base importante para prácticas posteriores, en las que se emplearán otros periféricos del microcontrolador, como temporizadores, interrupciones, comunicación serial y conversores analógico-digitales, contribuyendo al desarrollo de aplicaciones de mayor complejidad en el área de las telecomunicaciones y la automatización. Códigos:
Resultados: Al realizar esta práctica los estudiantes configuran y utilizan los puertos de entrada y salida digitales del microcontrolador ATmega para controlar dispositivos externos y leer señales digitales mediante programación en lenguaje C.
Anexos: Referencias bibliográficas: [Link] ATmega328P_Datasheet.pdf Fecha de Revisión y Aprobación: 01/04/2026