Вы находитесь на странице: 1из 24

Microprocesadores y

Microcontroladores
INTRODUCCIÓN A LA PROGRAMACIÓN
EN LENGUAJE ENSAMBLADOR MPASM
DEL PIC 16F877A
Integrantes:

• Diego Guamán
• Walter Rodríguez

NRC: 2100
Lenguaje Ensamblador

• Es un lenguaje de programación de bajo


nivel, y constituye la representación más
directa del código máquina legible por un
programador.
• Actualmente se utiliza cuando se requiere
la manipulación directa de hardware, alto
rendimiento, uso de recursos controlado
y reducido.
Características • Posee una cierta dificultad de ser entendido
directamente por un ser humano ya que su
estructura se acerca más bien al lenguaje
máquina, es decir es un lenguaje de bajo nivel.
• El lenguaje ensamblador es difícilmente
portable.
• Son generalmente más rápidos y consumen
menos recursos del sistema (memoria RAM y
ROM).
• Se tiene un control muy preciso de las tareas
realizadas por un Microprocesador.
• Se puede controlar el tiempo en que tarda una
Rutina en ejecutarse.
MPASM
• MPLAB, tenemos la posibilidad de programar en
lenguajes como "C" o "Basic".
• Con el ensamblador tenemos un código puro y
compacto.
• El ensamblador de Microchip que viene con MPLAB es el
MPASM.
• MPASM nos permite escribir el código y ensamblarlo
para producir como salida un fichero .HEX que luego
grabaremos en el PIC o que nos servirá para utilizarlo con
el simulador que incorpora MPLAB, en otros programas
como PROTEUS.
Generación de Código: Código Absoluto
• Si el ensamblado se realiza sin errores, se generará un archivo
hexadecimal .HEX que contiene el código máquina ejecutable para
el dispositivo designado. Este archivo puede utilizarse con un
simulador para probar la ejecución del código o cargarse en el
microcontrolador mediante un programador.
Generación de Código: Código Relocalizable
• El ensamblador MPASM también puede generar módulos objeto
relocalizables que pueden unirse con otros módulos utilizando
MPLINK para conformar código ejecutable final. Este método es
muy útil para crear módulos reutilizables
Archivos de entrada/salida
Código fuente (.asm)
• El ensamblador es un lenguaje de programación para desarrollar
código fuente en una aplicación con PIC. El archivo de código fuente
puede crearse y editarse con cualquier editor de texto ASCII.
• Cada línea del archivo fuente puede contener cuatro tipos de
información:
Etiquetas
• Una etiqueta se usa para representar una línea, grupo de código, o un valor
constante.
• Las etiquetas pueden terminar en "dos puntos" (:), espacio, tabulación o fín de línea.
Las etiquetas deben comenzar por un carácter alfabético o por un guión bajo (_) y
puede contener carácteres alfanuméricos o el signo de interrogación (?).

Mnemónicos y Macros
• Los mnemónicos le dicen al ensamblador qué instrucciones de código máquina
deben utilizarse. Por ejemplo, suma (add), ir a (goto) o movimientos (movwf).
• Las macros son conjuntos de instrucciones y directivas definidas por el usuario que
se insertarán en el código fuente al realizar el ensamblado siempre que la macro se
invoque.
Operandos
• Los operandos dan información a la instrucción sobre los datos que deben utilizarse
y donde se encuentran. Los operandos debe separarse de los mnemónicos por uno o
más espacios, o tabulaciones. Los operandos múltiples deben separarse por comas.

Comentarios

• Los comentarios son texto que explica el funcionamiento de una línea o líneas de
código. El ensamblador MPASM trata lo que esté después de un punto y coma como
un comentario.
Ejemplo y Partes de un programa MPASM
Sistemas de numeración

• Tener en cuenta siempre el tamaño de datos con el que se está


trabajando.
Directivas de MPASM
Son "indicaciones" para el ensamblador que le dicen cómo hacer algunas
cosas, y sirven para ayudarnos en la tarea de programar.
Elementos necesarios para iniciar un
proyecto
• Características principales

• CPU RISC

• Set de 35 instrucciones

• Velocidad de Trabajo:
• DC - 20 MHz clock input

• DC - 200 ns ciclo de instrucción

• Hasta 8K x 14 words de FLASH Program Memory

• Hasta 368 x 8 bytes de Data Memory (RAM)

• Hasta 256 x 8 bytes de EEPROM Data Memory

• Manejo de Interrupciones (hasta 14 fuentes)

• Stack de hardware de 8 niveles

• Modo de direccionamiento directo, indirecto.

• Protección de código programable.

• Amplio rango de voltaje de trabajo: 2.0V a 5.5V


• Características periféricas
• Timer0: 8-bit timer/counter con 8-bit prescaler
• Timer1: 16-bit timer/counter con prescaler, que puede ser
incrementado durante el modo SLEEP via reloj externo.
• Timer2: 8-bit timer/counter con registro de período de 8-bit,
prescaler y postscaler
• Dos módulos Capture, Compare, PWM
• Capture es de 16-bit, max. resolución: 12.5 ns
• Convertidor Analógico Digital de 10-bit multi-channel
La organización de la memoria
Registro STATUS

• Es un registro muy especial y una de sus funciones es que nos permite


acceder a los diferentes bancos de memoria, con las diferentes
configuraciones de los bits RP1 y RP0
Instrucciones básicas para programación

• BCF: colocar en cero un bit.


• BSF: colocar en uno un bit.
• MOVLW: cargar el W con un valor.
• MOVWF: mueve el valor de W a una variable.
• DECFSZ: decrementa y salta si es cero.
• CALL: salta y llama a la rutina a la cual apunta.
• GOTO: salta, a donde se apunte.
• RETURN: retorna desde donde fue enviado el CALL.
• CLRF: coloca a cero un registro
• ORG: Sitúa el código que se vaya generando después a partir de la posición especificada.
• BTFSS: salta si la comparación resulta 1
El registro W

• El registro W es un registro general en el que puede poner cualquier


valor que desee. Una vez que haya asignado un valor a W, puede
agregarlo a otro valor o moverlo. Si asigna otro valor a W, se
sobrescribe su contenido
Iniciar un proyecto con el microcontrolador pic16f877
con lenguaje ensamblador

• MPLAB: compila el código escrito por nosotros convirtiéndolo en .hex


• PROTEUS: se encarga de la parte de simulación.
• IC-PROG: una vez creado el archivo .hex, este programa usará el .hex para cargarlo
al microcontrolador PIC.
• El set de instrucciones
• El datasheet del microprocesador del cual necesitamos:
• Mapa de memoria que mencione los registros.
• La descripción de los pines del microprocesador.
• La ubicación de los pines del microprocesador
Fusibles de configuración

• son utilizados para configurar ciertas funciones del


microcontrolador como: protección de código contra
plagios, detector de errores, reinicio automático del
sistema, detección de alimentación, etc
• Para nuestro caso las configuraciones que soporta el
PIC 16f877, podemos encontrarlo en la dirección:
C:\Program Files\Microchip\MPASM Suite en el
documento p16f877a.inc
Configuración de MPLAB, simulación en Proteus -
ejemplos

Вам также может понравиться