Академический Документы
Профессиональный Документы
Культура Документы
Microcontroladores
INDICE
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 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. ................................................................................................................................ 30 Microcontrolador 16F876................................................................................................................................ 31 PICMIN........................................................................................................................................................... 32 PIC-ENT1........................................................................................................................................................ 35 Placa de circuito impreso. ............................................................................................................................. 36 Lista de componentes ................................................................................................................................... 37 Herramienta: ................................................................................................................................................ 37 Identificacin de algunos componentes ......................................................................................................... 38 Componentes electrnicos ................................................................................................................................ 41 Fuente de alimentacin..................................................................................................................................... 41 Transformador:............................................................................................................................................. 41 Rectificador:................................................................................................................................................. 42 Filtro:........................................................................................................................................................... 42 Regulador:.................................................................................................................................................... 43 Interruptores/pulsadores:............................................................................................................................... 43 Teclados....................................................................................................................................................... 43 Otros dispositivos de entrada: ....................................................................................................................... 44
Microcontroladores
pg. 2
Dispositivos de salida:...................................................................................................................................... 45 Diodos LED ................................................................................................................................................. 45 Displays 7 segmentos ................................................................................................................................... 45 Displays LCD............................................................................................................................................... 46 Transistores:..................................................................................................................................................... 50 BC107.......................................................................................................................................................... 51 BD 139 ........................................................................................................................................................ 51 TIP122......................................................................................................................................................... 52 2N3055 ........................................................................................................................................................ 52 TRIACS........................................................................................................................................................... 53 MOTORES ...................................................................................................................................................... 54 Motores CC.................................................................................................................................................. 54 Servocontrol................................................................................................................................................. 55 Motores paso a paso ..................................................................................................................................... 55 Control de motores paso a paso..................................................................................................................... 56 Circuitos especficos: SAA1027.................................................................................................................... 57
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
EFH F0H
16FH 170H
1EFH 1F0H
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
TO
PD
DC
Flags ALU
Direccionamiento
Reset
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
RADIX
RADIX hex|dec|oct
CBLOCK
CBLOCK [<expresin>] <NomVar>[:<incremento>][,<NomVar>[:<incremento>][, ...]] ENDC Var1 Var2 Var3 EQU 0x20 EQU 0x21 EQU 0x22 CBLOCK 0x20 Var1, Var2, Var3 ENDC CBLOCK 0x30 DobleByte:0, DobleByteAlto, DobleByteBajo Nombre: TAM_NOMBRE Word1:2, Word2: 2 Var1, Var2, Var3 ENDC
Microcontroladores
pg. 12
RES
[<NomVar>] RES <Unidades_de_memoria>. UDATA ValorActual RES 1 Aux1 RES 1 Aux2 RES 2 Aux3 RES 1
INCLUDE
INCLUDE <Fichero_a_incluir>
LIST
LIST [<opcin>, ... , <Opcin>] Opcin n=nnn p=<tipo> r=<radix> ..... Valor por defecto 60 Ninguno hex 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
EXTERN <Etiqueta> [, <Etiqueta> ... ] EXTERN Var1 ....... MOVF Var1, W
GLOBAL
GLOBAL <Etiqueta> [, <Etiqueta> ... ] UDATA RES 1 RES 2 GLOBAL Var1, Var2
Var1 Var2
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 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 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.
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. Espera call Espera1 decfsz goto Espera goto Bucle ; Rutina con un retardo de 0,13 seg. Aprox. Aux1, F ; Retornar al bucle principal
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 ; ; ; ; ; ; ; ; ; Bank0 Timer1 overflow interrupt? YES NO, A/D interrupt? YES, do A/D thing
INT_ERROR_LP1
; 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. MCLR en estado normal. MCLR en estado SLEEP. WDT en estado normal. Brown-out Reset.
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 WDT Wake-up MCLR reset during normal operation MCLR reset during SLEEP
Timer que genera un reset al desbordarse. Usa una fuente de reloj interna. Puede definirse un valor para un postscaler, que permite definir diferentes tiempos. Instrucciones CLRWDT y 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 baja a niveles muy bajos. Se despierta mediante: Activacin de MCLR Activacn de INT, RB4..RB7 y algunas interrupciones asociadas a perifricos internos.
Reloj.
Existen cuatro fuentes posibles para el reloj de la CPU: 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
Bits de Configuracin.
A partir de la direccin 0x1FFF de la memoria de programa, se dispone de 8 palabras extras. Estas direcciones no son legibles desde el programa o la aplicacin, pero si pueden ser ledas en el aparato 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: 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 _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 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' 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 estas lneas estn configuradas como entradas analgicas (como digitales devuelven '0'). Por medio del registro ADCON 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:
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..
Analog/Digital Converter.
Este mdulo permite la conexin de entradas analgicas para convertirlas en valores discretos obteniendo su valor. Aunque se dispone de un solo conversor, el microcontrolador dispone de un multiplexor analgico que permite la conexin de hasta ocho entradas analgicas.
Microcontroladores
pg. 31
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. 32
PICMIN
Nombre C1,2 X1 Jack Jack hembra Portapilas C7 D1 L1 R1,13 R11 R12 Pulsador PIC16F84A Zcalo Cable 0,5 Placa puntos
Descripcin Condensador cermico de 22pF Cristal de 4Mhz Jack macho para el portapilas Jack hembra circuito impreso Portapila plano de 4 unidades Condensador multicapa de 100nF Diodo 1N4148 Diodo LED 3mm Resistencia 4K7 Resistencia 330 ohmios Resistencia 100 ohmios Pulsador pequeo circuito impreso Microcontrolador PIC 16f84a Zocalo de 2x10 pines Cable de 0,5 rgido Placa de puntos pequea
USO Circuito de reloj Circuito de reloj Conector portapilas Alimentacin con jack Pilas Eliminacin de ruido Proteccin reset Circuito pruebas Pull-up Polarizacin led Proteccin reset Reset y circuito pruebas Microcontrolador Zocalo para el micro Conexionado Plano soldadura
Cantidad 2 1 1 1 1 1 1 1 2 1 1 2 1 1 1 m. 1
Material extra: Grabador TE-20 Soldador y estao opcionalmente. 4 pilas. Cable de 0,5 mm o similar. Tambin vale cable para grapinar.
Microcontroladores
pg. 33
Microcontroladores
pg. 34
Pines en el 16F84
Microcontroladores
pg. 35
PIC-ENT1
Microcontroladores
pg. 36
Microcontroladores
pg. 37
Lista de componentes
Componente C1 C3 D1 D2 DIS1 IC1 IC2 J1 JP1 LED1 Q1 R1, R4 R2 R3 R6 R5,7-13 S1, S2 X1 Cable Placa Conector Portapilas Valor 22p 10uF/16V. Tntalo 1N4148 1N4001 Display 7 segmentos ctodo comn Zcalo 40 pines torneados Zcalo 14 pines torneados Conector RJ11-6pines Placa CI 90 Jumper LED verde 3mm Cristal de cuarzo 4 MHz. 4K7 1/4 W. 100 1/4 W. 330 1/4 W. Potencimetro10K PT1-0V 220 1/4 W. Pulsador placa C.I.tipo P11522/2 Conector alimentacin para placa CI 90 3 m. de hilo 0,5 mm. Placa circuito impreso 100*100 mm. para prototipos, con cuadrados . Conector alimentacinareo Portapilas 4 pilas AA Cant. 2 1 1 1 1 1 2 1 1 1 1 2 1 1 1 8 2 1 3 1 1 1 0,04 0,4 0,01 0,01 0,01 0,15 0,01 0,13 0,25 0,30 4,43 0,79 0,35 Precio ud. 0,018 0,028 0,012 0,012 0,77 0,56 0,2 0,46 Total 0,036 0,028 0,012 0,012 0,77 0,56 0,4 0,46 0 0,04 0,4 0,02 0,01 0,01 0,15 0,08 0,26 0,25 0,9 4,43 0,79 0,35 9,90
Herramienta:
Alicate cortahilos. Alicate de punta plana. Soldador y estao. Polmetro.
Microcontroladores
pg. 38
Diodos
1N4001
1N4148
La manera ms simple de identificar los dos pines del LED es por transparencia como se muestra en la siguiente figura. Se observa que internamente el terminal 'gordo' corresponde al ctodo es decir el que se conecta hacia masa o 0V.
nodo
Ctodo
Microcontroladores
pg. 39
Cristal de cuarzo
Color
Negro Marrn Rojo Naranja Amarillo Verde Azul Violeta Gris Blanco
Valor base 0 1 2 3 4 5 6 7 8 9
Microcontroladores
pg. 40
Condensadores
Condensadores de Tntalo. Atencin tienen polaridad. Junto a una de las conexiones aparece un signo '+' en miniatura.
Pulsadores
Los pulsadores utilizados tienen 4 pines unidos entre s dos a dos. El 1 con el 2 y el 3 con el 4.
Microcontroladores
pg. 41
Electrnica
Componentes electrnicos
Resistencias Condensadores Inductancias. Diodos Transistores Triacs ........ Activos Circuitos integrados Digitales Analgicos
Pasivos
Componentes electrnicos
Reguladores de tensin Amplificadores operacionales .......... Puertas Multiplexores Memoria Microcontroladores ........
Fuente de alimentacin
Esquema bsico:
Transformador:
Microcontroladores
pg. 42
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 F por amperio que pueda proporcionar la F.A.
A la salida del regulador se suelo poner otro condensador de filtro pero de una capacidad inferior (entre 100 nF. y 10 F.)
Microcontroladores
pg. 43
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. 44
Microcontroladores
pg. 45
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. 46
Displays LCD
Microcontroladores
pg. 47
Microcontroladores
pg. 48
Microcontroladores
pg. 49
Microcontroladores
pg. 50
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. 51
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 . El valor comercial ms prximo por debajo es 3.900 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. 52
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. 53
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. 54
MOTORES
Motores CC
S1
S3 VCC
MOTOR GND
S2
S4
16
1
O N/OFF 1 CO NT RO L 1 M OT O R 1 EN1 IN1 OUT 1 GND GND CO NT RO L2 OUT 2 IN2
L293B
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
CON T ROL3 ON /O FF 2
v+ motor V+ MO T OR
ON / OFF 1 ON ON ON ON OFF
Microcontroladores
pg. 55
1
ON/OFF 1 DIR1 MOTOR 1 EN1 IN1 OUT1 GND GND OUT2 IN2
L293B
VCC IN4 OUT4 GND GND OUT3 IN3 EN2
DIR2 MOTOR 2
v+ motor V+ MOTOR
ON/OFF 2
DIRECCIN 1 OFF ON X
ON / OFF 1 ON ON OFF
Servocontrol
Discos/codificadores
Motores Unipolares
Microcontroladores
pg. 56
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. 57
1 2 3 4 5 6 7 8
16 15 14 13 12 11 10 9
A N.C C