capitulo ii marco teÓrico 1.- antecedentes …virtual.urbe.edu/tesispub/0061181/cap02.pdf · esta...
TRANSCRIPT
11
CAPITULO II
MARCO TEÓRICO
1.- ANTECEDENTES DE LA INVESTIGACIÓN
En diferentes instituciones universitarias se han realizado trabajos de
investigación acerca de simulaciones, dentro de este trabajos se puede citar
el siguiente:
Morillo, A (2002) desarrolló un sistema de supervisión y control en los
tanques de la estación de servicio la Inmaculada. Entre los logros alcanzados
esta el estudio de la situación actual de la estación, la selección de los
instrumentos y equipos, el diagrama de conexiones, el diseño de hardware y
software y por ultimo la construcción prueba final del sistema. La
investigación es de tipo aplicada, descriptiva y de campo. La información
obtenida se logró a través de entrevistas con el personal técnico de la
estación de servicio y la recopilación de fundamentos teóricos de diferentes
bibliografía pertenecientes al sistema de supervisión y control.
La metodología empleada en la de José Maria Angulo que consta de
nueve fases a cumplirse, pero debido a que la investigación integra algunas
de estas fases, solo fue necesario el uso de la cinco, más importante para el
desarrollo de esta, los resultados obtenidos fueron de gran relevancia en
12
esta investigación ya que la predicción del nivel en los tanques se realizaba
de forma manual por tal motivo a sido creado un sistema de supervisión y
control que básicamente controlara el nivel en los tanques de la estación de
servicio por medio de un computador donde el operador llevará un control del
producto comercializado, así como también el control de llenado y vaciado.
Obteniendo como aporte para mi investigación la tecnología aplicada
ya que en el simulador será utilizado el mismo censor de ultrasonido para así
lograr desarrollar el simulador de proceso para la medición y control de nivel.
2.- FUNDAMENTACIÓN TEÓRICA
2.1- PROCESO
Corripio (1995) un proceso en un sistema que ha sido desarrollado
para llevar a cabo un objetivo determinado, por ejemplo: tratamiento de un
material mediante una serie de operaciones destinadas a ejecutar su
transformación.
Sobre un proceso actúan frecuentemente una serie de operaciones de
medida (tiempo o cantidad), compresión, calculo y corrección de valores de
variables para lograr un objetivo o mantener una meta prestablecida. Los
procesos abarcan las formas mas diversas desde la mas simple hasta la mas
compleja como la generación de energía eléctrica en una planta nuclear.
13
Una característica importante de los procesos es su dinámica. La
dinámica de un proceso es la rapidez con una variable responde después de
haber sido sometida a una perturbación , esta estrechamente ligada a la
constante de tiempo del proceso, la cual en sistema de primer orden es el
tiempo de proceso para la variable complete el 65% del cambio total en la
respuesta la constante de tiempo en un índice de la velocidad de respuesta
de un proceso, si es pequeña, el proceso es rápido si es grande el proceso
es lento.
2.2 PROCESO DE CONTROL
El control de proceso es relativamente reciente 300 años
aproximadamente, en comparación con otros controles desarrollados por el
hombre. Estos nacen con el desarrollo de las maquinas y de la revolución
industrial.
El manual de medición del CEPET (1989) refiere que los procesos
industriales “consisten en una operación o serie de operaciones en las cuales
se agrega o sustrae energía en algunas de sus formas, para mantenerlo en
estado de balance o equilibrio”.
En los procesos industriales aunque parezcan diferentes unos de
otros, tiene fundamentos básicos comunes como son la medición y el control
que en ellos se usan para ganar eficiencia y economía, tratando en lo posible
de evitar, error humano y obteniendo así un balance continuo del proceso.
14
Un control automático consiste en un conjunto de dispositivos que
ejecuten la medición de una variable en un proceso y comparan el valor de
esta variable con otro predeterminado de funcionamiento conocido como set
point. El automático actúa corrigiendo la diferencia entre la señal medida y el
valor del set point mediante un dispositivo de acción final sobre la variable a
controlar.
Por lo general, los controladores de procesos automáticos son
sistemas de realimentación y/o de alimentación adelantada para control a
lazo cerrado.
De acuerdo con Ogata (1998) un control realimentado se refiere a una
operación que, en presencia de perturbaciones, tiende a reducir la diferencia
entre la salida de un sistema y alguna entrada de referencia y lo continua
haciendo con base en esta diferencia. Aquí solo se especifican con este
termino las perturbaciones impredecibles, dado que las perturbaciones
predecibles o conocidas siempre puedan compensarse dentro del sistema.
Entonces, el control de proceso según Álvarez A (1996) “ es el estudio
del material de manipulación con la finalidad de lograr un producto deseado”
en términos mas específicos, el control de procesos consiste en la aplicación
de sistema de control a los procesos para lograr que la operación sea mas
eficiente y confiable posible.
15
2.3- DESARROLLO DEL CONTROL DE PROCESOS
• Control manual
El control manual es llevado a cabo por el operador, cuando observa lo
que esta sucediendo y efectúa los ajustes necesarios basados en
instrucciones operacionales y en sus propios conocimientos. Estos restringe
el numero de variables que podrían controlarse, además de la falta de
presión, rendimiento y predicción que ofrece un control manual.
• Control local
Este tipo de control se basa en utilizar la energía del proceso (tales como
presión y temperatura), para ajustar la posición de una válvula o algún otro
elemento final de control. Estos controladores están directamente acoplados
alas etapas del proceso y debe por consiguiente, estar repartidos a través de
toda la planta. Esta localización múltiple hace que las tareas sean tediosas
de gran consumo de tiempo y de baja confiabilidad.
• Control digital
Este contiene un procesador o microprocesador(CPU) control processing
unit) y la memoria principal, comunicándose entre si y con los periféricos
(teclado, monitor, unidad de disco, mause, impresora, potter) entre otros
mediante tres conductores o canales de señales de buses: bus de datos
(transfiere direcciones de modo bidireccional entre el microprocesador y la
16
memoria principal ROM y RAM) bus de direcciones (parte del
microprocesador indicando a la memoria principal la dirección exacta de la
memoria donde están almacenado los datos) y bus de control que activan los
componentes del ordenador en el momento adecuado, como si fueran
estímulos nerviosos provocados y de corta duración).
El procesador o microprocesador contiene la unidad aritmética lógica
(ALU, aritmética logic Unit), que afectan las operaciones aritmética básicas
de suma y resta, y que dispone de los operadores lógicos de comparación
AND, OR, NOT y NOR.
La unidad de control constituye el verdadero cerebro y organiza el trabajo
de la ALU, mediante los pulsos de frecuencia del microprocesador, que
determina el tiempo de ejecución de las tareas confiadas al ordenador.
Existen controladores digitales individuales, principalmente para procesos
discontinuos (batch) que llevan a cabo un control multifunción, actúan como
instrumentos reguladores (para variables como la presión, caudal,
temperatura, nivel, entre otras). Con control lógico y control secuencial,
efectúan operaciones aritméticas, monitorean entradas y salidas, y tiene la
capacidad grafica con representación de balance de materias.
Este tipo de controladores permiten incluso la creación de software para
definir todos los enclavamientos y secuencias de operación.
Los controladores digitales permiten el ajuste de sus acciones de control
ante las perturbaciones periódicas del proceso. Por este motivo pueden
trabajar con varios algoritmos de control.
17
Los controladores programables digitales sustituyen a los relés
convencionales utilizando un software en un lenguaje especial basado en la
lógica de relés. Este sentido, el controlador debe manipular una serie de
entradas y salidas para efectuar varias operaciones y cálculos de control
para los lazos de la unidad de proceso, aparte de proporcionar las
secuencias de enclavamiento de bombas y válvulas. Como estas
operaciones deben elaborarse para diferentes tipos de unidades de proceso,
se realiza el llamado “ control Universal” que puede estar formado por
ordenadores personales o con ordenadores especiales con el apropiado
hardware.
La creciente utilización del ordenador personal afianza como atrayente la
solución competitiva y económica de utilizar este computador para el control
de las variables del proceso.
• Control cascada
Es una estrategia que en algunas aplicaciones, mejora significativamente
el fundamento suministrado por un control realimentado.
Las computadoras proporcionan un implantación mas simple y segura del
control cascada que la obtenida mediante el uso de instrumentos
analógicos.
Dentro de esta consideración mas importante es que la variable
secundaria debe responder mas rápido a los cambio presentados en las
variables manipuladas que la variable principal.
18
• Control selectivo
Para cada variable controlada en un sistema de control debe existir
variables controladas que excedan en el numero a las variables
manipuladas, cuando esto sucede el sistema debe compartir las
variables, como mínimo una variable manipulada. Para realizar el cambio
entre las variables fuentes y las perfectamente atenuadas se utilizan
dispositivos selectivos llamados “selectores de señal”.
Los selectores de señal eligen las mínimas medidas o máximos
señales de control entre dos o mas señales. Ellas están disponibles en
hardware analógico-electrónico y neumático, incluso en sistema de
control digital que trabajan con microprocesadores, en un lazo de control
que posea este tipo de lógica es denominado control selectivo.
Este esquema de control es utilizado para consideraciones de
seguridad y en proceso de optimización.
3.- SIMULADOR DE PROCESO
Es un modelo matemático que puede estar basado en ecuaciones
teóricas, analogías con sistemas conocidos o ecuaciones empíricas. En la
mayoría de los casos estas ecuaciones resultan demasiado tediosas y
difíciles para resolverlas manualmente, por lo que se elaboran programas de
computadora para agilizar su solución. El modo de trabajo mas usual es
19
emplear programas de simulación comercial, con los cuales ya contienen las
ecuaciones mas generalmente usadas para la representación de equipos.
La simulación de un proceso es la representación grafica de modelos
matemáticos que emulan las operaciones unitarias que ocurren en el,
basándose en balanzas de masa y energía, principios de termodinámica Y
fenómenos de transporte, en los cuales se pueden incluir el comportamiento
de controladores discretos y continuos de proceso a simular.
4.- MODOS DE CONTROL
Los modos de control se refieren a la manera en que es corregido el
error de acuerdo a su dirección, magnitud, tiempo, tiempo de reacción y rata
de cambio.
WADE, (1997) propone diversos modos de corregir dichos errores, de los
cuales se mencionan los siguientes:
• Control ON/OFF
También llamado de dos posiciones (todo o nada), es el mas elemental
de los modos de control y consiste en un cambio de la variable de control en
la dirección contraria al error cada vez que se produce un cruce sobre el set
point.
El modo ON/OFF produce un mayor gasto de energía y un
funcionamiento que no es aceptable para procesos que requieren mucha
precisión, además de ser apropiado para procesos en donde la capacidad o
20
tamaño de la variable a manejar es grande en comparación al efecto que se
produce en la variable de control.
• Control Proporcional
El periodo de tiempo comprendido entre el reconocimiento del error y la
respuesta de l sistema se le conoce como tiempo muerto. El control
proporcional (P) responde de acuerdo a la dirección y magnitud del error,
reduciendo sustancialmente el tiempo muerto.
Para este modo de control se debe definir una banda proporcional la cual
esta constituida por el conjunto de valores de la salida que se encuentran en
el ancho de banda de respuesta del elemento final de control, la banda
proporcional se define usualmente en porcentaje o como el inverso de la
ganancia del sistema de control.
Cuando el error es detectado el sistema amplifica este error y posiciona el
elemento final de control para reducirlo, pero generalmente el error no es
eliminado debido a que el cambio de la magnitud a controlar es muy rápido y
se producen oscilaciones de la variable de control, por lo que el tiempo
después se estabiliza en un valor ligeramente superior o inferior al set point.
A esta diferencia se le denomina OFFSET, que tiende a crear con el
aumento de la banda proporcional en virtud de que el pico de respuesta al
error es mayor. Por esto, el modo proporcional de control es apropiado por
procesos que poseen bandas proporcionales angostas.
21
Sin embargo, una banda proporcional demasiado angosta en un control
proporcional trae como consecuencia mayor un numero de oscilaciones
porque la respuesta es mas rápida.
• Control Derivativo
El control derivativo (D) también conocido acción de rata, elimina las
oscilaciones y la tendencia a la inestabilidad. Se basa en transmitir cambio
de acuerdo a los diferentes ratas de subida o bajada en la variable de
control, es decir, de acuerdo a la pendiente del error.
El control derivativo por si solo no retorna la variable de control a su
set point ni elimina el OFFSET por lo que se utiliza en combinación con el
control proporcional integral.
• Control Integral
El control integral( I ) responde a la duración del error sobre el area
bajo la curva del mismo, por lo que tiende a reducir el problema de OFFSET,
conocido también como control RESET, normalmente utilizado en
comunicación con el modo proporcional en proceso en que no son tolerados
los efectos por OFFSET.
22
• Control proporcional derivativo
El control proporcional derivativo (PD) tiene aplicaciones en sistemas que
presentan retraso y gran capacidad en donde la banda proporcional aminora
el efecto de OFFSET.
En un control PD un cambio rápido del error indica una perturbación
drástica en la variable de control y la magnitud de la respuesta debe ser
mayor. La acción derivativa se expresa en tiempo, a medida de que este es
menor se reduce el numero de oscilaciones.
El control PD carece de eficiencia en procesos cuyos elementos finales
de control son lentos en comparación a la acción derivativa. Además en
procesos en que existe mucho ruido en la variable a medir la respuesta del
sistema al ruido constituye a la inestabilidad del proceso.
• Control proporcional integral
En un control proporcional integral (PI) al producirse un cambio en la
carga de un proceso, el control proporcional corrige el error de acuerdo a la
magnitud y dirección del mismo, mientras el control integral actúa eliminando
el OFFSET. Este control puede ser expresado en términos de minutos por
repetición, en donde se especifica la cantidad de tiempo requerido por el
control integral para repetir una acción a lazo abierto causada por el modo
proporcional en cada cambio de error. Valores pequeños de este tiempo se
traducen en acciones integrales rápidas pero puede producirse un sobre
23
disparo que acarrea un ciclo continuo y, por tanto, un cambio del proceso ya
controlado.
El mayor problemas de control PI ocurre cuando la desviación que
produce el error no puede ser corregida en un tiempo moderado los
elementos finales a su máximo valor y cuando la situación que causa el error
es corregida el control no regresa inmediatamente a su operación normal
sino que necesita de un tiempo adicional. Mientras el proceso esta en una
desviación de signos contrarios para trabajar. Esto se conoce como RESET
WINDUP.
El control PI es el mas difundido en la industria, sin embargo, no es
apropiado para procesos en que no son permisibles muchas oscilaciones de
la variable de control o donde se puedan presentar situaciones que originen
un WINDUP.
• Control Proporcional Integral Derivativo
Los modos de control proporcional, integral y derivativo se
complementan en sus limitaciones, desarrollando el mas ventajosos de los
modos de control, conocido como el control proporcional integral derivativo
(PID) la acción proporcional reduce el error en su magnitud y dirección ,
mientras la acción derivativa responde a la rata de cambio del mismo con la
consecuente reducción de las oscilaciones.
El control integral constituye a eliminar el OFFSET y constituye el
complemento del control derivativo.
24
Si la acción derivativa tiende a reducir el tiempo de respuesta para
actuar más rápido ante los cambios de la pendiente del error, la acción
integral tiende a aumentarlo para incrementar el periodo del lazo de control
con lo que se produce un tiempo igual de respuesta en todos los ciclos y se
reduce al OFFSET.
5.- SISTEMA DE CONTROL
Generalidades
Una de las preguntas que más comúnmente hace un novato en
sistema de control es ¿Qué es un sistema de control? Para responder a esta
pregunta, se puede decir que en nuestra vida diaria existen numerosos
objetivos que necesitan cumplirse. Por ejemplo, en el ámbito domestico, se
requiere regular la temperatura y humedad de las casas y edificios para tener
un ambiente cómodo. Para transportación, se requiere controlar que un
automóvil o un aeroplano se muevan de un lugar a otro en una forma segura
y exacta. En la industria, los procesos de manufactura tienen un sin fin
números de objetivos para productos que satisfarán requerimientos de
precisión y costo. La búsqueda para alcanzar tales “objetivos” requiere,
normalmente, utilizar un sistema de control que implante ciertas estrategias
de control. Los sistemas de control de calidad de los productos
manufacturados, líneas de ensamble automático, control de maquinarias,
herramientas y muchos otros.
25
Según Ogata (1998), los sistemas de control se definen como el medio
para obtener el desempeño optimo de los sistemas dinámicos, mejorar la
productividad, así como otras actividades.
5.1- SISTEMAS DE LAZO ABIERTO
Los sistemas de lazo abierto son sistemas no realimentados, es decir,
Kuo (1996), los sistemas de lazo abierto no pueden dividirse en dos partes:
el controlador y el proceso controlado. Una señal de entrada o comando se
aplica al controlador, cuya salida actúa como señal actuante, la señal
actuante controla el proceso controlado de tal forma que a la variable
controlada se desempeñe de acuerdo a estándares prestablecidos. En los
casos simples, el controlador puede ser un amplificador, unión mecánica,
filtro u otro elemento de control. En los casos mas complejos, el controlador
puede ser una computadora tal como un microprocesador. Debido a la
simplicidad y economía de los sistemas de control en lazo abierto, se les
encuentra en muchas aplicaciones no criticas.
26
FIGURA 1
ELEMENTO DE UN SISTEMA DE CONTROL A LAZO ABIERTO
ENTRADA SEÑAL VARIABLE
REFERENCIAL ACTUANTE CONTROL
fuente: Ogata (1998).
5.2- SISTEMA DE LAZO CERRADO
Este sistema si tiene realimentación, es decir, un sistema con una o más
trayectorias de realimentación se denomina sistema en lazo cerrado.
Para Ogata (1998), los términos de control realimentado y control en lazo
cerrado se usan indistintamente. En un sistema de control en lazo cerrado,
se alimenta al controlador la señal de error de actuación, que es la diferencia
entre la señal de entrada y la señal de realimentación (que puede ser la
señal de salida misma o una función de la señal de salida y sus derivadas y/o
integrales), a fin de reducir el error y llevar la salida del sistema a un valor
conveniente. El termino control en lazo cerrado siempre implica el uso de una
acción de control realimentado para reducir el error del sistema.
CONTROLADOR PROCESO CONTROLADOR
27
+
+ +
FIGURA 2
ELEMENTOS DE UN SISTEMA DE CONTROL EN LAZO CERRADO
V referencia
fuente: Ogata 1998
6.- MEDICIÓN: Garcia (1996) Es la determinación o evaluación de una
longitud, extensión, volumen o capacidad de algo. Señala la cantidad de una
magnitud por comparación con otra que se toma como unidad.
6.1- REQUISITOS QUE DEBE CUMPLIR UNA MEDICIÓN
Para Costello, (1979) para que una medición pueda ser útil debe ser
exacta (precisa) repetible, poseer resolución adecuada, tener un intervalo
dinámico y tiempo de respuesta adecuados. El advenimiento de la pantalla
digital, la computadora digital y diversos instrumentos, traductores y
acondicionadores de señales han hecho imperativo distinguir entre los dígitos
útiles visualizados y la “basura”. No es raro ver una salida de computadora
CONTROL PROCESO
-
PERTURBACIÓN
Salida
28
de diez o más cifras, cuando solo las tres o cuatro primeras tienen una
exactitud inherente mayor de una décima de 1% a una milésima.
Este suele ser el caso de la mayor parte de los componentes de los
sistemas de control. Solo los costosos dispositivos de medición de alta
precisión tienen una exactitud inherente mayor de una décima del 1% a
continuación se define algunos términos:
• Exactitud: La exactitud de una medición de ingeniería es la validez
corrección cuantita tiva de la medición.
• Resolución: La resolución de un dispositivo de medición se refiere a la
menor cantidad que el dispositivo puede identificar, resolver o distinguir.
• Repetibilidad: Es muy deseable que un sistema de medición sea
consistente y genere resultados repetibles, aunque estos sean un poco
inexactos.
• Intervalo dinámico: Es la relación de la menor medición resolvible entre la
medición más grande posible.
• Tiempo de respuesta: El tiempo de respuesta de un dispositivo de
medición, es el tiempo que transcurre entre el cambio en el
Parámetro físico de entrada y la aparición de la señal o visualización
de la salida final de la medición.
29
7.- MEDICIÓN DE NIVEL
Las mediciones de nivel son necesarias para hacer un inventario,
cuantificar el producto almacenado y distribuir la materia prima en los
distintos procesos industriales.
En la industria, la medición de nivel es muy importante, tanto desde el
punto de vista de funcionamiento correcto del proceso como para establecer
el balance adecuado de materias primas o de producción.
Conocer el nivel existente de producto tiene un efecto significativo en los
procesos de calidad, control habilidad y/o costo. Las mediciones de nivel
pueden ser utilizadas en diferentes áreas para distintas funciones tales
como:
• Aplicaciones contables: las mediciones de nivel son utilizadas para
contabilizar producto o materia prima y están directamente relacionadas
con la compra y la venta.
• Costo de equipos: Con un control de nivel cerrado, se pueden utilizar
recipientes de menor tamaño en las etapas intermedias de un proceso.
7.1- CLASIFICACIÓN DE LAS MEDICIONES DE NIVEL
De acuerdo con Creus (1998) los medidores de nivel de líquidos
trabajan midiendo, bien directamente la altura de liquido sobre una línea de
referencia, bien la presión hidrostática, bien el desplazamiento producido en
30
un flotador por el propio liquido contenido en el tanque del proceso, o bien
aprovechando característica eléctricas del liquido.
Los primeros instrumentos de medida directa se dividen en sonda,
cinta y plomada, nivel de cristal e instrumentos de flotador.
7.1.1- MEDIDOR POR SONDA: consiste en una varilla o regla
graduada, de la longitud conveniente para introducirla dentro del deposito. La
determinación del nivel se efectúa por lectura directa de la longitud mojada
por el liquido. En el momento de la lectura el tanque debe estar abierto a
presión atmosférica. Se utiliza generalmente en tanques de fuel-oil o
gasolina. Otro medidor consiste en una varilla graduada, con un gancho que
se sumerge en el seno del liquido y se levanta después hasta que el gancho
rompe la superficie del liquido. La distancia desde esta superficie hasta la
parte superior del tanque representa indirectamente el nivel. Se emplea en
tanques de agua a presión atmosférica.
FIGURA 3
Medidor por sonda fuente: Creus 1998
31
7.1.2 MEDIDOR DE CINTA GRADUADA: se emplea cuando es difícil
que la regla graduada tenga acceso al fondo del tanque.
7.1.3 MEDIDOR DE CRISTAL: consiste en un tubo de vidrio con sus
extremos conectados a bloques metálicos y cerrados por prensaestopas que
están unidos al tanque generalmente mediante tres válvulas, dos de cierre de
seguridad en los extremos del tubo para impedir el escape del liquido en
caso de rotura del cristal y una de purga.
En nivel de cristal normal se emplea para presiones hasta 7 bar. A
presiones más elevadas el cristal es grueso, de sección rectangular y está
protegido por una armadura metálica. La lectura del nivel se efectúa con un
cristal a reflexión o bien por transparencia.
En la lectura por transparencia es empleada para apreciar el color,
característica o interfase del liquido, éste está contenido entre dos placas de
vidrio planas y paralelas que permiten ver directamente el nivel, mejorándose
la apreciación visual al acoplar una lámpara de iluminación al sistema.
Para mayor seguridad, las válvulas de cierre incorporan una pequeña
bola que actúa como válvula de retención en caso de rotura del vidrio.
Los niveles de vidrio son susceptibles de ensuciarse por las
características del liquido que miden, impidiendo que el nivel pueda
apreciarse claramente. Entre los líquidos que representan este inconveniente
figuran el caramelo y los líquidos pegajosos.
32
El nivel de vidrio permite sólo una indicación local, si bien pueden
emplearse espejos para lectura a distancias limitadas o bien utilizar cámaras
de televisión para mayores distancias de transmisión.
Su ventaja principal es la gran seguridad que ofrece en la lectura del
nivel del liquido pudiendo controlar con ellos la lectura de los otros tipos de
aparatos de nivel.
FIGURA 4
Medidor de Cristal fuente: Creus 1998
7.1.4- MEDIDOR POR FLOTADOR: consiste en un flotador situado en el
seno del liquido y conectado al exterior del tanque indicando directamente el
nivel. La conexión puede ser directa, magnética o hidráulica.
33
El flotador conectado directamente está unido por un cable que desliza
en un juego de poleas a un índice exterior que señala sobre una escala
graduada. Es el modelo más antiguo y el más utilizado en tanques de gran
capacidad tales como los de fuel-oil gas-oil. Tiene el inconveniente de que
las partes móviles están expuestas al fluido y pueden romperse y de que el
tanque no puede estar sometido a presión. Además, el flotador debe
mantenerse limpio.
El flotador acoplado magnéticamente desliza exteriormente a lo largo
de un tubo guía sellado, situado verticalmente en el interior del tanque.
Dentro del tubo, una pieza magnética sigue al flotador en su movimiento y
mediante un cable y un juego de poleas arrastra el índice de un instrumento
situado en la parte superior del tanque.
El instrumento puede además ser transmisor neumático o eléctrico.
Una variante de la conexión magnética consta de un tubo conteniendo un
flotador, dotado de un imán que orienta una serie de cintas magnéticas
dispuestas en el exterior y alo largo del tubo. A medida que el nivel sube o
baja, las cintas gira, como tienen colores distintos en su anverso y reverso,
visualizan directamente el nivel del tanque. El instrumento puede tener
interruptores de alarmas y transmisor incorporados.
En tanques pequeños, el flotador puede adaptarse para actuar
magnéticamente sobre un trasmisor neumático o eléctrico dispuesto en el
exterior del tanque permitiendo así un control del nivel; una aplicación típica
la constituye el control de nivel de una caldera de pequeña capacidad de
34
producción de vapor. El flotador acoplado hidráulicamente actúa en su
movimiento sobre un fuelle de tal modo, que varía la presión de un circuito
hidráulico y señala a distancia en el receptor el nivel correspondiente.
Permite distancias de transmisión de hasta 75 m y puede emplearse en
tanques cerrados. Sin embargo, requiere una instalación y calibración
complicadas y posee partes móviles en el interior del tanque.
Hay que señalar que estos instrumentos el flotador puede tener
formas muy variadas y estar formado por materiales muy diversos según sea
el tipo de fluido.
Los instrumentos de flotador tienen una precisión de ± 0.5%. son
adecuados en la medida de niveles en tanques abiertos y cerrados a presión
o al vacío, y son independientes del peso especifico del liquido. Por otro lado,
el flotador puede agarrotarse en el tubo guía por un eventual deposito de los
sólidos o cristales que el liquido pueda contener y además los tubos guía
muy largos pueden dañarse ante olas bruscas en la superficie del liquido o
ante la caída violenta del liquido en el tanque.
35
FIGURA 5
Instrumento flotador fuente: Creus 1998
Los aparatos que miden el nivel aprovechando la presión hidrostática
se dividen en:
7.1.5 MEDIDOR MANOMÉTRICO: consiste en un manómetro
conectado directamente a la parte inferior del tanque. El manómetro mide la
36
presión debida la altura del liquido h que existe entre el nivel del tanque y el
eje del instrumento.
Como las alturas son limitadas, el campo de medida es bastante
pequeño, de modo que el manómetro tiene un elemento de medida del tipo
fuelle.
El instrumento sólo sirve para fluidos limpios ya que si el liquido es
corrosivo, coagula o bien tiene sólidos en suspensión, el fuelle puede
destruirse o bien bloquearse perdiendo su elasticidad; por otra parte, como el
campo de medida es pequeño no es posible utilizar sellos de diafragma. La
medida está limitada a tanques abiertos y el nivel viene influido por las
variaciones de densidad del liquido. Una variante emplea un transductor de
presión de la parte superior del tanque e inmerso en el liquido, transmitiendo
la señal de 4-20 mA..
FIGURA 6
Medidor Manométrico fuente: Creus 1998
37
7.1.6 MEDIDOR DE TIPO BURBUJEO: Emplea un tubo sumergido en
el liquido a cuyo través se hace burbujear aire mediante un rotámetro con un
regulador de caudal incorporado. La presión del aire el la tubería equivale a
la presión hidrostática ejercida por la columna de liquido, es decir, al nivel.
El regulador de caudal permite mantener un caudal de aire constante
a través del liquido independientemente del nivel. Si no existiera, habría una
gran diferencia en los caudales de aire necesarios desde el nivel mínimo al
máximo, con el inconveniente de un gasto de aire indebido. La tubería
empleada suele ser de 1/2 “ con el extremo biselado ara una fácil formación
de las burbujas de aire. Una tubería de menor diámetro reduciría el tiempo
de respuesta pero produciría un error en la medida provocado por la perdida
de carga del tubo.
El método de burbujeo es simple y da buen resultado, en particular, en
el caso de líquidos muy corrosivos o con sólidos en suspensión y en
emulsiones. No se recomienda su empleo cuando el fluido de purga
perjudica al líquido y para fluidos altamente viscosos donde las burbujas
formadas del aire o del gas de purga presentan el riesgo de no separarse
rápidamente del tubo. Desde el punto de vista de mantenimiento, es muy útil
situar una T con un tapón en la parte superior del tubo para su limpieza
periódica.
38
FIGURA 7
Medidor de tipo burbujeo fuente: Creus 1998
7.1.7 MEDIDOR DE PRESIÓN DIFERENCIAL: consiste en un diafragma en
contacto con el liquido del tanque, que mide la presión hidrostática en un
punto del fondo del tanque.
La precisión de los instrumentos de presión diferencial es de ±0.5 %,
no tienen partes móviles dentro del tanque, son de fácil limpieza, son
precisos y confiables, admiten temperaturas del fluido hasta 120º C y no son
influidos por las fluctuaciones de presión.
El empuje producido por el propio liquido lo aprovecha el medidor de
desplazamiento a barra de torsión.
39
FIGURA 8
Medidores de presión diferencial fuente: Creus 1998
7.1.8 MEDIDOR DE NIVEL DE TIPO DESPLAZAMIENTO: Consiste
en un flotador parcialmente sumergido en el líquido y conectado mediante un
brazo a un tubo de torsión unido rígidamente al tanque. Dentro del tubo y
unido a su extremo libre se encuentra una varilla que transmite el movimiento
de giro a un transmisor exterior al tanque.
40
El tubo de torsión se caracteriza fundamentalmente porque el ángulo
de rotación de su extremo libre es directamente proporcional a la fuerza
aplicada, es decir, al momento ejercido por el flotador. El movimiento angular
del extremo libre del tubo de torsión es muy pequeño, del orden de los 9º. El
tubo proporciona además un cierre estanco entre el flotador y el exterior del
tanque donde se dispone el instrumento receptor del par transmitido.
La precisión es del orden de ± 0.5% a ± 1%, y pueden utilizarse en tanques
abiertos y cerrados a presión o a vacío, tiene una buena sensibilidad pero
presenta el inconveniente del riesgo de depósito de sólidos o de crecimiento
de cristales en el flotador que afectan a la precisión de la medida y es apto
para la medida de pequeñas diferencias de nivel.
FIGURA 9
Medidor de nivel por desplazamiento fuente: Creus 1998
41
Los instrumentos que utilizan características eléctricas del liquido se
clasifican en:
7.1.9 MEDIDOR DE NIVEL CONDUCTIVO O RESISTIVO: Consiste en uno o
varios electrodos y un relé eléctrico o electrónico que es excitado cuando el
líquido moja a dichos electrodos. El liquido debe ser lo suficientemente
conductor como para excitar el circuito electrónico, y de este modo el aparato
puede discriminar la separación entre el liquido y su vapor. La impedancia
mínima es del orden de los 20MΩ/cm, y la tensión de alimentación es alterna
para evitar fenómenos de oxidación en las sondas por causa del fenómeno
de la electrólisis. Cuando el liquido moja los electrodos se cierra el circuito
electrónico y circula una corriente segura del orden de los 2mA; el relé
electrónico dispone de un temporizador de retardo que impide su
enclavamiento ante una ola del nivel del liquido o ante cualquier perturbación
momentánea o bien en su lugar se disponen dos electrodos pocos separados
enclavados eléctricamente en el circuito.
El instrumento se emplea como alarma o control de nivel alto y bajo,
utiliza relés eléctricos para líquidos con buena conductividad y relés
electrónicos para líquidos con baja conductividad.
Es versátil, sin partes móviles, su campo de medida es grande con la
limitación física de la longitud de los electrodo. El liquido contenido en el
tanque debe tener un mínimo de conductividad y si su naturaleza lo exige, la
corriente debe ser baja para evitar la deterioración del producto. Por otro
42
lado, conviene que la sensibilidad del aparato sea ajustable para detectar la
presencia de espuma en caso necesario.
FIGURA 10
Medidor de nivel Conductivo fuente: Creus 1998
7.1.10 MEDIDOR DE CAPACIDAD: Mide la capacidad del condensador
formado por el electrodo sumergido en el liquido y las paredes del tanque. La
capacidad del conjunto depende linealmente del nivel del liquido.
En fluidos no conductores se emplea un electrodo normal y la
capacidad total del sistema se compone de la del liquido, la del gas superior
y la de las conexiones superiores.
43
En conductores con una mínima de 100 microhmios/c.c el electrodo está
aislado usualmente con teflón interviniendo las capacidades adicionales
entre el material aislante y el electrodo en la zona del liquido y del gas.
El circuito electrónico alimenta el electrodo a una frecuencia elevada,
lo cual disminuye la reactancia capacitiva del conjunto y permite aliviar en
parte el inconveniente del posible recubrimiento del electrodo por el producto.
El sistema es sencillo y apto para muchas clases de líquidos. Sin
embargo, hay señalar que en los fluidos conductores, los sólidos o líquidos
conductores que se encuentran en suspensión o emulsión, y las burbujas de
aire o de vapor existentes, aumentan y disminuyen respectivamente la
constante dieléctrica del fluido dando lugar a un error máximo de 3% por
cada tanto por ciento de desplazamiento volumétrico. Por otro lado, al bajar
el nivel, la porción aislante del eléctrodo puede quedar recubierta de liquido y
la capacidad adicional que ello representa da lugar a un error considerable.
La precisión de los traductores de capacidad es de ± 1%.
44
FIGURA 11
Medidor de capacidad fuente: Creus 1998
7.1.11 MEDIDOR POR ULTRASONIDO: El sistema ultrasónico de medición
de nivel se basa en la emisión de un impulso ultrasónico a una superficie
reflectante y la recepción del eco del mismo en un receptor. El retardo en la
captación del eco depende del nivel del tanque.
Los censores trabajan a una frecuencia de unos 20 Khz. Estas ondas
atraviesan con cierto amortiguamiento o reflexión el medio ambiente de
gases o vapores y se reflejan en la superficie del sólido o del liquido.
En las aplicaciones de alarma de nivel los censores vibran a una
frecuencia de resonancia determinada, que se amortigua cuando el líquido
los moja.
45
En segundo caso de indicación continua del nivel, la fuente ultrasónica
genera impulsos que son detectados por el receptor una vez ha transcurrido
el tiempo correspondiente de ida y vuelta de la onda a la superficie del sólido
o del líquido.
La precisión de estos instrumentos es de ± 1 a 3%. Son adecuados
para todos los tipos de tanques y de líquidos o fangos pudiendo construirse a
prueba de explosión. Presentan el inconveniente de ser sensibles a la
densidad de los líquidos y dar señales erróneas cuando la superficie del nivel
del liquido no es nítida como es el caso de un líquido que forme espuma, ya
que se produce falsos ecos de los ultrasonidos.
La utilización del ordenador permite, a través de un programa,
almacenar el perfil ultrasónico del nivel, y así tener en cuenta las
características particulares de la superficie del liquido, tal como la espuma,
con lo cual se mejora la precisión de la medida. Por otro lado, el ordenador
facilita la conversión del nivel a volumen del tanque para usos de inventario,
y además proporciona características de autocomprobación del instrumento.
La diferencias entre las señales de transmisión y de retorno es
proporcional al tiempo empleado por las mismas y así:
dtvd 2/= ecv /= con
46
siendo:
d = distancia del emisor al líquido
v = señal de velocidad
dt = tiempo de recorrido
c = velocidad de la luz
e = constante dieléctrica
como la constante dieléctrica de los vapores sobre el líquido es casi la
unidad, la variación de la velocidad es despreciable, de modo que la señal de
velocidad de radares más constante3 que la de ultrasonidos.
FIGURA 12
Medidor de nivel por ultrasonido fuente: Creus 1998
47
8.- ONDAS SONORAS
Las ondas sonoras son el ejemplo mas importante de las ondas
longitudinales, ellas pueden viajar a través de cualquier medio material ( es
decir gases, sólidos y líquidos) con una velocidad que depende del medio,
las partículas en el medio vibran para producir cambios de densidad y
presión a lo largo de la dirección del movimiento de la onda.
8.1- CATEGORÍAS DE LAS ONDAS SONORAS
Serway (1985), existen tres categorías de ondas sonoras que cubren
diferentes rangos de frecuencias.
Ø Ondas audibles: son las ondas sonoras que caen dentro del rango de
sensibilidad del oído humano, por lo general de 20 Hz a 20.000 Hz. Se
pueden generar de diferentes formas tales como instrumentos musicales,
cuerdas vocales y altavoces.
Ø Ondas infrasónicas: son las ondas longitudinales con frecuencias bajo del
rango audible.
Ø Ondas ultrasónicas: son ondas longitudinales con frecuencias por arriba
del rango audible.
48
8.2- VELOCIDAD DE LAS ONDAS SONORAS
Las ondas sonoras son ondas de compresión que se mueven a través
de un medio comprensible, tal como aire. La región de aire comprimida que
se propaga corresponde a una variación en el valor normal de la presión de
aire la rapidez de tales ondas comprensibles depende de la comprensibilidad
del medio y de la inercia del mismo.
Si el medio es comprensible tiene un modulo volumétrico B y una
velocidad de equilibrio P, la rapidez del sonido es la raíz cuadrada de B
sobre P, dependiendo esta propiedad estática del medio (b) y una propiedad
de inercia del medio (p).
9.- INSTRUMENTACIÓN:
Instrumentación es definida como “todo sistema de instrumentación y
dispositivos asociados, utilizados para detectar, señalizar, observar, medir,
controlar o comunicar atributos de un objeto físico o proceso”, (ISA,
Asociación de Instrumentación de América www.isa.org
9.1- Evolución de la instrumentación
Los instrumentos de control fueron naciendo a medidas que las
exigencias del proceso lo impusieron. El desarrollo se inicio con los
manómetros, termómetros y válvulas manuales localmente montados. En
49
esta fase, el sistema era desarrollado por muchos operadores para observar
los instrumentos y maniobrar las válvulas, basados en la intuición y en la
experiencia acumulada.
La siguiente etapa fue la centralización de las funciones de medida y
de control mas importantes, pertenecientes a una operación del proceso, en
un panel localmente montado.
Hacia los años 40, se hizo necesario observar el funcionamiento de
varias unidades de planta simultáneamente , estableciéndose sistemas con
transmisores neumáticos, que permiten la centralización de todas las
funciones de medidas y regulación de toda la unidad del proceso en una sala
de control. Estas salas de control se hicieron excesivamente grandes por la
cantidad de tuberías y aparatos voluminosos, apareciendo para 1947 la
instrumentación neumática miniatura.
Iniciándose los años 50 aparecen los primeros instrumentos
electrónicos a válvulas una vez generalizados los instrumentos miniaturas
neumáticos y electrónicos, los requerimientos de los procesos se fueron
haciendo cada vez mas exigentes y su optimización llego a ser una
necesidad.
En 1946, apareció el primer computador electrónico, pero los
verdaderos computadores del proceso se desarrollan en los años 60-65.
En 1975, aparecen los primeros sistemas de control distribuidos, en
donde 1 o varios microprocesadores encuentran repartidos en diversos
puntos de la planta y conectado a varias señales de proceso
50
correspondiente. Estos microprocesadores se distribuyen en forma
estratégica y se comunican mediante varias comunicaciones. La
comunicación entre estos microprocesadores e instrumentación continua
analógica.
En la actualidad con la introducción de la tecnología digital, en redes
de carácter propietario, redes abiertas estándar (fieldbus), la introducción de
los dispositivos inteligentes basados en microprocesadores se integrara
totalmente la información de la planta, con un flujote información continuo
entre las diferentes áreas del proceso. La aplicación de instrumentos
neumáticos y electrónicos analógicos, quedara limitada a plantas pequeñas
en donde la sencillez del proceso no requiera redes de instrumentación.
9.2- CLASES DE INSTRUMENTACIÓN
Los instrumentos de medición y control puede tener 2 clasificaciones,
la primera relacionada con la función del instrumento y la segunda, con la
variable del proceso.
• En función del instrumento
De acuerdo con las funciones del instrumento tenemos la clasificación
siguientes.
v Instrumentos ciegos: son aquellos que no tienen indicación visible en
la variable. Los instrumentos son principalmente los de alarmas tales
como interruptores de presión, temperatura, nivel, entre otros.
51
También son transmisores de caudal, nivel, presión y temperatura sin
indicador.
v Instrumentos indicadores: dispone de un índice de una escala
graduada en la que puede leerse el valor de la variable, también
existen indicadores digitales que muestran la variable en forma
neumática con dígitos.
v Instrumentos registradores: registran con trazos continuos o a
puntos la variable. Pueden ser circulares, rectangulares o alargados
según sea la forma del grafico.
Elementos primarios: están en contacto con la variable y utiliza o absorben
energía del medio controlado para dar al sistema de medición una indicación
en respuestas a la variación de la variable controlada. Se conoce como
detector o censor y esta integrado con otros elementos funcionales de un
sistema de control.
v Transmisores: captan la variable del proceso mediante el elemento
primario, transmitiéndola a distancia en forma de señal neumática (3-
5 psi), electrónica (4 -20 mA) o digital, como valor de la variable
generalmente en unidades de ingeniería.
52
v Traductores: reciben una señal de entrada en función de una o mas
cantidades físicas y la conviertes modificadas o no a una señal de
salida.
v Convertidores: son dispositivos que reciben una señal de entrada
neumática o electrónica procedente de un instrumento, y luego de
modificarla, envía la resultante en forma de señal de salida estándar
del sistema.
v Receptores: reciben señales que vienen de los transmisores y las
indican o simplemente la registran.
v Controladores: comparan a variable controlada ( presión, nivel,
temperatura) con un valor deseado y ejercer la acción conectiva de
acuerdo con la desviación. La variable controlada la puede recibir
directamente, como controladores locales o bien indirectamente en
forma de señal neumática, electrónica o digital procedente de un
transmisor.
Elementos final de control: recibe la señal de controlador y modifica el
caudal de flujo o agente de control. Con frecuencia son válvulas de control.
53
• En función de la variable del proceso
Según la variable del proceso, los instrumento se dividen en instrumento
caudal, nivel, presión, temperatura, densidad y peso especifico, humedad y
punto de roció, velocidad, viscosidad, Posición, PH, conductividad,
frecuencia, fuerza, entre otros.
Esta aplicación corresponde al tipo de las señales de proceso. De igual
forma no depende del numero y tipo de traductores existente entre el
elemento primario y el instrumento final.
10.- INSTRUMENTOS INTELIGENTES
Con el desarrollo de la tecnología, se ha introducido nuevas
capacidades a la instrumentación del campo (transmisores, válvulas,
interruptores), caracterizadas principalmente por incluir capacidad de
procesamiento a los dispositivos, a través de los microprocesadores (CPU) y
“software grabado en memoria no volátil, que permite desarrollar en los
dispositivos tareas que anteriormente eran ejecutadas por dispositivos para
tareas exclusivas de control y matemáticas.
11.- MICROCONTROLADOR PIC16F877
Este microcontrolador pertenece a la gama media de la familia de los PIC,
aunque se le introdujo como variante memoria de programa tipo FLASH.
54
A. Recursos fundamentales:
v Procesador de arquitectura R ISC avanzada.
v Repertorio de 35 instrucciones con 14 bits de longitud. Todas ellas se
ejecutan en un ciclo de instrucción, menos la de salto que tardan dos.
Frecuencia máxima de 20 MHz.
14.336 bytes de memoria FLASH de programa.
256 Bytes EEPROM y 368 Bytes RAM como memoria de datos.
Encapsulados de 40 a 44 patas.
14 fuentes de interrupción interna.
Pila con 8 niveles.
Modos de direccionamiento directo, indirecto y relativo.
Perro guardián (WDT).
Código de protección programable.
Modo SLEEP de bajo consumo.
ICSP (Programación serie en circuito).
Voltaje de alimentación entre 2 y 5,5 V.
Bajo consumo (menos de 2 mA y 5MHz).
12.- PROCESADOR RISC CON ARQUITECTURA HARVARD
Esta arquitectura se caracteriza por la independencia entre la memoria de
código y la de datos. Así, tanto la capacidad como el tamaño de los buses de
cada memoria se adaptan estrictamente a las necesidades del diseño,
55
facilitando el trabajo en paralelo de las dos memorias, lo que permite obtener
altas cotas de rendimiento. Angulo(1.999, p.6) expresa ”En la arquitectura
Harvard son independientes la memoria de instrucciones y la memoria de
datos y cada una dispone de su propio sistema de buses para el acceso.
Esta dualidad, además de propiciar el paralelismo, permite la adecuación del
tamaño de las palabras y los buses a los requerimientos específicos de las
instrucciones y de los datos”.
En la figura 1 se observa la arquitectura del PIC16F877. Se puede
observar que la memoria donde se encuentran las instrucciones está
direccionada por el Contador de programa en conexión con la Pila de 8
niveles. La memoria de datos RAM contiene el Banco de registros
específicos y el Banco de registros de propósito general y transfiere
información bidireccional por el bus de datos de 8 líneas que interconecta
todos los elementos. Finalmente, el Camino de datos está formado por una
ALU de 8 bits que trabaja conjuntamente con el registro de trabajo W.
56
FIGURA 13
Representa la arquitectura tipo Harvard de los PIC16F877.
Fuente: Angulo (2.000).
13.- ORGANIZACIÓN DE LA MEMORIA DE PROGRAMA:
La memoria FLASH que tiene una capacidad de 14K palabras de 14 bits
cada una, está dividida en páginas de 2K palabras y está direccionada con el
57
contador de programa, que tiene un tamaño de 13 bits. La Pila es
transparente para el usuario, es decir, funciona automáticamente y no
dispone de instrucciones para guardar o sacar de ella información.
13.1- El contador de programa (PC):
Este registro tiene varias funciones: Cuando se escribe como resultado de
una operación de la ALU, los 8 bits de menos peso del PC residen en el
registro PCL, los bits de más peso (PC8-PC12), residen en los 5 bits de
menos peso del registro PCLATH.
En las instrucciones GOTO y CALL los 11 bits de menos peso del PC
provienen del código de la instrucción y los otros dos de los bits 3 y 4 de
PCLATH. Angulo (1.999, p.78) señala que ”Con los 11 bits que se cargan en
el PC desde el código de las instrucciones GOTO y CALL, se puede
direccionar una página de 2K de la memoria. Los bits restantes PC11 y PC12
tienen la misión de apuntar una de las cuatro páginas del mapa de memoria”.
Esos bits proceden de PCLATH3 y PCLATH4.
13.2- La pila:
Es una zona aislada de las memorias de instrucciones y datos. Tiene una
estructura LIFO (last in first out). Tiene 8 niveles de profundidad cada uno
con 13 bits. Según Angulo (1.999,P.78) “Funciona como un “buffer” circular,
58
de manera que el valor que se obtiene al realizar el noveno “desempilado”
(pop) es igual al que se obtuvo en el primero”. Angulo también advierte que
“Los PIC no disponen de ningún señalizador que indique cuando se produce
el rebosamiento de los 8 niveles de Pila” . Por lo que al diseñar el programa
el usuario debe preocuparse por los anidamientos en las subrutinas para no
sobrepasar los 8 niveles.
En la siguiente figura se muestra la organización de la memoria de
programa tipo FLASH en los PIC16F877.
FIGURA 14
Organización de la memoria de programa tipo FLASH en los PIC16F877.
Fuente: Microchip (1.998).
59
13.3- ALU:
La Unidad Aritmética Lógica realiza los cálculos contenidos en las
instrucciones de la memoria y luego devuelve los resultados obtenidos al
registro W y/o a la memoria RAM.
14.- DIRECCIONAMIENTO DE LA MEMORIA DE DATOS
14.1- Direccionamiento directo:
El operando que utiliza la instrucción en curso se referencia mediante su
dirección, que viene incluida en el código OP de la misma, concretamente en
los 7 bits de menos peso, acerca del código OP Angulo (1.999,p.140) explica
que ”Los bits de este campo sirven para definir la operación que realiza la
instrucción”. El banco a acceder lo determinan los bits RP0 y RP1 del registro
ESTADO.
14.2- Direccionamiento indirecto:
Este modo de direccionamiento se usa cuando en una instrucción se
utiliza como operando el registro INDF, que ocupa la dirección 0 de todos los
bancos. Explica Angulo (1.999, P.83) que “En realidad el registro INDF no
está implementado físicamente y cuando se le hace referencia, se le accede
a la dirección de un banco especificada con los 7 bits de menos peso del
60
registro FSR”. El bit de más peso de FSR junto al bit IRP del registro
ESTADO se encargan de seleccionar el banco a acceder, mientras que los 7
bits de menos peso apuntan a la posición.
15.- ORGANIZACIÓN DE LOS REGISTROS
Los registros están organizados como un arreglo de 4 bancos de 128
bytes cada uno y se encuentran ubicados en la memoria RAM. En las
posiciones iniciales de cada banco se encuentran los registros específicos
que gobiernan al procesador y sus recursos, en las posiciones inferiores se
encuentran los registros de propósito general, los cuales pueden ser usados
para información de trabajo del programador.
16.- REGISTROS ESPECÍFICOS: 00h o INDF: Registro para direccionamiento indirecto de datos. Este no es
un registro disponible físicamente; utiliza el contenido del FSR y el bit IRP del
registro STATUS para seleccionar indirectamente la memoria de datos o
RAM del usuario; la instrucción determinará que se debe realizar con el
registro señalado.
TMRO o 01h: Contador y reloj de tiempo real. Temporizador / contador de
8 bits. Este se puede incrementar con una señal externa aplicada al pin
RA4/TOCKI o de acuerdo a una señal interna proveniente del reloj de
61
instrucciones del microprocesador. La rata de incremento del registro se
puede determinar por el preescalador, localizado en el registro OPTION.
PCL o 02h: Contador de programa. Se utiliza para direccional las palabras
de 14 bits del programa del usuario que se encuentra almacenado en la
memoria ROM; este contador es de 13 bits de ancho. Sobre el byte bajo,
PCL se puede escribir o leer, el byte alto, no. El byte alto se puede escribir
mediante el registro PCLATH. Durante la ejecución normal del programa, el
contador se incrementa en uno cada instrucción, a menos que se trate de
una instrucción especial.
STATUS o 03h: Registro de estados. Para Angulo(2.000, P.43) “éste es el
registro más usado de todos, pues sus bits están destinados a controlar las
funciones vitales del procesador”. En la tabla 2 se encuentran ubicados cada
bit de este registro:
TABLA 2
IRP RP1 RP0 TO PD´ Z DC C
MSB LSB
Distribución y asignación de los bits del registro STATUS. Fuente:
Angulo (2.000).
62
C: Carry o bit de acarreo: Actúa de igual manera que el bit DC pero se
activa cuando el acarreo ocurre en el bit de más peso.
DC: Digit Carry o bit de acarreo de dígito. Se pone en 1 cuando existe
acarreo en el bit 4 en las instrucciones de suma. También actúa como
señalizador de llevada en las instrucciones de resta, pero en este caso se
coloca en cero (0) de haberla.
Z: Zero o bit de cero. Se coloca en 1 cuando el resultado de una
operación lógica o aritmética es cero.
PD´: Power down o bit de bajo consumo. Se coloca en cero (0) para la
instrucción SLEEP. Se pone en 1 al conectarse la alimentación o tras la
ejecución de la instrucción clrwdt.
TO´: Time Out o bit de finalización del temporizador. Se coloca en cero (0)
al desbordarse el perro guardián. Toma el valor 1 tras la conexión de la
alimentación o al ejecutarse las instrucciones clrwdt o sleep.
RP1,0: Selectores del banco de la memoria RAM para direccionamiento
directo. En la tabla 3 se observa el banco que corresponde cada
combinación:
63
TABLA 3
BANCO RP1 RP0
0 0 0
1 0 1
2 1 0
3 1 1
Combinaciones de los bits RP0 y RP1 y el banco de memoria
seleccionado. Fuente : Angulo (2.000).
IRP: Se usa en conjunto con el bit de más peso del registro FSR para
elegir el banco de RAM en el direccionamiento indirecto.
FSR o 04h: Registro selector de registro. Conjuntamente con el registro
IND0, se utiliza para seleccionar indirectamente los registros disponibles.
PORTA o 05h: Registro para leer o enviar datos en el puerto A, el registro
de control de este puerto está localizado en la página 1, en la posición 85h.
PORTB o 06h: Registro para leer o enviar datos en el puerto B, el registro
de control de este puerto está localizado en la página 1, en la posición 86h.
PORTC o 07h: Registro para leer o enviar datos en el puerto C, el registro
de control de este puerto está localizado en la página 1, en la posición 87h.
PORTD o 08h: Registro para leer o enviar datos en el puerto D, el registro
de control de este puerto está localizado en la página 1, en la posición 88h.
64
PORTE o 09h: Registro para leer o enviar datos en el puerto E, el registro
de control de este puerto está localizado en la página 1, en la posición 89h.
PCLATH o 0Ah: Registro para la parte alta de la dirección. Este contiene
la parte alta del contador de programa y no es directamente accesible.
INTCON o 0Bh: Registro para el control de las interrupciones. Es el
encargado del manejo de las interrupciones. (véase la tabla 4). A
continuación se explica la función de cada bit del registro INTCON:
TABLA 4
GIE EEIE TOIE INTE RBIE TOIF INTF RBIF
MSB LSB
Distribución y asignación de los bits del registro INTCON. Fuente:
Angulo (2.000).
RBIF: RB Port Change Interrupt Flag o bandera de interrupción por el
cambio en el puerto B: se coloca en 1 cuando cualquiera de las entradas
desde RB4 a RB7 cambia, ésta debe ser puesta a 0 por el programa.
INTF: INT Interrupt Flag o bandera de interrupción INT: Se coloca en 1
cuando la interrupción INT ocurre, ésta debe ser puesta en cero por el
programa.
65
TOIF: TMRO Overflow o bandera de la interrupción por sobrepasamiento
del TMRO: Se coloca en 1 cuando TMRO pasa de 0FFh a 00h, ésta debe ser
puesta a cero por el programa.
RBIE: RBIF Interrupt Enable o habilitación de la interrupción RBIF (cambio
de estado en alguna de las líneas de RB4 a RB7): 1, permite esta
interrupción, 0, prohíbe esta interrupción.
INTE: INT Interrupt Enable o habilitación de la interrupción INT: 1, permite
la interrupción al activarse RB0/INT. 0, prohíbe esta interrupción.
TOIE: TMRO Interrupt Enable o habilitación de la interrupción del
temporizador TMRO: 1, lo habilita, 0, lo deshabilita.
EEIE: EEPROM Write Interrupt Enable o habilitación de interrupción por
escritura de la EEPROM: 1, permite que se origine una interrupción cuando
termine la escritura de la EEPROM de datos. 0, prohíbe que se produzca
esta interrupción.
GIE: Global Interrupt Enable o habilitador general de interrupciones: 1,
permite la ejecución de todas las interrupciones, cuyos bits de permiso
individuales también la permitan. 0, prohíbe todas las interrupciones.
PIR1 o 0Ch y PIR2 o 0Dh: Los bits contenidos en los registros PIR1 y
PIR2 actúan como banderas que señalan las causas que producen las
interrupciones contenidas en los registros PIE1 y PIE2 respectivamente,
independientemente si está permitida o prohibida. A continuación se observa
la distribución y función de cada uno de los bits contenidos en estos dos
registros (véase las tablas 5 y 6):
66
TABLA 5
PSPIF ADIF RCIF TXIF SSPIF CCP1I
F
TMR21I
F
TMR1I
F
MSB LSB
Asignación y distribución de los bits del registro PIR1. Fuente: Angulo
(2.000).
TMR1IF: Bandera de interrupción del TMR1: 1, se ha producido
desbordamiento del TMR1, 0, no se ha producido desbordamiento del TMR1.
TMR2IF: Bandera de interrupción del TMR2: 1, TMR2 alcanzó el valor del
período (PR2), 0, TMR2 no alcanzó el valor del período (PR2).
CCP1IF: Bandera de interrupción del módulo CCP1: 1, se ha producido
una operación en el módulo CCP1, 0, no se ha producido alguna operación
en el módulo CCP1.
SSPIF: Bandera de interrupción del módulo SSP: 1, se ha producido una
operación en el módulo SSP, 0, no se ha producido una operación en el
módulo SSP.
TXIF: Bandera de interrupción al quedar vacío el buffer de transmisión del
USART (fin de transmisión): 1, el buffer de transmisión está vacío, 0, el buffer
de transmisión no está vacío.
67
RCIF: Bandera de interrupción al llenarse el buffer de recepción del
USART (fin de recepción): 1, el buffer de recepción está lleno, 0, el buffer de
recepción no está lleno.
ADIF: Bandera de interrupción al finalizar una conversión del módulo A/D:
1, se ha completado una ciclo de conversión A/D, 0, no se ha completado un
ciclo de conversión A/D.
PSPIF: Bandera de interrupción al producirse una operación de lectura o
escritura en el puerto paralelo esclavo, se coloca en 1 si se ha producido una
operación de lectura o escritura, y 0 si no se ha producido una de las
anteriores operaciones.
TABLA 6
Asignación y distribución de los bits del registro PIR 1. Fuente: Angulo
(2.000).
Función de los bits del registro PIR2:
CCP2IF: Bandera de interrupción del modulo CCP2: 1, se ha producido
una operación en dicho modulo, 0, no se ha producido alguna operación.
- 0 - EEIF BCLIF - - CCP2I
F
MSB LSB
68
BCLIF: Bandera de interrupción por finalización de escritura en la
memoria EEPROM de datos: 1,finalizo la escritura,0, no ha finalizado.
EEIF: Bandera de interrupción por finalización de escritura en la memoria
EEPROM de datos: 1, finalizo la escritura, 0,no ha finalizado.
TMR1L o 0Eh y TMR1H o 0Fh: Son dos registros concatenados de 8 bits
cada uno utilizados para guardar el valor del conteo del temporizador /
contador TMR1.
T1CON o 10h: Este registro se encarga de gobernar el funcionamiento de
TMR1. En la tabla 7 se presenta la distribución de los bits de este registro.
Tabla 7
Distribución y asignación de los bits del registro T1CON.
Fuente: Angulo (2.000).
TMR1ON: Gobierna el permiso o la prohibición de funcionamiento del
Timer1. En 0 TMR1 no funciona, 1 la habilita.
TMR1CS: Selecciona la fuente de los impulsos de conteo. 0, elige el reloj
interno (Fosc/4),1 elige como fuente de impulsos el reloj externo aplicado en
patas RC0 y RC1.
- - T1CKPS1 T1CKPS0 T1OSCEN T1SYNC’ TMR1C
S
TMR1ON
MSB LSB
69
T1SYNC’: Determina la posible sinc ronización o no de los impulsos del
reloj externo con los del reloj interno, 0 habilita la sincronización, 1 la
deshabilita.
T1OSCEN: Determina si se utilizará sólo la pata RC0/T1OSO/T1CKI
como entrada del reloj externo o si se utilizará en conjunto con
RC1/T1OSI/CCP2, en 0 se habilita la primera opción, en 1 se habilita la
segunda.
T1CKPS0 y T1CKPS0: eligen en conjunto el rango de división del
preescalador de frecuencia, esta es una simple división de la frecuencia de
los impulsos que se aplican al TMR1 por 1, 2, 4 u 8. A continuación se
observa la división de frecuencia aplicada de acuerdo al valor que tomen
T1CKPS0 y T1CKPS0:
TABLA 8
T1CKPS
1
T1CKPS
0 RANGO DEL PREESCALADOR
0 0 1:1
0 1 1:2
1 0 1:4
1 1 1:8
Asignación del rango del preescalador mediante los bits
T1CKPS1 y T1CKPS2 del registro T1CON. Fuente: Angulo (2.000) .
70
TMR2 o 11H: Es un temporizador ascendente de 8 bits, que al que
TMR1L o TMR1H también puede ser leído o escribido, y que también puede
realizar funciones especiales para la Puerta Serie Síncrona (SSP) y con los
módulos de captura y comparación.
La señal de reloj del TMR2 es interna Fosc/4, y antes de ser aplicada
pasa por un predivisor de frecuencia con rangos de 1:1, 1:4 y 1:16. La salida
del TMR2 atraviesa un postdivisor de frecuencia con rangos de división
desde 1:1 a 1:16, pasando por los 16 posibles valores.
Al entrar el microcontrolador en modo de reposo o SLEEP, se detiene el
oscilador interno y al no existir la señal Fosc/4 deja de funcionar el TMR2.
T2CON o 12h: Es el registro utilizado para controlar el funcionamiento de
TMR2. En la tabla 9 se puede observar la distribución de sus bits.
TABLA 9
Distribución y asignación de los bits del registro T2CON.Fuente:
Angulo (2.000).
T2SCKPS0 y T2SCKPS1: Seleccionan el rango de división del predivisor
de impulsos. (véase la tabla 10).
- TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2SCKPS1 T2SCKPS0
MSB LSB
71
TABLA 10
T1CKPS1 T1CKPS0
RANGO DEL
PREESCALADOR
0 0 1:1
0 1 1:4
1 X 1:16
Asignación del rango del preescalador. Fuente: Angulo (2.000).
TMR2ON: En 1 Permite el funcionamiento de TMR2, en 0 lo prohíbe.
TOUTPS0, TOUTPS1, TOUTPS2 y TOUTPS3: Determinan el rango por el
que divide la frecuencia el postdivisor (véase la tabla 11).
TABLA 11
TOUTPS3-
TOUTPS0
RANGO DEL
POSTDIVISOR
0 1:1
1 1:2
10 1:3
… …
1111 1:16
Asignación del rango del postdivisor. Fuente: Angulo (2.000).
72
La bandera de desbordamiento del TMR2 es el bit TMR2IF del registro
PIR1.
Señala Angulo (2.000, p.91) que “El predivisor y el postdivisor se ponen a
0 al escribir el TMR2, al escribir el T2CON o con un reset. Sin embargo,
cuando se escribe el T2CON no se borra el TMR2. Pasa a valer 0 el
contenido del TMR2 cuando se produce un reset”.
TMR2 tiene asociado un registro de período PR2 o 92h. Cuando el valor
del conteo del TMR2 coincide con el valor cargado en PR2 se genera un
impulso que puede ser dividido por el postdivisor antes de activar la bandera
TMR2IF. Este impulso también resetea el TMR2.
SSPBUF O 13h: Actúa como buffer de información para la transmisión
serial síncrona. En transmisión al registro SSPBUF se carga el byte que se
quiere transmitir a través del bus de datos interno y automáticamente se
traspasa al registro SSPSR , que va desplazando bit a bit el dato, sacándolo
ordenadamente al exterior a medida que se ejecutan los impulsos del reloj.
En recepción, los bits van entrando a medida que se ejecutan los impulsos
del reloj por una pata y se van desplazando en el SSPSR hasta que lo llenan,
en cuyo momento la información se traspasa al SSPBUF, donde queda lista
para su lectura.
SSPCON o 14h: Este registro se utiliza para programar el módulo MSSP
(Puerto Serial Síncrono Maestro) en los dos modos que puede trabajar. En la
tabla 12 se observa la distribución de sus bits.
73
TABLA 12
WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0
MSB LSB
Distribución y asignación de los bits del registro SSPCON. Fuente:
Angulo (2.000).
SSPM0, SSPM1, SSPM2 y SSPM3: Con estos bits se establece el modo
de trabajo del módulo MSSP (Véase la tabla 13).
TABLA 13
SSPM3-
0 MODO DE TRABAJO
0000 Modo maestro SPI, con reloj a Fosc /4
0001 Modo maestro SPI, con reloj a Fosc /16
0010 Modo maestro SPI, con reloj a Fosc /64
0011 Modo maestro SPI, con reloj igual a la salida del TMR2 /2
0100
Modo esclavo SPI, con reloj igual a la pata SCK y SS’ a nivel
bajo
0101
Modo esclavo SPI, con reloj igual a la pata SCK, SS' no
activo y libre para usarse como E/S
74
0110 Modo esclavo 12C, con dirección de 7 bits
0111 Modo esclavo 12C,con dirección de 10 bits
1000 Modo 12C maestro con reloj = Fosc /4x(SSPAD + 1)
1011 Modo 12C maestro controlado por firmware
1110
Modo 12C maestro controlado por firmware, con bits inicio y
stop, activada interrupción, dirección de 7 bits
1111
Modo 12C maestro controlado por firmware, con bit s inicio y
stop, activada interrupción, dirección de 10 bits
Asignación del modo de trabajo del modulo MSSP. Fuente: Angulo
(2.000).
CKP: Determina la polaridad o el estado de inactividad del reloj. En el
modo SPI si CKP = 1 dicho estado de inactividad es el alto y si CKP = 0 es el
bajo.
SSPEN: Bit de activación del módulo MSSP. Si SSPEN = 1 queda
activado el puerto serie en modo SPI y las patas SCK, SDO, SDI y SS’
realizan la labor correspondiente. Si SSPEN = 0 no funciona el modo SPI y
estas patas se utilizan para E/S digitales.
SSPOV: Al colocarse en 1 indica “sobrepasamiento”, lo que significa que
la información recibida en SSPSR y que ha pasado al SSPBUF, cuando llega
75
otro byte al SSPSR aún no se ha leído y se perderá la información existente
en el SSPBUF.
WCOL: Cuando este bit se coloca en 1 indica que se ha producido una
“colisión”. El dato a transmitir que se ha almacenado en el SSPBUF se
traspasa al SSPSR para irlo sacando en serie. Cuando el SSPBUF carga en
el SSPSR un byte sin haber dado tiempo a salir al anterior, se produce una
colisión.
CCPR1L o 15h, CCR1H o 16h, CCPR2L o 1Bh y CCPR2H o 1Ch: Los
módulos CCP1 y CCP2 utilizan un registro de trabajo de 16 bits que está
formado por la unión de los registros CCPR1H-CCPR1L o CCPR2H-CCPR2L
respectivamente. Esta pareja de registros es la encargada de capturar el
valor de TMR1, de comparar el valor que tienen con el del TMR1 o, en el
modo PWM, de modular la anchura del impulso.
CCP1CON o 17h y CCP2CON o 1Dh: Son los registros de control de los
módulos CCP1 y CCP2. En la tabla 14 se observa la distribución de los bits
del registro CCPxCON (donde x puede ser 1 o 2):
TABLA 14
Distribución y asignación de los bits del registro CCPxCON (donde x puede
ser 1 o 2). Fuente: Angulo(2.000).
- -
CCPx
X
CCPx
Y CCPxM3 CCPxM2 CCPxM1 CCPxM0
MSB LSB
76
Los bits CCPxM3-0 asignan el modo de trabajo del módulo ya sea CCP1
o CCP2 (véase la tabla 15).
TABLA 15
CCPxM3-
0 MODO DE TRABAJO DEL MODULO
0000 Módulo CCPx desconectado
0100
Modo captura con cada flanco descendente en
RCy/CCPx
0101
Modo captura con cada flanco ascendente en
RCy/CCPx
0110
Modo captura cada 4 flancos ascendentes en
RCy/CCPx
0111
Modo captura cada 16 flancos ascendentes en
RCy/CCPx
1000
Modo comparación que activa la pata RCy/CCPx al
coincidir valores
1001
Modo comparación que desactiva (0) la pata RCy/CCPx
al coincidir valores
1010
Modo comparación que genera una interrupción
software (no afecta a RCy/CCPx)
1011 Modo comparación en el que se produce un disparo
77
especial diferente para cada módulo
11xx Modo PWM
Asignación del modo de trabajo de los módulos CCP1 y/o CCP2.
Fuente: Angulo (2.000).
RCSTA o 18h: Este registro es usado para el control de la sección
receptora del USART. La estructura interna del registro RCSTA se muestra
en la tabla 16.
TABLA 16
SPEN RX9 SREN CREN ADDEN FERR OERR RX9D
MSB LSB
Estructura interna del registro RCSTA. Fuente: Angulo (2.000).
La asignación de funciones de cada bit se muestra a continuación:
Rx9D: Bit 9 del dato recibido (puede ser el bit de paridad).
OERR: Bit de error de sobrepasamiento. 1, error de sobrepasamiento
(puede ser borrado escribiendo un 0 en el bit CREN), 0, no hay error de
sobrepasamiento.
78
FERR: Bit de error de trama. 0, error de trama (puede ser actualizado
leyendo el registro RCREG y recibir el siguiente dato válido), 0, no hay error
de trama.
ADDEN: Detección de dirección. Modo asíncrono con 9 bits (RX9 =1).1,
activa la detección de dirección, activa la interrupción y descarga el buffer de
recepción al activarse RSR(8), 0, desactiva la detección de dirección, todos
los bits son recibidos y el bit 9 puede ser utilizado como bit de paridad.
CREN: Configura la recepción continua. Modo asíncrono: 1, habilita modo
de recepción continua, 0, Deshabilita recepción continua. Modo síncrono: 1,
habilita recepción continua hasta que el bit CREN es borrado, 0, Deshabilita
recepción continua.
SREN: Configura la recepción sencilla. Modo asíncrono: no influye. Modo
síncrono maestro: 1, habilita recepción sencilla, 0, deshabilita recepción
sencilla. Modo síncrono esclavo: no se utiliza.
RX9: Habilita el bit 9 de recepción. 1, Selecciona recepción de 9 bits, 0,
selecciona recepción de 8 bits.
SPEN: Habilitación del puerto serie. 1, puerto serie habilitado (se
configuran las patas RC7/RX7DT y RC6/TX/CK), 0, puerto serie
deshabilitado.
TXREG o 19h: En este registro se deposita el dato que se desea
transmitir por el USART, después de depositado el dato se traspasa al
registro de desplazamiento TSR, que va sacando los bits secuencialmente y
a la frecuencia establecida.
79
RCREG o 1Ah: Este registro es utilizado para recoger los datos recibidos
por el receptor USART. EL USART receptor recibe, uno a uno, los bits,
elimina los dos de control y los de información una vez que han llenado el
registro de desplazamiento RSR los traslada automáticamente al registro
RCREG, donde quedan disponibles para su posterior procesamiento.
ADRESH o 1Eh y ADRESL o 9Eh: En esta pareja de registros se deposita
el resultado de la conversión analógica-digital, que al estar compuesta por 10
bits, sólo son significativos 10 de los 16 bits de dicha pareja.
ADCON0 o 1Fh: Controla la operación del convertidor analógico-digital.
En la tabla 17 se observa la distribución y la asignación de los bits del
registro ADECON0.
TABLA 17
ADCS
1
ADCS
0 CHS2 CHS1 CHS0 GO/DONE’
-
ADO
N
MSB LSB
Asignación de los bits del registro de control del ADC. Fuente:
Angulo(2.000).
La función de cada bit se explica a continuación:
ADON: Activa el ADC. 1, lo activa, 0, lo prohíbe.
80
GO/DONE’: Es el bit de estado de la conversión. En 1 se inicia la
conversión y mientras se mantenga en este estado la conversión se está
realizando, en 0 confirma el final de la conversión y la puesta del resultado
en la pareja de registros ADRESH y ADRESL.
CH0, CH1 y CH2: Seleccionan el canal por el que se introduce la señal
analógica a convertir, de acuerdo con el siguiente código (tabla 18):
TABLA 18
CH2-0 CANAL
000
Canal 0
(RA0/AN0)
001
Canal 1
(RA1/AN1)
010
Canal 2
(RA2/AN2)
011
Canal 3
(RA3/AN3)
100
Canal 4
(RA4/AN4)
101
Canal 5
(RE0/AN5)
81
110
Canal 6
(RE1/AN6)
111
Canal 7
(RE2/AN7)
Selección del canal de entrada analógica. Fuente: Angulo
(2.000).
ADCS0 y ADCS1: Seleccionan la frecuencia de re loj que se emplea en la
conversión (véase la tabla 19)
TABLA 19
ADCS1-
0 FRECUENCIA
00 Fosc/2
01 Fosc/8
10 Fosc/32
11
FRC (procedente del oscilador RC
interno)
Asignación de la frecuencia del reloj del ADC. Fuente: Angulo (2.000).
OPTION o 81h: La misión principal de este registro es controlar TMR0
(contador de pulsos) y el divisor de frecuencia. En la tabla 20 se observa la
distribución de cada bit de este registro.
82
TABLA 20
RBPU' INTEDG T0CS T0SE PSA PS2 PS1 PS0
MSB LSB
Distribución y asignación de los bits del registro OPTION. Fuente:
Angulo (1.999).
La función de cada bit se describe a continuación:
PS0, PS1 y PS2: La combinación de estos bits proporcionan el valor del
divisor de frecuencia para el TMR0 y el WDT (véase la tabla 21).
TABLA 21
PS2 PS1 PS0
División del
TMR0
División del
WDT
0 0 0 1:2 1:1
0 0 1 1:4 1:2
0 1 0 1:8 1:4
0 1 1 1:16 1:8
1 0 0 1:32 1:16
1 0 1 1:64 1:32
83
1 1 0 1:128 1:64
1 1 1 1:256 1:128
Asignación del divisor de frecuencia para el TMR0 y el
WDT. Fuente: Angulo (2.000).
PSA: Asigna el divisor de frecuencias. 1, el divisor de frecuencias se le
asigna al WDT, 0, el divisor de frecuencias se le asigna al TMR0.
T0SE: Determina el tipo de flanco para T0CKI (en caso de ser habilitado
este reloj). 1, incremento del TMR0 cada flanco descendente, 0, incremento
del TMR0 cada flanco ascendente.
T0CS: Determina el tipo de reloj para el TMR0. 1, pulsos introducidos a
través de T0CKI (contador), 0, pulsos del reloj interno Fosc /4 (temporizador).
INTEDG: Flanco activo de la interrupción externa. 1, flanco ascendente, 0,
flanco descendente.
RBPU´: Resistencias de pull-up del puerto B. 1, desactivadas, 0,
activadas.
TRISA o 85h, TRISB o 86h, TRISC o 87, TRISD o 88h y TRISE o 89h:
Estos registros son utilizados para definir el sentido de cada línea de
determinado puerto, cada bit es bidireccional, es decir puede definirse bien
sea como entrada o como salida. Por ejemplo, si el bit 0 del registro TRISB
se coloca en 1, la línea RB0 funciona como entrada; si se coloca en 0 el bit 2
84
de TRISC, la línea RC2 funciona como salida de datos. Es importante
entender que estos registros sólo funcionarán si el puerto a utilizar es
configurado como puerto de E/S de datos, es decir se debe deshabilitar
cualquier otra función que proporcione el puerto como el ADC, la
comunicación serial, interrupción externa, entre otras.
PIE1 o 8Ch: Contiene los bits que permiten o prohíben las interrupciones
provocadas por los periféricos internos del microcontrolador y que no
estaban contempladas en el registro INTCON. Para que los bits de PIE1
cumplan su función es necesario que el bit PEIE de INTCON sea 1, de esta
manera se habilita los periféricos que no se controlan con dicho registro. En
la tabla 22 se muestra la distribución de los bits de PIE1.
TABLA 22
PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE
MSB LSB
Distribución y asignación de los bits del registro PIE1. Fuente: Angulo
(2.000).
TMR1IE: Habilita la interrupción para el TMR1 con su desbordamiento. 1,
lo habilita, 0, lo prohíbe.
85
TMR2IE: Habilita la interrupción para el TMR2 con su desbordamiento. 1,
la habilita, 0, la prohíbe.
CCP1IE: Habilita la interrupción para el módulo CCP1 cuando se produce
una captura o comparación. 1, la habilita, 0, la prohíbe.
SSPIE: Habilita la interrupción el puerto serie síncrono. 1, la habilita, 0, la
prohíbe.
TXIE: Habilita la interrupción para el transmisor del USART cuando el
buffer se vacía. 1, la habilita, 0, la prohíbe.
RCIE: Habilita la interrupción para el receptor del USART cuando el buffer
se llena. 1, la habilita, 0, la prohíbe.
ADIE: Habilita la interrupción para el convertidor analógico-digital al
terminar la conversión. 1, la habilita, 0, la prohíbe.
PSPIE: Habilita la interrupción para el puerto paralelo esclavo al realizar
unas operación de lectura / escritura. 1, la habilita, 0, la prohíbe.
PIE2 o 8Dh: Contiene los bits de permiso de interrupción de las tres
causas que no figuraban en PIE1: fin de escritura en la EEPROM, colisión de
bus en el modo SSP y producción de una captura o comparación en el
módulo CCP2. En la tabla 23 se muestra la distribución de los bits de este
registro.
TABLA 23
86
- 0 - EEIE BCLIE - - CCP2IE
MSB LSB
Distribución y asignación de los bits del registro PIE2. Fuente: Angulo
(2.000).
A continuación se explica la función de los tres bits asignados en el
registro PIE2:
CCP2IE: Habilita la interrupción en el módulo CCP2. 1, habilita la
interrupción, 0, prohíbe la interrupción.
BCLIE: Habilita la interrupción por colisión de bus en el modo SSP cuando
dos o más maestros tratan de transferir datos al mismo tiempo. 1, habilita la
interrupción, 0, prohíbe la interrupción.
EEIE: Habilita la interrupción por fin de escritura en la EEPROM de
datos.1, habilita la interrupción, 0, prohíbe la interrupción.
PCON o 8Eh: Hay seis registros que se utilizan para controlar el bus 12C:
SSPCON, SSPCON2, SSPSTAT, SSPBUF, SSPSR y SSPADD.
SSPCON2 o 91h: Este registro es llamado también registro de control2.
Todos sus bits son leíbles y escribibles y quedan en cero cuando ocurre un
reset. En la tabla 24 se observa la distribución de los bits de este registro.
TABLA 24
87
GCEN ACKSTAT ACKDT
ACKE
N RCEN PEN RSEN SEN
MSB LSB
Distribución y asignación de los bits del registro SSPCON2. Fuente:
Angulo (2.000).
A continuación se explica la función de cada bit:
SEN: Inicia la condición de inicio (de colocarse en 1).
RSEN: Inicia la repetición de la condición de inicio (de colocarse en 1).
PEN: De colocarse en 1 genera la condición de parada en las líneas SCL
y SDA.
RCEN: Se coloca en 1 para habilitar el modo de recepción del maestro, 0
lo deshabilita.
ACKEN: En 1 se inicia la secuencia de generación de la condición de
reconocimiento. Este bit se borra automáticamente por hardware.
ACKDT: Es el bit de reconocimiento en el modo maestro en recepción. Si
vale 0, el maestro ha transmitido el bit de reconocimiento, si vale 1, no lo ha
hecho.
ACKSTAT: Cuando se coloca este bit en 1, significa que se ha recibido el
bit de reconocimiento, en 0 no lo ha recibido.
88
SSPADD o 93h: El registro SSPADD guarda la dirección del esclavo.
Cuando se emplean direcciones de 10 bits, el usuario debe escribir el byte
alto de la dirección con el siguiente código donde A9 y A8 son los bits de
más peso: 1-1-1-1-0-A9-A8-0.
SSPSTAT o 94h: El registro de SSPSTAT contiene la información que
representa el estado de la transferencia de datos. Detecta las condiciones de
inicio y parada, así como la recepción del byte de la dirección. En la tabla 25
se muestra la distribución de los bits que conforman este registro.
TABLA 25
SMP CKE D/A# P S R/W’ UA BF
MSB LSB
Distribución y asignación de los bits del registro SSPSTAT. Fuente:
Angulo (2.000).
BF: Actúa como señalizador del buffer de datos. 1, indica que tiene un
dato y la transmisión está en proceso sin terminar. 0, indica que no tiene dato
o que la transmisión finalizó.
UA: Indica la longitud de la dirección. 1, indica que la dirección es de 10
bits y que hay que cargar el byte alto, según la codificación señalada en la
definición del registro SSPADD, 0, la dirección es de 7 bits.
89
R/W’: Indica si se trata de una lectura/escritura’. 1, indica que se trata de
una lectura, 0, indica que se trata de una escritura.
S: Detecta la condición de inicio o Start. Lo indica con 1.
P: Detecta la condición de llegada del bit o STOP. Lo indica con 1.
D/A´: Indica si el dato recibido es de información o de dirección. 1, indica
que es de dato, 0, indica que es de dirección.
CKE: Selecciona los niveles de las patas RC3/SCK/SCL y RC4/SDI/SDA
en el modo maestro o multi-maestro.
SMP: En el modo maestro es un bit de muestreo que vale 1 cuando los
bits de datos se muestrean al final del período, o vale 0 cuando se hace en la
mitad del período.
TXSTA o 98h: Este registro se utiliza para el control de la sección
transmisora del USART. En la tabla 26 se representa la distribución y
asignación de los bits que conforman este registro.
TABLA 26
CSRC TX9 TXEN SYNC - BRGH TRMT TX9D
MSB LSB
Distribución y asignación de los bits del registro TXSTA. Fuente:
Angulo (2.000).
90
A continuación se explica las funciones de cada bit del registro TXSTA:
TX9D: Es el bit 9 del dato a transmitir (en caso de seleccionarse el modo
de 9 bits para el dato).
TRMT: Bit de estado del registro de desplazamiento de transmisión. 1,
TSR está vacío, 0, TSR no está vacío.
BRGH: Bit de selección de la velocidad de baudios. 1, alta velocidad, 0,
baja velocidad. Este bit sólo es usado en el modo asíncrono.
SYNC: Bit de selección del modo del USART. 1, modo síncrono, 0, modo
asíncrono.
TXEN: Activa la transmisión en 1, en 0 la desactiva.
TX9: Habilita el bit 9 de transmisión. 1, selecciona transmisión de 9 bits, 0,
selecciona transmisión de 8 bits.
CSRC: Bit de selección del reloj. En modo asíncrono no influye, en modo
síncrono un 1 selecciona el reloj en modo maestro (reloj generado
internamente desde BRG), un 0 selecciona el reloj en modo esclavo (reloj
generado por una fuente externa).
SPBRG o 99h: Este registro es utilizado para controlar el valor del
Generador de Frecuencia en Baudios, BRG que posee el USART. El valor de
BRG es controlado por el contenido grabado en el registro SPBRG mediante
la siguiente ecuación: Frecuencia en Baudios = Fosc/Kx(X+1), donde X es el
valor cargado en SPBRG y K = 64 en baja velocidad (BRGH = 0) o 16 en
alta velocidad (BRGH = 1).
91
ADCON1 o 9Fh: Se usa para configurar las patas del puerto A como
entradas analógicas o E/S digitales. En la tabla 27 se observa la distribución
de sus bits.
TABLA 27
ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0
MSB LSB
Distribución y asignación de los bits del registro ADCON1. Fuente:
Angulo (2.000).
A continuación se explica la función de cada bit del registro ADCON1:
PCFG0-PCFG3 : Se usan para configurar las patas de los canales de
entrada al conversos como analógicas o como E/S digitales, de acuerdo a la
tabla 28:
TABLA 28
PCFG
3–0
AN7/
RE2
AN6/
RE1
AN5/
RE0
AN4/
RA5
AN3/
RA3
AN2/
RA2
AN1/
RA1
AN0/
RA0
VREF+ VREF
– CHAN/REFS
0000 A A A A A A A A VDD VSS 8/0
0001 A A A A VREF+ A A A RA3 VSS 7/1
0010 D D D A A A A A VDD VSS 5/0
0011 D D D A VREF+ A A A RA3 VSS 4/1
0100 D D D D A D A A VDD VSS 3/0
0101 D D D D VREF+ D A A RA3 VSS 2/1
011x D D D D D D D D VDD VSS 0/0
92
1000 A A A A VREF+ VREF
– A A RA3 RA2 6/2
1001 D D A A A A A A VDD VSS 6/0
1010 D D A A VREF+ A A A RA3 VSS 5/1
1011 D D A A VREF+ VREF
– A A RA3 RA2 4/2
1100 D D D A VREF+ VREF
– A A RA3 RA2 3/2
1101 D D D D VREF+ VREF
– A A RA3 RA2 2/2
1110 D D D D D D D A VDD VSS 1/0
1111 D D D D VREF+ VREF
– D A RA3 RA2 ½
Determinación de los pines del PIC que actúan como entrada analógica o digital.
Fuente: Angulo (2000).
ADFM: Selecciona el formato del resultado de la conversión. Si vale 1, el
resultado se justifica en el registro ADRESH, que tendrá sus 6 bits de más
peso en 0; mientras que si vale 0 la justificación se realiza sobre el registro
ADRESL, que tendrá sus 6 bits de menos peso a 0. Esto significa que los 16
bits que forman la alineación de ADRESH y ADRESL unas veces tiene a 0
los 6 bits de más peso y otras los 6 bits de menos peso (alineación a la
derecha o a la izquierda).
EEDATA o 10Ch y EEDATAH o 10Eh: Estos dos registros se usan en
conjunto para escribir o leer una palabra de 14 bits en la memoria FLASH
como se ve en la figura 21, no se usan para operaciones que afecten la
memoria EEPROM.
EEADR o 10Dh y EEADRH o 10Fh: Al igual que con los datos que se
desean escribir o leer en la memoria FLASH, no es suficiente contener la
dirección de las localidades de dicha memoria en un solo registro, por lo que
se usa también la unión de dos registros: EEADR y EEADRH, donde
93
EEADRH contiene los 5 bits de más peso de la dirección. En la figura 4 se
observa esta unión.
FIGURA 16
EEADRH (10Fh) EEADR (10D)
0 0 0 X X x x x x X x x X x x x
MSB LSB
DIRECCION DE 13 BITS
EEDATAH (10Eh) EEDATA (10Ch)
0 0 x x X x x x x x x x X x x x
MSB LSB
PALABRA DE 14 BITS (FLASH)
Diagrama de las uniones de los registros: EEADRH con EEADR
y EEDATAH con EEDATA. Fuente: Angulo (2.000).
EECON1 o 18Ch y EECON2 o 18Dh: Se utilizan para controlar las
operaciones de escritura y lectura de las memorias EEPROM Y FLASH, el
registro EECON2 no está implementado físicamente y sólo se utiliza en la
94
operación de escritura. En la tabla 29 se muestra la estructura interna del
registro EECON1.
TABLA 29
EEPGD - - - WRERR WREN WR RD
MSB LSB
Distribución y asignación de los bits del registro EECON1. Fuente:
Angulo: (2.000).
A continuación se explica la función de cada bit de este registro:
RD: Se coloca en 1 para iniciar la lectura.
WR: Se coloca en 1 para iniciar la escritura y pasa a 0 automáticamente
cuando finaliza.
WREN: Permiso de escritura.
WRERR: Señalizador de error en escritura.
EEPGD: Selecciona el acceso a la memoria FLASH con 1 o a la memoria
EEPROM con 0.
17.- INSTRUCCIONES DE PROGRAMACIÓN DEL PIC16F877
En la tabla 30 se presenta todas las instrucciones que maneja el PIC -
16F877, el estado de los señalizadotes o banderas cuando se ejecuta dicha
instrucción, los ciclos de reloj, la sintaxis y una breve descripción de la
95
función que cumple cada una de ellas.
TABLA 30
INSTRUCCIONES QUE MANEJAN REGISTROS
SINTAXIS OPERACIÓN CICLOS
FORMATO 14
BIT SEÑALIZADORES
ADDWF f,d Suma W y f 1 00 0111 dfff
ffff C,DC,Z
ANDWF f,d AND W con f 1 00 0101 dfff
ffff Z
CLRF f Borra f (Pone todos los
bits a 0) 1
00 0001 1fff
ffff Z
CLRW --- Borra W 1 00 0001 0xxx
xxxx Z
COMF f,d Complementa f
(Invierte) 1
00 1001 dfff
ffff Z
DECF f,d Decrementa f 1 00 0011 dfff
ffff Z
INCF f,d Incrementa f 1 00 1010 dfff
ffff Z
IORWF f,d OR entre W y f 1 00 0100 dfff
ffff Z
96
MOVF f,d Mueve f 1 00 1000 dfff
ffff Z
MOVWF f Mueve W a f 1 00 0000 1fff
ffff ---
NOP --- No opera 1 00 0000 0xx0
0000 ---
RLF f,d Rota f a la i zq. a través
del acarreo 1
00 1101 dfff
ffff C
RRF f,d Rota f a la dcha. a
través del acarreo 1
00 1100 dfff
ffff C
SUBWF f,d Resta W a f 1 00 0010 dfff
ffff C,DC,Z
SWAPF f,d Intercambia nibbles 1 00 1110 dfff
ffff ---
XORWF f,d XOR de W con f 1 00 0110 dfff
ffff Z
INSTRUCCIONES QUE MANEJAN BITS
BCF
f,b Borra bit de f 1
01 00bb bfff
ffff ---
BSF
f,b Pone a 1 el bit f 1
01 01bb bfff
ffff ---
97
INSTRUCCIONES DE “BRINCO”
BTFSC
f,d
Explora un bit de f y brinca
si es 0 1(2)
01 10bb bfff
ffff ---
BTFSS
f,d
Explora un bit de f y brinca
si es 1 1(2)
01 11bb bfff
ffff ---
DECFSZ
f,d
Decrementa f y si es 0,
brinca 1(2)
00 1011 dfff
ffff ---
INCFSZ
f,d
Incrementa f y si es 0,
brinca 1(2)
00 1111 dfff
ffff ---
INSTRUCCIONES QUE MANEJAN OPERANDOS INMEDIATOS
ADDLW
k
Suma inmediata de literal
con W 1
11 111x kkkk
kkkk C,DC,Z
ANDLW
k
AND inmediato de literal
con W 1
11 1001 kkkk
kkkk Z
IORLW
k
OR inmediato de literal con
W 1
11 1000 kkkk
kkkk Z
MOVLW
k
Mueve a W un valor
inmediato 1
11 00xx kkkk
kkkk ---
SUBLW
k
Resta W de un literal
inmediato 1
11 110x kkkk
kkkk C,DC,Z
XORLW
k OR exclusiva con W 1
11 1010 kkkk
kkkk Z
98
INSTRUCCIONES DE CONTROL Y ESPECIALES
CALL
k Llamada a subrutina 2
10 0kkk kkkk
kkkk ---
CLRWDT Borra o refresca al Perro
Guardián 1
00 0000 0110
0100 TO#,PD#
GOTO
k Salto incondicional 2
10 1kkk kkkk
kkkk ---
RETFIE Retorno de interrupción
(GIE=1) 2
00 0000 0000
1001 ---
RETLW
k
Retorno subrutina y carga
W=k 2
11 01xx kkkk
kkkk ---
RETURN Retorno de subrutina 2 00 0000 0000
1000 ---
SEP Pasa al modo de reposo 1 00 0000 0110
0011 TO#,PD#
Principales características de las 35 instrucciones del PIC16F877. Fuente: Angulo (1999).
A continuación se presenta en la tabla 31 la nomenclatura y símbolos
utilizados para la compilación del programa del PIC por el lenguaje MPASM
de MICROCHIP.
99
TABLA 31
SIGNIFICADO
0xhh Es la forma que se usa para referenciar a los números hexadecimales
de dos dígitos (hh). F Representa la dirección en la memoria RAM de datos del registro fuente
D Es un bit que conforma el campo del formato de una instrucción que
indica el registro destino. Si d=0 es W, y si d=1 es f.
K Campo que contiene un valor inmediato, que puede ser un operando (8
bits) o una dirección para el PC (11 bits). X Valor indeterminado de un bit. Puede ser 1 o 0. ( ) Contenido. <> Campo de un bit de un registro. Por ejemplo: ESTADO <5>. E En el conjunto de Ejemplo: d ∈ [0,1]. [ ] Opciones.
Nomenclatura y símbolos utilizados por el lenguaje MPASM de Microchip.
Fuente: Angulo (1.999).
18.- MEMORIA DE DATOS EEPROM Y FLASH:
El PIC 16F877 contiene 8K de palabras de 14 bits de memoria FLASH
para el grabado del programa, si se diseña un programa que no utilice el total
de esta memoria, ésta se podrá utilizar para almacenar datos del programa.
También se destina como memoria de datos no volátil 256 bytes de memoria
EEPROM. La memoria de tipo FLASH y EEPROM ofrecen la característica
de no volatilidad, por lo que los datos almacenados allí se mantienen
guardados incluso al cortar la alimentación del PIC, a diferencia de la
memoria RAM donde al faltar la alimentación los datos que hay residen son
eliminados sin posibilidad de recuperarse. Angulo (2.000) señala que “La
propia aplicación se puede reprogramar según las condiciones externas. Es
100
posible ampliar el área de la memoria de datos no volátil EEPROM con
posiciones libres de la memoria de código FLASH”(p.48). A continuación se
presenta un ejemplo de programa para la lectura de dato en la memoria
EEPROM.
Ejemplo 1: Diseño de programa que lee el dato contenido en la dirección
DIR de la memoria EEPROM y carga la parte baja del dato en DATOB y la
parte alta del dato en DATOA.
BCF STATUS,RP0 ; selección del banco 2 de la memoria RAM
donde se
BSF STATUS,RP1 ; se encuentra el registro EEADR
MOVF DIRA,W ; cargo a w la dirección alta del dato a buscar.
MOVWF EEADRH ; búsqueda de la dirección en el registro
EEADRH.
MOVF DIRB,W ; cargo a w la dirección baja del dato a buscar.
MOVWF EEADR ; búsqueda de la dirección en el registro EEADR.
BSF STATUS,RP0 ; selección del banco 4 de la memoria RAM
donde se encuentra.
; el registro EECON1
BCF EECON1,EEPGD ; selección de la memoria EEPROM.
BSF EECON1,RD ;selección de la opción de escritura.
BCF STATUS,RP0 ; selección del banco 2 de la memoria RAM
donde se encuentra.
101
; los registros EEDATA y EEDATAH.
MOVF EEDATA,W ; introduce en W la parte alta del dato.
MOVWF DATOA ; coloca en DATOA el contenido de W.
MOVF EEDATAH,W ; Introduce en W la parte alta del dato.
MOVWF DATOB ; coloca en DATOB el contenido de W
En el caso de querer leer un dato contenido en la memoria FLASH
simplemente se debe cambiar las direcciones donde se ubica el dato,
cambiar la instrucción bcf EECON1,EEPGD por bsf EECON1,EEPGD, y
colocar debajo tres veces la instrucción nop (no operation) ya que el
procesador tarda tres ciclos de lectura para obtener el dato en la memoria
FLASH y cualquier instrucción es ignorada en ese tiempo.
B. DISPOSITIVOS PERIFÉRICOS
14. 3 Temporizadores + el WDT.
15. 2 Módulos CCP, para captura, comparación y modulación de ancho de
pulso (PWM).
16. Convertidor analógico – digital de 10 bits.
17. Puerto serie síncrono (SSP) con SPI e 12C.
18. USART.
19. Puerto paralelo esclavo (PSP).
102
19.- LOS TEMPORIZADORES:
Angulo (1.999,p.93) señala que “ una de las labores mas habituales en
los programas de control de dispositivos suele ser determinar intervalos
concretos de tiempo, y recibe el nombre de temporizador (timer) el elemento
encargado de realizar esta función. También suele ser frecuente contar los
impulsos que se producen en el exterior del sistema, y el elemento destinado
a este fin se denomina contador”. Entonces por ser el microcontrolador un
componente utilizado en muchas ocasiones como dispositivo de control se
explican a continuación los tres temporizadores contenidos en el PIC16F877
y el WDT:
TMR0:
El temporizador TMR0 actúa de dos maneras diferentes:
1. Como contador de sucesos, que están representados por los impulsos
que se aplican al pin T0CKI. Al llegar al valor FFH se desborda el
contador y, con el siguiente impulso, pasa a 00H, advirtiendo esta
circunstancia activando un señalizador y/o provocando una
interrupción.
2. Como temporizador, cuando se carga en el registro que implementa al
recurso un valor inicial se incrementa con cada ciclo de instrucción
(Fosc/4) hasta que se desborda, o sea, pasa de FFH a 00H y avisa
poniendo a 1 un bit señalizador y/o provocando una interrupción.
103
Para que el TMR0 funcione como contador de impulsos aplicados a la
patita T0CKI hay que poner a 1 el bit T0CS, que es el que ocupa la posición
5 del registro OPTION. En esta situación, el registro TMRO, se incrementa
con cada flanco activo aplicado en la patita T0CKI. El tipo de flanco activo se
elige programando el bit T0SE, que es el que ocupa la posición 4 del registro
OPTION (ver la tabla 20). Cuando se desea que TMR0 funcione como
temporizador el bit T0CS = 0.
A menudo explica Angulo (1.999, p. 94) el TMR0 precisa “controlar largos
intervalos de tiempo”, por lo que se necesita aumentar la duración de los
impulsos de reloj que les incrementa. Para cubrir este requisito Angulo
(1.999,p.95) señala que “ se dispone de un circuito programable denominado
Divisor de frecuencia, que divide la frecuencia utilizada por diversos rangos”.
El divisor de frecuencia actúa en el TMR0 como Pre-divisor, es decir, los
impulsos pasan primero por el divisor y luego se aplican al TMR0, una vez
aumentada su duración. Para asignar el divisor de frecuencia al TMR0 se
coloca en 0 el bit PSA del registro OPTION y para asignar el valor con el que
actuara el divisor de frecuencia se utilizan los bits PS0, PS1 y PS2 del mismo
registro.
TMR1:
El TMR1 es el único Temporizador / contador ascendente con un tamaño
de 16 bits, lo que requiere el uso de dos registros concatenados de 8 bits:
TMR1L o 0Eh y TMR1H o 0Fh, que son los encargados de guardar el valor
104
del conteo en cada momento. Dicho valor evoluciona desde 0000h hasta
FFFFh, instante en el que se activa la bandera TMR1IF y se regresa al valor
inicial de 0000h. También, si se desea, se puede provocar una petición de
interrupción.
El valor contenido en TMR1H:TMR1L puede ser leído o escrito y los
impulsos de reloj que originan el conteo ascendente pueden provenir del
exterior o de la frecuencia de funcionamiento del microcontrolador (Fosc/4).
Señala Angulo (2.000) que “El TMR1 es capaz de funcionar de tres
formas: 1° como temporizador 2° Como contador síncrono 3° Como contador
asíncrono.”(p.88).
En el modo Temporizador el valor concatenado TMR1H:TMR1L se
incrementa con cada ciclo de instrucción (Fosc/4). En el modo contador, el
incremento se puede producir con los flancos ascendentes de un reloj
externo, cuya entrada se aplica a las líneas RC0 y RC1 del puerto C, o por
impulsos aplicados en la línea RC0.
Este temporizador al igual que el anterior también posee un predivisor (ver
tabla 7) y es posible reinicializarse desde los módulos CCP (ver la tabla 14)
El funcionamiento del TMR1 esta gobernado por el valor con el que se
programan los bits del registro T1CON (ver la tabla 7), que ocupa la dirección
10H de la memoria RAM.
105
TMR2:
Es un temporizador ascendente de 8 bits, que se puede leer y escribir al
igual que los anteriores, y que también puede realizar funciones especiales
para la Puerta Serie Sincronía (SSP) (ver tabla 12) y con el modulo de
modulación de ancho de pulso (ver la formula del periodo de onda del
modulo PWM).
La señal de reloj del TMR2 es interna Fosc/4, y antes de ser aplicada
pasa por un predivisor de frecuencia con rangos de 1:1, 1:4 y 1:16. La salida
del TMR2 atraviesa un postdivisor de frecuencia con rangos de división
desde 1:1 a 1:16, pasando por los 16 valores posibles.
Al entrar el microcontrolador en modo de reposo o SEP, se detiene el
oscilador interno y al no existir la señal Fosc/4 deja de funcionar el TMR2.
Para controlar el funcionamiento del TMR2 se usa el registro T2CON (ver la
tabla 9).
20.- EL PERRO GUARDIÁN (WDT): Es un contador interno de 8 bits que
origina un reset cuando se desborda. Su control de tiempo es independiente
de los anteriores temporizadores y esta basado en una simple red R-C. Su
actuación es opcional y puede bloquearse para que no funcione
programando el bit WDTE de la palabra de configuración.
106
La temporización nominal con la que se halla programado el perro
guardián es de 18 ms, pero utilizando el divisor de frecuencia (ver tabla 21)
puede aumentarse hasta alcanzar los 2,3 segundos.
Para evitar que se desborde el perro guardián hay que refrescarle
previamente. Esto consiste en ponerle a cero mediante las instrucciones
clrwdt y sleep. El programador debe analizar las instrucciones de la tarea y
situar algunas de esas dos en sitios estratégicos por los que pase el flujo de
control antes que transcurra el tiempo asignado al WDT. De esta manera si el
programa se congela o se cuelga no se refresca el perro guardián y se
produce la reinicialización del sistema.
La instrucción clrdt borra al WDT y reinicia su cuenta. Sin embargo, la
instrucción sleep, además de borrar el WDT detiene al sistema y lo coloca en
un estado de reposo o bajo consumo. Si no se desactiva el perro guardián al
entrar en el modo de reposo, al completar su conteo se provocara un reset y
sacara al microcontrolador del modo de bajo consumo. Para desactivar al
perro guardián hay que escribir un 0 en el bit 2 (WDTE) de la palabra de
configuración (ver tabla 32).
En el registro STATUS existe un bit denominado TO’ que pasa a valer 0
después del desbordamiento del WDT.
107
21.- MODULO DE CAPTURA, COMPARACION Y MODULACION DE
ANCHO DE PULSO:
El PIC16F877 dispone de dos módulos CCP, llamados CCP1 y CCP2 que
pueden realizar funciones de captura, comparación y modulación de pulso de
acuerdo al modo en que se configuren:
Modo captura:
La pareja de registros CCPxH y CCPxL (x corresponde a 1 o 2,
dependiendo al módulo a usar) de cualquiera de los módulos CCP1 o CCP2
captura el valor que tiene el temporizador TMR1 cuando ocurre un evento
especial en la pata RC2/CCP1 (para el módulo CCP1) o en la pata
RC1/T1OSI/CCP2 (para el módulo CCP2).
En este modo se debe colocar los pines RC2/CCP1 y/o RC1/T1OSI/CCP2
como líneas de entrada a través del registro TRISC. Los posibles eventos
que pueden ocurrir sobre esa (s) pata (s) son:
- Un flanco ascendente.
- Un flanco descendente.
- Cada 4 flancos ascendentes.
- Cada 16 flancos descendentes.
Estos eventos se configuran a través del registro CCPxCON (donde x es 1
o 2 dependiendo del módulo utilizado).
108
Al efectuar la captura, se activa la bandera CCPxIF del registro PIRx.
También, de colocar en 1 el bit de permiso de interrupción CCPxIE del
registro PIEx, se genera una petición de interrupción cuando se carga en
CCPRxH-L el valor de TMR1.
Cuando se emplea cualquiera de los módulos como captura, el TMR1
debe estar configurado para trabajar como temporizador o como contador
son se debe configurar como contador asíncrono.
Modo comparación:
Se compara el valor de 16 bits del TMR1 con otro valor cargado en la
pareja de registros CCPxH y CCPxL de uno de los módulos CCP y cuando
coinciden se produce un evento en la RC2/CCP1 (para el módulo CCP1) o
en la pata RC1/T1OSI/CCP2 (para el módulo CCP2).
En este modo se debe colocar los pines RC2/CCP1 y/o RC1/T1OSI/CCP2
como salida.
Los acontecimientos que pueden ocurrir al coincidir el valor de TMR1 con
el cargado en la pareja PPCxH y CCPxL en la (s) pata (s) anteriormente
señaladas son:
- Pasar a nivel alto.
- Pasar a nivel bajo.
- No cambia su estado pero se produce una interrupción.
109
Al igual que en el modo de captura, al coincidir los valores de
comparación se produce la activación de la bandera CCPxIF, El TMR1 debe
trabajar en modo temporizador o contador síncrono y se puede producir una
interrupción si el bit de permiso CCPxIE del registro PIEx está en 1.
De colocarse CCP1 en modo de “disparo especial” a través de los bits
CCP1M3-0, pone a 0 el TMR1 y el CCPR1 funciona como un registro de
período, capaz de provocar periódicamente interrupciones. Si en cambio se
coloca en el mismo modo el módulo CCP2, éste pone en 0 el TMR1 e inicia
una conversión en el ADC, con lo que también y, con carácter periódico,
puede realizar conversiones analógicas-digitales sin el control del programa
de instrucciones.
22.- MODO DE MODULACIÓN DE ANCHO DE PULSO (PWM):
Con este modo de trabajo, se consiguen impulsos lógicos cuyo período de
trabajo es de duración variable.
Para lograr el cambio de estado lógico en la (s) pata (s) RC2/CCP1 y/o
RC1/T1OSI/CCP2 se usa un comparador que cuando el valor de PR2 es
igual a la parte alta del TMR2, sale (n) un 1 en la (s) salida (s), momento en
que TMR2 toma el valor de 00h. Luego la (s) salida (s) se coloca (n) en 0
cuando otro comparador detecta la coincidencia del valor existente en
CCPRxH con el de la parte alta del TMR2. De esta manera, señala Angulo
(2.000) que “variando los valores que se cargan en PR2 y en CCPRxL (que
luego se traspasa a CCPR1H) se varía el intervalo de tiempo en el que el pin
110
de salida está en 1 o 0” (p.109). Si se quiere trabajar con diez bits de
precisión se usan los bits 5 y 4 de CCPxCON en unión con CCPRxL y los
dos bits de menos peso del reloj interno con TMR2, haciendo que éste
cuente cada Tosc en vez de cada 4xTosc.
El tiempo que dura el período de la onda depende del valor cargado en
PR2, según la fórmula siguiente: Período = [(PR2) + 1]x4xToscxValor
Predivisor TMR2. También hay una fórmula para determinar el tiempo en que
la salida es: Anchura de impulso = (CCPR1L, bit 4 y 5 de
CCP1CON)xToscxValor predivisor TMR2.
Según explica Angulo (2.000) “Los pasos a seguir para reali zar la
configuración PWM son los siguientes: 1. Asignar el período cargando el
valor en PR2, 2. Asignar la anchura del pulso cargando el registro CCPR1L y
los bits 4 y 5 del CCP1CON, 3. Configurar la línea RC2/CCP1 como salida, 4.
Asignar el valor del predivisor y activar el TMR2 escribiendo en T2CON, 5.
Configurar el módulo CCP1 en modo PWM.
23.- CONVERTIDOR ANALÓGICO-DIGITAL:
El PIC16F877 contiene internamente un convertidor A/D de 10 bits de
resolución y 8 canales de entrada analógica. La resolución que tiene cada bit
procedente de la conversión tiene un valor que es función de la tensión de
referencia Vref, de acuerdo con la fórmula: Resolución = ( +Vref – (-Vref)) /
2^10 = Vref/1.024.
111
Según explica Angulo (2.000) “si la Vref = 5VDC y la Vref- es tierra, la
resolución es de 4,8 mV / bit. Por tanto, a la entrada analógica de 0 V le
corresponde una digital de 00 000 000 y para la de 5V una de 11 111 111. La
tensión de referencia determina los límites máximo y mínimo de la tensión
analógica que se puede convertir” (p.129). Según especificaciones de
Microchip el voltaje diferencial mínimo que se le puede aplicar como voltaje
de referencia es de 2V, lo que arrojaría una resolución de 1,95 mV. Este
voltaje de referencia puede implementarse con la tensión interna de
alimentación VDD, o bien, con una externa que se introduce por la pata
RA3/AN3/V REF+, en cuyo caso la polaridad negativa se aplica en
RA2/AN2/V REF-.
A continuación se indican los pasos que se hay que efectuar para realizar
una conversión A/D:
1. - Configurar el módulo convertidor A/D:
- Configurar las patas que actuarán como entradas analógicas,
las que trabajan como E/S digitales y las usadas para la tensión
de referencia (ADECON1).
- Seleccionar el reloj de la conversión (ADCON0).
- Seleccionar el canal de entrada A/D (ADECON0).
- Activar el módulo A/D (ADECON0).
2.- Activar (en caso de que se desee) una interrupción cuando termine
la conversión el ADC:
- Borrar la bandera ADIF (PIR1).
112
- Colocar en 1 el bit ADIE (PIE1).
- Colocar en 1 los bits habilitadores GIE y PEIE (INTCON).
3.- Tiempo de espera para que transcurra el tiempo de adquisición.
4.- Inicio de la conversión:
- Poner a 1 el bit GO/DONE’ (ADCON0).
5.- Tiempo de espera para completar la conversión A/D que puede
detectarse:
a. Por la exploración del bit GO/DONE’, que al completarse la
conversión pasa a valer 0.
b. Esperando a que se produzca la interrupción si se ha programado,
al finalizar la conversión.
c. Aunque no se permita interrupción, la bandera ADIF se colocará en
1 al finalizar la conversión.
6.- Leer el resultado en los 10 bits válidos de la alineación de
ADERESH y ADERESL y borrar la bandera ADIF.
7.- Para una nueva conversión regresar al paso 1 o al 2: El tiempo de
conversión por bit está definido por TAD (inverso de la frecuencia asignada
por los bits ADECS1 y ADCS0 del registro ADCON0). Por exigencias de
Microchip se debe esperar un mínimo de 2xTAD para reiniciar una nueva
conversión.
Explica Angulo (2.000) que “si se elige como reloj para la conversión al
oscilador RC interno del conversor A/D, éste puede seguir funcionando
cuando se introduce el microcontrolador al modo de reposo o SLEEP. En los
113
restantes modos, se aborta la conversión y se desactiva el conversor A/D” (p.
134). En el ejemplo 2 se ofrece un programa general para el manejo del
convertidor A/D.
24. MODULO DE COMUNICACIONES SERIE SINCRONA: MSSP
Este módulo permite la comunicación de forma serial síncrona del
microcontrolador con otros microcontroladores y diversos periféricos como
memorias EEPROM serie, los convertidores A/D, los controladores de
display, etc. El módulo MSSP permite dos alternativas de comunicación serie
síncrona: SPI (Serial Peripheral Interface) y I2C ( Inter-Integrated Circuit).
El módulo MSSP consta básicamente de dos registros: el SSPSR, que es
un registro de desplazamiento que transforma la información serie en
paralelo y viceversa, y el registro SSPBUF, que actúa como buffer de la
información que se recibe o transmite.
El funcionamiento de este módulo es el siguiente (ver la figura 5): En
transmisión, el byte que se quiere transmitir se carga en el registro SSPBUF
a través del bus de datos interno y automáticamente se traspasa al registro
SSPSR, que va desplazando bit a bit y a una frecuencia asignada el dato.
En recepción , los bits van entrando de la misma forma que en la transmisión
y van cargando el registro SSPSR, al llenarse éste la información se traspasa
al registro SSPBUF, donde queda lista para su lectura.
114
FIGURA 5
Estructura básica del módulo MSSP. Fuente: Angulo (2.000).
Modo SPI:
Permite la transferencia de datos de 8 bits en serie, que pueden ser
transmitidos y recibidos de forma síncrona y simultánea. Para el
establecimiento de comunicación se utilizan tres líneas: SDO (Serial Data
Out) que es la línea por donde se transmiten los datos, SDI (Serial Data In)
que es la línea por donde se reciben los datos y SCK (Serial Clock) que es la
línea por donde se transmite o recibe el reloj de sincronización. En caso de
8 8
8
ENTRADA DE BITS DE DATOS
SALIDA DE BITS DE DATOS
SINCRONISMO DE RELOJ
LECTUR ESCRITURA
SSPBUF
SSPSR
BUS INTERNO DE
MSB LSB
115
RA5/SS SDI SDO CLK
RA5/SS SDI SDO CLK
que el PIC funcione como esclavo se utiliza una cuarta línea: SS´ que es
conectada en tierra. En la figura 6 se presenta el diagrama de conexión entre
un PIC maestro y dos esclavos para efectuar una comunicación en modo
SPI.
FIGURA 6
PIC ESCLAVO 1 PIC ESCLAVO 2
SS SS
PIC MAESTRO
RC3/SDO SDO
RC4/SDI SDI
RC5/SCK SCK
Comunicación SPI entre un PIC maestro y otros dos esclavos. Fuente:
Angulo (2.000).
Al comenzar el funcionamiento en el modo SPI, es necesario establecer
las condiciones de trabajo programando adecuadamente los bits del registro
SSPCON SSPSTAT, para determinar las siguientes especificaciones:
1.- Si el PIC trabaja en modo maestro, la línea de reloj SCK debe ser
salida.
116
2.- Si el PIC trabaje en modo esclavo, la línea de reloj SCK debe ser
entrada.
3.- Hay que determinar la polaridad de la señal de reloj, es decir, su estado
de inactividad.
4.- Se debe precisar el momento en el que se toma la muestra del dato de
entrada, que puede ser en la mitad o al final del impulso.
5.- Flanco de reloj activo que puede ser ascendente o descendente de
SCK.
6.- Rango de trabajo del reloj en el modo maestro.
7.- Selección del modo esclavo, en caso de trabajar de esta forma.
Modo I2C:
El protocolo I2C utiliza únicamente dos líneas para la transferencia de
información entre los elementos que se acoplan al bus. Una de dichas líneas
es SDA, la cual es bidireccional y se dedica a transmitir y recibir los datos; la
otra línea es SCL y se encarga de transmitir o recibir la sincronización, ésta
es solo unidireccional (ver la figura 7). Cada dispositivo se identifica por una
única dirección y puede transmitir o recibir dependiendo de la operación que
se vaya a realizar.
Explica Angulo (2.000) sobre este modo que “Los dispositivos
pueden clasificarse en maestro(master o principal) o esclavo (slave o
secundario). El maestro inicia la transferencia de datos y genera la señal de
reloj. Cualquiera de los dispositivos diseccionados por un maestro se
117
considera un esclavo”. El I2C es un bus multi-maestro; puede haber más de
un maestro conectado y controlando el bus.
La comunicación en el modo I2C se realiza de la siguiente forma: Cada
transferencia comienza con la condición de inicio (star) y termina con la
condición de parada (stop). Ambas condiciones las genera el maestro, y la
primera consiste en un flanco descendente en SDA mientras SCL tiene nivel
alto. La condición de parada es un flanco ascendente mientras SCL tiene
nivel alto.
Los datos que se colocan sobre la línea SDA son bytes de 8 bits, que
comienzan con el MSB y terminan con el bit de menos peso, al cual sigue en
el noveno bit la condición de Reconocimiento (ACK). Para este caso, el
transmisor pone SDA = 1, mientras que el receptor pone SDA = 0 en dicho
impulso de reloj, prevaleciendo sobre la línea el nivel bajo.
El primer byte que envía el maestro tras la condición de inicio contiene la
dirección del esclavo con el que se desea realizar la comunicación. El código
0 se usa para realizar una “llamada general” sobre todos los esclavos. La
dirección en realidad consta de 7 bits, estando el octavo a indicar la
operación a realizar (R/W´: Lectura/Escritura´). Tras ese byte inicial de
direccionamiento se envía otro byte que especifica las características de la
operación a realizar.
Hay seis registros que se utilizan para el control del bus I2C: SSPCON,
SSPCON2, SSPSTAT, SSPBUF, SSPSR y SSPADD.
118
A continuación, se describe la secuencia de pasos que hay que realizar
en una transmisión del maestro:
1.- El usuario genera la condición de inicio, poniendo SEN = 1 (registro
SSPCON2).
2.- Se pone SSPI = 1 (registro PIR1). El módulo esperará que finalice la
operación de inicio antes de empezar otra.
3.- Se carga en SSPBUF la dirección del esclavo a transmitir.
4.- Se saca por SDA la dirección del esclavo.
5.- El esclavo genera el bit de reconocimiento ACK y en el maestro se
escribe en el bit 6 del registro SSPCON2.
6.- Se genera una interrupción al final del noveno impulso de reloj y
SSPIF = 1.
7.- El usuario carga en SSPBUF un dato de 8 bits.
8.- Se transmiten los bits por la línea SDA.
9.- Se recoge el bit de reconocimiento del esclavo y se escribe el bit
ACKSTAT de SSPCON2.
10.- El módulo genera una interrupción en el noveno impulso de reloj y pone
SSPIF = 1 (registro PIR1).
11.- Se genera la condición de parada con PEN = 1 en SSPCON2.
12.- Una vez completada la condición de parada, se genera una
interrupción.
119
25.- MODULO USART:
Este módulo permite la comunicación de forma serial síncrona y
asíncrona, a diferencia del módulo MSSP que sólo permite la forma síncrona.
El módulo USART puede además funcionar como un sistema full duplex o
bidireccional asíncrono. En la figura 8 se observa un esquema del
comportamiento del USART en modo asíncrono y síncrono. En el modo
asíncrono, la transferencia de información se realiza mediante las líneas Tx
(transmisión) y Rx (recepción) a una frecuencia controlada internamente por
el USART. En el modo síncrono, la comunicación se realiza mediante las
líneas DT que traslada en los dos sentidos los bits y CK que transmite los
impulsos de reloj.
FIGURA 17
MODO ASINCRONO
RECEPCION
PERIFERICO
TRANSMISOR RC6/TX/CK RECEPTOR RC7/RX/DT
TRANSMISIO
120
MODO SINCRONO
RELOJ
DATOS
PIC MAESTRO PIC ESCLAVO
Diagrama de bloque de la comunicación en forma serial síncrona y asíncrona
del USART . Fuente: A ngulo (2.000).
Para realizar la comunicación en forma asíncrona el programador debe
asignar al USART la frecuencia en baudios (bits por segundo) a la que
realizará la transferencia de datos.
La frecuencia se calcula mediante la formula:
Frecuencia en Baudios = Fosc/Kx(X+1)
Donde X es el valor cargado en el registro SPBRG y K = 64 en baja
velocidad (si se coloca el bit BRGH = 0) o 16 en alta velocidad (si BRGH =
1).
La comunicación asíncrona se realiza del siguiente modo: el dato que se
desea transmitir por el USART transmisor se deposita en el registro TXREG y
a continuación se traspasa al registro de desplazamiento TSR, que va
sacando los bits secuencialmente por la pata R6/TX/CK y a la frecuencia
RELOJ RC6/TX/CK RECEPTOR RC7/RX/DT
RELOJ RC6/TX/CK DATOS RC7/RX/DT
121
establecida. Antes de enviar los datos de información, el USART envía al
receptor un bit de INICIO, y al finalizar de enviar toda la información añade
un bit de PARADA. El USART receptor recibe, uno a uno, los bits por la pata
RC7/RX/DT, elimina los bits de INICIO y PARADA y los de información una
vez que llenan el registro de desplazamiento RSR los traslada
automáticamente al registro RCREG, donde quedan disponibles para su
posterior procesamiento.
Los pasos a seguir para implementar una transmisión serial en modo
asíncrono en el USART es la siguiente:
1.- Se debe configurar las líneas RC6/TX/CK como salida y RC7/RX/DT
como entrada.
2.- Se coloca SYNC (registro TXSTA) = 0 y SPEN (registro TXSTA) = 1
para activar el USART en modo asíncrono.
3.- Si se desea trabajar con interrupción, se coloca TXIE (registro PIE1)
= 1, además de habilitar las interrupciones en general.
4.- Si el dato consta de 9 bits, colocar el bit TX9 (registro TXSTA) = 1. El
noveno bit se colocará en TX9D (registro TXSTA). Cuando un procesador
maestro intenta enviar información a uno de los esclavos el noveno bit que
envía es 1 para dar a conocer que el byte transmitido pertenece a la
dirección de uno de éstos.
5.- Se carga el valor X adecuado en el registro SPBRG, para producir la
frecuencia de trabajo deseada. Se debe controlar el bit BRGH (alta o baja
velocidad).
122
6.- Activar la transmisión con TXEN (registro TXSTA) = 1. El bit TXIF
(registro PIR1) tendrá el valor 1, ya que TXREG se encuentra vacío.
7.- Cargar en TXREG el dato a transmitir. Comienza la transmisión.
Para la configuración del USART receptor se deben cumplir estos pasos:
1.- Cargar con el valor X al registro SPBRG, para trabajar a la misma
frecuencia del transmisor, controlar además el bit BRGH.
2.- Habilitar el USART en modo asíncrono con SPEN = 1 y SYNC = 0.
3.- Si se desea que se genere una interrupción con la llegada del bit
PARADA, se debe colocar RCIE (registro PIE1) = 1, además de habilitar las
interrupciones en general.
4.- Colocar RX9(registro RCSTA) = 1 para permitir la recepción del bit 9.
5.- Para detectar la dirección, colocar ADDEN (registro RCSTA) = 1.
6.- Se habilita la recepción colocando CREN (registro RCSTA) = 0.
7.- Al completarse la recepción RCIF (registro PIR1) se colocará en 1 y
se producirá una interrupción si ésta es habilitada.
8.- Leer el registro RCSTA y averiguar si se ha producido algún error.
9.- Leer los 8 bits del registro RCREG para determinar si el dispositivo ha
sido el direccionado.
10.- Si se ha producido algún error, colocar CREN (registro RCSTA) = 0,
para deshabilitar la recepción continua.
11.- Si ha sido direccionado el dispositivo, colocar ADDEN = 0 para
permitir la recepción de la información.
123
En el ejemplo 3 se diseña un programa para configurar el USART como
transmisor.
26.- RECURSOS FUNDAMENTALES DEL MICROCONTROLADOR PIC-
16F877.
Palabra de configuración: La palabra de configuración es una posición de
la memoria de programa situada en la dirección 2007 H y accesible
únicamente durante el proceso de grabación. En el momento de escribir el
programa de aplicación en el microcontrolador es necesario grabar el
contenido de esta posición de acuerdo a las características del sistema. La
distribución y asignación de los 14 bits de la palabra de configuración y su
respectiva función se muestra en la tabla 32.
TABLA 32
13 0
CP1 CP0 DEBUG –– WRT CPD LVP BODEN CP
1
CP
0
PWRTE# WDTE FOSC1 FOSC0
Palabra de Configuración. Fuente: Angulo (2000).
CP1 Y CP0: Código de protección de la memoria de programa (véase la
tabla 33):
124
TABLA 33
CP1 CP0 PROTECCIÓN DESDE... ...HASTA
0 0 0000H 1FFFH
0 1 1000H 1FFFH
1 0 1F00H 1FFFH
1 1 No hay código protegido en la memoria Flash
Asignación de la porción de memoria que se desea proteger. Fuente: Angulo
(2.000).
DEBUG: Modo depurador del circuito:
1 : Desactivado. RB7:RB6 actúan como líneas de E/S.
0 : Activado. RB7:RB6 actúan en modo depurador.
WRT: Permiso de escritura en la memoria flash.
1 : Se puede escribir en la parte no protegida de la memoria FLASH.
0 : Prohibición de escritura.
CPD: Código de protección de la memoria EEPROM de datos.
1 : No hay protección en la EEPROM.
0 : Protección del código en la memoria EEPROM.
LVP: Bit de permiso para programación en bajo voltaje.
1 : RB3/PGM tiene permitida la grabación en bajo voltaje.
0 : RB3/PGM funciona como E/S digital. La programación se realiza en
alto voltaje.
BODEN: Bit de permiso para el reset por caída de tensión:
125
1 : BOR activada.
0 : BOR desactivada.
PWRTE#: Activación del temporizador «POWER-UP».
El temporizador «power-up» retrasa 72 ms la puesta en marcha o Reset
que se produce al conectar la alimentación al microcontrolador, con el fin de
garantizar la estabilidad del voltaje aplicado.
1 : Desactivado.
0 : Activado.
WDTE: Activación del perro guardián.
1 : Activado el WDT.
0 : Desactivado.
FOSC1 – FOSC2: Selección del oscilador utilizado:
1-1 : Oscilador RC.
1-0 : Oscilador HS.
0-1 : Oscilador XT.
0-0 : Oscilador LP.
• El Modo Reposo o de Bajo Consumo: Este es un modo de
funcionamiento del PIC que permite reducir el consumo de energía que
requiere y es ampliamente recomendado para las aplicaciones en las que
existe un largo tiempo de espera por parte del microcontrolador hasta que
ocurra un suceso asíncrono, como por ejemplo, la pulsación de una tecla. En
dichos períodos el microcontrolador permanece inactivo. Para entrar en el
modo de reposo es necesario ejecutar la instrucción SLEEP, colocando de
126
esta forma al sistema en el estado de «congelado», requiriendo un mínimo
suministro de energía para mantener el estado del procesador sin ninguna
actividad, el consumo típico del PIC según Angulo (1999) es “de 2 mA,
aproximadamente, reduciéndose a menos de 10 µA en el modo Reposo, lo
que permite alimentarle con una pequeña pila durante casi dos años”, (p.
129), en otras palabras, en el modo de funcionamiento normal del PIC el
consumo de corriente es de aproximadamente 2 mA, y en el modo de
Reposo, esta corriente se reduce a 10 µA, lo cual es muy por debajo de su
valor típico.
Para salir del estado de Reposo existen tres alternativas:
a) Activación externa del MCLR’ para provocar un RESET.
b) Desbordamiento del Perro Guardián si quedó operativo en el modo
reposo.
c) Generación de una interrupción por activación del pin RB0/INT o por
cambio de estado en los 4 pines de más peso en el puerto B.
27.- TIPOS DE CONVERTIDORES ANALÓGICO / DIGITALES:
Dado que el numero de bits que se obtienen de un convertidor es finito, el
código de salida deberá ser siempre el correspondiente al valor mas cercano
que puede representarse mediante los bits, la conversión digital efectúa una
cuantificación en la entrada analógica, acotándola entre dos niveles
127
consecutivos cuya distancia es precisamente el grado de resolución
obtenido.
Existen diversos tipos de convertidores en igual forma utilizados para
efectuar la conversión, en unos casos se efectúa la conversión directa, por
comparación contra una tensión de referencia, en otros casos se efectúa una
transformación a una variable intermedia, como puede ser el tiempo, también
puede efectuarse la conversión AD efectuando una conversión inversa DA,
usando al mismo tiempo una estructura de retroalimentación, si se usa lazo
cerrado reciben entonces el nombre de servoconvertidores, según sea el
método utilizado se obtienen distintas características de precisión, rapidez de
conversión y costo.
El convertidor analógico/digital usado en la presente investigación esta
internamente integrado en el PIC16F877.
28. VISUALIZADOR DE CRISTAL LIQUIDO (LCD):
El visualizador de cristal liquido (LCD) es un periférico de salida capaz de
visualizar caracteres alfanuméricos y caracteres especiales como signos de
puntuación y símbolos. El LCD tiene incrustado un microcontrolador
especifico que se encarga de procesar la informacion recibida y luego
visualizar los datos.
128
El LCD usado en la presente investigación presenta los caracteres en una
matriz de 5 X 7 pixels y tiene la posibilidad de visualizar dos líneas de 16
caracteres cada una. Dispone de 14 terminales de conexionado, cuya misión
es la siguiente:
- D0-D7: reciben los caracteres ASCII a representar, asi como
ciertos códigos de control que regulan los efectos de
visualización. También por ellos, el modulo LCD envía
información sobre su estado interno.
- Vdd y Vss: son las terminales donde se aplica la alimentación
de + 5V y tierra respectivamente.
- Vo: esta terminal regula el contraste de la pantalla de cristal
liquido al aplicarle, mediante un potenciómetro, una tensión
variable comprendida entre 0 y + 5V.
- E: esta terminal en conjunto con R/W’ y RS controla las
funciones principales del modulo. Si E = 0, el modulo esta
desactivado y no funcionan las restantes señales.
- R/W’: esta terminal asigna la función de lectura o escritura del
modulo. Si R/W’ = 0, se escribe el modulo, y si R/W’ = 1, es
leído.
- RS: esta terminal selecciona el registro de control cuando RS
= 0, o de datos cuando RS = 1. Por D0-D7 se transfiere
información de control-comandos o datos de caracteres a
escribir.
129
El modulo LCD responde a una serie de comandos con los que se pueden
gobernar sus distintas opciones de trabajo y que puede enviarle el
PIC16F877 por las líneas D0-D7 cuando RS = 0 y R/W’ = 0, para trabajar en
modo escritura. En la tabla 34 se muestra la información de los comandos y
los códigos correspondiente.
TABLA 34
COMANDO RS R/W’ E
DB7
DB6
DB5
DB4
DB3
DB2
CLEAR DISPLAY 0 0 1 0 0 0 0 0 0
HOME 0 0 1 0 0 0 0 0 0 ENTRY MODE SET 0 0 1 0 0 0 0 0 1
DISPLAY ON/OFF 0 0 1 0 0 0 0 1 D CURSOR DISPLAY
SHIFT 0 0 1 0 0 0 1 S/C R/L FUNCTIO
N SET 0 0 1 0 0 1 DL N F
SET CGRAM
ADDRESS 0 0 1 0 1 DIRECCIÓN DE
LA CGRAM SET
DDRAM ADDRESS 0 0 1 1
DIRECCIÓN DE LA DDRAM
READ BUSY FLAG
ADDRESS 0 0 1 BF DIRECCIÓN DE LA CGRAM O DDRAM
130
WRITE DATA TO
DATA CGRAM O
DDRAM 0 0 1 CÓDIGO ASCII PARA LA
RAM
READ DATA TO CGRAM O
DDRAM 0 0 1 CÓDIGO ALMACENADO
EN RAM
Códigos de los comandos a los que corresponde el modulo LCD.
Fuente: Angulo (1.999, p.261).
La función de cada comando se describe a continuación:
CLEAR DISPLAY: borra la pantalla del módulo LCD y coloca al cursor
en la primera posición, que es la dirección 0. Por defecto pone el bit I/D = 1
para autoincremento de la posición del cursor.
HOME: pone el cursor en la dirección 0. No varía el contenido de la
memoria DDRAM que guarda los datos y que queda direccionada desde la
posición 0.
ENTRY MODE SET: establece la dirección del movimiento del cursor
(I/D); si se pone a uno el bit S, desplaza la visualización cada vez que se
escribe un dato. Si S = 0, la presentación es la normal.
DISPLAY ON/OFF CONTROL: activa o desactiva al display (D) y al
cursor (C), determina si este parpadea o no.
CURSOR DISPLAY SHIFT: mueve el cursor y desplaza la
131
visualización sin cambiar el contenido de la memoria DDRAM.
FUNCTION SET: establece el número de líneas de la interfaz con el
bus de datos, siendo habitual que sea de 8 bits, con lo que DL = 1. Especifica
el número de líneas de caracteres, que para que sean 2 se debe colocar N =
1, y el formato de carácter es de 5x7 pixels, si F = 0.
SET CGRAM ADDRESS: el módulo LCD tiene definido los caracteres
ASCII, pero, además, permite que usuario pueda definir 9 caracteres nuevos.
Estos se guardan en la memoria CGRAM de 64 bytes. Cada carácter está
especificado con un número de bytes comprendido entre 6 y 16, según su
complejidad. Dichos bytes se almacenan en las posiciones sucesivas de la
CGRAM.
SET DDRAM ADDRESS: establece la dirección de la DDRAM a partir
de la cual todos los datos que se lean o escriban posteriormente lo harán
desde esa posición. Los 16 caracteres del primer renglón ocupan las
direcciones 80H–8FH, y los del segundo desde la C0H–CFH.
READ BUSY FLAG ADDRESS: se trata de un comando para la
lectura del flag busy indica si todavía se está ejecutando un comando previo
en el módulo LCD. Además, proporciona la dirección de la CGRAM o
DDRAM que se halla utilizado la última vez.
WRITE DATA TO CGRAM O DDRAM: se escriben en la DDRAM los
datos (caracteres ASCII) que se quieren visualizar. También se escriben en
la CGRAM los bytes de los nuevos caracteres creados por el usuario. Se usa
una memoria u otra según halla sido la instrucción de direccionamiento
132
previa, que hará que se refiera a la CGRAM o a la DDRAM.
READ DATA TO CGRAM O DDRAM: igual que el comando anterior,
pero en esta ocasión en una operación de lectura.
El significado de los bits de la tabla 34 es el siguiente:
v S: si vale 1, desplaza la visualización cada vez que se escribe un dato.
Si vale 0, funciona en modo normal.
v I/D: si vale 1, se incrementa la dirección del cursor; si vale 0, se
decrementa.
v S/C: si vale 1, desplaza la visualización; si vale 0, se desplaza el
cursor.
v R/L: si vale 1, el desplazamiento es a la derecha; si vale 0, a la
izquierda.
v BF: si vale 1, el módulo LCD está ocupado; si vale 0, está disponible.
v DL: si vale 1, se trabaja con un bus de datos de 8 bits; si vale 0, con
bus de 4 bits.
v N: si vale 1, la presentación se hace en dos líneas; si vale 0, en una.
v F: si vale 1, el carácter es de 5x10 pixels; si vale 0, de 5x7.
v B: si vale 1, hay parpadeo del cursor (si está en ON).
v C: si vale 1, el cursor está activado (ON).
v D: si vale 1, la pantalla está activada.
v X: indeterminado.
133
B.- DEFINICIÓN DE TÉRMINOS BÁSICOS
Ø Sistema: se refiere generalmente a todos los componentes de
control incluyendo el proceso, la medición, el controlador y el operador
de válvula junto con otros equipos adicionales que pueden contribuir a
la operación (Russel, 1978).
Ø CPU: unidad central de procesamiento incluye al procesador y a la
memoria principal de un computador, aunque puede referirse solo
como el procesador, en el caso de los microprocesadores
(Freedman,1986).
Ø Transmisión: instrumento capaz de detectar una variable en un
proceso mediante en elemento primario de medición y dar una salida
cuyo valor es equivalente y proporcional a la variable detectada (S.
Haykin, 1985)
Ø Traductor: un dispositivo que, bajo la influencia de una variación de
energía produce una correspondiente variación de nivel de otra forma
de energía instrumento capaz de convertir una señal neumática a
eléctrica viceversa (Freedman, 1986).
Ø Señal de salida digital: designa la señal de salida de instrumento
que representa la magnitud de la variable medida en forma de una
134
serie de cantidades discretas codificadas en un sistema de notación
(Guerrero, 1996).
Ø Señal de salida analógica: representa la señal de salida del
instrumento. Es una función continua de la variable medida(Guerrero
1996).
Ø Señal de entrada: aquella que entra en el instrumento de medida,
unidad de control o sistema (S. Haykin 1985).
Ø Proceso industrial: consiste en una operación o series de
operaciones en las cuales se agrega o sustrae energía en algunas de
sus formas para mantenerlo en estado de balance o equilibrio
(Mollemkamp, 1990).
C.- SISTEMA DE VARIABLES
El sistema de variable de esta investigación la conforman: Simulador de
proceso, medición y control .
Sistema de variable (definición conceptual)
Simulador de proceso: Es la representación grafica de modelos matemáticos
que emulan las operaciones unitarias que ocurren en el.
Sistema de variable (definición Operacional)
Un simulador de proceso es la técnica que consiste en emplear un
modelo para tratar de identificar y/o reflejar el comportamiento de un sistema
real, en tal caso el sistema de simulación es una estrategia de prueba y error
135
para resolver problemas que resultan muy útil en la planificación. Belove,
1990.
Sistema de variable (definición conceptual)
Medición y control de nivel: según Costello (1979). Son aquellas donde la
entrada o salida (Nivel), es constante o varia lentamente en el tiempo, y
donde la tarea fundamental es mantener la salida en el valor deseado a
pesar de las perturbaciones presentes del sistema. El control de esta variable
es de gran importancia en los procesos industriales, ya que nos permite
determinar el balance adecuado de materias primas o de productos finales y
puntos óptimos de operación.
Sistema de variable (definición Operacional)
Un sistema de medición de nivel es aquel que proporciona
información constante sobre la cantidad de liquido existente dentro de un
envase. Este sistema es utilizado cuando se necesita conocer con exactitud
un determinado valor en cualquier momento.
Básicamente estos sistemas, están conformados por el elemento
medidor y una electrónica la cual permite mostrar la lectura.
Al integrarse a un sistema mayor y unidos efectúan un control de un
determinado proceso.