Los microcontroladores AVR de ATMEL son una familia bastante potente y asequible. Son RISC y ofrecen características como la programación ISP (en el propio circuito), temporizadores, comparadores analógicos, PWM, RS232 y un largo etcétera.

El set de instrucciones del AVR se puede dividir según las especialidades:
- Instrucciones Aritméticas y Lógicas.
- Instrucciones de Salto.
- Instrucciones de Transferencia de Datos.
- Instrucciones Orientadas a Bits.
- Instrucciones de Control del MCU.
INSTRUCCIONES ARITMETICAS Y LOGICAS
La instrucción ADD, suma dos registros sin la bandera de acarreo y el resultado lo coloca en el
registro destino (Rd).
La instrucción EOR, ejecuta la operación lógica X-OR al contenido del registro destino y el registro fuente colocando el resultado en el registro destino (Rd).
La instrucción COM, realiza el complemento a 1 al registro destino (Rd). Mientras que la instrucción NEG, realiza el complemento a 2 al registro destino (Rd).
La instrucción MUL, realiza la operación de multiplicación de dos registros de 8 bits sin signo, y el resultado de 16 bits lo coloca en el registro 1, el byte alto.
La instrucción MULS, realiza la misma operación que la instrucción MUL solo que se toma en cuenta el bit de signo.
INSTRUCCIONES DE SALTO
Existen dos tipos de salto: los saltos condicionales, que son aquellos que antes de saltar requieren verificar una de las banderas del Registro de Estado (SREG), mientras que los saltos incondicional es no requieren verificar ninguna bandera, en cuanto el micro los encuentre este saltará a la nueva posición marcada con la etiqueta.
La instrucción RJ MP, es un salto incondicional. Salto relativo a una dirección ubicada en algún rango de datos.
La instrucción IJ MP, es un salto incondicional. Salto indirecto, ya que brincara a una dirección apuntada por el registro Z de 16 bits.
La instrucción BRCS, es un salto condicional. Verifica la bandera de acarreo.
La instrucción BRNE, es un salto condicional. Verifica la bandera cero, y salta en un rango, si esta bandera está en 1.

INSTRUCCIONES DE TRANSFERENCIA DE DATOS
La instrucción MOV, hace una copia de un registro a otro. El registro fuente, Rr, no sufre ningún cambio, mientras que el registro destino, Rd, se carga con una copia de Rr.
La instrucción MOVW, hace una copia de un par de registros a otro par de registros. El par de registros fuente, no sufren ningún cambio, mientras que el par de registros destino, se cargan con una copia de registro fuente.
La instrucción LD, carga un byte indirecto con o sin desplazamiento de un espacio de memoria a un registro. El espacio de memoria es direccionado por los registros apuntadores de 16 bits.
La instrucción LDI, carga una constante de 8 bits directamente a los registros.
La instrucción ST, almacena un byte indirecto del registro a un espacio de memoria. El
espacio de memoria es direccionado por los registros apuntadores de 16 bits.
La instrucción LPM, carga un byte del registro apuntado por Z a un registro destino.
La instrucción IN, carga datos desde un espacio de I/O (Puertos, Times, Registros de Configuración, etc.) al registro destino, Rd.
La instrucción OUT, envía los datos desde un registro fuente, Rr, a un espacio de I/O
(Puertos, Timers, Registros de Configuración, etc.).
INSTRUCCIONES ORIENTADAS A BITS
La instrucción SBI, pone un uno en el bit del registro especificado.
La instrucción CBI, limpia un bit del registro especificado.

La instrucción LSL, recorre todos los bits a la izquierda en un bit.
La instrucción LSR, recorre todos los bits a la derecha en un bit.
La instrucción ROL, recorre todos los bits del registro destino a la izquierda. La bandera del acarreo se pasa al Bit 0 del registro.
INSTRUCCIONES DE CONTROL DEL MCU
- Unidad de Control Multipunto (MCU).
- La función principal de un MCU es gestionar la comunicación entre diferentes terminales en un esquema de transmisión multipunto.
La instrucción NOP, se ejecuta en un solo ciclo de instrucción, y no realiza nada.
La instrucción SLEEP, coloca al circuito en modo “dormido” definido por el modo de control del MCU.
La instrucción BREAK, se usa para un sistema de debug interno. Cuando se ejecuta esta instrucción el CPU del AVR se coloca en modo de “Stop”. Esto ayuda a accesar a los recursos internos del micro a través de software.
No hay comentarios:
Publicar un comentario