Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programando microcontroladores PIC con Protón
PROGRAMANDO MICROCONTROLADORES
PIC CON PROTÓN
PARTE 2: EL MICROCONTROLADOR PIC.
Un microcontrolador es un circuito integrado de alta escala de integración que
incorpora la mayor parte de los elementos que configuran un controlador.
Un microcontrolador dispone normalmente de los siguientes componentes:
• Procesador o UCP (Unidad Central de Proceso).
• Memoria RAM para Contener los datos.
• Memoria para el programa tipo ROM/PROM/EPROM.
• Líneas de E/S para comunicarse con el exterior.
• Diversos módulos para el control de periféricos (temporizadores, Puertas Serie
y Paralelo, CAD: Conversores
• Analógico/Digital, CDA: Conversores Digital/Analógico, etc.).
• Generador de impulsos de reloj que sincronizan el funcionamiento de todo el
sistema.
Los productos que para su regulación incorporan un microcontrolador disponen de las
siguientes ventajas:
• Aumento de prestaciones: un mayor control sobre un determinado elemento
representa una mejora considerable en el mismo.
• Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado
número de elementos disminuye el riesgo de averías y se precisan menos
ajustes.
• Reducción del tamaño en el producto acabado: La integración del
microcontrolador en un chip disminuye el volumen, la mano de obra y los
stocks.
• Mayor flexibilidad: las características de control están programadas por lo que
su modificación sólo necesita cambios en el programa de instrucciones.
El microcontrolador es en definitiva un circuito integrado que incluye todos los
componentes de un computador.
Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo
al que gobierna. En este caso el controlador recibe el nombre de controlador
empotrado (embedded controller).
Diferencia entre microprocesador y microcontrolador.
Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de
los buses en el exterior permite que se configure a la medida de la aplicación.
Ing. Giovanni Lafebre J. (Cel: 096376496) M&M
Pro
ogramand
do microco
ontrolado
ores PIC co
on Protón
El microcontrolador es un
n sistema cerrado.
c Todas las parrtes del computador están
conteenidas en su interior y sólo salen
s al exxterior las líneas quee gobiernan los
perifféricos.
Aplicaciones de los miccrocontro
oladores.
Cadaa vez existeen más pro
oductos quee incorporaan un microocontroladoor con el fin
f de
aumeentar sustaancialmentee sus prestaciones, reeducir su taamaño y co
oste, mejorrar su
fiabillidad y dism
minuir el con
nsumo.
Algunos fabricaantes de microcontro
m oladores superan el millón
m de u
unidades de
d un
modelo determinado prod ducidas en uuna semanaa. Este dato o puede daar una idea de la
masiva utilizació ón de estos componen ntes.
Los mmicrocontro oladores esttán siendo empleados en multitud de sistem mas presenttes en
nuesstra vida diaria,
d commo pueden ser jugue etes, horno o microonddas, frigorííficos,
televvisores, com
mputadorass, impresoraas, módems, el sistemma de arrannque de nuuestro
Ing. Giovanni Laffebre J. (Cel: 096376496)) M&M
Pro
ogramand
do microco
ontrolado
ores PIC co
on Protón
La
a arquitectura Harvard dispone de dos memorias indeppendientes pa
ara datos y pa
ara instruccion
nes,
permitiendo accesos sim
multáneos.
Los m
microcontro
oladores PIC
C responden
n a la arquittectura Harrvard.
Parttes Básicas del Micrrocontrolaador
El prrocesadorr o UCP
Es el elemento o más impo ortante del microconttrolador y determina sus princiipales
caraccterísticas, ttanto a niveel hardwaree como software.
Se encarga
e de direccionaar la mem moria de in nstruccioness, recibir eel código de
d la
instrucción en curso,
c su decodificació
ón y la ejeccución de la operaciónn que implica la
instrucción, así ccomo la bússqueda de llos operand dos y el almacenamiento del resultado.
Existen tres orientacionees en cuan nto a la arquitectura
a a y funcio
onalidad de e los
procesadores acctuales.
CISC: Un gran número de procesadores usados en los microcontroladores están
basados en la filosofía CISC (Computadores de Juego de Instrucciones Complejo).
Disponen de más de 80 instrucciones máquina en su repertorio, algunas de las cuales
son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecución.
Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones
complejas que actúan como macros.
RISC: Tanto la industria de los computadores comerciales como la de los
microcontroladores están decantándose hacia la filosofía RISC (Computadores de
Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones
máquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan
en un ciclo.
La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software
del procesador.
SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de
instrucciones, además de ser reducido, es “específico”, o sea, las instrucciones se
adaptan a las necesidades de la aplicación prevista. Esta filosofía se ha bautizado con el
nombre de SISC (Computadores de Juego de Instrucciones Específico).
Memoria
En los microcontroladores la memoria de instrucciones y datos está integrada en el
propio chip. Una parte debe ser no volátil, tipo ROM, y se destina a contener el
programa de instrucciones que gobierna la aplicación. Otra parte de memoria será tipo
RAM, volátil, y se destina a guardar las variables y los datos.
Según el tipo de memoria ROM que dispongan los microcontroladores, la aplicación y
utilización de los mismos es diferente. Se describen las cinco versiones de memoria no
volátil que se pueden encontrar en los microcontroladores del mercado.
1º. ROM con máscara
Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la
fabricación del chip. El elevado coste del diseño de la máscara sólo hace aconsejable el
empleo de los microcontroladores con este tipo de memoria cuando se precisan
cantidades superiores a varios miles de unidades.
2ª. OTP
El microcontrolador contiene una memoria no volátil de sólo lectura “programable una
sola vez” por el usuario. OTP (One Time Programmable). Es el usuario quien puede
escribir el programa en el chip mediante un sencillo grabador controlado por un
programa desde un PC.
La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto,
o bien, en la construcción de prototipos y series muy pequeñas.
Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación
mediante fusibles para proteger el código contenido.
Ing. Giovanni Lafebre J. (Cel: 096376496) M&M
Programando microcontroladores PIC con Protón
3ª EPROM
Los microcontroladores que disponen de memoria EPROM (Erasable Programmable
Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se realiza,
como en el caso de los OTP, con un grabador gobernado desde un PC. Si,
posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en
su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios
minutos. Las cápsulas son de material cerámico y son más caros que los
microcontroladores con memoria OTP que están hechos con material plástico.
4ª EEPROM
Se trata de memorias de sólo lectura, programables y borrables eléctricamente
EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la
programación como el borrado, se realizan eléctricamente desde el propio grabador y
bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado
y la de borrado. No disponen de ventana de cristal en la superficie.
Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito,
pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito.
Para ello se usan “grabadores en circuito” que confieren una gran flexibilidad y rapidez
a la hora de realizar modificaciones en el programa de trabajo.
El número de veces que puede grabarse y borrarse una memoria EEPROM es finito, por
lo que no es recomendable una reprogramación continua. Son muy idóneos para la
enseñanza y la Ingeniería de diseño.
Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de
memoria EEPROM en los circuitos programables para guardar y modificar
cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones
del entorno.
Este tipo de memoria es relativamente lenta.
5ª FLASH
Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar.
Funciona como una ROM y una RAM pero consume menos y es más pequeña.
A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida
y de mayor densidad que a EEPROM.
La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran
cantidad de memoria de programa no volátil. Es más veloz y tolera más ciclos de
escritura/borrado.
Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores
que las incorporan puedan ser reprogramados “en circuito”, es decir, sin tener que
sacar el circuito integrado de la tarjeta. Así, un dispositivo con este tipo de memoria
incorporado al control del motor de un automóvil permite que pueda modificarse el
programa durante la rutina de mantenimiento periódico, compensando los desgastes y
otros factores tales como la compresión, la instalación de nuevas piezas, etc. La
reprogramación del microcontrolador puede convertirse en una labor rutinaria dentro
de la puesta a punto.
Ing. Giovanni Lafebre J. (Cel: 096376496) M&M
Pro
ogramand
do microco
ontrolado
ores PIC co
on Protón
El Oscilador EExterno
Todoo microconttrolador neccesita de un n circuito externo que le indique la velocidad a la
que debe trabajjar. Este cirrcuito se co
onoce como o oscilador oo reloj, es m
muy simple pero
de vital importaancia para eel buen funccionamiento o del sistem
ma.
Puedden usarse ccuatro tiposs de cristalees dependie endo del miccrocontrolaador:
• RC: Oscilador con reesistencia yy condensad dor.
• XT: Cristal de Cuarzo.
• HS: Cristtal de Alta vvelocidad.
• LP: Cristaal de baja frrecuencia yy bajo consu umo de poteencia.
La frecuencia dee trabajo para el microcontrolador, debe seer especificaada al mom mento
de programarlo o, ya que si no se tienee cuidado ccon esto, y se conecta un oscilador de
frecuuencia difeerente a la especcificada, el microcontrolador no funcio onará
adeccuadamentee o simplem mente no haará nada.
El disspositivo m o es el Cristtal de Cuarzo, ya sea d
más utilizado de alta o baja velocidaad, el
cristaal debe ir accompañado o por dos coondensadorres como see muestra a continuació ón:
Rese
et
En lo
os microcontroladores se requieree un pin de R Reset para reiniciar el funcionamiento
del sistema cuan ndo sea neccesario, ya ssea por unaa falla que se presente o porque e
el
sistema requiere ser constrruido así. Ell pin de Reset en los PIC es llamaddo MCLR
(Masster Clear).
El Reeset por MC
CLR se consigue llevand do momentááneamentee este pin a un estado lógico
bajo,, cuando se quiere tener control ssobre el Resset del sistema se pued de conectarr un
botóón, como se muestra a continuació ón:
Puertas de En
ntrada y Salida
La principal
p u
utilidad dee los pinees que po osee la cáápsula que contiene e un
micro ocontrolado or es soporrtar las líneas de E/S qque comuniican al com mputador intterno
con los perifériccos exteriores.
Segúún los contrroladores de periférico
os que pose
ea cada mo
odelo de m
microcontrollador,
las lín
neas de E/SS se destinan a proporccionar el soporte a las señales de entrada, salida y
control.
Vamos a empezzar con el microcontrolador PIC más conoccido, el 16FF84A, éste es
e un
micro ocontrolado or que tienee dos puerttos.
Un total
t de 18 pines, 2 pines
p de alimentación, un pin dee Reset, do
os pines paara el
oscilaador, y 13 p
pines de E/SS.
Puertos del Microcontrolador
Dependiendo del dispositivo seleccionado, se puede tener diferentes puertos, el PIC
16F84A tiene 2 puertos, Puerto A y Puerto B.
Puerto A.‐
Es un puerto bidireccional de 5 bits, como se mencionó anteriormente, se puede
acudir al explorador de código de Protón IDE con el fin de ver como está estructurado,
en el siguiente cuadro, se muestran los bits, pines y nombres del puerto A.
Es un puerto bidireccional de 8 bits, de la misma forma que con el puerto A, se puede
hacer click en el puerto B en el explorador de código para ver su estructura, a
continuación se muestra detalladamente los pines y bits de este puerto.
Ing. Giovanni Lafebre J. (Cel: 096376496) M&M
Programando microcontroladores PIC con Protón
REGISTROS TRIS Y PORT
Para empezar, lo más básico, es conocer sobre los registros TRIS y PORT, estos
registros poseen la mayoría de los PIC, generalmente a partir de la serie 16F, los PIC de
la serie 10F y 12F, no poseen estos registros.
Existe más de un registro TRIS y PORT en un microcontrolador, siempre se acompaña
con la letra correspondiente al puerto que se va a configurar.
El registro TRIS es un registro de dirección de datos, en tanto que el registro PORT lee
los estados en los pines del puerto específico.
El registro PORT, tendrá un determinado número de bits, dependiendo del puerto,
como se mostró en las tablas anteriores.
Para configurar un puerto determinado, se debe utilizar el registro TRIS, seguido del
puerto que se quiere configurar, por ejemplo configurando TRISB bit (=1) configurará
el pin correspondiente del registro PORTB como entrada, si se configura el TRISB bit
(=0) establecerá al pin correspondiente del registro PORTB como salida.
Ejemplo:
TRISB.0=1 esto produce que el pin del PORTB.0 (Pin 33) se configure como entrada.
También se puede configurar todo el puerto, haciéndolo de la siguiente manera:
TRISB= %11110000 (MSB11110000LSB)
El símbolo “%” indica que se está trabajando con un número binario, cada uno de los
números, corresponde a un bit del PORTB, el MSB es el de la derecha y el LSB el de la
izquierda, así los pines del PORTB quedarán configurados de la siguiente forma:
BIT ESTADO PIN
PORTB.0 Salida 33 LSB
PORTB.1 Salida 34
PORTB.2 Salida 35
PORTB.3 Salida 36
PORTB.4 Entrada 37
PORTB.5 Entrada 38
PORTB.6 Entrada 39
PORTB.7 Entrada 40 MSB
Se puede configurar el con las entradas o salidas necesarias, puede ser todo el puerto
como salida, todo el puerto como entrada o individualmente entradas y salidas.
Ing. Giovanni Lafebre J. (Cel: 096376496) M&M
Programando microcontroladores PIC con Protón
En el siguiente ejemplo se muestra como configurar todo el puerto como salida y
asignar un valor a sus bits:
TRISB=0 (0 en decimal corresponde a %00000000 por lo tanto todos los bits del puesto son salidas)
PORTB=15
Cuando el puerto ha sido configurado se le puede asignar un valor determinado, ya sea
en decimal, binario (%) o hexadecimal ($), ese valor que se le asigne se lo podrá
observar en cada uno de los pines, así por lo tanto si se asigna el:
DEC: 15 BIN: %00001111 HEX: $0F
Los estados de los pines quedarán de la siguiente forma:
BIT ESTADO PIN
PORTB.0 ALTO 33 LSB
PORTB.1 ALTO 34
PORTB.2 ALTO 35
PORTB.3 ALTO 36
PORTB.4 BAJO 37
PORTB.5 BAJO 38
PORTB.6 BAJO 39
PORTB.7 BAJO 40 MSB
Ing. Giovanni Lafebre J. (Cel: 096376496) M&M