0% encontró este documento útil (0 votos)
41 vistas54 páginas

01 Mi Primer Codigo

Este documento describe las instrucciones y registros de un microcontrolador PIC16F887. Explica que las instrucciones tienen 14 bits y se componen de un código de operación y operandos. También describe los diferentes tipos de registros como los SFR, el registro de acumulador W, y el registro de estado STATUS. Finalmente, explica los ciclos de máquina y cómo se ejecutan las instrucciones en el microcontrolador.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas54 páginas

01 Mi Primer Codigo

Este documento describe las instrucciones y registros de un microcontrolador PIC16F887. Explica que las instrucciones tienen 14 bits y se componen de un código de operación y operandos. También describe los diferentes tipos de registros como los SFR, el registro de acumulador W, y el registro de estado STATUS. Finalmente, explica los ciclos de máquina y cómo se ejecutan las instrucciones en el microcontrolador.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 54

Mi primer código

IE2023 – Programación de Microcontroladores


PIC16F887
Instrucciones
PÁGINA 233
Instrucciones
Tienen 14 bits de longitud.
Los uC de gama media tienen 35 instrucciones.
Cada instrucción se compone de dos partes:
◦ Código de operación (orden para ejecutar la acción indicada por la
instrucción)
◦ Operandos (datos necesarios para realizar esa acción. Pueden ser datos ó
direcciones)

Es imp
ort
la man ante tener e
oc l manu
instruc on la lista d al a
ciones e
Operandos pueden ser
◦ Dirección de 7 bits de la memoria de datos
◦ Dirección de 11 bits de la memoria de programa
◦ Un dato de 8 bits
◦ Dirección de 3 bits de un registro cualquier de la memoria de datos
◦ Indicación de 1 bit de cuál es el destino del resultado de la instrucción: si es
el registro W o un registro de la memoria de datos.
Instrucciones
Las instrucciones se agrupan en 3 categorías:
◦ Operaciones byte-oriented
◦ Operaciones bit-oriented
◦ Operaciones Literal y Control

Todas las instrucciones son ejecutadas en un solo ciclo de instrucción


(ciclo de máquina), a menos que sea una comprobación condicional o un
salto.
Si utilizamos un oscilador de 4 MHz el tiempo de ejecución de una
instrucción es de 1 uS.
Instrucciones (Byte-oriented)
Las instrucciones que realizan operaciones con los registros de la
memoria de datos, hay dos operandos: dirección del registro (7 bits) y
el otro bit indica el destino (W o dirección del registro f)
Instrucciones (Bit-oriented)
Las instrucciones que operan con bits de los registros de la memoria de
datos, hay dos operandos: uno es la dirección del bit dentro del registro
(3 bits), y la dirección del registro de la memoria de datos (7 bits).
Instrucciones (Literal y Control)
◦ Las instrucciones que incluyen un dato de 8 bits en la propia instrucción.

◦ Las instrucciones que incluyen en la propia instrucción una dirección de 11


bits de la memoria de programa.
Resumen de los tipos de
Instrucciones
CO: código de operación.
f: dirección de 7 bits del registro de la
memoria de datos
k: dato de 8 bits.
a: dirección de 11 bits.
b: número del bit (0 a 7).
d: destino del resultado de las
instrucciones: si d= 0, el destino es W, si
d = 1 el destino es f.
Registros
Registros
Un registro (o celda de memoria) es un circuito electrónico que puede
memorizar el estado de un byte.
Registros SFR (Special Function Register)
Registros de funciones especiales (SFR): pueden
clasificarse en dos: del CPU y periféricos. Estos sirven
para controlar la operación del dispositivo.
Sus bits están conectados a los circuitos internos del
microcontrolador tales como temporizadores,
convertidores A/D, osciladores entre otros.
SFR y Registros de propósito
EL CPU no habla
directo a los
módulos, utiliza los
registros de la
general memoria.
Registro Acumulador (ACC) – (W
para PIC)
Es el registro asociado a las operaciones aritméticas y lógicas que se
pueden realizar en la ALU.
En cualquier operación uno de los datos debe de estar en el ACC y el
resultado se “almacena” en el ACC.
En los microcontroladores PIC el ACC no existe. En su lugar está el
registro W (Working register).
Registro ACC vs W
Suma A = B + 5

movf B, W ;mover B hacia W


addlw 5 ;sumar 5 a W
movwf A ;mover W hacia A

Las ope
racione
registr s pasan
oW por el
PORTA
Es un puerto paralelo bidireccional, de 8 bits de anchura.
Los bits de los registros TRISA y ANSEL controlan los pines del PORTA.
Todos los pines del PORTA se comportan como entradas/salidas
digitales.
Para salidas digitales: s

un
s ne

0
0

er
le pi

=
=

co

al on
=
ta s

A
EL

gi lo

SA

ci p
n

RT
pi

ni o
di r
S

o ra

r i ar
AN

a l

PO
TR
m gu

lid r e

lo ici
co nfi

sa one

va ein
1 2 3
Co

R
Registro de estado (STATUS)
Agrupa los bits indicadores de las características del resultado de las
operaciones aritméticas y lógicas realizadas en la ALU, RESET y bit de
selección de banco en la memora de datos.
Si hay: signo, cero, hay acarreo o préstamo, paridad, etc.
Selección de banco

Con el bit RP1 y RP0 seleccionamos el banco. Éstos van


concatenados.

REGISTRO BANCO RP1:RP0

PORTA 0 00

TRISA 1 01

ANSEL 2 11

Ejemplo:
Ciclos de máquina y
ejecución de
instrucciones
Ciclos de máquina y ejecución de
instrucciones
El oscilador dicta
principalmente la
cadencia de las
operaciones internas del
uC, los pulsos generados
por el oscilador se
dividen en 4 señales
denominadas Q1, Q2, Q3,
y Q4.

4 ciclo
sd
instruc el oscilador
ción (d s
e máqu erán un ciclo
ina) de
Ciclos de máquina y ejecución de
instrucciones
Q1: el PC se incrementa apuntando hacia la siguiente instrucción.
Q4: se busca la instrucción del PC.
Mientras Q1:Q4, se ejecuta la instrucción anterior.
La ejecución de una instrucción se realiza en tres fases
◦ Búsqueda (fetch) (memoria programa)
◦ Descodificación (operación indicada en la instrucción)
◦ Ejecución: se realiza en dos ciclos de máquina.
Ciclo de instrucción

►  
Bits de
configuración
PÁGINA 210
Así se ven
Lo más
se
interno ncillo es apa
INTRC_ ga
NOCLK r todos (OFF
OUT ) y pon
er osci
lador

Bits de configuración
Cada microcontrolador dispone de un cierto número de bits para
configurarlo.
Estos bits se almacenan en la memoria EEPROM .
Son accesibles cuando se programa, pero media vez el uC se encuentra
en funcionamiento dejan de serlo.
Dichas características son:
► El tipo de oscilador
► La habilitación o no del Watchdog
► La protección de la memoria de programa
► La protección de la memoria EEPROM de datos, si existe en el dispositivo
► Las características de reset y la alimentación del dispositivo.
Bits configuración PIC16F887 Página 212
Bits configuración PIC16F887 Página 212

72ms
Bits configuración PIC16F887 Página 213
Configuración más sencilla

Apagar todos los bits (OFF) y poner el oscilador como


interno (INTRC_NOCLKOUT)
Empezando a escribir el primer
código
Programa en lenguaje
ensamblador
Es una secuencia de líneas de texto las cuales pueden ser:
◦ Instrucción del repertorio de instrucciones
◦ Directivas del ensamblador
◦ Comentario
◦ Etiqueta
◦ Línea en blanco
Comentarios
Los comentarios son textos cuyo objetivo es informar, haciendo más
fácil la lectura y comprensión del código fuente. Se utiliza (;), el
ensamblador ignora todo lo que sigue hasta el final de la línea.
Etiqueta (label):
Es el símbolo que identifica a una línea de programa fuente y que
representa la dirección de una instrucción. Se colocan en la primer
columna seguidas de (:).
Tipos de archivos
Definición de constantes
Operadores para el compilador
¡No son instrucciones!
Hagamos un delay

Explique el siguiente código

¿Cómo usamos un valor hexadecimal?


¿Puedo usar una etiqueta en lugar de $-1?
¿Qué hace el return?
Directivas
Es una instrucción que se escribe en el programa fuente y está dirigida
al programa ensamblador.
Es una orden para el programa ensamblador, NO para el
microcontrolador.
En un programa se mezclan instrucciones para el uC con las
instrucciones para el ensamblador.
Ejemplo: definición de símbolos variables, constantes, la ubicación del
programa, ubicación de variables en memoria.
PSECT flags
Assembler-Provided PSECTs
PROCESOR, #include y CONFIG
Bloque de variables

Bloque de código
Directiva ORG y END
ORG: establece el origen del programa, o bien una porción de programa
a partir de una dirección absoluta determinada.

END: fin del programa, se le indica al ensamblador que finalice el


ensamblaje del programa fuente.

También podría gustarte