2. Lenguaje ensamblador
Laprogramación en ensamblador es el modo de
programación de más bajo nivel.
Las instrucciones se traducen literalmente a código
máquina sin un compilado previo.
Es especifico de cada plataforma.
Características:
Más difícil de aprender que los lenguajes de alto nivel
Dificulta el mantenimiento y recude la productividad del
programador.
Mayor velocidad y eficiencia de ejecución
http://paginaspersonales.deusto.es/jonathan.garibay/
3. Ensamblador (assembler)
Es un programa que genera código máquina
(llamado también código objeto) traduciendo
instrucciones de un programa fuente escrito en
ensamblador a códigos ejecutables.
Interpreta los nombres simbólicos para direcciones de
memoria y otras elementos.
http://paginaspersonales.deusto.es/jonathan.garibay/
4. Estructura de programa
list p=18f4520
Fichero de include "p18f4520.inc“
Directivas
etiquetas
config WDT=OFF, OSC=XT, PBADEN=OFF
Palabra de
Dirección de
configuración temp equ 0x005 la memoria
de datos
Etiqueta de org 0x0000 ;Vector de reset
datos bra inicio
Dirección de
la memoria
org 0x0020 de programa
Etiqueta de inicio clrf TRISB ;PuertaB salida
dirección setf TRISC ;PuertaC entrada
bucle movf PORTC,W
Operando
movwf temp
Instrucciones Parámetro
movf temp,W
movwf LATB
bra bucle Comentario
Fin del
programaº
end ;Fin de programa
http://paginaspersonales.deusto.es/jonathan.garibay/
5. Elementos básicos
Etiquetas: es una palabra utilizada para designa
alguna línea o sección del programa, se pueden
utilizar para saltar de una parte hacia esa etiqueta.
Las etiquetas deben empezar con una letra o con un
guión bajo “_”.
Instrucciones: son las operaciones que realiza el
microcontrolador, de forma que ya están definidas
para cada familia de PIC.
Operandos: son los elementos que emplea la
instrucción que se está ejecutando. Normalmente,
son registros o constantes.
Algunos operandos configuran algunos detalles de las
instrucciones.
http://paginaspersonales.deusto.es/jonathan.garibay/
6. Elementos básicos (continuación…)
Directivas: son similares a las instrucciones, pero a
diferencia de estas son propias del lenguaje
ensamblador e independientes del microcontrolador
que se utilice.
Se utilizan para especificar al la configuración del
procesador utilizado o para asignar localizaciones de
memoria, entre otras cosas.
Comentarios: son las palabras y frases que se
escriben en el código para hacer el programa más
legible.
Los comentarios se pueden escribir en cualquier parte del
código pero siempre deben empezar con punto y
coma ”;”.
http://paginaspersonales.deusto.es/jonathan.garibay/
7. Elementos básicos (continuación…)
Directivas
”list“ sirve para especificar el PIC seleccionado, en este
caso un PIC 18F4520.
“include” se utiliza para incluir un archivo externo en el
programa.
“config” establece la configuración del PIC: el tipo de
reloj, la configuración del watchdog, el reset interno…
”org“ define la dirección de memoria a partir de la cual el
programa se guarda.
”end“ es la directiva que marca el final del programa.
http://paginaspersonales.deusto.es/jonathan.garibay/
8. Juego de Instrucciones
Operandos típicos
Registro “f” indica el registro que será utilizado por la
instrucción.
El destino del resultado “d” es un bit que indica donde
se almacena el resultado de una operación:
Si es “0” o “w”, el resultado se guardará en el registro de
trabajo.
Si es “1” o “f”, el resultado se guardará en el mismo registro.
El parámetro “a” es también un bit que indica el tipo de
acceso a memoria de datos:
Si es “0” o se omite, se utilizará el banco de acceso.
Si es “1”, la instrucción utilizará direccionamiento directo.
http://paginaspersonales.deusto.es/jonathan.garibay/
9. Juego de Instrucciones (continuación…)
Operadores típicos (continuación…)
Literal “k” una constante que será utilizada por la
instrucción.
Dirección de programa “n” utilizada en las operaciones
de control, indica una dirección para un salto condicional
o incondicional.
Ejemplos:
addfw 0x34, 0, 0
movlw 0x19
goto 0x0456
http://paginaspersonales.deusto.es/jonathan.garibay/
10. Programación estructurada
Esuna forma de escribir programas de forma clara
haciendo uso de únicamente 3 estructuras:
Secuencia: se ejecuta una instrucción tras otra de forma
secuencial.
Selección: permite la realización de una instrucción u otra
según un criterio (solo una de estas instrucciones se
ejecutara).
if, then, else
Iteración: se repiten un conjunto de instrucciones
mientras se cumpla una condición (el número de
iteraciones no tiene porque estar determinado).
while, do…while, for
http://paginaspersonales.deusto.es/jonathan.garibay/
11. Programación estructurada (continuación…)
Anidamiento de estructuras
El cuerpo de cualquier estructura puede ser una
instrucción simple u otra estructura, que a su vez puede
anidar a otra.
Funciones ¿Paso de parámetros?
Es un conjunto de líneas de código que realizan una
tarea específica y puede retornar un valor.
http://paginaspersonales.deusto.es/jonathan.garibay/
12. Diagramas de flujo
Tambiénconocidos como organigramas, son una
representación gráfica de un algoritmo.
Utilizan símbolos que representan los pasos del
algoritmo, y representan el flujo de ejecución mediante
flechas que conectan los puntos de inicio y de fin.
Simbología básica
Círculo: inicio y término del diagrama.
Rectángulo: representa la ejecución de una o más
actividades o procedimientos.
Rombo: formula una pregunta o cuestión, y ejecuta una
salida u otra.
http://paginaspersonales.deusto.es/jonathan.garibay/
13. Diagramas de flujo (continuación…)
http://paginaspersonales.deusto.es/jonathan.garibay/
14. Estrategia de diseño Top-Down
En el modelo Top-Down se crea un resumen del
sistema, sin especificar detalles. Cada parte del
sistema se refina con mayor detalle y se realizan
tantas iteraciones como sean necesarias.
El enfoque Top-Down enfatiza la planificación y
conocimiento completo del sistema.
La codificación no puede comenzar hasta que no se haya
alcanzado un nivel de detalle suficiente
Enel diseño Bottom-Up se diseñan en detalle las
partes individuales y después se enlazan para
formar componentes más grandes.
http://paginaspersonales.deusto.es/jonathan.garibay/
15. Estrategia de diseño Top-Down (continuación…)
Se define la estructura de la función
main y de las rutinas de interrupción
Se estudian todas aquellas
funciones de alto nivel que
surgen del paso anterior
Se repite el proceso anterior hasta
definir el funcionamiento de todas
las funciones
Se complementan las funciones
con detalles relevantes para la
programación final
http://paginaspersonales.deusto.es/jonathan.garibay/