Está en la página 1de 319

MICROCONTROLADORES GAMA

ALTA Y ARQUITECTURAS
MIXTAS MIXTAS
Departamento de Electrnica Instrumentacin
Cont ol y Control.
Profesor:
Ing Vladimir Trujillo Arias Ing. Vladimir Trujillo Arias.
Contenido.
V
CAPITULO 1. Introduccin
Evolucin de los sistemas digitales
L
A
D
I
Evolucin de los sistemas digitales
Estado del Arte
Tendencias
M
I
R
Tendencias
Conceptos generales de procesadores
Qu es un microprocesador
Q es n mic ocont olado
T
R
U
J
Qu es un microcontrolador
Qu es un DSP
Qu es un Dispositivo Lgico Configurable

J
I
L
L
Terminologa utilizada en la arquitectura de
procesadores
O
A
R
I
A
S
Contenido.
V
CAPITULO 2. Conceptos Bsicos de
L
A
D
I
Microcontroladores Gama Alta
Familias de Microcontroladores de Altas
M
I
R
Familias de Microcontroladores de Altas
prestaciones
Arquitecturas de Microcontroladores de
T
R
U
J
Arquitecturas de Microcontroladores de
Gama Alta
J
I
L
L
O
A
R
I
A
S
Contenido.
V
CAPITULO 3. Microcontroladores PIC de Gama Alta.
Familia 18
L
A
D
I
Familia 18
Arquitectura
Capacidades de computo
Memoria
M
I
R
Memoria
Perifricos especiales
Mdulos HW
Set de inst cciones
T
R
U
J
Set de instrucciones
CAPITULO 4. Herramientas de programacin y
simulacin
J
I
L
L
Lenguaje Ensamblador
Compiladores C
Simuladores (MPLAB y PROTEUS)
O
A
R
S uado es ( y O US)
I
A
S
Contenido.
V
CAPITULO 5. Arquitecturas Mixtas
L
A
D
I
Introduccin
Sistemas Multiprocesadores
M
I
R
Sistemas Multiprocesadores
Arquitecturas Electrnicas Paralelas
P d Si t d
T
R
U
J
Procesadores en Sistemas de
Telecomunicaciones y Sistemas
I d t i l
J
I
L
L
Industriales
CAPITULO 6. Proyecto Final.
O
A
R y
I
A
S
Evolucin de los Sistemas Evolucin de los Sistemas
Digitales V g
La aparicin del transistor, condujo a su
L
A
D
I
uso como conmutador (lgica binaria).
Aparicin de tcnicas de integracin
M
I
R
Aparicin de tcnicas de integracin
electrnica (Microelectrnica), primeros
i it i t d Di it l
T
R
U
J
circuitos integrados Digitales.
Circuitos Integrados Monolticos
J
I
L
L
g
O
A
R
I
A
S
Evolucin de los Sistemas Evolucin de los Sistemas
Digitales V g
Clasificacin:
L
A
D
I
Segn la forma en que se realizan
fsicamente:
M
I
R
Segn el semiconductor: Silicio, Arseniuro de
Galio, Silicio Germanio
T
R
U
J
,
Segn el Transistor: Bipolares, CMOS, BICMOS
Segn el nmero de transistores: SSI, MSI, LSI,
J
I
L
L
g , , ,
VLSI, ULSI y GLSI.
O
A
R
I
A
S
Evolucin de los Sistemas Evolucin de los Sistemas
Digitales V g
Clasificacin:
L
A
D
I
Segn la forma en que se realiza el diseo
visto por el desarrollador:
M
I
R
p
Los Circuitos Integrados Digitales Monolticos
(CIDM) Normalizados
T
R
U
J
( )
Los Circuitos Integrados Digitales Monolticos
(CIDM) especificados por el usuario.
J
I
L
L
O
A
R
I
A
S
Evolucin de los Sistemas Evolucin de los Sistemas
Digitales V g
Segn el nmero de transistores:
L
A
D
I
Nivel de Integracin # de
Transistores
# de
compuertas
Ao

M
I
R
Pequea escala de integracin SSI
10 a 100 1 a 10
1960
Mediana escala de integracin MSI
100 a 1000 10 a 100
1965
T
R
U
J
Gran escala de integracin LSI
1000 a 10000 100 a 1000
1970
Muy Gran escala de integracin
10K a 100K 1K a 10K
1978
J
I
L
L
Muy Gran escala de integracin
VLSI
10K a 100K 1K a 10K
1978
Ultra Gran escala de integracin
ULSI
100K a 1M 10K a 100K
1985
O
A
R
ULSI
Giga Gran escala de integracin
GLSI
>1.000.000 >100.000
1995
I
A
S
Evolucin de los Sistemas Evolucin de los Sistemas
Digitales V g
Circuitos Integrados Digitales
M l i (CIDM) N li d
L
A
D
I
Monolticos (CIDM) Normalizados
CIDM normalizados de funcin fija. Los
M
I
R
cuales poseen una arquitectura predefinida
y su comportamiento no se puede alterar.
(C t d d t )
T
R
U
J
(Contadores, sumadores, etc.)
CIDM normalizados Programables.
bl d
J
I
L
L
Programables de Arquitectura Fija.
Programables de Arquitectura Configurable.
O
A
R
I
A
S
Evolucin de los Sistemas Evolucin de los Sistemas
Digitales V g
CIDM normalizados Programables de Arquitectura
Fija Caracterizados por poseer un Hardware en el
L
A
D
I
Fija. Caracterizados por poseer un Hardware, en el
que las conexiones entre los elementos que lo
componen, no pueden ser modificadas. Pueden
C bi i l i l
M
I
R
ser Combinacionales o secuenciales.
Los combinacionales se definen mediante una
tabla de verdad que rige su comportamiento
T
R
U
J
tabla de verdad que rige su comportamiento,
como el caso de las memorias de acceso aleatorio.
Los secuenciales poseen una CPU, que sigue un
J
I
L
L
p , q g
programa almacenado en memoria.(Aqu se Hallan
los Microprocesadores y Microcontroladores)
O
A
R
I
A
S
Evolucin de los Sistemas Evolucin de los Sistemas
Digitales V g
CIDM normalizados Programables de Arquitectura
Configurable. La caracterstica principal de estos
L
A
D
I
Configurable. La caracterstica principal de estos
dispositivos es la de modificar su funcin o
comportamiento, utilizando una parte de los
elementos que los componen y/o cambiando la
M
I
R
elementos que los componen y/o cambiando la
interconexin entre ellos.
Poseen un elevado contenido de elementos lgicos
en su interior
T
R
U
J
en su interior.
Utilizados especialmente en el diseo de sistemas
electrnicos digitales complejos, en aplicaciones
d l li ll l
J
I
L
L
de paralelismo o en aquellos casos en que los
dispositivos existentes no son los adecuados.
FPGAs, PLDs
O
A
R
FPGAs, PLDs
I
A
S
Evolucin de los Sistemas Evolucin de los Sistemas
Digitales V g
Los Circuitos Integrados Digitales Monolticos
f
L
A
D
I
(CIDM) especificados por el usuario. Estos
dispositivos se fabrican por peticin de un
d d d
M
I
R
usuario y en grandes cantidades,
especialmente para produccin en serie.
T
R
U
J
Requieren de potentes herramientas de
desarrollo electrnico con el fin de ser
J
I
L
L
diseados por el que los requiere.
O
A
R
I
A
S
Estado del Arte y Tendencias
V
Las empresas lderes a nivel mundial, en
L
A
D
I
sistemas embebidos de uso general son:
INTEL (Microprocesadores)
M
I
R
TEXAS (Microcontroladores y DSP)
ALTERA (PLDS FPGAS DSPS)
T
R
U
J
ALTERA (PLDS, FPGAS DSPS)
XILINX (PLDS, FPGAS DSPS)
C OC ( d )
J
I
L
L
MICROCHIP (Microprocesadores)
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Estado del Arte y Tendencias
V
INTEL.
L
A
D
I
A nivel de Procesadores producen
dispositivos para:
M
I
R
dispositivos para:
Computadores de escritorio
T
R
U
J
Intel Pentium 4 Extreme Edition
Intel Pentium4
J
I
L
L
Intel Pentium 4
Intel Celeron
O
A
R
I
A
S
Estado del Arte y Tendencias
V
Procesadores para computador de escritorio
L
A
D
I
Pentium 4 XE Pentium 4 Celeron
Hyper-Threading Hyper-Threading No Hyper-Threading
M
I
R
yp g yp g yp g
Dos niveles de Cach
hasta de 2MB
Un nivel de cach de
hasta 2 MB
Un nivel de cach de
hasta 256 K
H 3 7 Gh d l j H 3 6 Gh d l j H 2 8 Gh d l j
T
R
U
J
Hasta 3.7 Ghz de reloj Hasta 3.6 Ghz de reloj Hasta 2.8 Ghz de reloj
Bus Frontal de 1066 MHz
Bus Frontal de 800 MHz Bus Frontal de 400 MHz
J
I
L
L
Tecnologa de procesador
de 90 nm
Tecnologa de procesador
de 90 nm
Tecnologa de procesador
de 130 nm
O
A
R
I
A
S
Estado del Arte y Tendencias
V
Computadores Porttiles
L
A
D
I
Intel Pentium M
Mobile Intel Pentium 4
M
I
R
Intel Celeron M
Mobile Intel Celeron
T
R
U
J
Servidores
Intel Itanium 2
J
I
L
L
Intel Xeon Processor
Intel Pentium4 processor
O
A
R
Intel Pentium 4 processor
I
A
S
Estado del Arte y Tendencias
V
Procesadores para computadores porttiles.
Procesador Intel Intel Intel Celeron M Mobile Intel
L
A
D
I
Procesador Intel
Pentium M
Intel
Pentium 4
mobile
Intel Celeron M
Processor
Mobile Intel
Celeron
Processor
l d l d l d l d
M
I
R
Tecnologa de
procesador de 90 nm
Tecnologa de
procesador
de 90 nm
Tecnologa de
procesador de 90
nm
Tecnologa de
procesador de 130
nm
U i l d C h h t U i l d U i l d C h U i l d C h
T
R
U
J
Un nivel de Cach hasta
de 2MB
Un nivel de
Cach hasta
de 1MB
Un nivel de Cach
hasta de 1MB
Un nivel de Cach
hasta de 256kB
Velocidad Velocidad hasta 1 5 Velocidad hasta 2 5
J
I
L
L
Velocidad de 2.13 GHz
con velocidad para ultra
bajo consumo de 1.2
Gh
Velocidad
hasta 3.46
GHz
Velocidad hasta 1.5
GHz velocidad para
ultra bajo consumo
de 1 Ghz
Velocidad hasta 2.5
GHz velocidad para
ultra bajo consumo
de 800 Mhz
O
A
R
Ghz
Bus Frontal de 533 MHz Bus Frontal
de 533 MHz
Bus Frontal de 400
MHz
Bus Frontal de 400
MHz
I
A
S
Estado del Arte y Tendencias
V
Procesadores para servidores.
Intel Pentium4 con Intel Itanium2 Permite Intel Xeon Permite
L
A
D
I
Intel Pentium 4 con
tecnologa Hyper-
Threading
Intel Itanium 2 Permite
trabajo multiprocesador
o procesador dual
Intel Xeon Permite
trabajo multiprocesador
o procesador dual
M
I
R
Tecnologa de procesador
de 90 nm
Tecnologa de procesador
de 90 nm
Tecnologa de procesador
de 90 nm
T
R
U
J
Un nivel de Cach hasta
de 2MB
Tres niveles de Cach 32k,
256k y hasta de 9MB en el
nivel 3
Tres niveles de Cach ??k,
1M y hasta de 8MB en el
nivel 3
J
I
L
L
Velocidad hasta 3.46 GHz Velocidad hasta 1.6 GHz Velocidad hasta 3.66 GHz
Bus Frontal de 800 MHz Bus Frontal de 400 MHz
con 128 bits de ancho y
Bus Frontal de 677 MHz
con 128 bits de ancho y
O
A
R
con 128 bits de ancho y
BW de I/O de 6.4 Ghz
con 128 bits de ancho y
BW de I/O de 14 Ghz
I
A
S
Estado del Arte y Tendencias
V
Procesadores para equipos de red.
L
A
D
I
Intel IXP4XX que son procesadores utilizados para
dispositivos de comunicaciones, como
en tado es gate a s Cont ol ind st ial
M
I
R
enrutadores, gateways, Control industrial y
aplicaciones de automatizacin, telemetra e
instrumentacin lectores RDIF
T
R
U
J
instrumentacin, lectores RDIF.
Procesadores para equipos Inalmbricas
Intel PCA Diseado funcionar en equipos de
J
I
L
L
Intel PCA. Diseado funcionar en equipos de
comunicaciones mviles, como PDA, celulares y
equipos similares.
O
A
R
equipos similares.
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Estado del Arte y Tendencias
V
Microcontroladores Texas Instruments
Familia MSP430
L
A
D
I
Familia MSP430
Poseen un manejo de potencia muy bajo, con
una CPU de tipo RISC de 16 bits
M
I
R
una CPU de tipo RISC de 16 bits
Poseen una serie de perifricos analgicos y
digitales, para mediciones precisas..
T
R
U
J
Incluyen ADCs, DACs, amplificadores
operacionales, comparadores, drivers LCD y
sistemas supervisorios de nivel de voltaje
J
I
L
L
sistemas supervisorios de nivel de voltaje.
Ultra-bajo consumo de potencia.
O
A
R
I
A
S
Estado del Arte y Tendencias
V
Microcontroladores Texas Instruments Familia
TMS470
L
A
D
I
TMS470
Poseen una CPU tipo RISC de 32-bits RISC
Manejan velocidades de reloj por encima de los 60 MHz
M
I
R
Manejan velocidades de reloj por encima de los 60 MHz
La memoria de programa puede alcanzar hasta 1MB
Posee alta integracin con una gran variedad de
T
R
U
J
osee ata teg ac co u a g a a edad de
perifricos.
Ampliamente utilizado en aplicaciones de:
J
I
L
L
- Industria automotriz
- Sistemas Industriales
O
A
R
- Aplicaciones generales de sistemas embebidos
I
A
S
Estado del Arte y Tendencias
V
Procesadores Digitales de seales
DSP d Alt di i t TMS320C6000
L
A
D
I
DSP de Alto rendimiento TMS320C6000
Con velocidades por encima de 1 GHz.
Los TMS320C64x y los TMS320C62x poseen ALUs que trabajan con
M
I
R
y p q j
punto fijo
Los TMS320C67x manejan punto flotante
Utilizados en aplicaciones donde se manejen seales de gran ancho
T
R
U
J
Utilizados en aplicaciones donde se manejen seales de gran ancho
de banda.
ptimos para aplicaciones de digitalizacin de audio e imgenes
Rendimiento del orden de 1200 a 8000 MIPS para punto fijo y de
J
I
L
L
Rendimiento del orden de 1200 a 8000 MIPS para punto fijo y de
600 a 1350 MFLOPS (Millones de operaciones de coma flotante por
segundo) para punto flotante
O
A
R
I
A
S
Estado del Arte y Tendencias
V
DSP TMS320C5000 Alta eficiencia
L
A
D
I
de energa.
Estos DSPs son optimizados para
M
I
R
Estos DSPs son optimizados para
elaborar equipos porttiles de uso
l C d t
T
R
U
J
personal. Como reproductores
personales de audio, receptores GPS,
J
I
L
L
equipos mdicos porttiles, telefona
celular, y cmaras digitales.
O
A
R
, y g
I
A
S
Estado del Arte y Tendencias
V
DSP TMS320C2000 Optimizado
L
A
D
I
para Control.
Optimizados para trabajo en tcnicas
M
I
R
Optimizados para trabajo en tcnicas
de control digital.
T
R
U
JJ
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Estado del Arte y Tendencias
V
PLD (Programable Logic Device)
L
A
D
I
MAX II (CPLD)
Bajo consumo de energa, alta densidad
M
I
R
Bajo consumo de energa, alta densidad
Utiliza memoria FLASH
Soporta voltajes de 1 8-V 2 5-V &3 3-V
T
R
U
J Soporta voltajes de 1.8 V, 2.5 V & 3.3 V
MAX
B j d id d d d
J
I
L
L
Bajo consumo y densidad moderada.
Soporta voltajes de 2.5-V, 3.3-V o 5.0-V
O
A
R
I
A
S
Estado del Arte y Tendencias
V
FPGA (Field Programable Gate Array)
L
A
D
I
CICLONE II
Soporta Nios II embedded processor
Multiplicadores digitales 18x18 para DSPs Embebidos
M
I
R
Multiplicadores digitales 18x18 para DSPs Embebidos
Amplio portafolio de IP.
CICLONE
T
R
U
J
CICLONE
Soporta Nios II embedded processor
Amplio portafolio de IP.
J
I
L
L
STRATIX II (Alta Densidad)
Soporta Nios II embedded processor
O
A
R
Interfaces de I/O de alta velocidad
Amplio portafolio de IP.
I
A
S
Estado del Arte y Tendencias
V
STRATIX (Alta Densidad)
Soporta Nios II embedded processor
L
A
D
I
Soporta Nios II embedded processor
Bloques para DSP
Interfaces de I/Ode alta velocidad
M
I
R
Interfaces de I/O de alta velocidad
Amplio portafolio de IP.
T
R
U
J
STRATIX GX (Alta Densidad)
Todas las caractersticas de los otros STRATIX
J
I
L
L
Transceptores de 3.125-Gbps
Amplio portafolio de IP
O
A
R
I
A
S
Estado del Arte y Tendencias
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Estado del Arte y Tendencias
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Estado del Arte y Tendencias
V
SPARTAN 3 E (FPGA)
L
A
D
I
Posee alrededor de 1.2 millones de
compuertas
M
I
R
Tecnologa de 90nm
VIRTEX 4 (FPGA)
T
R
U
J
( )
COOL RUNNER (CPLD)
Soporta voltajes de 1 5 a 3 3V en sus
J
I
L
L
Soporta voltajes de 1.5 a 3.3V en sus
sistemas I/O
O
A
R
I
A
S
Estado del Arte y Tendencias
V
IP CORE
L
A
D
I
Herramientas de desarrollo para diseo
de controladores Y procesadores de
M
I
R
de controladores. Y procesadores de
diversos tipos que corren sobre sus
l t f h d
T
R
U
J
plataformas hardware.
Processor Central.
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Estado del Arte y Tendencias
V
Microcontroladores de Gama Media de
L
A
D
I
la familia 16FXXX
Microcontroladores de Gama Alta de la
M
I
R
Microcontroladores de Gama Alta de la
familia 18FXXXX
T
R
U
J
Procesadores digitales de Seales
30FXXX
J
I
L
L
O
A
R
I
A
S
Conceptos Generales de Conceptos Generales de
procesadores V
EL MICROPROCESADOR.
L
A
D
I
Definicin: Es el dispositivo encargado de realizar clculos
aritmticos y lgicos y que temporiza y controla las operaciones
d l d l t d i t
M
I
R
de los dems elementos de un sistema.
Partes:
U id d d t l
T
R
U
J
- Unidad de control.
- Unidad Aritmtico-lgica (ALU).
- Registros: - Contador de programa
J
I
L
L
Registros: Contador de programa.
- Registros generales.
- Registro de estado.
O
A
R
- Stack.
I
A
S
Conceptos Generales de Conceptos Generales de
procesadores V
Reloj de funcionamiento:
- Ciclo de reloj: seal de reloj a la entrada del procesador.
L
A
D
I
Cco de eoj se a de eoj a a e t ada de p ocesado
- Ciclo de mquina: periodo de ejecucin de una operacin
completa del procesador.
Ci l d i t i i d i
M
I
R
- Ciclo de instruccin: periodo que se requiere para
ejecutar una determinada instruccin.
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Conceptos Generales de Conceptos Generales de
procesadores V
MICROCONTROLADOR
L
A
D
I
Un microcontrolador es un circuito
integrado de alta escala de integracin
M
I
R
integrado de alta escala de integracin
que incorpora la mayor parte de los
l t f
T
R
U
J
elementos que conforman un
controlador.
J
I
L
L
O
A
R
I
A
S
Conceptos Generales de Conceptos Generales de
procesadores V
Caractersticas:
L
A
D
I
Este circuito integrado programable contiene todos los
componentes de un computador .
No alcanzan el nivel de procesamiento de por ejemplo, un 8086,
M
I
R
p p j p , ,
aunque poseen la ventaja de poder trabajar sin memoria
externa .
El microcontrolador es un computador dedicado. En su memoria
l id d ti d b li i
T
R
U
J
slo reside un programa destinado a gobernar una aplicacin
determinada, una vez programado y configurado el
microcontrolador solamente sirve para gobernar dicha tarea.
Es un computador completo aunque de limitadas prestaciones
J
I
L
L
Es un computador completo, aunque de limitadas prestaciones,
que est contenido en el chip de un circuito integrado y se
destina a gobernar una sola tarea.
O
A
R
I
A
S
Conceptos Generales de Conceptos Generales de
procesadores V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
DSP Definicin
V
Estrictamente hablando, el trmino DSP se
L
A
D
I
aplica a cualquier chip que trabaje con
seales representadas de forma digital.
M
I
R
Un Procesador Digital de Seales es un tipo
de microprocesador o microcontrolador,
T
R
U
J
increblemente rpido y poderoso para
operaciones repetitivas en las que se realicen
J
I
L
L
un gran nmero de sumas y multiplicaciones.
O
A
R
I
A
S
Que hace a un DSP un DSP?
V
Capacidad de realizar operaciones de
L
A
D
I
multiplicacin y acumulacin (MACs) en
slo un ciclo de reloj.
M
I
R
slo un ciclo de reloj.
Manejo de aplicaciones en tiempo real
T
R
U
J
Arquitectura que soporte un flujo de
datos a alta velocidad hacia y desde la
J
I
L
L
y
unidad de clculo y memoria.
O
A
R
I
A
S
Que hace a un DSP un DSP?
V
Unidades DMA (Direct Memory Acess)
L
A
D
I
Generadores de direcciones (DAGs)
Mecanismo efectivo de saltos para
M
I
R
Mecanismo efectivo de saltos para
ejecucin de loops
T
R
U
J
Alta velocidad de procesamiento de
operaciones aritmticas
J
I
L
L
operaciones aritmticas
O
A
R
I
A
S
Diferencias entre Diferencias entre
Microcontrolador y DSP V
Estructura de memoria que poseen.
L
A
D
I
Cantidad de unidades de ejecucin que
poseen, (operaciones en paralelo).
M
I
R
El DSP tiene caractersticas diseadas para
soportar tareas de altas prestaciones,
T
R
U
J
soportar tareas de altas prestaciones,
repetitivas y numricamente intensas.
Microprocesadores de propsito general y
J
I
L
L
Microprocesadores de propsito general y
microcontroladores no estn especializados
para ninguna aplicacin en especial
O
A
R
para ninguna aplicacin en especial.
I
A
S
Requerimientos HWy Requerimientos HW y
Operaciones Comunes V
Los DSPs tienen en comn ciertas
L
A
D
I
caractersticas como:
Capacidad aritmtica especializada de alta
M
I
R
Capacidad aritmtica especializada de alta
velocidad
Buena capacidad de transferencia de datos
T
R
U
J
Buena capacidad de transferencia de datos
hacia el mundo real.
A lti l it t d
J
I
L
L
Acceso a mltiples arquitecturas de
memoria.
O
A
R
I
A
S
Requerimientos HWy Requerimientos HW y
Operaciones Comunes V
Las operaciones tpicas en los DSPs
L
A
D
I
son:
Sumas
M
I
R
Sumas
Multiplicacin
R t d
T
R
U
J
Retardos
Manejo de matrices y arreglos de datos.
J
I
L
L
O
A
R
I
A
S
Requerimientos HWy Requerimientos HW y
Operaciones Comunes V
La suma y Multiplicacin. Requiere
L
A
D
I
el uso de:
Dos operandos
M
I
R
Dos operandos
Alto rendimiento.
Al i t d l lt d
T
R
U
J
Almacenamiento del resultado.
J
I
L
L
O
A
R
I
A
S
Requerimientos HWy Requerimientos HW y
Operaciones Comunes V
Manejo de Arreglos
B d d l d l i d
L
A
D
I
Bsqueda de valores de lugares consecutivos de
memoria
Copia de datos de memoria a memoria
M
I
R
Copia de datos de memoria a memoria
Multiplicacin y suma en paralelo.
Acceso mltiple a memoria
T
R
U
J
Acceso mltiple a memoria
Registros temporales
Eficiente generacin de direcciones.
J
I
L
L
g
Caractersticas especiales como retardos o
direccionamiento cclico
O
A
R
I
A
S
Arquitectura Von Newman V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Arquitectura Hardvard
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
A i H d E did S Arquitectura Harvard Extendida o Super
Harvard ARChitecture (SHARC). V
Esta arquitectura incluye una memoria
d h (R ) l l ili d
L
A
D
I
de cach (Reserva), la cual es utilizada
para almacenar instrucciones y datos
l d l
M
I
R
que sern reutilizadas por la CPU,
liberando as los dos buses de la

T
R
U
J
arquitectura Hardvard y permitindoles
ser utilizados en la bsqueda y
J
I
L
L
almacenamiento de datos, mientras se
ejecutan las instrucciones en cach
O
A
R
j
I
A
S
A i H d E did S Arquitectura Harvard Extendida o Super
Harvard ARChitecture (SHARC). V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
A i H d E did S Arquitectura Harvard Extendida o Super
Harvard ARChitecture (SHARC). V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
A i H d E did S Arquitectura Harvard Extendida o Super
Harvard ARChitecture (SHARC). V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Arquitectura Von Newman Arquitectura Von Newman
Modificada. V
La arquitectura Von Neuman modificada, permite
mltiple acceso a memoria por instruccin
L
A
D
I
mltiple acceso a memoria por instruccin,
valindose de un truco simple que consiste en hacer
el reloj de acceso a memoria ms rpido que el de
i i
M
I
R
instrucciones.
Por ejemplo el DSP32C de Lucent con reloj de 80Mhz,
tiene un ciclo de instruccin compuesto por cuatro
T
R
U
J
tiene un ciclo de instruccin compuesto por cuatro
estados de mquina. Mientras que el acceso a
memoria de este DSP es posible realizarlo cada
d d i i d ibl li
J
I
L
L
estado de mquina siendo posible entonces realizar
cuatro accesos a memoria por cada ejecucin de
instruccin
O
A
R
instruccin
I
A
S
CPU V
CISC Aprox. 80 instrucciones
L
A
D
I
Arquitectura Von Neuman
RISC Aprox 30 instrucciones
M
I
R
RISC Aprox. 30 instrucciones.
Arquitectura Hardvard

T
R
U
J
SISC Diseos especficos (Controladores
Empotrados o embebidos)
J
I
L
L
p )
O
A
R
I
A
S
Segmentacin
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Ortogonalidad
V
La ortogonalidad de las instrucciones
L
A
D
I
hace posible ejecutar cualquier
operacin, sobre cualquier registro,
M
I
R
operacin, sobre cualquier registro,
utilizando cualquier modo de
direccionamiento
T
R
U
J
direccionamiento.
J
I
L
L
O
A
R
I
A
S
Memoria V
RAM. Los datos que manejan los programas varan
continuamente, y esto exige que la memoria utilizada
L
A
D
I
continuamente, y esto exige que la memoria utilizada
para ello debe ser de lectura y escritura.
ROM. En este tipo de memoria el programa se graba
en el chip durante el proceso de fabricacin mediante
M
I
R
en el chip durante el proceso de fabricacin mediante
el uso de mscaras. Se aconseja este tipo de
memoria cuando se precisan series muy grandes,
con el fin de disminuir costos de fabricacin
T
R
U
J
con el fin de disminuir costos de fabricacin.
OTP. Este modelo de memoria solo puede grabarse
una vez por parte del usuario, utilizando el mismo
di i l i EPROM
J
I
L
L
procedimiento que con la memoria EPROM.
Posteriormente no se puede borrar. Su bajo precio y
la sencillez de la grabacin aconsejan este tipo de
O
A
R
g j p
memoria para prototipos finales y series de
produccin cortas.
I
A
S
Memoria V
EPROM. La grabacin de esta memoria se realiza mediante
un dispositivo fsico gobernado desde un computador
L
A
D
I
personal. En la superficie de la cpsula del microcontrolador
existe una ventana de cristal por la que se puede someter el
chip a rayos ultravioletas para producir su borrado y
emplearla nuevamente
M
I
R
emplearla nuevamente.
EEPROM. La grabacin es similar a las memorias OTP y
EPROM, pero el borrado se hace elctricamente. Puede
puede ser programada y borrada muchas veces
T
R
U
J puede ser programada y borrada muchas veces
FLASH. Se trata de una memoria no voltil, de bajo
consumo, que se puede escribir y borrar en circuito al igual
que las EEPROM pero suelen disponer de mayor capacidad
J
I
L
L
que las EEPROM, pero suelen disponer de mayor capacidad
que ests ultimas. El borrado slo es posible con bloques
completos y no se puede realizar sobre posiciones
concretas. Son muy recomendables en aplicaciones en las
O
A
R y p
que sea necesario modificar el programa a lo largo de la vida
del producto
I
A
S
La Gama Alta de los PIC
(18F452) (18F452)
Caractersticas Generales
V
Cdigo compatible con la familia 16 y
L
A
D
I
17 de los PIC
Reloj que puede trabajar por encima de
M
I
R
Reloj que puede trabajar por encima de
10 MIPs.
d l d h
T
R
U
J
Uso de cristal de 40 Mhz.
Cristales de 4 Mhz a 10 Mhz utilizando un
J
I
L
L
multiplicador de frecuencia PLL.
Instrucciones de 16 bits con bus de
O
A
R
Instrucciones de 16 bits con bus de
datos de 8 bits.
I
A
S
Caractersticas Generales
V
Prioridad de interrupciones
L
A
D
I
Multiplicador hardware de 8 x 8 que
funciona en un solo ciclo de mquina
M
I
R
funciona en un solo ciclo de mquina.
Tres pines para manejo de
T
R
U
J
interrupciones externas.
Manejo de niveles de corriente de 25
J
I
L
L
Manejo de niveles de corriente de 25
mA. en modo fuente y sumidero
O
A
R
I
A
S
Caractersticas Generales
V
Timer 1 de 16 bits, Timer 2 de 8 bits.
L
A
D
I
Timer 3, (no lo posee la gama media),
de 16 bits (65535 conteos)
M
I
R
de 16 bits (65535 conteos).
Dos mdulos de

T
R
U
J
Captura/Comparacin/PWM.
Mdulo de comunicacin serial con
J
I
L
L
Mdulo de comunicacin serial con
soporte para RS-485 y RS-232
O
A
R
I
A
S
Caractersticas Generales
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Caractersticas Generales
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Oscilador.
LP Cristal de baja potencia.
XT Cristal resonador de cuarzo
Se poseen 3 bits
(FOSC2 FOSC1
HS Cristal resonador de alta velocidad
(por encima de 8 Mhz.)
(FOSC2, FOSC1 y
FOSC0) para la
configuracin del
HS + PLL Cristal de alta velocidad con PLL
habilitado.
configuracin del
tipo de oscilador a
utilizar.
RC Oscilador RC externo.
RCIO Resistor externo y capacitor con
pin I/O habilitado.
EC Reloj externo.
ECIO Reloj externo con pin I/O
habilitado
Oscilador en modo HS, XT, LP
V
L
A
D
I
M
I
R
T
R
U
J
Una capacitancia elevada,
J
I
L
L
p
incrementa la estabilidad del
oscilador, pero tambin incrementa
los tiempos de inicio del oscilador
O
A
R
los tiempos de inicio del oscilador
interno.
I
A
S
Oscilador en modo RC
Con el Oscilador en modo, ,
RC, FREC/4 esta disponible
en el pin OSC2.
Si C/ i Si FREC/4 no se necesita, se
recomienda utilizar el modo
RCIO para ahorrar RCIO, para ahorrar
corriente.
El modo RCIO, es igual al , g
modo RC, con la diferencia
de que el pin OSC2 se
t i d comporta como un pin de
I/O normal (RA6).
Oscilador Externo.
V
Cuando se utiliza el oscilador externo, se puede utilizar el
L
A
D
I
, p
modo EC, el cual se tiene FREC/4 por el pin OSC2.
Tambin se puede tomar el modo ECIO, para ahorro de
i l l OSC2 d i d i
M
I
R
corriente, el cual OSC2 queda como un pin de propsito
general (RA6)
T
R
U
JJ
I
L
L
O
A
R
I
A
S
PLL
PLL
V
El PLL se utiliza solo cuando el oscilador se ha
f
L
A
D
I
configurado en modo HS.
Si la programacin del cristal se ha realizado
M
I
R
en otro modo, el PLL no se habilita y la
fuente de reloj directa proviene de OSC1.
T
R
U
J
Existe un timer que bloquea el PLL, hasta que
no se halla logrado por parte de l el
J
I
L
L
no se halla logrado por parte de l el
enganche al cudruplo de la frecuencia de
entrada
O
A
R
entrada.
I
A
S
Cambio de Fuente de Reloj.
V
Los PIC 18Fxx2 permiten cambiar el uso del
L
A
D
I
oscilador de alta velocidad, por uno de baja
velocidad (como el oscilador de 32Khz de
) l h l
M
I
R
timer1) esa seleccin se hace en el BIT
OSCSEN del registro de configuracin.
T
R
U
J
El BIT OSCSEN se selecciona antes de
programar el PIC, para que se pueda producir
J
I
L
L
el cambio de oscilador.
O
A
R
I
A
S
Registro OSCON
BIT 7 a 1 No utilizados
BIT 0 SCS S Cl k S i h bi BIT 0 SCS: System Clock Switch bit
Cuando el BIT OSCSEN este en 0 y T1OSCEN este en 1:
1 =Utilice el oscilador del timer 1 1 = Utilice el oscilador del timer 1.
0 = Utilice el oscilador primario.
Si el oscilador del Timer1 no esta habilitado, cualquier escritura , q
en el BIT SCS es ignorada y se utiliza el oscilador principal
Diagramas de Tiempo de Diagramas de Tiempo de
Transiciones
El contador de programa, se incrementa cuando ocurre
la octava transicin de estabilizacin del Timer 1
Diagramas de Tiempo de Diagramas de Tiempo de
Transiciones
Para la transicin entre el oscilador de timer1 y OSC1, existe
un tiempo de estabilizacin de 1024 ciclos de osc1, antes de
comenzar a contar los 8 periodos de sincronizacin de reloj comenzar a contar los 8 periodos de sincronizacin de reloj,
despus de lo cual el reloj del micro funciona con OSC1.
Diagramas de Tiempo de Diagramas de Tiempo de
Transiciones
Diagramas de Tiempo de Diagramas de Tiempo de
Transiciones V
Cuando la transicin de oscilador es
l i 1 OSC1 i
L
A
D
I
entre el timer1 y OSC1, existe un
tiempo de estabilizacin de 1024 ciclos
d l
M
I
R
de osc1 y luego un tiempo necesario
para que el PLL enganche la frecuencia
T
R
U
J
de reloj de OSC1, antes de comenzar a
contar los 8 periodos de sincronizacin
J
I
L
L
de reloj, despus de lo cual el reloj del
micro comienza a funcionar con OSC1.
O
A
R
I
A
S
Retardos Considerados al iniciar Retardos Considerados al iniciar
el microcontrolador. V
Al iniciar el procesador se definen 3 retardos.
L
A
D
I
El primero es dado por el PWRT el cual provee un
retardo promedio de 72 ms. para la estabilizacin
de la ci c ite a inte na
M
I
R
de la circuitera interna.
El segundo temporizador es el OST (Oscillator
Start up Timer) que espera a que el oscilador
T
R
U
J
Start-up Timer) que espera a que el oscilador
utilizado se estabilice.
La secuencia de retardo es PWR ms OST
J
I
L
L
La secuencia de retardo es PWR ms OST.
Al utilizar el PLL, aparece un tercer retardo (TPLL )
utilizado para esperar que el PLL enganche la
O
A
R
utilizado para esperar que el PLL enganche la
frecuencia de entrada (2 ms tpico).
retardo=PWRT+OST+TPLL
I
A
S
Fuentes de Reset
V
La familia PIC18FXXX Posee los siguientes
L
A
D
I
tipos de reset:
Power-on Reset (POR)
M
I
R
MCLR Reset Durante el funcionamiento normal
MCLR Reset Durante el modo SLEEP
T
R
U
J
WDT Reset durante operacin normal
Programmable Brown-out Reset (BOR)
J
I
L
L
Instruccin de RESET.
Reset debido al llenado del Stack.
O
A
R
Reset debido al vaciado del Stack.
I
A
S
Organizacin de la memoria
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Organizacin de la memoria
V
El PIC18FXX2 posee un contador de
L
A
D
I
programa de 21 bits que permite ubicar
una capacidad de memoria de 2Mega
M
I
R
una capacidad de memoria de 2Mega
Palabras
L i i d i ll d
T
R
U
J
Las posiciones de memoria mas all de
la memoria fsica construida se leen
J
I
L
L
como 0.
O
A
R
I
A
S
Organizacin de la memoria
V
El PIC18F452 posee 32 K Bytes de
L
A
D
I
memoria FLASH de programa,
agrupados de a 2 Bytes, con el fin de
M
I
R
agrupados de a 2 Bytes, con el fin de
contener instrucciones complejas.
P l t t t di iti d
T
R
U
J
Por lo tanto este dispositivo puede
almacenar 16mil instrucciones simples.
J
I
L
L
El vector de RESET se halla en la
direccin 0000h y el de interrupciones
O
A
R
direccin 0000h y el de interrupciones
en las posiciones 0008h y 0018h.
I
A
S
Organizacin de la memoria
V
Hay un stack de 31 niveles, lo
L
A
D
I
que permite tener 31 posibles
sub rutinas anidadas.
E isten dos ecto es de
M
I
R
Existen dos vectores de
interrupciones, para manejo de
interrupciones de alta y baja
T
R
U
J
prioridad.
32K de memoria en pasos de 2
en dos para un total de 16Kde
J
I
L
L
en dos, para un total de 16K de
palabras. De 7FFF en adelante
no existe memoria
i l t d f i t
O
A
R
implementada fsicamente y se
lee como 0.
I
A
S
Organizacin de la memoria (Pila) V g
El Stack de los PIC18FXX2 posee 31 palabras
L
A
D
I
de 21 bits, direccionadas por un apuntador de
Stack de 5 bits.
M
I
R
Cada vez que se produce una interrupcin o
un llamada a subrutina, el apuntador del Pila
T
R
U
J
se incrementa en 1 y el valor del contador de
programa es almacenado en una de las
J
I
L
L
palabras de 21 bits.
O
A
R
I
A
S
Organizacin de la memoria (Pila) V g
Cuando ocurre una instruccin de tipo return,
f
L
A
D
I
retfie o retlw el dato almacenado en la
posicin actual que indica el apuntador de
d l d d
M
I
R
programa, es cargado al contador de
programa y el apuntador de la Pila se
d
T
R
U
J
disminuye en 1.
El apuntador de programa se puede leer y
J
I
L
L
escribir y la direccin ubicada en el inicio de
la Pila puede ser leda y escrita a travs de
O
A
R
los registros SFR.
I
A
S
Registro STKPTR
V
L
A
D
I
M
I
R
BIT 7 STKOVF: Bandera de Pila llena
1 = Pila llena o rebosada.
0 =Pila sin llenar
T
R
U
J 0 = Pila sin llenar
BIT 6 STKUNF: Bandera de pila vaca.
1 = Ocurri un vaciado de la pila.
J
I
L
L
p
0 = No ha ocurrido un vaciado de la pila.
BIT 5 Sin implementar: Ledo como '0'
BIT 4 0 SP4 SP0 Bit d di i d l
O
A
R
BIT 4-0 SP4:SP0: Bits de direccin de la
pila
I
A
S
Organizacin de la memoria (Pila) V g
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Organizacin de la memoria (Pila) V g
La cabecera de la Pila puede ser leda y
escrita a travs de los registros TOSU TOSH
L
A
D
I
escrita, a travs de los registros TOSU, TOSH
y TOSL, que mantienen el contenido
apuntado por el registro STKPTR.
M
I
R
Despus de un call, rcall o una interrupcin,
este valor puede ser modificado por SW y
cuando se genere el retorno de la subrutina
T
R
U
J
cuando se genere el retorno de la subrutina,
se puede dirigir su regreso a un lugar
diferente definido por el usuario. Solo se
J
I
L
L
diferente definido por el usuario. Solo se
debe tener en cuenta deshabilitar las
interrupciones globales.
O
A
R
I
A
S
Organizacin de la memoria (Pila) V g
El registro STKPTR es el apuntador
L
A
D
I
g p
de la Pila.
El BIT STKFUL i di l ll d d
M
I
R
El BIT STKFUL indica el llenado de
la pila y el BIT STKUNF el vaciado
T
R
U
J
p y
de la pila.
C d d S l
J
I
L
L
Cuando se produce un RESET, el
valor del apuntador de la pila es 0.
O
A
R
valor del apuntador de la pila es 0.
I
A
S
Organizacin de la memoria (Pila) V g
Despus de que el contador de
programa es almacenado en la pila 31
L
A
D
I
programa es almacenado en la pila 31
veces, sin extraer ningn valor, el BIT
STKFUL se coloca en 1 El BIT STKFUL
M
I
R
STKFUL se coloca en 1. El BIT STKFUL
es borrado por SW o por un POR.
(BIT STVREN en 1) Cuando se
T
R
U
J
(BIT STVREN en 1) Cuando se
almacena una direccin en la posicin
31 la pila se desborda, se reinicia el
J
I
L
L
31 la pila se desborda, se reinicia el
microprocesador, el BIT STKFUL se
coloca en 1 y se mantiene as, tambin
O
A
R
y ,
el apuntador de la pila se coloca en 0.
I
A
S
Organizacin de la memoria (Pila) V g
(BIT STVREN en 0) cuando se
d b d l il l BIT STKFUL
L
A
D
I
desborda la pila el BIT STKFUL se
pone en 1, cualquier dato adicional
ibi l il
M
I
R
a escribirse en la pila, no
sobrescribe la posicin 31, si no
it l i t STKPTR
T
R
U
J
que se omite, y el registro STKPTR,
se mantiene apuntando a la
3
J
I
L
L
posicin 31.
O
A
R
I
A
S
Organizacin de la memoria (Pila) V g
Cuando la pila se vaca, la prxima
i t i i t
L
A
D
I
instruccin que requiera extraer un
dato de ella, retorna el valor de 0 al
t d d l l
M
I
R
contador de programa y coloca el
BIT STKUNF en 1 hasta que ocurra
POR b ft
T
R
U
J
un POR o un se borre por software.
J
I
L
L
O
A
R
I
A
S
Instrucciones PUSH y POP
V
La instruccin PUSH, es utilizada para
L
A
D
I
colocar en la cabecera de la pila el valor
actual del contador de programa,
M
I
R
actual del contador de programa,
produciendo un incremento en STKPTR.
S d i l i di i d
T
R
U
J
Se puede incluir una direccin de
retorno cualquiera en la pila utilizando
J
I
L
L
PUSH y cargando ese valor en TOSU,
TOSH y TOSL
O
A
R
y
I
A
S
Instrucciones PUSH y POP
V
La instruccin POP, se utiliza para
L
A
D
I
descartar el valor ubicado en la
cabecera de la pila y reemplazarlo por
M
I
R
cabecera de la pila y reemplazarlo por
el valor ubicado previo a este, sin
producir ningn traumatismo en el
T
R
U
J
producir ningn traumatismo en el
sistema.
J
I
L
L
Con la instruccin POP se produce un
decremento en el apuntador de la pila.
O
A
R
p p
I
A
S
Contador de Programa
V
El contador de programa (PC) esta
f d l i PCL PCH
L
A
D
I
conformado por los registros PCL, PCH
y PCU.
M
I
R
El registro PCL puede ser ledo y escrito
directamente.
T
R
U
J
Los registros PCH y PCU pueden ser
ledos y escritos solo a travs de los
J
I
L
L
ledos y escritos solo a travs de los
registros PCLATH y PCLATU
O
A
R
I
A
S
Temporizacin / Instrucciones
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Temporizacin / Instrucciones
V
La entrada de reloj es dividida internamente
en cuatro seales desfasadas 90
0.
Q1 Q2 Q3
L
A
D
I
en cuatro seales desfasadas 90 Q1, Q2, Q3
y Q4.
El contador de programa es incrementado
M
I
R
El contador de programa es incrementado
cada flanco subida de Q1.
La bsqueda de una instruccin es realizada
d l d l
T
R
U
J
de Q1 a Q4, pero es colocada en el registro
de instruccin cada Q4
Las instrucciones son decodificadas y
J
I
L
L
Las instrucciones son decodificadas y
ejecutadas en el periodo de tiempo de Q1 a
Q4.
O
A
R
Q4.
I
A
S
Instrucciones en la Memoria de Instrucciones en la Memoria de
programa V g
Las instrucciones para el PIC18F452 son
L
A
D
I
de 16 bits, y su byte menos significativo
es siempre almacenado en una
M
I
R
es siempre almacenado en una
direccin par.
El BIT i ifi ti d l t d
T
R
U
J
El BIT menos significativo del contador
de programa es siempre 0, por lo que el
J
I
L
L
incremento de las direcciones se hace
de dos en dos.
O
A
R
I
A
S
Instrucciones en la Memoria de Instrucciones en la Memoria de
programa V g
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Instrucciones de 32 bits
V
Los microcontroladores PIC18FXX2, posee 4
L
A
D
I
instrucciones de dos palabras de longitud (32
bits), ellas son MOVFF, CALL, GOTO y LFSR.
M
I
R
La segunda palabra de esas instrucciones
posee los 4 BITS mas significativos en 1 y se
T
R
U
J
comporta como un tipo especial de NOP.
Los otros 12 BITS de la segunda palabra
J
I
L
L
Los otros 12 BITS de la segunda palabra
contienen los datos a ser utilizados por la
instruccin.
O
A
R
instruccin.
I
A
S
Instrucciones de 32 bits
V
Cuando la primer palabra es ejecutada,
l d id l d
L
A
D
I
los datos contenidos en la segunda son
accedidos.
M
I
R
Pero si el PC accede primero la segunda
palabra, esta se ejecuta como un NOP.
T
R
U
J
p , j
Esto es til cuando previamente a una
instruccin de dos palabras existe una
J
I
L
L
instruccin de dos palabras, existe una
instruccin de salto condicional.
O
A
R
I
A
S
Instrucciones de 32 bits
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Memoria de Datos
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Memoria de Datos
V
La memoria de datos esta dividida en
L
A
D
I
16 bancos, cada uno de 256 Bytes.
Los bancos 6 al 14 no estn
M
I
R
Los bancos 6 al 14 no estn
implementados y se leen como 0.
T
R
U
J
La zona de FSR se halla localizada en el
banco 15 despus de la posicin F80h
J
I
L
L
p p
(de la mitad hacia el final)
O
A
R
I
A
S
Memoria de Datos (Direccionamiento) V
Se pueden identificar 3 formas de
L
A
D
I
acceder la memoria de programa de los
PIC18FXX2.
M
I
R
PIC18FXX2.
Direccionamiento indirecto: requiere el uso
de los registros FSRn (12 BITS) y el
T
R
U
J
de los registros FSRn (12 BITS) y el
correspondiente registro indirecto INDFn).
Direccionamiento directo: requiere el uso
J
I
L
L
Direccionamiento directo: requiere el uso
del registro BSR, el cual en sus BITS 0 a 3
contiene la direccin del banco escogido
O
A
R
contiene la direccin del banco escogido. I
A
S
Memoria de Datos (Direccionamiento) V
Otra forma de direccionamiento directo es:
Para asegurar que los registros (SFR Y GPR) sean
L
A
D
I
Para asegurar que los registros (SFR Y GPR) sean
accedidos en un solo ciclo de instruccin,
independiente del Banco apuntado por el registro
BSR Existe el ACCESS BANK el cual esta formado
M
I
R
BSR, Existe el ACCESS BANK, el cual esta formado
por una parte del banco 0 y un segmento del
banco 15
T
R
U
J
Un BIT en la instruccin especifica si la operacin
a utilizar se hace a travs del ACCESS BANK o con
el registro BSR, a ese BIT se le denomina a
J
I
L
L
g ,
(access bit) por defecto vale 0 y apunta al ACCESS
BANK
O
A
R
I
A
S
Memoria de Datos (Registros FSR)
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Memoria de Datos (Registros FSR)
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
El registro BSR
V
El registro BSR<3:0> contiene los 4 bits mas
significativos de los 12-BITS de direcciones de la
L
A
D
I
significativos de los 12-BITS de direcciones de la
memoria RAM y se utilizan para seleccionar el banco
de trabajo.
M
I
R
Los BITS BSR<7:4> se leen como 0s.
La instruccin MOVLB se utiliza para ayudar en la
seleccin del banco
T
R
U
J
seleccin del banco.
La instruccin MOVFF ignora el registro BSR, ya que
los 12-BITS de direccin se hayan incluidos en la
J
I
L
L
los 12 BITS de direccin se hayan incluidos en la
instruccin.
Cada banco posee un tamao de 256 bytes.
O
A
R
I
A
S
Direccionamiento Indirecto.
V
El direccionamiento indirecto se realiza
utilizando dos registros el FSRn y el INDFn
L
A
D
I
utilizando dos registros, el FSRn y el INDFn.
El registro FSR es utilizado como un puntero
a una localidad de memoria que va a ser
M
I
R
a una localidad de memoria que va a ser
escrita o leda.
El direccionamiento indirecto es posible
T
R
U
J
El direccionamiento indirecto es posible
utilizando el registro INDF, ya que cualquier
instruccin que lo utilice accede
J
I
L
L
instruccin que lo utilice, accede
directamente a la posicin de memoria
apuntada por FSR.
O
A
R
apuntada por FSR.
I
A
S
Direccionamiento Indirecto.
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Multiplicador Hardware
V
El multiplicador HW que se posee es de 8
L
A
D
I
bits.
El resultado se almacena en dos registros
M
I
R
PRODH y PRODL
La multiplicacin de 8x8 se realiza en 1 ciclo
T
R
U
J
La multiplicacin de 8x8 se realiza en 1 ciclo
de instruccin.
El multiplicador HWpermite a este dispositivo
J
I
L
L
El multiplicador HW permite a este dispositivo
realizar operaciones en las que se usa DSPs
O
A
R
I
A
S
Puertos
V
Los puertos de los PIC de la familia 18 en
general constan de 3 registros para su
L
A
D
I
general constan de 3 registros para su
operacin.
El registro TRIS el cual controla la direccin
M
I
R
El registro TRIS, el cual controla la direccin
de funcionamiento del puerto.
El registro PORT que lee los niveles de
T
R
U
J
El registro PORT, que lee los niveles de
entrada en el puerto.
El registro LAT el cual es el LATCH de salida
J
I
L
L
El registro LAT, el cual es el LATCH de salida
del puerto.
O
A
R
I
A
S
Puertos
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Puerto A
V
Este puerto se comporta como I/O digital y como
entrada analgica
L
A
D
I
entrada analgica
El registro TRISA, configura este puerto como
entrada o salida.
Si i tili l l i
M
I
R
Si un pin se va a utilizar como canal analgico,
previamente se debe haber configurado como
entrada en TRISA
T
R
U
J
Existe el registro LATA, que permite el acceso I/O al
latch del puerto.
El pin RA4 es de colector abierto
J
I
L
L
El pin RA4 es de colector abierto.
Para configurarlo sus pines como analgicos o
digitales, se recurre al registro ADCON1
O
A
R
I
A
S
Puerto A (18f452)
V
L
A
D
I
PIN Tipo Entrada Funcin
RA0/AN0 TTL Pin I/O entrada analgica 0.
M
I
R
RA1/AN1 TTL Pin I/O entrada analgica 1
RA2/AN2 TTL Pin I/O entrada analgica 2
RA3/AN3 TTL Pin I/O entrada analgica 3
T
R
U
J
/ / g
RA4/T0CKI Colector Abierto Pin I/O entrada del timer 0, con entrada
tipo Schmit Trigger
RA5/AN4 TTL Pin I/O entrada analgica 4
J
I
L
L
/ / g
RA6/OSC2/CLKO TTL Entrada del oscilador 2, o salida de frecuencia
de reloj.
O
A
R
I
A
S
Puerto A (18f4520)
RA0/AN0 TTL/ANA I/O digital o entrada analgica, LATA<0>no afectado por entrada digital
RA1/AN1 TTL/ANA I/O digital o entrada analgica, LATA<1>no afectado por entrada digital
RA2/AN2/VREF-/CVREF TTL/ANA I/O digital o entrada analgica, LATA<2>no afectado por entrada digital
RA3/AN3/VREF+ TTL/ANA I/O digital o entrada analgica, LATA<3>no afectado por entrada digital
RA4/T0CKI/C1OUT Colector Abierto I/O digital, o entrada de Timer 0
RA5/AN4/SS/ HLVDIN/C2OUT TTL/ANA
I/O digital o entrada analgica, LATA<5>no afectado por entrada digital,
seleccin de entrada modo esclavo para SSP (MSSP module).
OSC2/CLKO/RA6 TTL/ANA
I/O digital o entrada analgica, LATA<6>no afectado por entrada digital,
retroalimentacin de la salida del oscilador principal (XT, HS and LP modes).
OSC1/CLKI/RA7 TTL/ANA
I/O digital o entrada analgica, LATA<7>no afectado por entrada digital,
entrada del oscilador principal y entrada del reloj principal.
Puerto A
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Registros asociados con PORTA g
Registros asociados con PORTA Registros asociados con PORTA
(18F4520)
Puerto B
V
L
A
D
I
PIN Tipo Entrada Funcin
RB0/INT0 TTL, Schmit Trigger
l I t i
Pin I/O entrada de interrupcin
M
I
R
para la Interrupcion
Externa 0.
RB1/INT1 TTL, Schmit Trigger
para la Interrupcion
Pin I/O entrada de interrupcin
Externa 1.
T
R
U
J
RB2/INT2 TTL, Schmit Trigger
para la Interrupcion
Pin I/O entrada de interrupcin
Externa 2.
RB3/CCP2 TTL, Schmit Trigger
d CCP2
Pin I/O pin del mdulo CCP2, cuando
l bit CCP2MX t 1
J
I
L
L
para modo CCP2 el bit CCP2MX esta en 1
RB4 TTL Pin I/O, y entrada de interrupcin por
cambio de estado en PORTB.
RB5/PGM TTL Schmit Trigger Pin I/O y entrada de interrupcin por
O
A
R
RB5/PGM TTL, Schmit Trigger
para prog. Serial
Pin I/O, y entrada de interrupcin por
cambio de estado en PORTB.
RB6/PGC TTL, Schmit Trigger
para prog Serial
Pin I/O, y entrada de interrupcin por
cambio de estado en PORTB.
I
A
S
para prog. Serial
ca bo de estado e O
RB7/PGD TTL, Schmit Trigger
para prog. serial
Pin I/O, y entrada de interrupcin por
cambio de estado en PORTB.
Puerto B
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Puerto B
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Puerto C
V
L
A
D
I
PIN Tipo Entrada Funcin
RC0/T1OSO/T1CKI TTL Schmit Trigger Pin I/O salida del oscilador de timer1 o
M
I
R
RC0/T1OSO/T1CKI TTL, Schmit Trigger Pin I/O salida del oscilador de timer1 o
entrada de reloj
RC1/T1OSI/CCP2 TTL, Schmit Trigger Pin I/O Salida del mdulo CCP2
RC2/CCP1 TTL Schmit Trigger Pin I/O pin del mdulo CCP1
T
R
U
J
RC2/CCP1 TTL, Schmit Trigger Pin I/O pin del mdulo CCP1
RC3/SCK/SCL TTL, Schmit Trigger Pin I/O utilizado para el reloj serial de los
mdulos SPI e I2C
RC4/SDI/SDA TTL Schmit Trigger Pin I/O o entrada de datos para SPI o I/O
J
I
L
L
RC4/SDI/SDA TTL, Schmit Trigger Pin I/O o entrada de datos para SPI o I/O
para I2C
RC5/SDO TTL, Schmit Trigger Pin I/O, o salida del puerto serial sncrono
RC6/TX/CK TTL Schmit Trigger Pin I/O o TX del mdulo USART
O
A
R
RC6/TX/CK TTL, Schmit Trigger Pin I/O o TX del mdulo USART
RC7/RX/DT TTL, Schmit Trigger Pin I/O o RX del mdulo USART
I
A
S
Puerto C
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Puerto D
V
L
A
D
I
PIN Tipo Entrada Funcin
RD0/PSP0 TTL Schmit Trigger Pin I/O puerto paralelo esclavo bit 0
M
I
R
RD0/PSP0 TTL, Schmit Trigger Pin I/O puerto paralelo esclavo bit 0
RD1/PSP1 TTL, Schmit Trigger Pin I/O puerto paralelo esclavo bit 1
RD2/PSP2 TTL, Schmit Trigger Pin I/O puerto paralelo esclavo bit 2
T
R
U
J
RD3/PSP3 TTL, Schmit Trigger Pin I/O puerto paralelo esclavo bit 3
RD4/PSP4 TTL, Schmit Trigger Pin I/O puerto paralelo esclavo bit 4
J
I
L
L
/ , gg / p p
RD5/PSP5 TTL, Schmit Trigger Pin I/O, puerto paralelo esclavo bit 5
RD6/PSP6 TTL Schmit Trigger Pin I/O puerto paralelo esclavo bit 6
O
A
R
RD6/PSP6 TTL, Schmit Trigger Pin I/O puerto paralelo esclavo bit 6
RD7/PSP7 TTL, Schmit Trigger Pin I/O puerto paralelo esclavo bit 7
I
A
S
Todos los pines son schimit trigger cuando se trabaja como puerto paralelo esclavo
Puerto D
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Puerto E
V
L
A
D
I
PIN Tipo Entrada Funcin
RE0/RD/AN5 TTL Schmit Trigger Pin I/O Pin de control del puerto paralelo
M
I
R
RE0/RD/AN5 TTL, Schmit Trigger
Para control de puerto
paralelo esclavo
Pin I/O Pin de control del puerto paralelo
esclavo y entrada A/D.
BIT RD
1 = No lectura.
T
R
U
J
0 = Lee PORTD si CS es 1.
RE1/WR/AN6 TTL, Schmit Trigger
Para control de puerto
l l l
Pin I/O Pin de control del puerto paralelo
esclavo y entrada A/D.
BIT WR
J
I
L
L
paralelo esclavo BIT WR
1 = No escritura
0 = Escribe en PORTD si CS es 1
RE2/CS/AN7 TTL Schmit Trigger Pin I/O Pin de control del puerto paralelo
O
A
R
RE2/CS/AN7 TTL, Schmit Trigger
Para control de puerto
paralelo esclavo
Pin I/O Pin de control del puerto paralelo
esclavo y entrada A/D.
BIT CS
1 = Dispositivo no seleccionado
I
A
S
0 = Dispositivo no seleccionado
Puerto E
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Registro TRISE
V
L
A
D
I
Bit 7 IBF: Bit de Buffer de entrada lleno
M
I
R
Bit 7 IBF: Bit de Buffer de entrada lleno
1 = Una palabra ha sido recibida y espera ser
leda.
T
R
U
J
eda
0 = Ninguna palabra recibida.
Bit 6 OBF: Bit de Buffer de salida lleno
J
I
L
L
Bit 6 OBF: Bit de Buffer de salida lleno.
1 = El buffer mantiene una palabra escrita
previamente.
O
A
R
previamente.
0 = El buffer de salida ha sido ledo.
I
A
S
Registro TRISE
V
Bit 5 IBOV: Rebose del Buffer de entrada.
1 H id it d l b i
L
A
D
I
1 = Ha ocurrido una escritura, cuando una palabra previa no
ha sido leda. (debe ser clareado por SW)
0 = No ha ocurrido un desborde
M
I
R
Bit 4 PSPMODE: Seleccin del puerto paralelo
esclavo
T
R
U
J
1 = Modo puerto paralelo esclavo.
0 = Modo general de I/O
J
I
L
L
bit 3 Sin Implementar
bit 2,1 y 0 TRISE: Bits de control de direccin.
d
O
A
R
1 = Entrada
0 = Salida
I
A
S
El registro de estado
V
El registro de estado se utiliza para
L
A
D
I
mostrar el estado aritmtico de la ALU.
Se recomienda utilizar solamente las
M
I
R
Se recomienda utilizar solamente las
instrucciones BCF, BSF, SWAPF, MOVFF
MOVWF bi l t id d l
T
R
U
J
y MOVWF para cambiar el contenido del
registro de estado, ya que estas
J
I
L
L
instrucciones no alteran las banderas Z,
C, DC, OV, o N
O
A
R
, , ,
I
A
S
El registro de estado
V
L
A
D
I
M
I
R
BIT 7-5 Sin implementar.
BIT 4 N: BIT Negativo utilizado para indicar
T
R
U
J
BIT 4 N: BIT Negativo, utilizado para indicar
cuando un resultado de una operacin
aritmtica fue negativo (Complemento a 2)
J
I
L
L
aritmtica fue negativo (Complemento a 2).
1 = Resultado negativo.
0 Resultado positivo
O
A
R
0 = Resultado positivo.
I
A
S
El registro de estado
V
BIT OV: BIT de desbordamiento. Este bit es

L
A
D
I
utilizado para aritmtica con signo
(complemento a 2).
M
I
R
1 = Desborde ocurri
0 = No ocurri un desborde
T
R
U
J
BIT 2 Z: Bit de 0
1 = El resultado de una operacin aritmtica o
J
I
L
L
p
lgica es 0.
0 = El resultado de una operacin aritmtica o
O
A
R
lgica no es 0.
I
A
S
El registro de estado
V
BIT 1 DC: carry del cuarto al quinto bit.
L
A
D
I
Funciona con ADDWF, ADDLW, SUBLW, y SUBWF
1 = Hay carry del 4 al 5 bit.
M
I
R
0 = No hay carry del 4 al 5 bit
BIT 0 C: Bit de carry.
T
R
U
J
y
Funciona con ADDWF, ADDLW, SUBLW, y SUBWF
1 = Ocurri carry
J
I
L
L
y
0 = No Ocurri carry
O
A
R
I
A
S
Registro RCON (Reset Control)
V
L
A
D
I
M
I
R
BIT 7 IPEN: Bit que habilita la prioridad en las
interrupciones.
T
R
U
J
1 = Prioridad en interrupciones habilitada.
0 = Prioridad en interrupciones deshabilitada.
BIT 6 5 Sin implementar
J
I
L
L
BIT 6-5 Sin implementar
BIT 4 RI: Bandera de la instruccin RESET
1 =La instruccin RESET no ha sido ejecutada
O
A
R
1 = La instruccin RESET no ha sido ejecutada.
0 = La instruccin RESET fue ejecutada.
I
A
S
Registro RCON (Reset Control)
V
BIT 3 TO: Bandera del Perro Guardin.
L
A
D
I
1 = Despus de un power-up, CLRWDT, o
SLEEP
M
I
R
0 = A WDT reset ocurri
BIT 2 PD: Bandera de deteccin de
T
R
U
J
BIT 2 PD: Bandera de deteccin de
apagado del procesador.
J
I
L
L
1 = Despus de un power-up o CLRWDT.
0 =Debido a la ejecucin de la instruccin
O
A
R
0 Debido a la ejecucin de la instruccin
SLEEP.
I
A
S
Registro RCON (Reset Control)
V
BIT 1 POR: Bit de estado de Power-on Reset
L
A
D
I
1 = Un Power-on Reset no ha ocurrido
0 = Un Power-on Reset ocurri
M
I
R
Debe ser colocado en 1 despus de que un Power-
on Reset ha ocurrido)
T
R
U
J
BIT 0 BOR: Bit de estado de un Brown-out
Reset (Bajn de voltaje)
J
I
L
L
1 = Un Brown-out Reset no ha ocurrido.
0 = Un Brown-out Reset ocurri.
O
A
R
Debe ser colocado en 1 despus de que un
Brown-out Reset ha ocurrido)
I
A
S
Interrupciones
V
Los microcontroladores de gama alta
i l d i i
L
A
D
I
poseen niveles de interrupcin.
El vector de alto nivel de interrupciones
M
I
R
p
se halla en la posicin 0x08h y el de
baja prioridad en la posicin 0x18h.
T
R
U
J
j p p
Una interrupcin de alta prioridad,
interrumpe la ejecucin de una de baja
J
I
L
L
interrumpe la ejecucin de una de baja
prioridad.
O
A
R
I
A
S
Interrupciones
V
Los registros asociados con el manejo de
interrupciones son los siguientes:
L
A
D
I
interrupciones son los siguientes:
RCON
INTCON, INTCON2, INTCON3, que en general,
M
I
R
INTCON, INTCON2, INTCON3, que en general,
manejan las interrupciones externas y de TIMER 0.
PIR1, PIR2, que manejan las banderas que activan

T
R
U
J
las interrupciones debidas a perifricos.
PIE1, PIE2, que son los registros habilitadores de las
interrupciones de perifricos
J
I
L
L
interrupciones de perifricos
IPR1, IPR2, que activan los niveles de prioridad de
las interrupciones.
O
A
R
p
I
A
S
Interrupciones
V
Cada fuente de interrupcin, a excepcin de INT0,
posee 3 bits para su control
L
A
D
I
posee 3 bits para su control.
Una bandera que indica que la interrupcin ocurri.
Bit habilitador de la interrupcin
M
I
R
Bit que permite asignar el nivel de prioridad de la
interrupcin.
Nota: Se recomienda no utilizar la instruccin
T
R
U
J
Nota: Se recomienda no utilizar la instruccin
MOVFF, para modificar alguno de los registros de
control, mientras las interrupciones estn habilitadas,
t d di d
J
I
L
L
ya que esto puede generar disparos de
interrupciones aleatorios.
O
A
R
I
A
S
Interrupciones. Registro RCON
V
L
A
D
I
M
I
R
Bit IPEN: Bit habilitador de niveles de
prioridad de las interrupciones
T
R
U
J prioridad de las interrupciones.
1 = Habilita los niveles de prioridad de las
interrupciones
J
I
L
L
interrupciones.
0 = Deshabilita los niveles de prioridad de
l i i
O
A
R
las interrupciones.
I
A
S
Interrupciones. Registro RCON
V
bit 6-5 Sin implementar
L
A
D
I
bit 4 RI: bit indicador de que se gener una
instruccin de RESET.
M
I
R
1 = La instruccin RESET no se ha ejecutado.
0 = La instruccin RESET se ejecut
T
R
U
J
j
bit 3 TO: bit de rebose del Watchdog
1 =Despus del encendido instruccin CLRWDT
J
I
L
L
1 Despus del encendido, instruccin CLRWDT
o instruccin SLEEP.
0 = Ha ocurrido un rebose del WDT
O
A
R
0 a ocu do u ebose de
I
A
S
Interrupciones. Registro RCON
V
bit 2 PD: Bit de deteccin de ausencia de
L
A
D
I
voltaje.
1 = Despus del encendido o por el uso de la

M
I
R
instruccin CLRWDT.
0 = Por la ejecucin de la instruccin SLEEP.
T
R
U
J
bit 1 POR: Bit de estado del Power-on Reset.
1 = Un Power-on Reset no ha ocurrido.
J
I
L
L
0 = Un Power-on Reset ocurri. Debe ser puesta
en 1 despus de que un Power-on Reset occurre.
O
A
R
I
A
S
Interrupciones. Registro RCON
V
bit 0 BOR: bit de estado de Brown-out
L
A
D
I
Reset. (Disminucin del nivel de voltaje)
1 =No ha ocurrido un Brown-out Reset.
M
I
R
1 No ha ocurrido un Brown out Reset.
0 = Ha ocurrido un Brown-out Reset.
D b t 1 d d
T
R
U
J
Debe ser puesta en 1 despus de que un
Brown-out Reset ocurre.
J
I
L
L
O
A
R
I
A
S
I t i R i t INTCON Interrupciones. Registro INTCON
(18F452, 18F4520)
V
L
A
D
I
M
I
R
Bit 7 GIE/ GIEH: Habilitador global de
interrupciones.
T
R
U
J
interrupciones.
Si IPEN = 0: (Bit 7 RCON)
1 =Habilita todas las interrupciones sin mscara
J
I
L
L
1 Habilita todas las interrupciones sin mscara
0 = Deshabilita todas las interrupciones
Si IPEN = 1: (Bit 7 RCON)
O
A
R
( )
1 = Habilita todas las interrupciones de alta prioridad.
0 = Deshabilita todas las interrupciones.
I
A
S
Interrupciones Registro INTCON Interrupciones. Registro INTCON
(18F452, 18F4520) V
Bit 6 PEIE/ GIEL: Habilitador de Interrupciones de
perifricos
L
A
D
I
perifricos
Si IPEN = 0: (Bit 7 RCON)
1 =Habilita todas las interrupciones de perifricos
M
I
R
1 = Habilita todas las interrupciones de perifricos
sin mscara.
0 = Deshabilita todas las interrupciones de
T
R
U
J
perifricos
Si IPEN = 1: (Bit 7 RCON)

J
I
L
L
1 = Habilita todas las interrupciones de perifricos
de baja prioridad.
0 =Deshabilita todas las interrupciones de
O
A
R
0 = Deshabilita todas las interrupciones de
perifricos de baja prioridad
I
A
S
Interrupciones Registro INTCON Interrupciones. Registro INTCON
(18F452, 18F4520) V
Bit 5 TMR0IE: Interrupcin de rebose de TMR0
1 =Habilita la interrupcin por rebose de TMR0
L
A
D
I
1 = Habilita la interrupcin por rebose de TMR0.
0 = Deshabilita la interrupcin por rebose de TMR0.
Bit 4 INT0IE: Interrupcin Externa INT0
M
I
R
p
1 = Habilita la INT0
0 = Deshabilita la INT0
T
R
U
J
Bit 3 RBIE: Interrupcin por cambio de estado en PORTB
1 = Habilita la interrupcin por cambio de estado en
PORTB
J
I
L
L
PORTB
0 = Deshabilita la interrupcin por cambio de estado
en PORTB
O
A
R
I
A
S
Interrupciones Registro INTCON Interrupciones. Registro INTCON
(18F452, 18F4520) V
Bit 2 TMR0IF: Bandera de Interrupcin por rebose
de TMR0
L
A
D
I
de TMR0
1 = El TMR0 se ha rebosado (se debe borrar por SW)
0 = TMR0 no se ha rebosado.
Bit 1 INT0IF: Bandera de INT0
M
I
R
Bit 1 INT0IF: Bandera de INT0
1 = Ha ocurrido INT0 (debe ser borrada por SW)
0 = INT0 no ha ocurrido.
T
R
U
J
Bit 0 RBIF: Bandera de interrupcin por cambio de
estado en PORTB.
1 =Ha ocurrido un cambio de estado en uno de los pines
J
I
L
L
1 Ha ocurrido un cambio de estado en uno de los pines
RB4 a RB7
0 = No ha ocurrido un cambio de estado en RB4 a RB7.
O
A
R
I
A
S
Interrupciones Reg INTCON2 Interrupciones. Reg. INTCON2
(18F452, 18F4520) V
L
A
D
I
M
I
R
Bit 7 RBPU: Bit habilitador de las
resistencias Pull-up.
1 T d l i t i ll
T
R
U
J
1 = Todas las resistencias pull-ups
deshabilitadas.
0 = Las resistencias pull-ups estan habilitadas.
J
I
L
L
p p
Bit 6 INTEDG0: Seleccin del flanco de la
Interrupcin Externa 0
O
A
R
1 = Flanco de subida.
0 = Flanco de bajada.
I
A
S
Interrupciones Reg INTCON2 Interrupciones. Reg. INTCON2
(18F452, 18F4520) V
Bit 5 INTEDG1: Seleccin del flanco de
L
A
D
I
la Interrupcin Externa 1
1 =Flanco de subida.
M
I
R
1 Flanco de subida.
0 = Flanco de bajada.
Bit 4 INTEDG2 S l i d l fl d
T
R
U
J
Bit 4 INTEDG2: Seleccin del flanco de
la Interrupcin Externa 2
J
I
L
L
1 = Flanco de subida
0 =Flanco de bajada
O
A
R
0 = Flanco de bajada.
Bit 3 Sin Implementar
I
A
S
Interrupciones Reg INTCON2 Interrupciones. Reg. INTCON2
(18F452, 18F4520) V
Bit 2 TMR0IP: Bit de prioridad de la
interrupcin por rebose de TMR0
L
A
D
I
interrupcin por rebose de TMR0.
1 = Alta prioridad
0 Baja prioridad
M
I
R
0 = Baja prioridad
Bit 1 Sin implementar
Bit 0 RBIP Bit d i id d d l i t i
T
R
U
J
Bit 0 RBIP: Bit de prioridad de la interrupcin
de cambios de estado en PORTB
1 Alta prioridad
J
I
L
L
1 = Alta prioridad.
0 = Baja prioridad.
O
A
R
I
A
S
Interrupciones Reg INTCON3 Interrupciones. Reg. INTCON3
(18F452, 18F4520) V
L
A
D
I
M
I
R
Bit 7 INT2IP: Bit de prioridad de INT2
1 =Alta prioridad
T
R
U
J
1 = Alta prioridad.
0 = Baja prioridad.
Bit 6 INT1IP: Bit de prioridad de INT1
J
I
L
L
Bit 6 INT1IP: Bit de prioridad de INT1
1 = Alta prioridad.
0 B j i id d
O
A
R
0 = Baja prioridad.
I
A
S
Interrupciones Reg INTCON3 Interrupciones. Reg. INTCON3
(18F452, 18F4520) V
Bit 5 Sin implementar
L
A
D
I
Bit 4 INT2IE: Bit habilitador de INT2
1 =Habilita INT2
M
I
R
1 = Habilita INT2.
0 = Deshabilita INT2.
T
R
U
J
Bit 3 INT1IE: Bit habilitador de INT1
1 =Habilita INT1.
J
I
L
L
1 Habilita INT1.
0 = Deshabilita INT1.
Bit 2 Si i l t
O
A
R
Bit 2 Sin implementar
I
A
S
Interrupciones Reg INTCON3 Interrupciones. Reg. INTCON3
(18F452, 18F4520) V
Bit 1 INT2IF: Bandera que indica que ocurri
L
A
D
I
INT2
1 = Ha ocurrido INT2 (debe ser borrada por SW)
M
I
R
0 = No ha ocurrido INT2
Bit 0 INT1IF: Bandera que indica que ocurri
T
R
U
J
q q
INT1
1 = Ha ocurrido INT1 (debe ser borrada por SW)
J
I
L
L
( p )
0 = No ha ocurrido INT1
O
A
R
I
A
S
Int Perifricos Reg PIR1 Int. Perifricos. Reg. PIR1
(18F452, 18F4520) V
L
A
D
I
Bit 7 PSPIF(1): Bandera de interrupcin de
M
I
R
Bit 7 PSPIF(1): Bandera de interrupcin de
lectura/escritura del puerto paralelo esclavo.
1 = Una operacin de lectura o escritura ha
d (d b b d )
T
R
U
J
ocurrido.(debe ser borrada por SW)
0 = No ha ocurrido lectura o escritura.
Bit 6 ADIF: Bandera de interrupcin por fin de
J
I
L
L
Bit 6 ADIF: Bandera de interrupcin por fin de
conversin del A/D
1 = Conversin A/D completa (Debe ser borrada por
SW)
O
A
R
SW)
0 = La conversin A/D esta incompleta.
I
A
S
Int Perifricos Reg PIR1 Int. Perifricos. Reg. PIR1
(18F452, 18F4520) V
Bit 5 RCIF: Bandera de interrupcin por
recepcin en el USART
L
A
D
I
recepcin en el USART.
1 = El buffer de recepcin, RCREG, esta lleno
(Debe ser borrada por SW)
M
I
R
(Debe ser borrada por SW)
0 = El buffer de RX del USART esta vaco.
Bit 4 TXIF: Bandera de interrupcin por TX
T
R
U
J Bit 4 TXIF: Bandera de interrupcin por TX
del USART
1 =El buffer de TXdel USART (TXREG), esta
J
I
L
L
1 El buffer de TX del USART (TXREG), esta
vaco (Se borra cuando se escribe en TXREG)
0 = El buffer de TX del USART esta lleno.
O
A
R
I
A
S
Int Perifricos Reg PIR1 Int. Perifricos. Reg. PIR1
(18F452, 18F4520) V
Bit 3 SSPIF: Bandera de interrupcin
L
A
D
I
del puerto serial sncrono
1 =Una TX/RX se ha completado (debe
M
I
R
1 Una TX/RX se ha completado (debe
ser borrada por SW)
0 =Esperando una TX o RX
T
R
U
J
0 = Esperando una TX o RX.
J
I
L
L
O
A
R
I
A
S
Int Perifricos Reg PIR1 Int. Perifricos. Reg. PIR1
(18F452, 18F4520) V
Bit 2 CCP1IF: Bandera de interrupcin del
mdulo CCP1
L
A
D
I
mdulo CCP1.
Modo Captura:
1 = Se ha producida la captura del valor de TMR1 (debe
b d SW)
M
I
R
ser borrada por SW)
0 = No ha ocurrido una captura de TMR1.
Modo Compara:
T
R
U
J
p
1 = Se ha dado una comparacin con TMR1 (debe ser
borrada por SW)
0 = No ha ocurrido una comparacin con TMR1.
J
I
L
L
p
Modo PWM:
No utilizado en este modo.
O
A
R
I
A
S
Int Perifricos Reg PIR1 Int. Perifricos. Reg. PIR1
(18F452, 18F4520) V
Bit 1 TMR2IF: Se ha producido una igualdad
entre TMR2 y PR2
L
A
D
I
entre TMR2 y PR2.
1 = Ha ocurrido una igualdad entre TMR2 y PR2
(debe ser borrada por SW)
M
I
R
(debe ser borrada por SW)
0 = No hay igualdad entre TMR2 y PR2
Bit 0 TMR1IF: Bandera de interrupcin por
T
R
U
J Bit 0 TMR1IF: Bandera de interrupcin por
rebose de TMR1.
1 =El TMR1 se ha rebosado (debe ser borrada
J
I
L
L
1 El TMR1 se ha rebosado (debe ser borrada
por SW)
0 = El TMR1 no se ha rebosado
O
A
R
I
A
S
Int Perifricos Reg PIR2 Int. Perifricos. Reg. PIR2
(18F452) V
L
A
D
I
Bit 7 5 Sin implementar
M
I
R
Bit 7-5 Sin implementar
Bit 4 EEIF: Bandera de interrupcin por
/
T
R
U
J
Escritura/Lectura en EEPROM o FLASH
1 = La operacin de escritura se ha completado
(d b b d S )
J
I
L
L
(debe ser borrada por SW)
0 = La operacin de escritura no ha terminado o
no e h ini i do
O
A
R
no se ha iniciado.
I
A
S
Int Perifricos Reg PIR2 Int. Perifricos. Reg. PIR2
(18F452) V
Bit 3 BCLIF: Interrupcin por colisin en el
L
A
D
I
bus
1 = Ocurri una colisin
M
I
R
0 = No ha ocurrido una colisin.
Bit 2 LVDIF: Interrupcin por deteccin de
T
R
U
J
p p
bajo voltaje.
1 = Una condicin de bajo voltaje ha ocurrido
J
I
L
L
j j
0 = El voltaje del dispositivo se mantiene por
encima del valor de activacin de la interrupcin.
O
A
R
I
A
S
Int Perifricos Reg PIR2 Int. Perifricos. Reg. PIR2
(18F452) V
Bit 1 TMR3IF: Bandera de rebose de TMR3
1 =El TMR3 se ha rebosado
L
A
D
I
1 = El TMR3 se ha rebosado
0 = El TMR3 No se ha rebosado
Bit 0 CCP2IF: Bandera de interrupcin del
M
I
R
Bit 0 CCP2IF: Bandera de interrupcin del
mdulo CCP2
Modo Captura:
T
R
U
J
1 = Una captura de TMR1 ha ocurrido.
0 = No ha ocurrido captura de TMR1
Modo Compara:
J
I
L
L
Modo Compara:
1 = Ha ocurrido un evento de comparacin con TMR1.
0 = No ha habido eventos de comparacin con TMR1.
Modo PWM
O
A
R
Modo PWM
No usado en este modo
I
A
S
Int Perifricos Reg PIR2 Int. Perifricos. Reg. PIR2
(18F4520) V
L
A
D
I
M
I
R
Bit 7 OSCFIF: Bandera indicadora de
fallo del oscilador
T
R
U
J
fallo del oscilador.
1 = El oscilador del dispositivo fall. Se ha
li d bi INTOSC (D b
J
I
L
L
realizado un cambio a INTOSC. (Debe ser
borrada por software)
O
A
R
0 = El reloj trabaja sin problemas.
I
A
S
Int Perifricos Reg PIR2 Int. Perifricos. Reg. PIR2
(18F4520) V
Bit 6 CMIF: Bandera de interrupcin por
comparacin
L
A
D
I
comparacin.
1 = La entrada del comparador ha cambiado (Debe ser
borrada por software)
M
I
R
p )
0 = La entrada del comparador no ha cambiado.
Bit 5 Sin implementar: Se lee como 0
T
R
U
J
Bit 4 EEIF: Bandera de interrupcin por
Escritura/Lectura en EEPROM o FLASH
J
I
L
L
1 = La operacin de escritura se ha completado (debe ser
borrada por SW)
0 =La operacin de escritura no ha terminado o no se ha
O
A
R
0 = La operacin de escritura no ha terminado o no se ha
iniciado.
I
A
S
Int Perifricos Reg PIR2 Int. Perifricos. Reg. PIR2
(18F4520) V
Bit 3 BCLIF: Interrupcin por colisin en el
bus
L
A
D
I
bus
1 = Ocurri una colisin
0 = No ha ocurrido una colisin.
M
I
R
Bit 2 HLVDIF: Interrupcin por deteccin de
alto o bajo voltaje.
T
R
U
J
1 = Una condicin de bajo o alto voltaje ha
ocurrido. La direccin es determinada por el bit 7
(VDIRMAG) del registro HLVDCON.
J
I
L
L
( ) g
0 = El voltaje del dispositivo se mantiene por
encima del valor de activacin de la interrupcin.
O
A
R
I
A
S
Int Perifricos Reg PIR2 Int. Perifricos. Reg. PIR2
(18F4520) V
Bit 1 TMR3IF: Bandera de rebose de TMR3
1 =El TMR3 se ha rebosado
L
A
D
I
1 = El TMR3 se ha rebosado
0 = El TMR3 No se ha rebosado
Bit 0 CCP2IF: Bandera de interrupcin del
M
I
R
Bit 0 CCP2IF: Bandera de interrupcin del
mdulo CCP2
Modo Captura:
T
R
U
J
1 = Una captura de TMR1 ha ocurrido.
0 = No ha ocurrido captura de TMR1
Modo Compara:
J
I
L
L
Modo Compara:
1 = Ha ocurrido un evento de comparacin con TMR1.
0 = No ha habido eventos de comparacin con TMR1.
Modo PWM
O
A
R
Modo PWM
No usado en este modo
I
A
S
Int Perifricos Reg PIE1 Int. Perifricos. Reg. PIE1
(18F452, 18F4520) V
L
A
D
I
PSPIE(1): Habilita la interrupcin de
M
I
R
PSPIE(1): Habilita la interrupcin de
lectura/escritura del puerto paralelo esclavo
1 =Habilita la interrupcin
T
R
U
J
1 = Habilita la interrupcin
0 = Deshabilita la interrupcin.
Bit 6 ADIE H bilit l i t i fi
J
I
L
L
Bit 6 ADIE: Habilita la interrupcin por fin
de conversin del A/D.

O
A
R
1 = Habilita la interrupcin del A/D.
0 = Deshabilita la interrupcin del A/D.
I
A
S
Int Perifricos Reg PIE1 Int. Perifricos. Reg. PIE1
(18F452, 18F4520) V
Bit 5 RCIE: Habilita la interrupcin por
L
A
D
I
recepcin del mdulo USART.
1 =Habilita la interrupcin
M
I
R
1 Habilita la interrupcin
0 = Deshabilita la interrupcin
Bit 4 TXIE H bilit l i t i
T
R
U
J
Bit 4 TXIE: Habilita la interrupcin por
transmisin del mdulo USART
J
I
L
L
1 = Habilita la interrupcin
0 =Deshabilita la interrupcin
O
A
R
0 = Deshabilita la interrupcin
I
A
S
Int Perifricos Reg PIE1 Int. Perifricos. Reg. PIE1
(18F452, 18F4520) V
Bit 3 SSPIE: Habilita la interrupcin del puerto serial
sncrono.
L
A
D
I
1 = Habilita la interrupcin del MSSP
0 = Deshabilita la interrupcin del MSSP
Bit 2 CCP1IE: Habilita la interrupcin del mdulo CCP1
M
I
R
Bit 2 CCP1IE: Habilita la interrupcin del mdulo CCP1.
1 = Habilita la interrupcin del CCP1
0 = Deshabilita la interrupcin
T
R
U
J
Bit 1 TMR2IE: Habilita la interrupcin por igualdad de
TMR2 con PR2.
1 =Habilita la interrupcin
J
I
L
L
1 Habilita la interrupcin
0 = Deshabilita la interrupcin.
Bit 0 TMR1IE: Habilita la interrupcin por rebose de
TMR1
O
A
R
TMR1
1 = Habilita la interrupcin de TMR1
0 = Deshabilita la interrupcin de TMR1
I
A
S
Int Perifricos Reg PIE2 Int. Perifricos. Reg. PIE2
(18F452) V
L
A
D
I
Bit 7-5 Sin implementar
M
I
R
Bit 7-5 Sin implementar
Bit 4 EEIE: Habilita la interrupcin por fin
de escritura en memoria EEPROM/FLASH.
T
R
U
J
de escritura en memoria EEPROM/FLASH.
1 = Habilitada
0 = Deshabilitada
J
I
L
L
Bit 3 BCLIE: Habilita la interrupcin por
colisin de datos en el BUS
1 H bilit d
O
A
R
1 = Habilitada
0 = Deshabilitada
I
A
S
Int Perifricos Reg PIE2 Int. Perifricos. Reg. PIE2
(18F452) V
Bit 2 LVDIE: Habilita la Interrupcin por deteccin
de bajo voltaje.
L
A
D
I
de bajo voltaje.
1 = Habilitada
0 = Deshabilitada.
Bit 1 TMR3IE: Habilita la interrupcin por desborde
M
I
R
Bit 1 TMR3IE: Habilita la interrupcin por desborde
de TMR3.
1 = Habilita la interrupcin
h bl l
T
R
U
J
0 = Deshabilita la interrupcin
Bit 0 CCP2IE: Habilita la interrupcin del mdulo
CCP2
J
I
L
L
1 = Habilita la interrupcin
0 = Deshabilita la interrupcin
O
A
R
I
A
S
Int Perifricos Reg PIE2 Int. Perifricos. Reg. PIE2
(18F4520) V
L
A
D
I
M
I
R
Bit 7 OSCFIE: Bit habilitador de interrupcin por fallo
de oscilador
T
R
U
J de oscilador
1 = Habilitado
0 = deshabilitado
J
I
L
L
Bit 6 CMIE: Bit habilitador de interrupcin por
comparacin
O
A
R
1 = Habilitado
0 = Deshabilitado
I
A
S
Int Perifricos Reg PIE2 Int. Perifricos. Reg. PIE2
(18F4520) V
Bit 5 Sin implementar se lee como 0
f
L
A
D
I
Bit 4 EEIE: Habilita la interrupcin por fin de
escritura en memoria EEPROM/FLASH.
1 H bilit d
M
I
R
1 = Habilitada
0 = Deshabilitada
Bit 3 BCLIE H bilit l i t i
T
R
U
J
Bit 3 BCLIE: Habilita la interrupcin por
colisin de datos en el BUS
1 Habilitada
J
I
L
L
1 = Habilitada
0 = Deshabilitada
O
A
R
I
A
S
Int Perifricos Reg PIE2 Int. Perifricos. Reg. PIE2
(18F4520) V
Bit 2 HLVDIE: Habilita la Interrupcin por deteccin
de alto o bajo voltaje
L
A
D
I
de alto o bajo voltaje.
1 = Habilitada
0 =Deshabilitada
M
I
R
0 = Deshabilitada.
Bit 1 TMR3IE: Habilita la interrupcin por desborde
de TMR3.
T
R
U
J
1 = Habilita la interrupcin
0 = Deshabilita la interrupcin
J
I
L
L
Bit 0 CCP2IE: Habilita la interrupcin del mdulo
CCP2
1 H bili l i i
O
A
R
1 = Habilita la interrupcin
0 = Deshabilita la interrupcin
I
A
S
Prioridad de Int Reg IPR1 Prioridad de Int. Reg. IPR1
(18F452, 18F4520) V
L
A
D
I

M
I
R
Bit 7 PSPIP(1): Prioridad de Interrupcin
del puerto paralelo esclavo
l d d
T
R
U
J
1 = Alta prioridad
0 = Baja prioridad
Bit 6 ADIP P i id d d I t i d l
J
I
L
L
Bit 6 ADIP: Prioridad de Interrupcin del
conversor A/D
1 Alta p io idad
O
A
R
1 = Alta prioridad
0 = Baja prioridad
I
A
S
Prioridad de Int Reg IPR1 Prioridad de Int. Reg. IPR1
(18F452, 18F4520) V
Bit 5 RCIP: Prioridad de Interrupcin del
mdulo USART en RX
L
A
D
I
mdulo USART en RX.
1 = Alta prioridad
0 = Baja prioridad
M
I
R
j p
Bit 4 TXIP: Prioridad de Interrupcin del
mdulo USART en TX.
T
R
U
J
1 = Alta prioridad
0 = Baja prioridad
Bit 3 SSPIP: Prioridad de Interrupcin del
J
I
L
L
Bit 3 SSPIP: Prioridad de Interrupcin del
puerto serial sncrono
1 =Alta prioridad
O
A
R
1 Alta prioridad
0 = Baja prioridad
I
A
S
Prioridad de Int Reg IPR1 Prioridad de Int. Reg. IPR1
(18F452, 18F4520) V
Bit 2 CCP1IP: Prioridad de Interrupcin del mdulo
CCP
L
A
D
I
CCP
1 = Alta prioridad
0 =Baja prioridad
M
I
R
0 Baja prioridad
Bit 1 TMR2IP: Prioridad de Interrupcin del TMR2
1 = Alta prioridad
T
R
U
J
p
0 = Baja prioridad
Bit 0 TMR1IP: Prioridad de Interrupcin del TMR1.
J
I
L
L
1 = Alta prioridad
0 = Baja prioridad
O
A
R
I
A
S
Prioridad de Int Reg IPR2 Prioridad de Int. Reg. IPR2
(18F452) V
L
A
D
I
Bit 7-5 Sin implementar
M
I
R
Bit 7-5 Sin implementar
Bit 4 EEIP: Prioridad de Interrupcin por fin
de escritura en EPROM/FLASH
T
R
U
J
de escritura en EPROM/FLASH
1 = Alta prioridad
0 = Baja prioridad
J
I
L
L
Bit 3 BCLIP: Prioridad de Interrupcin por
colisin en Bus de datos.
1 Alt p io id d
O
A
R
1 = Alta prioridad
0 = Baja prioridad
I
A
S
Prioridad de Int Reg IPR2 Prioridad de Int. Reg. IPR2
(18F452) V
Bit 2 LVDIP: Prioridad de Interrupcin por
deteccin de bajo voltaje
L
A
D
I
deteccin de bajo voltaje
1 = Alta prioridad
0 = Baja prioridad
M
I
R
j p
Bit 1 TMR3IP: Prioridad de Interrupcin por
rebose de TMR3
T
R
U
J
1 = Alta prioridad
0 = Baja prioridad
Bit 0 CCP2IP: Prioridad de Interrupcin de
J
I
L
L
Bit 0 CCP2IP: Prioridad de Interrupcin de
mdulo CCP2
1 =Alta prioridad
O
A
R
1 Alta prioridad
0 = Baja prioridad
I
A
S
Prioridad de Int Reg IPR2 Prioridad de Int. Reg. IPR2
(18F4520) V
L
A
D
I
M
I
R
Bit 7 OSCFIP: Bit de prioridad de interrupcin por
fallo de oscilador
T
R
U
J fallo de oscilador.
1 = Alta prioridad
0 = Baja prioridad
J
I
L
L
j p
Bit 6 CMIP: Bit de prioridad de interrupcin por
comparacin analgica.
O
A
R
1 = Alta prioridad.
0 = Baja prioridad.
I
A
S
Prioridad de Int Reg IPR2 Prioridad de Int. Reg. IPR2
(18F4520) V
Bit 5 Sin implementar
f
L
A
D
I
Bit 4 EEIP: Prioridad de Interrupcin por fin
de escritura en EPROM/FLASH
1 Alt i id d
M
I
R
1 = Alta prioridad
0 = Baja prioridad
Bit 3 BCLIP P i id d d I t i
T
R
U
J
Bit 3 BCLIP: Prioridad de Interrupcin por
colisin en Bus de datos.
1 Alta prioridad
J
I
L
L
1 = Alta prioridad
0 = Baja prioridad
O
A
R
I
A
S
Prioridad de Int Reg IPR2 Prioridad de Int. Reg. IPR2
(18F4520) V
Bit 2 HLVDIP: Prioridad de Interrupcin por
deteccin de bajo o alto voltaje
L
A
D
I
deteccin de bajo o alto voltaje
1 = Alta prioridad
0 =Baja prioridad
M
I
R
0 = Baja prioridad
Bit 1 TMR3IP: Prioridad de Interrupcin por rebose
de TMR3
T
R
U
J
1 = Alta prioridad
0 = Baja prioridad
J
I
L
L
Bit 0 CCP2IP: Prioridad de Interrupcin de mdulo
CCP2
1 Al i id d
O
A
R
1 = Alta prioridad
0 = Baja prioridad
I
A
S
Memoria FLASH de Programa
V
La memoria de programa puede ser leda y escrita
durante el funcionamiento normal
L
A
D
I
durante el funcionamiento normal.
Posee un tamao de 32K Bytes con capacidad para
16K Instrucciones
M
I
R
16K Instrucciones
Durante la escritura o lectura de la memoria de
programa se cesar la bsqueda de instrucciones
T
R
U
J
programa se cesar la bsqueda de instrucciones,
hasta que la operacin este completa.
La memoria de programa no puede ser accedida
J
I
L
L
La memoria de programa no puede ser accedida
durante la lectura o escritura, es por ello que el
cdigo no puede ser ejecutado.
O
A
R
I
A
S
Memoria FLASH de Programa
V
Cualquier instruccin invlida que se
L
A
D
I
escriba, ser ejecutada como un NOP
Ya que la memoria de programa es de
M
I
R
Ya que la memoria de programa es de
16 bits de ancho y la RAM tiene 8 bits;
l i t i TBLRD(L t )
T
R
U
J
las instrucciones TBLRD(Lectura) y
TBLWT (escritura), mueven datos
J
I
L
L
entre esas dos memorias, utilizando el
registro TABLAT.
O
A
R
g
I
A
S
Memoria FLASH de Programa
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Registro EECON1 y EECON2
V
El registro EECON1 es el registro de
L
A
D
I
control de acceso a memoria FLASH o
EEPROM.
M
I
R
EEPROM.
El registro EECON2 no existe
f i t l tili
T
R
U
J
fsicamente, y solo se utiliza en
operaciones de escritura o borrado de
J
I
L
L
la memoria.
Cualquier lectura a EECON2 obtiene
O
A
R
Cualquier lectura a EECON2, obtiene
como resultado un 0.
I
A
S
Registro EECON1 (Dir. 0FA6h )
V
L
A
D
I
M
I
R
BIT 7 EEPGD: Bit de seleccin de la
memoria FLASH o EEPROM.
1 El l i FLASH
T
R
U
J
1 = El acceso es a la memoria FLASH.
0 = El acceso es a la memoria EEPROM.
BIT 6 CFGS: Acceso a memoria FLASH/EE o
J
I
L
L
BIT 6 CFGS: Acceso a memoria FLASH/EE o
registros de configuracin.
1 = Acceso a los registros de configuracin
O
A
R g g
0 = Acceso a la memoria FLASH o EEPROM.
I
A
S
Registro EECON1 (Dir. 0FA6h )
V
BIT 5 Sin implementar.
BIT 4 FREE: bit de seleccin de borrado de la
L
A
D
I
BIT 4 FREE: bit de seleccin de borrado de la
memoria FLASH.
1 =Borra la memoria FLASH apuntada por
M
I
R
1 Borra la memoria FLASH apuntada por
TBLPTR en el prximo comando WR.
0 = Se realiza escritura nicamente.
d
T
R
U
J
BIT 3 WRERR: Error en una operacin de
escritura de la memoria FLASH/EEPROM
1 =Una operacin de escritura fue
J
I
L
L
1 = Una operacin de escritura fue
prematuramente terminada.
0 = Operacin de escritura completa.
O
A
R
I
A
S
Registro EECON1 (Dir. 0FA6h )
V
BIT 2 WREN: Bit de habilitacin de escritura
L
A
D
I
en la memoria FLASH/EEPROM.
1 = Permite ciclos de escritura.
M
I
R
0 = Inhibe los ciclos de escritura.
BIT 1 WR: Bit de control de escritura
T
R
U
J
1 = Inicializa el borrado/escritura de la memoria
EEPROM/FLASH, este bit se coloca en 0
J
I
L
L
nuevamente por HW.
0 = El ciclo de escritura esta completo.
O
A
R
I
A
S
Registro EECON1 (Dir. 0FA6h )
V
BIT 0 RD: Bit de control de lectura.
L
A
D
I
1 = Inicializa la lectura de la EEPROM, este
bit se coloca en 0 por HW. El bit RD no
M
I
R
p
puede puesto en 1 cuando EEPGD = 1, lo
cual sugiere que la memoria FLASH, no
T
R
U
J
g q ,
puede ser leda utilizando este bit.
0 =No se inicializa la lectura de la
J
I
L
L
0 = No se inicializa la lectura de la
EEPROM.
O
A
R
I
A
S
Registro TABLAT y TBLPTR
V
El registro TABLAT es de 8 bits y se utiliza
L
A
D
I
para almacenar datos durante la
transferencia de informacin entre la RAM y
l d
M
I
R
la memoria de programa.
El registro TBLPTR apunta a las direcciones
T
R
U
J
de memoria de programa a acceder, apunta
de a byte por vez.
J
I
L
L
El registro TBLPTR, es utilizado por las
instrucciones TBLRDy TBLWT; ellas pueden
O
A
R
instrucciones TBLRD y TBLWT; ellas pueden
actualizar el TBLPTR de 4 formas diferentes.
I
A
S
Registro TBLPTR
V
L
A
D
I
M
I
R
T
R
U
J
La lectura accede a memoria cada byte
J
I
L
L
y
La escritura accede a memoria cada 8 Bytes
El borrado se hace en paquetes de 64 Bytes
O
A
R
El borrado se hace en paquetes de 64 Bytes.
I
A
S
Operaciones que auto modifican Operaciones que auto modifican
TBLPTR V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Lectura de la Memoria FLASH
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Lectura de la Memoria FLASH
V
Cuando se hace una lectura de memoria. Se

L
A
D
I
debe Cargar TBLPTR con la direccin a leer
(direccin par).
M
I
R
Cuando se ejecuta la instruccin TBLRD, se
mueve un byte de la instruccin a el registro
T
R
U
J
TABLAT.
El que sea el byte bajo o alto, depende de si
J
I
L
L
El que sea el byte bajo o alto, depende de si
el bit menos significativo de la direccin
escogida es 0
O
A
R
escogida es 0
I
A
S
Borrado de la Memoria FLASH
V
El TBLPTR no tiene en cuenta los 6 bits
menos significativos a la hora de hacer un
L
A
D
I
menos significativos a la hora de hacer un
borrado, solo los 16 mas altos, por lo tanto el
borrado de la memoria FLASH solo se hace
M
I
R
borrado de la memoria FLASH, solo se hace
en bloques de 64 bytes o 32 instrucciones.
Los 16 bits mas significativos apuntan a la
T
R
U
J
Los 16 bits mas significativos apuntan a la
direccin de inicio del bloque de 64 bytes a
borrar.
J
I
L
L
borrar.
El registro EECON1 controla la operacin de
borrado.
O
A
R
borrado.
I
A
S
Borrado de la Memoria FLASH
V
El bit EEPGD se debe poner en 1, as
L
A
D
I
como WREN tambin debe estar en 1
para habilitar la operacin de escritura
M
I
R
para habilitar la operacin de escritura
(Borrar es escribir FF).
El bit FREE l 1 i i i l
T
R
U
J
El bit FREE se coloca en 1 para iniciar la
operacin de borrado
J
I
L
L
O
A
R
I
A
S
Borrado de la Memoria FLASH Borrado de la Memoria FLASH
(Secuencia a utilizar) V
Cargar el STKPTR con la direccin de inicio a
borrar (Recordar que es en paquetes de 64
L
A
D
I
borrar (Recordar que es en paquetes de 64
bytes, por tanto los 6 bits menos
significativos son 0)
M
I
R
significativos son 0)
Poner en 1 el bit EEPGD de EECON1.
Borrar el bit CFGS del registro EECON1
T
R
U
J
Borrar el bit CFGS del registro EECON1
Poner en 1 los bits WREN y FREE para
habilitar escritura y borrado respectivamente
J
I
L
L
habilitar escritura y borrado respectivamente.
Deshabilitar las interrupciones.
O
A
R
I
A
S
Borrado de la Memoria FLASH Borrado de la Memoria FLASH
(Secuencia a utilizar) V
Escribir 55h en el EECON2.
L
A
D
I
Escribir AAh en el EECON2.
Poner en 1 el bit WR Esto comenzar el
M
I
R
Poner en 1 el bit WR. Esto comenzar el
ciclo de borrado
La CPU queda parada durante el tiempo
T
R
U
J
La CPU queda parada durante el tiempo
que tarde el borrado de la memoria que
son 2 mili segundos aproximadamente
J
I
L
L
son 2 mili segundos aproximadamente.
Habilitar las interrupciones.
O
A
R
I
A
S
Escritura en memoria Flash.
V
La escritura en la memoria FLASH, se
L
A
D
I
realiza en paquetes de 8 bytes o 4
instrucciones.
M
I
R
instrucciones.
Debido a que el registro TABLAT es de
1 b t i d it
T
R
U
J
1 byte, una operacin de escritura en
FLASH, requiere el uso de 8 veces la
J
I
L
L
instruccin TBLWT.
O
A
R
I
A
S
Escritura en memoria Flash.
Escritura en memoria Flash Escritura en memoria Flash.
(Secuencia de Programacin) V g
Secuencia de programacin de la
L
A
D
I
memoria FLASH.
Almacenar el bloque de 64 bytes donde se
M
I
R
Almacenar el bloque de 64 bytes donde se
va a modificar los datos, en la memoria
RAM.
T
R
U
J
RAM.
Actualizar los valores en la RAM si es
necesario
J
I
L
L
necesario.
Cargar el apuntador del programa con la
di i b d
O
A
R
direccin a ser borrada.
I
A
S
Escritura en memoria Flash Escritura en memoria Flash.
(Secuencia de Programacin) V g
Borrar el bloque de memoria FLASH.
L
A
D
I
Cargar el apuntador del programa con la
direccin de inicio a ser escrita.
M
I
R
Escribir los primeros 8 bytes en los
registros de sujecin.
T
R
U
J
registros de sujecin.
Utilizar la instruccin (TBLWT* + o
TBLWT+*)
J
I
L
L
TBLWT+ ).
Poner en 1 el BIT EEPGD, para apuntar a
la memoria de programa
O
A
R
la memoria de programa.
I
A
S
Escritura en memoria Flash Escritura en memoria Flash.
(Secuencia de Programacin) V g
Borrar el BIT CFGS para acceder a la
L
A
D
I
memoria de programa y poner en 1 el BIT
WREN para habilitar la escritura.
M
I
R
Deshabilite las interrupciones.
Escriba 55h en el registro EECON2.
T
R
U
J
Escriba 55h en el registro EECON2.
Escriba AAh en el registro EECON2.
Coloque en 1 el BIT WR para comenzar el
J
I
L
L
Coloque en 1 el BIT WR, para comenzar el
ciclo de escritura.
O
A
R
I
A
S
Escritura en memoria Flash Escritura en memoria Flash.
(Secuencia de Programacin) V g
L
A
D
I
La CPU se detiene cerca de 2 milisegundos
mientras se escribe
M
I
R
Re habilite las interrupciones.
Repita este ciclo 7 veces
T
R
U
J
Repita este ciclo 7 veces
Para escribir los 64 bytes
J
I
L
L
O
A
R
I
A
S
Escritura en memoria Flash Escritura en memoria Flash.
(Secuencia de Programacin) V g
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Memoria EEPROM de datos
V
La memoria EEPROM, no puede ser
L
A
D
I
direccionada normalmente, para acceder a
ella se hace a travs de unos registros
M
I
R
g
especiales
EECON1 (Registro de configuracin)
T
R
U
J
EECON1 (Registro de configuracin)
EECON2 (Registro de configuracin)
EEDATA (Registro de transferencia de
J
I
L
L
EEDATA (Registro de transferencia de
datos)
EEADR(Registro de direccionamiento)
O
A
R
EEADR(Registro de direccionamiento)
I
A
S
Memoria EEPROM de datos
V
Los datos en la EEPROM, se
L
A
D
I
sobrescriben y el tiempo de acceso de
escritura o lectura tiene un tiempo
M
I
R
escritura o lectura tiene un tiempo
tpico de 4 milisegundos
D bid l i t EEADR d 8
T
R
U
J
Debido a que el registro EEADR es de 8
bits, la capacidad en EEPROM es de 256
J
I
L
L
bytes.
O
A
R
I
A
S
Memoria EEPROM de datos
V
L
A
D
I
M
I
R
BIT 7 EEPGD: bit de seleccin de la memoria FLASH o
EEPROM
1 A l i FLASH
T
R
U
J
1 = Acceso a la memoria FLASH
0 = Acceso a la memoria EEPROM.
BIT 6 CFGS: Acceso a la memoria FLASH/EEPROM o a los
d f d l C
J
I
L
L
registros de configuracin del PIC
1 = Acceso a los registros de Configuracin
0 = Acceso a la memoria FLASH o EEPROM
O
A
R
I
A
S
Memoria EEPROM de datos
V
BIT 5 Sin implementar

L
A
D
I
BIT 4 FREE: Habilitacin del ciclo de borrado
en la memoria FLASH
1 B l i FLASH (64 b t ) t d
M
I
R
1 = Borra la memoria FLASH (64 bytes) apuntada
por TBLPTR en el prximo comando WR
0 =Solo para escritura
T
R
U
J 0 = Solo para escritura.
BIT 3 WRERR: Bit de Error
1 =Una operacin de escritura ha sido
J
I
L
L
1 = Una operacin de escritura ha sido
interrumpida.
0 = Operacin de escritura completa.
O
A
R p p
I
A
S
Memoria EEPROM de datos
V
BIT 2 WREN: Bit de habilitacin de escritura en
FLASH o EEPROM
L
A
D
I
FLASH o EEPROM
1 = ciclos de escritura permitidos
0 = No permite escritura en la memoria EEPROM
BIT WR: bit de control de escritura
M
I
R
BIT WR: bit de control de escritura
1 = Inicializa un ciclo de escritura en EEPROM o FLASH.
Cuando la operacin termina, el bit es borrado por HW y no
se puede por software )
T
R
U
J se puede por software.)
0 = El ciclo de escritura en EEPROM finaliz
BIT 0 RD: bit de control de lectura.
J
I
L
L
1 = Lee la memoria EEPROM. Es borrado por HW y
no por SW. Este bit no se puede poner en 1 si EEPGD
= 1.)
O
A
R )
0 = No se inicia la lectura de la EEPROM
I
A
S
Lectura de la memoria EEPROM Lectura de la memoria EEPROM
de datos V
Para la lectura de la memoria EEPROM,
L
A
D
I
se escribe la direccin a leer en EEADR.
Poner en 0 el bit EEPGD(bit 7 EECON1)
M
I
R
Poner en 0 el bit EEPGD (bit 7 EECON1)
Poner en 0 el bit CFGS (bit 6 EECON1)
T
R
U
J
Poner en 1 el bit RD (bit 0 EECON1)
El dato ledo se almacena en el registro
J
I
L
L
El dato ledo se almacena en el registro
EEDATA
O
A
R
I
A
S
Escritura en la memoria EEPROM Escritura en la memoria EEPROM
de datos V
Para la Escritura en la memoria EEPROM, se escribe
la direccin a acceder en el registro EEADR
L
A
D
I
la direccin a acceder en el registro EEADR.
Poner en 0 el bit EEPGD (bit 7 EECON1)
P 0 l bit CFGS (bit 6 EECON1)
M
I
R
Poner en 0 el bit CFGS (bit 6 EECON1)
Poner en 1 el bit WREN (bit 0 EECON1) con el fin de
habilitar el acceso en modo escritura
T
R
U
J
habilitar el acceso en modo escritura.
Poner en 1 el bit WR, para comenzar la escritura.
El dato ledo se almacena en el registro EEDATA
J
I
L
L
El dato ledo se almacena en el registro EEDATA
Al finalizar la escritura en la memoria EEPROM, se
genera una interrupcin al ponerse el 1 el bit EEIF
O
A
R
genera una interrupcin, al ponerse el 1 el bit EEIF
del registro PIR2
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
El conversor analgico digital posee una
L
A
D
I
resolucin de 10 bits.
Controlado por los registros ADCON1 y
M
I
R
Controlado por los registros ADCON1 y
ADCON0.

T
R
U
J
El resultado de la conversin es
almacenado en los registros ADRESL y
J
I
L
L
g y
ADRESH.
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
Bit 5-3 CHS2:CHS0: Seleccin del
l l i
L
A
D
I
canal analgico
000 = canal 0, (RA0)
M
I
R
001 = canal 1, (RA1)
010 = canal 2, (RA2)
T
R
U
J
, ( )
011 = canal 3, (RA3)
100 =canal 4 (RA5)
J
I
L
L
100 = canal 4, (RA5)
101 = canal 5, (RE0)
110 =canal 6 (RE1)
O
A
R
110 = canal 6, (RE1)
111 = canal 7, (RE2)
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
Bit 2 GO/ DONE: Estado de la conversin
A/D Debe estar habilitado el bit ADON
L
A
D
I
A/D. Debe estar habilitado el bit ADON
1 = Conversin A/D en progreso (Colocando este
bit en 1 se inicia la conversin A/D Se borra por
M
I
R
bit en 1, se inicia la conversin A/D. Se borra por
HW, cuando la conversin termina.)
0 = La conversin A/D no esta en progreso.
T
R
U
J
p g
Bit 1 Sin implementar
Bit 0 ADON: Enciende el mdulo A/D
J
I
L
L
Bit 0 ADON: Enciende el mdulo A/D
1 = El mdulo A/D esta encendido
0 = El mdulo A/D esta apagado y no consume
O
A
R / p g y
corriente.
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
Bit 7 ADFM: Formato del resultado de la
conversin A/D
L
A
D
I
conversin A/D.
1 = J ustificado a la derecha. Los 6 bits mas
significativos del registro ADRESH son cero
M
I
R
significativos del registro ADRESH son cero.
0 = J ustificado a la izquierda. Los 6 bits menos
significativos del registro ADRESL son cero.
T
R
U
J
g g
Bit 6 ADCS2: seleccin del tiempo de
conversin del mdulo A/D, trabaja en asocio
J
I
L
L
j
con los bits ADCS1 y ADCS0 del registro
ADCON0
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
Cuando el procesador se encuentra en modo
SLEEP y se desea realizar una conversin se
L
A
D
I
SLEEP y se desea realizar una conversin, se
debe utilizar como base de tiempo el oscilador
RC del conversor A/D.
El l i di it l f i
M
I
R
El conversor analgico digital funciona por
conversiones sucesivas.
Un RESET en el dispositivo obliga el apagado del
T
R
U
J Un RESET en el dispositivo, obliga el apagado del
conversor A/D y cualquier conversin en proceso
es abortada.
J
I
L
L
Cada pin del microcontrolador que se use como
entrada analgica, debe ser configurado como
entrada en el respectivo registro TRIS
O
A
R
entrada en el respectivo registro TRIS
I
A
S
Mdulo conversin A/D(Pasos) Mdulo conversin A/D (Pasos)
(18F452) V
Los pasos para realizar una conversin
A/D l i i
L
A
D
I
A/D son los siguientes:
1. Configuracin del mdulo A/D.
M
I
R
g /
Se configuran los pines que sern entradas
analgicas o digitales (ADCON1).
T
R
U
J
g g ( )
Se selecciona el canal de entrada al
mdulo A/D (ADCON0).
J
I
L
L
/ ( )
Se selecciona el reloj de conversin A/D
(ADCON0).
O
A
R ( )
Se enciende el mdulo A/D (ADCON0).
I
A
S
Mdulo conversin A/D(Pasos) Mdulo conversin A/D (Pasos)
(18F452) V
2. Configuracin de interrupciones para el
mdulo A/D(opcional)
L
A
D
I
mdulo A/D (opcional)
Borrar el bit ADIF en el registro PIR1
Poner en 1 el bit ADIE en el registro PIE1.
M
I
R
Poner en 1 el bit GIE y el PEIE en el registro
INTCON.
3 Esperar el tiempo de adquisicin en el
T
R
U
J
3. Esperar el tiempo de adquisicin en el
condensador de sujecin interno.
4. Comenzar la conversin, colocando en 1 el
J
I
L
L
,
bit GO/DONE del registro (ADCON0), este bit
no se debe poner en 1 al mismo tiempo que
instruccin que enciende el mdulo A/D
O
A
R
instruccin que enciende el mdulo A/D
(ADON = 1)
I
A
S
Mdulo conversin A/D(Pasos) Mdulo conversin A/D (Pasos)
(18F452) V
5. Esperar que la conversin A/D concluya
cuando:
L
A
D
I
cuando:
El bit GO/DONE se ponga en 0 la interrupcin del
conversor A/D se d.
M
I
R
/
6. Leer el resultado en los registros ADRESH y
ADRESL y borrar el bit ADIF si es necesario.
T
R
U
J
7. Para conversiones sucesivas, se deben esperar
2 TADs antes de que el nuevo tiempo de
adquisicin comience Se entiende por un TAD el
J
I
L
L
adquisicin comience. Se entiende por un TAD, el
tiempo que demora la conversin de 1 bit y no
puede ser menor a 1.6 micro segundos
O
A
R
puede ser menor a 1.6 micro segundos
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
Los bits ADCS0, ADCS1 y ADCS2, permiten

L
A
D
I
escoger el oscilador para la conversin A/D
que tiene relacin directa con el TAD.
M
I
R
El TAD se obtiene as:
TAD = 1/(FOSC/n) TOSC * n donde TOSC =
T
R
U
J
( )
1/FOSC.
Si el valor de ADCS0, ADCS1, ADCS2 es de 101, el
J
I
L
L
valor del TAD ser de (16 * TOSC)
Si se desea trabajar con el oscilador RC interno del
d l A/D l l d l TAD d 2 i
O
A
R
mdulo A/D, el valor del TAD ser de 2 micro
segundos.
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F452) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
El mdulo A/D de este micro consta de
L
A
D
I
13 canales analgicos. El resultado de
la conversin es de 10 bits.
M
I
R
la conversin es de 10 bits.
Cinco registros conforman este mdulo.
T
R
U
J
ADRESH, ADRESL, registros de control
ADCON0, ADCON1 y ADCON2.
J
I
L
L
, y
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
L
A
D
I
M
I
R
Bit 1 GO/ DONE: Bit de estado de la conversin A/D
Cuando ADON =1:
T
R
U
J Cuando ADON = 1:
1 = Conversin A/D en progreso.
0 = Conversor A/D desocupado
h bl d d d l /
J
I
L
L
Bit 0 ADON: Bit habilitador de mdulo A/D
1 = Mdulo A/D habilitado
0 =Mdulo A/Ddeshabilitado
O
A
R
0 = Mdulo A/D deshabilitado
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
Bit 7-6 Sin implementar
Bit 5-2 CHS3:CHS0: Seleccin del canal analgico
L
A
D
I
g
0000 = Canal 0 (AN0/RA0)
0001 = Canal 1 (AN1/RA1)
0010 = Canal 2 (AN2/RA2)
0011 C l 3 (AN3/RA3)
M
I
R
0011 = Canal 3 (AN3/RA3)
0100 = Canal 4 (AN4/RA5)
0101 = Canal 5 (AN5/RE0)
0110 = Canal 6 (AN6/RE1)
T
R
U
J
( / )
0111 = Canal 7 (AN7/RE2)
1000 = Canal 8 (AN8/RB2)
1001 = Canal 9 (AN9/RB3)
1010 Canal 10 (AN10/RB1)
J
I
L
L
1010 = Canal 10 (AN10/RB1)
1011 = Canal 11 (AN11/RB4)
1100 = Canal 12 (AN12/RB0)
1101 = Sin implementar
O
A
R
p
1110 = Sin implementar
1111 = Sin implementar
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
L
A
D
I
M
I
R
Bit 7-6 Sin implementar, se lee como 0
Bit 5 VCFG1: Configuracin de Voltaje de referencia (VREF-)
T
R
U
J
1 = VREF- (AN2)
0 = VSS

J
I
L
L
Bit 4 VCFG0: Configuracin de Voltaje de referencia (VREF+)
1 = VREF+ (AN3)
0 =VDD
O
A
R
0 = VDD
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
L
A
D
I
M
I
R
Bit 7 ADFM: Seleccin del formato del
es ltado del md lo A/D
T
R
U
J
resultado del mdulo A/D
1 = J ustificado a la derecha
J
I
L
L
0 = J ustificado a la izquierda
Bit 6 Sin implementar
O
A
R
Bit 6 Sin implementar
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
Bit 5-3 ACQT2:ACQT0: Bit de seleccin del

L
A
D
I
tiempo de adquisicin
111 = 20 TAD
M
I
R
110 = 16 TAD
101 = 12 TAD
T
R
U
J
100 = 8 TAD
011 = 6 TAD
J
I
L
L
010 = 4 TAD
001 = 2 TAD
O
A
R
000 = 0 TAD
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
bit 2-0 ADCS2:ADCS0: Bit de seleccin del

L
A
D
I
reloj para la conversin A/D (TAD).
111 = Uso del temporizador RC interno
M
I
R
110 = FOSC/64
101 = FOSC/16
T
R
U
J
100 = FOSC/4
011 = Uso del temporizador RC interno
J
I
L
L
010 = FOSC/32
001 = FOSC/8
O
A
R
000 = FOSC/2
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
Pasos para realizar una conversin A/D.
L
A
D
I
1. Configuracin del mdulo A/D
Configurar los pines analgicos y los voltajes de
M
I
R
referencia (ADCON1)
Seleccionar canal de entrada (ADCON0)
T
R
U
J
Escoger el tiempo de adquisicin (ADCON2)
Seleccionar el tiempo de conversin TADs
(ADCON2)
J
I
L
L
(ADCON2)
Habilitar el mdulo A/D (ADCON0)
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
2. Configurar las interrupciones A/D
Borrar el bit ADIF
L
A
D
I
Borrar el bit ADIF
Poner en 1el bit ADIE
Poner en 1 el bit GIE.
M
I
R
3. Esperar a que transcurra el tiempo de adquisicin si es
necesario
4 Comenzar la conversin Colocando en 1 el bit GO/DONE del
T
R
U
J
4. Comenzar la conversin. Colocando en 1 el bit GO/DONE del
(ADCON0)
5. Esperar a que la conversin A/D termine.
J
I
L
L
Cuando GO/DONE se pone en 0 se da una interrupcin A/D
6. leer el resultado de la conversin en (ADRESH:ADRESL) y
borrar el bit ADIF si es necesario
O
A
R
borrar el bit ADIF, si es necesario.
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Mdulo conversin A/D Mdulo conversin A/D
(18F4520) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Temporizador Timer 0
V
Las caractersticas que posee el Timer0 son las
siguientes:
L
A
D
I
siguientes:
Se puede seleccionar un modo de trabajo a 8 o 16
bits
S d l ibi l
M
I
R
Se puede leer y escribir en l.
Posee un pre escalador propio de 8 bits.
Seleccin de fuente de reloj externa (Pin RA4 T0CKI)
T
R
U
J
Seleccin de fuente de reloj externa (Pin RA4 T0CKI)
o interna Fosc/4
Genera una interrupcin cuando se desborda en
modo de 8 o 16 bits
J
I
L
L
modo de 8 o 16 bits.
El timer 0 es controlado por el registro T0CON
O
A
R
I
A
S
Temporizador Timer 0 Reg. T0CON V
L
A
D
I
M
I
R
Bit 7 TMR0ON: Bit de control ON/OFF del Timer0
1 = Habilita el Timer0
T
R
U
J
0 = Detiene el Timer0
Bit 6 T08BIT: Bit de seleccin de Timer0 en modo
J
I
L
L
8 bits o 16 bits
1 = Timer0 en modo 8 bits
O
A
R
0 = Timer0 en modo 16 bits
I
A
S
Temporizador Timer 0 Reg. T0CON V
Bit 5 T0CS: Bit de seleccin de la fuente de reloj de
Timer0
L
A
D
I
Timer0.
1 = Transiciones en el pin T0CKI (RA4)
0 = Reloj interno de Instrucciones (FOSC/4)
M
I
R
Bit 4 T0SE: Bit de tipo de flanco para incremento de
Timer0.
1 Incremento por flanco de bajada
T
R
U
J
1 = Incremento por flanco de bajada.
0 = Incremento por flanco de subida.
Bit 3 PSA: Bit de asignacin del Pre escalador
J
I
L
L
g
1 = Pre escalador no asignado a Timer0.
0 = Pre escalador asignado a Timer0.
O
A
R
I
A
S
Temporizador Timer 0 Reg. T0CON V
Bit 2-0 T0PS2:T0PS0: Bits de seleccin del
pre escalador
L
A
D
I
pre escalador.
111 = 1:256
110 1:128
M
I
R
110 = 1:128
101 = 1:64
100 =1:32
T
R
U
J
100 = 1:32
011 = 1:16
010 =1:8
J
I
L
L
010 1:8
001 = 1:4
000 = 1:2
O
A
R
I
A
S
Temporizador Timer 0
V
Si no se asigna preescalador a TMRO, el registro de
l se incrementa cada ciclo de reloj
L
A
D
I
l se incrementa cada ciclo de reloj.
Si el registro TMR0L es escrito, el conteo no se
reanuda hasta dos ciclos de instruccin despus
M
I
R
reanuda, hasta dos ciclos de instruccin despus.
Si se utilizan instrucciones como:
clrf TMR0 movwf TMR0 bsf TMR0 el pre escalador es
T
R
U
J clrf TMR0, movwf TMR0 bsf TMR0, el pre escalador es
puesto a 0, aunque la asignacin del pre escalador no
cambia.

J
I
L
L
La interrupcin de TMR0, no puede sacar al
procesador de un SLEEP, ya que en este caso el
oscilador interno esta parado
O
A
R
oscilador interno esta parado.
I
A
S
Temporizador Timer 0
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Temporizador Timer 0
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Temporizador Timer 0
V
El registro TMR0H se actualiza solo
L
A
D
I
cuando se hace una lectura de TMR0L,
esto con el fin de leer los 16 bits de
M
I
R
esto con el fin de leer los 16 bits de
TMR0.
L t lt d TMR0 l
T
R
U
J
La parte alta de TMR0, solo se carga en
el registro TMR0H cuando se hace una
J
I
L
L
escritura en TMR0L, esto con el fin de
transferir los 16 bits a la vez
O
A
R
I
A
S
Temporizador Timer 1
V
El Timer1 es un temporizador de 16 bits posee los
registros TMR1H y TMR1L
L
A
D
I
registros TMR1H y TMR1L.
Seleccin de fuente de reloj interna o externa.
Puede conectarse un oscilador en los pines de
M
I
R
Puede conectarse un oscilador en los pines de
entrada de Timer1 con el fin de tener una base de
tiempo precisa independiente del reloj interno.
T
R
U
J
tiempo precisa independiente del reloj interno.
La interrupcin se genera por rebose
Un evento especial del mdulo CCP lo coloca en 0
J
I
L
L
Un evento especial del mdulo CCP, lo coloca en 0
O
A
R
I
A
S
Temporizador Timer 1
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Temporizador Timer1 Reg. T1CON V
Bit 7 RD16: Modo de lectura escritura de 16-
bits
L
A
D
I
bits
1 = Habilita la lectura y escritura del Timer1 en
una operacin de 16-bits
M
I
R
una operacin de 16 bits.
0 = Habilita la lectura y escritura del Timer1 en
dos operaciones de 8-bits.
T
R
U
J
p
Cuando RD16 vale 1, la parte alta del timer 1
es transferida a TMR1H a travs de un buffer.
J
I
L
L
Esto ocurre solo cuando TMR1L es ledo, as
se transfieren los 16 bits al tiempo.
O
A
R
I
A
S
Temporizador Timer1 Reg. T1CON V
Para realizar una escritura de 16 bits a el
Timer 1 se carga TMR1H con el valor
L
A
D
I
Timer 1, se carga TMR1H con el valor
deseado y a continuacin se escribe TMR1L,
en ese instante se hace la transferencia de 16
M
I
R
en ese instante se hace la transferencia de 16
bits a la vez.
Bit 6 Sin implementar
T
R
U
J
Bit 6 Sin implementar
Bit 5-4 T1CKPS1:T1CKPS0: Bits del pre
escalador de Timer1
J
I
L
L
escalador de Timer1
11 = 1:8
10 =1:4
O
A
R
10 1:4
01 = 1:2
00 = 1:1
I
A
S
Temporizador Timer1 Reg. T1CON V
Bit 3 T1OSCEN: Bit habilitador del Oscilador
de Timer1
L
A
D
I
de Timer1.
1 = Oscilador de Timer1 habilitado
0 =Oscilador de Timer1 apagado
M
I
R
0 = Oscilador de Timer1 apagado
Bit 2 T1SYNC: Sincronizacin de reloj
externo con el reloj interno
T
R
U
J
externo con el reloj interno
Cuando TMR1CS = 1:
1 =No sincronice la seal de reloj externa
J
I
L
L
1 No sincronice la seal de reloj externa
0 = Sincronice la seal de reloj externa
Cuando TMR1CS= 0:
O
A
R
Cuando TMR1CS 0:
Se ignora, ya que se esta usando el reloj
interno
I
A
S
Temporizador Timer1 Reg. T1CON V
Bit 1 TMR1CS: Bit de seleccin de la fuente
L
A
D
I
de reloj de Timer1.
1 = Reloj externo, entrada por
/ / ( d fl d
M
I
R
RC0/T1OSO/T13CKI (cuenta cada flanco de
subida)
0 R l j I t (FOSC/4)
T
R
U
J
0 = Reloj Interno (FOSC/4)
Bit 0 TMR1ON: Bit de encendido del Timer1
J
I
L
L
1 = Habilita el conteo en Timer1
0 = Detiene el conteo en Timer1
O
A
R
I
A
S
Temporizador Timer1. Oscilador V
El oscilador externo para Timer1 se ubica
L
A
D
I
entre los pines T1OSO y T1OSI (RC0 y RC1)
El oscilador de cuarzo que se conecta a estos
M
I
R
pines no debe exceder los 200 KHz.
Los condensadores sugeridos son de 33 pF.
T
R
U
J
Los condensadores sugeridos son de 33 pF.
Una alta capacitancia incrementa la
estabilidad pero aumenta el tiempo de
J
I
L
L
estabilidad, pero aumenta el tiempo de
arranque del oscilador
O
A
R
I
A
S
Temporizador Timer 1
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Temporizador Timer 2
V
El Timer2 se caracteriza por lo siguiente
Un registro TMR2 de 8 bits
L
A
D
I
Un registro TMR2 de 8 bits
Un registro PR2, que controla el mximo
conteo de TMR2
M
I
R
conteo de TMR2.
Un pre escalador de (1:1, 1:4, 1:16)
Un post escalador (1:1 a 1:16)
T
R
U
J
Un post escalador (1:1 a 1:16)
Se genera una interrupcin al igualarse TMR2
con PR2.
J
I
L
L
con PR2.
TMR2 es utilizado como base de tiempo para
el control del mdulo PWM
O
A
R
I
A
S
Temporizador Timer 2
V
El pre escalador y el post escalador son
L
A
D
I
puestos a su valor mnimo, cuando:
Se escribe en el registro TMR2.
M
I
R
Se escribe en el registro TMR2.
Se escribe en el registro T2CON
P RESET
T
R
U
J
Por un RESET
El valor de TMR2 no se pone en 0 si
J
I
L
L
T2CON es modificado.
O
A
R
I
A
S
Temporizador Timer 2
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Temporizador Timer2 Reg. T2CON V
Bit 7 Sin implementar
Bit 6 a 3 TOUTPS3:TOUTPS0: Timer2 Post
L
A
D
I
Bit 6 a 3 TOUTPS3:TOUTPS0: Timer2 Post
escalador
0000 = 1:1 Post escalador
0001 1 2 P t l d
M
I
R
0001 = 1:2 Post escalador
1111 = 1:16 Post escalador
Bit 2 TMR2ON: Bit de encendido
T
R
U
J
1 = Timer2 encendido
0 = Timer2 apagado
Bit 1 a 0 T2CKPS1:T2CKPS0: Timer2 Pre escalador
J
I
L
L
Bit 1 a 0 T2CKPS1:T2CKPS0: Timer2 Pre escalador
00 = Pre escalador en 1
01 = Pre escalador en 4
1x Pre escalador en 16
O
A
R
1x = Pre escalador en 16
I
A
S
Temporizador Timer2
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Temporizador Timer 3
V
El temporizador Timer3 posee las siguientes
L
A
D
I
caractersticas:
16 bits de tamao, conformado por dos
M
I
R
registros de 8 bits
Uso de oscilador externo.
T
R
U
J
Interrupcin por rebose del temporizador, al
pasar de FFFFh a 0000h
J
I
L
L
Se puede borrar por un disparo del mdulo
CCP.
O
A
R
I
A
S
Temporizador Timer 3
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Temporizador Timer 3 Reg. T3CON V
Bit 7 RD16: Habilita el modo de lectura
L
A
D
I
escritura de 16 bits
1 =Habilita la lectura escritura del Timer3
M
I
R
1 Habilita la lectura escritura del Timer3
en una operacin de 16 bits. El TMR3H, se
actualiza al leer o escribir en el TMR3L
T
R
U
J
actualiza al leer o escribir en el TMR3L
0 = Habilita la lectura escritura del Timer3
en dos operaciones de 8 bits
J
I
L
L
en dos operaciones de 8 bits. O
A
R
I
A
S
Temporizador Timer 3 Reg. T3CON V
Bit 6-3 T3CCP2:T3CCP1:Uso del Timer3 y
Ti 1 t b j l d l CCP
L
A
D
I
Timer1 para trabajar con el mdulo CCPx.
1x = Timer3 es la fuente de reloj para el
d l CCP d t i
M
I
R
mdulo CCP en modo captura y comparacin.
01 = Timer3 es la fuente de reloj para el
d l l f d l
T
R
U
J
mdulo CCP2 y Timer1 es la fuente de reloj
para el mdulo CCP1
J
I
L
L
00 = Timer1 es la fuente de reloj para el
mdulo CCP en modo captura y comparacin.
O
A
R
I
A
S
Temporizador Timer 3 Reg. T3CON V
Bit 5-4 T3CKPS1:T3CKPS0: Pre escalador del
Timer3
L
A
D
I
Timer3
11 = 1:8
10 =1:4
M
I
R
10 = 1:4
01 = 1:2
00 = 1:1
T
R
U
J
Bit 2 T3SYNC: Bit para sincronizacin de la fuente
de reloj externa de Timer3.
J
I
L
L
Cuando TMR3CS = 1:
1 = No sincronice el reloj externo con el interno
0 =sincronice el reloj externo con el interno
O
A
R
0 sincronice el reloj externo con el interno
Cuando TMR3CS = 0:
Es ignorado.
I
A
S
Temporizador Timer 3 Reg. T3CON V
Bit 1 TMR3CS: Seleccin de la fuente
d l j d Ti 3
L
A
D
I
de reloj de Timer3
1 = Fuente de reloj externa proveniente
M
I
R
del oscilador de Timer1 o del pin T1CKI
0 = Fuente de reloj interna (FOSC/4)
T
R
U
J
Bit 0 TMR3ON: Encendido de Timer3
1 =Habilita Timer3
J
I
L
L
1 Habilita Timer3
0 = Detiene Timer3
O
A
R
I
A
S
Temporizador Timer3
V
Para que el reset debido al evento de
L
A
D
I
disparo del mdulo CCP funcione, el
TIMER3, debe estar configurado con
M
I
R
TIMER3, debe estar configurado con
reloj interno o externo con
sincronizacin
T
R
U
J
sincronizacin.
El evento de disparo coloca en 0 el
J
I
L
L
timer 3 pero no genera una
interrupcin.
O
A
R
p
I
A
S
Temporizador Timer3
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo CCP
V
El mdulo CCP1 y CCP2, constan de 1 registro de
control CCPxCON y 2 registros de 8 bits auxiliares
L
A
D
I
control CCPxCON y 2 registros de 8 bits auxiliares
(CCPRxL y CCPRxH) para el manejo del mdulo.
Los modos de trabajo son captura, comparacin y
PWM
M
I
R
PWM.
Este mdulo hace uso de los temporizadores
Timer1, Timer2 y Timer3
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo CCP (Registro de control)
V
L
A
D
I
M
I
R
Bit 7-6 Sin implementar
T
R
U
J
Bit 7-6 Sin implementar
Bit 5-4 DCxB1:DCxB0: bit 0 y 1 de el ciclo de
t b j PWM d d t
J
I
L
L
trabajo PWM, no usado en modo captura y
comparacin
O
A
R
I
A
S
Modulo CCP (Registro de control)
V
Bit 3-0 CCPxM3:CCPxM0: Bits de seleccin del modo de trabajo
0000 = Modulo CCP apagado
L
A
D
I
0001 = Reservado
0010 = Modo compara, pulso a la salida al darse la igualdad (CCPxIF se
coloca en 1)
0011 = Reservado
M
I
R
0100 = Moda captura, cada flanco de bajada.
0101 = Modo captura, cada flanco de subida.
0110 = Modo captura, cada 4 flancos de subida.
0111 Modo captura cada 16 flancos de subida
T
R
U
J
0111 = Modo captura, cada 16 flancos de subida.
1000 = Modo compara, coloca el pin CCP en estado alto cuando se produce
la igualdad (CCPIF se coloca en 1)
1001 = Modo compara, coloca el pin CCP en estado alto al darse la
i ld d (CCPIF l 1)
J
I
L
L
igualdad (CCPIF se coloca en 1)
1010 = Modo compara, el pin CCP no cambia, CCPIF se coloca en 1 cuando
la igualdad se da.
1011 = Modo compara, se genera un evento trigger al producirse la
i ld d (CCPIF l 1)
O
A
R
igualdad (CCPIF se coloca en 1)
11xx = Modo PWM
I
A
S
Modulo CCP (Modo de Captura)
V
En modo de captura los registros CCPR1H:CCPR1L, capturan el
valor de los 16 bits de los registros de TMR1 o TMR3 cuando un
L
A
D
I
valor de los 16 bits de los registros de TMR1 o TMR3, cuando un
evento en el pin RC2/CCP1 ocurre.
Los eventos son:
M
I
R
Cada flanco de bajada
Cada flanco de subida
Cada 4 flancos de subida
T
R
U
J
Cada a cos de subda
Cada 16 flancos de subida
El pin del mdulo CCPP debe ser configurado como entrada
J
I
L
L
El timer 1 y 3 deben estar sincronizados con el reloj interno, si
estn contando pulsos externos.
Si se realiza un cambio de configuracin del modo de trabajo
O
A
R
Si se realiza un cambio de configuracin del modo de trabajo
del mdulo CPP, se debe apagar el mdulo. Ya que si no se
hace se puede generar una falsa interrupcin.
I
A
S
Modulo CCP (Modo de Captura)
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo CCP (Modo de Captura)
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo CCP (Modo Compara)
V
En modo compara, los 16 bits de los registros CCPR1 o (CCPR2)
son comparados constantemente con el valor de TMR1 o TMR3
L
A
D
I
son comparados constantemente con el valor de TMR1 o TMR3.
Cuando el valor de CCPRx se hace igual al de un Timer, ocurre
lo siguiente en los pines RC2/CCP1 o RC1/CCP2:
M
I
R
Se pone en estado alto
Se pone en estado bajo
Cambia de estado (Alto a Bajo o Bajo a Alto)
T
R
U
J
Ca ba de estado ( to a ajo o ajo a to)
Se mantiene sin cambios
El timer 1 y 3 deben estar sincronizados con el reloj interno, si
estn contando pulsos externos
J
I
L
L
estn contando pulsos externos.
Si se realiza un cambio de configuracin del modo de trabajo
del mdulo CPP, se debe apagar el mdulo. Ya que si no se
O
A
R
g
hace se puede generar una falsa interrupcin
I
A
S
Modulo CCP (Modo Compara)
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo CCP (Modo Compara)
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo CCP (Modo PWM)
V
El modo PWM, posee una resolucin de 10 bits.
Al borrar el registro CCPxCON la salida del mdulo
L
A
D
I
Al borrar el registro CCPxCON, la salida del mdulo
PWM se pone en su estado por defecto (0).
El registro Timer 2 es utilizado como base de tiempo
M
I
R
El registro Timer 2 es utilizado como base de tiempo
para la operacin de este mdulo.
El pos escalador de TMR2 no se utiliza.
T
R
U
J
El periodo PWM esta dado por:
Periodo PWM = [PR2 + 1] * 4* TOSC*(Pre escalador TMR2)
El i l d t b j ti d t t d d
J
I
L
L
El ciclo de trabajo o tiempo de cresta esta dado por:
Tiempo Cresta PWM = (CCPR1L:CCP1CON<5:4>)*TOSC
*(Pre escalador de TMR2)
O
A
R ( )
I
A
S
Modulo CCP (Modo PWM)
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo CCP (Modo PWM)
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo CCP (Modo PWM)
V
Como Configurar el mdulo PWM
Seleccione el periodo de trabajo mediante el registro
L
A
D
I
Seleccione el periodo de trabajo mediante el registro
PR2.
Seleccione el tiempo de cresta de PWMmediante el
M
I
R
Seleccione el tiempo de cresta de PWM mediante el
registro CCPR1L y los bits 5 y 4 de CCP1CON.
Configure el pin de salida del mdulo CPP como
T
R
U
J
salida.
Configure el preescalador de Timer2 en el registro
T2CON
J
I
L
L
T2CON.
Configure el mdulo CPP para modo de trabajo PWM.
O
A
R
I
A
S
Modulo CCP (Modo PWM)
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART V
El mdulo de comunicacin serial puede
L
A
D
I
ser configurado de la siguiente manera:
Sistema asncrono full duplex.
M
I
R
Sistema asncrono full duplex.
Sistema sincrnico half-duplex (Maestro).
Si t i i h lf d l (E l )
T
R
U
J
Sistema sincrnico half-duplex (Esclavo).
El mdulo USART cuenta con dos
J
I
L
L
registro de configuracin.
Registro de control de transmisin TXSTA
O
A
R
Registro de control de transmisin TXSTA.
Registro de control de recepcin RCSTA.
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Registro TXSTA) V g
L
A
D
I
M
I
R
Bit 7 CSRC: Seleccin de la fuente de reloj.
Modo Asncrono:
T
R
U
J
Modo Asncrono:
No se tiene en cuenta
Modo sincrnico:
J
I
L
L
Modo sincrnico:
1 = Modo maestro (reloj generado internamente por el
BRG)
0 =Modo Esclavo (reloj de fuente externa)
O
A
R
0 = Modo Esclavo (reloj de fuente externa)
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Registro TXSTA) V g
Bit 6 TX9: Habilitador de transmisin de 9-bit.
1 =9 bits para transmitir
L
A
D
I
1 = 9 bits para transmitir.
0 = 8 bits para transmitir.
Bit 5 TXEN: Habilitacin de Transmisin
M
I
R
Bit 5 TXEN: Habilitacin de Transmisin
1 = Transmisin habilitada
0 = Transmisin deshabilitada
T
R
U
J
Bit 4 SYNC: Seleccin del modo de trabajo
USART
d i i
J
I
L
L
1 = Modo sincrnico
0 = Modo asncrono
O
A
R
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Registro TXSTA) V g
Bit 3 Sin implementar

L
A
D
I
Bit 2 BRGH: Modo de seleccin de trabajo del Baud
Rate Generator
Modo asncrono:
M
I
R
Modo asncrono:
1 = Alta velocidad
0 = Baja velocidad
T
R
U
J
Modo Sincrnico:
No utilizado en este modo
Bit 1 TRMT E t d d l i t d i i t
J
I
L
L
Bit 1 TRMT: Estado del registro de corrimiento
1 = TSR vaco
0 =TSR lleno
O
A
R
0 = TSR lleno
Bit 0 TX9D: Noveno bit de datos a ser transmitido
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Registro RCSTA) V g
L
A
D
I
M
I
R
Bit 7 SPEN: Habilitador de puerto serial
1 =Puerto serial habilitado
T
R
U
J
1 = Puerto serial habilitado
0 = Puerto serial deshabilitado
Bit 6 RX9: Habilita la recepcin de noveno bit
J
I
L
L
Bit 6 RX9: Habilita la recepcin de noveno bit.
1 = Se van a recibir 9 bits.
0 =Se van a recibir 8 bits.
O
A
R
0 Se van a recibir 8 bits.
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Registro RCSTA) V g
Bit 5 SREN: Habilitacin de recepcin
L
A
D
I
simple.
Modo asncrono:
M
I
R
Modo asncrono:
No se tiene en cuenta
Modo sincrnico Maestro:
T
R
U
J
Modo sincrnico - Maestro:
1 = Habilita una recepcin simple
0 D h bilit l i i l
J
I
L
L
0 = Deshabilita la recepcin simple.
Modo sincrnico - Esclavo:
O
A
R
No se tiene en cuenta
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Registro RCSTA) V g
bit 4 CREN: Habilita la recepcin
L
A
D
I
continua.
Modo asncrono:
M
I
R
Modo asncrono:
1 = Habilita el receptor
0 =Deshabilita el receptor
T
R
U
J 0 = Deshabilita el receptor
Modo sincrnico:
1 H bilit l i ti h t l
J
I
L
L
1 = Habilita la recepcin continua, hasta que el
bit CREN se borre (CREN sobrescribe SREN)
0 =Deshabilita la recepcin continua
O
A
R
0 = Deshabilita la recepcin continua.
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Registro RCSTA) V g
bit 3 ADDEN: Habilita la deteccin de direcciones
Modo asncrono con noveno bit en 1 (RX9 =1):
L
A
D
I
Modo asncrono con noveno bit en 1 (RX9 1):
1 = Habilita la deteccin de direcciones, habilita la interrupcin
y lee el buffer de recepcin cuando RSR<8> se pone en 1
0 = Deshabilita la deteccin de direcciones, todos los bytes son
bd l b d b d d d
M
I
R
recibidos y el noveno bit se puede usar como bit de paridad
bit 2 FERR: Bit de error de Encuadre
1 = Error de encuadre
T
R
U
J
0 = No hay error de encuadre
bit 1 OERR: Bit de error de desborde
1 =Error de desborde
J
I
L
L
1 = Error de desborde
0 = No hay error de desborde
bit 0 RX9D: Noveno bit en recepcin
O
A
R
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Tasa de transferencia) V
Existen dos modos para calcular la tasa de transferencia de
puerto serial USART Modo alta y baja velocidad
L
A
D
I
puerto serial USART. Modo alta y baja velocidad.
El bit BRGH <TXSTA 2>, permite escoger el modo, mientras
que el registro SPBRG contiene la tasa de transferencia
id E l i X l l d SPBRG
M
I
R
escogida. En las ecuaciones X es el valor de SPBRG
Modo asncrono baja velocidad.
Tasa de transferencia =FOSC/(64(X+1))
T
R
U
J
Tasa de transferencia FOSC/(64(X+1))
Modo asncrono alta velocidad.
Tasa de transferencia = FOSC/(16(X+1))
J
I
L
L
Modo sincrnico baja velocidad.
Tasa de transferencia = FOSC/(4(X+1))
Modo sincrnico alta velocidad
O
A
R
Modo sincrnico alta velocidad.
No aplica
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono) V
En modo asncrono el USART utiliza el estndar de no
retorno a cero NRZ
L
A
D
I
retorno a cero NRZ.
Se utiliza un bit de inicio, 8 o 9 bits de datos y un bit
de parada
M
I
R
de parada.
El USART transmite y recibe primero el bit menos
significativo
T
R
U
J
significativo
El TX y RX pueden funcionar independientemente,
aunque utilizan la misma tasa de transferencia.
J
I
L
L
aunque utilizan la misma tasa de transferencia.
No se soporta bit de paridad por HW, aunque se
puede realizar por SW.
O
A
R p p
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono TX) V
El registro TSR es actualizado con el
L
A
D
I
valor contenido en TXREG, cuando la
transferencia de datos ha finalizado; es
M
I
R
transferencia de datos ha finalizado; es
decir cuando el bit de parada de un
dato previo ha sido transmitido
T
R
U
J
dato previo ha sido transmitido.
TXTREG se actualiza por SW.
J
I
L
L
Una vez que TXREG transfiere sus datos
a TSR queda vaco y se produce una
O
A
R
a TSR, queda vaco y se produce una
interrupcin.
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono TX) V
La bandera TXIF se pone en 1, independiente
L
A
D
I
del estado de TXIE y no puede ser borrada
por SW. Solo se borra cuando un nuevo valor
h d d
M
I
R
ha sido cargado en TXREG.
El bit TRMT, muestra el estado del registro de
T
R
U
J
corrimiento TSR, colocndose en 1 cuando
TSR esta vaco.
J
I
L
L
La bandera TXIF solo se pone en 1 cuando el
bit TXEN esta en 1
O
A
R
bit TXEN esta en 1
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono TX) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono TX) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono TX) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono TX) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono TX) V
Para configurar la transmisin se requiere:
1 I i i li l SPBRG l t d t f i
L
A
D
I
1. Inicializar el SPBRG para la tasa de transferencia
deseada. Con el bit BRGH se escoge si se desea alta o
baja velocidad.
M
I
R
j
2. Habilitar el puerto seria asncrono colocando en 0 el bit
SYNC y poniendo en 1 el bit SPEN.
T
R
U
J
3. Si se desean interrupciones colocar en 1 el bit TXIE.
4. Si se desea transmisin de noveno bit, colocar en 1 el
bit TX9
J
I
L
L
bit TX9.
5. Habilitar la transmisin colocando en 1 el bit TXEN el
cual colocar en 1 el bit TXIF.
O
A
R
cual colocar en 1 el bit TXIF.
6. Cargar el dato a transmitir en TXREG.
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono RX) V
Para habilitar una recepcin asncrona se requiere:
1 Inicializar el SPBRGpara la tasa de transferencia deseada
L
A
D
I
1. Inicializar el SPBRG para la tasa de transferencia deseada.
Con el bit BRGH se escoge si se desea alta o baja velocidad.
2. Habilitar el puerto serial asncrono colocando en 0 el bit SYNC
M
I
R
y poniendo en 1 el bit SPEN.
3. Si se desean interrupciones colocar en 1 el bit RCIE.
4 Si se desea recepcin de noveno bit colocar en 1 el bit RX9
T
R
U
J
4. Si se desea recepcin de noveno bit, colocar en 1 el bit RX9.
5. Habilitar la recepcin colocando el bit CREN en 1.
6. La bandera RCIF se pondr en 1 cuando la recepcin se
J
I
L
L
p p
complete y se generar una interrupcin si el bit RCIE fue
puesto en 1.
7 Leer el dato recibido del registro RCREG
O
A
R
7. Leer el dato recibido del registro RCREG.
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono RX) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
Modulo de Comunicacin serial Modulo de Comunicacin serial
USART (Modo asncrono RX) V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
JJ
I
L
L
O
A
R
I
A
S

También podría gustarte