Documente Academic
Documente Profesional
Documente Cultură
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Alimentacin : El PIC se alimenta a 5 V entre los puntos Vdd (+) y Vss (-). El consumo del circuito depende de las cargas en los puertos y de la frecuencia de trabajo.
Robtica
Facultad de Ingeniera
Frecuencia de trabajo: Los PIC's necesitan un reloj oscilador que marcar la frecuencia de trabajo. Estos osciladores pueden ser del tipo :
RC Formado por una resistencia y un condensador HS seutiliza un cristal de cuarzo o resonador cermico (Hasta 10 Mz) XT Cristal o resonador hasta 4 Mhz LP Bajo consumo (hasta 200Khz) Los osciladores se colocan entre las patillas OSC1 y OSC2
Robtica
Facultad de Ingeniera
PUERTOS DE ENTRADA/SALIDA Los puertos son entradas y salidas del microcontrolador al exterior, por ellas enviaremos o introducimos seales digitales TTL (5V) de forma que podemos comunicar el microcontrolador con el exterior. En este caso tenemos 2 puertos de entrada y salida E/S. Sus nombres son RA y RB. El puerto RA tiene 5 pins RA0-RA4, un caso particular es RA4/TOCK1 que puede actuar como pin de entrada o como entrada de impulsos para un contador denominado TMRO El puerto B tien 8 lneas que van desde RB-RB7 .Cada lnea del RA o del RB se puede configurar como entrada o salida mediante 2 registros llamados TRISA y TRISB
Robtica Ing. Csar Reyes
Facultad de Ingeniera
PUERTOS DE ENTRADA/SALIDA
Robtica
Facultad de Ingeniera
PIC's 16F84 con el puerto RA como entrada y el puerto RB como salida. Utilizaremos como entrada unos micro interruptores y como salida unos leds conectados al puerto RB0-RB7
Robtica
Facultad de Ingeniera
RESET MANUAL En el caso de que sea necesario se puede aplicar un reset manual a la patilla MCLR mediante un pulsador y una resistencia. La siguiente figura muestra una configuracin bsica para realizar un reset manual
Robtica
Facultad de Ingeniera
Memorias.
Todo dispositivo programable necesita de una memoria para poder almacenar el programa, poder manejar variables y almacenar datos. MEMORIA DE PROGRAMA En el PIC 16F84 la memoria de programa o de instruciones es una memoria tipo FLASH de 1K. En esta memoria microcontrolador almacenaremos el programa que ejecutar el
Existe un registro especial llamado contador de programa PC cuya finalidad es avanzar por las instrucciones del programa de forma secuencial excepto cuando se encuentran instrucciones de salto.
Robtica
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
OTRAS CARACTERISTICAS Dentro del microcontrolador hay unos registros especiales que determinan algunas de las caractersticas notables del microcontrolador: - Temporizador/Contador TMR0 - Perro guardin watch Dog (WD) - Interrupciones. -Reset .(Reinicio del sistema) Estas caractersticas se explicarn mas adelante en el apartado correspondiente a la programacin
Robtica
Facultad de Ingeniera
Los ficheros de cdigo fuente llevarn la extensin *.ASM Los ficheros de listado llevarn la extensin *.LST Los ficheros de errores llevarn la extensin *.ERR Los ficheros ejecutables en formato Intel Hex llevarn la extensin *.HEX
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Hemos visto la estructura general. Ahora veremos la posicin de los elementos del cdigo por 4 columnas:
Robtica
Facultad de Ingeniera
TIPO
Decimal
SINTAXIS
D<cantidad> d <cantidad> . <cantidad>
EJEMPLO
MOVLW MOVLW MOVLW D10 d10 .10
Hexadecimal
Robtica
Facultad de Ingeniera
TIPO
Octal
SINTAXIS
O<cantidad> o <cantidad>
EJEMPLO
MOVLW MOVLW O150 o150
Binario
B<cantidad> b <cantidad>
MOVLW MOVLW
B01011010 b01011010
Robtica
Facultad de Ingeniera
TIPO
ASCII
SINTAXIS
A<carcter> a<carcter> <carcter> <string>
EJEMPLO
MOVLW MOVLW MOVLW AM aM M
DT Estudia UPN
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Sintaxis: [label] XORWF f,d Operacin: (W) XOR (f) (dest) Descripcin: Realiza la operacin lgica XOR entre los registros W y f. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: : Antes: Despus: XORWF REG,1 W = 0xB5, W = 0xB5, REG = 0xAF REG = 0x1A
Robtica
Facultad de Ingeniera
Sintaxis: [label] COMF f,d Operacin: : (/ f), 1 (dest) Descripcin: El registro f es complementado. El flag Z se activa si el resultado es 0. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f.. Ejemplo: : Antes: Despus: COMF REG,0 REG = 0x13 REG = 0x13,
W = 0XEC
Robtica
Facultad de Ingeniera
Movimientos MOV:
MOVLW Cargar literal en W Sintaxis: [label] MOVLW f Operacin: (k) (W) Descripcin: El literal k pasa al registro W. Ejemplo: Despus: MOVLW 0x5A W = 0x5A
Robtica
Facultad de Ingeniera
Movimientos MOV:
MOVF Mover a f
Sintaxis: [label] MOVF f,d Operacin: (f) (dest) Descripcin: El contenido del registro f se mueve al destino d. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Permite verificar el registro, puesto que afecta a Z. Ejemplo: MOVF REG,0
Despus:
W = REG
Robtica
Facultad de Ingeniera
Movimientos MOV:
MOVWF Mover a f
Sintaxis: [label] MOVWF f Operacin: W (f) Descripcin: El contenido del registro W pasa el registro f. Ejemplo: MOVWF REG,1
Robtica
Facultad de Ingeniera
Movimientos SWAPF:
SWAPF Intercambio de f Sintaxis: [label] SWAPF f,d Operacin: : (f <3: 0>) (f <7:4>) Descripcin: Los 4 bits de ms peso y los 4 de menos son intercambiados. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: : SWAPF REG,0
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Sintaxis: [label] SUBWF f,d Operacin: ( f ) (W ) (dest) Descripcin: Mediante el mtodo del complemento a dos el contenido de W es restado al de f. . Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplos: Antes: Despus: SUBWF REG,1 REG = 0x03, REG = 0x01,
W = 0x02, W = 0x4F,
C=? C=1
Robtica
Facultad de Ingeniera
Z=1
Robtica
Facultad de Ingeniera
Sintaxis: [label] CLRF f Operacin: : 0x00 (f), 1 Z Descripcin: El registro f se carga con 0x00. El flag Z se activa. Ejemplo: : Antes: Despus: CLRF REG REG = 0x5A REG = 0x00,
Z=1
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Antes: Despus:
C=1
Robtica
Facultad de Ingeniera
Sintaxis: [label] RRF f,d Operacin: Rotacin a la derecha Descripcin: El contenido de f se rota a la derecha. El bit de menos peso de f pasa al carry (C), y el carry se coloca en el de mayor peso. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: RRF REG,0
Antes: Despus:
Robtica
Facultad de Ingeniera
Sintaxis: [label] GOTO k Operacin: k PC <8:0> Descripcin: Se trata de un salto incondicional. La parte baja de k se carga en PCL, y la alta en PCLATCH. Ocupa 2 ciclos de reloj. Ejemplo: ORIGEN GOTO DESTINO Antes: Despus: PC = ORIGEN PC = DESTINO
Robtica
Facultad de Ingeniera
Sintaxis: [label] CALL k Operacin: PC Pila; k PC Descripcin: Salto a una subrutina. La parte baja de k se carga en PCL, y la alta en PCLATCH. Ocupa 2 ciclos de reloj. Ejemplo: ORIGEN CALL DESTINO Antes: Despus: PC = ORIGEN PC = DESTINO
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Sintaxis: [label] BCF f,b Operacin: : 0 (f<b>) Descripcin: Borra el bit b del registro f Ejemplo: : Antes: Despus: BCF REG,7 REG = 0xC7 REG = 0x47
Robtica
Facultad de Ingeniera
Sintaxis: [label] BSF f,b Operacin: 1 (f<b>) Descripcin: Activa el bit b del registro f Ejemplo: : Antes: Despus: BSF REG,7 REG = 0x0A REG = 0x8A
Robtica
Facultad de Ingeniera
Generales NO OPERAR:
NOP No operar
Sintaxis: [label] NOP Operacin: No operar Descripcin: No realiza operacin alguna. En realidad consume un ciclo de instruccin sin hacer nada. Ejemplo: : Despus: CLRWDT Contador WDT = 0, Preescales WDT = 0, /TO = 1, /PD = 1
Robtica
Facultad de Ingeniera
Descripcin: El bit de energa se pone a 0, y a 1 el de descanso. El WDT y su preescaler se borran. El micro para el oscilador, llendo al modo durmiente.
Ejemplo: : SLEEP
Robtica
Facultad de Ingeniera
Robtica
Facultad de Ingeniera
Despus:
Robtica
Facultad de Ingeniera
Robtica