




![]()

![]()


| Motores PAP. | ||
| Control de mandos de motores. | ||
| Sensores. | ||
| PIC 16F84. | ||
| Baterias. | ||
| Otros componentes. |
VOLVER

Los motores paso a paso son ideales para la construcción de mecanismos en donde se requieren movimientos muy precisos.
La característica principal de estos motores es el hecho de poder moverlos un paso a la vez por cada pulso que se le aplique. Este paso puede variar desde 90° hasta pequeños movimientos de tan solo 1.8°, es decir, que se necesitarán 4 pasos en el primer caso (90°) y 200 para el segundo caso (1.8°), para completar un giro completo de 360°.
Estos motores poseen la habilidad de poder quedar enclavados en una posición o bien totalmente libres. Si una o más de sus bobinas está energizada, el motor estará enclavado en la posición correspondiente y por el contrario quedará completamente libre si no circula corriente por ninguna de sus bobinas.
En este capítulo trataremos solamente los motores P-P del tipo de imán permanente, ya que estos son los mas usados en robótica.


Existen dos tipos de motores paso a paso de imán permanente:



Secuencias para manejar motores paso a paso Bipolares
Como se dijo anteriormente, estos motores necesitan la inversión de la corriente que circula en sus bobinas en una secuencia determinada. Cada inversión de la polaridad provoca el movimiento del eje en un paso, cuyo sentido de giro está determinado por la secuencia seguida.
A continuación se puede ver la tabla con la secuencia necesaria para controlar motores paso a paso del tipo Bipolares:
| PASO | TERMINALES | |||
| A | B | C | D | |
| 1 | +V | -V | +V | -V |
| 2 | +V | -V | -V | +V |
| 3 | -V | +V | -V | +V |
| 4 | -V | +V | +V | -V |
Secuencias para manejar motores paso a paso Unipolares
Existen tres secuencias posibles para este tipo de motores, las cuales se detallan a continuación. Todas las secuencias comienzan nuevamente por el paso 1 una vez alcanzado el paso final (4 u 8). Para revertir el sentido de giro, simplemente se deben ejecutar las secuencias en modo inverso.
Secuencia Normal: Esta es la secuencia más usada y la que generalmente recomienda el fabricante. Con esta secuencia el motor avanza un paso por vez y debido a que siempre hay al menos dos bobinas activadas, se obtiene un alto torque de paso y de retención.
| PASO | Bobina A | Bobina B | Bobina C | Bobina D | |
| 1 | ON | ON | OFF | OFF |
![]() |
| 2 | OFF | ON | ON | OFF |
![]() |
| 3 | OFF | OFF | ON | ON |
![]() |
| 4 | ON | OFF | OFF | ON |
![]() |
A continuación se puede apreciar la secuencia animada en modo normal:

Secuencia del tipo wave drive: En esta secuencia se activa solo una bobina a la vez. En algunos motores esto brinda un funcionamiento mas suave. La contrapartida es que al estar solo una bobina activada, el torque de paso y retención es menor.
| PASO | Bobina A | Bobina B | Bobina C | Bobina D | |
| 1 | ON | OFF | OFF | OFF |
![]() |
| 2 | OFF | ON | OFF | OFF |
![]() |
| 3 | OFF | OFF | ON | OFF |
![]() |
| 4 | OFF | OFF | OFF | ON |
![]() |
A continuación se puede apreciar la secuencia animada en modo wave drive:

Secuencia del tipo medio paso: En esta secuencia se activan las bobinas de tal forma de brindar un movimiento igual a la mitad del paso real. Para ello se activan primero 2 bobinas y luego solo 1 y así sucesivamente. Como vemos en la tabla la secuencia completa consta de 8 movimientos en lugar de 4.
| PASO | Bobina A | Bobina B | Bobina C | Bobina D | |
| 1 | ON | OFF | OFF | OFF |
![]() |
| 2 | ON | ON | OFF | OFF |
![]() |
| 3 | OFF | ON | OFF | OFF |
![]() |
| 4 | OFF | ON | ON | OFF |
![]() |
| 5 | OFF | OFF | ON | OFF |
![]() |
| 6 | OFF | OFF | ON | ON |
![]() |
| 7 | OFF | OFF | OFF | ON |
![]() |
| 8 | ON | OFF | OFF | ON |
![]() |
A continuación se puede apreciar la secuencia animada en modo medio paso:

Como comentario final, cabe destacar que debido a que los motores paso a paso son dispositivos mecánicos y como tal deben vencer ciertas inercias, el tiempo de duración y la frecuencia de los pulsos aplicados es un punto muy importante a tener en cuenta. En tal sentido el motor debe alcanzar el paso antes que la próxima secuencia de pulsos comience. Si la frecuencia de pulsos es muy elevada, el motor puede reaccionar en alguna de las siguientes formas:
- Puede que no realice ningún movimiento en absoluto.
- Puede comenzar a vibrar pero sin llegar a girar.
- Puede girar erráticamente.
- O puede llegar a girar en sentido opuesto.
Para obtener un arranque suave y preciso, es recomendable comenzar con una frecuencia de pulso baja y gradualmente ir aumentándola hasta la velocidad deseada sin superar la máxima tolerada. El giro en reversa debería también ser realizado previamente bajando la velocidad de giro y luego cambiar el sentido de rotación.
Una referencia importante:
Cuando se trabaja con motores P-P usados o bien nuevos, pero de los cuales no tenemos hojas de datos. Es posible averiguar la distribución de los cables a los bobinados y el cable común en un motor de paso unipolar de 5 o 6 cables siguiendo las instrucciones que se detallan a continuación:

1. Aislando el cable(s) común que va a la fuente de alimentación: Como se aprecia en las figuras anteriores, en el caso de motores con 6 cables, estos poseen dos cables comunes, pero generalmente poseen el mismo color, por lo que lo mejor es unirlos antes de comenzar las pruebas.
Usando un tester para chequear la resistencia entre pares de cables, el cable común será el único que tenga la mitad del valor de la resistencia entre ella y el resto de los cables.
Esto es debido a que el cable común tiene una bobina entre ella y cualquier otro cable, mientras que cada uno de los otros cables tienen dos bobinas entre ellos. De ahí la mitad de la resistencia medida en el cable común.
2.Identificando los cables de las bobinas (A, B, C y D): aplicar un voltaje al cable común (generalmente 12 volts, pero puede ser más o menos) y manteniendo uno de los otros cables a masa (GND) mientras vamos poniendo a masa cada uno de los demás cables de forma alternada y observando los resultados.
El proceso se puede apreciar en el siguiente cuadro:
Seleccionar un cable y conectarlo a masa. Ese será llamado cable A.
Manteniendo el cable A conectado a masa, probar cuál de los tres cables restantes provoca un paso en sentido antihorario al ser conectado también a masa. Ese será el cable B.
Manteniendo el cable A conectado a masa, probar cuál de los dos cables restantes provoca un paso en sentido horario al ser conectado a masa. Ese será el cable D.
El último cable debería ser el cable C. Para comprobarlo, basta con conectarlo a masa, lo que no debería generar movimiento alguno debido a que es la bobina opuesta a la A.
- Nota: La nomenclatura de los cables (A, B, C, D) es totalmente arbitraria.
Identificando los cables en Motores P-P Bipolares:
Para el caso de motores paso a paso bipolares (generalmente de 4 cables de salida), la identificación es más sencilla. Simplemente tomando un tester en modo ohmetro (para medir resistencias), podemos hallar los pares de cables que corresponden a cada bobina, debido a que entre ellos deberá haber continuidad (en realidad una resistencia muy baja). Luego solo deberemos averiguar la polaridad de la misma, la cual se obtiene fácilmente probando. Es decir, si conectado de una manera no funciona, simplemente damos vuelta los cables de una de las bobinas y entonces ya debería funcionar correctamente. Si el sentido de giro es inverso a lo esperado, simplemente se deben invertir las conexiones de ambas bobinas y el H-Bridge.
VOLVER
La parate electrónica utiliza el circuito MC8031 que está basado en los MCS 8 bits, contiene internamente un CPU (Unidad de Control de Procesamiento) de 8 bits, 3 puertos de entrada/salida paralelo, un puerto de control el cual a su vez contiene un puerto serie, 2 entradas para timer contador de 16 bits, 2 entradas para interrupciones externas, las señales de RD y WR para la toma o almacenamiento de datos externos en RAM, la señal de PSEN para la lectura de instrucciones almacenadas en EPROM externo. Gracias a estas tres señales el MC8031 puede direccionar 64 Kb de programa y 64 Kb de datos separadamente. Además cuenta con 128 bytes de memoria RAM interna. El puerto tres (P3) se utiliza para detectar el pulso emitido, por lo tanto este puerto se utiliza como puerto de entrada de datos.[8].
Los motores paso a paso o simplemente PAP, son un
tipo especial de motores que permiten el avance de su eje en ángulos muy
precisos y por pasos en las dos posibles direcciones de movimiento, izquierda o
derecha. Cada paso tiene un ángulo muy preciso, determinado por la construcción
del motor, lo que permite realizar movimientos exactos sin necesidad de un
sistema de control por lazo cerrado.[5]. También presentan grandes ventajas con
respecto a la utilización de servomotores debido a que se pueden manejar
digitalmente sin realimentación, su velocidad se puede controlar con facilidad,
son pequeños y de larga vida ya que poseen un elevado torque en bajas
revoluciones, permitiendo un bajo consumo tanto en vacío como en plena carga, su
mantenimiento es mínimo debido a que no tienen escobillas.

Un motor paso a paso es una máquina eléctrica en la que sus devanados se energizan uno después del otro, estas excitaciones provocan un giro discontinuo en un ángulo que se determina por la posición que toma el eje. En la figura 1 se muestra un motor que utiliza cuatro bobinas mediante las cuales podemos hacer girar el rotor en ángulos de 90°.
Los motores a pasos tanto unipolares como bipolares, pueden trabajar en dos modos de operación, de paso completo y de medio paso. En el primer caso, con cada secuencia el rotor gira un determinado ángulo que depende de la fabricación; en el modo de medio paso, cada secuencia produce un giro en grados correspondiente a la mitad de su paso normal. Además del sentido del giro, cuya posición queda determinada por la secuencia de los pulsos transmitidos, variando la frecuencia de los pulsos aplicados a las bobinas.
Los motores PAP poseen 5 terminales y los niveles de tensión que deben estar presentes en cada terminal para encontrar una secuencia. Para invertir el sentido de giro sólo hay que invertir la secuencia. En la figura 2 se da la secuencia que el software tiene que generar para que el motor gire correctamente.
Para realizar el control de velocidad del motor, lo único que se debe hacer es variar la frecuencia de desplazamiento de la secuencia. Si por el contrario la frecuencia disminuye, la velocidad del motor también lo hace. Para realizar el control del sentido de giro, se debe invertir las variables de la forma sugerida en la figura 2.
Para realizar el control de posición del motor, se debe conocer la cantidad de grados que el mismo gira por paso, ya que se debe realizar una función por software, tal que al ingresar una variable de N cantidad de grados, el motor gire la cantidad de pasos que esto significa.
El sistema cuenta con un dispositivo emisor/receptor de láser, el cual se utiliza para detectar un vehículo y asegurar de esta forma que la aguja no caiga sobre él.
DESCRIPCIÓN DEL SISTEMA
Controlaccess es un proyecto que controla las entradas y salidas tanto de
empleados como visitantes en una institución privada mediante el uso de sistemas
electrónicos y de computo, llevando el control de la información de todos los
empleados que asceden a dicho estacionamiento por medio de una Base de datos que
está relacionada directamente con el sistema electrónico, es decir, cuando se
activa una señal de un control manipulado por el usuario, éste envía una señal
al Microcontrolador 8031 que la identifica y posteriormente
activa la aguja
mediante un motor a pasos, permitiendo el acceso al usuario.
Este proyecto de seguridad cuenta con varias terminales las cuales se comunican mediante el MAX232 en serie, un Microcontrolador 8031 y un dispositivo de seguridad especial manejado mediante láser y un control remoto para activar las agujas. El MC8031 actúa como intermediario entre la Computadora y los motores a pasos, controlando el giro de los motores ya que cada motor cuenta con una etapa de potencia. Cuando las agujas se abren aceptando la clave del usuario, activan una alarma para que el motor no se mueva y pueda caer y dañar al vehículo, estos motores vuelven a su posición inicial después de determinado tiempo. Los motores trabajan por separado, es decir un motor controla la aguja del estacionamiento para visitantes y otro maneja las dos agujas en conjunto para los trabajadores de la empresa, encontrándose los dos en reposo hasta que un usuario llegue al estacionamiento.
Este proyecto ha sido desarrollado pensando en la facilidad de implementación, manejo, mantenimiento y costos accesibles del mismo, ya que se utilizaron componentes fáciles de conseguir, de bajo costo y de fácil manejo.
Para lograr la conectividad del sistema con la base
de datos se utilizan los ODBC o manejadores de bases de datos de conectividad
abierta. Así mismo se cuenta con herramientas de consulta SQL (Structured Query
Language, "Lenguaje estructurado de consultas"), cuyos componentes y
características son utilizadas y modificadas siguiendo el principio de herencia
y polimorfismo de la programación orientada a objetos.
Figura 3 Diagrama a Bloques del Sistema.
CONCLUSIONES
El sistema de control de accesos "Controlaccess" permite que en un
estacionamiento privado mantenga la seguridad en el control de vehículos y
personal (tanto empleados como visitantes) en base a un sistema se agiliza el
acceso y provee información seleccionada a través de una base de datos, la cual
contiene datos de vehículos y empleados. El sistema de las agujas cuenta con un
procedimiento de seguridad en caso de falla de energía eléctrica asegurando de
esta forma al vehículo en el momento de la entrada y salida al estacionamiento.
RECOMENDACIONES
"Controlaccess" está enfocado directamente a aaquellas empresas grandes que
cuenten con estacionamiento. Al manejar este sistema, sugerimos el siguiente
equipo, como requerimientos mínimos un Procesador 486 DX2 66 Mhz con 16 MB RAM,
20 MB en disco duro y monitor a 256 colores.
DIRECCIÓN Y TRACCIÓN
La dirección y tracción diseñada debe funcionar mediante dos motores paso a paso(stepper) que según un patrón tabulado permite todo tipo de movimientos. Esto es, avanzar y retroceder, tanto en línea recta como doblando.
El detalle de esto sigue a continuación:
Tracción:( Se optó como solución el uso de dos motores steppers, como sistema de tracción - dirección. Cada motor tiene 2 pares de bobinas y dos tierras independientes, las cuales se conectan en común.).
Para el control de estos motores, se usó un PIC16F84, debido a su bajo costo, facilidad de programación y a que usando la entrada de 5 bits era capaz de manejar perfectamente los steppers a través de 8 bits de datos.

VOLVER
Descripción: Sensor basado en el dispositivo SHARP IS471F inmune a interferencias de luz normal. Este sensor incorpora un modulador/demodulador integrado en su carcasa y a través de su patilla 4 controla un diodo LED de infrarrojos externo, modulando la señal que este emitirá, para ser captada por el IS471F que contiene el receptor. cuando un objeto se sitúa enfrente del conjunto emisor/receptor parte de la luz emitida es reflejada y demodulada para activar la salida en la patilla 2 que pasará a nivel bajo si la señal captada es suficientemente fuerte.

El uso de luz IR modulada tiene por objeto hacer al sensor relativamente inmune a las interferencias causadas por la luz normal de una bombilla o la luz del sol.
Funcionamiento:
Como puede verse en el esquema, el sensor se alimenta por sus patitas 1, 3 y
estas corresponden a Vcc y Gnd respectivamente, la patita 2 es la salida del
detector y la patita 4 es la salida que modula al led emisor externo. Mediante
el potenciómetro P1 se varia la distancia a la que es detectado el objeto.
Contra mas baja sea la resistencia de este potenciómetro, mas intensa será la
luz emitida por el diodo de IR y por lo tanto mayor la distancia a la que puede
detectar el objeto.
El el siguiente esquema vemos el simple circuito necesario para hacer funcionar al sensor.


Usos:
Creo que estos se usan para detección de obstáculos por reflexión y detección de
oponentes en combates de sumo. (digo creo porque aun no e probado este
dispositivo y no se que sensibilidad tiene y si es adecuado para esto)
Ideas
y mejoras: En el circuito anterior lo que vemos es un detector de distancia
fija ajustable por un potenciómetro, pero seria posible hacerlo de varias
distancias o incluso un detector gradual de distancias. Para varias distancias
se podría conmutar varias resistencias y así calcular la distancia del objeto
haciendo pruebas antes, y creando una tabla de equivalencias. Para el detector
gradual también seria posible controlando la corriente que le llega al diodo
emisor mediante un conversor D/A y un circuito de potencia basado el algún
transistor, todo esto controlado por un Controlador.
VOLVER
Los PIC son una extensa familia de microcontroladores divididos en tres gamas, la gama baja con memoria de programa de 12 bits, la gama media y la gama alta con memoria de programa de 14 bits. En la tabla 1 se presentan algunos miembros de cada una de estas gamas con resumen de sus principales características.
Nosotros utilizaremos el PIC 16f84 por sus especiales características. Los microcontroladores PIC 16f84 com memoria tipo FLASH y PIC 16c84 con memoria EEPROM, son potentes, flexibles y fáciles de emplear debido entre otras carcterísticas a que este tipo de memoria permite su grabación y su borrado miles de veces de forma casi instantánea al realizarse eléctricamente a diferencia de los microcontroladores basados en memoria EPROM que necesita un borrador ultravioleta. Pueden utilizarse tanto en el desarrollo como en la producción. Su coste se reduce frente a otros modelos ya que no necesitan encapsulados cerámicos con ventana de programación como los chips EPRPOMs. Disponen ademas de una EEPROM de 64 bytes para datos, lo que elimina la necesidad de una memoria EEPROM externa, y aun mas importante, pueden ser programados "en circuito" sin necesidad de ser retirados, lo que permite su grabación después del ensamblado y que los programas pueden ser actualizados o modificados para eliminar errores detectados con posterioridad o para introducir versiones mas actualizadas del programa.
El PIC 16f84 pertenece a la gama media del fabricante, poseyendo unas características óptimas para su empleo en el aprendizaje. Este microntrolador con memoria FLASH ésta fabricado con tecnología CMOS. Su consumo es muy reducido siendo el circuito completamente estático por lo que su reloj puede detenerse completamente sin pérdida de los contenidos de los registros. Un consumo típico es de 2 mA a 4 Mhz y unos 40 microamperios en modo Sleep. Al ser un circuito CMOS, todas las entradas no usadas deben ser llevadas a +5V. El encapsulado de 18 pines así como la descripción del patillaje puede verse en la figura 1
Set de instrucciones Microcontrolador PIC.
Estas son las todas las instrucciones que hay para poder programar el Pic 16c5x, 16c64, 16c71, 16c74, 16c84, 16f84, 16f873.
Las encontraremos en orden alfabético.
En total son 37 y haciendo un clic sobre una de ellas podemos acceder a su respectiva descripción:
NOTA: Las instrucciones OPTION y TRIS incluidas en este listado, no forman parte del set de instrucciones de los PIC 16f84 y 16f873.
ADD Literal to W
Sintaxis
ADDLW k
Codificación
11
111x
kkkk
kkkk
Palabras, Ciclos
1, 1
Operación
W + k -> W
Bit de estado
C, DC, Z
Descripción
Añade el contenido de W al contenido de k, y almacena el resultado en W
Atención: Esta instrucción no existe en los Pic 16c5X
ADD W to F
Sintaxis
ADDWF f, d
Codificación
0001
11df
ffff
00
0111
dfff
ffff
Palabras, Ciclos
1, 1
Operación
W + f -> f si d=1
W + f -> W si d=0
Bit de estado
C, DC, Z
Descripción
Añade el contenido de W al contenido de f, y almacena el resultado en W si d=0, y en f si d=1
AND Literal and W
Sintaxis
ANDLW k
Codificación
1110
kkkk
kkkk
11
1001
kkkk
Kkkk
Palabras, Ciclos
1, 1
Operación
W AND k -> W
Bit de estado
Z
Descripción
Efectúa un AND lógico entre el contenido de W y el literal k, y lo almacena en W
AND W with F
Sintaxis
ANDWF f, d
Codificación
0001
01df
ffff
00
0101
dfff
ffff
Palabras, Ciclos
1, 1
Operación
W AND f -> f si d=1
W AND f -> W si d=0
Bit de estado
Z
Descripción
Efectúa un AND lógico entre el contenido de W y el contenido de f, y almacena el resultado en W si d=0, y en f si d=1
VOLVER
Bit Clear F
Sintaxis
BCF f, b
Codificación
0100
bbbf
ffff
01
00bb
bfff
ffff
Palabras, Ciclos
1, 1
Operación
0 -> b(f)
Bit de estado
Ninguno
Descripción
Pone a cero el bit numero b de f
Bit Set F
Sintaxis
BSF f, b
Codificación
0101
bbbf
ffff
01
01bb
bfff
ffff
Palabras, Ciclos
1, 1
Operación
1 -> b(f)
Bit de estado
Ninguno
Descripción
Pone a uno el bit numero b de f
VOLVER
Bit Test, Skip If Clear
Sintaxis
BTFSC f, b
Codificación
0110
bbbf
ffff
01
10bb
bfff
ffff
Palabras, Ciclos
1, 1 o 2
Operación
Salta si b(f)=0
Bit de estado
Ninguno
Descripción
Si el bit numero b de f es nulo, la instrucción que sigue a esta se ignora y se trata como un NOP. En este caso, y solo en este caso, la instrucción BTFSC precisa dos ciclos para ejecutarse.
Bit Test, Skip If Set
Sintaxis
BTFSS f, b
Codificación
0111
bbbf
ffff
01
11bb
bfff
ffff
Palabras, Ciclos
1, 1 o 2
Operación
Salta si b(f)=1
Bit de estado
Ninguno
Descripción
Si el bit numero b de f esta en uno, la instrucción que sigue a esta se ignora y se trata como un NOP. En este caso, y solo en este caso, la instrucción BTFSC precisa dos ciclos para ejecutarse.
VOLVER
Subrutina Call
Sintaxis
CALL k
Codificación
1001
kkkk
kkkk
10
0kkk
kkkk
kkkk
Palabras, Ciclos
1, 2
Operación
En el caso de los 16c5X:
PC + 1 -> Pila, k -> PC(0-7), 0 -> PC(8), PA2 a PA0 -> PC(9-11)
En el caso de los 16c64, 71, 74, 84: PC + 1 -> Pila, k -> PC(0-10), PCLATH(3,4) -> PC(11,12)Bit de estado
Ninguno
Descripción
Guarda la dirección de vuelta en la pila y despues llama a la subrutina situada en la dirección cargada en el PC.
Atención: El modo de calculo de la dirección difiere según la familia PIC utilizada. También hay que posicionar bien PA2, PA1, PA0 (16c5X) o el registro PCLATH (en los demas PIC), antes de ejecutar la instrucción CALL
Clear F with F
Sintaxis
CLRF f
Codificación
0000
011f
ffff
00
0001
1fff
ffff
Palabras, Ciclos
1, 1
Operación
00 -> f
Bit de estado
Z
Descripción
Pone el contenido de f a cero y activa el bit Z.
VOLVER
Clear W register
Sintaxis
CLRW
Codificación
0000
0100
0000
00
0001
0xxx
xxxx
Palabras, Ciclos
1, 1
Operación
00 -> W
Bit de estado
Z
Descripción
Pone el registro W a cero y activa el bit Z
Clear Watchdog Timer
Sintaxis
CLRWDT
Codificación
0000
0000
0100
00
0000
0110
0100
Palabras, Ciclos
1, 1
Operación
00 -> WDT y 0 -> predivisor del temporizador
Bit de estado
1 -> TO y 1 -> PD
Descripción
Pone a cero el registro contador del temporizador watchdog, asi como el predivisor
VOLVER
Complement F
Sintaxis
COMF f, d
Codificación
0010
01df
ffff
00
1001
dfff
ffff
Palabras, Ciclos
1, 1
Operación
~f -> f su d=1
~f -> W si d=0
Bit de estado
Z
Descripción
Hace un complemento de f bit a bit. El resultado lo almacena de nuevo en f si d=1 (borra el anterior), o en W si d=0 (f no varía)
Decrement F to F
Sintaxis
DECF f, d
Codificación
0000
11df
ffff
00
0011
dfff
ffff
Palabras, Ciclos
1, 1
Operación
f - 1 -> f si d=1
f - 1 -> W si d=0
Bit de estado
Z
Descripción
Decrementa el contenido de f en una unidad. El resultado se guarda en W si d=0 (f no varia), y en f si d=1
VOLVER
Decrement F, Skip If Zero
Sintaxis
DECFSZ f, d
Codificación
0010
11df
ffff
00
1011
dfff
ffff
Palabras, Ciclos
1, 1(2)
Operación
f - 1 -> f si d=1
f - 1 -> W si d=0
Bit de estado
Ninguno
Descripción
Decrementa el contenido de f en una unidad. El resultado se guarda en W si d=0 (f no varia), y en f si d=1
Si el reusltado es nulo, se ignora la siguiente instrucción y en este caso la instrucción dura dos ciclos.
Salto Incondicionalwith F
Sintaxis
GOTO k
Codificación
101k
kkkk
kkkk
10
1kkk
kkkk
kkkk
Palabras, Ciclos
1, 2
Operación
En el caso de los 16c5X:
k -> PC(0-8), PA2 PA1, PA0 -> PC(9-11)
En el caso de los 16c64,71,74 y 84:
k -> PC(0-10), PCLATH(3,4) -> PC(11,12)Bit de estado
Ninguno
Descripción
LLama a la subrutina situada en la dirección cargada en el PC
Atención: El modo de cálculo de la dirección difiere según la familia de PIC utilizada. También hay que posicionar correctamente PA2, PA1, PA0 (16c5X) o el registro PCLATH (en los demas PIC) antes de ejecutar la instrucción GOTO
VOLVER
Increment F
Sintaxis
INCF f, d
Codificación
0010
10df
ffff
00
1010
dfff
ffff
Palabras, Ciclos
1, 1
Operación
f + 1 -> f si d=1
f + 1 -> W si d=0
Bit de estado
Z
Descripción
Incrementa el contenido de f en una unidad. El resultado se almacena de nuebo en f si d=1 y en W si d=0(en este caso f no varía)
Increment F, Skip if Zero
Sintaxis
INCFSZ f, d
Codificación
0011
11df
ffff
00
1111
dfff
ffff
Palabras, Ciclos
1, 1(2)
Operación
f + 1 -> f si d=1
f + 1 -> W si d=0
En ambos casos: Salto si f + 1 = 0Bit de estado
Ninguno
Descripción
Incrementa el contenido de f en una unidad. El resultado se guarda de nuevo en f si d=1 y en w si d=0 (en este caso f no varia). Si el resultado es nulo, se ignora la siguiente instrucción y en este caso, esta instrucción dura dos ciclos
VOLVER
Inclusive OR Literal With W
Sintaxis
IORLW k
Codificación
1101
kkkk
kkkk
11
1000
kkkk
kkkk
Palabras, Ciclos
1, 1
Operación
W OR k -> W
Bit de estado
Z
Descripción
Efectúa un OR lógico inclusivo entre el contenido de W y el literal K, y almacena el resultado en W
Inclusive OR W With f
Sintaxis
IORWF f, d
Codificación
0001
00df
ffff
11
0100
dfff
ffff
Palabras, Ciclos
1, 1
Operación
W OR f -> f si d=1
W OR f -> W si d=0
Bit de estado
Z
Descripción
Efectúa un OR lógico inclusivo entre el contenido de W y el contenido de f, y almacena el resultado en f si d=1 o en W si d=0
VOLVER
Move F
Sintaxis
MOVF f, d
Codificación
0010
00df
ffff
00
1000
dfff
ffff
Palabras, Ciclos
1, 1
Operación
f -> f si d=1
f -> W si d=0
Bit de estado
Z
Descripción
Pone el contenido de f en f si d=1 o f en W si d=0
Atención: El desplazamiento de f en f que pareceria inutil, permite comprobar el contenido de f con respecto a cero ya que esta instucción actúa sobre el bit Z
Move Literal to W with F
Sintaxis
MOVLW k
Codificación
1100
kkkk
kkkk
11
00xx
kkkk
kkkk
Palabras, Ciclos
1, 1
Operación
k -> W
Bit de estado
Ninguno
Descripción
Carga W con el literal k
VOLVER
Move W to F
Sintaxis
MOVWF f
Codificación
0000
001f
ffff
00
0000
1fff
ffff
Palabras, Ciclos
1, 1
Operación
W -> f
Bit de estado
Ninguno
Descripción
Carga f con el contenido de W
No Operation
Sintaxis
NOP
Codificación
0000
0000
0000
00
0xx0
0000
Palabras, Ciclos
1, 1
Operación
Ninguna
Bit de estado
Ninguna
Descripción
Consume tiempo de la maquina y ocupa un lugar en la memoria de programa.
VOLVER
Load Option Register
Sintaxis
Option
Codificación
0000
0000
0010
00
0000
0110
0010
Palabras, Ciclos
1, 1
Operación
W -> OPTION
Bit de estado
Ninguno
Descripción
Carga el registro OPTION con el contenido de W
Atención: Esta instrucción no debe utilizarse en otros circuitos que no sean los PIC 16c5x. Sin embargo, es correctamente interpretada por los circuitos 16c64, 71, 74, 84 con el fin de asegurar una compatibilidad ascendente
Return From Interrupt
Sintaxis
RETFIE
Codificación
00
0000
0000
1001
Palabras, Ciclos
1, 2
Operación
Pila -> PC, 1 -> GIE
Bit de estado
Ninguno
Descripción
Carga el PC con el valor que se encuentra en la parte superior de la pila, asegurando asi la vuelta de la interrupción. Pone a 1 el bit GIE, con el fin de autorizar de nuevo que se tengan en cuenta las interrupciones
Atención: Esta interrupción dura dos ciclos
Esta instrucción no existe para los PIC 16c5X
VOLVER
Return Literal to W
Sintaxis
RETLW k
Codificación
1000
kkkk
kkkk
11
01xx
kkkk
kkkk
Palabras, Ciclos
1, 2
Operación
k -> W, Pila -> PC
Bit de estado
Ninguno
Descripción
Carga W con el literal k, y después carga el PC con el valor que se encuentra en la parte superior de la pila, efectuando asi un retorno de subrutina
Atención: Esta instrucción dura dos ciclos
Return from Subroutinewith F
Sintaxis
RETURN
Codificación
00
0000
0000
0000
Palabras, Ciclos
1, 2
Operación
Pila -> PC
Bit de estado
Ninguno
Descripción
Carga el PC con el valor que se encuentra en la parte superior de la pila, efectuando asi una vuelta a la subrutina. Se trata de la instrucción RETLW simplificada
Atención:Esta instrucción dura dos ciclos
Esta instrucción no existe en los PIC 16c5X
VOLVER
Rotate Left F through Carry
Sintaxis
RLF f,d
Codificación
0011
01df
ffff
00
1101
dfff
ffff
Palabras, Ciclos
1, 1
Operación
ver descr.
Bit de estado
C
Descripción
Rotación de un bit a la izquierda del contenido de f, pasando por el bit de acarreo C. Si d=1 el resultado se almacena en f si d=0 el resultado se almancena en W
Rotate Right F through Carry
Sintaxis
RRF f, d
Codificación
0011
00df
ffff
00
1100
dfff
ffff
Palabras, Ciclos
1, 1
Operación
Ver descr.
Bit de estado
C
Descripción
Rotación de un bit a la derecha del contenido de f, pasando por el bit de acarreo C. Si d=1 el resultado se introduce en f, si d=0 el resultado se amacena en W
VOLVER
Sleep
Sintaxis
SLEEP
Codificación
0000
0000
0011
00
0000
0110
0011
Palabras, Ciclos
1, 1
Operación
0 -> PD, 1 -> TO, 00 -> WDT, 0 -> Predivisor del WDT
Bit de estado
PD, TO
Descripción
Pone el circuito a dormir con parada del oscilador. Su consumo es inferior.
Atención: Use esta instrucción con mucho cuidado, pues puede provocar que el micro no despierte si no se ha seteado correctamente.
Substract W from Literal
Sintaxis
SUBLW k
Codificación
11
110x
kkkk
kkkk
Palabras, Ciclos
1, 1
Operación
k - W -> W
Bit de estado
C, DC, Z
Descripción
Sustrae el contenido de W del literal k, y almacena el resultado en W. La sustracción se realiza en complemento a dos
Atención: Esta instrucción no existe en los Pic 16c5X
VOLVER
Substract W from F
Sintaxis
SUBWF f, d
Codificación
0000
10df
ffff
00
0010
dfff
ffff
Palabras, Ciclos
1, 1
Operación
f - W -> f si d=1
f - W -> W si d=0
Bit de estado
C, DC, Z
Descripción
Sustrae el contenido de W del contenido de f, y almacena el resultado en W si d=0 y en f si d=1. La sustracción se realiza en complemento a dos
Swap F to F
Sintaxis
SWAPF f, d
Codificación
0011
11df
ffff
00
1110
dfff
ffff
Palabras, Ciclos
1, 1
Operación
f(0-3) -> f(4-7) y f(4-7) -> f(0-3)
Resultado -> f si d=1
Resultado -> W si d=0Bit de estado
Ninguno
Descripción
Intercambia los cuatro bit de mayor peso por los cuatro de menor peso de f, y almacena el resultado en W si d=0, y en f si d=1
VOLVER
Load TRIS Register
Sintaxis
TRIS f
Codificación
0000
0000
0fff
00
0000
0110
0fff
Palabras, Ciclos
1, 1
Operación
W -> registro TRIS del puerto f
Bit de estado
Ninguno
Descripción
Carga el contenido de W en el registro TRIS del puerto f.
Atención: Esta instrucción no debe utilizarse en otros circuitos que no sean los Pic 16c5X. No obstante, es correctamente interpretada por los circuitos 16c64, 71, 74, 84, con el fin de asegurar una compatibilidad ascendente
Exclusive OR Literal With W
Sintaxis
XORLW k
Codificación
1111
kkkk
kkkk
11
1010
kkkk
kkkk
Palabras, Ciclos
1, 1
Operación
W OR (Exclusivo) k -> W
Bit de estado
Z
Descripción
Efectúa un OR lógico exclusivo entre el contenido de W y el contenido del Literal K y almacena el resultado en W
VOLVER
Exclusive Or W with F
Sintaxis
XORWF f,d
Codificación
0001
10df
ffff
00
0110
dfff
ffff
Palabras, Ciclos
1, 1
Operación
W OR (Exclusivo) f -> f si d=1
W OR (Exclusivo) f -> W si d=0Bit de estado
Z
Descripción
Efectúa un Or lógico exclusivo entre el contenido de W y el contenido de f y almacena el resultado en f si d=1 o en W si d=0
VOLVER

La batería que vamos a utilizar es la R6(Ni-mH).
A continuación vemos sus características y sus dimensiones:
| R6 (Ni-mH) | 4,9 x 1,4 cm | 1.2 V | 1400 mA | 603-217 | 4,74 |
VOLVER
Otros componentes son:
| L293 (Control de mando de motores) |
| Condensadores 10uF |
| BC547: transistor |
| Cristal de cuarzo 4MHZ |
| Condensadores 15-18pF |
| LM317T: comparador |
VOLVER