Este documento presenta tres programas en lenguaje ensamblador para el microcontrolador ATMEGA328P utilizando el entorno de programación AVR-STUDIO:
1) Un programa para calcular la mediana de una tabla almacenada en la SRAM.
2) Un programa para controlar dos leds mediante dos conmutadores.
3) Un programa contador de pulsaciones que muestra el número de pulsaciones en un display de 7 segmentos.
Se explican los pasos para crear y simular los programas en AVR-STUDIO así como programar el microcontrolador.
Este documento proporciona instrucciones para conectar y programar un módulo LCD controlado por conexión serie o I2C. Incluye cómo enviar comandos de control al LCD, programar mensajes predefinidos, mostrar la hora y fecha, y configurar una alarma.
Este artículo describe cómo programar microcontroladores PIC usando el compilador PCW, el cual permite programarlos en lenguaje C en lugar de ensamblador. Esto agiliza el desarrollo de programas, ya que el lenguaje C es más sencillo que el ensamblador. Se explican las características y funciones principales del compilador PCW, incluyendo el manejo de puertos, interrupciones, retardos, comunicación serial y módulos LCD. También se incluye un ejemplo de cómo escribir en una pantalla LCD.
La CPU tiene 14 registros internos de 16 bits cada uno. Los primeros cuatro registros (AX, BX, CX, DX) son registros de uso general y también pueden usarse como registros de 8 bits (AH, AL, BH, BL, etc.). Existe una variedad de registros especializados como DS, CS, SP, IP y F. Es posible visualizar los valores de los registros usando el programa Debug y comandos como -r.
Este documento proporciona una introducción a la programación en Protón IDE Plus para microcontroladores PIC. Explica qué es un microcontrolador y sus componentes principales. Luego describe las diferencias entre microprocesadores y microcontroladores, los sistemas numéricos binarios, hexadecimales y decimales, y las operaciones lógicas básicas AND, OR y NOT. Finalmente, resume la estructura básica de un programa en PIC BASIC, incluidas las declaraciones, etiquetas y variables.
Este documento proporciona información sobre una guía de aprendizaje para programar un microcontrolador. Explica cómo configurar los puertos de entrada y salida, y cómo programar el microcontrolador para controlar procesos. Incluye tutoriales sobre el software MPLAB y el hardware necesario como el microcontrolador PIC16F84, así como conceptos básicos de programación en ensamblador.
Este documento describe el uso de teclados y LCD con microcontroladores. Explica que los teclados son una forma común de introducir información y que suelen tener un formato matricial para reducir conexiones. También describe la conexión típica de un teclado 4x4 y cómo funcionan los LCD, incluyendo su inicialización y librerías. Finalmente, presenta un proyecto que enciende LEDs usando un teclado 4x4, LCD y un circuito demultiplexor para reducir las salidas necesarias.
Este documento describe las aplicaciones y el funcionamiento básico del microcontrolador PIC16F84. Explica la organización de la memoria, los registros internos como el contador de programa y la pila, y los puertos de entrada y salida. También resume el conjunto de instrucciones del PIC16F84 incluyendo instrucciones lógicas, aritméticas, de control y especiales.
El documento describe un módulo convertidor analógico-digital (ADC) que puede convertir señales analógicas de entrada a valores digitales de 10 bits. Explica cómo el ADC puede usarse para medir señales físicas con sensores y enviar los datos digitalizados a una computadora para su procesamiento y monitoreo. También proporciona detalles sobre cómo configurar y usar las funciones del ADC, incluido un ejemplo de código para leer el valor analógico de un potenciómetro y enviarlo por puerto serie.
Este documento proporciona instrucciones para conectar y programar un módulo LCD controlado por conexión serie o I2C. Incluye cómo enviar comandos de control al LCD, programar mensajes predefinidos, mostrar la hora y fecha, y configurar una alarma.
Este artículo describe cómo programar microcontroladores PIC usando el compilador PCW, el cual permite programarlos en lenguaje C en lugar de ensamblador. Esto agiliza el desarrollo de programas, ya que el lenguaje C es más sencillo que el ensamblador. Se explican las características y funciones principales del compilador PCW, incluyendo el manejo de puertos, interrupciones, retardos, comunicación serial y módulos LCD. También se incluye un ejemplo de cómo escribir en una pantalla LCD.
La CPU tiene 14 registros internos de 16 bits cada uno. Los primeros cuatro registros (AX, BX, CX, DX) son registros de uso general y también pueden usarse como registros de 8 bits (AH, AL, BH, BL, etc.). Existe una variedad de registros especializados como DS, CS, SP, IP y F. Es posible visualizar los valores de los registros usando el programa Debug y comandos como -r.
Este documento proporciona una introducción a la programación en Protón IDE Plus para microcontroladores PIC. Explica qué es un microcontrolador y sus componentes principales. Luego describe las diferencias entre microprocesadores y microcontroladores, los sistemas numéricos binarios, hexadecimales y decimales, y las operaciones lógicas básicas AND, OR y NOT. Finalmente, resume la estructura básica de un programa en PIC BASIC, incluidas las declaraciones, etiquetas y variables.
Este documento proporciona información sobre una guía de aprendizaje para programar un microcontrolador. Explica cómo configurar los puertos de entrada y salida, y cómo programar el microcontrolador para controlar procesos. Incluye tutoriales sobre el software MPLAB y el hardware necesario como el microcontrolador PIC16F84, así como conceptos básicos de programación en ensamblador.
Este documento describe el uso de teclados y LCD con microcontroladores. Explica que los teclados son una forma común de introducir información y que suelen tener un formato matricial para reducir conexiones. También describe la conexión típica de un teclado 4x4 y cómo funcionan los LCD, incluyendo su inicialización y librerías. Finalmente, presenta un proyecto que enciende LEDs usando un teclado 4x4, LCD y un circuito demultiplexor para reducir las salidas necesarias.
Este documento describe las aplicaciones y el funcionamiento básico del microcontrolador PIC16F84. Explica la organización de la memoria, los registros internos como el contador de programa y la pila, y los puertos de entrada y salida. También resume el conjunto de instrucciones del PIC16F84 incluyendo instrucciones lógicas, aritméticas, de control y especiales.
El documento describe un módulo convertidor analógico-digital (ADC) que puede convertir señales analógicas de entrada a valores digitales de 10 bits. Explica cómo el ADC puede usarse para medir señales físicas con sensores y enviar los datos digitalizados a una computadora para su procesamiento y monitoreo. También proporciona detalles sobre cómo configurar y usar las funciones del ADC, incluido un ejemplo de código para leer el valor analógico de un potenciómetro y enviarlo por puerto serie.
Este documento presenta un tutorial sobre cómo escribir en un LCD usando un teclado matricial con un PIC. Explica cómo conectar y controlar el LCD y el teclado, así como cómo usar el temporizador Timer0 del PIC para evitar rebotes del teclado. También incluye código C que muestra cómo leer las teclas, mostrar los caracteres en el LCD y usar interrupciones del Timer0 para bloquear el teclado durante 30 ms después de cada pulsación.
Este documento presenta una introducción a la programación en C usando el compilador Hi-Tech para PIC18. Explica las características del compilador, los tipos de datos soportados, constantes, operadores, funciones y declaraciones de control como if-else, for y while. También cubre comentarios y los pasos iniciales para crear y compilar un proyecto en MPLAB usando este compilador.
1) El documento presenta un prólogo que agradece a los lectores por descargar el libro y comparte la pasión del autor por compartir conocimientos sobre microcontroladores.
2) Explica que el autor tuvo dificultades al principio programando en ensamblador y luego encontró herramientas como PicBasic Pro y CCS C que facilitaron su aprendizaje.
3) Con el uso de estas nuevas herramientas, el autor pudo finalmente construir lo que quería y triunfar en el mundo de la programación de microcontroladores.
Este documento describe el puerto serial USART (Universal Synchronous Asynchronous Receiver Transmitter) en los microcontroladores. El puerto USART permite la comunicación bidireccional asincrónica simultánea a través de los registros TXREG y RCREG. Puede operar en modo asincrónico o sincrónico. En modo asincrónico es más común y permite comunicaciones a mayor distancia, aunque más lentas. Se requiere un circuito MAX232 para adaptar los niveles lógicos RS-232 del PC a los niveles TTL del microcontrolador.
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Franz Amaya
Este documento describe las características y funcionalidades del microcontrolador PIC16F877, incluyendo su arquitectura, memoria, puertos de entrada y salida, periféricos, tipos de datos soportados y más. Explica cómo configurar los puertos como entrada o salida y cómo acceder a bits individuales. También presenta ejemplos de código para encender LEDs y enviar secuencias de datos a puertos.
Este documento describe varios proyectos prácticos con el microcontrolador PIC16F84, incluyendo la conexión de LED y dipswitch, el manejo de un display de siete segmentos para hacer un contador decimal, y la técnica de multiplexaje para leer teclados y mostrar datos en displays utilizando menos líneas de E/S. También se incluyen diagramas esquemáticos, diagramas de flujo y código de programa para cada proyecto.
El documento describe los registros PCL y PCLATH que almacenan la dirección del programa counter (PC). También describe la pila de 8 niveles que almacena el valor de PC para las instrucciones CALL y las interrupciones. Finalmente, explica cómo la memoria de programa de 8Kb está paginada en bloques de 2Kb a través de los bits PCLATH<4:3>.
Este documento proporciona una introducción a la programación en lenguaje ensamblador para microcontroladores PIC. Explica conceptos básicos como instrucciones, programas, etiquetas, directivas y la estructura de un programa ensamblador. También describe cómo ensamblar y transferir programas ensamblador al microcontrolador.
El documento describe cómo crear una matriz LED de 8x8 controlada por un microcontrolador PIC18F2550. Explica que las matrices LED se usan comúnmente para mostrar mensajes publicitarios o informativos de manera dinámica. Luego detalla los pasos para construir el circuito, que incluye el microcontrolador, un registro de desplazamiento 74HC164 para multiplexar las filas y columnas de la matriz, y otros componentes. También incluye el código del programa para el microcontrolador para mostrar letras u otros patrones en la matriz LED.
Este documento proporciona una guía rápida para trabajar con una pantalla LCD y un teclado matricial utilizando un PIC16F877. Explica cómo conectar y configurar la LCD y el teclado, inicializarlos, crear mensajes estáticos y dinámicos en la LCD, y leer teclas del teclado para mostrarlas en la LCD. Incluye ejemplos de código para mostrar una tecla leída del teclado 4x3 y 4x4 en la LCD.
programacion con microcontrolador pic 16f84guestf09168b
Este documento introduce la programación del microcontrolador PIC 16F84. Explica las características básicas del PIC 16F84 como su memoria, puertos de entrada y salida, y frecuencia de trabajo. También presenta instrucciones básicas de programación en ensamblador como cargar valores, sumar y restar registros. Finalmente, incluye ejemplos de código para sumar números en diferentes sistemas de numeración.
El documento describe ejemplos de programación de microcontroladores PIC en C. Explica los componentes básicos necesarios para conectar y hacer funcionar un microcontrolador, como la alimentación, señal de reinicio y señal de reloj. Luego, presenta varios ejemplos de programas que ilustran el uso de funciones y periféricos comunes como temporizadores, E/S, comunicación serial y más.
Manejo de perifericos para microcontroladoreLuis Zurita
Este documento describe el manejo de periféricos como displays, pantallas LCD y EEPROM con microcontroladores. Explica cómo mostrar números en displays de 7 segmentos sin usar decodificadores mediante tablas de códigos binarios. También cubre el uso de pantallas LCD, incluyendo sus pines de conexión, librerías de C para inicializar y escribir en ellas, y cómo modificar el puerto de datos.
Este documento contiene información sobre lenguaje ensamblador. Explica que el lenguaje ensamblador es la primera abstracción del lenguaje de máquina y consiste en asociar códigos de operación a palabras clave. También describe la estructura básica de un programa en lenguaje ensamblador y presenta un ejemplo de un programa para hacer parpadear los bits de un puerto. Finalmente, brinda detalles sobre algunas directivas y interrupciones comunes en lenguaje ensamblador.
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CLuis Zurita
Este documento describe el manejo de periféricos como displays, pantallas LCD, teclado matricial con microcontroladores. Explica cómo mostrar números en displays de 7 segmentos usando tablas en lugar de decodificadores. Luego detalla el funcionamiento y códigos de las pantallas LCD, incluyendo ejemplos de uso con lenguaje C. Finalmente introduce brevemente los teclados matriciales 3x4 y 4x4.
1. El documento introduce las interrupciones INT 10H del BIOS y INT 21H del DOS para manejar la entrada y salida de datos desde el teclado y hacia la pantalla. 2. Describe cómo usar las funciones de la INT 10H para controlar la posición del cursor y limpiar la pantalla. 3. Explica que la función 09H del DOS se usa para mostrar salidas en pantalla y la función 0AH para aceptar entradas desde el teclado.
El documento proporciona información sobre diferentes instrucciones del microcontrolador 8051, incluyendo ACALL, ADD, ADDC, AJMP, ANL, DA, JB, INC, JC, CPL, JBC, JNC, JZ, MOV y sus funciones, sintaxis, operación, códigos de operación y descripciones.
El documento describe la organización de la memoria en los microcontroladores PIC16F87X. Estos dispositivos tienen tres bloques de memoria: memoria de programa, memoria RAM y memoria EEPROM. La memoria RAM se divide en cuatro bancos que contienen registros de propósito general y registros de funciones especiales. Los bits del registro STATUS seleccionan qué banco está activo.
Este documento describe cómo visualizar imágenes almacenadas en una tarjeta de memoria MMC en un microcontrolador utilizando un visualizador GLCD monocromático. Explica cómo dibujar las imágenes en un software, grabar los datos en formato hexadecimal en la tarjeta MMC y luego leerlos secuencialmente del microcontrolador para mostrarlas en el GLCD.
Microcontroladores: Programación del microcontrolador ATMega328P.pdfSANTIAGO PABLO ALBERTO
Este documento describe cómo programar un microcontrolador ATMega328P utilizando AVR Studio. Incluye tres programas de ejemplo en ensamblador para contar de 0 a 10 y de 0 a 1000, y para controlar pulsadores y LEDs. El estudiante debe completar los programas, simularlos y depurarlos, y luego programar el microcontrolador y comprobar su funcionamiento con un osciloscopio.
Este programa diseña una calculadora básica que permite al usuario realizar las cuatro operaciones aritméticas (suma, resta, multiplicación y división) ingresando dos números. El programa muestra un menú de opciones y lee la selección del usuario. Luego pide los números, realiza la operación seleccionada y muestra el resultado. Al final, el programa despide al usuario y termina.
Este documento presenta un tutorial sobre cómo escribir en un LCD usando un teclado matricial con un PIC. Explica cómo conectar y controlar el LCD y el teclado, así como cómo usar el temporizador Timer0 del PIC para evitar rebotes del teclado. También incluye código C que muestra cómo leer las teclas, mostrar los caracteres en el LCD y usar interrupciones del Timer0 para bloquear el teclado durante 30 ms después de cada pulsación.
Este documento presenta una introducción a la programación en C usando el compilador Hi-Tech para PIC18. Explica las características del compilador, los tipos de datos soportados, constantes, operadores, funciones y declaraciones de control como if-else, for y while. También cubre comentarios y los pasos iniciales para crear y compilar un proyecto en MPLAB usando este compilador.
1) El documento presenta un prólogo que agradece a los lectores por descargar el libro y comparte la pasión del autor por compartir conocimientos sobre microcontroladores.
2) Explica que el autor tuvo dificultades al principio programando en ensamblador y luego encontró herramientas como PicBasic Pro y CCS C que facilitaron su aprendizaje.
3) Con el uso de estas nuevas herramientas, el autor pudo finalmente construir lo que quería y triunfar en el mundo de la programación de microcontroladores.
Este documento describe el puerto serial USART (Universal Synchronous Asynchronous Receiver Transmitter) en los microcontroladores. El puerto USART permite la comunicación bidireccional asincrónica simultánea a través de los registros TXREG y RCREG. Puede operar en modo asincrónico o sincrónico. En modo asincrónico es más común y permite comunicaciones a mayor distancia, aunque más lentas. Se requiere un circuito MAX232 para adaptar los niveles lógicos RS-232 del PC a los niveles TTL del microcontrolador.
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Franz Amaya
Este documento describe las características y funcionalidades del microcontrolador PIC16F877, incluyendo su arquitectura, memoria, puertos de entrada y salida, periféricos, tipos de datos soportados y más. Explica cómo configurar los puertos como entrada o salida y cómo acceder a bits individuales. También presenta ejemplos de código para encender LEDs y enviar secuencias de datos a puertos.
Este documento describe varios proyectos prácticos con el microcontrolador PIC16F84, incluyendo la conexión de LED y dipswitch, el manejo de un display de siete segmentos para hacer un contador decimal, y la técnica de multiplexaje para leer teclados y mostrar datos en displays utilizando menos líneas de E/S. También se incluyen diagramas esquemáticos, diagramas de flujo y código de programa para cada proyecto.
El documento describe los registros PCL y PCLATH que almacenan la dirección del programa counter (PC). También describe la pila de 8 niveles que almacena el valor de PC para las instrucciones CALL y las interrupciones. Finalmente, explica cómo la memoria de programa de 8Kb está paginada en bloques de 2Kb a través de los bits PCLATH<4:3>.
Este documento proporciona una introducción a la programación en lenguaje ensamblador para microcontroladores PIC. Explica conceptos básicos como instrucciones, programas, etiquetas, directivas y la estructura de un programa ensamblador. También describe cómo ensamblar y transferir programas ensamblador al microcontrolador.
El documento describe cómo crear una matriz LED de 8x8 controlada por un microcontrolador PIC18F2550. Explica que las matrices LED se usan comúnmente para mostrar mensajes publicitarios o informativos de manera dinámica. Luego detalla los pasos para construir el circuito, que incluye el microcontrolador, un registro de desplazamiento 74HC164 para multiplexar las filas y columnas de la matriz, y otros componentes. También incluye el código del programa para el microcontrolador para mostrar letras u otros patrones en la matriz LED.
Este documento proporciona una guía rápida para trabajar con una pantalla LCD y un teclado matricial utilizando un PIC16F877. Explica cómo conectar y configurar la LCD y el teclado, inicializarlos, crear mensajes estáticos y dinámicos en la LCD, y leer teclas del teclado para mostrarlas en la LCD. Incluye ejemplos de código para mostrar una tecla leída del teclado 4x3 y 4x4 en la LCD.
programacion con microcontrolador pic 16f84guestf09168b
Este documento introduce la programación del microcontrolador PIC 16F84. Explica las características básicas del PIC 16F84 como su memoria, puertos de entrada y salida, y frecuencia de trabajo. También presenta instrucciones básicas de programación en ensamblador como cargar valores, sumar y restar registros. Finalmente, incluye ejemplos de código para sumar números en diferentes sistemas de numeración.
El documento describe ejemplos de programación de microcontroladores PIC en C. Explica los componentes básicos necesarios para conectar y hacer funcionar un microcontrolador, como la alimentación, señal de reinicio y señal de reloj. Luego, presenta varios ejemplos de programas que ilustran el uso de funciones y periféricos comunes como temporizadores, E/S, comunicación serial y más.
Manejo de perifericos para microcontroladoreLuis Zurita
Este documento describe el manejo de periféricos como displays, pantallas LCD y EEPROM con microcontroladores. Explica cómo mostrar números en displays de 7 segmentos sin usar decodificadores mediante tablas de códigos binarios. También cubre el uso de pantallas LCD, incluyendo sus pines de conexión, librerías de C para inicializar y escribir en ellas, y cómo modificar el puerto de datos.
Este documento contiene información sobre lenguaje ensamblador. Explica que el lenguaje ensamblador es la primera abstracción del lenguaje de máquina y consiste en asociar códigos de operación a palabras clave. También describe la estructura básica de un programa en lenguaje ensamblador y presenta un ejemplo de un programa para hacer parpadear los bits de un puerto. Finalmente, brinda detalles sobre algunas directivas y interrupciones comunes en lenguaje ensamblador.
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CLuis Zurita
Este documento describe el manejo de periféricos como displays, pantallas LCD, teclado matricial con microcontroladores. Explica cómo mostrar números en displays de 7 segmentos usando tablas en lugar de decodificadores. Luego detalla el funcionamiento y códigos de las pantallas LCD, incluyendo ejemplos de uso con lenguaje C. Finalmente introduce brevemente los teclados matriciales 3x4 y 4x4.
1. El documento introduce las interrupciones INT 10H del BIOS y INT 21H del DOS para manejar la entrada y salida de datos desde el teclado y hacia la pantalla. 2. Describe cómo usar las funciones de la INT 10H para controlar la posición del cursor y limpiar la pantalla. 3. Explica que la función 09H del DOS se usa para mostrar salidas en pantalla y la función 0AH para aceptar entradas desde el teclado.
El documento proporciona información sobre diferentes instrucciones del microcontrolador 8051, incluyendo ACALL, ADD, ADDC, AJMP, ANL, DA, JB, INC, JC, CPL, JBC, JNC, JZ, MOV y sus funciones, sintaxis, operación, códigos de operación y descripciones.
El documento describe la organización de la memoria en los microcontroladores PIC16F87X. Estos dispositivos tienen tres bloques de memoria: memoria de programa, memoria RAM y memoria EEPROM. La memoria RAM se divide en cuatro bancos que contienen registros de propósito general y registros de funciones especiales. Los bits del registro STATUS seleccionan qué banco está activo.
Este documento describe cómo visualizar imágenes almacenadas en una tarjeta de memoria MMC en un microcontrolador utilizando un visualizador GLCD monocromático. Explica cómo dibujar las imágenes en un software, grabar los datos en formato hexadecimal en la tarjeta MMC y luego leerlos secuencialmente del microcontrolador para mostrarlas en el GLCD.
Microcontroladores: Programación del microcontrolador ATMega328P.pdfSANTIAGO PABLO ALBERTO
Este documento describe cómo programar un microcontrolador ATMega328P utilizando AVR Studio. Incluye tres programas de ejemplo en ensamblador para contar de 0 a 10 y de 0 a 1000, y para controlar pulsadores y LEDs. El estudiante debe completar los programas, simularlos y depurarlos, y luego programar el microcontrolador y comprobar su funcionamiento con un osciloscopio.
Este programa diseña una calculadora básica que permite al usuario realizar las cuatro operaciones aritméticas (suma, resta, multiplicación y división) ingresando dos números. El programa muestra un menú de opciones y lee la selección del usuario. Luego pide los números, realiza la operación seleccionada y muestra el resultado. Al final, el programa despide al usuario y termina.
Este documento presenta un curso de programación en C para microcontroladores PIC16F87XX. Cubre temas como IDEs, bootloaders, plataformas de desarrollo, recordatorios sobre C y programación de módulos como entrada/salida digital, comunicaciones RS232, interrupciones y conversión A/D.
Curso de programacion en c++ para microcontroladores pic 16 f87xxfreddymadriz
Este documento presenta un curso de programación en C para microcontroladores PIC16F87XX. Cubre temas como IDEs, bootloaders, plataformas de desarrollo, y programación en C de los módulos del PIC16F8XX como E/S digital, comunicaciones RS-232, interrupciones y conversión A/D.
Este documento presenta un curso de programación en C para microcontroladores PIC16F87XX. Cubre temas como IDEs, bootloaders, plataformas de desarrollo, recordatorios sobre C y programación de módulos como entrada/salida digital, comunicaciones RS-232, interrupciones y conversión A/D en C para PIC16F8XX.
Este documento presenta el software PC12 para programar el controlador lógico programable WEG TP02. Describe las pantallas y menús del software, incluidos FILE, EDITAR, Sistema de destino, MONITOR y herramientas. Explica cómo crear y editar programas, compilarlos, cargarlos en el PLC y realizar un seguimiento.
Este documento describe una práctica realizada con un microcontrolador AT89C52 para mostrar la palabra "PrAcT2" en un display mediante el uso de registros. El código programa el display para mostrar cada letra de forma secuencial usando tiempos de retardo. También almacena datos de entrada en los registros internos cuando se habilita una interrupción externa.
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresSANTIAGO PABLO ALBERTO
Este documento describe una práctica de laboratorio para conectar una pantalla LCD, un teclado matricial y un puerto serial a un microprocesador. Incluye código en ensamblador para inicializar la LCD, leer el teclado matricial, mostrar datos en la LCD y enviarlos por el puerto serial. Explica cómo funcionan los dispositivos y el flujo de datos entre ellos.
Este documento proporciona instrucciones para varios ejercicios y proyectos relacionados con microcontroladores utilizando la tarjeta Arduino. Incluye circuitos, código y explicaciones para proyectos como la lectura digital de un botón, generación de tonos musicales, control de un LED mediante un potenciómetro y más.
Este documento proporciona instrucciones para varios ejercicios y proyectos relacionados con microcontroladores utilizando la tarjeta Arduino. Se describen circuitos, códigos y pasos para realizar lecturas digitales, evitar rebotes, medir revoluciones de motor, generar tonos musicales y modificar la memoria de un microcontrolador. El objetivo es que los estudiantes desarrollen habilidades prácticas trabajando con microcontroladores y Arduino.
Este documento describe un proyecto de laboratorio para implementar un contador ascendente de 0 a 999 con salida en displays de 7 segmentos multiplexados. Explica el objetivo de mostrar números en varios displays de forma secuencial usando multiplexación, y describe el diseño del circuito con ATmega8, displays y otros componentes. También incluye el diagrama de flujo y el programa en ensamblador para implementar la funcionalidad del contador.
LECTOR DE TEMPERATURA CON LM35 Y MULTIPLEXOR DE DISPLAY DE 7 SEGMENTOS CON AR...Fernando Marcos Marcos
Se diseñó un circuito para lectura de temperatura utilizando el sensor LM35 que muestra la lectura en 4 displays de siete segmentos mediante un multiplexor. El circuito se desarrolló con una tarjeta Arduino Uno que lee la señal del sensor LM35 y la muestra en los displays después de convertirla a grados centígrados.
Este documento proporciona información sobre la instalación y configuración de equipos de control de motores, incluyendo conexiones, programación de parámetros y transferencia de configuraciones entre equipos. Explica cómo configurar las entradas y salidas analógicas y digitales, así como cómo guardar, cargar y transferir conjuntos de parámetros entre controladores y módulos de operación.
El documento describe la práctica realizada para la primera evaluación de la asignatura de microprocesadores. Se configuraron y utilizaron periféricos como el TMR0, ADC y USART de un PIC16F887. Se implementó un programa para digitalizar dos canales analógicos y enviarlos a una PC a una velocidad de 500 muestras por segundo usando la transmisión serial USART.
Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...SANTIAGO PABLO ALBERTO
Este documento describe cómo programar un microcontrolador ATmega328p en lenguaje ensamblador. Explica cómo cargar programas desde Atmel Studio a un Arduino UNO y provee ejemplos básicos en ensamblador, incluyendo cómo configurar puertos, usar retardos y cambiar el estado de salidas. También incluye cómo crear subrutinas de retardo y una práctica propuesta para incrementar el valor mostrado en un display 7 segmentos al presionar un botón.
El AT mega8 es un microcontrolador excelenteJose Alva
Este documento proporciona instrucciones paso a paso para programar un microcontrolador ATMEGA8 utilizando C para controlar un LED. Explica cómo configurar el entorno de desarrollo, escribir un programa simple para encender y apagar un LED, y usar un programador paralelo para cargar el programa compilado en el microcontrolador.
El documento describe el desarrollo de un controlador de acuario con Arduino. Incluye un menú en un LCD para modificar parámetros como luz, hora y fecha. Tendrá un sensor de temperatura y relés para controlar equipos. El objetivo es proveer una base de código que otros puedan usar y ampliar para controlar sus propios acuarios.
Este documento presenta el manual de programación de Arduino. Explica las características de la placa Arduino, el entorno de desarrollo, la estructura básica de los programas, funciones, variables, tipos de datos, operadores, entradas/salidas digitales y analógicas.
Esta práctica presenta ejemplos básicos de programación en Arduino para la lectura de sensores, evaluando ejemplos sencillos en un simulador online. El objetivo es conocer el entorno de programación de Arduino, programar códigos sencillos y entender la adquisición de señales analógicas. Se incluyen dos tutoriales sobre programación básica en Arduino y el uso del simulador online.
El documento describe un programa para convertir un número decimal de tres dígitos ingresado mediante un teclado telefónico a su equivalente en hexadecimal y mostrarlo en displays. Se utilizan subrutinas para tareas comunes como mostrar los dígitos, leer el teclado y convertir entre bases numéricas. El programa permite ingresar cada dígito secuencialmente, corregirlos y confirmar para ver el resultado antes de repetir el proceso.
Similar a Microcontroladores: Introducción al AVR Studio (20)
Este manual describe diferentes métodos para el diseño de sistemas electroneumáticos avanzados, incluyendo métodos directos, de bandera, cascada, paso a paso mínimo y máximo. Incluye secciones sobre secuencias, controles lógicos programables y diagnóstico de fallas. El documento proporciona ejemplos y ejercicios para aplicar estos métodos.
Este documento trata sobre controladores lógicos programables (PLC). Presenta una introducción a los PLC, incluyendo su concepto, ventajas, campos de aplicación, estructura y equipos de programación. También clasifica los diferentes tipos de PLC y describe su uso en tableros de control industrial.
El documento consiste en una lista repetida de la dirección web www.FreeLibros.com en más de 200 líneas consecutivas. Proporciona poca información sobre el contenido del sitio web, pero indica que la dirección www.FreeLibros.com es el tema principal del documento.
Este documento presenta una introducción a los controladores lógicos programables (PLCs). Explica que un PLC es un equipo que puede tomar información del mundo exterior, procesarla realizando operaciones lógicas y matemáticas, y ejecutar acciones programadas como respuesta. Describe los elementos básicos de un sistema PLC, incluyendo la unidad central de procesamiento, memoria, módulos de entrada y salida, y dispositivos de entrada y salida. También explica conceptos como el cableado de dispositivos de entrada como interruptores, sens
Este documento presenta una introducción a los autómatas programables (PLC), incluyendo su historia, ventajas e inconvenientes. Explica la estructura interna y externa de los PLC, sus áreas de memoria y modos de funcionamiento. Finalmente, resume las instrucciones básicas de programación para PLC como operadores lógicos, temporizadores, contadores y saltos.
The document is a system manual that provides information about installing, programming, and configuring S7-200 SMART CPUs and expansion modules, including an overview of the products, new features, communication options, and instructions for connecting to a CPU and creating a sample program.
Siemens' SIMATIC S7-200 SMART PLC offers an affordable and flexible automation solution for developing markets. It provides a range of CPU modules with integrated I/O and communication ports. Additional I/O and communication can be added via cost-effective signal boards. The PLC uses a high-speed processor and user-friendly software to provide powerful motion control, networking, and programming capabilities despite its low cost. It can be integrated with other Siemens products to create complete automation solutions for applications like packaging machines.
El documento describe diferentes métodos para variar la velocidad de motores eléctricos de corriente alterna de dos o tres velocidades, incluyendo el uso de dos bobinados independientes, la conexión Dahlander y variadores de frecuencia electrónicos. Se explican circuitos de potencia y mando para cada método y se proporcionan ejemplos de relaciones de velocidad que se pueden lograr.
PLC: Buses industriales y de campo practicas de laboratorio por Jose Miguel R...SANTIAGO PABLO ALBERTO
El documento trata sobre buses industriales y de campo. Contiene 16 prácticas sobre diferentes buses como Profibus, Interbus, DeviceNet, ControlNet, DH+ y RIO, Ethernet, MPI y AS-i utilizando equipos Siemens y Rockwell Automation. El autor es José Miguel Rubio Calin, ingeniero técnico industrial que ha desarrollado las prácticas para su uso en centros de formación.
PLC y Electroneumática: Electricidad y Automatismo eléctrico por Luis Miguel...SANTIAGO PABLO ALBERTO
Este documento trata sobre electricidad y automatismos eléctricos. Explica conceptos básicos como la generación, transporte y medición de la corriente eléctrica, así como los componentes pasivos como resistencias, bobinas y condensadores. También analiza circuitos eléctricos en corriente continua y alterna monofásica, incluyendo cálculos, leyes y métodos de resolución. Por último, introduce conceptos de electromagnetismo.
Electrónica: Diseño y desarrollo de circuitos impresos con Kicad por Miguel P...SANTIAGO PABLO ALBERTO
Este documento presenta un manual sobre el diseño y desarrollo de circuitos impresos utilizando el software libre Kicad. Explica conceptos básicos como footprints, pads, pistas, capas y librerías. Incluye instrucciones para la instalación de Kicad en Windows y Linux, y guías detalladas sobre la edición de esquemas, la creación de la placa de circuito impreso y el diseño de pistas.
PLC: Diseño, construcción y control de un motor doble Dahlander(cuatro veloci...SANTIAGO PABLO ALBERTO
Este documento describe las condiciones de uso de una tesis protegida por derechos de autor. Se requiere reconocer los derechos del autor y citarlo correctamente. No se puede usar la tesis con fines comerciales ni distribuirla sin permiso.
Este documento presenta información sobre la documentación técnica necesaria para proyectos de automatización. Explica que la documentación debe incluir planos de instalación, diagramas de bloques, esquemas de circuitos, diagramas y tablas, y planos de conexiones. Además, detalla normas para la documentación como IEC 61082 e IEC 60617 y proporciona detalles sobre la identificación de componentes a través de códigos normalizados.
Electrónica digital: Introducción a la Lógica Digital - Teoría, Problemas y ...SANTIAGO PABLO ALBERTO
Este documento presenta un libro sobre electrónica digital que introduce conceptos básicos de lógica digital como sistemas de numeración, representación de números, codificación de información, álgebra de conmutación y funciones lógicas básicas. El libro fue desarrollado por un equipo de 11 profesores e ingenieros de la Universidad Nacional de Educación a Distancia y está destinado a estudiantes de ingeniería eléctrica y electrónica.
1. Introduccion a las excavaciones subterraneas (1).pdfraulnilton2018
Cuando las excavaciones subterráneas son desarrolladas de manera artesanal, se conceptúa a la excavación como el “ que es una labor efectuada con la mínima sección posible de excavación, para permitir el tránsito del hombre o de
cémilas para realizar la extracción del material desde el
frontón hasta la superficie
Cuando las excavaciones se ejecutan controlando la sección de excavación, de manera que se disturbe lo menos posible la
roca circundante considerando la vida útil que se debe dar a la roca, es cuando aparece el
concepto de “ que abarca,
globalmente, al proceso de excavación, control de la periferia, sostenimiento, revestimiento y consolidación de la excavación
La energía radiante es una forma de energía que
se transmite en forma de ondas
electromagnéticas esta energía se propaga a
través del vacío y de ciertos medios materiales y
es fundamental en una variedad naturales y
tecnológicos
1. DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Introducción a AVR-STUDIO
Microprocesadores
1.Introducción y objetivos
Los objetivos de la sesión de laboratorio son los siguientes:
▪Introducir el entorno de programación y depuración de microcontroladores de ATMEL1
llamado AVR-STUDIO.
▪Realizar la simulaciones de programas escritos en lenguaje ensamblador para el microcontrolador
ATMEGA328P.
▪Depuración de programas con el AVR Simulator.
▪Estudiar los procesos para la programación del microcontrolador del Arduino Duemilanove usando la
plataforma AVR-DRAGON.
▪Realizar la programación, depuración de programas y control del microcontrolador desde AVR-STUDIO.
AVR-STUDIO puede descargarse gratuitamente de desde las páginas del fabricante de ATMEL en
http://www.atmel.com.
2.Estudio teórico
Se deben realizar tres programas en lenguaje ensamblador. En el primero se pide desarrollar un programa que
permita el cálculo sobre un conjunto de elementos almacenados en la SRAM. Los dos restantes requieren el manejo de
la entrada-salida y se detallarán a continuación.
1.Programa MEDIANA: Realizar un programa en ensamblador que permita calcular la MEDIANA a una tabla de bytes
con signo que se ubica a partir de la dirección tabla de la SRAM. El resultado se guarda en la SRAM a continuación de
la tabla. Para la realización de este programa el alumno deberá, primero, desarrollar una subrutina que permita ordenar
la tabla siguiendo el algoritmo que se muestra a continuación.
1 Fabricante de microcontroladores, más información en http:/
/www.atmel.com
2. Estructura de Computadores 2
Código 1. Pseudocódigo del programa ordena
La mediana se calcula busca el elemento central de la tabla ordenada. Si el número de elementos de la tabla es impar,
la mediana es el valor que se encuentra en la mitad de la tabla, pero si el número de elementos es par, la mediana se
obtiene como el valor medio de los dos valores centrales de la tabla. Complete la plantilla que se muestra a
continuación.
.include "m168def.inc"
.equ TAMTABLA=..... //Tamaño de la tabla.
.def Temp=r16
.cseg
.org 0
call IniciaTabla //Esta llamada carga la tabla de la EEPROM a la SRAM
call Mediana
fin: jmp fin //Para terminar
Mediana:
call Ordena
/* Aquí va el programa Mediana */
Ordena:
/*Aquí va el programa de ordenación */
........
IniciaTabla:
push r0
push temp
push yl
push yh
push zl
push zh
ldi zl, low(2*TablaEeprom)
Num_Rep ←TamTabla
Repetir
X ← DirecciónTabla
Y ← DirecciónTabla+1
Num_Rep ← Num_Rep -1
Cont ← Num_Rep
Ordenado ← 0
Repetir
a ← (X)
b ← (Y)
si (a < b)
(X) ← b
(Y) ← a
Ordenado ← 1
fsi
X ← X +1
Y ← Y +1
Cont ← Cont -1
Mientras ( Cont > 0)
Mientras (Ordenado == 1)
3. Estructura de Computadores 3
ldi zh, high(2*TablaEeprom)
ldi yl, low(Tabla)
ldi yh, high(Tabla)
ldi temp,TAMTABLA
loop: lpm r0,Z+
st Y+,r0
subi temp,1
brne loop
pop zh
pop zl
pop yh
pop yl
pop temp
pop r0
ret
TablaEeprom: .db 10, 4, -1, 0 , 0, 6, 3, 10, 100, -100, 24, 23, -56, 4, 15, 16 ;Modifique los datos
.dseg
.org $100
Tabla: .byte TamTabla //Reservamos 10 bytes para los datos.
.
Código 2. Código del programa Mediana.
2. Conmutadores. Se pretende realizar un programa que permita manejar los puertos de entrada salida. En concreto, se
trata de activar los leds cuando se pulsa un conmutador.
En el esquema de la figura 9 aparecen dos leds y dos conmutadores que debe operar de la siguiente forma: cuando se
pulse el conmutador conectado a PC5 debe encenderse el led conectado a PC2 y mantenerse encendido hasta que se
vuelva a pulsar el conmutador. Además, al pulsar el conmutador conectado a PC4 se encenderá el led conectado a PC3
y permanecerá encendido hasta que se pulse nuevamente el conmutador. La tabla 1 muestra los puertos y los bits
asociados a los componentes así como la configuración necesaria para que operen correctamente.
Puerto Bit Componente Configuración Funcionamiento
PORTC 2 Led Como salida DDRC2=1
PC2=0 ⇒ apagado
PC2=1 ⇒ encendido
PORTC 3 Led Como salida DDRC3=1
PC3=0 ⇒ apagado
PC3=1 ⇒ encendido
PORTC 4 Conmutador Como entrada DDRC4=0
PC4=1 ⇒ no pulsado
PC4=0 ⇒ pulsado
PORTC 5 Conmutador Como entrada DDRC5=0
PC5=1 ⇒ no pulsado
PC5=0 ⇒ pulsado
Tabla 1. Configuración de los puertos e/s de los leds y conmutadores
Utilizando el la plantilla de código (fichero conmutadores.asm) debe realizar la siguientes tareas:
1.Cree un nuevo proyecto utilizando el código suministrado en el fichero conmutadores.asm y complete el programa.
2.Utilice el simulador para comprobar que funciona correctamente. Debe conmutar manualmente los pines PC4 y PC5
4. Estructura de Computadores 4
desde el simulador. Esto se consigue desplegando el puerto C en árbol de dispositivos que muestra el AVR-STUDIO en
la parte derecha durante la simulación y pulsando el botón del ratón sobre el cuadro que representa el bit
correspondiente. Cuando el cuadro está relleno de color negro significara que el bit está a 1, si está en blanco es 0.
3.Una vez comprobado en el simulador el correcto funcionamiento, repita los pasos realizados en la sección 11 para
programar el microcontrolador con este nuevo programa. Compruebe que funciona correctamente pulsando los
conmutadores.
3. Programa contador de pulsaciones. El nuevo programa a completar debe contar el número de pulsaciones de un
conmutador y mostrarlo en el display 7 segmentos. Habrá que completar tres fragmentos de código; el primero es la
inicialización correcta de los puertos, el segundo es una subrutina que crea una tabla en memoria con el código 7
segmentos y, el tercero es el programa principal.
La tabla 2 muestra la información de los componentes de entrada/salida que se usarán. Se incluyen los puertos, los bits
asociados a los componentes así como la configuración necesaria para que operen correctamente.
Puerto Bit Componente Configuración Funcionamiento
PORTD 0-7 Segmentos de los displays Como salida DDRD=0xFF;
PORTDX=0 ⇒ apagado
PORTDX=1 ⇒ encendido
PORTB 0 Display 0 Como salida DDRB0=1
PORTB0=1 ⇒ apagado
PORTB0=0 ⇒ encendido
PORTB 1 Display 1 Como salida DDRB1=1
PORTB1=1 ⇒ apagado
PORTB1=0 ⇒ encendido
Tabla 2. Configuración de los puertos e/s de los displays 7 segmentos.
Utilizando el fichero contador_bcd.asm mostrado en el listado de código 3 debe realizar las siguientes tareas:
1.Completar la subrutina de inicialización de puertos llamada inicializa_puertos. Puede utilizar como ejemplo de
inicialización la utilizada en el programa de la sección anterior (listado de código ). Debe inicializar los puertos con la
siguiente configuración:
1.1.En el puerto C los pines 3 y 2 deben ser salidas, el resto deben ser entradas
1.2.El puerto D está conectado a los segmentos del display, deben ser todos salida.
1.3.El puerto B controla el encendido o apagado completo de cada uno de los dos displays. Debe configurarlo como
salida, así, poniendo un 1 en PORTB0 se activará el display 0 y poniendo un 1 en PORTB1 se activará el display 1.
2.Completar la subrutina que crea una tabla para el convertidor de 7 segmentos llamada inicializa_tabla7seg. Esta tabla
contiene los códigos 7 segmentos de los dígitos 0 – 9. Al escribir un elemento de esta tabla en el puerto D aparecerá un
número BCD en los displays. Como ejemplo se muestran 2 números, donde se puede observar la correspondencia de
los bits a uno con la activación de los segmentos mostrados en la figura 12. Complete los números que faltan, del 2 al 9.
3.El bucle principal del programa comienza a partir de la etiqueta bucle. Aquí debe escribir el programa que cuente las
pulsaciones detectadas en un conmutador. El programa se puede realizar siguiendo estos pasos:
3.1.Escribir un bucle que espere hasta detectar que el conmutador se ha pulsado. Un valor 1 en el p correspondiente al
conmutador indica que se ha pulsado.
3.2.Tras detectar la pulsación hay que incrementar el contador en 1
3.3.Comprobar si el contador ha llegado a 10 para ponerlo de nuevo a cero.
5. Estructura de Computadores 5
3.4.Esperar en un bucle hasta que se suelte en botón, fíjese que este fragmento de código ya está hecho y corresponde
a la etiqueta espera.
4.Construya el programa y programe el microcontrolador para comprobar si funciona. Si no opera correctamente puede
utilizar el simulador para detectar los errores. Tenga en cuenta que a veces existen problemas de rebotes en los
conmutadores, esto significa que, al pulsar una vez el conmutador se detectan varias pulsaciones y el valor mostrado en
el display se incrementa en más de una unidad.
.include "m328pdef.inc"
.def temp = r16 /* Define un registro para uso temporal se ha utilizado el r16 para
poder emplear los modos con direccionamiento indirecto.*/
.def contador = r17 // Cuenta el número de pulsaciones
.def cero= r18
.dseg
.org $100
TABLA7SEG: .byte 10 // Se reservan 10 bytes para una tabla de valores del convertidor bin7seg
.cseg
.org $0
rcall inicializa_puertos // Rutina que inicializa los puertos
rcall inicializa_tabla7seg // Rutina que inicializa la tabla del convertidor
bucle: // Programa principal
rcall display // Representamos el valor de contador en el display
/* Aquí debe escribir el programa que haga lo siguiente:
1. Esperar hasta que se pulse un pulsador
2. Si se pulsa el pulsador incrementar el contador
3. Si el contador llega a 10 hay que ponerlo a cero */
inicializa_puertos:
// Aquí debe configurar portc[3:2] como salidas y el resto como entradas
...
// Aquí debe configurar puerto D y el puerto B completo como salida
out portc,temp // Se Activan las resistencias de pull-up del portc[1:0] y apaga leds
ldi temp,$ff
ret
/* La siguiente rutina inicializa la tabla de 7 segmentos. Esta rutina sería innecesaria si se hubiera utilizado la memoria de
programa para almacenarla */
inicializa_tabla7seg:
ldi zh,high(TABLA7SEG) // Utilizamos Z para apuntar a la tabla
ldi zl,low(TABLA7SEG) // low() high() son directivas que devuelven el byte bajo o
// el byte alto de la dirección que se le pasa como
// argumento respectivamente
ldi temp,0b01111110 //Código 7 segmentos del 0
st z+,temp
ldi temp,0b00110000 //Código 7 segmentos del 1
st z+,temp
/* Aquí debe completar los códigos de los dígitos que faltan: del 2 al 9 */
...
ret
/* La siguiente rutina permite representar un número en el display de 7 segmentos. Utiliza para ello el registro Z, que
inicialmente apunta a la tabla de 7 segmentos. A este registro se le suma Cont que es una variable entre 0 y 9 y, después,
mediante acceso indirecto se carga el código 7 segmentos correspondiente en el puerto.*/
display:
6. Estructura de Computadores 6
ldi zh,high(TABLA7SEG)
ldi zl,low(TABLA7SEG)
add zl,contador // El registro Z es de 16 bits, mientras que contador es de 8
adc zh,cero // No olvidar sumar el acarreo que se genera del byte bajo a ZH
ld temp,z
out portd,temp
sbi portb,1 // Apaga el display 1
cbi portb,0 // Activa el display 0
ret
Código 3. Fichero contador_bcd.asm, plantilla de código para el contador BCD.
3.Estudio experimental
En el estudio experimental deberá probar y mostrar el funcionamiento de todos los programas solicitados en el
estudio teórico. Para ello deberá utilizar el AVRSTUDIO cuyo tutorial se muestra a continuación.
3.1.Introducción a AVR-STUDIO
Se utilizarán los programas realizados en el estudio teórico en el entorno de desarrollo AVR-STUDIO. Los pasos
para crear un proyecto nuevo y poder escribir el código del programa se detalla a continuación en esta sección.
Una vez iniciado AVR STUDIO aparece un asistente para creación o apertura de un nuevo proyecto tal y como se
muestra en la figura 1. Si no apareciera el asistente hay que acceder al menú Project y seleccionar la opción Project
Wizard.
Figura 1. Asistente para creación o apertura de un proyecto.
Se debe seleccionar un nuevo proyecto (botón New Project) y aparecerá el siguiente diálogo del asistente (figura 3)
donde, habrá que indicar el nombre del proyecto, el directorio y seleccionar la opción Atmel AVR Assembler. Antes de
pulsar el botón Next seleccione adecuadamente la opción Create initial file, tiene dos opciones, seleccionar o no
seleccionar dicha opción (observe la marca roja en la figura 2):
1.Si no selecciona esta opción, el proyecto se creará sin ningún archivo de texto asociado. Esto le permite
posteriormente utilizar un fichero de texto que tenga en si disco con el programa ya escrito. De esta forma evita tener
que teclear el programa de nuevo
2.Si lo selecciona, se creará un nuevo fichero vacío en el que deberá teclear el programa. Si ya trae el programa escrito
en otro fichero tendrá que copiar y pegar el código desde el bloc de notas a AVR-STUDIO.
7. Estructura de Computadores 7
Figura 2. Selección de tipo y nombre de proyecto.
Tras escoger la opción que le interese en cada caso, tras pulsar el botón Next aparecerá la última ventana de asistente.
Aquí debe seleccionar las opciones AVR Simulator y ATMega328P tal y como se muestra en la figura 3.
Figura 3. Selección de tipo y nombre de proyecto.
En caso de no haber seleccionado la opción Create initial file tendrá un proyecto vacío al que hay que añadir un
programa previamente escrito en un fichero. Para realizar esto, hay que utilizar el botón derecho del ratón en la raíz del
árbol de proyecto y aparecerá un menú flotante como el mostrado en la figura 4. Con la opción Add files to project
podemos seleccionar del disco el fichero con el programa en ensamblador que se desee.
Figura 4.Añadir ficheros al proyecto.
Tras estos pasos aparece en el árbol de proyecto el nombre del fichero ensamblador sobre el que trabajar. Pulsando
con el ratón dos veces sobre este nombre del fichero aparece una ventana en la que puede editar el código ensam-
blador del programa.
Una vez se ha terminado de escribir el programa hay que realizar el ensamblado del código. Este paso se realiza en
8. Estructura de Computadores 8
menú Build opción Build también puede utilizar el icono de la barra de herramientas. Si todo es correcto debe
aparecer en la parte inferior información referente al programa compilado:
AVRASM: AVR macro assembler 2.1.42 (build 1796 Sep 15 2009 10:48:36)
Copyright (C) 1995-2009 ATMEL Corporation
F:EdCtema4practicassolsuma.asm(2): Including file 'C:Archivos de programaAtmelAVR ToolsAvrAssembler2Appnotesm168def.inc'
F:EdCtema4practicassolsuma.asm(88): No EEPROM data, deleting C:Documents and SettingspdiMis documentosedcedc.eep
ATmega168 memory use summary [bytes]:
Segment Begin End Code Data Used Size Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x00005e 78 16 94 16384 0.6%
[.dseg] 0x000100 0x000110 0 16 16 1024 1.6%
[.eseg] 0x000000 0x000000 0 0 0 512 0.0%
Assembly complete, 0 errors. 0 warnings
Código 4. Salida de la construcción del programa suma.
En caso de producirse errores, en la ventana inferior aparecerá el número de línea del programa donde está el error.
3.1.1.Ejecución en el simulador del programa
AVR-STUDIO incluye un simulador con el cual se puede visualizar el estado del microcontrolador durante la
ejecución de un programa. Entre las diversas opciones que ofrece el simulador nos centraremos en la posibilidad de
ejecutar instrucción a instrucción un programa y la posibilidad de ejecutar un programa hasta que llegue a una
instrucción determinada.
Para comenzar la simulación del programa hay que acceder al menú Debug y utilizar la opción Start Debugging. Tras
esto aparecen diferentes ventanas (ver figura 5) que componen el simulador:
▪Ventana del Procesador: Situada en la parte izquierda, muestra el estado interno de procesador (Frecuencia, contador
de ciclos del reloj) y el contenido de los registros: PC, SP, X, Y, Z, SREG y los 32 registros internos.
▪Ventana de dispositivos de E/S: Situada en la parte superior derecha, muestra en forma de árbol todos los dispositivos
que tiene el microcontrolador seleccionado.
▪Ventana de visualización de Memoria: Situada en la parte inferior derecha, permite ver en tiempo real el contenido de
la memoria del microcontrolador. Se puede seleccionar entre memoria de programa, memoria SRAM y EEPROM.
Principalmente interesará ver el contenido de la memoria SRAM a partir de la dirección $100. Se debe recordar que
hasta la dirección $99 están mapeados los periféricos, por lo que no se debe usar como espacio de almacenamiento
para los programas
9. Estructura de Computadores 9
FFigura 5. Visión global del modo de depuración de AVR-STUDIO.
El simulador permite la ejecución instrucción a instrucción del programa. El indicador situado en la parte
izquierda indica la siguiente instrucción que se ejecutará. En el menú Debug (figura 6) se pueden encontrar diversas
acciones útiles durante la simulación. En la ejecución paso a paso las funciones más utilizadas son:
▪Step Over: (icono ) Ejecuta instrucciones hasta la siguiente línea, en caso de ser una llamada a una subrutina, la
ejecuta completamente para avanzar a la siguiente línea de código.
▪Step Into: (icono ) Ejecuta una instrucción, en caso se existir una llamada
a subrutina, realiza la llamada y se sitúa en la primera instrucción de la
subrutina.
▪Step Out: (icono ) Ejecuta instrucciones hasta encontrar una instrucción de
retorno de subrutina.
▪Reset: (icono ) Reinicia la simulación y sitúa la ejecución en la primera
instrucción del programa.
▪Toogle Breakpoint: (icono ) Establece un punto de ruptura de ejecución.
Cuando se ejecute el comando Run (icono ), el programa se ejecutará hasta
encontrar algún punto de ruptura.
▪Run to Cursor: (icono ) Ejecuta instrucciones hasta la instrucción en la que
está el cursor.
Figura 6.Menú de depuración.
10. Estructura de Computadores 10
3.1.2.Ejecución en el simulador del programa
Se recuerda que AVR-STUDIO incluye un simulador con el cual se puede visualizar el estado del microcontrolador
durante la ejecución de un programa. Para comenzar la simulación del programa hay que acceder al menú Debug y
utilizar la opción Start Debugging. Tras esto aparecen diferentes ventanas (ver figura 7) que componen el simulador:
▪Ventana del Procesador: Situada en la parte izquierda, muestra el estado interno de procesador (Frecuencia, contador
de ciclos del reloj) y el contenido de los registros: PC, SP, X, Y, Z, SREG y los 32 registros internos.
▪Ventana de dispositivos de E/S: Situada en la parte superior derecha, muestra en forma de árbol todos los dispositivos
que tiene el microcontrolador seleccionado. En esta primera práctica de debe seleccionar el puerto C, de igual modo
que se ha seleccionado la en la figura 7. De esta forma se visualizan los tres registros que forman el puerto.
▪Ventana de visualización de Memoria: Situada en la parte inferior derecha, permite ver en tiempo real el contenido de
la memoria del microcontrolador. Se puede seleccionar entre memoria de programa, memoria SRAM y EEPROM.
Principalmente interesará ver el contenido de la memoria SRAM a partir de la dirección $100.
Para comprobar el funcionamiento del programa se debe realizar la ejecución paso a paso observando como cambian
los valores de los registros y puertos. Hay que desplegar los registros en la ventana del procesador y puertos en la
ventana de E/S para visualizar los registros del puerto.
Figura 7. Visión global del modo de depuración de AVR-STUDIO.
A continuación inicie la simulación con Start Debugging y ejecute paso a paso el programa del estudio teórico. Puede
utilizar la tecla F10 para no tener que utilizar los menús. Compruebe que su programa opera correctamente.
11. Estructura de Computadores 11
3.1.3.Programación del microcontrolador
El siguiente paso consiste en la programación con el programador AVR-DRAGON (figura 8a) de un microcontrolador
ATMEGA328P en una placa Arduino (figura 8b). El entorno de pruebas utilizado en esta sesión de laboratorio está
formada por tres componentes: programador AVR-DRAGON, placa de prototipo Arduino Duemilanove y placa de
expansión para Arduino con componentes E/S.
La placa de expansión mostrada en la figura 9 está conectada a la placa Arduino, quedando ocultos todos los
componentes del Arduino. En la placa de expansión están disponibles todos los puertos del microcontrolador en los
laterales de la placa, además, estos puertos también están conectados a diversos componentes como son, leds,
displays, conmutadores, etc. Estos componentes se utilizarán posteriormente para realizar programas que controlen la
entrada/salida.
En primer lugar se deben conectar ambas placas a los conectores USB. No es necesaria ninguna alimentación adicional
ya utilizan los 5V suministrados por el Bus USB. Tras la conexión USB puede aparecer en el ordenador algún cuadro de
diálogo indicando que se ha encontrado nuevo hardware. Si esto ocurriera, debe instalar los controladores, no cancele
la instalación o tendrá problemas de programación del microcontrolador.
La placa AVR-DRAGON dispone de dos leds, inicialmente se iluminan uno en verde y otro en rojo. El led de color rojo
cambiará de color indicando el estado de la comunicación con AVR-STUDIO. La tabla 3 muestra el significado de los
diferentes colores de dicho led, debemos observarlo durante los siguientes pasos para detectar posibles problemas en
la programación del microcontrolador.
Color Descripción
Rojo En reposo, no hay conexión con AVR Studio
Apagado En reposo, conectado a AVR Studio
Verde Transfiriendo datos
Amarillo Inicialización o actualización del firmware
Tabla 3. Indicaciones del led de AVR-DRAGON.
Antes de realizar la programación se debe verificar la correcta configuración de AVR-STUDIO realizando una prueba de
conexión con el microcontrolador. Accediendo al menú Tools hay que usar el submenú Program AVR y, opción Connect.
Aparecerá el diálogo mostrado en la figura 10. Alternativamente, dicho diálogo se puede obtener de manera directa
utilizando el botón de la barra de herramientas.
12. Estructura de Computadores 12
(a) (b)
Figura 8.a) Placa de desarrollo Arduino b) Programador/Depurador AVR-DRAGON.
(a) (b)
Figura 9.a) Placa de expansión E/S para Arduino. b) Detalle de conexión de los segmentos a los puertos.
PD6
PD0
PD7
PD5
PD4
PD3
PD2
PD1
GND
PB0
A REF
PB5
PB4
PB3
PB2
PB1
PC4
PC3
PC2
PC1
PC0
PC5
Led conectado
A PB5
13. Estructura de Computadores 13
En este diálogo hay que establecer la configuración indicada en la figura 10: plataforma AVR-DRAGON y puerto USB.
Tras pulsar el botón Connect, si la conexión es correcta, debe aparecer automáticamente el diálogo mostrado en la
figura 11 y el led rojo de AVR-DRAGON se apagará.
Figura 10. Selección del programador y el puerto
En caso de no aparecer automáticamente el dialogo de la figura 11 se puede utilizar el botón de la barra de herramien-
tas o, la opción de menú Tools submenú Program AVR. Tras esto finalmente aparecerá la ventana mostrada en la
figura 11.
De las múltiples pestañas que contiene sólo utilizaremos la primera y segunda: Main y Program. En primer lugar se
realizará una prueba de comunicación siguiendo estos pasos:
1.Seleccionar la pestaña Main.
2.Seleccionar el microcontrolador correcto del cuadro desplegable indicado con Device and Signature Bytes. En estas
placas disponemos del microcontrolador ATMega328P.
3.Pulsar el botón Read Signature. El programa debe responder con el texto Signature matches selected device. Si
respondiera con un error, se debe volver a desplegar el cuadro selector de microcontrolador, seleccionar el correcto, y
volver a realizar el test de comunicación.
Figura 11. Pestaña principal de la ventana de programación del microcontrolador.
El siguiente paso consiste en realizar la programación del microcontrolador con el código que se ha ensamblado, para
ello, seleccione la pestaña Program. Si el ensamblado se realizó con éxito habrá generado un fichero con extensión
14. Estructura de Computadores 14
.hex dentro del directorio del proyecto y con el nombre del proyecto. En la figura 12 se muestra el diálogo de
programación donde hay que seleccionar el fichero .hex. Este diálogo tiene tres cuadros donde se puede seleccionar un
fichero: Flash, EEPROM y ELF. Hay que utilizar la sección sección Flash y el botón de selección de fichero (indicado
con la flecha roja en la figura 12). Tras esto basta con pulsar el botón Program para realizar la programación del
microcontrolador.
Figura 12. Pestaña de programación de la ventana de programación del microcontrolador.
4. Ejercicio evaluable
Para optar a evaluación alternativa, los alumnos deberán obtener una calificación de APTO en la parte obligatoria de
esta práctica y demostrar en el laboratorio que se ha desarrollado el ejercicio que se detalla a continuación:
Se desea desarrollar un programa que permita contar segundos y mostrarlos en un display de 7 segmentos. Para ello el
alumno deberá utilizar el Timer1 en modo CTC para que éste genere interrupciones de forma periódica. El contenido del
TCNT1 como la selección del prescaler deberá escogerse de tal forma que se minimice el error cometido en la cuenta
de los segundos. La frecuencia del oscilador del ATMEGA328P es de 1Mhz.