La Gama Pic (18f452)
La Gama Pic (18f452)
La Gama Pic (18f452)
L
Contenido.
A
D CAPITULO 1. Introducción
I
M Evolución de los sistemas digitales
I
R
Estado del Arte
Tendencias
T
R
Conceptos generales de procesadores
U Qué
é es un microprocesador
J Qué es un microcontrolador
I
L
Qué es un DSP
L Q é
Qué es un
n Dispositivo
Dispositi o Lógico Config
Configurable
able
O
Terminología utilizada en la arquitectura de
A procesadores
R
I
A
S
V
L
Contenido.
A
D
I
CAPITULO 2. Conceptos Básicos de
M
I Microcontroladores Gama Alta
R
A
R
I
A
S
V
L
Contenido.
A
D CAPITULO 3. Microcontroladores PIC de Gama Alta.
I Familia 18
M
I
Arquitectura
q
R Capacidades de computo
Memoria
T
R
Periféricos especiales
U Módulos
ó HW
J Set de instrucciones
I
L CAPITULO 4. Herramientas de programación y
L simulación
i l ió
O
Lenguaje Ensamblador
A Compiladores C
R Simuladores (MPLAB y PROTEUS)
I
A
S
V
L
Contenido.
A
D
I
CAPITULO 5. Arquitecturas Mixtas
M
I Introducción
R
T
Sistemas Multiprocesadores
R
U
Arquitecturas Electrónicas Paralelas
J
I
Procesadores en Sistemas de
L
L
Telecomunicaciones y Sistemas
O
Industriales
CAPITULO 6.
6 Proyecto Final
Final.
A
R
I
A
S
Evolución de los Sistemas
V
L
Digitales
A
D
I
La aparición del transistor, condujo a su
M
I uso como conmutador (lógica binaria).
R
T
Aparición de técnicas de integración
R
U
electrónica (Microelectrónica),
(Microelectrónica) primeros
J
I
circuitos integrados Digitales.
L
L
O
Circuitos Integrados Monolíticos
A
R
I
A
S
A
R
I
A
S
El Microprocesador
Controlador y
Microcontrolador
Recibe el nombre de controlador el
p
dispositivo que
q se emplea
p para
p el
gobierno de uno o varios procesos.
Ejemplos:
j Horno, Automóvil.
Arquitectura Cambiante en el tiempo.
Discreto
Integrado Microprocesador.
Integrados Microcontrolador.
El Microcontrolador
Características:
El Microcontrolador
A
Arquitectura
it t Interna:
I t
Procesador.
Memoria no volátil para contener el programa.
Memoria de lectura y escritura para guardar los datos.
Líneas de E/S para los controladores de periféricos:
Comunicación paralelo.
C
Comunicación
i ió serie.
i
Diversas puertas de comunicación (USB...)
Recursos auxiliares:
Circuito de reloj
reloj,
Temporizadores
Perro guardián (watchdog)
Conversores A/D y D/A
Comparadores analógicos
Protección ante fallos de la alimentación
Estado de reposo o de bajo consumo
El Microcontrolador
El mercado de los
microcontroladores
Comunicaciones: 30%
Consumo g general: 27%
Automoción: 18%
Informática: 15%
Industria: 10%
Que microcontrolador Emplear
Costos
Aplicación
Procesamiento de datos
Entrada y salida
Consumo de energía (CMOS)
Memoria
Ancho de Palabra
Diseño de la placa
V
L
Segmentación
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Ortogonalidad
A
D
I
La ortogonalidad de las instrucciones
M
I hace posible ejecutar cualquier
operación, sobre cualquier registro,
R
T
R utilizando cualquier modo de
U
J
I
direccionamiento.
L
L
O
A
R
I
A
S
Cristal
RC
Externo
Velocidad
l d d vs. Energía
í
Recursos Especiales
Perro Guardián
Corrección de fallos
o bloqueos
Refresco para evitar
acciones
Temporización
Reset
Recursos Especiales
Timers
Recursos Especiales
Brownout
Recursos Especiales
Puertas de comunicación
xUART, adaptador de comunicación serie
asíncrona.
xUSART,
USART adaptador
d t d de d comunicación
i ió serie i
síncrona y asíncrona
xPuerta
Puerta paralela esclava para poder conectarse
con los buses de otros microprocesadores.
xUSB (Universal Serial Bus), que es un moderno
b serie
bus i para los
l PC.
PC
xBus I 2 C, que es un interfaz serie de dos hilos
desarrollado por Philips.
xCAN (Controller Area Network), para permitir la
adaptación con redes industriales
V
L
Estado del Arte y Tendencias
A
D
I
Las empresas líderes a nivel mundial, en
M
I
sistemas embebidos de uso general son:
R
INTEL/AMD (Microprocesadores)
T
R TEXAS ((Microcontroladores y DSP))
U
J ALTERA (PLD’S, FPGA’S DSP’S)
I
L
L
XILINX ((PLD’S,
S, FPGA’S
G S DSP’S)
S S)
O
MICROCHIP (Microprocesadores)
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
INTEL.
M
I
R
En la actualidad ofrecen arquitecturas
T
revolucionarias multiprocesador.
Intel® Core™2 Quad Processor
R
U
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D Microcontroladores Texas Instruments
I
M
Familia MSP430
I
R
Poseen un manejo de potencia muy bajo,bajo con
una CPU de tipo RISC de 16 bits
T
R Poseen una serie de pperiféricos analógicos
g y
U
J
digitales, para mediciones precisas..
I Incluyen ADCs, DACs, amplificadores
L
L
operacionales comparadores
operacionales, comparadores, drivers LCD y
O sistemas supervisorios de nivel de voltaje.
A Ultra-bajo consumo de potencia.
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D Microcontroladores Texas Instruments Familia
I
M
TMS470
I
Poseen una CPU tipo RISC de 32 32-bits
bits RISC
R
V
L
Estado del Arte y Tendencias
A
D
I
DSP TMS320C5000 Alta eficiencia
M
I de energía.
R
T
Estos DSPs son optimizados para
R
U
elaborar equipos portátiles de uso
J
I
personal. Como reproductores
L
L personales de audio
audio, receptores GPS
GPS,
equipos médicos portátiles, telefonía
O
A
R celular y cámaras digitales.
celular, digitales
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
DSP TMS320C2000 Optimizado
M
I para Control.
R
T
Optimizados para trabajo en técnicas
R
U
de control digital.
digital
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
PLD (Programable Logic Device)
M
I MAX II (CPLD)
R
Bajo consumo de energía, alta densidad
T
R Utiliza memoria FLASH
U
J Soporta voltajes de 1.8-V, 2.5-V & 3.3-V
I
L
L
MAX
O
Bajo consumo y densidad moderada.
A
R
Soporta
p voltajes
j de 2.5-V,, 3.3-V o 5.0-V
I
A
S
V
L
Estado del Arte y Tendencias
A
D FPGA (Field Programable Gate Array)
I
M CICLONE II
I
R Soporta Nios II embedded processor
Multiplicadores digitales 18x18 para DSP’s Embebidos
T
R Amplio
p o portafolio
po a o o de IP.
U
J CICLONE
I
L
Soporta Nios II embedded processor
L Amplio
l portafolio
f l de
d IP.
O
STRATIX II (Alta Densidad)
A
R
Soporta Nios II embedded processor
I Interfaces de I/O de alta velocidad
A
S Amplio portafolio de IP.
V
L
Estado del Arte y Tendencias
A
D STRATIX (Alta Densidad)
I
M Soporta Nios II embedded processor
I
R
Bloques para DSP
Interfaces de I/O de alta velocidad
T
R
Amplio portafolio de IP.
U
J
I
L
STRATIX GX (Alta Densidad)
L Todas las características de los otros STRATIX
O
Transceptores de 3.125-Gbps
A Amplio portafolio de IP
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
SPARTAN 3 E (FPGA)
M
I
Posee alrededor de 1.2 millones de
R compuertas
T
R
Tecnología de 90nm
U
J
VIRTEX 4 (FPGA)
COOL RUNNER ((CPLD))
I
L
L
O Soporta voltajes de 1.5 a 3.3V en sus
A sistemas I/O
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
IP CORE
M
I
R
Herramientas de desarrollo para diseño
T
de controladores. Y procesadores de
R
U
diversos tipos que corren sobre sus
J
I
plataformas hardware.
L
L
O
Processor Central
Central.
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Estado del Arte y Tendencias
A
D
I
Microcontroladores de Gama Media de
M
I la familia 16FXXX
R
T
Microcontroladores de Gama Alta de la
R
U
familia 18FXXXX
J
I Procesadores digitales de Señales
L
L
O
30FXXX
A
R
I
A
S
V
L
DSP Definición
A
D
I
Estrictamente hablando, el término DSP se
M
I
aplica a cualquier chip que trabaje con
R señales representadas de forma digital.
T
R
Un Procesador Digital de Señales es un tipo
U
J
de microprocesador o microcontrolador,
I increíblemente rápido y poderoso para
L
L operaciones repetitivas en las que se realicen
O
un gran número de sumas y multiplicaciones.
A
R
I
A
S
V
L
Que hace a un DSP un DSP?
A
D
I
Capacidad de realizar operaciones de
M
I multiplicación y acumulación (MACs) en
sólo un ciclo de reloj.
R
T
R
U
Manejo de aplicaciones en tiempo real
J
I Arquitectura que soporte un flujo de
L
L
O
datos a alta velocidad hacia y desde la
A
unidad de cálculo y memoria.
R
I
A
S
V
L
Que hace a un DSP un DSP?
A
D
I
Unidades DMA (Direct Memory Acess)
M
I
R
Generadores de direcciones (DAG’s)
(DAG s)
T Mecanismo efectivo de saltos para
ejecución de loops
R
U
J
I
L
Alta velocidad de procesamiento de
L
O
operaciones aritméticas
é
A
R
I
A
S
Diferencias entre
V
L
Microcontrolador y DSP
A
D
I
Estructura de memoria que poseen.
M
I Cantidad de unidades de ejecución
j que
q
R
poseen, (operaciones en paralelo).
T
R El DSP tiene características diseñadas ppara
U
J
soportar tareas de altas prestaciones,
I
L
repetitivas y numéricamente intensas.
Microprocesadores de propósito general y
L
O
A
microcontroladores no están especializados
R
I
para ninguna
i aplicación
li ió en especial.
i l
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
Los DSP’s tienen en común ciertas
M
I características como:
R
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
Las operaciones típicas en los DSPs
M
I son:
R
Sumas
T
R
U
Multiplicación
J
I
Retardos
L
L Manejo de matrices y arreglos de datos.
datos
O
A
R
I
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
La suma y Multiplicación. Requiere
M
I el uso de:
R
Dos operandos
T
R
U
Alto rendimiento.
rendimiento
J
I
Almacenamiento del resultado.
L
L
O
A
R
I
A
S
Requerimientos HW y
V
L
Operaciones Comunes
A
D
I
Manejo de Arreglos
M Búsqueda de valores de lugares consecutivos de
I
R
memoria i
Copia de datos de memoria a memoria
T
R Multiplicación y suma en paralelo.
U
J Acceso múltiple a memoria
I
L
Registros temporales
L
O
Eficiente
f generación
ó de direcciones.
Características especiales como retardos o
A
R
direccionamiento cíclico
I
A
S
La Gama Alta de los PIC
(18F452)
V
L
Características Generales
A
D
I
Código compatible con la familia 16 y
M
I 17 de los PIC
R
T
Reloj que puede trabajar por encima de
R
U
10 MIPs.
MIPs
J
I Uso de cristal de 40 Mhz.
L
L Cristales de 4 Mhz a 10 Mhz utilizando un
O
multiplicador de frecuencia PLL.
A
R
I
Instrucciones de 16 bits con bus de
A
S
datos de 8 bits.
V
L
Características Generales
A
D
I
Prioridad de interrupciones
M
I
R
Multiplicador hardware de 8 x 8 que
T
funciona en un solo ciclo de máquina.
Tres pines para manejo de
R
U
J
I interrupciones externas.
L
L
O
Manejo ded niveles
l de
d corriente de
d 25
A mA. en modo fuente y sumidero
R
I
A
S
V
L
Características Generales
A
D
I
Timer 1 de 16 bits, Timer 2 de 8 bits.
M
I
R
Timer 3
3, (no lo posee la gama media),
media)
T
de 16 bits (65535 conteos).
Dos módulos de
R
U
J
I Captura/Comparación/PWM.
L
L
O
Módulo
ód l de
d comunicaciónó seriall con
A soporte para RS-485 y RS-232
R
I
A
S
V
L
Características Generales
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Características Generales
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Oscilador. (18F452)
LP Cristal de baja potencia.
potencia
Se poseen 3 bits XT Cristal resonador de cuarzo
(FOSC2, FOSC1 y
FOSC0) para lla HS Cristal resonador de alta velocidad
configuración del (por encima de 8 Mhz.)
tipo
p de oscilador a HS + PLL Cristal de alta velocidad con PLL
utilizar. habilitado.
RC Oscilador RC externo.
RCIO Resistor externo y capacitor con
pin I/O habilitado.
EC Relojj externo.
ECIO Reloj externo con pin I/O
habilitado
Oscilador en modo HS,, XT,, LP
V
L
. (18F452)
A
D
I
M
I
R
T
R
U
J
I
L
L Una capacitancia elevada,
O
incrementa la estabilidad del
A oscilador, pero también incrementa
R los tiempos de inicio del oscilador
I
A
interno.
S
Oscilador en modo RC .
(18F452)
Con el Oscilador en modo,
RC,, FREC/4
/ esta disponible
p
en el pin OSC2.
Si FREC/4 no se necesita, se
recomienda utilizar el modo
RCIO, para ahorrar
corriente.
El modo
d RCIO,
RCIO es igual
i l all
modo RC, con la diferencia
de qque el pin
p OSC2 se
comporta como un pin de
I/O normal (RA6).
V
L
Oscilador Externo. (18F452)
A
D
I Cuando se utiliza el oscilador externo, se puede utilizar el
M
I
modo EC,, el cual se tiene FREC/4
/ por
p el pin
p OSC2.
R
También se puede tomar el modo ECIO, para ahorro de
T corriente, el cual OSC2 queda como un pin de propósito
R
U
general (RA6)
J
I
L
L
O
A
R
I
A
S
PLL. (18F452)
V
L
PLL. (18F452)
A
D
I
El PLL se utiliza solo cuando el oscilador se ha
M
I
configurado en modo HS.
R
Si la programación del cristal se ha realizado
T
R
en otro modo, el PLL no se habilita y la
U
J
fuente de reloj directa proviene de OSC1.
I
L
Existe un timer que bloquea el PLL, hasta que
L
O
no se halla
h ll logrado
l d por parte de
d él ell
A
enganche al cuádruplo de la frecuencia de
R
I
entrada
entrada.
A
S
T
R
U
BIT 7 a 1 No utilizados
J
I
BIT 0 SCS: System Clock Switch bit
L Cuando el BIT OSCSEN este en 0 y T1OSCEN este en 1:
L
O 1 = Utilice el oscilador del timer 1.
0 = Utilice el oscilador primario.
A
R Si el oscilador del Timer1 no esta habilitado
habilitado, cualquier escritura
I
A
en el BIT SCS es ignorada y se utiliza el oscilador principal
S
Diagramas de Tiempo de
V
L
Transiciones (18F452)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
El contador de programa, se incrementa cuando ocurre
A
la octava transición de estabilización del Timer 1
R
I
A
S
Diagramas de Tiempo de
V
L
Transiciones (18F452)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
Para la transición entre el oscilador de timer1 y OSC1, existe
A
p de estabilización de 1024 ciclos de osc1,, antes de
un tiempo
R
I comenzar a contar los 8 periodos de sincronización de reloj,
A después de lo cual el reloj del micro funciona con OSC1.
S
Diagramas de Tiempo de
V
L
Transiciones (18F452)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Diagramas de Tiempo de
V
L
Transiciones (18F452)
A
D
I
Cuando la transición de oscilador es
M
I
entre el timer1 y OSC1, existe un
R
tiempo de estabilización de 1024 ciclos
T
R
de osc1 y luego un tiempo necesario
U
J
para que ell PLL enganche
h la
l frecuencia
f i
I de reloj de OSC1, antes de comenzar a
L
L contar los 8 periodos de sincronización
de reloj, después de lo cual el reloj del
O
A
R micro comienza a funcionar con OSC1.
I
A
S
V
Oscilador. (18F4550)
L
A
D El PIC18F4550 puede operar en 12 modos
I
M de oscilador.
I
R M d XT Cristal
Modo C i t l Resonador.
R d
T XTPLL Cristal Resonador con PLL.
R
U HS Cristal de alta velocidad.
velocidad
J
I HSPLL Cristal de alta velocidad con PLL.
L
L EC Reloj externo con salida de FOSC/4.
FOSC/4
O
ECIO Reloj externo con I/O en RA6
A
R ECPLL Reloj externo con PLL
I
A
S
V
Oscilador. (18F4550)
L
A
D ECIO Reloj externo con I/O en RA6 y PLL.
I
M INTHS Oscilador Interno, usado como fuente
I
del micro
micro. Y oscilador HS usado como fuente
de reloj para USB.
R
T
R
INTXT Oscilador Interno, usado como fuente
U d l micro.
del i Y oscilador
il d XT usadod como fuente
f t de
d
J
I
reloj para USB.
L INTIO Oscilador Interno,, usado como fuente
L
O
del micro. Y oscilador EC usado como fuente de
reloj para USB 12. INTCKO Oscilador Interno,
A
R
usado como fuente del micro. Y oscilador EC
I usado como fuente de reloj para USB y FOSC/4
A
S
saliendo por RA6
T
R
U
J
I
L
L Una capacitancia elevada,
O
incrementa la estabilidad del
A oscilador, pero también incrementa
R los tiempos de inicio del oscilador
I
A
interno.
S
Arquitectura del Oscilador.
(18F4550)
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
Oscilador. (18F4550)
L
A
D Oscilador Interno.
I
M Existen 2 fuentes de reloj internas, que
I
permiten el no uso de oscilador,
oscilador cuando USB
esta deshabilitado.
R
T
R
La fuente principal (INTOSC) con 8 MHz con
U postescalador
t l d que genera frecuencias
f i de
d 31
J
I
kHz a 4 MHz
L La otra fuente de relojj es el oscilador RC
L
O
(INTRC) con frecuencia nominal de 31 kHz.
También es usado como fuente de reloj para
A
R
módulos como:
I Power-up Timer
A
S Watchdog Timer
V
Oscilador. (18F4550)
L
A
D Oscilador Interno.
I
M
Existen 4 modos de trabajo que determinan la
I fuente de reloj del USB
USB.
R
INTHS: El reloj de USB proviene del oscilador
T principal en modo HS.
R
U
INTXT: El reloj de USB proviene del oscilador
J principal en modo XT.
I
L
INTCKO: El reloj de USB proviene del oscilador
L externo con entrada en OSC1/CLKI; OSC2/CLKO es
O
la salida de FOSC/4.
A INTIO: El reloj de USB proviene del oscilador
R
externo con entrada en OSC1/CLKI; OSC2/CLKO
I
A
funciona como un pin I/O digital (RA6).
S
V
Oscilador. (18F4550)
L
A
D
I
M
I
R
T
R
U bit 7 INTSRC:
INTSRC SSelección
l ió ddell O
Oscilador.
il d
J
I 1 = reloj de 31.25 kHz derivado del reloj de 8
L
L MHz de INTOSC
O
0 = reloj de 31 kHz derivado del reloj RC
A
R
interno INTRC.
I
A bit 6-5 Sin implementar.
S
V
Oscilador. (18F4550)
L
A
D bit 4-0 TUN4:TUN0: bits de
I
M sntonización
I
R
01111 = Máxima
Má i frecuencia.
f i
T
••
R 00001
0000
U
J 00000 = frecuencia central. El oscilador corre
I a la frecuencia calibrada en fábrica.
L
L 11111
O
••
A
R
10000 = Frecuencia mínima.
I
A
S
V
L
Organización de la memoria
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Organización de la memoria
A
D
I
El PIC18FXX2 posee un contador de
M
I programa de 21 bits que permite ubicar
una capacidad de memoria de 2Mega
R
T
R Palabras
U
J
I
Las posiciones de memoria mas allá de
L
L la memoria física construida se leen
como 0.
O
A
R
I
A
S
V
L
Organización de la memoria
A
D
I
El PIC18F452 posee 32 K Bytes de
M
I memoria FLASH de programa,
agrupados de a 2 Bytes, con el fin de
R
T
R contener instrucciones complejas.
U
J
I
Por lo tanto este dispositivo puede
L
L almacenar 16mil instrucciones simples.
simples
O
A
El vector de RESET se halla en la
R
I
dirección 0000h y el de interrupciones
A
S
en las posiciones 0008h y 0018h.
Organización
g de la memoria
V
L
18f452
A
D
I Hay un stack de 31 niveles, lo
M que permite tener 31 posibles
I
R
sub
b rutinas
ti anidadas.
id d
T
Existen dos vectores de
R p ,p
interrupciones, para manejoj de
U interrupciones de alta y baja
J
I
prioridad.
L
L
32K de memoria en pasos de 2
O en dos, para un total de 16K de
palabras. De 7FFF en adelante
A
R
no existe memoria
I implementada físicamente y se
A lee como 0.
S
Organización de la memoria
18f4550
V
L
Organización de la memoria (Pila)
A
D
I
El Stack de los PIC18FXX2 posee 31 palabras
M
I
de 21 bits, direccionadas por un apuntador de
R Stack de 5 bits.
T
R
Cada vez que se produce una interrupción o
U
J
un llamada a subrutina, el apuntador del Pila
I se incrementa en 1 y el valor del contador de
L
L programa es almacenado en una de las
O
palabras de 21 bits.
A
R
I
A
S
T
R
BIT 7 STKOVF: Bandera de Pila llena
U
1 = Pila
Pil llena
ll o rebosada.
b d
J 0 = Pila sin llenar
I
L BIT 6 STKUNF: Bandera de pila vacía.
L 1 = Ocurrió un vaciado de la pila.
O
0 = No ha ocurrido un vaciado de la pila.
A
R
BIT 5 Sin implementar:
p Leído como '0'
I BIT 4-0 SP4:SP0: Bits de dirección de la
A
S
pila
T
R
U
J
I
L
L
O
A
R
I
A
S
Organización de la memoria (Pila)
V
L
18F452 y 18F4550
A
D La cabecera de la Pila puede ser leída y
I
M
escrita, a través de los registros TOSU, TOSH
I y TOSL,
TOSL que mantienen el contenido
R
apuntado por el registro STKPTR.
T
R
Después de un call, rcall o una interrupción,
U este
t valor
l puede d ser modificado
difi d por SW y
J
I
cuando se genere el retorno de la subrutina,
L se puede dirigir su regreso a un lugar
L
O
dif
diferente definido
d fi id por ell usuario.
i Solo
S l se
debe tener en cuenta deshabilitar las
A
R
p
interrupciones globales.
g
I
A
S
V
L
Organización de la memoria (Pila)
A
D
I
(BIT STVREN en 0) cuando se
M
I
desborda la ppila el BIT STKFUL se
R
pone en 1, cualquier dato adicional
T a escribirse en la pila, no
sobrescribe la posición 31,
31 si no
R
U
A
R
I
A
S
V
L
Instrucciones PUSH y POP
A
D
I
La instrucción PUSH, es utilizada para
M
I colocar en la cabecera de la pila el valor
actual del contador de programa,
R
T
R produciendo un incremento en STKPTR.
U
J
I
Se puede incluir una dirección de
L
L retorno cualquiera en la pila utilizando
PUSH y cargando ese valor en TOSU,
O
A
R TOSH y TOSL
I
A
S
V
L
Instrucciones PUSH y POP
A
D
I
La instrucción POP, se utiliza para
M
I descartar el valor ubicado en la
cabecera de la pila y reemplazarlo por
R
T
R el valor ubicado previo a este, sin
U
J
I
producir ningún traumatismo en el
L
L
sistema.
Con la instrucción POP se produce un
O
A
R decremento en el apuntador de la pila.
pila
I
A
S
V
L
Contador de Programa
A
D
I
El contador de programa (PC) esta
M
I
conformado p por los registros
g PCL, PCH
R
y PCU.
T
R
El registro
g PCL puede ser leído y escrito
U
J
directamente.
Los registros PCH y PCU pueden ser
I
L
L
O leídos y escritos solo a través de los
A registros PCLATH y PCLATU
R
I
A
S
V
L
Temporización / Instrucciones
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporización / Instrucciones
A
D La entrada de reloj es dividida internamente
I
M
en cuatro señales desfasadas 900. Q1, Q2, Q3
I y Q4.
Q4
R
El contador de programa es incrementado
T
R
cada flanco subida de Q1.
U
J
La búsqueda de una instrucción es realizada
I de Q1 a Q4, pero es colocada en el registro
L
L
de instrucción
st ucc ó cada QQ4
O Las instrucciones son decodificadas y
A
ejecutadas en el periodo de tiempo de Q1 a
R Q4
Q4.
I
A
S
Instrucciones en la Memoria de
V
L
programa
A
D
I
Las instrucciones para el PIC18F452 son
M
I de 16 bits, y su byte menos significativo
es siempre almacenado en una
R
T
R dirección par.
U
J
I
El BIT menos significativo del contador
L
L de programa es siempre 0 0, por lo que el
incremento de las direcciones se hace
O
A
R de dos en dos
dos.
I
A
S
Instrucciones en la Memoria de
V
L
programa
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Instrucciones de 32 bits
A
D
I
Los microcontroladores PIC18FXX2, posee 4
M
I
instrucciones de dos palabras de longitud (32
R bits), ellas son MOVFF, CALL, GOTO y LFSR.
T
R
La segunda palabra de esas instrucciones
U
J
posee los 4 BITS mas significativos en 1 y se
I comporta como un tipo especial de NOP.
L
L
O
L otros 12 BITS de
Los d la
l segunda d palabra
l b
A
contienen los datos a ser utilizados por la
R instrucción
instrucción.
I
A
S
V
L
Instrucciones de 32 bits
A
D
I
Cuando la primer palabra es ejecutada,
M
I
g
los datos contenidos en la segunda son
R
accedidos.
T
R
Pero si el PC accede primero la segunda
g
U
J
palabra, esta se ejecuta como un NOP.
Esto es útil cuando previamente a una
I
L
L
O instrucción de dos palabras, existe una
A instrucción de salto condicional.
R
I
A
S
V
L
Instrucciones de 32 bits
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Memoria de Datos 18F452
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Memoria de Datos 18F4550
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Memoria de Datos
A
D
I
La memoria de datos esta dividida en 16
M
I
bancos, cada uno de 256 Bytes.
R
En el caso del 18F4550 los bancos 4 al 7
T
R
están implementados para el uso del
U protocolo
t l USB,
USB pero cuando d estet protocolo
t l
J
I no se usa sirven como memoria de
L
L
propósito general.
general
O
La zona de FSR se halla localizada en el
A
R
banco
ba co 155 después de la a pos
posición
c ó F80h
80 (de
I
A
la mitad hacia el final)
S
V
L
Memoria de Datos (Direccionamiento)
A
D
I
Se pueden identificar 3 formas de
M
I acceder la memoria de programa de los
PIC18FXX2.
R
T
R
U
Direccionamiento indirecto: requiere el uso
J de los registros FSRn (12 BITS) y el
I
L correspondiente registro indirecto INDFn).
L
O Direccionamiento directo: requiere el uso
A del registro BSR, el cual en sus BITS 0 a 3
R
I contiene la dirección del banco escogido.
A
S
V
L
Memoria de Datos (Direccionamiento)
A
D Otra forma de direccionamiento directo es:
I
M Para asegurar que los registros (SFR Y GPR) sean
I accedidos en un solo ciclo de instrucción,
instrucción
R
independiente del Banco apuntado por el registro
T
BSR, Existe el ACCESS BANK, el cual esta formado
R por una parte
p p del banco 0 y un segmento
g del
U banco 15
J
I Un BIT en la instrucción especifica si la operación
L a utilizar se hace a través del ACCESS BANK o con
L
ell registro BSR, a ese BIT se le
l denomina
d “a”
“ ”
O
(access bit) por defecto vale 0 y apunta al ACCESS
A BANK
R
I
A
S
Memoria de Datos RAM USB
Cuando el modulo USB esta habilitado, la
memoria en esos bancos se usa como un buffer
USB.
USB
Esta memoria es compartida entre el núcleo del
micro y el módulo USB, permitiendo la
transferencia de datos entre los dos.
El banco 4 de memoria RAM, se utiliza para el
manejoj del
d l USB,
USB cuandod este
t módulo
ód l esta
t
activo, y no puede ser usado para otros
propósitos
p p en este tiempo.
p
T
R
U
J
I
L
L
O
A
R
I
A
S
Memoria de Datos (Registros FSR)
V 18F452
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
El registro BSR
A
D El registro BSR<3:0> contiene los 4 bits mas
I
M
significativos de los 12-BITS de direcciones de la
I memoria RAM y se utilizan para seleccionar el banco
R
de trabajo.
T Los BITS BSR<7:4> se leen como ’0’s.
R
U L instrucción
La i t ió MOVLB se utiliza
tili para ayudard en la l
J
I
selección del banco.
L La instrucción MOVFF ignora
g el registro
g BSR,, ya
y que
q
L
O
los 12-BITS de dirección se hayan incluidos en la
instrucción.
A
R Cada banco posee un tamaño de 256 bytes.
I
A
S
V
L
Direccionamiento Indirecto.
A
D
I
El direccionamiento indirecto se realiza
M utilizando dos registros, el FSRn y el INDFn.
I
R El registro FSR es utilizado como un puntero
T
a una localidad de memoria que va a ser
R
U
escrita o leída.
leída
J
I
El direccionamiento indirecto es posible
L utilizando el registro
g INDF,, ya
y que
q cualquier
q
instrucción que lo utilice, accede
L
O
A
directamente a la posición de memoria
R apuntada por FSR.
FSR
I
A
S
V
L
Direccionamiento Indirecto.
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Multiplicador Hardware
A
D
I
El multiplicador HW que se posee es de 8
M
I
bits.
R
El resultado se almacena en dos registros
T
R
PRODH y PRODL
U
J
La multiplicación de 8x8 se realiza en 1 ciclo
I
L
de instrucción.
El multiplicador HW permite a este dispositivo
L
O
A
realizar operaciones sencillas tipo DSP
R
I
A
S
V
L
Puertos
A
D
I
Los puertos de los PIC de la familia 18 en
M general constan de 3 registros para su
I
R
operación.
ió
T
El registro TRIS, el cual controla la dirección
R
U
de funcionamiento del puerto.
puerto
J
I
El registro PORT, que lee los niveles de
L entrada en el ppuerto.
L
O El registro LAT, el cual es el LATCH de salida
A del puerto.
R
I
A
S
V
L
Puertos
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Puerto A
A
D Este puerto se comporta como I/O digital y como
I entrada analógica
M
I El registro TRISA, configura este puerto como
R entrada o salida.
T
Si un pin se va a utilizar como canal analógico,
R previamente se debe haber configurado
p g como
U entrada en TRISA
J
I Existe el registro LATA, que permite el acceso I/O al
L latch del p
puerto.
L
O El pin RA4 es de colector abierto.
Para configurarlo sus pines como analógicos o
A
R
digitales, se recurre al registro ADCON1
I
A
S
V
L
Puerto A (18f452)
A
D
I
M
I PIN Tipo
po Entrada
t ada Función
u có
R RA0/AN0 TTL Pin I/O ó entrada analógica 0.
T
RA1/AN1 TTL Pin I/O ó entrada analógica 1
R RA2/AN2 TTL Pin I/O ó entrada analógica 2
U
RA3/AN3 TTL Pin I/O ó entrada analógica 3
J
I RA4/T0CKI Colector Abierto Pin I/O ó entrada del timer 0, con entrada
L tipo Schmit Trigger
L
RA5/AN4 TTL Pin I/O ó entrada analógica 4
O
RA6/OSC2/CLKO TTL Entrada del oscilador 2, o salida de frecuencia
A de reloj.
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
V
Puerto A (18f4550)
L
A Pin Función I/O Descripción
D Type
I
M RA0/AN0 RA0 DIG/TTL Entrada o salida digital.
I AN0 ANA Canal 0 de entrada A/D y entrada del comparador C1(
C1(-).
). (configuracion por defecto)
R RA1/AN1 RA1 DIGTTL Entrada o salida digital.
AN1 ANA Canal 1 de entrada A/D y entrada del comparador C2(-). (configuración por defecto)
T RA2/AN2/ RA2 DIG/TTL Entrada o salida digital.
VREF-/CVREF
R AN2 ANA Canal 2 de entrada A/D y entrada del comparador C2(
C2(+).
). (configuración por defecto)
U VREF- ANA Referencia de voltaje para el A/D y voltaje de referencia del comparador; entrada baja
J
CVREF ANA Referencia del voltaje de salida del comparador.
I
RA3/AN3/ RA3 DIG/TTL Entrada o salida digital.
L
VREF+
L AN3 ANA Canal 3 de entrada A/D y entrada del comparador C1(+). (configuración por defecto)
O VREF+ ANA Referencia de voltaje para el A/D y voltaje de referencia del comparador; entrada alta
RA4/T0CKI/ RA4 DIG/Sch Entrada o salida digital.
C1OUT/RCV mit
A
T0CKI Schmit Entrada de reloj del timer 0
R
C1OUT DIG Salida del comparador 1, tiene prioridad sobre los datos en el puerto
I
A RCV TTL Transeiver externo USB (Entrada RCV)
S
V
Puerto A (18f4550)
L
A
D
I Pin Función I/O Type Description
M
I RA5/AN4/S RA5 DIG/TTL Entrada o salida digital.
digital
R S/
HLVDIN/C
2OUT AN4 ANA Canal 4 de entrada A/D (Configuración por defecto).
T
R SS TTL Entrada esclava para e modo SSP (MSSP module).
module)
U
J C2OUT DIG Salida del comparador 2.
I
L
OSC2/CLK OSC2 ANA Conexión del oscilador principal (Modo XT y HS)
L O/ RA6
O
CLKO DIG Salida de reloj (FOSC/4); habilitado en modo EC, ECPLL y INTCKO.
A
RA6 DIG/TTL Entrada y Salida Digital, únicamente disponible en modo ECIO, ECPIO y INTIO.
R
I VREF+ ANA Voltaje de referencia del A/D y el comparador (entrada alta).
A
S
V
Puerto A (18f4550)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Puerto B 18F452
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Puerto B 18F452
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
Puerto B 18F4550
L
A
D
I
Es un puerto de 8 bits, con resistencias
M
I pull up internas.
R
T
Al iniciar el micro, los pines RB4:RB0
R
U
están configurados como entradas
J
I
analógicas y RB7:RB5 son entradas
L
L digitales
digitales.
O
A
R
I
A
S
V
Puerto B 18F4550
L
Pin Functio I/O I/O Type Description
A n
D
RB0/AN12 RB0 OUT/IN DIG/TTL Entrada o salida digital
I
/
M INT0/FLT AN12 IN ANA Entrada A/D canal 12
I 0/ INT0 IN ST Interrupción externa 0
SDI/SDA
R SDI IN ST Entrada modulo SPI (Modulo MSSP).
SDA OUT/IN DIG/I2C/SM Salida I2C™ y Entrada I2C (Modulo MSSP)
T B
RB1/AN10 RB1 OUT/IN DIG/TTL Entrada o salida digital
R
/ AN10 IN ANA Entrada
E t d A/D canall 10
U INT1/SCK
INT1 IN ST Interrupción externa 1
J / SCL
SCK OUT/IN DIG/ST Salida de reloj SPI y Entrada de reloj SPI (Modulo MSSP).
I
L SCL OUT/IN DIG/I2C/SM Salida de reloj I2C y Entrada de reloj I2C (Modulo MSSP)
B
L
RB2/AN8/ RB2 OUT/IN DIG/TTL Entrada o salida digital
O INT2/VM
AN8 IN ANA Entrada A/D canal 8
O
INT2 IN ST Interrupción externa 2
A
VMO OUT DIG Transceiver Externo USB VMO salida de datos
R
RB3/AN9/ RB3 OUT/IN DIG/TTL Entrada o salida digital
I
CCP2/VPO AN9 IN ANA Entrada A/D canal 9
A
CCP2 OUT/IN DIG/ST Salida de comparación y PWM y entrada de captura de CCP2
S
VPO OUT DIG Transceiver Externo USB
V
Puerto B 18F4550
L
A
D
I
M
I Pin Function I/O
/ I/O
/ Type
yp Description
p
R RB4/AN11/ RB4 OUT/IN DIG/TTL Entrada o salida digital
KBI0/CSSPP
AN11 IN ANA Entrada A/D canal 11.
T
R KBI0 IN TTL Interrupción
p por
p cambio de estado
U
CSSPP(4) OUT DIG SPP chip select control output.
J
I RB5/KBI1/ RB5 OUT/IN DIG/TTL Entrada o salida digital
PGM
L
KBI1 IN TTL Interrupción
p por
p cambio de estado
L
O
RB6/KBI2/ RB6 OUT/IN DIG/TTL Entrada o salida digital
PGC
KBI2 IN TTL Interrupción por cambio de estado
A
/ /
RB7/KBI3/ RB7 OUT/IN
/ DIG/TTL
/ Entrada o salida digital
g
R
PGD
I KBI3 IN TTL Interrupcion por cambio de estado
A
S
V
Puerto B 18F4550
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Puerto C 18F452
A
D PIN Tipo Entrada Función
I
RC0/T1OSO/T1CKI TTL, Schmit Trigger Pin I/O ó salida del oscilador de timer1 o
M
entrada de reloj
I
R
RC1/T1OSI/CCP2 TTL, Schmit Trigger Pin I/O ó Salida del módulo CCP2
RC2/CCP1 TTL, Schmit Trigger Pin I/O ó pin del módulo CCP1
T
R
RC3/SCK/SCL TTL, Schmit Trigger Pin I/O ó utilizado para el reloj serial de los
módulos
ód l SPI e I2C
U
J RC4/SDI/SDA TTL, Schmit Trigger Pin I/O o entrada de datos para SPI o I/O
I para I2C
L RC5/SDO TTL,, Schmit Trigger
gg Pin I/O,, o salida del puerto
p serial síncrono
L
O
RC6/TX/CK TTL, Schmit Trigger Pin I/O o TX del módulo USART
RC7/RX/DT TTL, Schmit Trigger Pin I/O o RX del módulo USART
A
R
I
A
S
V
L
Puerto C 18F452
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
Puerto C 18F4550
L
A
D
I
Es un Puerto de 7 bits.
M
I
R
El pin RC3 no está implementado
T Los pines RC4 y RC5 no tienen TRIS
asociado
asociado.
R
U
J
I
L
El pin RC3 tiene uso para USB
L
O
A
R
I
A
S
V
Puerto C 18F4550
L
Pin Función I/O I/O Type Descripción
A
RC0/T1OSO/ RC0 OUT/IN DIG/ST Entrada y salida digital
D T13CKI T1OSO OUT ANA Salida del oscilador de timer 1
I T13CKI IN ST Entrada de conteo del timer 1 y 3
RC1/T1OSI/ RC1 OUT/IN DIG/ST Entrada y salida digital
M CCP2/UOE T1OSI IN ANA Entrada del oscilador de timer 1
I CCP2(1) OUT/IN DIG/ST Salida de CCP2 y PWM
PWM. Entrada en modo captura CCP2
R UOE OUT DIG External USB transceiver OE output.
RC2/CCP1/ RC2 OUT/IN DIG/ST Entrada y salida digital
P1A CCP1 OUT/IN DIG/ST Salida de ECCP1 modo compara y PWM, entrada ECCP1 modo captura
T
P1A(3) OUT DIG Salida ECCP1 y PWM Ensanchado, canal A
R RC4/D-/VM
RC4/D /VM RC4 IN TTL Entrada digital
U D- OUT XCVR USB bus differential minus line output (internal transceiver).
IN XCVR USB bus differential minus line input (internal transceiver).
J
VM IN TTL External USB transceiver VM input.
I RC5/D+/VP RC5 IN TTL Entrada digital
L D+ OUT XCVR USB bus differential plus line output (internal transceiver).
IN XCVR USB bus differential plus line input (internal transceiver).
transceiver)
L
VP IN TTL External USB transceiver VP input.
O RC6/TX/CK RC6 OUT/IN DIG/ST Entrada y salida digital
TX OUT DIG Transmisor serial asincrono (EUSART module)
CK OUT/IN DIG/ST Salida Reloj serial sincrónico (EUSART module)
A Entrada Reloj serial sincrónico (EUSART module)
R RC7/RX/DT/ RC7 OUT/IN DIG/ST E t d y salida
Entrada lid digital
di it l
I SDO RX IN ST Recepción serial asíncrona (EUSART module).
A OUT DIG Salida de datos del Puerto serial sincrónico (EUSART module).
DT
IN ST Entrada de datos del Puerto serial sincrónico
S
SDO OUT DIG SPI data output (MSSP module)
V
Puerto C 18F4550
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Puerto D 18F452
A
D PIN Tipo Entrada Función
I
RD0/PSP0 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 0
M
I RD1/PSP1 TTL Schmit Trigger
TTL, Pin I/O ó puerto paralelo esclavo bit 1
R
RD2/PSP2 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 2
T RD3/PSP3 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 3
R
U
J
RD4/PSP4 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 4
I
L RD5/PSP5 TTL, Schmit Trigger Pin I/O, ó puerto paralelo esclavo bit 5
L
RD6/PSP6 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 6
O
RD7/PSP7 TTL, Schmit Trigger Pin I/O ó puerto paralelo esclavo bit 7
A
R
I Todos los pines son schimit trigger cuando se trabaja como puerto paralelo esclavo
A
S
V
L
Puerto D 18F452
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
Puerto D 18F4550
L
A
D
I
Es un puerto de 8 bits
M
I
R
Todos los pines del puerto D tiene
T
entrada tipo schmit trigger.
Todos los pines del puerto D poseen
R
U
J
I resistencia pull up.
L
L
O
Ell puerto D puede
d ser configurado
f d
A como un puerto paralelo de
comunicaciónó dde 8 bits
b ded ancho
h (SPP).
(S )
R
I
A
S
Puerto D 18F4550
Pin Function I/O I/O Type Description
V
L
Puerto E 18F452
A
D PIN Tipo Entrada Función
I
RE0/RD/AN5 TTL, Schmit Trigger Pin I/O Pin de control del puerto paralelo
M
Para control de p
puerto esclavo y entrada A/D.
I
paralelo esclavo BIT RD
R
1 = No lectura.
T 0 = Lee PORTD si CS es 1.
R RE1/WR/AN6 TTL, Schmit Trigger
TTL Pin I/O Pin de control del puerto paralelo
U
Para control de puerto esclavo y entrada A/D.
J paralelo esclavo BIT WR
I
1 = No escritura
L
0 = Escribe en PORTD si CS es 1
L
O RE2/CS/AN7 TTL, Schmit Trigger Pin I/O Pin de control del puerto paralelo
Para control de puerto esclavo y entrada A/D.
A paralelo esclavo BIT CS
R 1 = Dispositivo no seleccionado
I 0 = Dispositivo no seleccionado
A
S
V
L
Puerto E 18F452
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Registro TRISE
A
D
I
M
I
R
Bit 7 IBF: Bit de Buffer de entrada lleno
T
R 1 = Una palabra ha sido recibida y espera ser
U
J
leída.
I
L
0 = Ninguna palabra recibida.
L
O Bit 6 OBF: Bit de Buffer de salida lleno.
A 1 = El buffer mantiene una palabra escrita
R
previamente
previamente.
I
A 0 = El buffer de salida ha sido leído.
S
V
L
Registro TRISE
A
D Bit 5 IBOV: Rebose del Buffer de entrada.
I
M 1 = Ha ocurrido una escritura, cuando una palabra previa no
I ha sido leída
leída. (debe ser clareado por SW)
R
0 = No ha ocurrido un desborde
T
R
Bit 4 PSPMODE: Selección del puerto paralelo
U
esclavo
J
I 1 = Modo puerto paralelo esclavo.
L
L
0 = Modo general de I/O
O
bit 3 Sin Implementar
A
R
bit 2,1 y 0 TRISE: Bits de control de dirección.
I 1 = Entrada
A
S
0 = Salida
V
Puerto E 18F4550
L
Pin Functi I/O I/O Type Description
A on
D
RE0/AN RE0 OUT/ DIG/ST Entrada y salida digital
I 5/ IN
M CK1SPP
AN5 IN ANA Entrada A/D canal 5
I
CK1S OUT DIG SPP clock 1 output (SPP enabled).
R PP
RE1/AN RE1 OUT/ DIG/ST Entrada y salida digital
6/ IN
T
CK2SPP
R AN6 IN ANA Entrada A/D canal 6
U CK2S OUT DIG SPP clock 2 output (SPP enabled).
PP
J
RE2/AN RE2 OUT/ DIG/ST Entrada y salida digital
I 7/ IN
L OESPP
AN7 IN ANA Entrada A/D canal 7.
L
OESP OUT DIG SPP enable output (SPP enabled).
O P
MCLR/V MCLR IN ST External Master Clear input; enabled when MCLRE Configuration bit is set.
PP/ RE3
A
VPP IN ANA High-voltage detection, used for ICSP™ mode entry detection. Always available
R regardless of pin mode.
I RE3 IN ST PORTE<3> data input; enabled when MCLRE Configuration bit is clear.
A
S
V
Puerto E 18F4550
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
Diagrama de pines 18F4550
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
Registro ADCON1 18F4550
L
A
D
I
M
I
R
T
R
bit 7-6 Sin implementar
U bit 5 VCFG0: Referencia de voltaje (VREF- )
J
I
1 = VREF- (AN2)
L 0 = VSS
L
O bit 4 VCFG0: Referencia de voltaje (VREF + )
1 = VREF+ (AN3)
A
R
0 = VDD
I
bit 3-0 PCFG3:PCFG0: Configuración de los
A
S
pines para el A/D
V
L
Registro ADCON1 18F452
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
Registro ADCON1 18F4550
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
Registro CMCON 18F4550
L
A
D
I
M
I
R
bit 7 C2OUT: bit de salida del comparador 2
T Cuando C2INV = 0:
R 1 = C2 VIN+ > C2 VIN
VIN-
U 0 = C2 VIN+ < C2 VINWhen
J
Caunado C2INV = 1:
I
1 = C2 VIN+ < C2 VIN-
L
0 = C2 VIN+ > C2 VINbit
L
O 6 C1OUT: bit de salida del comparador 1
Cuando C1INV = 0:
A 1 = C1 VIN+ > C1 VIN-
R 0 = C1 VIN+ < C1 VINWhen
I Cuando C1INV = 1:
A 1 = C1 VIN+ < C1 VIN-
S 0 = C1 VIN+ > C1 VINbit
V
Registro CMCON 18F4550
L
A
D 5 C2INV: Inversión de la salida del Comparador 2
I
1 = C2 salida invertida
M
I 0 = C2 salida no invertida
R
bit 4 C1INV: Inversión de la salida del Comparador 1
T 1 = C1 salida invertida
R
0 = C1 salida no invertida
U
J bit 3 CIS: Comparator Input Switch bit
I
When CM2:CM0 = 110:
L
L 1 = C1 VIN- connects to RA3/AN3/VREF+ C2 VIN- connects
O
to RA2/AN2/VREF-/CVREF
A 0 = C1 VIN- connects to RA0/AN0 C2 VIN- connects to
R RA1/AN1
I
A bit 2-0 CM2:CM0: Modo de trabajo del comparador
S
V
L
El registro de estado
A
D
I
El registro de estado se utiliza para
M
I mostrar el estado aritmético de la ALU.
R
T
Se recomienda utilizar solamente las
R
U
instrucciones BCF,
BCF BSF,
BSF SWAPF,
SWAPF MOVFF
J
I
y MOVWF para cambiar el contenido del
L
L registro de estado
estado, ya que estas
instrucciones no alteran las banderas Z,
O
A
R C DC,
C, DC OV,
OV o N
I
A
S
El registro
g de estado 18f452 y
V
L
18F4550
A
D
I
M
I
R
T
R BIT 7-5 Sin implementar.
p
U
J BIT 4 N: BIT Negativo, utilizado para indicar
I
L cuando un resultado de una operación
p
L
O aritmética fue negativo (Complemento a 2).
A 1 = Resultado negativo.
R
I 0 = Resultado positivo.
A
S
V
L
El registro de estado
A
D
I
BIT OV: BIT de desbordamiento. Este bit es
M
I
utilizado para aritmética con signo
R (complemento a 2).
T 1 = Desborde ocurrió
R
U 0 = No ocurrió
ó un desborde
J
I
L
BIT 2 Z: Bit de 0
L 1 = El resultado
l d de
d una operación
ió aritmética
i éi o
O
lógica es 0.
A
R 0 = El resultado de una operación aritmética o
I
A
lógica no es 0.
S
V
L
El registro de estado
A
D
I
BIT 1 DC: carry del cuarto al quinto bit.
M
I
Funciona con ADDWF, ADDLW, SUBLW, y SUBWF
R
1 = Hay carry del 4 al 5 bit.
T
0 = No hay carry del 4 al 5 bit
R
U
J
BIT 0 C: Bit de carry.
I
L
Funciona con ADDWF, ADDLW, SUBLW, y SUBWF
L
O
1 = Ocurrió
ó carry
0 = No Ocurrió carry
A
R
I
A
S
V
L
Registro RCON (Reset Control)
A
D
I
M
I
R
T
R
BIT 7 IPEN: Bit que habilita la prioridad en las
U i t
interrupciones.
i
J
I 1 = Prioridad en interrupciones habilitada.
L
L
0 = Prioridad en interrupciones deshabilitada.
O BIT 6-5 Sin implementar
A BIT 4 RI: Bandera de la instrucción RESET
R
I
1 = La instrucción
ó RESET no ha sido ejecutada.
A 0 = La instrucción RESET fue ejecutada.
S
V
L
Registro RCON (Reset Control)
A
D
I
BIT 3 TO: Bandera del Perro Guardián.
M
I 1 = Después de un power
power-up
up, CLRWDT,
CLRWDT o
R
SLEEP
T
R 0 = A WDT reset ocurrió
U
J
I
BIT 2 PD: Bandera de detección de
L
L apagado del procesador.
procesador
O
1 = Después de un power-up o CLRWDT.
A
R
I
0 = Debido a la ejecución de la instrucción
A SLEEP.
S
V
L
Registro RCON (Reset Control)
A
D
I
BIT 1 POR: Bit de estado de Power-on Reset
M
I
1 = Un Power-on Reset no ha ocurrido
R
0 = Un Power-on Reset ocurrió
T
Debe ser colocado en 1 después de que un Power-
R
U on Reset
R t ha
h ocurrido)
id )
J
I BIT 0 BOR: Bit de estado de un Brown-out
L
L Reset (Bajón de voltaje)
O
1 = Un Brown-out Reset no ha ocurrido.
A
R 0 = Un Brown
Brown-out
out Reset ocurrió
ocurrió.
I
A Debe ser colocado en 1 después de que un
S
Brown-out Reset ha ocurrido)
V
L
Interrupciones
A
D
I
Los microcontroladores de gama alta
M
I
poseen niveles de interrupción.
p p
R
El vector de alto nivel de interrupciones
T
R
se halla en la posición 0x08h y el de
U
J
baja prioridad en la posición 0x18h.
Una interrupción de alta prioridad,
I
L
L
O interrumpe la ejecución de una de baja
A prioridad.
R
I
A
S
V
L
Interrupciones
A
D Los registros asociados con el manejo de
I
M
interrupciones son los siguientes:
I
RCON
R
INTCON, INTCON2, INTCON3, que en general,
T
R
manejan las interrupciones externas y de TIMER 0.
U PIR1, PIR2, que manejan las banderas que activan
J
I
las interrupciones debidas a periféricos.
L
L
PIE1, PIE2, que son los registros habilitadores de las
O interrupciones de periféricos
A
IPR1, IPR2, que activan los niveles de prioridad de
R las interrupciones.
interrupciones
I
A
S
V
L
Interrupciones
A
D Cada fuente de interrupción, a excepción de INT0,
I
M
posee 3 bits para su control.
I Una bandera que indica que la interrupción ocurrió.
ocurrió
R
Bit habilitador de la interrupción
T Bit que permite asignar el nivel de prioridad de la
R interrupción.
U
J Nota: Se recomienda no utilizar la instrucción
I
L
MOVFF, para modificar alguno de los registros de
L control mientras las interrupciones estén habilitadas
control, habilitadas,
O ya que esto puede generar disparos de
A
interrupciones aleatorios.
R
I
A
S
V
L
Interrupciones. Registro RCON
A
D
I
M
I
R
T
R Bit IPEN: Bit habilitador de niveles de
U
J prioridad de las interrupciones.
I
L
L
1 = Habilita los niveles de p
prioridad de las
O interrupciones.
A
R
0 = Deshabilita los niveles de pprioridad de
I
A
las interrupciones.
S
V
L
Interrupciones. Registro RCON
A
D
I
bit 6-5 Sin implementar
M
I bit 4 RI: bit indicador de q
que se generó
g una
R
instrucción de RESET.
T
R
1 = La instrucción RESET no se ha ejecutado.
U
J
0 = La instrucción RESET se ejecutó
I
L
bit 3 TO: bit de rebose del Watchdog
L
O
1 = Después del encendido, instrucción CLRWDT
o instrucción SLEEP.
A
R 0 = Ha ocurrido un rebose del WDT
I
A
S
V
L
Interrupciones. Registro RCON
A
D
I
bit 2 PD: Bit de detección de ausencia de
M
I
voltaje.
R
1 = Después del encendido o por el uso de la
T instrucción CLRWDT.
R
U 0 = Por
P lla ejecución
j ió de
d la
l instrucción
i t ió SLEEP.
SLEEP
J
I bit 1 POR: Bit de estado del Power-on Reset.
L
L 1 = Un Power-on
Power on Reset no ha ocurrido
ocurrido.
O
0 = Un Power-on Reset ocurrió. Debe ser puesta
A
R
en 1 después
p de que
q un Power-on Reset occurre.
I
A
S
V
L
Interrupciones. Registro RCON
A
D
I
bit 0 BOR: bit de estado de Brown-out
M
I Reset. (Disminución del nivel de voltaje)
R
A
R
I
A
S
T
R Bit 7 GIE/GIEH:
/ Habilitador g
global de
U
J interrupciones.
I
L Si IPEN = 0: (Bit 7 RCON)
L
O
1 = Habilita todas las interrupciones sin máscara
0 = Deshabilita todas las interrupciones
A
R Si IPEN = 1: (Bit 7 RCON)
I
A
1 = Habilita todas las interrupciones de alta prioridad.
S 0 = Deshabilita todas las interrupciones.
Interrupciones. Registro INTCON
V (18F452, 18F4550)
L
A
D Bit 6 PEIE/GIEL: Habilitador de Interrupciones de
I
M
periféricos
Si IPEN = 0: (Bit 7 RCON)
I
R
A de baja prioridad.
R
0 = Deshabilita todas las interrupciones de
I
A periféricos de baja prioridad
S
T
Bit 7 RBPU: Bit habilitador de las
resistencias Pull-up.
Pull up
R
U
J
I
1 = Todas las resistencias pull-ups
L
deshabilitadas.
L
0 = Las resistencias pull-ups
ll estan habilitadas.
h bl d
O
1 = Flanco de subida.
T
R
U
0 = Flanco de bajada
bajada.
J
I Bit 4 INTEDG2: Selección del flanco de
L
L la Interrupción Externa 2
O
A
1 = Flanco de subida
R
I
0 = Flanco
Fl de
d bajada.
b j d
A
S Bit 3 Sin Implementar
Interrupciones. Reg. INTCON2
V (18F452, 18F4550)
L
A
D
I
Bit 2 TMR0IP: Bit de prioridad de la
M interrupción por rebose de TMR0.
I
R 1 = Alta prioridad
T
0 = Baja prioridad
R
U
Bit 1 Sin implementar
J
I
Bit 0 RBIP: Bit de prioridad de la interrupción
L
L
de cambios de estado en PORTB
O 1 = Alta prioridad.
A 0 = Baja prioridad.
R
I
A
S
T
R Bit 7 INT2IP: Bit de p
prioridad de INT2
U
J 1 = Alta prioridad.
I
L 0 = Baja prioridad.
L
O Bit 6 INT1IP: Bit de prioridad de INT1
A 1 = Alta prioridad.
R
I 0 = Baja prioridad.
A
S
Interrupciones. Reg. INTCON3
V (18F452, 18F45550)
L
A
D
I
Bit 5 Sin implementar
M
I
R
Bit 4 INT2IE: Bit habilitador de INT2
T
1 = Habilita INT2.
0 = Deshabilita INT2.
INT2
R
U
J
I
L
Bit 3 INT1IE: Bit habilitador de INT1
L
O
1 = Habilita INT1.
A 0 = Deshabilita INT1.
R
I
A
Bit 2 Sin implementar
S
0 = No ha ocurrido INT1
A
R
I
A
S
Int. Periféricos. Reg. PIR1
V (18F452, 18F4550)
L
A
D
I
M
I
R
T
Bit 7 PSPIF(1): Bandera de interrupción de
R lectura/escritura del puerto paralelo esclavo.
U
1 = Una operación de lectura o escritura ha
J
I
ocurrido.(debe ser borrada por SW)
L 0 = No ha ocurrido lectura o escritura.
L
O
Bit 6 ADIF: Bandera de interrupción por fin de
conversión del A/D
A
R
1 = Conversión A/D completa (Debe ser borrada por
I SW)
A
0 = La conversión A/D esta incompleta.
S
A
R
I
A
S
T
Bit 7-5 Sin implementar
R
U Bit 4 EEIF:
EEIF Bandera
B d d
de interrupción
i t ió por
J
I Escritura/Lectura en EEPROM o FLASH
L
L 1 = La operación de escritura se ha completado
O
(debe ser borrada por SW)
A
0 = La operación de escritura no ha terminado o
R
I no se ha iniciado.
A
S
Int. Periféricos. Reg. PIR2
V (18F452)
L
A
D
I
Bit 3 BCLIF: Interrupción por colisión en el
M
I
bus
R
1 = Ocurrió una colisión
T 0 = No ha ocurrido una colisión.
R
U
J
Bit 2 LVDIF: Interrupción por detección de
I
L
bajo voltaje.
L 1 = Una
U condición
di ió de
d bajo
b j voltaje
l j ha
h ocurrido
id
O
T
R
U
Bit 7 OSCFIF: Bandera indicadora de
J
I
fallo del oscilador.
L
L
1 = El oscilador del dispositivo falló.
falló Se ha
O
realizado un cambio a INTOSC. (Debe ser
A
R
borrada ppor software))
I
A
0 = El reloj trabaja sin problemas.
S
T
PSPIE(1): Habilita la interrupción de
R
U
lectura/escritura del puerto paralelo esclavo
J 1 = Habilita la interrupción
I
L 0 = Deshabilita la interrupción.
p
L
O
Bit 6 ADIE: Habilita la interrupción por fin
A de conversión del A/D.
R
I 1 = Habilita la interrupción del A/D.
A
S 0 = Deshabilita la interrupción del A/D.
1 = Habilita la interrupción
T
R
U
0 = Deshabilita la interrupción
J
I Bit 4 TXIE: Habilita la interrupción por
L
L transmisión del módulo USART
O
A
1 = Habilita la interrupción
R
I
0 = Deshabilita
D h bilit la l interrupción
i t ió
A
S
Int. Periféricos. Reg. PIE1
V (18F452, 18F4550)
L
A
D Bit 3 SSPIE: Habilita la interrupción del puerto serial
I síncrono.
1 = Habilita la interrupción del MSSP
M
I
R 0 = Deshabilita la interrupción del MSSP
T
Bit 2 CCP1IE: Habilita la interrupción del módulo CCP1.
R 1 = Habilita la interrupción
p del CCP1
0 = Deshabilita la interrupción
U
J
I Bit 1 TMR2IE: Habilita la interrupción por igualdad de
L TMR2 con PR2.
1 = Habilita la interrupción
L
O
0 = Deshabilita la interrupción.
A
R
Bit 0 TMR1IE: Habilita la interrupción
p por
p rebose de
I
TMR1
A 1 = Habilita la interrupción de TMR1
T
Bit 7-5 Sin implementar
R Bit 4 EEIE: Habilita la interrupción por fin
U
J
de escritura en memoria EEPROM/FLASH.
I
L
1 = Habilitada
L 0 = Deshabilitada
O
Bit 3 BCLIE: Habilita la interrupción por
A
R
colisión de datos en el BUS
I 1 = Habilitada
A
S
0 = Deshabilitada
Int. Periféricos. Reg. PIE2
V (18F452)
L
A
D Bit 2 LVDIE: Habilita la Interrupción por detección
I de bajo voltaje.
M
I
1 = Habilitada
R 0 = Deshabilitada.
T
Bit 1 TMR3IE: Habilita la interrupción por desborde
R de TMR3.
U 1 = Habilita la interrupción
J
I
0 = Deshabilita la interrupción
L Bit 0 CCP2IE: Habilita la interrupción del módulo
L
CCP2
O
1 = Habilita la interrupción
A 0 = Deshabilita la interrupción
R
I
A
S
T
R
U
Bit 7 OSCFIE: Bit habilitador de interrupción por fallo
J de oscilador
I
L
1 = Habilitado
L 0 = deshabilitado
O
Bit 6 CMIE: Bit habilitador de interrupción por
A
R
comparación
I
1 = Habilitado
A
S 0 = Deshabilitado
Int. Periféricos. Reg. PIE2
V (18F4550)
L
A
D
I
USBIE: Bit habilitador de la interrupción
M USB.
I
R 1 = Habilitado
T
0 = Deshabilitado
R
U
Bit 4 EEIE: Habilita la interrupción por fin de
J
I
escritura en memoria EEPROM/FLASH.
L 1 = Habilitada
L
O
0 = Deshabilitada
Bit 3 BCLIE: Habilita la interrupción por
colisión de datos en el BUS
A
R
I
A
1 = Habilitada
S 0 = Deshabilitada
0 = Baja prioridad
A
R
I
A
S
T
Bit 7-5 Sin implementar
R Bit 4 EEIP: Prioridad de Interrupción por fin
U
J
de escritura en EPROM/FLASH
I
L
1 = Alta prioridad
L 0 = Baja prioridad
O
Bit 3 BCLIP: Prioridad de Interrupción por
A
R
colisión en Bus de datos.
I 1 = Alta prioridad
A
S
0 = Baja prioridad
Prioridad de Int. Reg. IPR2
V (18F452)
L
A
D Bit 2 LVDIP: Prioridad de Interrupción por
I
M
detección de bajo voltaje
I 1 = Alta prioridad
R
0 = Baja prioridad
T
R
Bit 1 TMR3IP: Prioridad de Interrupción por
U rebose
b de
d TMR3
J
I 1 = Alta prioridad
L
L
0 = Baja prioridad
O Bit 0 CCP2IP: Prioridad de Interrupción de
A módulo CCP2
R
I
1 = Alta
Alt prioridad
i id d
A 0 = Baja prioridad
S
T
R
U
Bit 7 OSCFIP: Bit de prioridad de interrupción por
J fallo de oscilador.
I
L
1 = Alta prioridad
L 0 = Baja prioridad
O
Bit 6 CMIP: Bit de prioridad de interrupción por
A
R
comparación analógica.
I
1 = Alta prioridad.
A
S 0 = Baja prioridad.
Prioridad de Int. Reg. IPR2
V (18F4550)
L
A
D
I
USBIP: Bit de prioridad interrupción USB.
M
I
1 = Alta prioridad
R
0 = Baja prioridad
T
R
Bit 4 EEIP: Prioridad de Interrupción por fin
U
J
de escritura en EPROM/FLASH
I 1 = Alta prioridad
L
L 0 = Baja prioridad
O
Bit 3 BCLIP: Prioridad de Interrupción por
A
R
colisión en Bus de datos.
I
A
1 = Alta prioridad
S 0 = Baja prioridad
Temporizador
p Timer 0
V
L
18F452, 18F4550
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Temporizador
p Timer 0
V
L
18F452, 18F4550
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Temporizador
p Timer 0
V
L
18F452, 18F4550
A
D
I
El registro TMR0H se actualiza solo
M
I cuando se hace una lectura de TMR0L,
esto con el fin de leer los 16 bits de
R
T
R TMR0.
U
J
I
La parte alta de TMR0, solo se carga en
L
L el registro TMR0H cuando se hace una
escritura en TMR0L, esto con el fin de
O
A
R transferir los 16 bits a la vez
I
A
S
Temporizador
p Timer 1
V
L
18F452, 18F4550
A
D El Timer1 es un temporizador de 16 bits posee los
I
M registros TMR1H y TMR1L.
I
R
S l ió de
Selección d fuente
f t de
d reloj
l j interna
i t o externa.
t
T
Puede conectarse un oscilador en los pines de
R entrada de Timer1 con el fin de tener una base de
U
J tiempo precisa independiente del reloj interno.
I
L
La interrupción se genera por rebose
L
O
Un evento especial del módulo CCP, lo coloca en 0
A
R
I
A
S
Temporizador
p Timer 1
V
L
18F452, 18F4550
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Temporizador Timer1 Reg.
Reg T1CON
V
L
18F452, 18F4550
A
D
I
Bit 7 RD16: Modo de lectura escritura de 16-
M bits
I
R 1 = Habilita la lectura y escritura del Timer1 en
una operación de 16-bits.
T
R 0 = Habilita la lectura y escritura del Timer1 en
U
J
dos operaciones de 8-bits.
I
L
Cuando RD16 vale 1, la parte alta del timer 1
L es transferida a TMR1H a través de un buffer
buffer.
Esto ocurre solo cuando TMR1L es leído, así
O
A
R
se transfieren los 16 bits al tiempo.
p
I
A
S
A
11 = 1:8
R
I
10 = 1:4
14
A 01 = 1:2
S
00 = 1:1
Temporizador Timer1 Reg.
Reg T1CON
V
L
18F452, 18F4550
A
D Bit 3 T1OSCEN: Bit habilitador del Oscilador
I
M
de Timer1.
1 = Oscilador de Timer1 habilitado
I
R
1 = No
N sincronice
i i lal señal
ñ l de
d reloj
l j externa
L
O
A
arranque del oscilador
R
I
A
S
Temporizador
p Timer 1
V
L
18F452, 18F4550
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Temporizador
p Timer 2
V
L
18F452, 18F4550
A
D El Timer2 se caracteriza por lo siguiente
I
M Un registro TMR2 de 8 bits
I
R U registro
Un i t PR2,
PR2 que controla
t l ell máximo
á i
T
conteo de TMR2.
R Un pre escalador de (1:1, 1:4, 1:16)
U
J Un post escalador (1:1 a 1:16)
I
L Se genera una interrupción al igualarse TMR2
L
O
con PR2.
PR2
TMR2 es utilizado como base de tiempo para
el control del módulo PWM
A
R
I
A
S
Temporizador
p Timer 2
V
L
18F452, 18F4550
A
D
I
El pre escalador y el post escalador son
M
I puestos a su valor mínimo, cuando:
R
T
R
U
J
I
L
L
O
A
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporizador Timer 3
A
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Temporizador Timer 3 Reg. T3CON
A
D
I
Bit 7 RD16: Habilita el modo de lectura
M
I escritura de 16 bits
R
A
R
módulo CCP en modo captura y comparación.
I
A
S
V
L
Temporizador Timer 3 Reg. T3CON
A
D Bit 5-4 T3CKPS1:T3CKPS0: Pre escalador del
I
M Timer3
I
R
11 = 1:8
18
10 = 1:4
T
R
01 = 1:2
U
00 = 1:1
J
I Bit 2 T3SYNC: Bit para sincronización de la fuente
L
L de reloj externa de Timer3
Timer3.
O
Cuando TMR3CS = 1:
A 1 = No sincronice el reloj externo con el interno
R
0 = sincronice
i i ell reloj
l j externo con ell interno
i
I
A Cuando TMR3CS = 0:
S
Es ignorado.
V
L
Temporizador Timer 3 Reg. T3CON
A
D
I
Bit 1 TMR3CS: Selección de la fuente
M
I
de relojj de Timer3
R
1 = Fuente de reloj externa proveniente
T del oscilador de Timer1 o del pin T1CKI
R
U
J
0 = Fuente de reloj interna (FOSC/4)
I
L
Bit 0 TMR3ON: Encendido de Timer3
L
O
1 = Habilita Timer3
A
0 = Detiene Timer3
R
I
A
S
V
L
Temporizador Timer3
A
D
I
Para que el reset debido al evento de
M
I disparo del módulo CCP funcione, el
TIMER3, debe estar configurado con
R
T
R reloj interno o externo con
U
J
I
sincronización.
L
L El evento de disparo coloca en 0 el
timer 3 pero no genera una
O
A
R interrupción
interrupción.
I
A
S
V
L
Temporizador Timer3
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
T
Controlado por los registros ADCON1 y
R
U
ADCON0
ADCON0.
J
I El resultado de la conversión es
L
L
O
almacenado en los registros ADRESL y
A
ADRESH.
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
Bit 7 ADFM: Formato del resultado de la
M conversión A/D.
I
R 1 = Justificado a la derecha. Los 6 bits mas
significativos del registro ADRESH son cero.
T
R 0 = Justificado a la izquierda.
q Los 6 bits menos
U
J
significativos del registro ADRESL son cero.
I
L
Bit 6 ADCS2: selección del tiempo de
L conversión del módulo A/D,
A/D trabaja en asocio
con los bits ADCS1 y ADCS0 del registro
O
A
R
ADCON0
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F452)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F4550)
L
A
D
I
El módulo A/D de este micro consta de
M
I 13 canales analógicos. El resultado de
la conversión es de 10 bits.
R
T
R
U
Cinco registros conforman este módulo
módulo.
J
I ADRESH, ADRESL, registros de control
L
L
O
ADCON0 ADCON1 y ADCON2.
ADCON0, ADCON2
A
R
I
A
S
T
R
U
Bit 1 GO/DONE: Bit de estado de la conversión A/D
J Cuando ADON = 1:
I
1 = Conversión A/D en progreso.
L
L
0 = Conversor A/D desocupado
O
Bit 0 ADON: Bit habilitador de módulo A/D
A 1 = Módulo A/D habilitado
R
0 = Módulo
Mód l A/D deshabilitado
d h bilit d
I
A
S
Módulo conversión A/D
V (18F4550)
L
A
D Bit 7-6 Sin implementar
I Bit 5-2 CHS3:CHS0: Selección del canal analógico
M 0000 = Canal 0 (AN0/RA0)
I
0001 = C
Canall 1 (AN1/RA1)
R
0010 = Canal 2 (AN2/RA2)
0011 = Canal 3 (AN3/RA3)
T
0100 = Canal 4 (AN4/RA5)
R
U
0101 = C
Canall 5 (AN5/RE0)
J
0110 = Canal 6 (AN6/RE1)
I
0111 = Canal 7 (AN7/RE2)
L 1000 = Canal 8 (AN8/RB2)
L 1001 = Canal 9 (AN9/RB3)
O 1010 = Canal 10 (AN10/RB1)
1011 = Canal 11 (AN11/RB4)
A 1100 = Canal 12 (AN12/RB0)
R 1101 = Sin implementar
I 1110 = Sin implementar
A 1111 = Sin implementar
S
T
R
Bit 7-6 Sin implementar, se lee como ‘0’
U Bit 5 VCFG1: Configuración de Voltaje de referencia (VREF-)
J
I 1 = VREF- (AN2)
L
0 = VSS
L
O
Bit 4 VCFG0: Configuración de Voltaje de referencia (VREF+)
A 1 = VREF+ (AN3)
R
0 = VDD
I
A
S
Módulo conversión A/D
V (18F4550)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
T
R
U
Bit 7 ADFM: Selección del formato del
J
I
resultado del módulo A/D
L
L 1 = Justificado a la derecha
O
0 = Justificado a la izquierda
A
R
I
Bit 6 Si
Sin implementar
i l t
A
S
Módulo conversión A/D
V (18F4550)
L
A
D
I
Bit 5-3 ACQT2:ACQT0: Bit de selección del
M
I
tiempo de adquisición
R
111 = 20 TAD
T 110 = 16 TAD
R
U 101 = 12 TAD
J
I 100 = 8 TAD
L
L 011 = 6 TAD
O
010 = 4 TAD
A
R 001 = 2 TAD
I
A 000 = 0 TAD
S
T
R
U
J
I
L
L
O
A
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F4550)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
Módulo conversión A/D
V (18F4550)
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Memoria EEPROM de datos
A
D
I
La memoria EEPROM, no puede ser
M
I
direccionada normalmente,, para
p acceder a
R
ella se hace a través de unos registros
T
R
especiales
EECON1 (Registro de configuración)
U
J
I
L EECON2 (Registro de configuración)
L
O EEDATA (Registro de transferencia de
A
datos)
R
I
EEADR (Registro
( de
d direccionamiento)
d )
A
S
V
L
Memoria EEPROM de datos
A
D
I
Los datos en la EEPROM, se
M
I sobrescriben y el tiempo de acceso de
escritura tiene un tiempo típico de 4
R
T
R milisegundos
U
J
I
Debido a que el registro EEADR es de 8
L
L bits la capacidad en EEPROM es de 256
bits,
bytes.
O
A
R
I
A
S
V
L
Memoria EEPROM de datos
A
D
I
M
I
R
T
R
BIT 7 EEPGD: bit de selección de la memoria FLASH o
U EEPROM
J 1 = Acceso a la memoria FLASH
I
L
0 = Acceso a la memoria EEPROM.
L BIT 6 CFGS:
CFGS A Acceso a la
l memoriai FLASH/EEPROM o a los
l
O registros de configuración del PIC
A
1 = Acceso a los registros de Configuración
R 0 = Acceso a la memoria FLASH o EEPROM
I
A
S
V
L
Memoria EEPROM de datos
A
D
I
BIT 5 Sin implementar
M
I
BIT 4 FREE: Habilitación del ciclo de borrado
R en la memoria FLASH
T 1 = Borra la memoria FLASH (64 bytes) apuntada
R
por TBLPTR en el próximo comando WR
U
J 0 = Solo para escritura.
I
L BIT 3 WRERR: Bit de Error
L
O 1 = Una operación de escritura ha sido
interrumpida.
A
R 0 = Operación de escritura completa
completa.
I
A
S
V
L
Memoria EEPROM de datos
A
D BIT 2 WREN: Bit de habilitación de escritura en
I FLASH o EEPROM
M
I
1 = ciclos de escritura p
permitidos
R 0 = No permite escritura en la memoria EEPROM
T
BIT WR: bit de control de escritura
R 1 = Inicializa un ciclo de escritura en EEPROM o FLASH.
U Cuando la operaciónó termina, el bit es borrado por HW y no
J se puede por software.)
I
0 = El ciclo de escritura en EEPROM finalizó
L
L BIT 0 RD: bit de control de lectura.
lectura
O 1 = Lee la memoria EEPROM. Es borrado por HW y no por
SW. Este bit no se puede poner en 1 si EEPGD = 1.)
A
R
0 = No se inicia la lectura de la EEPROM
I
A
S
Lectura de la memoria EEPROM
V
L
de datos
A
D
I
Para la lectura de la memoria EEPROM,
M
I se escribe la dirección a leer en EEADR.
R
T
Poner en 0 el bit EEPGD (bit 7 EECON1)
Poner en 0 el bit CFGS (bit 6 EECON1)
R
U
J
I
L
Poner en 1 el bit RD (bit 0 EECON1)
L
O El dato leído se almacena en el registro
A
R
EEDATA
I
A
S
A
R
I
A
S
V
L
Modulo CCP (Registro de control)
A
D
I
M
I
R
T
R
U
J Bit 7-6 Sin implementar
I
L
L
Bit 5-4
5 4 DCxB1:DCxB0: bit 0 y 1 de el ciclo de
O
trabajo PWM, no usado en modo captura y
A comparación
R
I
A
S
V
L
Modulo CCP (Registro de control)
A
D
Bit 3-0 CCPxM3:CCPxM0: Bits de selección del modo de trabajo
I 0000 = Modulo CCP apagado
M 0001 = Reservado
I 0010 = Modo compara
compara, pulso a la salida al darse la igualdad (CCPxIF se
R coloca en 1)
0011 = Reservado
T 0100 = Moda captura, cada flanco de bajada.
R 0101 = Modo captura,
p , cada flanco de subida.
U 0110 = Modo captura, cada 4 flancos de subida.
J 0111 = Modo captura, cada 16 flancos de subida.
I 1000 = Modo compara, coloca el pin CCP en estado alto cuando se produce
L la igualdad (CCPIF se coloca en 1)
L 1001 = Modo compara, coloca el pin CCP en estado alto al darse la
O igualdad (CCPIF se coloca en 1)
1010 = Modo compara, el pin CCP no cambia, CCPIF se coloca en 1 cuando
A la igualdad se da.
R 1011 = Modo compara
compara, se genera un evento trigger al producirse la
I igualdad (CCPIF se coloca en 1)
A 11xx = Modo PWM
S
V
L
Modulo CCP (Modo de Captura)
A
D En modo de captura los registros CCPR1H:CCPR1L, capturan el
I
valor de los 16 bits de los registros de TMR1 o TMR3, cuando un
M
I
evento en el ppin RC2/CCP1
/ ocurre.
R
Los eventos son:
T Cada flanco de bajada
R Cada flanco de subida
U
J
Cada 4 flancos de subida
I Cada 16 flancos de subida
L
L
El pin del módulo CCPP debe ser configurado como entrada
O El timer 1 y 3 deben estar sincronizados con el reloj interno, si
A
están contando pulsos externos.
R Si se realiza un cambio de configuración del modo de trabajo
I
A
del módulo CPP, se debe apagar el módulo. Ya que si no se
S hace se puede generar una falsa interrupción.
V
L
Modulo CCP (Modo de Captura)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo de Captura)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo Compara)
A
D En modo compara, los 16 bits de los registros CCPR1 o (CCPR2)
I
son comparados constantemente con el valor de TMR1 o TMR3.
M
I Cuando el valor de CCPRx se hace igual al de un Timer,
Timer ocurre
R
lo siguiente en los pines RC2/CCP1 o RC1/CCP2:
T Se pone en estado alto
R Se pone en estado bajo
U
J
Cambia de estado (Alto a Bajo o Bajo a Alto)
I Se mantiene sin cambios
L
L
El timer 1 y 3 deben estar sincronizados con el reloj interno,
interno si
O están contando pulsos externos.
A
Si se realiza un cambio de configuración del modo de trabajo
R del módulo CPP,
CPP se debe apagar el módulo.
módulo Ya que si no se
I hace se puede generar una falsa interrupción
A
S
V
L
Modulo CCP (Modo Compara)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo Compara)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D El modo PWM, posee una resolución de 10 bits.
I
M Al borrar el registro CCPxCON, la salida del módulo
I
PWM se pone en su estado por defecto (0) (0).
R
El registro Timer 2 es utilizado como base de tiempo
T
R
para la operación de este módulo.
U El pos escalador de TMR2 no se utiliza.
J
I El periodo PWM esta dado por:
L
L
Periodo PWM = [PR2 + 1] * 4*
4 TOSC*(Pre
TOSC (Pre escalador TMR2)
O El ciclo de trabajo o tiempo de cresta esta dado por:
A Tiempo Cresta PWM = (CCPR1L:CCP1CON<5:4>)*TOSC
R *(Pre escalador de TMR2)
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D Como Configurar el módulo PWM
I
M Seleccione el periodo de trabajo mediante el registro
I
PR2
PR2.
R
Seleccione el tiempo de cresta de PWM mediante el
T
R
registro CCPR1L y los bits 5 y 4 de CCP1CON.
U Configure el pin de salida del módulo CPP como
J
I
salida.
L
L
Configure el preescalador de Timer2 en el registro
O T2CON.
A
Configure el módulo CPP para modo de trabajo PWM.
R
I
A
S
V
L
Modulo CCP (Modo PWM)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
Modulo de Comunicación serial
V
L
USART
A
D
I
El módulo de comunicación serial puede
M
I ser configurado de la siguiente manera:
R
T
R
U
Bit 7 CSRC: Selección de la fuente de reloj.
reloj
J Modo Asíncrono:
I
L No se tiene en cuenta
L
O
Modo sincrónico:
1 = Modo maestro (reloj generado internamente por el
A BRG)
R
I
0 = Modo Esclavo (reloj de fuente externa)
A
S
Modulo de Comunicación serial
V
L
USART (Registro TXSTA)
A
D Bit 6 TX9: Habilitador de transmisión de 9-bit.
I
M 1 = 9 bits para transmitir.
I
R
0 = 8 bits para transmitir.
transmitir
Bit 5 TXEN: Habilitación de Transmisión
T
R 1 = Transmisión habilitada
U
J
0 = Transmisión deshabilitada
I Bit 4 SYNC: Selección del modo de trabajo
L
L USART
O
1 = Modo sincrónico
A 0 = Modo asíncrono
R
I
A
S
T
R Bit 7 SPEN: Habilitador de puerto serial
U
J 1 = Puerto serial habilitado
I
L
0 = Puerto serial deshabilitado
L
O
Bit 6 RX9: Habilita la recepción de noveno bit.
A
1 = Se van a recibir 9 bits.
R 0 = Se van a recibir 8 bits
bits.
I
A
S
Modo asíncrono:
T
R No se tiene en cuenta
U
J
I
Modo sincrónico - Maestro:
L 1 = Habilita una recepción
p simple
p
L
O 0 = Deshabilita la recepción simple.
A
R
Modo sincrónico - Esclavo:
I
No se tiene en cuenta
A
S
Modulo de Comunicación serial
V
L
USART (Registro RCSTA)
A
D
I
bit 4 CREN: Habilita la recepción
M
I continua.
R
Modo asíncrono:
T
R 1 = Habilita el receptor
U
J 0 = Deshabilita el receptor
I
L Modo sincrónico:
L
O 1 = Habilita la recepción continua, hasta que el
A bit CREN se borre (CREN sobrescribe SREN)
R
I
0 = Deshabilita la recepción
ó continua.
A
S
T
R decir cuando el bit de parada de un
U
J
I
dato previo ha sido transmitido.
L
L TXTREG se actualiza por SWSW.
O
A
Una vez que TXREG transfiere sus datos
R
I
a TSR,
TSR queda vacío y se produce una
A
S
interrupción.
A
La bandera TXIF solo se pone en 1 cuando el
R bit TXEN esta en 1
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
Modulo de Comunicación serial
V
L
USART (Modo asíncrono TX)
A
D Para configurar la transmisión se requiere:
I
M 1. Inicializar el SPBRG para la tasa de transferencia
I
deseada Con el bit BRGH se escoge si se desea alta o
deseada.
R
baja velocidad.
T
R
2. Habilitar el puerto seria asíncrono colocando en 0 el bit
U SYNC y poniendo en 1 el bit SPEN.
J
I 3. Si se desean interrupciones colocar en 1 el bit TXIE.
L
L
4 Si se desea transmisión de noveno bit
4. bit, colocar en 1 el
O bit TX9.
A 5. Habilitar la transmisión colocando en 1 el bit TXEN el
R
c al colocará
cual coloca á en 1 el bit TXIF.
TXIF
I
A 6. Cargar el dato a transmitir en TXREG.
S
T
R
U
J
I
L
L
O
A
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Memoria FLASH de Programa
A
D La memoria de programa puede ser leída y escrita
I
M durante el funcionamiento normal.
I
R Posee un tamañoñ de 32K Bytes con capacidad para
T
16K Instrucciones
R
Durante la escritura o lectura de la memoria de
U
J programa se cesará la búsqueda de instrucciones,
I
L
hasta que la operación este completa.
L
O
La memoria de programa no puede ser accedida
durante la lectura o escritura, es por ello que el
A
R
código no puede ser ejecutado.
I
A
S
V
L
Memoria FLASH de Programa
A
D
I
Cualquier instrucción inválida que se
M
I escriba, será ejecutada como un NOP
R
T
Ya que la memoria de programa es de
R
U
16 bits de ancho y la RAM tiene 8 bits;
J
I
las instrucciones TBLRD (Lectura) y
L
L TBLWT (escritura),
(escritura) mueven datos
entre esas dos memorias, utilizando el
O
A
R registro TABLAT.
TABLAT
I
A
S
V
L
Memoria FLASH de Programa
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Registro EECON1 y EECON2
A
D
I
El registro EECON1 es el registro de
M
I control de acceso a memoria FLASH o
EEPROM.
R
T
R
U
El registro EECON2 no existe
J
I
físicamente, y solo se utiliza en
L
L operaciones de escritura o borrado de
la memoria.
O
A
R
I
Cualquier lectura a EECON2,
EECON2 obtiene
A
S
como resultado un 0.
V
L
Registro EECON1 (Dir. 0FA6h )
A
D
I
M
I
R
T
BIT 7 EEPGD: Bit de selección de la
memoria FLASH o EEPROM
EEPROM.
R
U
J
I
1 = El acceso es a la memoria FLASH.
L 0 = El acceso es a la memoria EEPROM.
L
O BIT 6 CFGS: Acceso a memoria FLASH/EE o
A
registros de configuración.
R 1 = Acceso a los registros de configuración
I
A
0 = Acceso a la memoria FLASH o EEPROM.
S
V
L
Registro EECON1 (Dir. 0FA6h )
A
D BIT 5 Sin implementar.
I
M BIT 4 FREE: bit de selección de borrado de la
I
R
memoria FLASH
FLASH.
1 = Borra la memoria FLASH apuntada por
T
R
TBLPTR en el próximo comando WR.
U 0 = Se
S realiza
li escritura
i únicamente.
ú i
J
I BIT 3 WRERR: Error en una operación de
L
L
escritura
esc tu a de la
a memoria
e o a FLASH/EEPROM
S / O
O 1 = Una operación de escritura fue
prematuramente terminada.
A
R 0 = Operación de escritura completa
completa.
I
A
S
V
L
Registro EECON1 (Dir. 0FA6h )
A
D
I
BIT 2 WREN: Bit de habilitación de escritura
M
I
en la memoria FLASH/EEPROM.
R
1 = Permite ciclos de escritura.
T 0 = Inhibe los ciclos de escritura.
R
U
J
BIT 1 WR: Bit de control de escritura
I
L
1 = Inicializa el borrado/escritura de la memoria
L EEPROM/FLASH este bit se coloca en 0
EEPROM/FLASH,
O
nuevamente por HW.
A
R
0 = El ciclo de escritura esta completo.
p
I
A
S
V
L
Registro EECON1 (Dir. 0FA6h )
A
D
I
BIT 0 RD: Bit de control de lectura.
M
I 1 = Inicializa la lectura de la EEPROM,
EEPROM este
R
bit se coloca en 0 por HW. El bit RD no
T
R puede puesto en 1 cuando EEPGD = 1, lo
U
J
cual sugiere que la memoria FLASH, no
I
L
puede ser leída utilizando este bit.
L
O
0 = No se inicializa la lectura de la
A
EEPROM.
R
I
A
S
V
L
Registro TABLAT y TBLPTR
A
D
I
El registro TABLAT es de 8 bits y se utiliza
M
I
para almacenar datos durante la
R transferencia de información entre la RAM y
T la memoria de programa.
R
U
J
El registro TBLPTR apunta a las direcciones
I de memoria de programa a acceder, apunta
L
L de a byte por vez
vez.
O
A
El registro TBLPTR, es utilizado por las
R instrucciones TBLRD y TBLWT; ellas pueden
I
A actualizar el TBLPTR de 4 formas diferentes.
S
V
L
Registro TBLPTR
A
D
I
M
I
R
T
R
U
J
I
L
L
O
LLa lectura
l t accede
d a memoriai cada
d byte
b t
A
La escritura accede a memoria cada 8 Bytes
El borrado se hace en paquetes de 64 Bytes.
R
I
A
S
Operaciones que auto modifican
V
L
TBLPTR
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Lectura de la Memoria FLASH
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Lectura de la Memoria FLASH
A
D
I
Cuando se hace una lectura de memoria. Se
M
I
debe Cargar TBLPTR con la dirección a leer
R (dirección par).
T
R
Cuando se ejecuta la instrucción TBLRD, se
U
J
mueve un byte de la instrucción a el registro
I TABLAT.
L
L
O
El que sea ell byte
b bajo
b j o alto,
l depende
d d ded sii
A
el bit menos significativo de la dirección
R escogida es 0
I
A
S
V
L
Borrado de la Memoria FLASH
A
D
I
El TBLPTR no tiene en cuenta los 6 bits
M menos significativos a la hora de hacer un
I
R
b
borrado,
d solol los
l 16 mas altos,
lt por lo
l tanto
t t ell
T
borrado de la memoria FLASH, solo se hace
R en bloques
q de 64 bytes
y o 32 instrucciones.
U
J Los 16 bits mas significativos apuntan a la
I
L dirección de inicio del bloque de 64 bytes a
L
O
b
borrar.
A
El registro EECON1 controla la operación de
R borrado
borrado.
I
A
S
V
L
Borrado de la Memoria FLASH
A
D
I
El bit EEPGD se debe poner en 1, así
M
I como WREN también debe estar en 1
para habilitar la operación de escritura
R
T
R (Borrar es escribir FF).
U
J
I
El bit FREE se coloca en 1 para iniciar la
L
L operación de borrado
O
A
R
I
A
S
T
Poner en 1 el bit WR. Esto comenzará el
R ciclo de borrado
U
J
I
La CPU queda parada durante el tiempo
L
L
que tarde el borrado de la memoria que
O
son 2 mili segundos aproximadamente.
A
R
Habilitar las interrupciones.
I
A
S
V
L
Escritura en memoria Flash.
A
D
I
La escritura en la memoria FLASH, se
M
I realiza en paquetes de 8 bytes o 4
instrucciones.
R
T
R
U
Debido a que el registro TABLAT es de
J
I
1 byte, una operación de escritura en
L
L FLASH requiere el uso de 8 veces la
FLASH,
instrucción TBLWT.
O
A
R
I
A
S
Escritura en memoria Flash.
A
R
I
A
S
T
R
U
J
I
L
L
O
A
R
I
A
S
V
L
Modulo USB 18F45550
A
D
I
La familia PIC18FX455/X550 posee una
M
I interface USB de full-speed
full speed and low
low-
speed.
R
T
R
U
Esta diseñada para permitir la
J
I
comunicación entre cualquier HOST y el
L
L microcontrolador
O
A
R
I
A
S
V
L
A
D
I
M
I
R
T
R
U
J
I
L
L
O
A
R
I
A
S