Sistemas Digitales II
Microcontroladores
PIC
uC PIC CCS Compiler Proteus
Ing.
Emilio
J.
Escalante
S
Sistemas
Digitales
II
Microcontroladores
PIC
INTRODUCCIÓN. La
situación
actual
en
el
campo
de
los
microcontroladores se ha producido gracias al desarrollo de
la
tecnología
de
fabricación
de
los
circuitos
integrados. Este desarrollo ha permitido construir las centenas de miles de transistores en un chip. Esto fue una
condición
previa
microprocesador.
Las
para
la
primeras
fabricación
de
un
microcomputadoras
se
fabricaron al añadirles periféricos externos, tales como memoria, otros.
líneas El
de
entrada/salida,
incremento
integración
permitió
posterior crear
un
temporizadores
de
la
circuito
densidad integrado
u de que
contenía tanto al procesador como periféricos. Así es cómo fue desarrollada la primera microcomputadora en un solo chip, denominada más tarde microcontrolador. Para entender con más facilidad las razones del éxito tan grande de los microcontroladores, vamos a prestar atención al siguiente ejemplo. Hace unos 10 años, diseñar un dispositivo electrónico de control de un ascensor de un edificio de varios pisos era muy difícil, incluso para un equipo de expertos. ¿Ha pensado alguna vez en qué requisitos debe cumplir un simple ascensor? ¿Cómo lidiar con la situación cuando dos o más personas llaman al ascensor
al
mismo
tiempo?
¿Cuál
llamada
tiene
la
prioridad? ¿Cómo solucionar las cuestiones de seguridad, de pérdida de electricidad, de fallos, de uso indebido? Lo que sucede después de resolver estos problemas básicos es
un
proceso
adecuados
meticuloso
utilizando
un
Ing.
de
diseñar gran
Emilio
los
número
J.
dispositivos de
Escalante
chips
S.I
1
Sistemas
Digitales
Microcontroladores especializados.
Este
meses,
dependiendo
Cuando
haya
proceso
de
la
terminado
puede
tardar
complejidad
el
proceso,
del
II PIC
semanas
o
dispositivo.
llega
la
hora
de
diseñar una placa de circuito impreso y de montar el dispositivo.
¡Un
dispositivo
enorme!
Es
otro
trabajo
difícil y tardado. Por último, cuando todo está terminado y probado adecuadamente, pasamos al momento crucial y es cuando uno se concentra, respira profundamente y enciende la fuente de alimentación. Esto
suele
convierte
en
ser
el
punto
un
verdadero
dispositivos
electrónicos
apropiadamente
desde
el
en
el
que
trabajo casi
inicio.
la
puesto nunca
Prepárese
fiesta
se
que
los
funcionan para
muchas
noches sin dormir, correcciones, mejoras… y no se olvide de que todavía estamos hablando de cómo poner en marcha un simple ascensor. Cuando el dispositivo finalmente empiece a funcionar perfectamente
y
todo
el
mundo
esté
satisfecho,
y
le
paguen por el trabajo que ha hecho, muchas compañías de desarrollo
estarán
interesadas
en
su
trabajo.
Por
supuesto, si tiene suerte, cada día le traerá una oferta de trabajo de un nuevo inversionista. Sin embargo, si lo requieren para trabajar en el control de los elevadores de un nuevo edificio que tiene cuatro pisos más de los que ya maneja su sistema de control. ¿Sabe cómo proceder? ¿Cree acaso que se pueden controlar las demandas de sus clientes? Suponiendo que se va a construir un dispositivo universal, que se puede utilizar en los edificios de 4 a 40 pisos, una obra maestra de electrónica. Bueno, incluso si
se
consigue
construir
Ing.
esta
joya
Emilio
J.
electrónica,
Escalante
el
S.I
2
Sistemas
Digitales
II
Microcontroladores
PIC
inversionista esperará delante de la puerta pidiendo una cámara en el ascensor o una música relajante en caso de fallo de ascensor, u un ascensor con dos puertas. De todos modos, la ley de Murphy es inexorable y sin duda usted no podrá tomar ventaja a pesar de todos los esfuerzos que ha hecho. Por desgracia, todo lo que se ha dicho hasta ahora sucede en la realidad. Esto es lo que “dedicarse
a
la
significa.
Es
así
aparición
de
ingeniería como
los
se
electrónica”
hacían
las
realmente
cosas
microcontroladores
hasta
la
(dispositivos
pequeños, potentes y baratos). El
dispositivo
pequeño
electrónico
submarino,
una
grúa
capaz o
de
un
controlar
ascensor
un
como
el
anteriormente mencionado, ahora está incorporado en un sólo chip. Los microcontroladores ofrecen una amplia gama de aplicaciones y sólo algunas se exploran normalmente.
¿Cómo elegir un microcontrolador? Bueno,
si
decisión
se
de
es
principiante,
trabajar
con
y
los
se
ha
tomado
la
microcontroladores,
¡Felicitaciones por la elección! No obstante, a primera vista, no es fácil la elección del microcontrolador más adecuado.
¡El
problema
no
es
el
pequeño
rango
de
dispositivos a elegir, sino todo lo contrario! Antes de empezar
a
diseñar
un
dispositivo
basado
en
un
microcontrolador, se debe tomar en cuenta lo siguiente: cuántas
entradas/salidas
funcionamiento,
realizaría
Ing.
son
necesarias el
Emilio
para
dispositivo
J.
Escalante
su otras
S.I
3
Sistemas
Digitales
II
Microcontroladores operaciones necesita
además
algún
comunicación
de
activar/desactivar
modulo
especializado
serie,
convertidor
en
tal
A/D,
PIC
un como
relé, el
de
modulación
de
ancho de pulso, entre otros. Cuando se tiene una clara imagen de lo que se quiere, el rango de selección se reduce considerablemente, y queda pensar es en el precio. Si se piensa en todas estas cosas por primera vez, todo parecerá un poco confuso, por esa razón, se va paso a paso. Antes que nada, se selecciona el fabricante, es decir, la familia de microcontroladores que ofrece, luego se aprende a trabajar con un modelo particular. Sólo es necesario aprender lo que se necesite aprender, con ello se
es
capaz
de
manejar
cualquier
modelo
del
mismo
fabricante. Más o menos, todo se parece a montar en bicicleta: después de varias caídas inevitables en el principio, luego se tendrá la capacidad de mantener el equilibrio y montar en cualquier otra bicicleta. ¡Por supuesto, nunca se
olvida
tanto
de
montar
en
bicicleta,
como
de
la
destreza de programación! Ahora
toca
decidir
microcontrolador, instrucciones
qué
cargar
un
apropiadas.
se
quiere
programa Antes
en
de
que él
haga
el
con
las
encender
el
dispositivo es recomendable verificar su funcionamiento con
ayuda
de
un
simulador.
Si
todo
funciona
como
es
debido, se incorpora el microcontrolador al sistema. Si alguna vez se necesita cambiar, mejorar o actualizar el programa, se puede hacer, ¿Hasta cuándo? Hasta quedar satisfecho con el resultado.
Ing.
Emilio
J.
Escalante
S.I
4
Sistemas
Digitales
Microcontroladores
II PIC
MICROCONTROLADORES Historia e importancia de los microcontroladores Hasta antes de la aparición de los microprocesadores (1971), la mayor parte de las aplicaciones digitales en electrónica se basaban en la llamada lógica cableada, es decir, si existía un problema este era analizado y se sintetizaba una función en base a la lógica de Boole que era la solución al problema planteado. Con la aparición de los microprocesadores, se varió el esquema
de
diseño
descompuesto
en
una
microprocesador instrucciones
de
tal
serie
forma de
ejecutaba
para
llevar
un
tareas
una a
que
más
serie
efecto
problema simples,
el
pasos
o
de
cada
era
una
de
las
tareas, en ocasiones no era necesario volver a armar un circuito
para
solucionar
otro
problema
sino
que
se
cambiaba las instrucciones (programa) para obtener otra aplicación. Desde luego el microprocesador es como el cerebro que ejecuta operaciones de índole aritméticas y lógicas, por tanto, no manejaba líneas externas (periféricos), más aún tampoco tenía un lugar donde almacenar el programa y los datos
que
respuesta
necesitaba al
el
problema.
instrucción
y
la
(hardware)
que
El
programa
microprocesador
ejecutaba; daban
para
el
al
conjunto
soporte
encontrar
la
buscaba
una
de
circuitos
necesario
al
Escalante
S.I
microprocesador se le llamo sistema mínimo.
Ing.
Emilio
J.
5
Sistemas
Digitales
Microcontroladores Con
el
pasar
de
los
años
el
sistema
II PIC
mínimo
se
convirtió en un estándar, por otro lado, la escala de integración mejoro y posibilito (1976) sintetizar en un solo chip un sistema mínimo, al cual se le llamo SISTEMA A que no era otra cosa que el primer microcontrolador. Los
principiantes
en
electrónica
creen
que
un
microcontrolador es igual a un microprocesador. Esto no es cierto. Difieren uno del otro en muchos sentidos. La primera
y
la
más
importante
diferencia
es
su
funcionalidad. Para utilizar al microprocesador en una aplicación
real,
se
debe
de
conectar
con
componentes
tales como memoria o componentes buses de transmisión de datos. Aunque el microprocesador se considera una máquina de
computación
poderosa,
no
está
preparado
para
la
comunicación con los dispositivos periféricos que se le conectan. Para que el microprocesador se comunique con algún
periférico,
se
deben
utilizar
los
circuitos
especiales. Así era en el principio y esta práctica sigue vigente en la actualidad. Por otro lado, al microcontrolador se le diseña de tal manera que tenga todas las componentes integradas en el mismo
chip.
especializados
No
necesita
para
su
de
aplicación,
otros
componentes
porque
todos
los
circuitos necesarios, que de otra manera correspondan a los periféricos, ya se encuentran incorporados. Así se ahorra
tiempo
y
espacio
necesario
para
construir
un
dispositivo. En consecuencia definimos así a un microcontrolador; como
un
procesador
con
su
sistema
mínimo
en
un
chip
(incluye memoria para programa y datos, periféricos de
Ing.
Emilio
J.
Escalante
S.I
6
Sistemas
Digitales
Microcontroladores entrada/salida,
conversores
AD
y
DA,
II PIC
módulos
especializados en la transmisión y recepción de datos). Desde luego que hay diferencias sustanciales como la arquitectura cerrada de un microcontrolador, en cambio en un
microprocesador
es
abierta,
podemos
sumar
nuevos
dispositivos en hardware en función a las necesidades que la aplicación demande.
Figura 1. Estructura interna de un microcontrolador.
Otra diferencia entre los microcontroladores y los microprocesadores es que los primeros cuentan con un set de instrucciones reducido en cambio la mayoría de los microprocesadores tienen mayor cantidad de instrucciones. Por otro lado la mayoría de los microcontroladores posee
Ing.
Emilio
J.
Escalante
S.I
7
Sistemas
Digitales
II
Microcontroladores
PIC
una arquitectura Harvard frente a una arquitectura Von Neumann de los microprocesadores. Los
microcontroladores
aplicaciones
industriales
se para
especializan resolver
en
problemas
planteados específicos, por ejemplo: los encontramos en los teclados o mouse de las computadoras, son el cerebro de
electrodomésticos,
también
los
encontramos
en
la
industria automotriz, en el procesamiento de imagen y video.
Cabe
señalar
que
el
aumento
progresivo
de
la
escala de integración y las técnicas de fabricación hacen que cada vez aparezcan microcontroladores más poderosos y rápidos. El
mundo
que
nos
rodea
está
basado
en
sistemas
digitales desarrollados entorno a microcontroladores, por tanto, un microcontrolador no es más que un dispositivo electrónico especifico,
encargado es
por
de
ello
“controlar” que
surge
un
la
proceso
necesidad
de
analizar y entender dichos elementos. La presente obra está desarrollada con la finalidad de
dar
las
nociones
microcontroladores
PIC
básicas
a
la
utilizando
un
programación
de
compilador
C,
concretamente el compilador CCS Compiler. A lo largo del desarrollo de cada uno de los temas se ira analizando los rudimentos del lenguaje y el repertorio de instrucciones incluidas en él. Este puede ser un buen punto de partida para
aquellos
programadores
que
están
empleando
algún
otro dialecto (Basic, Ensamblador, PicC18). Lo habitual, hasta ahora, es que los usuarios que se inician en este apasionante mundo de la programación de Microcontroladores, sin tomar en cuenta la marca que sea,
Ing.
Emilio
J.
Escalante
S.I
8
Sistemas
Digitales
II
Microcontroladores primero
lo
hacían
utilizando
el
lenguaje
PIC
ensamblador,
especifico no solo para cada marca de microcontrolador sino
para
cada
perfectamente
modelo,
los
ya
recursos
que
de
hay
cada
que
conocer
Microcontrolador
(Número de puertos de Entrada/Salida, Relojes internos, entre
otros),
al
principio
de
los
tiempos
de
estos
dispositivos esto era obligatorio, ya que los recursos de memoria y velocidad de procesamiento no eran muy grandes y había que optimizar el código al máximo, esto implicaba la utilización de un lenguaje de programación de bajo nivel, que bien utilizado explota los recursos de estos dispositivos
sin
procesamiento, computadores dispositivos
desperdiciar
pero
al
igual
personales, ha
ido
memoria que
las
ha
y
velocidad
ocurrido
prestaciones
creciendo
con
de
exponencialmente
de los
estos con
el
tiempo, siendo ya perfectamente factible el utilizar un lenguaje de alto nivel para programar estos dispositivos y aprovechar las ventajas de portabilidad que ofrecen este
tipo
podemos
de
hacer
lenguajes, un
de
programa
esta
para
un
manera PIC
por en
ejemplo,
concreto
y
utilizarlo en otro de mayores prestaciones sin modificar apenas nada del código fuente. Cualquiera
que
comience
en
este
mundo
de
la
programación pensara que para aprender a programar en lenguaje C vale cualquier compilador de uso general y lo que realmente interesa es saber las instrucciones de C que se tienen que utilizar para configurar, por ejemplo, un puerto como entrada o salida, o que código tengo que emplear
para
utilizar
los
convertidores
A/D,
que
incorporan ya casi todos los microcontroladores, pero hay
Ing.
Emilio
J.
Escalante
S.I
9
Sistemas
Digitales
II
Microcontroladores que
tener
en
cuenta
microcontroladores
son
que
los
PIC
compiladores
específicos
para
para estos
dispositivos embebidos y no cumplen con el Estándar ANSI C al ciento por ciento, por lo que cuando se comience a programar,
lo
más
seguro
es
que
se
observe
que
una
función del C estándar no funciona perfectamente, dando un error al compilar.
Ing.
Emilio
J.
Escalante
S.I
10
Sistemas
Digitales
Microcontroladores
II PIC
MICROCONTROLADORES PIC Los PIC son una familia de microcontroladores tipo RISC (del inglés Reduced Instruction Set Computer, en español
Computador
Reducidas)
con
fabricados
por
Conjunto
de
Microchip
Instrucciones
Technology
Inc.
y
derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instrument. El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (controlador de interfaz periférico). El PIC original se diseñó para ser usado con la nueva CPU (Central Processing Unit, Unidad Central de Procesamiento) de 16 bits CP16000. Siendo en general una buena CPU, ésta tenía malas prestaciones de entrada y salida, y el PIC de 8 bits se desarrolló en 1975 para mejorar
el
rendimiento
Entradas/Salidas
(E/S)
del a
sistema
la
CPU.
quitando El
PIC
peso
de
utilizaba
microcódigo simple, almacenado en ROM para realizar estas tareas;
y
aunque
el
término
no
se
usaba
por
aquel
entonces, se trata de un diseño RISC que ejecuta una instrucción cada 4 ciclos del oscilador.
Figura 2. General Instrument PIC1650.
Ing.
Emilio
J.
Escalante
S.I
11
Sistemas
Digitales
II
Microcontroladores
PIC
En 1985 la división de microelectrónica de General Instrument se separa como compañía independiente que es incorporada
como
filial
(el
14
de
diciembre
de
1987
cambia el nombre a Microchip Technology y en 1989 es adquirida
por
un
grupo
de
inversores)
y
el
nuevo
propietario canceló casi todos los desarrollos, que para esas fechas la mayoría estaban obsoletos. El PIC, sin embargo, se mejoró con EPROM (Erasable Programmable ReadOnly
Memory;
borrable)
Memoria
para
programable.
de
conseguir
Hoy
en
varios
periféricos
serie,
UARTs,
día
solo un
de
controlador
multitud
incluidos
núcleos
lectura de
(módulos
control
PICs de
de
programable de
canal
vienen
con
comunicación
motores,
entre
otros.) y con memoria de programa desde 512 a 32.000 palabras (una palabra corresponde a una instrucción en lenguaje ensamblador, y puede ser de 12, 14, 16 ó 32 bits, dependiendo de la familia específica de PICmicro).
Figura 3. PIC® Microcontrollers
Ing.
Emilio
J.
Escalante
S.I
12
Sistemas
Digitales
Microcontroladores
II PIC
Arquitectura Microcontroladores PIC El
PIC
(Reduced
usa
un
juego
Instruction
de
Set
instrucciones
Computer
/
tipo
RISC
Computador
con
Conjunto de Instrucciones Reducidas), cuyo número puede variar desde 35 para PICs de gama baja a 70 para los de gama alta. Las instrucciones se clasifican en las que realizan operaciones entre el acumulador y una constante, entre
el
acumulador
instrucciones
de
y
una
posición
condicionamiento
y
de
de
memoria,
salto/retorno,
implementación de interrupciones y una para pasar a modo de bajo consumo llamada sleep. La arquitectura del PIC es sumamente
minimalista.
Está
caracterizada
por
las
siguientes prestaciones: - Área de código y de datos separadas (Arquitectura Harvard). - Un reducido número de instrucciones de longitud fija. - Implementa segmentación de tal modo que la mayoría de
instrucciones
tiempos
de
duran
reloj).
1
tiempo
de
haber
instrucciones
Puede
instrucción
(o
de
4
dos
tiempos de instrucción (saltos, llamadas y retornos de subrutinas
y
otras)
o
inclusive
con
más
tiempo
de
instrucción en PICs de gama alta. Esto implica que el rendimiento procesador
real es
de
de al
instrucciones menos
1/4
de
por la
segundo
frecuencia
del del
oscilador. - -Un solo acumulador (W), cuyo uso (como operador de origen)
es
implícito
(no
está
especificado
en
la
instrucción).
Ing.
Emilio
J.
Escalante
S.I
13
Sistemas
Digitales
Microcontroladores - Todas
las
registros
posiciones de
origen
de
y/o
la de
RAM
destino
funcionan de
II PIC como
operaciones
matemáticas y otras funciones. - Una pila de hardware para almacenar instrucciones de regreso de funciones. - Una relativamente pequeña cantidad de espacio de datos direccionable (típicamente, 256 bytes), extensible a través de manipulación de bancos de memoria. - El
espacio
de
datos
está
relacionado
con
el
CPU,
puertos, y los registros de los periféricos. - El
contador
de
programa
está
también
relacionado
dentro del espacio de datos, y es posible escribir en él (permitiendo saltos indirectos). A
diferencia
de
la
mayoría
de
otros
CPU,
no
hay
distinción entre los espacios de memoria y los espacios de registros, ya que la RAM cumple ambas funciones, y esta es normalmente referida como "archivo de registros" o simplemente, registros. Los microcontroladores PIC16F de Microchip pertenecen a una gran familia de microcontroladores de 8 bits (bus de
datos)
que
tienen
las
siguientes
características
generales que los distinguen de otras familias: - Arquitectura Harvard - Tecnología RISC - Tecnología CMOS Estas
características
se
conjugan
para
lograr
un
dispositivo altamente eficiente en el uso de la memoria
Ing.
Emilio
J.
Escalante
S.I
14
Sistemas
Digitales
Microcontroladores
II PIC
de datos y programa y por lo tanto en la velocidad de ejecución. Los microcontroladores que produce Microchip cubren un amplio rango de dispositivos cuyas características pueden variar según: - Empaquetado - Tecnología de la memoria incluida - Voltajes de operación - Frecuencia de operación Microchip ha dividido sus microcontroladores en tres grandes subfamilias de acuerdo al número de bits de su bus de instrucciones: Tabla 1. Subfamilias microcontroladores Microchip Subfamilia
Bits del bus de instrucciones
Nomenclatura
Base – Line
12
PIC12XXX y PIC14XXX
Mid – Range
14
PIC16XXX
High – End
16
PIC17XXX y PIC18XXX
En el nombre específico del microcontrolador pueden aparecer algunas siglas, las cuales determinan ciertas características
eléctricas
y
funcionales
del
microcontrolador, como se muestra en la siguiente tabla: Tabla 2. Características eléctricas y funcionales de los PIC Memoria/ Rango de
EPROM
voltaje
ROM
Flash
Estándar
C
4.5 a 6v
CR
4.5 a 6v
F
4.5 a 6v
Extendido
LC
2.5 a 6v
LCR
2.5 a 6v
LF
2 a 6v
Ing.
Emilio
J.
Escalante
S.I
15
Sistemas
Digitales
Microcontroladores
II PIC
Empaquetados Aunque cada empaquetado tiene variantes, especialmente en lo relativo a las dimensiones del espesor del paquete, en
general
se
pueden
encontrar
paquetes
tipo
PDIP
(Plastic Dual In Line Package), PLCC (Plastic Leaded Chip Carrier)
y
QFP
(Quad
Flat
Package),
los
cuales
se
muestran en las figuras siguientes:
Figura 4. Paquetes tipo PDIP, PLCC, SOIC, y QFP.
Oscilador Los PIC permiten diferentes modos para el oscilador. El
usuario
puede
seleccionar
Ing.
alguno
Emilio
J.
de
estos
Escalante
modos
S.I
16
Sistemas
Digitales
Microcontroladores programando
3
bits
de
configuración
del
II PIC
dispositivo
denominados: FOSC2, FOSC1 y FOSC0. En algunos de estos modos el usuario puede indicar que se genere o no una salida
del
oscilador
(CLKOUT)
a
través
de
un
pin
de
Entrada/Salida. Los modos de operación se muestran en la siguiente lista: Tabla 3. Osciladores
LP
Baja frecuencia (y bajo consumo de potencia) Cristal
XT
/
Resonador
cerámico
externos,
(Media
frecuencia)
HS
Alta velocidad (y alta potencia) Cristal/resonador Resistencia / capacitor externos (mismo que EXTRC
RC
con CLKOUT)
EXTRC Resistencia / capacitor externos EXTRC Resistencia / Capacitor externos con CLCKOUT INTRC Resistencia / Capacitor internos para 4 MHz INTRC
Resistencia / Capacitor internos para 4 MHz con CLKOUT
Los tres modos LP, XT y HS usan un cristal o resonador externo, la diferencia sin embargo es la ganancia de los drivers internos, lo cual se ve reflejado en el rango de frecuencia
admitido
y
la
potencia
consumida.
En
la
siguiente tabla se muestran los rangos de frecuencia así como los capacitores recomendados para un oscilador en base a cristal.
Ing.
Emilio
J.
Escalante
S.I
17
Sistemas
Digitales
Microcontroladores
II PIC
Tabla 4. Rangos de frecuencia y capacitores recomendados
Capacitores recomendados C1 C2
Modo
Frecuencia t铆pica
LP
32 kHz 200 kHz
68 a 100 pf 15 a 30 pf
100 kHz 2 MHz 4 MHz 8 MHz 10 MHz 20 MHz
68 15 15 15 15 15
XT HS
a a a a a a
150 30 30 30 30 30
68 a 100 pf 15 a 30 pf
pf pf pf pf pf pf
150 15 15 15 15 15
a a a a a a
200 pf 30 pf 30 pf 30 pf 30 pf 30 pf
Cristal externo: En los tres modos mostrados en la tabla
anterior
se
puede
usar
un
cristal
o
resonador
cer谩mico externo. En la siguiente figura se muestra la conexi贸n de un cristal a las patitas OSC1 y OS2 del PIC.
Figura 5. Conexi贸n oscilador XT.
Figura 6. Cristales de uso comercial.
Ing.
Emilio
J.
Escalante
S.I
18
Sistemas
Digitales
Microcontroladores
II PIC
Circuito RC externo: En los modos RC y EXTRC el PIC puede generar su señal oscilatoria basado en un arreglo RC externo conectado a la patita OSC1 como se muestra en la siguiente figura:
Figura 7. Oscilador RC externo
Este modo sólo se recomienda cuando la aplicación no requiera una gran precisión en la medición de tiempos. La frecuencia de oscilación depende no sólo de los valores de Rext y Cext, sino también del voltaje de la fuente Vdd. Los rangos admisibles para resistencia y capacitor son: Rext: de 3 a 100 Kohms y Cext: mayor de 20 pf Oscilador
externo:
También
es
posible
conectar
una
señal de reloj generada mediante un oscilador externo a la patita OSC1 del PIC. Para ello el PIC deberá estar en uno de los tres modos que admiten cristal (LP, XT o HS). La conexión se muestra en la siguiente figura:
Ing.
Emilio
J.
Escalante
S.I
19
Sistemas
Digitales
Microcontroladores
II PIC
Figura 8. Oscilador externo
Características generales del PIC16F877 La siguiente es una lista de las características que comparte el PIC16F877 con los dispositivos más cercanos de
su
familia
(PIC16F873,
PIC16F874,
PIC16F876,
PIC16F877) - CPU
RISC.
Sólo
35
instrucciones
que
aprender
(En
lenguaje ensamblador) - Todas las instrucciones se ejecutan en un ciclo de reloj, excepto los saltos que requieren dos - Frecuencia de operación de 0 a 20 MHz (DC a 200 nseg de ciclo de instrucción) - Hasta 8k x 14 bits de memoria Flash de programa - Hasta 368 bytes de memoria de datos (RAM) - Hasta 256 bytes de memoria de datos EEPROM - Hasta 4 fuentes de interrupción - Stack de hardware de 8 niveles - Reset de encendido (POR) - Timer de encendido (PWRT) - Timer de arranque del oscilador (OST) - Sistema de vigilancia Watchdog timer.
Ing.
Emilio
J.
Escalante
S.I
20
Sistemas
Digitales
Microcontroladores
II PIC
- Protección programable de código - Modo SEP de bajo consumo de energía - Opciones de selección del oscilador - Programación y depuración serie “In-Circuit” (ICSP) a través de dos patitas - Lectura/escritura
de
la
CPU
a
la
memoria
flash
de
programa - Rango de voltaje de operación de 2.0 a 5.5 volts - Alta disipación de corriente de la fuente: 25mA - Rangos
de
temperatura:
Comercial,
Industrial
y
Extendido - Bajo consumo de potencia, Menos de: -
0.6mA a 3V, 4 Mhz
-
20 µA a 3V, 32 Khz
-
menos de 1µA corriente de standby.
- Periféricos - Timer0: Contador/Temporizador de 8 bits con preescalador de 8 bits - Timer1: Contador/Temporizador de 16 bits con preescalador - Timer0: Contador/Temporizador de 8 bits con preescalador y post-escalador de 8 bits y registro de periodo. - Dos módulos de Captura, Comparación y PWM - Convertidor Analógico/Digital: de 10 bits, hasta 8 canales - Puerto Serie Síncrono (SSP) - Puerto Serie Universal (USART/SCI). - Puerto
Paralelo
Esclavo
(PSP):
de
8
bits
con
líneas de protocolo
Ing.
Emilio
J.
Escalante
S.I
21
Sistemas
Digitales
Microcontroladores
II PIC
Diagrama de Bloques del PIC16F877 En la siguiente figura se muestra a manera de bloques la organización interna del PIC16F877, Se muestra también junto a este diagrama su diagrama de patitas, para tener una visión conjunta del interior y exterior del Chip.
Figura 9. Diagrama de bloques
Descripción de la CPU Unidad
Central
De
Procesamiento
(Central
Processor
Unit). Como indica su nombre, esto es una unidad que controla todos los procesos dentro del microcontrolador. La CPU es la responsable de la interpretación y ejecución de la información (instrucciones) guardada en la memoria de programa. Muchas de estas instrucciones operan sobre
Ing.
Emilio
J.
Escalante
S.I
22
Sistemas
Digitales
Microcontroladores
II PIC
la memoria de datos. El CPU Consiste en varias unidades más pequeñas, de las que las más importantes son: Decodificador descodifica otros
las
circuitos
instrucciones”
de
instrucciones basándose
que
microcontrolador
instrucciones
es
del
en las
la
parte
programa
esto.
diferente
expresa
es El
para
y
que
acciona
“conjunto
cada
de
familia
capacidades
de
de
este
circuito. Unidad lógica aritmética (Arithmetical Logical Unit ALU) realiza todas las operaciones matemáticas y lógicas sobre datos. Acumulador o registro de trabajo. Es un registro SFR estrechamente
relacionado
con
el
funcionamiento
de
la
ALU. Es utilizado para almacenar todos los datos sobre los que se debe realizar alguna operación (sumar, mover). También
almacena
procesamiento denominado
los
futuro.
Registro
resultados Uno
Status
de
preparados los
(PSW),
para
registros
está
el SFR,
estrechamente
relacionado con el acumulador. Muestra el “estado” de un número almacenado en el acumulador (el número es mayor o menor que cero entre otros.) en cualquier instante dado.
Figura 10. Componentes de una CPU
Ing.
Emilio
J.
Escalante
S.I
23
Sistemas
Digitales
Microcontroladores
II PIC
BUS El bus está formado por 8, 16 o más cables. Hay dos tipos de buses: el bus de direcciones y el bus de datos. El bus de direcciones consiste en tantas líneas como sean necesarias para direccionar la memoria. Se utiliza para transmitir la dirección de la CPU a la memoria. El bus de datos es tan ancho como los datos, en este caso es de 8 bits o líneas de ancho. Se utiliza para conectar todos los circuitos dentro del microcontrolador. Ciclo de instrucción El registro Program Counter (PC) es gobernado por el ciclo
de
figura.
instrucción Cada
ciclo
como de
se
muestra
instrucción
en
la
la
CPU
siguiente
lee
(ciclo
Fetch) la instrucción guardada en la memoria de programa apuntada por PC y al mismo tiempo ejecuta la instrucción anterior, esto debido a una cola de instrucciones que le permite ejecutar una instrucción mientras lee la próxima.
Figura 11. Ciclo de instrucción
Como puede verse, cada ciclo de instrucción (Tcy) se compone a su vez de cuatro ciclos del oscilador (Tosc). Ing.
Emilio
J.
Escalante
S.I
24
Sistemas
Digitales
Microcontroladores
II PIC
Cada ciclo Q provee la sincronización para los siguientes eventos: Q1: Decodificación de la instrucción Q2: Lectura del dato (si lo hay) Q3: Procesa el dato Q4: Escribe el dato Debido ciclos
a
de
esto
cada
reloj,
de
ciclo manera
de
instrucción
que
si
la
consume
frecuencia
4 de
oscilación es Fosc, Tcy será 4/Fosc. Registros de la CPU. Registro PC. Registro de 13 bits que siempre apunta a la siguiente instrucción a ejecutarse. En la siguiente sección se dan mayores detalles en el manejo de este registro. Registro de Instrucción. Registro de 14 bits. Todas las instrucciones se
colocan
en
el
para
ser
decodificadas por la CPU antes de ejecutarlas. Registro W. Registro de 8 bits que guarda resultados temporales de las operaciones realizadas por la ALU Registro
de
Estado
(03h
y
83h,
STATUS)
contienen
varios bits de estado de la unidad central, el estado aritmético de la ALU, el estado del reset y un par de bits de selección de página denominados RP1 y RP0. Ocupa la posición 03h del banco 0 y la 83h del banco 1. Algunos de estos bits se pueden cambiar manualmente a través del programa. Otros los activa automáticamente el PIC cuando se
dan
ciertos
procesos.
Estos
bits
se
llaman
flags
(banderas). Para dar una idea práctica, una bandera se
Ing.
Emilio
J.
Escalante
S.I
25
Sistemas
Digitales
Microcontroladores
II PIC
levanta (se pone a 1) cuando ha pasado algo. El registro STATUS está formado por 8 bits. Tabla 5. Registro STATUS
R/W-0
R/W-0
R/W-0
R-1
R-1
R/W-x
R/W-x
R/W-x
IRP
RP1
RP0
/TO
/PD
Z
DC
C
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
R/W significa que el bit correspondiente se puede leer y escribir, mientras que R significa que solamente puede ser leído. También se indica el estado que se establece tras un reset. - Bit 7, IRP: Selección del banco en direccionamiento indirecto. Este bit junto con el de más peso del registro FSR sirven para determinar el banco de la memoria de datos seleccionado. En el PIC16X84 al disponer de dos bancos no se usa y debe programarse como 0. - Bit
6
Selección
y
5,
de
RP0
y
página
o
RP1:
Register
banco
de
la
Bank
Select.
memoria
con
direccionamiento directo. Cada página contiene 128 bytes. Como
el
PIC16X84
sólo
tiene
dos
bancos
únicamente
se
emplea RP0 de forma que cuando vale 0 se accede al banco 0 y cuando vale 1 se accede al banco 1. Después de un reset,
RP0
se
pone
automáticamente
a
0.
RP1
debe
mantenerse a 0. El bit RP1 deberá ser puesto a cero, ya que si no nos saldríamos del rango de memoria. - Bit 4 (flag), TO: Time Out (Tiempo acabado) o Se
pone
a
1
tras
conectar
la
alimentación
o
al
ejecutar CLRWDT o SLEEP.
Ing.
Emilio
J.
Escalante
S.I
26
Sistemas
Digitales
Microcontroladores
II PIC
o 0. Se pone a 0 por desbordamiento del Perro Guardián WDT. - Bit 3 (flag), PD: Power Down (Apagado). Se pone automáticamente a 1 tras conectar la
o
alimentación
Vdd
o
ejecutar
CLRWDT,
que
resetea
el
contador WatchDog. o Se pone a 0 al ejecutar la instrucción SLEEP. - Bit 2 (flag), Z: Cero o 1
=
El
resultado
de
una
operación
aritmética
o
lógica es 0. o 0 = El resultado es distinto de 0. - Bit 1 (flag), DC (Digit Carry). Acarreo en el 4º bit de
menos
peso.
Funciona
igual
que
el
bit
de
Carry
descrito a continuación. De interés en operaciones en BCD - Bit 0 (flag), C (Carry). Acarreo en el 8º bit o bit de mas peso. Es el bit de "acarreo" en operaciones de suma AADWF y ADDLW así como también el bit de "llevada" en
las
También
instrucciones lo
emplean
de las
sustracción
SUBWF
instrucciones
RLF
y y
SUBLW. RRF
de
rotación de bits. o Suma 1. Se pone a 1 cuando se ha producido acarreo en la suma en el bit de mayor peso con las operaciones AADWF y ADDLW. 0. Se pone a 0 si en la suma no se ha producido acarreo. o Resta 1. Se pone a 1 si en la resta no se ha producido llevada.
Ing.
Emilio
J.
Escalante
S.I
27
Sistemas
Digitales
Microcontroladores
II PIC
0. Se pone a 0 cuando se ha producido llevada en la resta con las operaciones SUBWF y SUBLW. Organización de la memoria del PIC Los PIC tienen dos tipos de memoria: Memoria de Datos y Memoria de programa, cada bloque con su propio bus: Bus de datos y Bus de programa; por lo cual cada bloque puede ser accesado durante un mismo ciclo de oscilación. La memoria de datos consta de dos áreas mezcladas y destinadas a funciones distintas. Un registro o una celda de memoria es un circuito electrónico que puede memorizar el
estado
emplean
de
dos
un tipos
byte. de
En
los
microcontroladores
registros:
los
registros
se de
funciones especiales (SFR) y los Registro de Propósito General (GPR)
Figura 12. Registros de 8 bits
Registros de Propósito Especial (SFR) Los SFR son localidades asociadas específicamente a los diferentes periféricos y funciones de configuración del PIC y tienen un nombre específico asociado con su función. Mientras que los GPR son memoria RAM de uso
Ing.
Emilio
J.
Escalante
S.I
28
Sistemas
Digitales
Microcontroladores
II PIC
general. Cada microcontrolador dispone de un número de registros de funciones especiales (SFR), con la función predeterminada
por
el
fabricante.
Sus
bits
están
conectados a los circuitos internos del microcontrolador tales como temporizadores, convertidores A/D, osciladores entre otros, lo que significa que directamente manejan el funcionamiento microcontrolador.
de
estos
circuitos,
Imagínese
ocho
o
sea
del
interruptores
que
manejan el funcionamiento de un circuito pequeño dentro del microcontrolador.
Figura 13. Registros de función especial SFR
Ing.
Emilio
J.
Escalante
S.I
29
Sistemas
Digitales
Microcontroladores
II PIC
Tabla 6. Tabla de registros de funci贸n especial SFR
Registro de Prop贸sito General (GPR) Los GPR Tambi茅n son registros de 1 byte cada uno. Los registros
GPR
(General
Purpose
Register)
sirven
para
almacenar los datos o variables que se procesan en el programa.
El
PIC16F84A
tiene
Ing.
68
Emilio
registros
J.
GPR,
Escalante
todos
S.I
30
Sistemas
Digitales
II
Microcontroladores
PIC
ubicados en el banco 0, entre las direcciones 0x0C y 0x4F.
En
accesos
el
a
banco
los
1
no
registros
hay del
registros banco
0.
GPR,
solo
Dicho
en
hay
otras
palabras, los registros GPR del banco 1 son un reflejo de los
GPR
del
banco
0.
Los
PIC16F877A/876A
tienen
368
registros GPR. Los últimos 16 registros de los bancos 1, 2 y 3 son los mismos que del banco 0. Los PIC16F874A/873A tienen 192 registros GPR. Su mapa de RAM es un poco diferente debido principalmente a los accesos repetidos. Todas estas diferencias serán de preocupación solo cuando se programe en ensamblador. Los registros GPR no tienen nombres propios, pero los compiladores de alto nivel saben cómo administrarlos para almacenar las variables del programa. Por otro lado, si se programa en ensamblador, se les debe acceder mediante sus direcciones, ya sea directamente usando números, o asignándoles directivas,
nombres como
equ
a
las
o
direcciones
cblock.
Por
con
algunas
ejemplo,
en
el
siguiente código se designan los nombres var1 y var2 a los
registros
de
direcciones
0x25
y
0x30,
respectivamente. var1 equ 0x25 var2 equ 0x30 Luego se podrán usar esos nombres para acceder a los registros designados. Por ejemplo, el siguiente código copia el contenido del primer registro al segundo. movf var1, W ; Mover var1 a W movwf var2 ; Mover W a var2 El diseñador puede elegir cualquier registro GPR como sus
variables
de
programa.
Ing.
Para
Emilio
ello
J.
debe
recordar
Escalante
S.I
31
Sistemas
Digitales
Microcontroladores siempre
dรณnde
se
localizan,
en
el
PIC16F84A
II PIC estรกn
mapeados a partir de la direcciรณn 0x0C, en los PIC16F87xA empiezan en la direcciรณn 0x20 en el banco 0; los otros bancos se usan raramente en ensamblador.
Figura 14. Memorias de los Microcontroladores PIC.
Bancos de memoria Toda la memoria de datos estรก organizada en 4 bancos numerados 0, 1, 2 y 3. Para seleccionar un banco se debe hacer
uso
de
los
bits
del
registro
STATUS<7:5>
denominados IRP, RP1 y RP0. Hay dos maneras de acceder a la
memoria
de
datos:
Ing.
Direccionamiento
Emilio
J.
directo
Escalante
e
S.I
32
Sistemas
Digitales
Microcontroladores
II PIC
indirecto. La selección de bancos se basa en la siguiente tabla Tabla 7. Bits del registro STATUS<7:5>
Direccionamiento Indirecto (IRP) 0 1
RP1:RP0
Banco
0 0 1 1
0 1 2 3
0 1 0 1
Cada banco consta de 128 bytes (de 00h a 7Fh). En las posiciones más bajas de cada banco se encuentran los SFR, y arriba de éstos se encuentran los GPR. Toda la memoria de datos está implementada en RAM estática.
Figura 15. Memoria de Programa
Ing.
Emilio
J.
Escalante
S.I
33
Sistemas
Digitales
Microcontroladores
II PIC
Memoria ROM La memoria ROM se utiliza para guardar permanente el programa que se está ejecutando. Es la razón por la que es
frecuentemente
PIC16F887
tiene
localidades). tecnología
llamada 8Kb
Como
FLASH,
de
“memoria memoria
la
memoria
su
contenido
de
ROM
ROM
programa”. (en
está
se
total
fabricada
puede
El 8192 con
cambiar
al
proporcionarle un voltaje de programación especial (13V). No
obstante,
no
es
necesario
explicarlo
en
detalles
puesto que se realiza automáticamente por un programa especial en la PC y un simple dispositivo electrónico denominado programador. La Memoria de Programa en los PIC16Fxxx es de tipo flash, aquí es donde se aloja el programa que el CPU ejecutará.
En
los
PIC16
la
memoria
de
programa
se
cuantifica en palabras, de 14 bits cada una. Son de 14 bits porque cada instrucción es de 14 bits. Esto suele impresionar
un
poco
al
novel,
quien
está
habituado
a
medir la capacidad de las memorias en bytes (8 bits). El PIC16F84A tiene 1 k (1024) palabras de memoria. En tiempo de ejecución son de solo lectura. Con 1 k puede almacenar hasta 1024 instrucciones de código ensamblador. Los PIC16F877A/876A tienen 8 k (8192) palabras de memoria de programa mientras que los PIC16F874A/873A tienen 4 k (4192). Los cuatro PICmicros ofrecen la posibilidad de escribir en su memoria de programa incluso en tiempo de ejecución.
Esta
función
puede
ser
aprovechada
para
almacenar datos procesados por el usuario o para permitir la autoprogramación del PIC.
Ing.
Emilio
J.
Escalante
S.I
34
Sistemas
Digitales
Microcontroladores
II PIC
En las siguientes figuras las memorias de programa del PIC están acompañadas por el PC (Program Counter) y la Pila (Stack). Es así porque hay una estrecha relación en su trabajo.
Figura 16. Contador de Programa, Pila y Memoria de programa.
El Contador de Programa, PC El
PC
instrucción
es
un
que
registro debe
que
ejecutar
indica el
CPU.
la Al
siguiente arrancar
microcontrolador, el PC vale 0x0000 y se va incrementando automáticamente, con lo que el PIC debería ejecutar una a
Ing.
Emilio
J.
Escalante
S.I
35
Sistemas
Digitales
Microcontroladores
II PIC
una todas las instrucciones del programa. En los PICs de la
familia
direccionar
Mid-Range un
el
máximo
PC
de
8
es k
de
13
bits,
palabras
de
pudiendo
memoria
de
programa. La Pila o STACK Es una memoria que almacena temporalmente el valor del PC
(Program
Counter)
cuando
el
programa
llama
a
una
subrutina o cuando salta al Vector de Interrupción, en una interrupción. En los PICs de la familia Mid-Range la Pila tiene únicamente 8 niveles y se administra a nivel hardware, esto es, no hay instrucciones para acceder a ella
directamente.
Su
operación
es
enteramente
en
background. Solo debemos cuidar de que no se llegue a desbordar. Cuando se ejecuta una instrucción CALL o es reconocida una interrupción el PC es guardado en el stack y el apuntador de stack es incrementado en 1 para apuntar a la siguiente posición vacía. A la inversa, cuando se ejecuta una instrucción RETURN, RETLW o RETFIE el contenido de la posición actual del stack es colocado en el PC. El PCLATH no se modifica en ninguna de estas operaciones, cuando el apuntador de stack ya está en la posición 8 y se ejecuta otro CALL se reinicia a la posición 1 sobrescribiendo en dicha posición. No existe ningún indicador que avise de esta
situación.
Así
que
el
usuario
deberá
llevar
el
control para que esto no ocurra. Vector de Reset. Cuando ocurre un reset el contenido del PC es forzado a cero, ésta es la dirección donde la
Ing.
Emilio
J.
Escalante
S.I
36
Sistemas
Digitales
II
Microcontroladores
PIC
ejecución del programa continuará después del reset, por ello se le llama “dirección del vector de reset”. Vector
de
interrupción.
Cuando
la
CPU
acepta
una
solicitud de interrupción ejecuta un salto a la dirección 0004h, por lo cual a esta se le conoce como “dirección del vector de interrupción”. El registro PCLATH no es modificado en esta circunstancia, por lo cual habrá que tener cuidado al manipular el PC dentro de la Rutina de Atención
a
la
Interrupción
(Interrupt
Service
Routine
(ISR)). Aunque el archivo de registros en RAM puede variar de un PIC a otro, la familia del PIC16F87x coincide casi en su totalidad. En la siguiente figura se muestra a detalle el mapa de este archivo de registros y su organización en los cuatro bancos que ya se describieron. El PIC16F84A es de los muy pocos que tienen 2 bancos de RAM; el resto de los PIC16F, que son la gran mayoría, tienen 4 bancos. La existencia de los bancos solo es de consideración (y un dolor de cabeza) cuando se programa en lenguaje ensamblador. Al
apagar
la
fuente
de
alimentación,
se
pierde
el
contenido de la memoria RAM. Se utiliza para almacenar temporalmente creados
y
los
datos
utilizados
y
los
durante
resultados el
inmediatos
funcionamiento
del
microcontrolador. Además los microcontroladores cuentan con una memoria EEPROM
(MEMORIA
Programmable
Rom
eléctricamente).
El
EEPROM /
(Electrically
rom
programable
contenido
Ing.
de
Emilio
la
J.
Erasable y
EEPROM
borrable se
Escalante
puede
S.I
37
Sistemas
Digitales
Microcontroladores
II PIC
cambiar durante el funcionamiento (similar a la RAM), pero
se
queda
permanentemente
guardado
después
de
la
pérdida de la fuente de alimentación (similar a la ROM). Por lo tanto, la EEPROM se utiliza con frecuencia para almacenar los valores creados durante el funcionamiento, que
tienen
que
estar
permanentemente
guardados.
Por
ejemplo, si se ha diseñado una llave electrónica o una alarma,
sería
estupendo
permitir
al
usuario
crear
e
introducir una contraseña por su cuenta. Por supuesto, la nueva contraseña tiene que estar guardada al apagar la fuente de alimentación. En tal caso una solución perfecta es el microcontrolador con una EEPROM embebida. Puertos De Entrada/Salida (E/S) Para
hacer
conectarlo periférico.
a
útil un
Cada
un
microcontrolador,
dispositivo
externo,
microcontrolador
es
hay
decir,
tiene
uno
que a
o
un más
registros (denominados puertos) conectados a los pines en el microcontrolador. ¿Por qué se denominan como puertos de entrada/salida? Porque se puede cambiar la función de cada pin como se requiera. Por ejemplo, se desea que el dispositivo encienda y apague las tres indicadores LED’s y que simultáneamente monitoree el estado lógico de 5 sensores o botones de presión. Uno de los puertos debe estar configurado de tal manera que haya tres salidas (conectadas a los LEDs) y cinco entradas (conectadas a los sensores). Eso se realiza simplemente por medio de software, lo que significa que la función de algún pin puede ser cambiada durante el funcionamiento.
Ing.
Emilio
J.
Escalante
S.I
38
Sistemas
Digitales
II
Microcontroladores
PIC
Figura 17. Pines de entrada/salida (E/S)
Una
de
las
características
más
importantes
de
los
pines de entrada/salida (E/S) es la corriente máxima que pueden
entregar/recibir.
En
la
mayoría
de
los
microcontroladores la corriente obtenida de un pin es suficiente para activar un LED u otro dispositivo de baja corriente (10-20mA). Mientras más pines de E/S haya, más baja es la corriente máxima de un pin. En otras palabras, todos los puertos de E/S comparten la corriente máxima declarada
en
la
hoja
de
especificación
técnica
del
microprocesador. Otra pueden
característica
importante
disponer
los
resistores
de
conectan
los
de
los
resistores pines
al
pines
es
pull-up.
polo
positivo
que
Estos del
voltaje de la fuente de alimentación y su efecto se puede ver al configurar el pin como una entrada conectada a un interruptor mecánico o a un botón de presión. Las últimas versiones
de
los
microcontroladores
tienen
las
resistencias pull-up configurables por software.
Ing.
Emilio
J.
Escalante
S.I
39
Sistemas
Digitales
Microcontroladores
II PIC
Cada puerto de E/S normalmente está bajo el control de un registro SFR especializado, lo que significa que cada bit
de
ese
registro
determina
el
estado
del
pin
correspondiente en el el microcontrolador. Por ejemplo, al escribir un uno lógico (1) a un bit del registro de control (SFR), el pin apropiado del puerto se configura automáticamente como salida. Eso significa que el voltaje llevado a ese pin se puede leer como 0 o 1 lógico. En caso contrario, al escribir 0 al registro SFR, el pin apropiado del puerto se configura como salida. Su voltaje (0V o 5V) corresponde al estado del bit apropiado del registro del puerto. La
mayoría
de
los
multipropósito,
por
RA3/AN3/Vref+/C1IN+ microcontrolador
pines
del
microcontrolador
ejemplo, para
indica
el que
la
asignación
quinto éste
son
pin
dispone
de
del las
siguientes funciones: - RA3 Tercera entrada/salida digital del puerto A - AN3 Tercera entrada analógica - Vref+ Referencia positiva de voltaje - C1IN+ Entrada positiva del comparador C1 La
funcionalidad
de
los
pines
presentados
anteriormente es muy útil puesto que permite un mejor aprovechamiento de los recursos del microcontrolador sin afectar a su funcionamiento. Estas funciones de los pines no se pueden utilizar simultáneamente, sin embargo se pueden
cambiar
en
cualquier
instante
durante
el
funcionamiento.
Ing.
Emilio
J.
Escalante
S.I
40
Sistemas
Digitales
Microcontroladores
II PIC
Figura 18. Arquitectura de los microcontroladores PIC.
Ing.
Emilio
J.
Escalante
S.I
41
Sistemas
Digitales
Microcontroladores Las
siguientes
tablas
se
refieren
a
las
II PIC
funciones
establecidas en los pines de microcontroladores DIP de 40 pines. Tabla 8. Pines Microcontroladores PIC
Ing.
Emilio
J.
Escalante
S.I
42
Sistemas
Digitales
Microcontroladores
II PIC
Tabla 9. Cont. Pines Microcontroladores PIC
Ing.
Emilio
J.
Escalante
S.I
43
Sistemas
Digitales
Microcontroladores
II PIC
Tabla 10. Cont. Pines Microcontroladores PIC
Ing.
Emilio
J.
Escalante
S.I
44