Documentos de Académico
Documentos de Profesional
Documentos de Cultura
P.G.F.
INSTRUCCIN ADDLW k
W+k
Ejm:
W =1
0 0 0 0 0 0 0 1
ADDLW .7
W = 1 +7 = 8
0 0 0 0 1 0 0 0
W=1
0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
ADDWF REG1,1
REG1 = 5
REG1 = 1 + 5 = 6
0 0 0 0 0 1 1 0
INSTRUCCIN ANDLW k
W AND k
Ejm:
W =5
0 0 0 0 0 1 0 1
ANDLW b00000111
W = 5 AND 7 = 5
0 0 0 0 0 1 0 1
W=3
0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1
ANDWF REG1,0
REG1 = 5
W = 3 AND 5 = 1
0 0 0 0 0 0 0 1
INSTRUCCIN CLRW
0
Ejm:
W =171
1 0 1 0 1 0 1 1
CLRW
W=0
0 0 0 0 0 0 0 0
INSTRUCCIN CLRF f
0
Ejm:
REG1 =170
1 0 1 0 1 0 1 0
CLRF REG1
REG1 = 0
0 0 0 0 0 0 0 0
REG1 =240
1 1 1 1 0 0 0 0
COMF REG1,0
W = 15
0 0 0 0 1 1 1 1
REG1 =8
0 0 0 0 1 0 0 0
DECF REG1,1
REG1 = 7
0 0 0 0 0 1 1 1
REG1 =15
0 0 0 0 1 1 1 1
INCF REG1,1
REG1 = 16
0 0 0 1 0 0 0 0
INSTRUCCIN IORLW k
W OR k
Ejm:
W =9
0 0 0 0 1 0 0 1
IORLW b00000111
W = 9 OR 7 = 15
0 0 0 0 1 1 1 1
0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1
IORWF REG1,0
REG1 =6
0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1
W = 6 OR 9 = 15
INSTRUCCIN NOP
Ejm:
NOP
0 1 0 0 1 1 1 1
RLF C
REG1,1 REG1
1 0 0 1 1 1 1 0
1 0 0 1 1 1 1 0
RLF C
REG1,1 REG1
0 0 1 1 1 1 0 0
0 0 1 1 1 1 0 0
RLF C
REG1,1 REG1
0 1 1 1 1 0 0 1
0 0 1 1 1 1 0 0
RRF C
REG1,1 REG1
1 0 0 1 1 1 1 0
INSTRUCCIN SUBLW k
k-W
EJEMPLO 1:
W=5
0 0 0 0 0 1 0 1
SUBLW .7 C
W=7-5=2
0 0 0 0 0 0 1 0
POSITIVO
INSTRUCCIN SUBLW k
k-W
EJEMPLO 2:
W = 15
0 0 0 0 1 1 1 1
SUBLW .15 C
W = 15 - 15 = 0
0 0 0 0 0 0 0 0
CERO
INSTRUCCIN SUBLW k
k-W
EJEMPLO 3:
W=4
0 0 0 0 0 1 0 0
SUBLW .3 C
W = 3 - 4 = -1
1 1 1 1 1 1 1 1
NEGATIVO
REG1 = 6 W=1
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1
SUBWF REG1,1 C
REG1 = 6 - 1 = 5
0 0 0 0 0 1 0 1
POSITIVO
REG1 = 7 W=7
0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1
SUBWF REG1,1 C
W=7-7=0
0 0 0 0 0 0 0 0
CERO
REG1 = 10 W = 12
0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0
SUBWF REG1,1 C
REG1 = 10 - 12 = -2
1 1 1 1 1 1 1 0
NEGATIVO
d<7:4> d<3:0>
f<7:4>
REG1
0 0 0 0 1 0 0 1
SWAPF REG1,0
1 0 0 1 0 0 0 0
INSTRUCCIN XORLW k
W XOR k
Ejm:
W =9
0 0 0 0 1 0 0 1
XORLW b00000111
W = 9 XOR 7 = 14
0 0 0 0 1 1 1 0
REG1 = 15
0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0
XORWF REG1,0
W=6
W = 15 XOR 6 = 9
0 0 0 0 1 0 0 1
RUTINAS USUALES
Poner a CERO varios bits de W sin alterar el resto. Ejm: Se desea poner a cero los bits 3, 4 y 5 del registro W sin alterar los dems
1 0 1 0 1 0 0 1
ANDLW B11000111
1 0 0 0 0 0 0 1
RUTINAS USUALES
Poner a UNO varios bits de W sin alterar el resto. Ejm: Se desea poner a uno los bits 1,2,3 y 4 del registro W sin alterar los dems
1 0 1 0 1 0 0 1
IORLW B00011110
1 0 1 1 1 1 1 1
RUTINAS USUALES
Detectar si dos registros son iguales y en tal caso llama una subrutina Ejm: Si REG1 = REG2 llamar la subrutina IGUAL
REG1,0
;REG 1
10101001 10101001
REG2,0
XORWF REG2,0
;W = REG2 XOR W
XORWF Z
00000000
CONTINUA PROGRAMA
RUTINAS USUALES
Detectar si un registro es mayor que otro Ejm: Si REG2 >= REG1 llamar la subrutina MAYOR
REG1,0
;REG 1
00000001 00000111
REG2,0
SUBWF REG2,0
;W = REG2 W(REG1)
BTFSS STATUS,0 ;SI C =1 BRINCA CALL CALL MENOR MAYOR ;C = 0 si REG2<REG1 ;C = 1 si REG2>=REG1
SUBWF C
00000110
CONTINUA PROGRAMA
PROGRAMA DE VERIFICACIN
;AUTOR: P.G.F. ;PIC: 16F84A ;FUNCION: PROGRAMA PARA CORROBORAR EL FUNCIONAMIENTO DE ALGUNAS SUBRUTINAS ;CARACTERISTICAS: ;OSCILLATOR: XT ;WATCHDOG TIMER: OFF ;POWER UP TIMER: ON ;CODE PROTECT: OFF INCLUDE "P16F84.Inc" ;**************************** DEFINICION DE REGISTROS *********************************** CBLOCK .12 REG1, REG2 endc ;**************************************************************************************** org 00 goto INICIO org 05 INICIO movlw .7 ;W = 7 movwf REG1 ;REG1 = W = 7 movlw .7 ;W = 7 movwf REG2 ;REG2 = W = 7
PROGRAMA DE VERIFICACIN
;Subrutina para comprobar igualdades VERIF_IGUAL movf REG1,0 xorwf REG2,0 btfsc STATUS,2 goto IGUAL ;W = REG1 ;W = REG1 XOR REG2 ;Salta si Z = 0 ;llama Subrutina
;subrutina para comprobar que REG2 es mayor que REG1 COM_REG movf REG1,0 ;W = REG1 subwf REG2,0 ;W = REG2 - REG1 btfss STATUS,0 ;Salta SI C =1 (REG2>=REG1) goto NO goto SI ;Subrutina en caso que REG2 >= REG1 SI movlw .2 ;W = 2 movwf REG2 ;REG2 = W = 2 goto COM_REG ;vuelve a comprobar que REG2>=REG1 ;Subrutina en caso que REG2 < REG1 NO goto INICIO ;Subrutina en caso que REG1 = REG2 IGUAL movlw .8 ;W = 8 movwf REG2 ;REG2 = W = 8 goto VERIF_IGUAL end
MOTOR PAP
Mientras que un motor convencional gira libremente al aplicarle una tensin, el motor paso a paso gira un determinado ngulo de forma incremental (transforma impulsos elctricos en movimientos de giro controlados), lo que le permite realizar desplazamientos angulares fijos muy precisos (pueden variar desde 1,8 hasta unos 90)
MOTOR PAP
Estn constituidos esencialmente por dos partes: Estator: parte fija construida a base de cavidades en las que van depositadas las bobinas. Rotor: parte mvil construida mediante un imn permanente. Este conjunto va montado sobre un eje soportado por dos cojinetes que le permiten girar libremente.
MOTOR PAP
Al excitar el estator, se crearan los polos N-S, provocando la variacin del campo magntico formado.
La respuesta del rotor ser seguir el movimiento de dicho campo (tender a buscar la posicin de equilibrio magntico), es decir, orientar sus polos NORTE-SUR hacia los polos SUR-NORTE del estator, respectivamente.
INSTRUCCIN GOTO k
0000 H
VECTOR RESET
PC
ETIQUETA = 34h
0004 H
VECTOR INTERRUPCIN PC = 11 h
0011 H 0012 H
Goto 34h
ETIQUETA 0034 H
PC = 34 h CONTINUA PROGRAMA
03FF H
13
PC+1 k
VECTOR INTERRUPCIN
Pila PC
0004 H
PC = 34 h
0012 h
NIVEL 2 NIVEL 3
SUBRUTINA RETURN
. . .
NIVEL 8
03FF H
13
INSTRUCCIN RETLW k
0000 H
VECTOR RESET
Nivel 1 (pila) k
0004 H
VECTOR INTERRUPCIN
PC W
Funciona igual que el comando RETURN con la diferencia que carga el valor del literal k en W
SUBRUTINA
W = 00000111
RETLW d7
03FF H
13
XT OFF ON OFF
INCLUDE "P16F84A.Inc" ;*******DEFINICION DE REGISTROS********************************** CBLOCK .12 REG1, REG2, REG3, MOTOR ENDC ;*******DEFINICION DE DATOS************************************** VALOR1 EQU .10 VALOR2 EQU .40 VALOR3 EQU .40
;*******PROGRAMA************************************************* ORG 00 GOTO INICIO ORG 05 INICIO bsf STATUS,RP0 ;PASA AL BANCO 1 clrf TRISA ;CONFIGURA PUERTOS COMO SALIDAS clrf TRISB bcf STATUS,RP0 ;PASA AL BANCO 0 clrf PORTA clrf PORTB
;*******TABLA DE LA SECUENCIA DEL MOTOR PAP***************** TABLA addwf nop retlw retlw retlw retlw PCL,F B'00000001' B'00000010' B'00000100' B'00001000' ; PCL = PCL + W
INSTRUCCIN SLEEP
La instruccin SLEEP introduce al procesador en un modo de funcionamiento que se llama de reposo o de bajo consumo. Detiene al oscilador y el procesador queda congelado, no ejecutando instrucciones y manteniendo el mismo valor en los puertos. Pone los bits PD# = 0 y TO# = 1. Borra el perro guardin y al divisor de frecuencia
INTERRUPCIONES
0000 H
VECTOR RESET
0004 H
0012 H 0034 H
INICIO
PROGRAMA
03FF H
13
CAUSAS DE INTERRUPCIONES
Activacin de la patita RB0/INT Cambio de estado de uno de los pines RB<4:7> del puerto B Desbordamiento del temporizador TMR0 Finalizacin de la escritura en la EEPROM de datos
1
GIE
x
EEIE
x
T0IE
1
INTE
x
RBIE
0
T0IF
0
INTF
0
RBIF
XT OFF ON OFF
INCLUDE
"P16F84A.Inc"
;**************************** DEFINICION DE REGISTROS *********************************** CBLOCK .12 reg1,reg2,reg3 endc ;**************************** DEFINICION DE DATOS **************************** valor1 equ d'8' ;DATOS PARA REATRDO DE 1 SEGUNDO valor2 equ d'195' valor3 equ d'212' LED equ 0 ;pin de entrada del interruptor
PORTA,LED ciclo
;***********************subrutina para retardos*************** RETARDO movlw movwf tres movlw movwf dos movlw movwf uno decfsz goto decfsz goto decfsz goto return end valor1 reg1 valor2 reg2 valor3 reg3 reg3,f uno reg2,f dos reg1,f tres ;retardo de bit y medio
XT OFF ON OFF
INCLUDE "P16F84A.Inc" ;**************************** DEFINICION DE REGISTROS *********************************** CBLOCK .12 reg1,reg2,reg3 endc ;**************************** DEFINICION DE DATOS **************************** valor1 equ d'8' ;DATOS PARA REATRDO DE 1 SEGUNDO valor2 equ d'195' valor3 equ d'212' LED equ 0 ;pin de entrada del interruptor
ciclo
bsf PORTA,LED movf PORTB,W ;TENER COMO BASE PARA COMPARAR EL CAMBIO EN SUS PINES sleep goto ciclo ;***********************subrutina para retardos*************** RETARDO movlw valor1 ;retardo de bit y medio movwf reg1 tres movlw valor2 movwf reg2 dos movlw valor3 movwf reg3 uno decfsz reg3,f goto uno decfsz reg2,f goto dos decfsz reg1,f goto tres return end