189
Microcontroladores

Micro3

Embed Size (px)

Citation preview

Page 1: Micro3

Microcontroladores

Page 2: Micro3

Instrucciones Aritméticas

Page 3: Micro3

(add Literal to W). Suma el contenido del registro W con el literal o constante k. Almacena el resultado en W. Si se produce acarreo el flag C se pone a 1.

Ejemplo 1:Antes instrucción:Después instrucción:

addlw 0x4F (W) = 0xA3 C = ¿? (W) = 0xF2 C = 0

addlw k

Ejemplo 2:Antes instrucción:Después instrucción:

Instrucciones de Suma

addlw 0x38 (W) = 0xD1 C = ¿? (W) = 0x09 C = 1

Page 4: Micro3

(add W and f). Suma el contenido del registro W al contenido del registro f. Almacena el resultado en W si d = 0 y en el registro f si d = 1. Si se produce acarreo el flag C se pone a 1.

Ejemplo 1:Antes instrucción:Después instrucción:

addwf PORTA,W (W) = 0x17 (PORTA) = 0xC2 y C = ¿? (W) = 0xD9 (PORTA) = 0xC2 y C = 0

addwf f,d

Instrucciones de Suma

Ejemplo 2:Antes instrucción:Después instrucción:

addwf contador,f (W) = 0xD1 (contador) = 0x38 y C = ¿? (W) = 0xD1 (contador) = 0x09 y C = 1

Page 5: Micro3

La resta se realiza sumando, en binario puro sin signo, el registro f (o el literal k) mas el complemento de dos del contenido del registro W. Al realizar la resta en 8 bits con signo el resultado no puede exceder de (+127) ni de (-128). El flag de Carry indica si el resultado es positivo (C se pone a 1) o es negativo (C se pone a 0). Pueden ocurrir 3 resultados.

Instrucciones de Resta

Page 6: Micro3

(Subtract W from Literal). Resta en complemento a 2 el contenido de la constante k menos el contenido del registro W y almacena el resultado en W.

Ejemplo 1:Antes instrucción:Después instrucción:

sublw 0x03 (W) = 0x01 C = ¿? y Z = ¿? (W) = 0x02 C = 1 y Z = 0

sublw k

Instrucciones de Resta

Page 7: Micro3

(Subtract W from Literal). Resta en complemento a 2 el contenido de la constante k menos el contenido del registro W y almacena el resultado en W.

Ejemplo 2:Antes instrucción:Después instrucción:

sublw 0x02 (W) = 0x02 C = ¿? y Z = ¿? (W) = 0x00 C = 1 y Z = 1

sublw k

Instrucciones de Resta

Page 8: Micro3

(Subtract W from Literal). Resta en complemento a 2 el contenido de la constante k menos el contenido del registro W y almacena el resultado en W.

Ejemplo 3:Antes instrucción:Después instrucción:

sublw 0x02 (W) = 0x03 C = ¿? y Z = ¿? (W) = 0xFF C = 0 y Z = 0

sublw k

Instrucciones de Resta

Page 9: Micro3

(Subtract W to f). Resta en complemento a 2 el contenido del registro f menos el contenido del registro W . Almacena el resultado en W si d = 0 y en el registro f si d = 1.

Ejemplo 1:Antes instrucción:Después instrucción:

subwf Reg1,F Reg1 = 0x03 (W) = 0x02 C = ¿? y Z = ¿?Reg1 = 0x01 (W) = 0x02 C = 1 y Z = 0

subwf f,d

Instrucciones de Resta

Page 10: Micro3

(Subtract W to f). Resta en complemento a 2 el contenido del registro f menos el contenido del registro W . Almacena el resultado en W si d = 0 y en el registro f si d = 1.

Ejemplo 2:Antes instrucción:Después instrucción:

subwf Reg1,F Reg1 = 0x02 (W) = 0x02 C = ¿? y Z = ¿?Reg1 = 0x00 (W) = 0x02 C = 1 y Z = 1

subwf f,d

Instrucciones de Resta

Page 11: Micro3

(Subtract W to f). Resta en complemento a 2 el contenido del registro f menos el contenido del registro W . Almacena el resultado en W si d = 0 y en el registro f si d = 1.

Ejemplo 3:Antes instrucción:Después instrucción:

subwf Reg1,F Reg1 = 0x01 (W) = 0x02 C = ¿? y Z = ¿?Reg1 = 0xFF (W) = 0x02 C = 0 y Z = 0

subwf f,d

Instrucciones de Resta

Page 12: Micro3

(Decrement f). El contenido del registro f se decrementa en 1 unidad . Almacena el resultado en W si d = 0 (en cuyo caso f no varia) y en el registro f si d = 1. El flag Z se activa a 1 si el resultado de la operación es 0.

Ejemplo 1:Antes instrucción:Después instrucción:

decf contador,F (contador) = 0x01 y Z = ¿?(contador) = 0x00 y Z = 1

decf f,d

Incrementar y Decrementar

Ejemplo 2:Antes instrucción:Después instrucción:

decf contador,W (contador) = 0x04 (W) = ¿? y Z = ¿?(contador) = 0x04 (W) = 0x03 y Z = 0

Page 13: Micro3

(Increment f). El contenido del registro f se incrementa en 1 unidad. Almacena el resultado en W si d = 0 (en cuyo caso f no varia) y en el registro f si d = 1. El flag Z se activa a 1 si el resultado de la operación es 0, es decir, si hay desbordamiento.

Ejemplo 1:Antes instrucción:Después instrucción:

incf contador,F (contador) = 0xFF y Z = ¿?(contador) = 0x00 y Z = 1

incf f,d

Incrementar y Decrementar

Ejemplo 2:Antes instrucción:Después instrucción:

incf contador,W (contador) = 0x01 (W) = ¿? y Z = ¿?(contador) = 0x01 (W) = 0x02 y Z = 0

Page 14: Micro3

Instrucciones Lógicas

Page 15: Micro3

(And Literal with W). Efectúa la operación AND lógica entre el contenido del registro W y la constante k. Almacena el resultado en W. El flag Z se activa a 1 si el resultado de la operación es cero.

Ejemplo 2:Antes instrucción:Después instrucción:

andlw b’01011111’ (W) = b’10100011’ y Z = ¿? (W) = b’00000011’ y Z = 0

andlw k

Instrucciones Lógicas

Page 16: Micro3

(And W with f). Efectúa la operación AND lógica entre el contenido del registro W y el contenido del registro f. Almacena el resultado en W si d = 0 y en el registro f si d = 1. El flag Z se activa a 1 si el resultado de la operación es cero.

Ejemplo 1:Antes instrucción:Después instrucción:

andwf FSR,F (W) = b’0010111’ FSR = b’11000010 y Z = ¿? (W) = b’0010111’ FSR = b’00000010 y Z = 0

andwf f,d

Ejemplo 2:Antes instrucción:Después instrucción:

andwf FSR,W (W) = b’0010111’ FSR = b’11000010 y Z = ¿? (W) = b’0000010’ FSR = b’11000010 y Z = 0

Instrucciones Lógicas

Page 17: Micro3

(Complement f). Realiza un complemento del contenido del registro f bit a bit, invirtiendo su valor, es decir, cambia los unos por ceros y los ceros por uno. Almacena el resultado en W si d = 0 y en el registro f si d = 1. El flag Z se activa a 1 si el resultado de la operación es cero.

Ejemplo 1:Antes instrucción:Después instrucción:

comf Reg1,F (Reg1) = b’00010011’ y Z = ¿? (Reg1) = b’11101100’ y Z = 0

comf f,d

Ejemplo 2:Antes instrucción:Después instrucción:

comf Reg1,W (Reg1) = b’00010011’ (W) = ¿? y Z = ¿? (Reg1) = b’00010011’ (W) = b’11101100’ y Z = 0

Instrucciones Lógicas

Page 18: Micro3

(Inclusive OR Literal with W). Efectúa la operación OR lógica entre el contenido del registro W y la constante k. Almacena el resultado en W. El flag Z se activa a 1 si el resultado de la operación es cero.

Ejemplo 1:Antes instrucción:Después instrucción:

iorlw b’00110101’ (W) = b’00010011’ y Z = ¿? (W) = b’10111111’ y Z = 0

iorlw k

Instrucciones Lógicas

Page 19: Micro3

(Inclusive OR W with f). Efectúa la operación OR lógica entre el contenido del registro W y el contenido del registro f. Almacena el resultado en W si d = 0 y en registro f si d = 1. El flag Z se activa a 1 si el resultado de la operación es cero.

Ejemplo 1:Antes instrucción:

Después instrucción:

iorwf Resultado,W (Resultado) = b’00010011’ (W) = b’10010001’ y Z = ¿?

(Resultado) = b’00010011’ (W) = b’10010011’ y Z = 0

iorwf f,d

Instrucciones Lógicas

Page 20: Micro3

(Rotate Left f through Carry). Rotación de un bit a la izquierda del registro f, pasando por el bit de acarreo C. El desplazamiento es cerrado, formando un anillo con el bit C (Carry) del registro de estado o STATUS. Si d = 1 el resultado se almacena en f, si d = 0 el resultado se almacena en W. El contenido del Carry pasa a la posición del bit de menor peso y el bit de mayor peso pasa al Carry

rlf f,d

Instrucciones Lógicas

C

Registro f

Page 21: Micro3

(Rotate Right f through Carryf). Rotación de un bit a la derecha del registro f, pasando por el bit de acarreo C. El desplazamiento es cerrado, formando un anillo con el bit C (Carry) del registro de estado o STATUS. Si d = 1 el resultado se almacena en f, si d = 0 el resultado se almacena en W. El contenido del Carry pasa a la posición del bit de menor peso y el bit de mayor peso pasa al Carry

rrf f,d

Instrucciones Lógicas

C

Registro f

Page 22: Micro3

(Swapf Nibbles in f). Los cuatro bits de mas peso del registro f se intercambian con los cuatro bits de menos peso del mismo registro f. Almacena el resultado en W si d = 0 y en registro f si d = 1.

Ejemplo 1:Antes instrucción:

Después instrucción:

swapf Reg1,W (Reg1) = 0xA5 y (W) = ¿?

(Reg1) = 0xA5 y (W) = 0x5A

swapf f,d

Instrucciones Lógicas

Page 23: Micro3

(Exclusive OR Literal with W). Realiza la función OR-Exclusiva entre el contenido del registro W y la constante k de 8 bits. El resultado se almacena en W. El flag Z se activa a 1 si el resultado de la operación es 0.

Ejemplo 1:Antes instrucción:

Después instrucción:

xorlw b’10101111’ (W) = b’10110101’ y Z = ¿?

(W) = b’00011010’ y Z = 0

xorlw k

Instrucciones Lógicas

Page 24: Micro3

(Exclusive OR W with f). Realiza la función OR-Exclusiva entre el contenido del registro W y el contenido del registro f. El resultado se almacena en W si d=0 o en el registro f si d=1. El flag Z se activa a 1 si el resultado de la operación es 0.

Ejemplo 1:Antes instrucción:

Después instrucción:

xorwf Reg,f

(Reg) = b’10101111’ (W) = b’10110101 y Z = ¿?

(Reg) = b’00011010’ (W) = b’10110101 y Z = 0

xorwf f,d

Instrucciones Lógicas

Page 25: Micro3

Para ahorrar energía los microcontroladores PIC disponen de la Sleep que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho estado se detiene el reloj principal y se congelan sus circuitos asociados.-.

Instrucciones Sleep

Modo de ahorro de energía

El oscilador del sistema deja de funcionar

El consumo baja a unos pocos uA

El TMR0 deja de funcionar

Page 26: Micro3

Saltos Condicionales

Page 27: Micro3

Producen un salto en función de que se cumpla o no una función. Estas instrucciones son el único medio para realizar bifurcaciones condicionales en un programa.

Saltos Condicionales

El repertorio de instrucciones del PIC16F84A incluye cuatro instrucciones de salto condicional clasificadas en dos grupos:

Aquellas que pueden producir un salto en función del estado de un bit. Son btfsc y btfss.

Aquellas que pueden producir un salto en función del contenido de un registro. Son decfsz y incfsz.

Page 28: Micro3

Saltos en función de un Bit

(Bit Test f, Skip if Clear). Esta instrucción puede actuar de dos formas:

btfsc f,b

Si el bit numero b del registro f es 1 la instrucción que sigue a esta se ejecuta normalmente.

Si el bit numero b del registro f es 0 la instrucción que sigue a esta se ignora y se salta.

Page 29: Micro3

Saltos en función de un Bit

(Bit Test f, Skip if Set). Esta instrucción puede actuar de dos formas:

btfss f,b

Si el bit numero b del registro f es 0 la instrucción que sigue a esta se ejecuta normalmente.

Si el bit numero b del registro f es 1 la instrucción que sigue a esta se ignora y se salta.

Page 30: Micro3

Saltos en función de un Registro

(Decrement f, Skip if 0). Decrementa en una unidad el contenido del registro f. Almacena el resultado en W si d = 0 y en el registro f si d = 1. Después de decrementar puede ocurrir dos casos:

decsz f,d

Si el resultado es distinto de 0 la instrucción que sigue a esta se ejecuta normalmente.

Si el resultado es 0 la instrucción que sigue a esta se ignora y se salta.

Page 31: Micro3

Saltos en función de un Registro

(Increment f, Skip if 0). Incrementa en una unidad el contenido del registro f. Almacena el resultado en W si d = 0 y en el registro f si d = 1. Después de Incrementar puede ocurrir dos casos:

incsz f,d

Si el resultado es distinto de 0 la instrucción que sigue a esta se ejecuta normalmente.

Si el resultado es 0 la instrucción que sigue a esta se ignora y se salta.

Page 32: Micro3

Directivas Importantes

(Define a Block of Constants), (End Constant Block). Asigna direcciones (generalmente de memoria RAM de datos) a muchas etiquetas. La lista queda enmarcada entre las directivas CBLOCK y ENDC.

CBLOCK y ENDC

CBLOCK 0x0C ;Las variables se posicionan a partir de 0x0C A ;La variable A ocupa la posición 0x0C B ;La variable B ocupa la posición 0x0D

C ;La variable C ocupa la posición 0x0E ENDC

Si la directiva no define ningún comienzo los valores asignados comenzaran el la posición 0, que corresponde a la zona SFR.

Page 33: Micro3

Directivas Importantes

(Define a Text Substitution Label). Esta directiva define una cadena de sustitución de texto. Donde quera que <name> se encuentre, en el ensamblador se sustituirá por [<string>]

#DEFINE

#DEFINE <name> [<string>]

#DEFINE LED PORTB,4

bsf LED

Ejemplos:

Page 34: Micro3

Directivas Importantes

#DEFINE#DEFINE <name> [<string>]

#DEFINE Banco0 bcf STATUS,5#DEFINE Banco1 bsf STATUS,5

InicioBanco1clrf TRISAmovlw b´11111111´movwf TRISBBanco0

Page 35: Micro3

Subrutinas

Conjunto de instrucciones al que se tiene acceso desde cualquier punto del programa principal. Es decir, es un subprograma que se ejecuta cada vez que el programa principal lo necesita.

PROCESO X

PROCESO X

PROCESO X

PROCESO X

PROCESO X

PROCESO X

PROCESO X:

RETURN

Page 36: Micro3

Subrutinas Anidadas

Programa Principal

CALL PROCESO 1

X1

Subrutina 1

PROCESO 1

CALL PROCESO 2

X2

RETURN

Subrutina 2

PROCESO 2

RETURN

PILA

X1

PILA

X2

X1

PILA

Page 37: Micro3

LA PILA

Zona de memoria que se encuentra separada tanto de la memoria de programa como de la de datos dentro del microcontrolador.

Su estructura es del tipo LIFO.

Page 38: Micro3

Manejo de Tablas

Instrucción “ retlw ”

Funciona de forma similar a return, produce el retorno de una subrutina pero con un valor en el registro W.

Formato Instrucción:

retlw k

Page 39: Micro3

Manejo de Tablas

Page 40: Micro3

Directiva DT

Para simplificar el uso de la instrucciones retlw el ensamblador MPASM facilita la directiva DT, que sustituye el empleo respectivo de muchas instrucciones retlw. Su sintaxis es:

Ejemplo:

DT “Hola”

retlw “H”retlw “o”retlw “l”retlw “a”

Page 41: Micro3

Manejo de un Display 7 seg

Page 42: Micro3

Manejo de un Display 7 seg

Page 43: Micro3

Subrutinas de Retardo

Ciclo de MaquinaEl tiempo que tarda en ejecutarse un programa depende de la frecuencia del oscilador y del numero de ciclos de maquina ejecutados. Un ciclo de maquina es la unidad básica de tiempo que utiliza el microcontrolador.Para el microcontrolador PIC16F84A el ciclo de maquina equivale a 4 ciclos de reloj, por lo tanto el tiempo que tarda en producirse un ciclo de maquina es igual a 4 veces el periodo del oscilador.

Las instrucciones del microcontrolador PIC16F84A necesitan 1 ciclo de maquina para ejecutarse, excepto las de salto (goto, call, btfss, btfsc, return, etc., que necesitan de 2 ciclos de maquina.

Page 44: Micro3

Subrutinas de Retardo

El tiempo que tarda microcontrolador en ejecutar una tarea viene fijado por la siguiente formula:

Tiempo = 41

fcm

Calcular la duración de 1 ciclo de maquina para el PIC16F84A

Tiempo = 41

4MHz

1 = 1us

Page 45: Micro3

Subrutinas de Retardo

En un sistema con Microcontrolador PIC16F84A y cristal de cuarzo de 4MHz se desea generar un retardo de 1.5 ms. Calcular el numero de ciclos de maquina necesarios.

Tiempo = 41

fcm

Solución:

Tiempo = 41

fcm Tiempo=

4fcm

1500us=4

4MHzcm = 1500

Page 46: Micro3

Operación NOP

No realiza ninguna operación.

Para una frecuencia de trabajo de 4MHz produce una temporización de 1 useg.

Page 47: Micro3

Retardos mediante lazo simple

Retardo_1ms ; La llamada call aporta 2 ciclos de maquina. movlw d'249‘ ; Aporta 1 ciclos máquina. Este es el valor de "K". movwf R_ContA ; Aporta 1 ciclos máquina.

R1ms_Bucle nop ; Aporta Kx1 ciclos máquina. decfsz R_ContA,F ; (K-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto R1ms_Bucle ; Aporta (K-1)x2 ciclos máquina. return ; El salto de retorno aporta 2 ciclos máquina.;;En total estas subrutinas tardan:;2 + 1 + 1 + Kx1 + (K-1)x1 + 2 + (K-1)x2 + 2 = 5 + 4K = 1001 Ciclos de maquina

(para K = 249)

Page 48: Micro3

Retardos mediante lazos anidados

Retardo_200ms movlw d'200‘ movwf R_ContB

Retardo_1ms movlw d'249‘ movwf R_ContA

R1ms_Bucle nop decfsz R_ContA,F goto R1ms_Bucle

decfsz R_ContB,F goto Retardo_1ms

return

Retardo_100ms movlw d‘100‘ movwf R_ContB

Retardo_1ms movlw d'249‘ movwf R_ContA

R1ms_Bucle nop decfsz R_ContA,F goto R1ms_Bucle

decfsz R_ContB,F goto Retardo_1ms

return

Page 49: Micro3

TIMER 0 (TMR0)

El PIC16F84A dispone de un timer, el cual es un contador ascendente de 8 bits. El TMR0 se inicializa con un valor, que se incrementa con cada impulso de entrada hasta su valor máximo, después de lo cual se produce su desborde el cual es anunciado por el flag TOIF del registro INTCON.

Contador Ascendente

Carga Inicial del Contador

Impulsos de Entrada

Fin de Contaje

Page 50: Micro3

TIMER 0 (TMR0)

Los impulsos aplicados al TMR0 pueden provenir de los pulsos aplicados al pin TOCKI o de la señal de reloj interna (Fosc/4), lo que le permite actuar de dos formas diferentes:

Como contador de impulsos por el pin RA4/TOCKI

Como temporizador de tiempos

Page 51: Micro3

TIMER 0 (TMR0)

TOCS = 1 el TMR0 actúa como contador

TOCS = 0 el TMR= actúa como temporizador

El actuar de una o de otra forma depende del bit TOCS del registro OPTION

Page 52: Micro3

TIMER 0 como Contador

TOSE = 1 el flanco activo es descendente

El tipo de flanco activo se elige mediante el bit TOSE del registro OPTION

TOSE = 0 el flanco activo es Ascendente

Page 53: Micro3

TIMER 0 como Temporizador

Cuenta los impulsos de Fosc/4. Se usa para determinar intervalos de tiempos concretos. Estos tiempos tienen una duración conocida de un ciclo de maquina (4 veces el periodo de la señal de reloj).

Como se trata de un contador ascendente el TMR0 debe ser cargado con el valor de los impulsos que se desean contar restados 256 que es el valor de desbordamiento.

Page 54: Micro3

TIMER 0 registro del SFR

El TMR0 es un registro de propósito general ubicado en laposición 1 del área SFR de la RAM de datos. Puede ser leído y escrito.

Page 55: Micro3

Divisor de Frecuencia (Preescaler)

A veces es necesario controlar tiempos largos y aumentar la duración de los impulsos que incrementan el TMR0 . Para cubrir esta necesidad se dispone de un circuito programable llamado Divisor de Frecuencia o Preescaler que divide la frecuencia utilizada por diversos rangos.

En realidad el PIC16F84A dispone de dos temporizadores:

El TMR0, que actúa como temporizador principal

El Washdog, el cual vigila que el programa no se cuelgue

Page 56: Micro3

Divisor de Frecuencia (Preescaler)

El Preescaler puede aplicarse a uno de estos dos temporizadores. Cuando se asigna al TMR0 los impulsos pasan primero por el divisor de frecuencia y una vez aumentada su duración se aplican al TMR0.

El TMR0, que actúa como temporizador principalEl TMR0, que actúa como temporizador principal

El Washdog, el cual vigila que el programa no se cuelgueEl Washdog, el cual vigila que el programa no se cuelgue

Page 57: Micro3

Registro Relacionados con el TMR0

Registro OPTION

Registro INTCON

Page 58: Micro3

Registro Relacionados con el TMR0

Registro INTCON

1

0

TMR0 Overflow Interrupt Flag bit

Page 59: Micro3

Registro Relacionados con el TMR0

Registro OPTION

Selecciona la fuente de señal del TMR0

1

0Pulsos de reloj interno Fosc/4

TMR0 como Temporizador

Pulsos de reloj externo RA4/TOCKITMR0 como Contador

Page 60: Micro3

Registro Relacionados con el TMR0

Registro OPTION

Flanco ascendente a RA4/TOCKI

Selecciona flanco de la señal de entrada del TMR0

Flanco descendente a RA4/TOCKI1

0

Page 61: Micro3

Registro Relacionados con el TMR0

Registro OPTION

Asignación del Divisor de Frecuencia

1

0El divisor de frecuencia se

asigna al TMR0

El divisor de frecuencia se asigna al Watchdog

Page 62: Micro3

Registro Relacionados con el TMR0

Registro OPTION

Bits para seleccionar los valores del Preescaler o rango con el que actúa el divisor de frecuencia.

PS2 PS1 PS0 Divisor del TMR0 Divisor del WDT0 0 0 1:2 1:10 0 1 1:4 1:20 1 0 1:8 1:40 1 1 1:16 1:81 0 0 1:32 1:161 0 1 1:64 1:321 1 0 1:128 1:641 1 1 1:256 1:128

Page 63: Micro3

Ejemplo del TMR0 como contador

0 0 1 1 1 0 0 0

Page 64: Micro3

Otros Recursos

Page 65: Micro3

El WATCHDOG TIMER

Para que esta labor de vigilancia se lleve a cabo el WDT da un paseo por la CPU cada cierto tiempo, asegurándose que el programa funcione normalmente, de lo contrario el WDT ladra y provoca un reset.

El Perro Guardián

Vigila que el programa no se cuelgue y así dejen de ejecutarse las instrucciones.

Ciclo Infinito Espera de un acontecimiento que no se produce

Page 66: Micro3

El WATCHDOG TIMER

Consiste en la puesta a cero del WDT para comenzar nuevamente la cuenta, evitando así su desbordamiento y el reset que esto provoca. Esta puesta a cero se debe realizar por software mediante la instrucción clrwdt.

Refrezco del Perro Guardián

Habilitación del Watchdog Timer

Page 67: Micro3

Resistencias de Pull-Up

Permiten en entradas no utilizadas evitar el ingreso de señales falsas (ruido) que puedan provocar un mal funcionamiento del uC. En las salidas permiten asegurar de que no se supere la máxima corriente de alimentación que puede manejar el uC.

El PIC16F84A permite configurar una resistencia interna en cada una de las líneas del Puerto B, ahorrando estas necesarias resistencias externas cuando se utilizan pulsadores u otros dispositivos externos de lectura.

Page 68: Micro3

Resistencias de Pull-Up

Ground

Page 69: Micro3

Resistencias de Pull-Up

Resistor Port B Pull-Up Enable Bit

0

1

Habilita las resistencias de Pull-Updel Puerto B.

Deshabilita las resistencias de Pull-Updel Puerto B.

Page 70: Micro3

INTERRUPCIONES

Page 71: Micro3

INTERRUPCIONES

Una interrupción consiste en un mecanismo por el cual un evento interno o externo puede interrumpir la ejecución de un programa en cualquier momento. A partir de entonces se produce automáticamente un salto a una subrutina de interrupción, esta atiende inmediatamente el evento y retorna luego la ejecución del programa exactamente donde estaba en el momento de ser interrumpido.

Page 72: Micro3

Subrutina de Interrupción

Programa Principal

X1

004hProceso X(Subrutina de atención a la interrupción)retfie

Page 73: Micro3

Subrutina de Interrupción

El PIC16F84A dispone de 4 posibles fuentes de interrupción:

Interrupción INT. Por activación del pin RB0/INT.

Interrupción RBI. Por cambio de estado en una o varias de las 4 lineas de más peso RB7:RB4 del Puerto B.

Interrupción TOI. Por desbordamiento del Timer 0.

Interrupción EEI. Por la finalización de la escritura en la EEPROM de datos.

Interrupción INT. Por activación del pin RB0/INT.

Interrupción RBI. Por cambio de estado en una o varias de las 4 lineas de más peso RB7:RB4 del Puerto B.

Page 74: Micro3

Funcionamiento de una InterrupciónCuando se produce cualquiera de los sucesos indicados anteriormente se origina una petición de interrupción que si se acepta, origina el siguiente mecanismo hardware:

1º Salva el valor actual del contador de programa PC guardando su contenido en la pila.

El bit GIE del registro INTCON es puesto a cero lo cual prohibe cualquier otra interrupción.

El PC se varga con al valor 004h, que es la posición del vector de interrupción.

Comienza a ejecutarse el programa de atención a la interrupción que se encuentra a partir de la dirección 004h.

Page 75: Micro3

Funcionamiento de una Interrupción

Los bits de control localizados en el registro INTCON habilitan y configuran las interrupciones. Cada causa de interrupción actúa con dos flags.

FLAG DE SEÑALIZACIÓN

Indica si se ha producido o no la interrupción.

TOIF INTF RBIF EEIF

Page 76: Micro3

FLAG DE PERMISO

Indica si se ha producido o no la interrupción.

TOIE INTE RBIE EEIE

Funcionamiento de una Interrupción

GIE

Habilitación General

Page 77: Micro3

Vector de Interrupciones

POSICIÓN 004h

Sea cual sea la interrupción el contador de programa se carga con la dirección 004h.

Page 78: Micro3

Registro INTCON

REGISTRO DE CONTROL DE INTERRUPCIONES

Global Interruption Enable (Habilitación General de las Interrupciones)

Se inhabilita automáticamente cuando se reconoce un la interrupción para evitar que ninguna otra se produzca mientras se esta atendiendo a la primera. Al retornar de la interrupción con una instrucción retfie, el bit GIE se vuelve a activar a 1.

GIE = 0No autoriza interrupción de ningún tipo

GIE = 1Autoriza cualquier tipo de interrupción

Page 79: Micro3

Registro INTCON

REGISTRO DE CONTROL DE INTERRUPCIONES

EEPROM Write Complete Interrupt Enable (Habilitación de la Interrupción EEI)

Habilita la interrupción por escritura completada en la EEPROM de datos. Su flag se encuentra ubicado en el registro EECON1.

EEIE = 0Interrupción EEI deshabilitada

EEIE = 1Interrupción EEI habilitada

Page 80: Micro3

Registro INTCON

REGISTRO DE CONTROL DE INTERRUPCIONES

TMR0 Interrupt Enable bit (Habilitación de la Interrupción TOI)

Habilita la interrupción por desbordamiento del TMR0.

TOIE = 0Interrupción TOI deshabilitada

TOIE = 1Interrupción TOI habilitada

Page 81: Micro3

Registro INTCON

REGISTRO DE CONTROL DE INTERRUPCIONES

External INT Enable bit (Habilitación de la Interrupción externa INT)

Habilita la interrupción externa por el pin RB0/INT

INTE = 0Interrupción INT deshabilitada

INTE = 1Interrupción INT habilitada

Page 82: Micro3

Registro INTCON

REGISTRO DE CONTROL DE INTERRUPCIONES

RB Port Change Interrupt Enable (Habilitación de la Interrupción externa RBI)

Habilita la interrupción por cambio de estado de las líneas RB7:RB4 del puerto B.

RBIE = 0Interrupción RBI deshabilitada

RBIE = 1Interrupción RBI habilitada

Page 83: Micro3

Registro INTCON

REGISTRO DE CONTROL DE INTERRUPCIONES

TMR0 Overflow Interrupt Flag bit (indicación de la Interrupción por TMR0)

Indica que se ha producido una interrupción por desbordamiento del Timer 0.

TOIF = 0El TMR0 no se ha desbordado

TOIF = 1El TMR0 se ha desbordado

Page 84: Micro3

Registro INTCON

REGISTRO DE CONTROL DE INTERRUPCIONES

External Interrupt Flag bit(Indicación de la Interrupción externa INT)

Indica que se ha producido una interrupción externa por el pin RB0/INT

INTF = 0No hay interrupción externa

INTF = 1Hay interrupción externa

Page 85: Micro3

Registro INTCON

REGISTRO DE CONTROL DE INTERRUPCIONES

RB port change Interrump Flag (Indica la Interrupción externa RB7:RB4)

Indica que se ha producido una interrupción por cambio de estado de las líneas RB7/RB4

RBIF = 0No hay cambio de estado

RBIF = 1Hay cambio de estado

Page 86: Micro3

Registro OPTION

Interrupt Edge Select bit (Selector de flanco de la interrupción INT)

INTEDG = 0Interrupción por flanco descendente

INTEDG = 1Interrupción por flanco ascendente

RB0/INT RB0/INT

Page 87: Micro3

Instrucción retfie

Utilizada al final de una subrutina de interrupción es idéntica a un retorno de subrutina return. Ademas coloca automaticamente a 1 el bib GIE, volviendo a habilitar las interrupciones.

retfie idéntica return

Page 88: Micro3

Interrupción Externa INT

LIST P=16F84AINCLUDE <P16F84A.INC>

ORG 0goto InicioORG 4

goto ServicioInterrupcionInicio

bsf STATUS,RP0movlw b'00000001'movwf TRISBbcf OPTION_REG,INTEDGbcf STATUS,RP0movlw b'10010000'movwf INTCONclrf PORTB

Flanco de bajada

Se habilita INT y GIE

Page 89: Micro3

Interrupción Externa INT

Principalsleepgoto Principal

ServicioInterrupcionmovlw b'11111110'movwf PORTBcall Retardo_2smovlw b'00000000'movwf PORTBgoto FinInterrupcion

FinInterrupcionbcf INTCON,INTFretfieINCLUDE <RETARDOS.INC>END

Se baja el Flag

Page 90: Micro3

Registros Alterados

Durante la interrupción el único registro que se salvaguarda en la pila es el PC. La subrutina de atención a la interrupción puede

alterar el contenido de los registros del microcontrolador.

El contenido de los registros W y STATUS deben guardarse prinero.

Al iniciarla conviene guardar su valor y restaurarlos antes de la instrucción retfie.

Page 91: Micro3

Salvar Registros

CBLOCK 0x0CGuarda_WGuarda_STATUSGuarda_RegistroAGuarda_RegistroBENDC----------------------

movwf Guarda_Wmovf STATUS,Wmovwf Guarda_STATUSmovf RegistroA,Wmovwf Guarda_RegistroAmovf RegistroB,Wmovwf Guarda_RegistroB

movf Guarda_RegistroB,W movwf RegistroBmovf Guarda_RegistroA,Wmovwf RegistroAmovf Guarda_STATUS,Wmovwf STATUSmovf Guarda_W,Wbcf INTCON,INTF

Mover el registro W a otro registro corrompe el flag Z

Page 92: Micro3

Salvar Registros

movwf Guarda_Wswapf STATUS,Wmovwf Guarda_STATUSmovf RegistroA,Wmovwf Guarda_RegistroAmovf RegistroB,Wmovwf Guarda_RegistroBbcf STATUS,RP0

movf Guarda_RegistroB,W movwf RegistroBmovf Guarda_RegistroA,Wmovwf RegistroAswapf Guarda_STATUS,Wmovwf STATUS swapf Guarda_W,Fswapf Guarda_W,Wbcf INTCON,INTFretfie

Microchip recomienda

Page 93: Micro3

Manejo de LCDManejo de LCD

Page 94: Micro3

Visualizador LCD

Liquid Crystal Display

Page 95: Micro3

LM016L

Consumo Reducido, del orden de los 7,5 mW. Desplazamiento de caracteres derecha - izquierda

Memoria de 40 caracteres por línea de pantalla.

Movimiento del cursos y cambio de aspecto

Puede ser gobernado de dos formas:• Conexión con bus de 4 bits• Conexión con bus de 8 bits

Page 96: Micro3

LM016L

Alimentación de 5V

Regulación de contraste se realiza mediante el voltaje obtenido al dividir los 5V con una resistencia ajustable de 10k y aplicárselo al pin VEE. Este mismo pin a masa fija el máximo contraste.

Page 97: Micro3

Configuración de Conexionado

Page 98: Micro3

Función de los pines

Page 99: Micro3

DDRAM

Data Display RAM

Tiene una capacidad de 80 bytes, 40 por cada línea, de los cuales solo 32 se pueden visualizar

Línea 1Línea 2

Page 100: Micro3

TABLA CGROM

Page 101: Micro3

TABLA CGROM

Page 102: Micro3

TABLA CGROM

Page 103: Micro3

TABLA CGROM

Page 104: Micro3

TABLA CGROM

Page 105: Micro3

TABLA CGROM

0011

Page 106: Micro3

TABLA CGROM

0011

Page 107: Micro3

TABLA CGROM

0011

Page 108: Micro3

TABLA CGROM

0011

Page 109: Micro3

TABLA CGROM

00110011

Page 110: Micro3

TABLA CGROM

0011 0010

Bus de datos

Page 111: Micro3

CGROM

Memoria no volátil donde se almacena una tabla con los 192 caracteres que pueden ser visualizados.

Page 112: Micro3

Modos de Funcionamiento

El LM016L tiene 3 modos de funcionamiento

Modo Comando

Recibe instrucciones por el bus de datos.

Para trabajar en modo comando:

RS

R/W

Borrar Display Mover Cursor Desplazar Izquierda

= 0

= 0

Page 113: Micro3

Modos de Funcionamiento

El LM016L tiene 3 modos de funcionamiento

Modo Carácter o Dato

Recibe un carácter a escribir en la memoria DDRAMPara trabajar en modo comando:

RS

R/W

= 1

= 0

Page 114: Micro3

Modos de Funcionamiento

El LM016L tiene 3 modos de funcionamiento

Modo Lectura “Busy Flag” o LCD ocupada

En el bit 7 del bus de datos el LCD indica que esta ocupada.

Para ello se lee el bus de datos:

RS

R/W

= 0

= 1

Se debe esperar que Busy Flag (bit7) valga 0.

Page 115: Micro3

Configuración de Conexionado

Page 116: Micro3

Comandos de Control LCD

Page 117: Micro3

Comandos de Control LCD

Los comandos se envían a través del bus de datos. Para que el LCD los reconozca hay que poner la señal RS a nivel bajo.

Clear Display (00000001)

Borra la pantalla y devuelve el cursor a la posición inicial (posición 0 de la DDRAM)

Return Home (0000001x)

Cursor a la dirección de origen. Devuelve el cursor a la posición de origen de la DDRAM (dirección 00h) quedando intacto su contenido.

Page 118: Micro3

Comandos de Control LCD

Entry Mode Set (000001 I/D S)

Modo de entrada. Establece las caracteristicas de escritura de los datos Shift e Increment/Decrement:

S = 0

S = 1

La información visualizada no se desplaza al escribir un carácter.

La información visualizada se desplaza al escribir un carácter. La pantalla se desplaza en el sentido indicado por el bit I/D cuando el cursor llega al filo de la pantalla.

Page 119: Micro3

I/D = 1

I/D = 0

Comandos de Control LCD

Entry Mode Set (000001 I/D S)

Modo de entrada. Establece las caracteristicas de escritura de los datos Shift e Increment/Decrement:

Incremento automático de la posición del cursor. La posición de la DDRAM se incrementa automáticamente tras cada lectura o escritura a la misma.

Decremento de la posición del cursor. Se decrementa el puntero del a DDRAM.

Page 120: Micro3

B = 1B = 0

Comandos de Control LCD

Display Control (00001 D C B)

Control de la pantalla.

No hay efecto en el parpadeo del cursor.

Efecto de parpadeo con un cursor rectangular.

C = 1C = 0 El cursor no se visualiza.

El cursor es visualizado.

D = 1D = 0 El display se apaga.

El display se enciende.

Page 121: Micro3

R/L = 0

R/L = 1

Comandos de Control LCD

Cursor and Display Shift (0001 S/C R/L xx)

Control de desplazamiento del cursor y de la pantalla:

A la izquierda.

El efecto de desplazamiento se aplica solo sobre el cursor sin alterar el contenido de la DDRAM

A la derecha.

S/C = 0

S/C = 1 El efecto de desplazamiento se aplica sobre todo el display.

Page 122: Micro3

F = 1F = 0

Comandos de Control LCD

Display Control (00001 D C B)

Control de la pantalla.

Caracteres de 5x7 puntos. (Font)

Caracteres de 5x10 puntos. (Font)

N = 1N = 0 Pantalla de linea 1. (Number Line)

Pantalla de linea 2. (Number Line)

DL = 1DL = 0 Comunicación con 4 bits

Comunicación con 8 bits.

Page 123: Micro3

Librería de Subrutinas

LCD_Inicializa

Configura funciones, produce un reset, borra la memoria de la DDRAM y enciende la pantalla.

LCD_Caracter

Visualiza en la posición actual del cursor el codigo ASCII del dato contenido en el registro W.

LCD_Borra

Borra toda la pantalla y coloca el cursor al principio de la línea 1.

Page 124: Micro3

Librería de Subrutinas

LCD_Linea1

Envia el cursor al principio de la línea 1.

LCD_Linea2

Envia el cursor al principio de la línea 2.

LCD_PosicionLinea1

Envía el cursor a la posición de la línea 1 indicada por W.

LCD_PosicionLinea2

Envía el cursor a la posición de la línea 2 indicada por W.

Page 125: Micro3

Librería de Subrutinas

LCD_LineaBlanco

Visualiza una línea en blanco.

LCD_DosEspaciosBlancos

Visualiza dos espacios en blanco.

Page 126: Micro3

Visualización de Caracteres

Page 127: Micro3

Conexión de LCD mediante 8 bits

Page 128: Micro3

Visualización de mensajes fijos

Librería LCD_MENS.INC

Subrutina “LCD_Mensaje”Visualiza mensajes fijos

Subrutina “LCD_Movimiento”Visualiza mensajes en movimiento

Page 129: Micro3

Visualización de mensajes fijos

Page 130: Micro3

Visualización de mensajes en movimiento

Page 131: Micro3

Comandos de Control LCD

Page 132: Micro3

Comandos de Control LCD

Los comandos se envían a través del bus de datos. Para que el LCD los reconozca hay que poner la señal RS a nivel bajo.

Clear Display (00000001)

Borra la pantalla y devuelve el cursor a la posición inicial (posición 0 de la DDRAM)

Return Home (0000001x)

Cursor a la dirección de origen. Devuelve el cursor a la posición de origen de la DDRAM (dirección 00h) quedando intacto su contenido.

Page 133: Micro3

Comandos de Control LCD

Entry Mode Set (000001 I/D S)

Modo de entrada. Establece las caracteristicas de escritura de los datos Shift e Increment/Decrement:

S = 0

S = 1

La información visualizada no se desplaza al escribir un carácter.

La información visualizada se desplaza al escribir un carácter. La pantalla se desplaza en el sentido indicado por el bit I/D cuando el cursor llega al filo de la pantalla.

Page 134: Micro3

I/D = 1

I/D = 0

Comandos de Control LCD

Entry Mode Set (000001 I/D S)

Modo de entrada. Establece las caracteristicas de escritura de los datos Shift e Increment/Decrement:

Incremento automatico de la posición del cursor. La posición de la DDRAM se incrementa automaticamente tras cada lectura o escritura a la misma.

Decremento de la posición del cursor. Se decrementa el puntero del a DDRAM.

Page 135: Micro3

B = 1B = 0

Comandos de Control LCD

Display Control (00001 D C B)

Control de la pantalla.

No hay efecto en el parpadeo del cursor.

Efecto de parpadeo con un cursor rectangular.

C = 1C = 0 El cursor no se visualiza.

El cursor es visualizado.

D = 1D = 0 El display se apaga.

El display se enciende.

Page 136: Micro3

R/L = 0

R/L = 1

Comandos de Control LCD

Cursor and Display Shift (0001 S/C R/L xx)

Control de desplazamiento del cursor y de la pantalla:

A la izquierda.

El efecto de desplazamiento se aplica solo sobre el cursor sin alterar el contenido de la DDRAM

A la derecha.

S/C = 0

S/C = 1 El efecto de desplazamiento se aplica sobre todo el display.

Page 137: Micro3

F = 1F = 0

Comandos de Control LCD

Display Control (00001 D C B)

Control de la pantalla.

Caracteres de 5x7 puntos. (Font)

Caracteres de 5x10 puntos. (Font)

N = 1N = 0 Pantalla de linea 1. (Number Line)

Pantalla de linea 2. (Number Line)

DL = 1DL = 0 Comunicación con 4 bits

Comunicación con 8 bits.

Page 138: Micro3

Comandos de Control LCD

Set CGRAM address

Se va a escribir sobre la dirección CGRAM señalada.

Set DDRAM address (1ddddddd)

Esta instrucción se utiliza para modificar el puntero a la DDRAM

Read Busy Flag

Lee el BF indicando si hay una operación interna en curso y lee, además, el contenido de la dirección DDRAM apuntada.

Page 139: Micro3

Librería de Subrutinas

LCD_Inicializa

Configura funciones, produce un reset, borra la memoria de la DDRAM y enciende la pantalla.

LCD_Caracter

Visualiza en la posición actual del cursor el codigo ASCII del dato contenido en el registro W.

LCD_Borra

Borra toda la pantalla y coloca el cursor al principio de la línea 1.

Page 140: Micro3

Librería de Subrutinas

LCD_Linea1

Envia el cursor al principio de la línea 1.

LCD_Linea2

Envia el cursor al principio de la línea 2.

LCD_PosicinLinea1

Envía el cursor a la posición de la línea 1 indicada por W.

LCD_PosicinLinea2

Envía el cursor a la posición de la línea 2 indicada por W.

Page 141: Micro3

Librería de Subrutinas

LCD_Linea1

Envia el cursor al principio de la línea 1.

LCD_Linea2

Envia el cursor al principio de la línea 2.

LCD_LineaBlanco

Visualiza una linea en blanco.

LCD_DosEspaciosBlancos

Visualiza dos espacios en blanco.

Page 142: Micro3

TECLADO MATRICIAL

Teclado Hexadecimal

A B C

D

E

F

Page 143: Micro3

TECLADO MATRICIAL

Teclado Hexadecimal

A B C

D

E

FUn teclado matricial esta constituido por una matriz de pulsadores dispuestos en filas y columnas. Su intención es reducir el numero de líneas necesarias para su conexionado.

Page 144: Micro3

TECLADO MATRICIAL

Page 145: Micro3

CONEXIÓN CON PIC16F84A

Page 146: Micro3

CONEXIÓN CON PIC16F84A

Las filas del teclado se conectan a las líneas de la parte baja del Puerto B, configurado como salida.

Las columnas del teclado se conectan a las líneas de la parte alta del Puerto B, configurado como entradas.

Page 147: Micro3

PRESIONANDO TECLAS

0

1

0

1

1

1

1

1

Page 148: Micro3

Averiguar la causa de Interrupción

btfsc INTCON,INTFcall Interrupcion_INTbtfsc INTCON,RBIFcall Interrupcion_RBIbtfsc INTCON,TOIFcall Interrupcion_TOI

Page 149: Micro3

ALGORITMO DE PROGRAMACIÓN

Page 150: Micro3

ALGORITMO DE PROGRAMACIÓN

0

1

1

1

Page 151: Micro3

0

1

1

1

TESTEO DE COLUMNAS

Page 152: Micro3

TESTEO DE COLUMNAS

0

1

1

1

Page 153: Micro3

TESTEO DE COLUMNAS

0

1

1

1

Page 154: Micro3

TESTEO DE COLUMNAS

0

1

1

1

Page 155: Micro3

1

0

1

1

TESTEO DE COLUMNAS

Page 156: Micro3

TESTEO DE COLUMNAS

1

0

1

1

Page 157: Micro3

TESTEO DE COLUMNAS

1

0

1

1

Page 158: Micro3

TESTEO DE COLUMNAS

1

0

1

1

Page 159: Micro3

ALGORITMO DE PROGRAMACIÓN

1

1

1

0

Page 160: Micro3

TESTEO DE COLUMNAS

1

1

1

0

Page 161: Micro3

TESTEO DE COLUMNAS

1

1

1

0

Page 162: Micro3

TESTEO DE COLUMNAS

1

1

1

0

Page 163: Micro3

ALGORITMO DE PROGRAMACIÓN

1

1

0

1

Page 164: Micro3

TESTEO DE COLUMNAS

1

1

0

1

Page 165: Micro3

TESTEO DE COLUMNAS

1

1

0

1

Page 166: Micro3

TESTEO DE COLUMNAS

1

1

0

1

Page 167: Micro3

TECLA PULSADA

1

1

0

1

0

W = 15

Page 168: Micro3

TECLA PULSADA

Page 169: Micro3

TECLA PULSADA

Page 170: Micro3

LIBRERÍA DE SUBRUTINAS

TECLADOS.INC

Teclado_Inicializa

Configura las líneas del Puerto B según la conexión del teclado realizada y comprueba que no hay pulsada tecla alguna al principio.

Teclado_EsperaDejePulsar

Permanece en esta subrutina mientras siga pulsada la tecla. Se utiliza para que no repita la misma lectura varias veces.

Page 171: Micro3

LIBRERÍA DE SUBRUTINAS

TECLADOS.INC

Teclado_LeeOrdenTecla

Lee el teclado obteniendo en el registro W el orden de la tecl pulsda. Además, posiciona el flag Carry para indicar si ha presionado alguna tecla.

Teclado_LeeHex

Lee un teclado Hexadecimal. En el registro de trabajo W aparece el valor hexadecimal de la tecla pulsada. Además posiciona el flag Carry para indicar si se ha presionado alguna tecla.

Page 172: Micro3

LIST P=16F84AINCLUDE <P16F84A.INC>

CBLOCK 0x0CENDC

ORG 0goto InicioORG 4goto ServicioInterrupcion

Iniciocall LCD_Inicializacall Teclado_Inicializamovlw b'10001000‘movwf INTCON

;Configura las líneas del teclado.

;Habilita la interrupción RBI y la general.

Programa Aplicación

Page 173: Micro3

Principalsleepgoto Principal

ServicioInterrupcioncall Teclado_LeeHexcall LCD_Nibblecall Teclado_EsperaDejePulsarbcf INTCON,RBIFretfie

INCLUDE <TECLADO.INC> INCLUDE <LCD_4BIT.INC>

INCLUDE <RETARDOS.INC>END

; Espera en modo bajo consumo que pulse teclado.

; Obtiene el valor hexadecimal de la tecla pulsada.

; Visualiza el valor en pantalla.

; Para que no se repita el mismo carácter .

; mientras permanece pulsado, limpia flag.

; Subrutinas de control del teclado.

Page 174: Micro3

CONEXIONES

Page 175: Micro3

CERRADURA ELECTRÓNICA

Page 176: Micro3

Microcontroladores y Microprocesadores

Page 177: Micro3

MOTOR PASO A PASO

El PAP mas comercializado es el de 7,5º por paso o 48 pasos por revolución. El principal problema que presentan los motores PAP es su limitada potencia.

Los incrementos de rotación o pasos se miden en grados y es el parámetro fundamental de un motor PAP. Los PAP se comercializan dentro de una gran variedad de grados de rotación por paso, desde 0,72º a 22,5º, correspondiente a 500 y 16 pasos por revolución, respectivamente .

Page 178: Micro3

L1

I

PRINCIPIOS DE FUNCIONAMIENTO

L2

I

Núcleo de Hierro

Bobina Estator

Rotor

Page 179: Micro3

Reposo

L1

I

PRINCIPIOS DE FUNCIONAMIENTO

L2

I

Page 180: Micro3

PASO 1

L1

I

PRINCIPIOS DE FUNCIONAMIENTO

L2

I

Energizado

Page 181: Micro3

PASO 2

PRINCIPIOS DE FUNCIONAMIENTO

L2

I

L1

IInvertir Polaridad L1

Page 182: Micro3

L2

I

L1

I

PRINCIPIOS DE FUNCIONAMIENTO

PASO 3

Invertir Polaridad L2

Page 183: Micro3

L2

I

L1

I

PRINCIPIOS DE FUNCIONAMIENTO

PASO 4

Invertir Polaridad L1

Page 184: Micro3

MOTORES PAP BIPOLARES

El modelo de motor paso a paso que hemos analizado, recibe el nombre de BIPOLAR.

En este tipo de motores las bobinas del estator se conectan formando dos grupos.

Page 185: Micro3

Secuencias de Movimientos

En el modo Full Step el rotor del motor PAP avanza un paso por cada pulso de excitación.

Page 186: Micro3

Secuencias de Movimientos

En el modo Half Step el rotor del motor PAP avanza medio paso por cada pulso de excitación.

Page 187: Micro3

MOTORES PAP UNIPOLARES

Tras el inconveniente que implica la necesidad de dos polaridades de corriente para generar la secuencia del motor se puede disponer de una toma media entre las bobinas. De esta forma se obtiene un Motor PAP Unipolar de cuatro fases, donde las corriente circula por las bobinas en un único sentido.

Page 188: Micro3

Secuencias de Movimientos

En el modo Full Step el rotor del motor PAP avanza un paso por cada pulso de excitación.

Page 189: Micro3

Secuencias de Movimientos

En el modo Half Step el rotor del motor PAP avanza medio paso por cada pulso de excitación.