Juego de instrucciones y programacion del microcontrolador ATMEL
77025431Apuntes24 de Julio de 2022
2.663 Palabras (11 Páginas)286 Visitas
MICROCONTROLADORES
SEMANA 7
Juego de instrucciones y programación del microcontrolador Atmel
APRENDIZAJE ESPERADO 2
1. JUEGO DE INSTRUCCIONES Y PROGRAMACIÓN DEL MICROCONTROLADOR ATMEL 5
1. JUEGO DE INSTRUCCIONES 6
2. TIPOS DE INSTRUCCIONES DEL MICROCONTROLADOR ATMEL 6
1. INSTRUCCIONES DE TRANSFERENCIA DE DATOS 6
2. INSTRUCCIONES ARITMÉTICO – LÓGICAS 7
3. INSTRUCCIONES DE SALTO 8
4. INSTRUCCIONES DE MANEJO DE BITS 9
3. PROGRAMACIÓN DEL MICROCONTROLADOR ATMEL 9
1. MODOS DE DIRECCIONAMIENTO 10
2. ESTRUCTURA CONDICIONAL 10
3. ESTRUCTURA ITERATIVA 11
4. COMPROBACIÓN DE BITS 12
5. COMPROBACIÓN DE BYTES 13
6. PROGRAMA EJEMPLO 13
COMENTARIO FINAL 17
INTRODUCCIÓN
En contenidos previos se ha tratado la arquitectura interna y externa de los microcontroladores AVR, explicando que los mismos corresponden al tipo RISC. A continuación, se explicarán algunos elementos básicos del reducido repertorio de instrucciones de máquina, mostrando su simplicidad y el hecho de que estas pueden ejecutarse en apenas un ciclo de reloj.
Esta sencillez y rapidez de las instrucciones hacen del hardware y del software elementos ideales a la hora de utilizar este circuito integrado en la solución puntual para una aplicación particular.
________________
No debe perderse de vista el hecho de que la tecnología de los microcontroladores AVR es del tipo CMOS de 8 bits, pues ello incide de forma directa en la sintaxis utilizada, estructura de sus instrucciones y forma de operación, lo que permite al programador del sistema optimizar funciones y consumo, gracias a la alta velocidad de procesamiento
Esta semana se abordarán los elementos que deben manejarse a fin de poder realizar la programación de un microcontrolador AVR, del fabricante Atmel. Para la programación de estos se utilizará el software Atmel Studio, el cual se puede descargar desde la página de Atmel.
“El listado de instrucciones recibe el nombre de programa, que las ejecuta
una por una por medio del microprocesador”
Bechimol (2011, p. 52)
1. JUEGO DE INSTRUCCIONES Y PROGRAMACIÓN DEL MICROCONTROLADOR ATMEL
Tal como ya se ha tratado en contenidos anteriores, los microcontroladores AVR1 son productos de la empresa Atmel y se utilizan cada vez más en aplicaciones emergentes tales como dispositivos médicos, teléfonos inteligentes, periféricos de videojuegos y accesorios de audio, entre otros.
A nivel de juego de instrucciones, este viene ligado de forma directa a la arquitectura a nivel de hardware propia del microcontrolador, la cual es importante recordar:
* Arquitectura Harvard, con memoria flash.
* Arquitectura cerrada, tipo RISC de 8 bits.
* Arquitectura tipo registro-registro para la operación con datos.
Figura 1. Entorno de programación del microcontrolador AVR
Fuente: https://bit.ly/2vZgy1x
La familia de microcontroladores AVR incluye cerca de 80 variantes que comparten el núcleo y cuentan con diferentes tipos de recursos. La figura 1 muestra el tipo de microcontrolador AVR más apropiado para cada tipo de exigencia.
1 Siglas de Alf-Egil Bogen, Vegard Wollan, RISC Processor.
1. JUEGO DE INSTRUCCIONES
Lo primero que debe observase es que el AVR ha sido diseñado desde sus orígenes para una eficiente ejecución de código C compilado, aunque también es posible utilizar lenguaje ensamblador.
El juego de instrucciones es más regular que su contraparte, los PIC; aunque la diferencia más notoria respecto a este último es que no es completamente ortogonal, pues los registros punteros X, Y y Z cuentan con capacidades de direccionamiento disímiles entre sí y las capacidades de direccionamiento de los registros varían de acuerdo con su posición.
Cuentan con un extenso grupo de instrucciones y con 32 registros de trabajo denominados registros de propósito general. Estos 32 registros se encuentran conectados de forma directa a la Unidad Aritmético-Lógica (ALU), lo que permite el acceso a dos registros independientes y que se ejecutan en un único ciclo de reloj. La mayoría de las instrucciones del microcontrolador AVR cuentan con un formato de palabra de 16-bits.
2. TIPOS DE INSTRUCCIONES DEL MICROCONTROLADOR ATMEL
A continuación, se comentará sobre los tipos de instrucciones de ensamblador que posee esta familia de microcontroladores, explicando su sintaxis y operandos utilizados. El grupo de instrucciones para estos microcontroladores puede dividirse de la forma siguiente:
* Instrucciones aritméticas y lógicas.
* Instrucciones de desvío.
* Instrucciones de transferencia de datos.
* Instrucciones de bit y prueba de bit.
1. INSTRUCCIONES DE TRANSFERENCIA DE DATOS
Las instrucciones de transferencia de datos permiten mover o transferir datos partiendo de una localización de memoria hasta un registro o viceversa. Asimismo, es posible la transferencia entre registros internos desde o hacia los puertos del dispositivo. Lo resaltante en este caso es que en cada instrucción es especificado el tipo de direccionamiento utilizado.
La figura 2 muestra de forma gráfica las posibles opciones que se tienen al momento de realizar una transferencia de datos en la familia de microcontroladores AVR.
Figura 2. Esquema de funcionamiento de la transferencia de datos
Fuente: Elaboración propia.
2. INSTRUCCIONES ARITMÉTICO– LÓGICAS
La ALU de esta familia de microcontroladores se conoce como de alto rendimiento pues opera en directa conexión con los 32 registros de trabajo o registros de propósito general. En el caso de las operaciones realizadas entre registros, esto ocupa un único ciclo de reloj, lo que no ocurre con otros tipos de operaciones. Es de notar que luego de una operación del tipo aritmética, el registro de estado se actualiza a fin de reflejar información relativa a la operación.
Figura 3. Instrucciones aritmético-lógicas
Fuente: https://bit.ly/30lQufa
3. INSTRUCCIONES DE SALTO
De forma similar a cualquier lenguaje de programación, existen dos tipos de saltos: los denominados incondicionales, los cuales se ejecutan bajo cualquier situación; y los saltos condicionados, que evalúan la condición especificada y luego, de ser verdadera la respuesta, saltan. En caso contrario, no se realiza el salto y se prosigue en la secuencia normal de ejecución del programa. En general, estas instrucciones permiten saltar a una instrucción en una zona de memoria diferente. Se cuenta con cuatro tipos de instrucciones de salto:
* JMP: ejecuta un salto incondicional a una dirección especificada.
* BRxx: ejecuta un salto corto, siempre que se cumpla una condición.
* SKxx: esquiva la instrucción siguiente si se cumple una condición.
* CALL/RET: ejecuta un llamado o retorno de subrutina.
4. INSTRUCCIONES DE MANEJO DE BITS
Las operaciones bit a bit o manipulación de bits son comunes en los programas desarrollados en los microcontroladores, ya que esto permite la configuración de los registros para el uso del hardware disponible, el acceso a los puertos de entrada y salida, verificar el estado de los datos recibidos y enviados, entre otros. Ya que este tipo de microcontrolador se programa habitualmente en lenguaje C, es importante resaltar que este tipo de manipulación de los bits se realiza con operadores propios del lenguaje, a saber:
* &: operación AND.
* |: operación OR.
* ~: operación NOT.
* ^: operación XOR.
También se cuenta con operaciones de corrimiento:
* >>: corrimiento a la derecha.
* <<: corrimiento
...