Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCION
Pata 4 - MLCR / Vpp: Es una pata de mltiples aplicaciones, es la entrada de Reset si est a
nivel bajo y tambin es la habilitacin de la tensin de programacin cuando se est
programando el dispositivo. Cuando su tensin es la de VDD el PIC funciona normalmente.
Patas 5 y 14 - VSS y VDD: Son respectivamente las patas de masa y alimentacin. La tensin
de alimentacin de un PIC est comprendida entre 2V y 6V aunque se recomienda no
sobrepasar los 5.5V.
Patas 6, 7, 8, 9, 10, 11, 12, 13 RB0-RB7: Es el PORT B. Corresponden a ocho lneas
bidireccionales de E/S. Pueden manejar niveles TTL cuando la tensin de alimentacin
aplicada en VDD es de 5V 5%. RB0 puede programarse adems como entrada de
interrupciones externas INT. Los pines RB4 a RB7 pueden programarse para responder a
interrupciones por cambio de estado. Las patas RB6 y RB7 se corresponden con las lneas de
entrada de reloj y entrada de datos respectivamente, cuando est en modo programaci6n del
integrado.
Patas 15 y 16 OSC1/CLKIN y OSC2/CLKOUT. Corresponden a los pines de la entrada
externa de reloi y salida de oscilador a cristal respectivamente.
INTERRUPCIONES: 4 tipos diferentes (Pata externa RB0/INT, exceso del temporizador TMR0,
Interrupcin al cambio PORTB<7:4> y al completar la escritura del EEPROM de datos)
JUEGO DE INSTRUCCIONES: 35
VOLTAJE DE ALIMENTACIN: 2 a 6V DC
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
MEMORIADE PROGRAMA
1K
EEPROM
0000H
Vector Reset
0004H
Vector Interrupcin
12
0
PC
Nivel 1
03FF H
0400H
Figura
3.3.
Memoria de
Programa
No implementado
Pila
Nivel 8
1FFF H
13
12
PILA
Las caractersticas esenciales de la pila son:
9
9
9
9
Bit 0
En el PIC16F84A:
No implementado: 0
Bit 5: RP0
Bank Select
Bit 4: TO
Time-out
Bit 3: PD
1= Despus de un reset o de una instruccin CLRWDT
Power Down 0= Por la ejecucin de la instruccin SEP
Bit 2: Z Zero 1= El resultado de una operacin lgica o aritmtica es 0
0= El resultado de una operacin lgica o aritmtica no es 0
Bit 1: DC 1= Un acarreo ocurri del resultado en el bit 4to.de orden bajo
0= No ocurri acarreo en el bit cuarto de orden bajo
Digit carry
Bit 0: C Carry 1= Un acarreo ocurri del resultado en el bit MSB
0= No ocurri acarreo en el bit MSB
Registro OPTION
Contiene varios bits de control para configurar el divisor de frecuencia o prescaler del
TMR0/WDT, la interrupcin externa INT, TMR0 y los pull-ups en el PORTB
L=bit de lectura E=bit de escritura 0/1/x=Valor despus de un RESET
L/E - 1 L/E - 1
L/E - 1 L/E - 1 L/E - 1 L/E - 1 L/E - 1 L/E - 1
RBPU INTEDG T0CS T0SE PSA
PS2
PS1
PS0
Bit 7
Bit 0
En el PIC16F84A:
Bit 7: RBPU
Habilita pull-ups PORTB
Bit 6: INTEDG
Selector de filo de int
Bit 5: T0CS
Selector de fuente de reloj
Bit 4: T0SE
Selector de filo en RA4
Bit 3: PSA
Asignacin de prescaler
1:2
1:4
1:8
1 : 16
1 : 32
1 : 64
1 : 128
1 : 256
1:1
1:2
1:4
1:8
1 : 16
1 : 32
1 : 64
1 : 128
Registro INTCON
Contiene los bits para habilitar cada una de las fuentes de interrupcin.
L=bit de lectura E=bit de escritura 0/1/x=Valor despus de un RESET
L/E - 0 L/E - 0 L/E - 0 L/E - 0 L/E - 0 L/E - 0 L/E - 0 L/E - x
GIE
EEIE T0IE INTE RBIE T0IF
INTF RBIF
Bit 7
Bit 0
En el PIC16F84A:
Int.= interrupciones
Bit 7: GIE
Habilita Interrupcin Global
Bit 6: EEIE
1=Habilita
Int. al completar escritura en EEPROM 0=Deshabilita
Bit 5: T0IE
Int. por desbordamiento del TMR0
1=Habilita
0=Deshabilita
Bit 4: INTE
Int. externa RB0/INT
1=Habilita
0=Deshabilita
Bit 3: RBIE
1=Habilita
Int. por cambio de estado en RB7:RB4 0=Deshabilita
Bit 2: T0IF
Bandera de int. T0IE TMR0
1=Ocurri un desbordamiento
0=No ha ocurrido desbordamiento
Bit 1: INTF
Bandera de int. INTE RB0/INT
Bit 0: RBIF
Bandera de int. RBIE RB7:RB4
f,d
f,d
ff,d
f,d
f,d
f,d
f,d
ff,d
f,d
f,d
f,d
f,d
DESCRIPCIN
CICLOS SEALIZADORES
Suma W y f
AND W con f
Borra f
Borra W
Complementa f
Decrementa f
Incrementa f
OR entre W y f
Mueve f
Mueve W y f
No opera
Rota f a la izq
Rota f a la der
Resta W a f
Intercambia nibbles
XOR de W con f
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
C,DC,Z
Z
Z
Z
Z
Z
Z
Z
Z
C
C
C,DC,Z
Z
10 9
7 6
Cdigo OP
b (posicin) f (7
bits Dir. registro)
DESCRIPCIN
CICLOS SEALIZADORES
Borra bit de f
1
Pone a 1 del bit de f 1
DESCRIPCIN
K Suma inmediata con W
K AND inmediato con W
K OR inmediato con W
K Mueve a W un valor inmediato
K Resta W de un inmediato
K OR exclusiva con W
CICLOS SEALIZADORES
1
1
1
1
1
1
C,DC,Z
Z
Z
C,DC,Z
Z
DESCRIPCIN
CICLOS SEALIZADORES
CALL
K Llamada a subrutina
CLRWDT
Borra o refresca el Perro Guardin
GOTO
K Salto incondicional
RETFIE
Retorno de interrupcin con GIE=1
RETLW
K Retorno subrutina y carga W=k
RETURN
Retorno de subrutina
SLEEP
Pasa al modo de reposo
2
1
2
2
2
2
1
TO#, PD#
TO#, PD#
DESCRIPCIN
BTFSC f,d
Explora in bit de f y brinca si vale 0
BTFSS
f,d Explora in bit de f y brinca si vale 1
Decrementa f y si es 0 brinca
DECFSZ f,d
INCFSZ f,d
Incrementa f y si es 0 brinca
CICLOS SEALIZADORES
1(2)
1(2)
1(2)
1(2)
En el PIC16F84A:
Bit 7 - 5: 0
Bits no implementados
Bit 4: EEIF
1= Escritura completada
Bandera de int. de escritura en EEPROM 0= No completada
Bit 3: WRERR
Bandera de error en la EEPROM
Bit 2: WREN
Habilita escritura en la EEPROM
Bit 1: WR
Control de escritura
Bit 0: RD
Control de lectura
Un ciclo de escritura de una posicin de la EEPROM de datos tiene una duracin tpica de 10ms,
que resulta muy larga para la velocidad del procesador. Por este motivo existen varios bits en el
registro EECON1 para supervisar la completa y correcta terminacin del mismo.
El registro EECON2 en realidad no est implementado fsicamente. Al leerlo todos sus bits son 0.
Slo se emplea como un dispositivo de seguridad durante el proceso de escritura de la
EEPROM, para evitar las interferencias en el largo intervalo de tiempo que precisa su desarrollo.
Proceso de lectura
BCF
MOVLW
MOVWF
BSF
BSF
BCF
MOVF
STATUS, RP0
DIRECCION
EEADR
STATUS, RP0
EECON1, RD
STATUS, RP0
EEDATA, W
Proceso de escritura
;Banco 0
;Direccin que se va a leer se carga en W
;Banco 1
;Inicia ciclo de lectura
;Banco 0
;W=EEDATA
BCF
MOVLW
MOVWF
MOVLW
MOVWF
BCF
BSF
BSF
MOVLW
MOVWF
MOVLW
MOVWF
BSF
BSF
STATUS, RP0
DIRECCION
EEADR
DATO
EEDATA
INTCON, GIE
STATUS, RP0
EECON1, WREN
55 H
EECON2
AA H
EECON2
EECON1, WR
INTCON, GIE
;Banco 0
;Direccin donde se va a escribir se carga en W
;Registro que almacena una direccin
;Dato que se va a escribir se carga en W
;Registro que almacena un dato
;Deshabilita todas las interrupciones
;Banco 1
;Habilita permiso de escritura
;Carga 55h en W
;Mueve el contenido de W a EECON2
;Carga AAh en W
;Mueve el contenido de W a EECON2
;Inicia ciclo de escritura
;Habilita interrupciones
STATUS, RP0
EEDATA, W
STATUS, RP0
EECON1, RD
STATUS, RP0
EEDATA, W
STATUS, Z
WRITE_ERR
;Banco 0
;W=EEDATA
;Banco 1
;Inicia ciclo de lectura
;Banco 0
;Salta si el bit Z del registro STATUS es 1
;Ha ocurrido un error
3.2.2.6 Temporizadores
Los PIC16X8X y los de la gama baja disponen de dos temporizadores, el TMR0 y el Perro
Guardin (Watchdog). El primero acta como principal y sobre l recae el control de tiempo y el
contaje de impulsos. El otro vigila que el programa no se <<cuelgue>> y para ello cada cierto
tiempo comprueba si el programa se est ejecutando normalmente. Si el control est detenido
en un bucle infinito a la espera de algn acontecimiento que no se produce, el Perro Guardin
<<ladra>> lo que se traduce en un Reset que reinicializa todo el sistema.
-Temporizador/Contador TMR0
Es un contador de 8 bits ascendente
Al estar conectado al bus de datos puede ser ledo y escrito en cualquier momento
Es posible seleccionar reloj interno externo
Se puede seleccionar filo de subida de bajada para el reloj externo
Tiene un pre-divisor de frecuencia programable
Habilita una interrupcin en el desbordamiento de FF H a 00 H
Puede actuar de dos maneras diferentes, como temporizador y como contador, esto se puede
seleccionar con el bit 5: T0CS del registro OPTION.
1.a Como temporizador (T0CS=0), cuando se carga en el registro que implementa al recurso un
valor inicial se incrementa con cada ciclo de instruccin hasta que se desborda, o sea, pasa de
FF H a 00 H y avisa poniendo a 1 un bit sealizador y/o provocando una interrupcin. Si el
registro TMR0 es escrito, el incremento es inhibido por los siguientes dos ciclos de instruccin y
se pone a 0 el divisor de frecuencia.
2.a Como contador de sucesos (T0CS=1), que estn representados por los impulsos que se
aplican a la patita RA4/T0CKI. TMR0 incrementar cada filo de subida de bajada segn se
configure con el bit 4: T0SE del registro OPTION. Al llegar al valor FF H se desborda el contador
y, con el siguiente impulso, pasa a 00H, advirtiendo esta circunstancia activando un sealizador
y/o provocando una interrupcin.
*Registros asociados con el TIMER0
DIR
01 H
0B H
81 H
85 H
Nombre
TMR0
INTCON
OPTION
TRIS A
Bit 7 Bit 6
Bit 5 Bit 4
Bit 3 Bit 2 Bit 1 Bit 0
Conta dor / Reloj en tiempo real de 8 bits
*GIE EEIE
*T0IE INTE
RBIE *T0IF INTF RBIF
RBPU INTEDG *T0CS *T0SE *PSA *PS2 *PS1 *PS0
Registro de direccin de datos PORTA
Predivisor Prescaler
Su nombre se debe a que los impulsos pasan primero por el Divisor y luego se aplican al TMR0,
una vez aumentada su duracin. Los impulsos, que divide el Divisor de frecuencia por un rango,
pueden provenir de la seal de reloj interna o de los que se aplican a la pata RA4/T0CKI
-Perro Guardin (WDT)
Es un contador interno de 8 bits que origina un Reset cuando se desborda. Su control de
tiempos es independiente del TMR0 y est basado en una simple red R-C que no requiere
ningn componente externo. Debido a que es independiente, el WDT correr an si el reloj
aplicado a los pines OSC1/CLKIN y OSC2/CLKOUT son parados, por ejemplo por la ejecucin
de la instruccin SLEEP. Si el microcontrolador est en modo SLEEP un Reset provocado por el
WDT causa que este vuelva a las condiciones normales de operacin.
Periodo WDT
El WDT tiene un periodo de 18 ms, sin el postdivisor, el periodo del WDT vara con temperatura,
VDD, entre otros factores. Las instrucciones CLRWDT y SEP limpian el WDT y el postdivisor (si
es que fue asignado al WDT) previniendo un desbordamiento en el contador y por ende un
Reset.
El bit TO en el registro STATUS ser puesto a 0 cuando un desbordamiento en el WDT ha
ocurrido.
Postdivisor Postscaler
Su nombre se debe a que los impulsos primero se aplican al Perro Guardin y luego pasan por
el Divisor para aumentar su duracin. Con el Postdivisor en 1:128 se alcanza un periodo de 2.3
segundos.
Son 13 lneas de E/S (5 del PORTA y 8 del PORTB). Cada lnea puede configurarse
independientemente como entrada o como salida con los SFR (Registros de Funcin Especial)
TRISA y TRISB, poniendo en su bit correspondiente 0 para salida de dato y 1 para entrada de
dato.
Despus de encenderse o de reiniciarse estas lneas son configuradas como entradas y se leen
como 0.
STATUS, RP0
PORTB
STATUS, RP0
0xCF
TRISB
;Banco 0
;Borra el registro PORTB
;Banco 1
;Carga CF h en W
;Mueve el contenido de W a TRISB
La bandera T0IF debe ser borrada en software por la rutina de servicio de interrupcin (ISR) para
impedir un ciclo infinito.
Registros asociados con esta interrupcin
DIR Nombre Bit 7 Bit 6
Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0B H INTCON *GIE EEIE
*T0IE INTE RBIE *T0IF INTF RBIF
81 H OPTION RBPU INTEDG *T0CS *T0SE *PSA *PS2 *PS1 *PS0
3. Interrupcin al cambio en PORTB <7:4>
Ocurre cuando hay un cambio de estado en los pines del 7 al 4 del PORTB.
Esto va a ser vlido nicamente para los pines que estn configurados como entradas. La
bandera RBIF debe ser borrada en software por la rutina de servicio de interrupcin (ISR) para
impedir un ciclo infinito.
Registro asociado con esta interrupcin
DIR Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0B H INTCON *GIE EEIE T0IE INTE *RBIE T0IF INTF *RBIF
4. Interrupcin al completar la escritura en la EEPROM de datos
Ocurre cuando se completa el ciclo de escritura en la EEPROM de datos.
La bandera EEIF debe ser borrada en software por la rutina de servicio de interrupcin (ISR)
para impedir un ciclo infinito.
Registro asociado con esta interrupcin
DIR Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3
Bit 2
Bit 1 Bit 0
0B H INTCON *GIE *EEIE T0IE INTE RBIE
T0IF
INTF RBIF
88 H EECON1 *EEIF WRERR WREN WR RD
MICROCONTROLADOR:
ATMEGA328
Microcontrolador arquitectura de 8
bits de la familia AVR
Hasta 23 pines I/O disponibles
Memoria de programa flash de 32 kB
SRAM de 2 kB
EEPROM de datos de 1 kB
Velocidad max. de la CPU 20 MIPS
Oscilador externo hasta 20 MHz
Voltaje de operacin 1.8 V a 5.5 V
ADC de 10 bits y 6 canales
2 timers/contadores/comparadores
de 8 bits
1 timer/contador/comparador/Captura
de 16 bits
6 canales PWM
USART Full duplex
SPI
TWI Two-wire Serial Interface (2Wire) (I2C compatible)
Comparador anlogo
Mltiples fuentes de interrupcin
valor
de
Soporta
100,000
ciclos
de
borrado/escritura en memoria EEPROM
Proteccin de cdigo programable
Cumple directivas RoHS
Encapsulado PDIP de 28 pines
VIN. La tensin de entrada a la placa Arduino cuando se trata de utilizar una fuente de
alimentacin externa (en contraposicin a 5 voltios de la conexin USB o de otra fuente de
alimentacin regulada). Usted puede suministrar tensin a travs de este pin, o, si el
suministro de tensin a travs de la toma de poder, acceder a ella a travs de este pin.
5V. Este pin como salida una 5V regulado por el regulador en el tablero. El tablero
puede ser alimentado ya sea desde el conector de alimentacin de CC (7 12), el conector
USB (5V) o el pasador de VIN del tablero (7-12V). El suministro de tensin a travs de los
5V o 3.3V pins no pasa por el regulador, y puede daar su tablero. No aconsejamos ella.
3V3. Un suministro de 3,3 voltios generados por el regulador a bordo. El drenaje actual
mximo es de 50 mA.
GND. patillas de tierra.
IOREF. Este pin de la placa Arduino proporciona la tensin de referencia con la que
opera el microcontrolador. Un protector configurado lee el voltaje del pin IOREF y
selecciona la fuente de alimentacin adecuada o habilita traductores de tensin en las
salidas para trabajar con los 5V o 3.3V.
Memoria
Entrada y salida
Cada uno de los 14 pines digitales en el Uno se puede utilizar como una entrada o
salida, utilizando pinMode () ,digitalWrite () , y () digitalRead funciones. Operan a 5
voltios. Cada pin puede proporcionar o recibir un mximo de 40 mA y tiene una
resistencia de pull-up (desconectado por defecto) de 20-50 kOhms. Adems, algunos
pernos han especializado funciones:
De serie: 0 (RX) y 1 (TX). Se utiliza para recibir (RX) y de transmisin (TX) TTL datos en
serie. Estos pines estn conectados a los pines correspondientes del ATmega8U2 USB-toTTL de chips de serie.
Interrupciones externas:. 2 y 3 Estos pines pueden ser configurados para activar una
interrupcin en un valor bajo, un flanco ascendente o descendente, o un cambio en el
valor. Ver el attachInterrupt () funcin para ms detalles.
PWM:. 3, 5, 6, 9, 10, y 11 proporcionan PWM de 8 bits con el () analogWrite funcin.
SPI:. 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Estos pines soportan comunicacin SPI
utilizando la biblioteca de SPI .
LED:. 13 Hay un built-in LED conectado al pin digital 13. Cuando el pin es de alto valor,
el LED est encendido, cuando el pasador es bajo, es apagado.
TWI: A4 o A5 pin SDA y SCL o pin. Apoyar la comunicacin TWI utilizando la librera
Wire .
El Uno tiene 6 entradas analgicas, etiquetados A0 a A5, cada uno de los cuales
proporcionan 10 bits de resolucin (es decir, 1.024 valores diferentes). Por defecto se
miden desde el suelo a 5 voltios, aunque es posible cambiar el extremo superior de su
rango utilizando el pin AREF y la analogReference () funcin. Adems, algunos pernos
han especializado funcionalidad:
AREF. Voltaje
de
referencia
para
las
entradas
analgicas. Se
utiliza
con analogReference ().
Restablecer. Lleve esta lnea BAJO para reiniciar el microcontrolador. Normalmente se
utiliza para agregar un botn de reinicio para escudos que bloquean el uno en el tablero.
Comunicacin
El Arduino Uno tiene una serie de instalaciones para la comunicacin con un ordenador,
otro Arduino, u otros microcontroladores. El ATmega328 ofrece UART TTL (5V) de
comunicacin en serie, que est disponible en los pines digitales 0 (RX) y 1
(TX). Un ATmega16U2 en los canales de mesa esta comunicacin serie a travs de
USB y aparece como un puerto com virtual para el software en el ordenador. El firmware
16U2 utiliza los controladores COM USB estndar, y no se necesita ningn controlador
externo. Sin embargo, en Windows, se requiere un archivo inf. . El software de Arduino
incluye un monitor de serie que permite que los datos simples de texto que se envan
desde y hacia la placa Arduino. Las RX y TX LED en el tablero parpadearn cuando se
estn transmitiendo datos a travs del chip de USB a serie y conexin USB al
ordenador (pero no para la comunicacin en serie en los pines 0 y 1).
Programacin
Los ATmega328 en la Arduino Uno viene precargado con un gestor de arranque que le
permite subir un cdigo nuevo a ella sin el uso de un programador de hardware
externo. Se comunica utilizando el original STK500 protocolo ( de referencia , archivos
de cabecera C ).
En las placas Rev1: conectar el jumper de soldadura en la parte posterior del tablero
(cerca del mapa de Italia) y luego reiniciar el 8U2.
En las placas Rev2 o posteriores: hay una resistencia que tirando de la lnea 8U2/16U2
HWB a tierra, por lo que es ms fcil de poner en modo DFU.
CONCLUSION
Hemos conocido dos controladores que manejaremos durante la unidad 4, dmonos
cuenta que hay caractersticas mencionadas en esta investigacin que convierten a los
microcontroladores en dispositivos todoterreno con un sin fin de aplicaciones: desde un
reloj despertador como el que todos tenemos en la mesilla de noche hasta el control de
traccin de un coche.
BIBLIOGRAFIA
http://mikroe.es/tag/atmega328p-pu/
https://daviddelaviuda.wordpress.com/tag/atmega328p-pu/
http://es.slideshare.net/pablogindel/microcontroladores-2-gpio-y-pwm