Professional Documents
Culture Documents
Microcontroladores
INDICE
Versin 1.4
29 oct. 05 pg. 1
Caractersticas generales del PIC 16F877............................................................................................................ 1 Diagrama de bloques del PIC 16F877................................................................................................................. 2 Organizacin de la memoria RAM...................................................................................................................... 3 Tipos de direccionamiento de la RAM................................................................................................................ 4 Formas de modificar el Contador de Programa.................................................................................................... 4 Registro de estado .............................................................................................................................................. 5 ALU .................................................................................................................................................................. 5 Set de instrucciones............................................................................................................................................ 5 Instrucciones de transferencia ......................................................................................................................... 7 Instrucciones aritmticas................................................................................................................................. 7 Instrucciones lgicas ...................................................................................................................................... 7 Incrementos/Decrementos............................................................................................................................... 7 Instrucciones de rotacin ................................................................................................................................ 8 Instrucciones de manipulacin de bits................................................................................................................. 8 Instrucciones de control .................................................................................................................................. 8 Instrucciones de salto incondicional ................................................................................................................ 8 Instrucciones de salto condicional................................................................................................................... 8 Proceso de ensamblado....................................................................................................................................... 9 Representacin de nmeros y cadenas .............................................................................................................. 11 Directivos del ensamblador .............................................................................................................................. 11 Programa Display.ASM (Programa absoluto).................................................................................................... 13 Mdulo CONTAR.ASM (Programa reubicable)................................................................................................ 15 Mdulo Display.ASM ...................................................................................................................................... 17 Interrupciones. ................................................................................................................................................. 18 Proceso para atencin de interrupciones............................................................................................................ 19 Plantilla de programa absoluto con atencin a interrupciones. ........................................................................... 20 Reset................................................................................................................................................................ 21 Modo Sleep...................................................................................................................................................... 22 Reloj. ............................................................................................................................................................... 22 Modo Debug. ................................................................................................................................................... 23 Bits de Configuracin....................................................................................................................................... 23 Perifricos 16F877 ........................................................................................................................................... 24 Puertos programables de E/S. ........................................................................................................................... 25 Timers ............................................................................................................................................................. 26 Timer0 ......................................................................................................................................................... 26 Watch dog Timer.......................................................................................................................................... 26 Timer1 ......................................................................................................................................................... 27 Timer2 ......................................................................................................................................................... 28 CAPTURE/COMPARE/PWM ......................................................................................................................... 29 Master Synchronous Serial Port........................................................................................................................ 30 Addressable Universal Synchronous Asynchronous Receiver Transmitter (USART). ........................................ 30 Analog/Digital Converter. ................................................................................................................................ 31 Microcontrolador 16F876................................................................................................................................. 33 Microcontrolador 16F84.................................................................................................................................. 34 Componentes electrnicos ................................................................................................................................ 35 Resistencias ..................................................................................................................................................... 35 Fuente de alimentacin..................................................................................................................................... 35 Transformador:............................................................................................................................................. 35 Rectificador:................................................................................................................................................. 36 Filtro:........................................................................................................................................................... 36 Regulador:.................................................................................................................................................... 37 Interruptores/pulsadores:............................................................................................................................... 37 Teclados....................................................................................................................................................... 37 Otros dispositivos de entrada: ....................................................................................................................... 38 Dispositivos de salida:...................................................................................................................................... 39 Diodos LED ................................................................................................................................................. 39 Displays 7 segmentos ................................................................................................................................... 39
Microcontroladores
Versin 1.4
29 oct. 05 pg. 2
Displays LCD............................................................................................................................................... 40 Transistores:..................................................................................................................................................... 44 BC107.......................................................................................................................................................... 45 BD 139 ........................................................................................................................................................ 45 TIP122......................................................................................................................................................... 46 2N3055 ........................................................................................................................................................ 46 TRIACS........................................................................................................................................................... 47 MOTORES ...................................................................................................................................................... 48 Motores CC.................................................................................................................................................. 48 Servocontrol................................................................................................................................................. 49 Motores paso a paso ..................................................................................................................................... 49 Control de motores paso a paso..................................................................................................................... 50 Circuitos especficos: SAA1027.................................................................................................................... 51
Microcontroladores
pg. 1
Memoria
Perifricos
Microcontroladores
pg. 2
Microcontroladores
pg. 3
Registro
Indirect. addr.(*) OPTION_REG PCL STATUS FSR TRISA TRISB TRISC TRISD TRISE PCLATH INTCON PIE1 PIE2 PCON
TXSTA SPBRG
ADRESL ADCON1
Dir. 80H 81H 82H 83H 84H 85H 86H 87H 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 90H 91H 92H 93H 94H 95H 96H 97H 98H 99H 9AH 9BH 9CH 9DH 9EH 9FH A0H
Registro
Indirect. addr.(*) TMR0 PCL STATUS FSR PORTB
Dir. 100H 101H 102H 103H 104H 105H 106H 107H 108H 109H 10AH 10BH 10CH 10DH 10EH 10FH 110H 111H 112H 113H 114H 115H 116H 117H 118H 119H 11AH 11BH 11CH 11DH 11EH 11FH 120H
Registro
Indirect. addr.(*) OPTION_REG PCL STATUS FSR TRISB
Dir. 180H 181H 182H 183H 184H 185H 186H 187H 188H 189H 18AH 18BH 18CH 18DH 18EH 18FH 190H 191H 192H 193H 194H 195H 196H 197H 198H 199H 19AH 19BH 19CH 19DH 19EH 19FH 1A0H
Acceso a 70H-7FH
7FH FFH
Acceso a 70H-7FH
17FH
Acceso a 70H-7FH
1FFH
Banco 0
Banco 1
Banco 2
Banco 3
Microcontroladores
pg. 4
Microcontroladores
pg. 5
Registro de estado
Registro de estado
7 0
IRP
RP1
RP0
Direccionamiento
TO
Reset
PD
DC
Flags ALU
ALU
Set de instrucciones.
Formato de una instruccin: [etiqueta] mnemnico [operando1[, operando2]] [; comentario] Tipos de operandos en una instruccin: f: Indica un n de registro dentro de un banco de la RAM. Es un valor de 7 bits. d: Operando destino. Es un bit que si vale 0 indica que el resultado debe almacenarse en W y si vale 1 en el registro usado como primer operando. b: Es usado en las instrucciones que afectan a un nico bit, y apunta al bit destino de la instruccin. k: Constante. Las instrucciones van a manejar dos tipos de constantes, si la instruccin es CALL o GOTO la constante es de 11 bits (k11) y hace referencia a la direccin a la que se va a saltar. En cualquier otro caso se trata de un valor de 8 bits (k8) que se usar como valor inmediato en una operacin que siempre involucra a la ALU y al acumulador.
Microcontroladores
pg. 6
Instruccin ADDLW ADDWF ANDLW ANDWF BCF BSF BTFSC BTFSS CALL CLRF CLRW CLRWDT COMF DECF DECFSZ GOTO INCF INCFSZ IORLW IORWF MOVF MOVLW MOVWF NOP RETFIE RETLW RETURN RLF RRF SLEEP SUBLW SUBWF SWAPF XORLW XORWF k8 f, d k8 f, d f, b f, b f, b f, b k11 f
Descripcin W+k8 W Si d=0, W+f W. si d=1 W+ff Wk8 W Si d=0, Wf W. si d=1 Wff 0 bit(b) de f 1 bit(b) de f Comprobar bit b en f, saltar si es 0 Comprobar bit b en f, saltar si es 1 PC pila, bits 4,3 de PCLATH + k11 PC 0f 0W Poner a 0 el Watch Dog Timer. f,d Si d=0, Ca1(f) W. si d=1 Ca1(f)f f, d Si d=0, f-- W. si d=1 f-- f f, d Si d=0, f-- W, si d=1 f-- f, saltar si cero k11 bits 4,3 de PCLATH + k11 PC f, d Si d=0, f++ W. si d=1 f ++f f, d Si d=0, f++ W, si d=1 f++ f, saltar si cero k8 Wk8 W f, d Si d=0, Wf W. si d=1 Wff f, d Si d=0, f W. si d=1 ff k8 k8 W f W f No operar pila PC, 1 GIE k8 pila PC; k8 W pila PC Rotacin a la izquierda a travs de carry de f, f, d dejando el resultado en W o f segn d Rotacin a la derecha a travs de carry de f, f, d dejando el resultado en W o f segn d Pasar a modo standby k8 k8 -W W f, d Si d=0, f-W W. si d=1 f-Wf Intercambia los dos nibbles (4 bits) de f, f, d dejando el resultado en W o f segn d k8 Wk8 W f, d Si d=0, Wf W. si d=1 Wff
Flags modif.. C, DC, Z C, DC, Z Z Z Ninguno Ninguno Ninguno Ninguno Ninguno Z Z TO , PD Z Z Ninguno Ninguno Z Ninguno Z Z Z Ninguno Ninguno Ninguno GIE Ninguno Ninguno C C TO , PD C, DC, Z C, DC, Z Ninguno Z Z
Microcontroladores
pg. 7
Instrucciones de transferencia
CLRF CLRW MOVLW MOVWF MOVF SWAPF f k8 f f, d f, d 0f 0W k8 W W f Si d=0, f W. si d=1 ff Intercambia los dos nibbles (4 bits) de f, dejando el resultado en W o f segn d Flags modif.. Z Z Ninguno Ninguno Z Ninguno
Instrucciones aritmticas
ADDLW ADDWF SUBLW SUBWF k8 f, d k8 f, d W+k8 W Si d=0, W+f W. si d=1 W+ff k8-W W Si d=0, f-W W. si d=1 f-Wf Flags modif.. C, DC, Z C, DC, Z C, DC, Z C, DC, Z
Instrucciones lgicas
ANDLW ANDWF COMF IORLW IORWF XORLW XORWF k8 f, d f,d k8 f, d k8 f, d Wk8 W Si d=0, Wf W. si d=1 Wff Si d=0, Ca1(f) W. si d=1 Ca1(f)f Wk8 W Si d=0, Wf W. si d=1 Wff Wk8 W Si d=0, Wf W. si d=1 Wff Flags modif.. Z Z Z Z Z Z Z
Incrementos/Decrementos
DECF INCF f, d f, d Si d=0, f-- W. si d=1 f-- f Si d=0, f++ W. si d=1 f ++f Flags modif.. Z Z
Microcontroladores
pg. 8
Instrucciones de rotacin
Flags modif.. RLF RRF f, d f, d Rotacin a la izquierda a travs de carry de f, dejando el resultado en W o f segn d Rotacin a la derecha a travs de carry de f, dejando el resultado en W o f segn d C C
Instrucciones de control
Flags modif.. CLRWDT SLEEP Poner a 0 el Watch Dog Timer. Pasar a modo standby TO , PD TO , PD
Microcontroladores
pg. 9
Proceso de ensamblado
Figura Error! No hay texto con el estilo especificado en el documento..6 Proceso de ensamblado de un programa con cdigo reubicable.
Microcontroladores
pg. 10
Microcontroladores
pg. 11
RES
[<NomVar>] RES <Unidades_de_memoria>. UDATA ValorActual RES 1 Aux1 RES 1 Aux2 RES 2 Aux3 RES 1
Microcontroladores
INCLUDE
pg. 12
INCLUDE <Fichero_a_incluir>
LIST
LIST [<opcin>, ... , <Opcin>] Opcin n=nnn p=<tipo> r=<radix> ..... Valor por defecto 60 Ninguno hex LIST p=16F877, r=dec Descripcin Lneas por pgina de listado Selecciona procesador Selecciona radix (hex, dec, oct)
ORG
[Etiqueta] ORG <expresin> ORG 0x20
EQU
<NomVar> EQU 0x20
#DEFINE
#define <nombre> [<cadena_de _caracteres>] #define TAM_NOMBRE 0x20 #define BitControl 0x19,7 ..... bsf BitControl ; Equivale a bsf 0x19, 7 EXTERN <Etiqueta> [, <Etiqueta> ... ] EXTERN Var1 ....... MOVF Var1, W
GLOBAL
GLOBAL <Etiqueta> [, <Etiqueta> ... ] Var1 Var2 UDATA RES 1 RES 2 GLOBAL Var1, Var2
END
Debe colocarse siempre al final del programa o del mdulo Operador $ Se sustituye por la direccin de la lnea en la que se encuentra goto $ ; Bucle infinito
btfsc FILE, BIT goto $-1 ;No se sale de este bucle hasta que BIT=0
Microcontroladores
pg. 13
Inicio ; En primer lugar inicializaremos el puerto C para que configure todas sus lneas ; como salidas. Se supone que a este puerto se han conectado los siete segmentos ;de un display ; Inicializamos las variables clrf ValorActual ; Configuramos los bits del BANKSEL TRISC clrf TRISC clrf STATUS Bucle movf ValorActual, call hex27seg ; movwf PORTC incf ValorActual, btfsc ValorActual, clrf ValorActual movlw 8 movwf Aux1 puertoC como salidas ; Configurar pines de PORTC como salidas ; Apuntamos a la pgina 0 ; Comienzo del bucle principal W ; Muevo ValorActual a W Llamamos a rutina de conversin ; ponemos resultado en PORTC (el display) F ; Incrementamos el valor para la siguiente 4 ; iteracin, y si se activa el bit 4, hemos ; llegado a 10H, y reseteamos la variable. ; Inicializamos Aux1 a 8 para conseguir ; una espera algo mayor que 1 segundo.
Espera
call Espera1 ; Rutina con un retardo de 0,13 seg. Aprox. decfsz Aux1, F goto Espera goto Bucle ; Retornar al bucle principal ;******************************* Espera1 ;******************************* ; Realiza 256 llamadas a la rutina Espera2 movlw 0xff movwf Aux2
Bucle1
call Espera2 decfsz Aux2, F goto Bucle1 return ;******************************* Espera2 ;******************************* ; Recorre 256 veces el bucle Bucle2. movlw 0xff movwf Aux3 Bucle2 decfsz Aux3, F goto Bucle2 return
Microcontroladores
pg. 14
;**************************************** hex27seg ;**************************************** ; Subrutina hex27seg, que recibe un valor hexadecimal de un dgito en W, ; y devuelve en el mismo registro el valor correspondiente al de un ; display de 7 segmentos. ; A continuacin se muestra el nombre de cada segmento en un Display ; ----; | a | ; f| |b ; | | ; ----; | g | ; e| |c ; | | ; ----; d ; Se asignar el bit 7 al segmento 'a', el 6 al 'b', ... , el 1 al 'g' ; El bit 0 queda sin asignar. Se puede usar para el punto digital del display ; Los segmentos a iluminar para cada dgito son: ; Bits 7,6,5,4,3,2,1,0 Valor binario ; ==== =============== ============= ; 0 = a,b,c,d,e,f B'11111100' ; 1 = b,c B'01100000' ; 2 = a,b, d,e, g B'11011010' ; 3 = a,b,c,d, g B'11110010' ; 4 = b,c, f,g B'01100110' ; 5 = a, c,d, f,g B'10110110' ; 6 = a, c,d,e,f,g B'10111110' ; 7 = a,b,c B'11100000' ; 8 = a,b,c,d,e,f,g B'11111110' ; 9 = a,b,c, f,g B'11100110' ; A = a,b,c, e,f,g B'11101110' ; B = c,d,e,f,g B'00111110' ; C = a, d,e,f B'10011100' ; D = b,c,d,e, g B'01111010' ; E = a, d,e,f,g B'10011110' ; F = a, e,f,g B'10001110' ANDLW B'00001111' ADDWF PCL, F retlw B'11111100' retlw B'01100000' retlw B'11011010' retlw B'11110010' retlw B'01100110' retlw B'10110110' retlw B'10111110' retlw B'11100000' retlw B'11111110' retlw B'11100110' retlw B'11101110' retlw B'00111110' retlw B'10011100' retlw B'01111010' retlw B'10011110' retlw B'10001110' end
Microcontroladores
pg. 15
list p=16f877 ; Indicamos cual va a ser el procesador destino #include p16f877.inc ; Define gran cantidad de constantes relacionadas ; con este procesador UDATA ValorActual RES 1 Aux1 RES 1 Aux2 RES 1 Aux3 RES 1 STARTUP PROG1 CODE ; Selecciona la direccin de reset desde el script 16F877.lkr goto Inicio CODE ; Selecc la dir inic del programa desde el script 16F877.lkr extern hex27seg
Inicio ; En primer lugar inicializaremos el puerto C para que configure todas sus lneas ; como salidas. Se supone que a este puerto se han conectado los siete segmentos ; de un display ; Inicializamos las variables clrf ValorActual ; Configuramos los bits del puertoC como salidas BANKSEL TRISC clrf TRISC ; Configurar pines de PORTC como salidas Bucle BANKSEL ValorActual movf ValorActual, W ; Muevo ValorActual a W call hex27seg ; Llamamos a rutina de conversin BANKSEL PORTC movwf PORTC ; ponemos resultado en PORTC (el display) BANKSEL ValorActual incf ValorActual, F ; Incrementamos el valor para la siguiente btfsc ValorActual, 4 ; iteracin, y si se activa el bit 4, hemos clrf ValorActual ; llegado a 10H, y reseteamos la variable. movlw 8 ; Inicializamos Aux1 a 8 para conseguir movwf Aux1 ; una espera algo mayor que 1 segundo. call Espera1 decfsz goto Espera goto Bucle ; Rutina con un retardo de 0,13 seg. Aprox. Aux1, F ; Retornar al bucle principal
Espera
Microcontroladores
pg. 16
;******************************* Espera1 ;******************************* ; Realiza 256 llamadas a la rutina Espera2 movlw 0xFF movwf Aux2
Bucle1
call Espera2 decfsz Aux2, F goto Bucle1 return ;******************************* Espera2 ;******************************* ; Recorre 256 veces el bucle Bucle2. movlw 0xFF movwf Aux3 Bucle2 decfsz Aux3, F goto Bucle2 return end
Microcontroladores
pg. 17
Mdulo Display.ASM
; Mdulo Display.asm. Presenta la subrutina hex27seg, que recibe ; un valor hexadecimal de un dgito, y devuelve el valor correspondiente ; al de un display de 7 segmentos. ; A continuacin se muestra el nombre de cada segmento en un Display ; ----; | a | ; f| |b ; | | ; ----; | g | ; e| |c ; | | ; ----; d ; Se asignar el bit 7 al segmento 'a', el 6 al 'b', ... , el 1 al 'g' ; El bit 0 queda sin asignar. Se puede usar para el punto digital del display ; Los segmentos a iluminar para cada dgito son: ; Bits 7,6,5,4,3,2,1,0 Valor binario ; ==== =============== ============= ; 0 = a,b,c,d,e,f B'11111100' ; 1 = b,c B'01100000' ; 2 = a,b, d,e, g B'11011010' ; 3 = a,b,c,d, g B'11110010' ; 4 = b,c, f,g B'01100110' ; 5 = a, c,d, f,g B'10110110' ; 6 = a, c,d,e,f,g B'10111110' ; 7 = a,b,c B'11100000' ; 8 = a,b,c,d,e,f,g B'11111110' ; 9 = a,b,c, f,g B'11100110' ; A = a,b,c, e,f,g B'11101110' ; B = c,d,e,f,g B'00111110' ; C = a, d,e,f B'10011100' ; D = b,c,d,e, g B'01111010' ; E = a, d,e,f,g B'10011110' ; F = a, e,f,g B'10001110' W equ 0 F EQU 1 PCL EQU 2 CODE hex27seg global hex27seg ANDLW B'00001111' ADDWF PCL, F retlw B'11111100' retlw B'01100000' retlw B'11011010' retlw B'11110010' retlw B'01100110' retlw B'10110110' retlw B'10111110' retlw B'11100000' retlw B'11111110' retlw B'11100110' retlw B'11101110' retlw B'00111110' retlw B'10011100' retlw B'01111010' retlw B'10011110' retlw B'10001110' end
Microcontroladores
pg. 18
Interrupciones.
Microcontroladores
pg. 19
GIE 0 1 1 1 1 1 1 1 1
PEIE X 0 1 X X X X X X
T0IE X X X 0 1 X X X X
INTE RBIE xxxIE Significado X X X Todas las interrupciones deshabilitadas X X X Deshabilitadas las interrupciones de los perifricos internos salvo Timer 0 X X X Permitidas las interrupciones de los perifricos internos. Hay un bit adicional para cada perifrico. X X X Deshabilitada Int. Timer 0 X X X Habilitada Int. Timer 0 0 X X Deshabilitada Int. externa 1 X X Habilitada Int. externa X 0 X Deshabilitada Int. cambio lneas RB4,..,RB7 X 1 X Habilitada Int. cambio lneas RB4,..,RB7
Microcontroladores
pg. 20
;***** VARIABLE DEFINITIONS w_temp EQU 0x70 ; variable used for context saving status_temp EQU 0x71 ; variable used for context saving ;********************************************************************* ORG 0x000 ; processor reset vector clrf PCLATH ; ensure page bits are cleared goto main ; go to beginning of program ORG movwf movf movwf CLRF BTFSC GOTO BTFSC GOTO : : BTFSC GOTO INT_ERROR_LP1 GOTO 0x004 ; interrupt vector location w_temp ; save off current W register contents STATUS,w ; move status register into W register status_temp ; save off contents of STATUS register STATUS PIR1, TMR1IF T1_INT PIR1, ADIF AD_INT INTCON, RBIF PORTB_INT INT_ERROR_LP1 ; ; ; ; ; ; ; ; ; Bank0 Timer1 overflow interrupt? YES NO, A/D interrupt? YES, do A/D thing NO, Change on PORTB interrupt? YES, Do PortB Change thing
; NO, do error recovery ; This is the trap if you enter the ISR ; but there were no expected ; interrupts
END_ISR
movf status_temp,w ; retrieve copy of STATUS register movwf STATUS ; restore pre-isr STATUS register contents swapf w_temp,f swapf w_temp,w ; restore pre-isr W register contents retfie ; return from interrupt T1_INT ; Routine when the Timer1 overflows : ; BCF PIR1, TMR1IF ; Clear the Timer1 overflow interrupt flag GOTO END_ISR ; Ready to leave ISR (for this request) AD_INT ; Routine when the A/D completes : ; BCF PIR1, ADIF ; Clear the A/D interrupt flag GOTO END_ISR ; Ready to leave ISR (for this request) : ; PORTB_INT ; Routine when PortB has a change : ; GOTO END_ISR ; Ready to leave ISR (for this request) main ; remaining code goes here END ; directive 'end of program'
Microcontroladores
pg. 21
Reset.
Coloca a la CPU en un estado conocido. Causas: Power On Reset POR. Brown-out Reset. MCLR en estado normal. WDT en estado normal. MCLR en estado SLEEP. WDT en estado SLEEP.
Power On Reset
Microcontroladores
PCON
pg. 22
POR
0 0 0 1 1 1 1 1
BOR
X X X 0 1 1 1 1
TO
1 0 X 1 0 0 u 1
PD
1 X 0 1 1 0 u 0
Significado Power-on Reset Estado incorrecto Estado incorrecto Brown-out Reset WDT reset during normal operation WDT Wake-up. No reinicia el PC MCLR reset during normal operation MCLR reset during SLEEP
Existen tablas indicando como se inicializan los registros de la RAM con un reset, pero se distinguen bsicamente tres situaciones: Reset generado por POR / BOR : Se inicializan prcticamente todos los registros. Reset generado por MCLR /WDT: Se inicializan los registros de algunos perifricos y algunos bsicos como el contador de programa y parte del registro de flags. Reset generado por MCLR /WDT mientras se estaba en modo SLEEP: Prcticamente ningn registro cambia su contenido.
Modo Sleep
Detiene a la CPU. Principal ventaja: el consumo de la CPU se reduce a niveles muy bajos. Se despierta mediante: Activacin de MCLR Activacin de INT, RB4..RB7 y algunas interrupciones asociadas a perifricos internos. Desbordamiento del WDT
Reloj.
Los circuitos para generar la seal de reloj se encuentran dentro de la CPU. Estos circuitos necesitan algn componente externo para fijar su frecuencia y modo de trabajo. El oscilador interno se tiene que configurar para controlar adecuadamente los componentes externos, existiendo 4 posibilidades: LP: Low Power Crystal (32KHz. - 400 KHz.) XT: Crystal/Resonator (400 KHz. - 4 MHz.) HS: High Speed Crystal Resonator (2 MHz. - 20 MHz.) RC: Resistor/Capacitor (hasta 4 MHz.)
Microcontroladores
pg. 23
Modo Debug.
Algunos circuitos permiten la depuracin del programa sobre el propio chip (ICD In Circuit Debugging). Cuando esta capacidad est desactivada el microcontrolador funciona de forma autnoma como cualquier MCU estndar. Cuando esta capacidad est activada el microcontrolador debe estar conectado a un dispositivo (con las lneas RB6 y RB7) que controla e inspecciona la evolucin del programa. En este caso podemos ejecutar el programa paso a paso, insertar un breakpoint, inspeccionar o modificar el contenido de la memoria, ... Tambin se reservan algunos recursos. Para el 16F877 se reserva: - Las lneas RB6 y RB7 a travs de las cuales se comunica con el host. - 1 nivel de la pila. - Direccin 0 del programa debera contener la instrciin NOP. - ltimas 100H direcciones de la memoria de programa. - Direcciones 0x70 y 0x1EB a 0x1EF de la memoria de datos.
Bits de Configuracin.
A partir de la direccin 0x1FFF de la memoria de programa, se dispone de 8 palabras extras. Estas direcciones no son accesibles desde el programa o la aplicacin, pero si pueden ser accedidas en el proceso de grabacin. Las 4 primeras words (0x2000 a 0x2003) se denominan ID Location, sirve para almacenar un n de serie, o un n de versin de software instalada, etc. La direccin 0x2006 es de slo lectura y tiene un identificador del modelo de microcontrolador. La siguiente word (0x2007) , es la palabra de configuracin, sus bits tiene los siguiente significados: Bits 13-12 y 5-4: Estn relacionados con varios niveles de proteccin de nuestro SW. Bit 11: DEBUG. Si vale 0 se desactiva el modo ICD, y RB6 y RB/ quedan como lneas I/O estndar. Bit 9: WRT. Permite o no, escribir en la memoria Flash de programa. Bit 8. CPD Proteccin de los datos de la EEPROM. Bit 7: LVP. Permite la grabacin a bajo voltaje. Bit 6: BODEN. Habilita el control del Brown-out. Bit 3. PWRT . Permite activar o desactivar el Power-up Timer. Bit 2: WDTE. Permite activar o desactivar el Watch Dog. Bit 1- 0. Seleccin de tipo de generador de reloj: Uso de directivos de configuracin: __CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _RC_OSC & _WRT_ENABLE_ON & _LVP_ON & _DEBUG_OFF & _CPD_OFF __IDLOCS H'1234', H'3456' Constantes predefinidas en el fichero 16F877.INC _CP_ALL _CP_HALF _CP_UPPER_256 _CP_OFF _DEBUG_ON _DEBUG_OFF _WRT_ENABLE_ON _WRT_ENABLE_OFF _CPD_ON _CPD_OFF _LVP_ON _LVP_OFF EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU H'0FCF' H'1FDF' H'2FEF' H'3FFF' H'37FF' H'3FFF' H'3FFF' H'3DFF' H'3EFF' H'3FFF' H'3FFF' H'3F7F' _BODEN_ON _BODEN_OFF _PWRTE_OFF _PWRTE_ON _WDT_ON _WDT_OFF _LP_OSC _XT_OSC _HS_OSC _RC_OSC EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU H'3FFF' H'3FBF' H'3FFF' H'3FF7' H'3FFF' H'3FFB' H'3FFC' H'3FFD' H'3FFE' H'3FFF'
Microcontroladores
pg. 24
Perifricos 16F877
Puertos programables de E/S Timers/Counters Puertos de captura/comparacin de datos Moduladores de ancho de pulso (PWM) Conversor Analgico/Digital de 10 bits Puerto serie sncrono USART Parallel Slave Port
Circuito de 40 pines en formato. Salvo 7 pines, todos los dems estn asociados al menos con los puertos de E/S. Los 7 pines son: 4 pines para alimentacin, estn duplicados. 1 pin para MCLR y Vpp que es una tensin de 12 a 14 V. usada cuando est en modo programacin. 2 pines relacionados con entradas o salidas de reloj, en funcin del tipo de reloj utilizado.
Microcontroladores
pg. 25
Las lneas de E/S estn agrupadas en 5 puertos: A (6 bits), B (8 bits), C (8 bits), D (8 bits) y E (3 bits). Cada puerto de E/S tiene asociados dos registros TRISX y PORTX. El primer registro dispone de un bit por cada lnea del puerto, y controlar si funciona como entrada (Input, 1) o como salida (Output, 0). El segundo registro nos permite acceder al puerto. Con una escritura se modifican los bits configurados como salida, y con una lectura accedemos tanto a los de entrada como a los de salida. Si se realiza una escritura y de forma inmediata una lectura, puede que la salida no haya alcanzado el nivel adecuado generando incoherencias. El puerto A tiene todas sus salidas Totem pole, excepto la RA4 que es del tipo Open collector (open drain de forma ms exacta) lo que obliga a poner una resistencia de Pull Up para poder obtener '1'. Adems despus de un reset las lneas del puerto A estn configuradas como entradas analgicas (como digitales devuelven '0'). Escribiendo el valor 6 en el registro ADCON1 se pueden convertir en entradas digitales. El puerto B dispone de resistencias Pull-up que pueden activarse por software cuando funcionan como entradas. La activacin se realiza con el bit RBPU (bit 7) del registro OPTION_REG (direcciones 81h y 181h). Adems la lnea RB0 puede funcionar como entrada de peticin de interrupcin. Para ello se debe activar el bit INTE (bit 4) del registro INTCON (direcciones 0Bh, 8Bh, 10Bh y 18Bh). Con el bit INTDEG (bit 6) de OPTION_REG (direcciones 81h y 181h) se selecciona si se activa la interrupcin con flanco de subida (1) o de bajada (0). Los puertos A y B cuando se configuran como entradas, trabaja con niveles TTL (salvo la lnea RA4) y los puertos C, D y E como Schmitt Trigger (tambin RA4). TTL: VIL = 0,8 V., VIH = 2 V. ST: VIL = 1 V., VIH = 4 V. Permite cambios de tensin lentos en su entrada.
Microcontroladores
pg. 26
Timers
Disponemos de 3 timers numerados del 0 al 2 y del Watch Dog Timer.
Timer0
Timer de 8 bits Puede ser ledo y escrito a travs del registro TMR0 (direcciones 1 y 101h) La entrada de reloj del temporizador puede seleccionarse que sea interna o externa. Interna: Frecuencia de reloj CPU dividida por 4. Externa: Entrada RA4/T0CKI Bit T0CS (bit 5) del OPTION_REG (direcciones 81h y 181h). 0 = reloj interno, 1 = reloj externo. Si se usa un reloj externo, su frecuencia como mximo ser la mitad de la frecuencia de la entrada de reloj de la CPU. Si se selecciona el reloj externo, se puede utilizar como contador de pulsos en dicha entrada. En este caso se puede seleccionar si se activa la entrada por flanco de subida o de bajada: T0SE (bit 5) del OPTION_REG (direcciones 81h y 181h). 0 = flanco de subida, 1 = flanco de bajada. A este timer se le puede asociar un circuito divisor de la frecuencia de la entrada de reloj. Se le denomina Prescaler. Este circuito puede ser utilizado tambin por el Watch dog. En cualquier caso debe ser asignado a uno u otro. esto es seleccionado por el bit PSA (bit 3) del OPTION_REG (direcciones 81h y 181h). 0 = Timer 0, 1 = Watch dog. Tambin es posible seleccionar el factor de divisin. Se dispone de tres bits: PS2, PS1 y PS0, (bits 2, 1 y 0) del OPTION_REG (direcciones 81h y 181h) que introducen los factores de divisin que se muestran en la siguiente tabla: Bits PS 000 001 010 011 100 101 110 111 Timer0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 Watch dog 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128
Finalmente existen los dos bits mencionados en las interrupciones que permiten generar una interrupcin cada vez que se desborda el Timer0 cuando pasa de FFH a 0. Son los bits T0IE y T0IF del registro INTCON.
Microcontroladores
pg. 27
Timer1
Timer de 16 bits Puede ser ledo y escrito a travs de los registros TMR1H y TMR1L. La entrada de reloj del temporizador puede seleccionarse que sea interna o externa. Interna: Frecuencia de reloj CPU dividida por 4. Externa: Entradas RC1/T1OSICCP2 y RC0/T1OSO/T1CKI Bit TMR1CS (T1CON<1>). 0 = reloj interno, 1 = reloj externo. Si se usa un reloj externo, su frecuencia como mximo ser la mitad de la frecuencia de la entrada de reloj de la CPU. Tambin con reloj externo existen dos alternativas, colocar un cristal como fuente de reloj (hasta 200 KHz) o utilizar una seal digital. En el segundo caso solo se utiliza la lnea de entrada RC0/T1OSO/T1CKI. Para seleccionar una alternativa u otra, se dispone del bit T1OSCEN (T1CON<3>). Si vale 1 se usar el cristal activando el oscilador interno, si vale 0 se usan pulsos generados externamente. En este caso puede funcionar como contador de pulsos. Adems se dispone de un bit que permite activar y desactivar el Timer: TMR1ON (T1CON<0>) El timer dispone de un prescaler controlado por los bits T1CKPS1 y T1CKPS0 (T1CON<5:4>) cuyos factores de divisin que se muestran en la siguiente tabla: Bits T1CKPS 00 01 10 11 Timer1 1:1 1:2 1:4 1:8
Finalmente existen los dos bits mencionados en las interrupciones que permiten generar una interrupcin cada vez que se desborda el Timer1 cuando pasa de FFFFH a 0. Son los bits TMR1IE y TMR1IF necesitando adems que estn activados los bits que habilitan las interrupciones de los perifricos (PEIE) y el general (GIE).
Microcontroladores
pg. 28
Timer2
Timer de 8 bits Puede ser ledo y escrito a travs del registro TMR2. La entrada de reloj del temporizador es interna, concretamente la frecuencia de reloj CPU dividida por 4. Se dispone de un bit que permite activar y desactivar el Timer: TMR2ON (T2CON<2>) El timer dispone de un prescaler controlado por los bits T2CKPS1 y T2CKPS0 (T2CON<1:0>) cuyos factores de divisin que se muestran en la siguiente tabla: Bits T2CKPS 00 01 1x Timer2 1:1 1:4 1:16
La salida del contador puede ser conectada a un postscaler, que dispone de 4 bits de control T2OUTPS3:T2OUTPS0 cuya salida pasa a controlar el flag de interrupcin asociado a este Timer. Los factores de divisin se muestran en la siguiente tabla: Bits T2OUTPS 0000 0001 0010 . . . 1101 1110 1111 Salida de interrupcin 1:1 1:2 1:3 . . . 1:14 1:15 1:16
Finalmente existen los dos bits mencionados en las interrupciones que permiten generar una interrupcin cada vez que se desborda el Timer2 cuando pasa de FFH a 0. Son los bits TMR2IE y TMR2IF necesitando adems que estn activados los bits que habilitan las interrupciones de los perifricos (PEIE) y el general (GIE).
Microcontroladores
pg. 29
CAPTURE/COMPARE/PWM
Mdulos de captura, comparacin y modulacin por ancho de pulso. Existen dos mdulos de este tipo: CCP1 y CCP2 cuyo funcionamiento es prcticamente idntico diferencindose en que el CCP2 podr comenzar una conversin en el mdulo A/D. Ambos mdulos son de 16 bits, y estn estrechamente relacionados con el Timer1. Modo captura. En este modo, el mdulo CCPx captura el contenido del Timer1 cuando se produce un evento. Los eventos posibles, se refieren a los cambios en las entradas RC1/T1OSI/CCP2 RC2/CCP1 y se distinguen las siguientes situaciones: Un flanco de bajada. Un flanco de subida. Cada 4 flancos de subida. Cada 16 flancos de subida.
En este modo se pueden calcular intervalos de tiempo entre dos sucesos de forma muy exacta. Si se han activado las interrupciones, se generar una por cada captura realizada. Modo comparacin. En este modo, el mdulo CCPx comparar el contenido de los registros de 16 bits del mdulo con el Timer1, de tal manera que cuando se produzca una coincidencia, se producir la interrupcin correspondiente cuando las interrupciones estn activadas y podr hacerse que las lneas asociadas RC1/T1OSI/CCP2 RC2/CCP1 se pongan a nivel alto, bajo o no cambien. Finalmente resetearn el Timer1 y en el caso del CCP2 adems se lanzar una conversin A/D si el conversor est activado (permite hacer muestreos peridicos) Modo PWM. En este caso se produce una salida PWM en el puerto CCPx, con una resolucin de 10 bits. Una seal PWM seal con onda rectangular de frecuencia fija, en la que se puede variar el tiempo en el que la misma permanece a 0 o a 1. Sustituye en la mayora de los casos a un conversor D/A. La frecuencia de la seal se establece por medio del Timer2 y el tiempo que permanece a 1 (Duty cycle) se controla por medio de los registros del CCP que se est utilizando.
Microcontroladores
pg. 30
Permite velocidades de hasta 8 Mbps con reloj a 20 MHz. El master inicia las transferencias activando la lnea SCK, el esclavo recibe y transmite informacin cuando detecta que la lnea SCK se activa. Cada vez que recibe un byte, en modo esclavo, se puede activar la interrupcin correspondiente. I2C: Inter-Integrated Circuit. Permite la interconexin de mltiples dispositivos formando un bus. A cada dispositivo se le asigna una direccin y las tramas que se envan por el bus llevan direccionamiento para identificar los actores de la misma. En general se configura un dispositivo como master y el resto como esclavos, no obstante, se permiten buses multi-master, en este caso se dispone de mecanismos de deteccin de colisiones y gestin (arbitration) del Bus. se pueden alcanzar velocidades de 1 Mbps, y conectar hasta 128 o 1.024 dispositivos en funcin del tipo de direccionamiento utilizado..
Microcontroladores
pg. 31
Analog/Digital Converter.
Este mdulo permite la conexin de entradas analgicas para convertirlas en valores discretos obteniendo su valor. El valor mnimo de una entrada es 0 y aparece si la tensin de esa entrada es menor o igual a VREF-. El valor mximo es 1.023 (3FFH) si la tensin es mayor o igual que VREF+. Cualquier voltaje intermedio producir un valor proporcional al mism0 en el rango de 1 a 1.022. Aunque se dispone de un nico conversor, el microcontrolador tiene un multiplexor analgico que permite la conexin de hasta ocho entradas.
Para su uso se dispone de 4 registros de 8 bits: ADRESH, ADRESL, ADCON0 y ADCON1. Los dos primeros son: ADRESH y ADRESL (parte alta y parte baja del resultado de la conversin AD) contendrn el resultado de la ltima conversin. Se usan dos registros porque el conversor tiene una resolucin de 10 bits. Si ocho bits fueran suficientes para una aplicacin determinada, se puede indicar al conversor que entregue el resultado justificado a la izquierda y nos quedamos con el contenido de ADRESH. Registros ADCON0 y ADCON1 (Registros de control del conversor). ADCON1 suele usarse en la parte de inicializacin del programa para asignar la funcin que debe corresponder a cada una de las posibles entradas analgicas. ADCON0 debe ser accedido antes de cada conversin. El bit de mayor peso de ADCON1 (ADFM) permite decidir si el resultado queda alineado a la izquierda (0) o a la derecha (1). 0 0 ADRESH 0 0 0 0 b9 b8 b7 b6 ADRESL b5 b4 b3 b2 b1 b0
Microcontroladores
pg. 32
Los cuatro de menor peso (PCFG3 al PCFG0) se usan segn la siguiente tabla:
PCFG3: PCFG0 0000 0001 0010 0011 0100 0101 011x 1000 1001 1010 1011 1100 1101 1110 1111 AN7 RE2 AN6 RE1 AN5 RE0 AN4 RA5 AN3 RA3 AN2 RA2 AN1 RA1 AN0 RA0 VREF+ VREFCHAN/ Refs
A A D D D D D A D D D D D D D
A A D D D D D A D D D D D D D
A A D D D D D A A A A D D D D
A A A A D D D A A A A A D D D
A A A A A A D A A A A A A D D
A A A A A A D A A A A A A A A
VDD RA3 VDD RA3 VDD RA3 VDD RA3 VDD RA3 RA3 RA3 RA3 VDD RA3
VSS VSS VSS VSS VSS VSS VSS RA2 VSS VSS RA2 RA2 RA2 VSS RA2
8/0 7/1 5/0 4/1 3/0 2/1 0/0 6/2 6/0 5/1 4/2 3/2 2/2 1/0 1/2
Esto permite que todas las entradas sean analgicas o digitales o algunas combinaciones de analgicas y digitales. Tambin permite definir que valores se usarn como VREF+ y VREF-. Los dos bits de mayor peso de ADCON0 (ADCS1 y ADCS0) permiten seleccionar la fuente de reloj a utilizar. En general este parmetro no es crtico. Seleccionar los valores 01 10 permiten realizar conversiones rpidas y precisas. Los bits 3 .. 5 se corresponde con CHS0 .. CHS2. Con esas tres lneas se gobierna el MPX analgico, y por tanto la entrada sobre la que se quiere hacer la conversin. El bit de menos peso (ADON) permite conectar o desconectar el conversor. Tenerlo desconectado permite reducir el consumo del microcontrolador. Finalmente el bit 2 GO/ DONE permite lanzar el proceso de conversin poniendo esta lnea a 1, y comprobar si la conversin ha finalizado. Existen bsicamente dos maneras de detectar cuando ha finalizado. Por interrupciones o por sondeo (polling). Si se activan los bits de interrupcin correspondientes (ADIE, PIE y GIE y se pone a 0 ADIF), se producir una interrupcin cuando acabe la conversin en marcha, activando el ADIF. Por sondeo el mtodo es el siguiente: Activar el bit GO/ DONE y entrar en un bucle en el que se comprueba este mismo bit. Mientras valga 1 la conversin est en curso. Cuando pasa a 0 la conversin finaliz y el resultado se encuentra en los registros ADRESH y L.
Microcontroladores
pg. 33
Microcontrolador 16F876
El 16F876 contiene el mismo ncleo que el 16F877, pero dispone de 28 pines, lo cual supone eliminar algunos de los perifricos de los presentes en su hermano mayor.
Tal y como se muestra en la figura, se puede observar que carece de los puertos D (8 bits) y E (3 bits), y en cuanto a perifricos, no existe el SPP (Slave Parallel Port) y el conversor A/D dispone de 5 entradas (frente a 8 del 16F877). Tambin se dispone de una entrada menos de alimentacin (un nico pin para VDD).
Microcontroladores
pg. 34
Microcontrolador 16F84
El 16F84 es un microcontrolador de la gama media al igual que el 16F877 pero que carece de varios de los perifricos de ste a cambio de ser un circuito ms econmico y ms pequeo. Carece de conversor A/D, y dispone de slo 11 lneas de entrada salida.
Pines en el 16F84
Microcontroladores
pg. 35
Electrnica
Componentes electrnicos
Resistencias Condensadores Inductancias. Diodos Transistores Triacs ........ Activos Circuitos integrados Digitales Analgicos
Reguladores de tensin Amplificadores operacionales .......... Puertas Multiplexores Memoria Microcontroladores ........
Resistencias
Resistencia elctrica es la medida de la oposicin que un material presenta al paso de la corriente elctrica se mide en ohmios. . Una resistencia (tambin resistor) es un componente electrnico pasivo diseado para introducir una resistencia elctrica determinada entre dos puntos de un circuito. Los principales parmetros de un resistor son su resistencia y la potencia mxima que pueden disipar.
Fuente de alimentacin
Esquema bsico:
Transformador:
Microcontroladores
pg. 36
Rectificador:
Media onda:
Filtro:
Se construye con un condensador de alta capacidad entre la salida del rectificador y masa. Se recomiendan capacidades de entre 2.000 y 5.000 mF por amperio que pueda proporcionar la F.A.
Microcontroladores
pg. 37
A la salida del regulador se suelo poner otro condensador de filtro pero de una capacidad inferior (entre 100 nF. y 10 mF.)
Regulador:
La forma ms simple utilizar reguladores integrados tales como la familia 78xx y 79xx. Cortocircuitables. Con proteccin trmica y contra sobrecargas. Corrientes de hasta 1 A.
Dispositivos E/S
Interruptores/pulsadores:
Suelen utilizarse resistencias de Pull-up o Pull-down. Se debe disponer de un sistema de supresin de rebotes que puede ser HW. (biestable, red RC, ...) o SW.
Teclados
Tambin necesitan resistencias pull-up o Pull-down. Pueden conectarse de dos formas:
Microcontroladores
pg. 38
Microcontroladores
pg. 39
Dispositivos de salida:
Diodos LED
Funcionan a 1,8 V. 10-20 mA. Tienen polaridad
Displays 7 segmentos
Varios diodos LED agrupados con el nodo o el ctodo comn.
Microcontroladores
pg. 40
Displays LCD
Microcontroladores
pg. 41
Microcontroladores
pg. 42
Microcontroladores
pg. 43
Microcontroladores
pg. 44
Transistores:
Existen enormes tratados sobre las diferentes maneras de conectar los transistores, y las diferentes formas en las que pueden trabajar. Nosotros nos vamos a centrar en una forma de conectarlos (Emisor comn) y dos zonas de trabajo (corte y saturacin). Trabajando en estas condiciones, son muy pocas las cosas que debemos tener en cuenta para decidir que transistores utilizar y que componentes conectar asociados a los mismos. Seleccionar un transistor: Los elementos a tener en cuenta son Ic, hFE y VCEO. Ic: Define la mxima corriente que se puede controlar a partir de ese transistor. Ser algo mayor que la corriente mxima del circuito que vamos a conectar. hFE: Define la ganancia. hFE = IC/IB. A partir de la ganancia, obtendremos la corriente que circular por la Base, que es la que suministraremos para activar el transistor. VCEO Define la mxima diferencia de potencial entre colector y emisor, es decir la mxima tensin de trabajo. Esquema bsico:
IB es la corriente que suministrar nuestro circuito de control. Por ejemplo la salida mxima de un pin de I/O de un PIC es de 25 mA: aunque no es conveniente llegar a las corrientes mximas. La carga es el dispositivo que queremos controlar con el transistor: Un rel, un motor, una lmpara, ... Es importante conocer la corriente mxima que circular por el dispositivo, para seleccionar un transistor adecuado. Transistores comerciales: Existen miles de referencias diferentes. Mostraremos aqu solamente 4 referencias de transistores muy conocidos.
Microcontroladores
pg. 45
BC107
Es un transistor de baja potencia. Su IC es de 100 mA, su hFE es 110 y VCEO es de 45 V. El transistor complementario (mismas caractersticas salvo que es PNP, es el BC177).
Es muy adecuado para pequeas cargas, tales como: el terminal comn de un display de 7 segmentos, un rel, ... Por ejemplo supongamos que se debe activar un rel de 12 V. 80 mA. desde un PIC. El circuito sera: En el circuito vemos que la tensin aplicada al rel es de 12 V. mientras que la que llega a RB es de 5 V. Esto no supone ningn problema mientras no se sobrepasen los valores mximos del transistor (VCEO). La IC ser la del rel, es decir 80 mA. La ganacia del transistor es 110, por lo que bastara con una corriente de base IB = 80/110= 0,72 mA. No obstante para asegurar que se entra en saturacin vemos a hacer que IB= 1 mA. R=V/I, V=5V. - 0,7 V. (0,7 V. de la unin Base Emisor del transistor). RB= 4,3/0,001=4300 W. El valor comercial ms prximo por debajo es 3.900 W El diodo que aparece en el esquema, elimina los picos de tensin que produce la bobina del rel al conectarla y desconectarla.
BD 139
Es un transistor de media potencia. Su IC es de 2 A, su hFE vara entre 25 y 60 en funcin de IC y VCEO es de 80 V. El transistor complementario (mismas caractersticas salvo que es PNP, es el BD140).
Microcontroladores
pg. 46
TIP122
Es un transistor de potencia darlington (dos transistores conevtados en cascada para aumentar la ganancia). Su IC es de 5 A, su hFE es de 1.000 y VCEO es de 100 V. El transistor complementario (mismas caractersticas salvo que es PNP, es el TIP 127). Su elevada ganancia permite conectar la base al microcontrolador, y el colector a circuitos de elevada potencia, sin ninguna etapa previa.
2N3055
Es un transistor de potencia. Su IC es de 15 A, su hFE vara entre 2 y 100 en funcin de IC y VCEO es de 60 V. El transistor complementario (mismas caractersticas salvo que es PNP, es el MJ2955).
Microcontroladores
pg. 47
TRIACS
Circuitos que pueden ser clasificados como rels para corriente alterna de estado slido. Permiten conducir o bloquear el paso de la corriente alterna.
Microcontroladores
pg. 48
MOTORES
Motores CC
S1
S3 VCC
MOTOR GND
S2
S4
16
O N/OFF 1 CO NT RO L 1 M OT O R 1
L293B
EN1 IN1 OUT 1 GND GND VCC IN4 O UT 4 G ND G ND O UT 3 IN 3 EN2
VCC T T L
CON T ROL4 MO T OR 2
CO NT RO L2
CON T ROL3 ON /O FF 2
ON / OFF 1 ON ON ON ON OFF
Microcontroladores
pg. 49
L293B
IN1 OUT1 GND GND OUT2 IN2 v+ motor VCC IN4 OUT4 GND GND OUT3 IN3 EN2
EN1
DIR2 MOTOR 2
ON/OFF 2
V+ MOTOR
DIRECCIN 1 OFF ON X
ON / OFF 1 ON ON OFF
Servocontrol
Discos/codificadores
Motores Unipolares
Microcontroladores
pg. 50
Motor Bipolar
1 2 3 4
A -
B -
C -
S1 ON OFF OFF ON
S2 OFF ON ON OFF
S3 ON ON OFF OFF
S4 CA OFF 1 OFF 0 ON 0 ON 1
CB 0 1 1 0
CC 1 1 0 0
CD 0 0 1 1
Motor bipolar
1 2 3 4
A + + -
B + +
C + +
D + + -
S1 OFF ON ON OFF
S2 ON OFF OFF ON
S3 ON OFF OFF ON
S4 OFF ON ON OFF
S5 OFF OFF ON ON
S6 ON ON OFF OFF
S7 ON ON OFF OFF
S8 CA OFF 1 OFF 0 ON 0 ON 1
CB 0 1 1 0
CC 1 1 0 0
CD 0 0 1 1
Microcontroladores
pg. 51