martes, 27 de agosto de 2019

Proyecto4-Operaciones Lógicas-AND-OR-XOR-NAND-NOR

Descripción General.

El proyecto consiste en utilizar un Atmega32 para realizar 5 operaciones posibles entre las cuales están AND,OR,XOR,NAND,NOR Las entradas de la operación serán los puertos A y B , para seleccionar la operación que se va a realizar se usa 5 pines del puerto C, finalmente el resultado estará en el puerto D.
Circuito

Características Técnicas.

  • Microcontrolador: Atmega 32.

  • Lenguaje de Programación: Asembler.
  • Oscilador: 1Mhz.
  • Simulador: Desarrollado en Proteus Design Suite V8.0 SPO.
  • Compilador: Desarrollado en Atmel Studio 7 pero portable para MPLAB-ASM.
  • Autor: Electrónica y Control-EYC.

Contenido de la descarga.

  • 1 Archivo del programa en Proteus Design Suite V8.0 SPO.

  • 1 Archivo del programa en bloc de notas.
  • 1 Archivo del programa en Visio Profesional del diagrama de flujo del proyecto.
-----------------------------------------------------------------------------------------------------------

Suscríbete a mi lista de correos para recibir más material próximamente.





Si no recibe el producto escríbame a edward.udep@gmail.com
-----------------------------------------------------------------------------------------------------------

lunes, 26 de agosto de 2019

Proyecto3-Leer puerto C y mandar el dato leído al puerto D

Descripción General.

El proyecto consiste en utilizar un Atmega32 para realizar fácilmente como leer el puerto C y mandar el dato al puerto D.
Circuito

Características Técnicas.

  • Microcontrolador: Atmega 32.

  • Lenguaje de Programación: Asembler.
  • Oscilador: 1Mhz.
  • Simulador: Desarrollado en Proteus Design Suite V8.0 SPO.
  • Compilador: Desarrollado en Atmel Studio 7 pero portable para MPLAB-ASM.
  • Autor: Electrónica y Control-EYC.

Contenido de la descarga.

  • 1 Archivo del programa en Proteus Design Suite V8.0 SPO.

  • 1 Archivo del programa en bloc de notas.
  • 1 Archivo del programa en Visio Profesional del diagrama de flujo del proyecto.
-----------------------------------------------------------------------------------------------------------

Suscríbete a mi lista de correos para recibir más material próximamente.





----------------------------------------------------------------------------------------------------------

Proyecto2-Colocar en alto el bit LSB del puerto C

Descripción General.

El proyecto consiste en utilizar un Atmega32 para realizar facilemnte como colocar en alto el bit menos significativo del puerto C.
Circuito
Características Técnicas.

  • Microcontrolador: Atmega 32.

  • Oscilador: 1Mhz.
  • Simulador: Desarrollado en Proteus Design Suite V8.0 SPO.
  • Compilador: Desarrollado en Atmel Studio 7 pero portable para MPLAB-ASM.
  • Autor: Electrónica y Control-EYC.

Contenido de la descarga.

  • 1 Archivo del programa en Proteus Design Suite V8.0 SPO.

  • 1 Archivo del programa en bloc de notas. 
  • 1 Archivo del Programa en Visio Profesional del diagrama de flujo del proyecto.
-----------------------------------------------------------------------------------------------------------

Suscríbete a mi lista de correos para recibir más material próximamente.




-----------------------------------------------------------------------------------------------------------

viernes, 23 de agosto de 2019

Proyecto1-Escribir el valor 55 hex en el puerto C

Descripción general.
El proyecto consiste en utilizar un Atmega 32 para realizar la operación más básica como escribir un valor en un puerto, en este caso usaremos el puerto C para escribir el valor 55Hex.
Circuito

Características Técnicas.

  • Microcontrolador: Atmega 32.
  • Oscilador: 1Mhz.
  • Simulador: Desarrollado en Proteus Design Suite V8.0 SPO.
  • Compilador: Desarrollado en Atmel Studio 7 pero portable para MPLAB-ASM.
  • Autor: Electrónica y Control-EYC.

Contenido de la descarga.

  • 1 Archivo del programa en Proteus Design Suite V8.0 SPO.
  • 1 Archivo del programa en bloc de notas.
  • 1 Archivo del programa  visio Profsional del diagrama de fujo del proyecto.
--------------------------------------------------------------------------------------------------------------------------

Suscribete a mi lista de correos para recibir más material próximamente.





--------------------------------------------------------------------------------------------------------------------------

lunes, 12 de agosto de 2019

Lenguaje C-Proteus-AVR.

En esta entrada vamos a hablar de manera resumida sobre un documento muy interesante de la web "cursomicros.com" para los que quieren empezar a programar AVR usando lengujae C y a la par con el mejor software de simulación para muchos como el proteus. 
Empieza con lo básico que debes de saber para programar en lenguaje C, las características del lenguaje y saberes previos a este lenguaje como : directivas, funciones, sentencias, estructuras, declaración de variables, especificación de tipos de datos, sentencias selectivas, iterativas,con bloques simples,operadores, arrays y punteros.

Podría decir que este documento es la base para los que quieren empezar en el mundo de los microcontroladores usando Lenguaje C, por que a parte de ello se pueden simular los programas en  Proteus y usar su herramienta debugging para ver paso a paso nuestro código de los distintos proyectos
.
Imágenes sacadas del libro.
Tiene muchos diagramas de circuitos que engloba dispositivos básicos como :
LCD, teclado matricial, motores dc, motores paso paso entre otro para realizar proyectos y usar los periféricos de  estos microcontroladores como timers, temporizadores, puertos de entrada y salida, PWM, UART entre otros.

Para programar los microcontroladores AVR usa en entorno STUDIO5, que es bastante similar al entorno actual como el AtmelStudio7, y facilmente portable.

PARTE1

PARTE2

Tienes alguna duda de este tema, o ¿de qué otros temas quieres que hablemos?, puedes escribirnos directamente a nuestro grupo de Telegram

Ubicando código en la memoria FLASH-ROM


Después que nuestro código a sido grabado dentro de la memoria de programa tales como atmega32 o cualquier micro de atmel, el OPCODE y OPERANDO son guardados en la memoria de programa iniciando desde la dirección 0x0000. Por ejemplo veamos como se guarda este bloque de código en la memoria de programa:

código-almacenamiento de la última dirección de memoria SRAM.
Creé un proyecto y le puse nombre "litle endian metodo-ejemplo"Una vez escrito el código, Construimos los archivos(Build)  y en la carpeta DEBUG se construyen archivos .map, .lss,entre otros como el de la imagen:
Archivos generados en carpeta debug.
Ahora nos enfocaremos en el archivo .lss. El archivo ,lss es muy útil para nosotros los programadores. Aquí se muestra el código binario y código fuente, además muestra que instrucciones son usadas en el código fuente, y la cantidad de memoria del programa usada, este archivo al igual que el .map pueden ser accedidos por un editor de texto tal como notepad y verlos en el monitor, el programador usa este archivo para asegurarse el correcto desempeño  del sistema.

Archiv list(.lss) generado
En la imagen anterior se muestra el archivo generado .lss, solo se muestra una sección del mismo esta plasmado de mucha información , pero nos enfocaremos en la parte donde esta nuestro código que hemos escrito:
Archivo list(.lss)-sección code
Como se observa en la imagen anterior, a la izquierda la conforma las direcciones que ocupa nuestro código, empieza en la dirección 0x0000, con su respectivo OPCODE y OPERANDO. Si deseas saber como se representa el OPCODE y OPERANDO de una instrucción, en este blog hay un ejemplo.  

El dato en la memoria Flash de los AVR es guardado de un forma llamada “Little-endian”. Esto significa que el byte alto del código es ubicado en la dirección alta de la ubicación de la memoria FLASH, y el Byte bajo del código es ubicado en la dirección baja de la ubicación de la memoria FLASH. Compare el primer Word del código (e008) con los dos primeros Byte de la memoria FLASH(08e0).

Método-Litle endian
 Ahora ya sabemos como se guarda en memoria FLASH-ROM cada línea de código, está formado por una palabra(2Bytes) y se irán guardando de la siguiente manera:

¿Puedo guardar datos en  memoria FLASH-ROM?

Pues sí, también podemos guardar datos, que usaremos ,estos datos en asembler se pueden guardar a través de "tablas", dándoles un origen de memoria. Para leer los datos en memoria en forma de "tablas" es muy importante desplazar un bit hacia la izquierda utilizando “<<” o que es lo mismo multiplicando *2 la dirección  de donde se dio origen a la tabla de datos ya que al momento de guardar un dato en una tabla este empieza en la dirección x2 de donde se dio origen a dicha tabla. Puedes ver un ejemplo de tablas en el siguiente video:

Conclusión

  •  Nuestro código se guarda en forma de OPCODE y OPERANDO.
  • Los OPCODES y OPERANDOS se guardan en memoria FLASH usando el método "Litle Endian".
  • En la memoria Flash no solo se guarda código, vectores de interrupción, programa bootloader, también se puede guardar datos  usando "tablas".
  • Las instrucciones LPM y SPM se usa frecuentemente en esta memoria FLASH.
  • Program Counter es que va a ir saltando de dirección en dirección de la FLASH-16 bits.