Vous êtes sur la page 1sur 18

IUT Cuman

TEMA 2. REGISTROS, INSTRUCCIONES Y BANCOS DE MEMORIA

Microcontroladores

Prof. Luis Zurita

ESTRUCTURA DE DATOS
BIT: NIBBLE: BYTE: Word: Unidad mnima de informacin Grupo de 4 bits Grupo de 8 bits Grupo de 2 BYTES
x x x x x x x x x x x x x

IUT Cuman

BYTE ALTO

BYTE BAJO

(Bit menos significativo) MSB x x 7

LSB (Bit menos significativo) x x 0

Rango de los microcontroladores de 8 Bits 28 = 256 posibles valores para operaciones

Microcontroladores

Prof. Luis Zurita

ALGUNOS TIPS PARA REPASAR Y RECORDAR

IUT Cuman

Suma Binaria Aritmtica: (add) 0+0 =0 0+ 1+=1 1 +0 =1 1 + 1 = 0 y llevo acarreo (Carry) para la siguiente cifra MSB Suma Binaria Lgica: (ior) 0+0=0 0+1=1 1+0=1 1+1=1 Resta Binaria Aritmtica: (sub) 00=0 10=1 11=0 0 1 = 10 y tomo prestado (Borrow) de la cifra MSB inmediata OR Exclusiva: (xor) Bits iguales producen como resultado un cero (A = B = 0) Bits diferentes producen como resultado un uno (A B = 1)

Microcontroladores

Prof. Luis Zurita

SISTEMAS DE NUMERACIN
Decimal Hexadecimal Binario (Formato 4 bits BCD)

IUT Cuman

0
1 2 3 4 5 6 7 8

0
1 2 3 4 5 6 7 8

0000
0001 0010 0011 0100 0101 0110 0111 1000

9
10 11 12

9
A B C

1001
1010 1011 1100

13
14 15
Microcontroladores

D
E F

1101
1110 1111
Prof. Luis Zurita

FORMATO DE SISTEMAS DE NUMERACIN ADMITIDOS POR EL MICROCONTROLADOR


Tipo de Sistema Decimal Formato D126 .126 B10011011 Sigla Significado

IUT Cuman

f (File)
k w (work)

Registro. Puede ser cualquiera que el programador desee dentro del rango permitido. Constante. Valor fijo. Registro de trabajo principal.

Binario

Hexadecimal

HAE AEH 0xAE

Destino del Registro. Si d vale 1, el resultado se guardar en el Registro que el programador haya d (destiny) escogido. Si d vale 0, el resultado se guardar en el Registro de trabajo principal "w"
Prof. Luis Zurita

Microcontroladores

REGISTROS Y BANCOS

IUT Cuman

Microcontroladores

Prof. Luis Zurita

MEMORIA RAM DE REGISTROS

IUT Cuman

Microcontroladores

Prof. Luis Zurita

ACCEDIENDO A LOS BANCOS DE REGISTROS

IUT Cuman

Microcontroladores

Prof. Luis Zurita

DIRECTIVA EQU

IUT Cuman

La directiva EQU permite asignar a un registro o constante, un nombre asociado que facilita su entendimiento. Ejemplo: DATOX EQU 20H DATOY EQU 21H STATUS EQU 03H F EQU 01H

INCLUDE .INC
El uso del INCLUDE, nos permite incluir en nuestro proyecto, una plantilla que nos ahorra el trabajo de declarar todos los registros de Funciones Especiales (SFR) de la memoria RAM de registros. Es importante destacar, que en esta plantilla, todos los registros estn declarados en mayscula. Por lo que durante la elaboracin de un programa, se debe respetar este formato. Ejemplo: INCLUDE <P16F84.INC> INCLUDE P16F84.INC
Microcontroladores Prof. Luis Zurita

IUT Cuman

ESTRUCTURA DE UN PROGRAMA
En general un programa est estructurado en tres grandes partes: a) Encabezado: Define el tipo de PIC con que se est trabajando, Bloque de declaraciones de variables y constantes, b) Configuracin de registros especiales: Registro OPTION, INTCON, TMR0, puertos A y B, EECON, STATUS. b) Cuerpo del programa: Aqu estn contenidas todas las instrucciones relacionadas a la ejecucin de un programa bajo un diseo individual, realizado por el programador.

Encabezado Configuracin, Declaracin de Registros, Datos, Constantes. org

Cuerpo del Programa end

Microcontroladores

Prof. Luis Zurita

ESTRUCTURA DE UN PROGRAMA

IUT Cuman

1. En todo programa se debe incluir cual es el tipo de PIC que se emplear, incluir libreras y configurarlo: List P= 16F84A ; Tipo de PIC a utilizar include < p=16F84.inc> ; Librera asociada al PIC que se ; est utilizando _config_RC_OSC_&_WDT_OFF ; Se seleccionan los bits de configuracin 2. Al escribir un programa se realizan y organizan las instrucciones en columnas: 1ra Columna: nombrar variables o colocar etiquetas. 2da Columna: aplicar la instruccin. 3ra Columna: contiene los datos necesarios para que pueda ejecutarse dicha instruccin. 4ta Columna: contiene comentarios, no tomados en cuenta por el microcontrolador. Ejemplo: Defina a la variable M en la posicin de memoria expresada en 15H 1raC 2daC 3raC 4taC M equ 15H ; Define a la variable M en la posicin 15H 3. Se emplean signos para efectuar determinadas consideraciones, por ejemplo: (;) que se emplea para colocar comentarios. El programa no toma en cuenta todo lo que est en una lnea luego de dicho smbolo.
Microcontroladores Prof. Luis Zurita

ESTRUCTURA DE UN PROGRAMA
1ra Columna Etiquetas 2da Columna
Instrucciones

IUT Cuman

3ra Columna Operandos

4ta Columna Comentarios

RESULTADO

equ org goto bsf movlw movwf movlw movwf

0FH 00H INICIO STATUS,5 FFH TRISA 00H TRISB

;Declaro al registro ;RESULTADO ;En la posicin 0FH de la RAM

INICIO

; Configuramos los registros ; asociados a los puertos A y B

Microcontroladores

Prof. Luis Zurita

ESTRUCTURA DE UN PROGRAMA

IUT Cuman

4. Un programa siempre empieza con la instruccin org y termina con end 5. Considere las siguientes recomendaciones:
Directivas, etiquetas, Variables y constantes en maysculas. Ejemplo: EQU, DATOA, SUMA, CONTA, RP0, Z Instrucciones en minsculas. Ejemplo: movwf, addwf, goto, bcf, call, decfsz, etc Tabule muy bien su programa y mantenga el formato mostrado anteriormente. Coloque continuamente comentarios, a lo largo de todo el programa. Estos le ayudarn a orientarse al momento de revisar un problema de lgica del mismo o para recordar su funcionamiento. Utilice la directiva EQU, para asignarle nombres a constantes y/o variables. Esto facilitar su comprensin y lectura.

6. Se recomienda ampliamente el uso de los diagramas de flujo, para la estructuracin del respectivo programa. Estos permiten visualizar el funcionamiento a grosso modo del mismo.

Microcontroladores

Prof. Luis Zurita

Cul se entiende mejor?


Sin recomendaciones
List= 16F84 org 00H goto inicio inicio Bsf 03H,5 movlw 1FH movwf 85H movlw 00H movwf 86H bcf 03H,5 movlw b11110000 movwf 06H movf 05H,0 ExploPA Btfsc 05H,3 goto ExploPA goto INVPB INVPB comf 06H,1 End

List P=16F84 ;Tipo de procesador Con recomendaciones STATUS equ 03H ; Zona de declaraciones PORTA equ 05H PORTB equ 06H TRISA equ 85H TRISB equ 86H W equ 00H F equ 01H org 00H goto INICIO INICIO bsf STATUS,5 ;Se pasa a banco1 movlw 1FH movwf TRISA ; Se configura puerto A movlw 00H movwf TRISB ; Se configura puerto B bcf SATUS,5 ; Se regresa al banco 0 movlw b11110000 movwf PORTB ; Se escribe valor movf PORTA,W ExploPA Btfsc PORTA,3 ; RA3 es cero? goto ExploPA goto INVPB INVPB comf PORTB,1 ; Se activa

DIAGRAMA DE FLUJO
Se recomienda ampliamente que el diseador/programador, se apoye en elementos grficos para determinar y delimitar el funcionamiento del diseo que est encarando. Los diagramas de flujo permiten visualizar el funcionamiento lgico de cualquier programa.

Un rectngulo con los extremos redondeados, denota el inicio y/o el fin de un programa. Las figuras rectangulares representan acciones concretas procesos a ser ejecutados por el programa.

El rombo representa una toma de decisin sobre una condicin que debe ser evaluada analizada. Si la respuesta es afirmativa cumple con la condicin, se toma una direccin y en caso contrario, se toma una direccin diferente. Las flechas indican el flujo que debe seguir el programa. stas indican claramente el camino direccin a seguir
Los Conectores son utilizados cuando el diagrama de flujo es de medianas o grandes dimensiones y su uso evita sobrecargar de flechas al diagrama.
A B

INSTRUCCIONES ORIENTADAS A REGISTROS


MNEMNICO addwf f,d andwf f,d clrf f clrw comf f,d decf f,d decfsz f,d incf f,d incfsz f,d iorwf f,d movf f,d movwf f nop rlf f,d rrf f,d subwf f,d swapf f,d (W)+(f) a (destino) (W) AND (f) a (destino) 00 a (f) (borrar registro F) 00 a (W) (borrar W) Complemento de f [(f) a (destino)] (f)-1 a destino (decrementa f) (f)-1 a destino y si resultado es 0 salta (decrementa F, salta si zero) (f)+1 a destino (incrementa f) (f)+1 a destino y si resultado es 0 salta (W) or (f) a destino mover f a destino (W) a (f) mover W a destino F No operacin Rota f a la izquierda a travs del carry a destino Rota f a la derecha a travs del carry a destino (f)(W) a (destino) Intercambia los nibbles de f a destino DESCRIPCIN FLAGS AFECTADOS C, DC, Z Z Z Z Z Z Ninguno Z Ninguno Z Z Ninguno Ninguno C C C,DC,Z Ninguno

xorwf f,d

(W) XOR (f) a (destino)

INSTRUCCIONES ORIENTADAS A BIT


MNEMNICO bcf f,b bsf f,b btfsc f,b btfss f,b addlw k andlw k call k DESCRIPCIN Coloca a 0 el bit b del registro f Coloca a 1 el bit b del registro f Salta si el bit b del reg. f es 0 Salta si el bit b del reg. f es 1 (W)+ K a (W) (W) AND K a (W) Llamada a subrutina FLAGS AFECTADOS Ninguno Ninguno Ninguno Ninguno C,DC,Z Z Ninguno

INSTRUCCIONES CON LITERALES Y DE CONTROL

clrwdt
goto k iorlw k movlw k retfie retlw k return sleep sublw k xorlw k

Limpia temporizador Watch Dog


Go To direccin (ir a direccin) (W) OR K a (W) K a (W) Retorno de una interrupcin Retorno con un literal en W Retorno de una subrutina Modo Stand by K (W) a W (W) XOR K a (W)

Z
Ninguno Ninguno Ninguno Ninguno Ninguno C,DC,Z Z C, DC, Z Z

Diferencias y uso de call y goto

IUT Cuman

Ambas instrucciones rompen con la secuencia normal del programa, al alterar el contenido del contador de programa (PC). (Pg. 150. Angulo). goto carga en el PC, la direccin de la nueva instruccin. call antes de cargar el PC con la direccin de la instruccin a saltar, salva la direccin de donde parte, guardndola en la cima de pila (stack), el valor actual del PC. Luego de ejecutar la subrutina, se saca del stack la direccin de donde parti. Si no estn en la subrutina llamada por call, las instrucciones return o retlw k, se puede presentar un error de lgica en la ejecucin del programa, algo similar a no dejar migajas de pan para recordar el camino de retorno.
Nota: Recuerde que los PICs poseen un valor limitado de pila (stack). En el PIC 16F84, este es de 8. Esto significa que en un programa no puede haber ms de 8 subrutinas anidadas. (Subrutinas dentro de subrutinas).

Microcontroladores

Prof. Luis Zurita