DERECHOS RESERVADOS

Anuncio
REPÚBLICA BOLIVARIANA DE VENEZUELA
UNIVERSIDAD RAFAEL URDANETA
FACULTAD DE INGENIERIA
ESCUELA DE COMPUTACIÓN
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
DESARROLLO DE UN SISTEMA DE
INFORMACIÓN PARA EL CONTROL DE RIEGO
DE PASTOS EN HACIENDAS GANADERAS
Trabajo Especial de Grado para optar al Título de Ingeniero en Computación
Bachilleres:
Borhot Hamoud, Agadir
C.I. 14.945.647
Romero Sandoval, Adalberto
C.I. 13.471.014
Tutor:
Ing. Nerio Villalobos
JULIO, 2002
i
Este Jurado aprueba el Trabajo Especial titulado DESARROLLO DE
UN SISTEMA DE INFORMACIÓN PARA EL CONTROL DE RIEGO DE
PASTOS EN HACIENDAS GANADERAS, que los Bachilleres Borhot
Hamoud, Agadir y
Romero Sandoval, Adalberto presentan para optar al
S
O
D
VA
R
E
S
Título de Ingeniero en Computación.
E
R
S
HO
EC
R
E
D
Maracaibo, Julio del 2002
……………………………….
Tutor
……………………………….
……………………………….
……………………………….
……………………………….
ii
DEDICATORIA
Primeramente a Dios, por guiarme y darme la ley para conseguir mis
metas, a la Virgen de Betania, por darme esa fé que nunca perdí.
S
O
D
VA
R
E
S
E
R
S
HO
A mis Padres, por ser pilares fundamentales en mi crecimiento como
EC
R
E
D
ser humano; gracias por tanto amor y sobre todo por orientarme hacia el
buen camino, y desarrollar en mí el respeto y amor hacia los demás.
A ti Mami, por ser ejemplo de constancia y fuerza de voluntad,
luchando siempre con las adversidades, dándome la ternura y la paciencia
que siempre recibí de ti.
A ti Papá, por mostrarme lo bueno, lo malo y confiar tanto en mi.
A mis Hermanas y Hermanos, por estar siempre conmigo y ser
incondicionales en todos los momentos importantes de mi vida.
A ti Lala; mi mejor amiga por soportarme y ser algo más que mi
hermana; mi apoyo y mi fuerza cuando sentí que decaía. Te quiero Mucho!!.
iii
A ti, porque a lo largo de estos años me has brindado felicidad y
alegrías que se transformaron en sonrisas que cultivé y que lograron
despertar en mí el deseo de ser cada vez mejor.
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
iv
Agadir.
DEDICATORIA
A Dios, mi señor y creador omnipotente, por hacer de mí lo que hoy
soy.
S
O
D
RVAmi sendero.
A mí siempre madre Virgen María,S
por
iluminar
E
E
R
S
HO
C
E
DER
A mis seres amados: Mis Padres y Hermanas, que siempre me
apoyaron y estuvieron conmigo en todo momento.
Adalberto.
v
AGRADECIMIENTO
Agradezco infinitamente a Dios por todas las cosas que me ha dado.
S
O
D
VA
R
E
S
A mis Padres; por haberme ayudado a ser hoy lo que soy, por
E
R
S
HO
educarme y quererme tanto, gracias los amo.
EC
R
E
D
A mis Hermanas y Hermanos por apoyarme y aconsejarme con tanto
cariño, gracias por haber confiado en mí.
A ti Lala; por ser mi confidente y mi mejor amiga.
A ustedes; Omar y Adnen, por ser parte de mi carrera y por estar a mi
lado en todo momento.
A mis Cuñadas, por escuchar siempre mis problemas y por ser mis
grandes amigas; en especial a Badia por quererme como si fuese su hija, y
por brindarme su hogar para poder alcanzar esta meta. Gracias de verdad.
A mis Sobrinas y Sobrinos, por ser tan dulces y tiernos conmigo, en
especial a mi sobrina Abir por estar siempre a mi lado.
vi
A mis Profesores; en especula al Ing. Nerio Villalobos por enseñarme
lo que sé y ser ese gran amigo. Al Prof. Pedro Méndez por ayudarme en los
primeros pasos de mi carrera. Al Ing. Víctor Galban, por ser tan comprensible
conmigo. A la Prof. Betilia Ramos, por brindarme su gran ayuda en la
elaboración de mi tesis.
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
A mis mejores Amigas: Cristina Mango; Erika Moreno; Mariana Duarte;
Angela Vargas; Moraima Pérez; Eyirda Sánchez, gracias por esa ayuda y los
momentos hermosos que hemos vivido.
A mis amigas y compañeras: Yenis Ibáñez, Walqueria Romero, Meyla
Lisboa, Edilsa Morán, Yenipher Martínez, Lisnora Quiroz, Edilma Sánchez,
Rosita Mauzo, Yunis García, Irene Reyes, Solaine Villalobos, Roxymar
Martínez, Aura Durán, Mary Chacín, María Albertina, María Valencia, Mary
Rincón, Maryory Urdaneta.
A mis mejores Amigos y Compañeros: Kenny Ferreira por brindarme
siempre su alegría y paciencia. Adalberto Romero, por haber compartido este
proyecto conmigo. Roberto Machado, por ser mi amigo incondicional, a
Darwin Bonilla, Luis Longard, Marcos Palmar, Reinier Rodríguez, Alberto
Ortega, Like Rincón, Rubén Martínez, Elio Cuevas, Aldrin Vilchez, Hebert
Lisboa, Idelmiro Ferrer, Alfonzo Chacín, Luis M. Urdaneta, Ernesto Martínez,
vii
Jean Carlos, Darío Méndez, Argenis Corzo, Ivan Piacuda, José Fuenmayor,
Eduardo, Gregorio, Rafael Zuleta, Alonzo, Carlos Piña, Víctor Romero, Jesús
Peralta, Jesús Brito… Mil gracias a todos!
S
O
D
VA
R
E
S
Y finalmente, a todos aquellos que a través de su apoyo y ejemplo
E
R
S
HO
contribuyeron a el logro de esta meta.
EC
R
E
D
Agadir.
viii
AGRADECIMIENTO
A mis padres, mis grandes tesoros sobre la tierra; por hacer suyas mis
S
O
D
VA
R
E
S
preocupaciones y mis ideales.
E
R
S
O por apoyarme siempre.
A mis hermanas yH
sobrinos,
C
E
DER
A mi novia, puesto que su lucha porque desistiera de mi ideal,
fortaleció mi empuje y entrega para la culminación de mi proyecto.
A todas aquellas personas que me animaron en momentos difíciles, a
mis amigos y compañeros de estudio.
¡Mil Gracias!
Adalberto.
ix
RESUMEN
Borhot A., Agadir; Romero S., Adalberto E. DESARROLLO DE UN
SISTEMA DE INFORMACIÓN PARA EL CONTROL DE RIEGO DE
PASTOS EN HACIENDAS GANADERAS. Trabajo Especial de Grado para
optar al Título de Ingeniero en Computación. Universidad Rafael
Urdaneta. Julio 2002
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
Los sistemas de riego han sido de gran ayuda para el sector ganadero, ya
que permiten tener un pasto verde en tiempo de sequía y verano. La
siguiente investigación tiene como objetivo implementar un sistema
programable de riego para pastos en haciendas ganaderas. Se realizó un
análisis de los sistemas de riego existentes en el mercado en donde se pudo
constatar la poca efectividad de los mismos. Posteriormente se realizó un
sistema de información para el control de riego de pastos con la finalidad de
hacer un trabajo más fácil al momento de la utilización de dicho sistema en
las haciendas ganaderas. El sistema diseñado es amigable para el usuario,
debido a que su operación es sencilla, además el sistema desarrollado posee
un bajo costo, resultando atractivo para los ganaderos. Este sistema cubre
una gran necesidad por parte de los ganaderos debido a que permiten
trabajar por tiempo y de manera sencilla la actividad de riego.
Palabras Claves: Sistema, Riego, Programable, Información, Control,
Haciendas.
x
INDICE GENERAL
Pág.
VEREDICTO………………………………………………………………..
ii
DEDICATORIA…………………………………………………………….
iii
AGRADECIMIENTO……………………………………………………….
vi
RESUMEN………………………………………………………………….
x
INDICE GENERAL…………………………………………………………
xi
INTRODUCCIÓN………………………………………………………….
1
CAPÍTULO I: EL PROBLEMA……………………………………………
4
1. PLANTEAMIENTO DEL PROBLEMA………………………………..
4
1.1. FORMULACIÓN DEL PROBLEMA……………………………..
6
2. OBJETIVOS DE LA INVESTIGACIÓN………………………………
6
2.1. OBJETIVO GENERAL……………………………………………
6
2.2. OBJETIVOS ESPECÍFICOS…………………………………….
6
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
3. JUSTIFICACIÓN E IMPORTANCIA DE LA INVESTIGACIÓN…….
7
4. DELIMITACIÓN DE LA INVESTIGACIÓN……………………………
8
CAPÍTULO II: MARCO TEÓRICO………………………………………..
10
1. ANTECEDENTES……………………………………………………….
10
2. FUNDAMENTACIÓN TEÓRICA……………………………………….
15
xi
Pág.
3. DEFINICIONES DE TÉRMINOS BÁSICOS…………………………..
22
CAPÍTULO III: MARCO METODOLÓGICO………………………………
27
1. TIPO DE INVESTIGACIÓN……………………………………………..
27
2. METODOLOGÍA…………………………………………………………
28
3. FACTIBILIDAD DEL PROYECTO……………………………………..
30
3.1. FACTIBILIDAD TÉCNICA…………………………………………
30
3.2. FACTIBILIDAD ECONÓMICA…………………………………….
31
CAPÍTULO IV: ANÁLISIS DE LOS RESULTADOS……………………..
33
CAPÍTULO V: MANUAL DEL USUARIO………………………………….
40
CONCLUSIONES……………………………………………………………
43
RECOMENDACIONES………………………………………………………
45
REFERENCIAS BIBLIOGRÁFICAS………………………………………
47
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
ANEXOS.
xii
INTRODUCCION
Los sistemas de riego resultan una herramienta imprescindible a nivel
mundial, en el caso de Venezuela, estos tienen un lugar muy importante para
el Agro y la Ganadería en todo el país.
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
De este modo, el presente trabajo especial de grado dirige su
investigación en implementar un sistema programable de riego para pastos
en haciendas ganaderas..
El contenido se desarrolla en cinco capítulos: Capítulo I refiere al
planteamiento y formulación del problema, la justificación, los objetivos y
delimitación de la investigación.
Por su parte, el Capítulo II desarrolla el Marco Teórico, exponiendo los
antecedentes, fundamentaciones teóricas y definición a los términos básicos.
El Capítulo III, refiere los lineamientos metodológicos seguidos en el
estudio. Adicionalmente se hace referencia a las herramientas utilizadas para
la realización del sistema propuesto de riego.
xiii
El Capítulo IV, trata sobre los resultados obtenidos con su
correspondiente análisis y explicación.
El Capítulo V, se refiere sobre el Manual del Usuario para el Sistema
de Riego Programable.
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
Por último se exponen conclusiones del trabajo aportándose una serie
de recomendaciones.
xiv
CAPÍTULO I
EL PROBLEMA
S
O
D
VA
R
E
S
E
R
S
HO
1. PLANTEAMIENTO DEL PROBLEMA.
EC
R
E
EnDla actualidad, los sistemas de riego existentes a nivel mundial,
específicamente en Venezuela, abarcan un lugar importante dentro del Agro
y la Ganadería.
Estos sistemas de riego han sido de gran ayuda para el sector
ganadero, ya que permiten tener un pasto verde en tiempo de sequía y
verano. Pero se han presentado ciertos inconvenientes en el manejo de
estos sistemas y que son operados manualmente por una persona, que no lo
realiza de la manea más eficiente ocasionando inexactitud en el suministro
de agua, por no tener un patrón que indique la cantidad de flujo (agua)
necesaria para obtener un regado que estimule la producción del pasto.
En ocasiones el operador sobrepasa el nivel en los potreros y otras
veces lo deja en niveles muy bajos lo que ocasiona perdidas en los cultivos
del pasto.
xv
Esto trae como consecuencia una mala alimentación en el ganado ya
que el pasto constituye la base alimenticia de estos animales. Al no
alimentarse adecuadamente presentan baja producción de leche, trayendo
pérdidas a los ganaderos, ya que ellos obtienen la mayor parte de su
S
O
D
VA
R
E
S
sustento de la venta de la leche; por esta razón es necesario realizar los
E
R
S
HO
sistemas de regado de una forma automatizada, ya que su funcionamiento
EC
R
E
D
depende de un obrero que percibe un salario por la supervisión de este
sistema, el cual no se realiza de una forma adecuada, lo que representa otra
fuga de dinero para los ganaderos.
El hecho de que el regado lo haga una persona, que no lo realiza de la
forma más adecuada, y produce en ocasiones un regado excesivo lo que trae
consigo un derroche de agua.
Esto significa que le está cancelando a una persona que no realiza el
trabajo adecuadamente lo cual significa un gasto no justificado para los
ganaderos, además que este derroche de agua causa que el ganadero deba
costear más dinero (innecesariamente) por el consumo eléctrico de las
bombas, las cuales trabajan tiempos mayores a los debidos.
xvi
1.1. FORMULACIÓN DEL PROBLEMA.
De lo anteriormente expuesto en el planteamiento surge la siguiente
interrogante:
S
O
D
VA
R
E
S
E
R
S
HO
¿Cómo desarrollar un sistema información para el control de riego de
EC
R
E
D
pastos en las haciendas?
2. OBJETIVOS DE LA INVESTIGACIÓN
2.1. OBJETIVO GENERAL.
Implementar un sistema programable de riego para pastos en
haciendas ganaderas.
2.2. OBJETIVOS ESPECÍFICOS.
™ Indagar sobre los sistemas de riego existentes.
™ Estudiar los diferentes microcontroladores existentes en el mercado.
™ Depurar la interacción entre el Software y el Hardware.
™ Seleccionar el microcontrolador adecuado.
™ Implementar un Software que controle las señales del campo.
xvii
™ Verificar el funcionamiento correcto del prototipo desarrollado.
3. JUSTIFICACIÓN E IMPORTANCIA DE LA INVESTIGACIÓN.
S
O
D
VA
R
E
S
En la actualidad los sistemas de riego han adquirido un alto valor en el
E
R
S
HO
agro ya que proporciona beneficios, por esta razón se ve la necesidad de
EC
R
E
D
desarrollar un sistema automatizado que controle las variables a medir.
El desarrollo de este sistema reducirá el trabajo manual al mínimo
logrando un regado eficiente, que permitirá el crecimiento de un pasto apto
para el consumo animal y por ende el aumento de la producción lechera. Por
otra parte, la cantidad de fluido de agua será controlada ya que este sistema
cuenta con un medidor de flujo que evita gastos innecesarios de agua.
Cabe destacar que esta investigación es de gran importancia para los
ganaderos ya que con la automatización de estos sistemas de riego
beneficiamos su producción lechera. Por otra parte estos sistemas son de
fácil instalación y económicos debido a que los materiales se encuentran
disponibles en el mercado, fácil de manejarlos y el mantenimiento es mínimo.
También no será necesario la supervisión permanente del obrero ya que este
sistema controla el regado automáticamente aprovechando el tiempo
xviii
disponible del obrero para que realice otras tareas que contribuya el aumento
de la producción.
Otro aspecto del sistema de control de riego es el uso de la
S
O
D
VA
R
E
S
electricidad, como impulsor de las bombas, este factor es importante debido
E
R
S
HO
a los altos gastos que supone en el presupuesto en el de una organización
EC
R
E
D
ganadera. Con este sistema reducirá al mínimo necesario el tiempo de
operación de la bomba ya que esta permanece encendida hasta que el
obrero supervisará el regado, ocasionando altos consumos de electricidad y
pérdida en el consumo de agua, la cual se reducirá con la implantación de
este sistema.
4. DELIMITACIÓN DE LA INVESTIGACIÓN
Esta investigación se realizará en la Villa del Rosario, Municipio
Rosario de Perijá del Estado Zulia, en el período comprendido de 6 meses,
entre Octubre del 2001 hasta Abril del 2002.
xix
CAPITULO II
MARCO TEORICO
S
O
D
VA a los Antecedentes y
En este Capítulo se desarrollará lo concerniente
R
E
S
E
R
Situación actual de la investigación,
OS Fundamentación Teórica y la Definición
H
C
E
de los Términos
DERBásicos.
1. ANTECEDENTES.
Hernández (1990) realizó un estudio titulado Automatización del
Sistema de Inyección de Agua y de Formación del Terminal Puerto Miranda.
Esto se llevó a cabo utilizando una metodología descriptiva haciendo
estudios sobre las conexiones y especificaciones de los elementos a utilizar
en el proceso de inyección de agua.
Las conclusiones que arrojó este estudio fueron que el sistema a base
de relé presentaban continuas fallas debido al deterioro de sus contactos
afrontando así datos errónicos y aumentando las horas, hombres en
operaciones.
xx
De esta manera es recomendable reemplazar el sistema a base del
relé por un sistema de control automático con la utilización del P.L.C.
(Controlador Lógico Programable).
S
O
D
VA
R
E
S
Una de las principales semejanzas de la investigación por Hernández
E
R
S
HO
y la presente con las exposiciones hecha en lo referente a los problemas que
EC
R
E
D
se presentan por la ineficiencia de control y la carencia del monitoreo del
sistema y que además se plantea como solución por medio de un P.L.C. En
esta investigación se plantea la implementación de un P.I.C. que es menos
costoso y más fácil operación ya que el mismo puede realizar el control del
proceso.
Entre las ventajas que posee esta nueva tecnología en que esta hecha
a base de circuito electrónico que no necesitan mantenimiento preventivo y
por su alta capacidad de autodiagnóstico que brinda una mayor seguridad a
la hora de efectuar cualquier acción garantizando así que los equipos
periféricos estén protegidos y trabajando en el punto óptimo de operación.
Como punto coincidente entre las tesis se encontró que ambos están
inclinados así en el área de instrumentación y electrónica y entre los puntos
no coincidentes en esta tesis no utilizan una gran cantidad de componente
electrónico incluyendo el P.I.C.
xxi
En lo que se refiere a la investigación presentada por Hernández
(1990) se observó la utilización de válvulas solenoides en el proyecto
presentado, estas válvulas solenoides serán utilizadas en el proyecto que se
está realizando ya que dicha válvula sirve para el control de dos (02)
S
O
D
VA
R
E
S
posiciones (abierto y cerrado). La válvula solenoide es una combinación de
E
R
S
HO
dos (02) unidades funcionales básicas actuador y en el cuerpo, estos
EC
R
E
D
funcionan de la siguiente manera; a la bobina de la solenoides llega la señal
eléctrica proveniente del control esta se ennegrecerá trayendo como
consecuencia la reacción de un campo magnético la cual atraerá el núcleo.
Como el núcleo esta acoplado al tapón esta se moverá para abrir o
cerrar el paso del fluido (agua).
Por otra parte, Barboza y Ramírez (1998) realizaron un estudio titulado
Desarrollo de un Sistema de control con Microcontroladores para la
Supervisión Continua de Riego en Zonas Agrícolas.
El estudio consistió en llevar a cabo un sistema de control con
microcontroladores para la supervisión continua de riego en zonas agrícolas.
La investigación se clasifica según su propósito al que es adaptable a
diferentes necesidades. Para elaborar el sistema se realiza una investigación
xxii
de los conceptos y procedimientos que integran la siembra y riego además
se realizó un sondeo de opinión en la organización agrícola para así conocer
los procedimientos aplicados a los riegos.
S
O
D
VA
R
E
S
Una de las principales semejanzas a esta investigación son la de
E
R
S
HO
Barboza y Ramírez ya que tienen como objetivo la supervisión y control de
EC
R
E
D
flujo en los sistemas de riego y esta se refiere al mismo tópico.
En cuanto a la diferencia existente entre ambas investigaciones es que
utiliza como medio de control un medidor de flujo el cual tiene una indicación
visible de la variable medida en la cual podemos visualizar la cantidad de
flujo consumido.
Por consiguiente en la investigación planteada se observó la utilización
del microcontrolador P.I.C. Hardware y Software ya tiene un estudio de
compatibilidad en el programa a efectuar Hardware diseñado en este caso,
se va a lograr mediante el lenguaje de programación del microcontrolador
P.I.C. cuya programación se logra mediante el sistema P.I.C. Star que es el
paquete que permite la programación a través del computador para simulacro
en marcha del programa.
xxiii
Este paquete posee ciertas ventajas debido a que es bajo el ambiente
Windows y permite la simulación paso a paso de todas las etapas del
programa, así como también la simulación de las entradas que físicamente
estarían llegando al computador y por último, permite la programación del
S
O
D
VA
R
E
S
microcontrolador para su probado físicamente.
E
R
S
HO
EC
R
E
D
En este proyecto también se utilizan la pantalla L.C.D. la cual se utiliza
para visualizar la cantidad de flujo, litros por segundo, el tiempo cuando se
está realizando el regado.
Otro dispositivo importante observado en este proyecto es la
implementación de un medidor de flujo que será utilizado en nuestra
investigación ya que dicho medidor consiste en un rotor que gira al paso del
fluido con una velocidad directamente proporcional al caudal; los pulsos son
generados en la bobina detectora, tiene la forma de onda seonidad y si es
necesario se puede transmitir electrónicamente a grandes distancias a una
gran cantidad de dispositivo de lectura para computación, indicación, registro,
control o automatización.
xxiv
2. FUNDAMENTACIÓN TEÓRICA.
La innovación tecnológica se ha integrado en las haciendas
ganaderas, automatizando sus procesos productivos logrando obtener sus
S
O
D
VA
R
E
S
productos con menos pérdidas de los mismos.
E
R
S
HO
EC
R
E
D
Basado en esta descripción las haciendas buscan adaptarse a estos
cambios tecnológicos a través de la automatización de los sistemas de riego
de los mismos.
El riego permite alcanzar altos rendimientos y calidad de los productos
al asegurar el agua indispensable a los cultivos para su desarrollo si no
también posibilita el uso de cultivos mejorados de otro potencial productivo y
el establecimiento de un mayor número de pastos por hectáreas, todos los
sistemas de riego a nivel de hacienda consiste en una fuente de agua: ríos,
quebradas, lagunas, pozos, una red de conducción de agua (tuberías) desde
la fuente hasta el campo de cultivo, dicha red contará con un mecanismo de
fluido. Un medidor de flujo de turbina que conforme gira el rotor de la turbina
cada aleta genera un pulso y representa una unidad de volumen
litros/segundo para la totalización de flujo.
xxv
Los pulsos generados por la bobina detectora tiene forma de onda
senoidal se puede transmitir eléctricamente a distancia a una gran variedad
de dispositivo de lectura para computación, registros o la utilización de
válvulas solenoides que son dispositivos de dos (02) posiciones (abierto y
S
O
D
VA
R
E
S
cerrado) ya que cuando se le aplica un voltaje a su bobina esta produce un
E
R
S
HO
campo magnético que atrape al embolo y este al obturador de la válvula que
EC
R
E
D
abrirá o cerrará el paso del fluido de agua para realizar el regado de pasto.
Este tipo de control es de lazo abierto ya que se obtendrá una
indicación del flujo y el sistema de riego está controlado por un tiempo
determinado, es decir, que el campo que sigue la señal es sin
retroalimentación.
Por consiguiente se encuentran los sistemas de control discreto. Los
sistemas digitales realizan todas sus operaciones en binario o algún código
discreto, cualquier información que se quiera introducir en el sistema digital
debe ser colocada en forma binaria antes que pueda ser procesada por los
circuitos digitales.
La salida de un circuito digital también está en un código discreto y
usualmente de ser transformado según la aplicación que tengan las variables
del sistema, por lo general las señales que se analizan en el circuito son
xxvi
señales analógicas, muchos dispositivos en entradas y salidas de sistemas
digitales para servir como vínculo de comunicación del mundo analógico.
Estos dispositivos suministran el medio por el cual un sistema digital es
capaz de monitorear o adquirir información de un proceso externo y además
S
O
D
VA
R
E
S
tomar acciones para controlar en el lado de las entradas las magnitudes de
E
R
S
HO
los procesos monitoreados que son analógico por naturaleza los mismos son
EC
R
E
D
traducidos y enviados a un convertidor analógico digital el cual transforma la
cantidad análoga en una representación digital, la señal ya situada en el
sistema digital puede ser usada y llevada de nuevo al mundo exterior usando
un convertidor digital analógico; un convertidor analógico digital toma como
entrada una señal analógica desconocida usualmente un voltaje y la
convierte en una palabra binaria de N BITS la cual puede ser fácilmente
manipulada por un sistema digital.
Por otra parte cuenta con un modulo L.C.D. que responde a un
conjunto especial de instrucciones las cuales deben ser enviadas por el
microcontrolador o sistema de control display según la operación que se
requiera, esas instrucciones que se envían al display se almacenan en la
memoria R.A.N. del módulo cuyos datos son visibles en la pantalla. Estas
pantallas de cristal líquido son dispositivos autoelectrónicos diseñados para
desplegar
información
gráfica
o
alfanumérica
sobre
generalmente plana, mediante la emisión o absorción de luz.
xxvii
una
pantalla
Este cuenta con varias características importantes las formas de
utilizarlos y sus interfaces son similares, por eso se pueden emplear
cualquiera de ellos.
S
O
D
VA
R
E
S
Algunos módulos L.C.D. tienen luz posterior o “Backlight” para mejorar
E
R
S
HO
su visualización, la cual se maneja a través de dos (2) pines que
EC
R
E
D
normalmente se conectan a + 5 v y a tierra, para evitar que se presenten
altas temperaturas debido a la luz posterior.
Los pines de conexión de estos módulos incluyen un bus de datos de
ocho (8) bits, un pin de habilitación (E), un pin de selección, que indica que el
dato es una instrucción o un carácter del mensaje (RS) y un pin que indica si
se va a escribir o leer en módulo L.C.D. (R/W).
Según la operación que se desee realizar sobre el modulo de cristal
líquido, los pines de control E, RS, y R/W deben tener un estado
determinado. Además de tener en el bus de datos un código que indiquen un
carácter para mostrar en la pantalla o una instrucción de control.
El modulo L.C.D. depende o responde a un conjunto especial de
instrucciones, esta deben ser enviadas por el microcontrolador o sistema de
control al módulo, según sea la operación que se requiere.
xxviii
Las interfaces entre el microcontrolador y el modulo de cristal líquido
se puede hacer con el bus de datos trabajando a 4 u 8 bits.
También se encuentra un microcontrolador P.I.C. que es el que se va
S
O
D
VA
R
E
S
a encargar de controlar el sistema cuya programación se logra mediante el
E
R
S
HO
sistema P.I.C. Star que es el paquete que permite la programación a través
EC
R
E
D
de un computador para la simulación de la marcha del programa. Este
paquete es bajo el ambiente Windows y permite la simulación paso a paso de
todas las etapas del programa así como también la simulación de las
entradas que llegan al computador y por último permite la programación del
programa del microcomputador P.I.C. Este sistema de control tiene como
objetivo la captura y control de la variable presente en un campo (flujo de
agua) las cuales en la mayoría de los casos son inaccesibles para el obrero y
presenta inconvenientes para una lectura directa. La principal función de este
sistema es que la bomba estará arrancada durante un tiempo a la cual se
halla programado.
Microcontroladores PIC16F84 y PIC16C55 son microcontroladores con
memoria de programa tipo flash, lo que representa gran facilidad en el
desarrollo de prototipo y en su aprendizaje ya que no se requiere de borrado
con luz ultravioleta como las versiones EPROM sino, permiten reprogramarlo
xxix
nuevamente sin ser borrado con anterioridad. Por esta razón, los usaremos
en la mayoría de las aplicaciones que se desarrollan a lo largo del estudio.
De igual manera existen unas ventajas del microcontrolador sobre el
S
O
D
VA
R
E
S
microprocesador. El circuito impreso es más pequeño ya que muchos de los
E
R
S
HO
componentes se encuentran dentro del circuito integrado.
EC
R
E
D
Los problemas de ruidos que puedan afectar los sistemas con
microprocesadores se eliminan, debido a que todo el sistema principal se
encuentra en un solo encapsulado. El tiempo de desarrollo de un sistema se
reduce notablemente.
De igual manera aparecen las características del 16F584:
•
Memoria de programa: 1K x 14 flash.
•
Memorias de datos RAM: 68 x 8 Bytes.
•
Memorias de datos EPROM: 64 x 8 bytes.
•
Juego de instrucciones: 35.
•
Encapsulado: plástico DIP de 18 pines.
•
Frecuencia de trabajo: 4 Mhz máximo.
•
Temporizadores: 1
•
Perro guardián (WDT)
xxx
•
Líneas de E/S digitales: 13.
•
Corriente máxima absorbida: 80 ma puerta A y 150 ma puerta B.
•
Corriente máxima suministrada: 50 ma puerta A y 100 ma puerta B.
•
Corriente máxima absorbida por línea: 25 ma.
•
Voltaje de alimentación (VDC): De 2 a 5 VDC.
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
Características del 16C55:
•
Memoria de programa: 512K x 12 flash.
•
Memorias de datos RAM: 24 x 8 Bytes.
•
Juego de instrucciones: 33.
•
Encapsulado: plástico DIP de 28 pines.
•
Frecuencia de trabajo: 4 Mhz máximo.
•
Temporizadores: 1
•
Perro guardián (WDT)
•
Líneas de E/S digitales: 20
•
Corriente máxima absorbida: 80 ma puerta A y 150 ma puerta B.
•
Corriente máxima suministrada: 50 ma puerta A y 100 ma puerta B.
•
Corriente máxima absorbida por línea: 25 ma.
•
Voltaje de alimentación (VDC): De 2 a 5 VDC.
xxxi
3. DEFINICIONES DE TÉRMINOS BÁSICOS.
Arquitectura del Microcontrolador: La alta velocidad de ejecución
del P.I.C. 16F84 y 16C55 se puede atribuir a las características comúnmente
S
O
D
VA
R
E
S
encontrados en los microprocesadores. Para comenzar el P.I.C. utilizó la
E
R
S
HO
arquitectura del Hardware, en el cual el programa de datos se accesan en
EC
R
E
D
memorias separadas, esto mejora al ancho de arquitectura tradicional de Von
Neuman, donde el programa y los datos son traídos de la misma memoria.
Puede direccionar directa o indirectamente su registro (memorias de
datos) todos los registros de funciones especiales incluyendo el controlador
de programa están mapeados en la memoria de datos. El set de
instrucciones es claramente ortogonal (simétrico), lo que hace posible llevar a
cabo cualquier operación en cualquier registro usando cualquier modo de
direccionamiento. (Angulo, 1983, p. 48)
Calibración: Es ajustar la salida de un instrumento a valores
deseados dentro de una tolerancia deseada por valores particulares de las
señales de entradas. (Ogata, 1993, p. 78)
Control Digital: Un sistema de control digital es aquel que controla la
salida o condición provenientes del campo. El modelo de entrada procesa la
xxxii
información por medio de un convertidor analógico digital, para llevar datos
binarios que podrán ser analizados en un modulo de control. (Ogata, 1993, p.
81)
S
O
D
VA
R
E
S
Instrumentación: Es la aplicación de los instrumentos en un proceso
E
R
S
HO
con el propósito de medir y controlar una actividad. (Creus, 1992, p. 52)
EC
R
E
D
Instrumento: Es cualquier dispositivo que realice una función de
medición y control de un proceso. (Creus, 1992, p. 50)
Flujo: Puede ser definido como el movimiento de un fluido, no es más
que la cantidad e fluido que pasa por un punto por unidad de tiempo.
(Fusagri, 1995, p. 41)
Medidor de Turbina: Consiste de un rotor que gira al paso del fluido
con una velocidad directamente proporcional al caudal. La velocidad del
fluido ejerce una fuerza de arrastre del rotor, la diferencia de presión es
debido al cambio de área entre el rotor y como posterior ejerce una fuerza
igual y expuesta. (Fusagri, 1995, p. 84)
Microcontrolador: Es un dispositivo electrónico el cual posee la
capacidad de controlar un proceso mediante la previa codificación de un
xxxiii
programa que analice la variable de la salida de dicho proceso y emita la
salida de acuerdo a un punto de referencia. (Ogata, 1993, p. 83)
Riego por Inundación: Este sistema se aplica en terrenos planos y
S
O
D
VA
R
E
S
en aquellos que permitan su nivelación. Requiere un suministro relativamente
E
R
S
HO
grande de agua, y un subsuelo menos permeable. El riego por inundación se
EC
R
E
D
usa principalmente para el cultivo de arroz, y, en menor grado, para ciertas
hortalizas y pastos. (Fusagri, 1995, p. 45)
Señal Digital: Son aquellas que son tomadas directamente y vienen
representadas en dos (02) niveles de voltaje uno (1) y cero (0), o sea, no hay
variación. (Ogata, 1993, p. 95)
Señal Analógica: Son aquellas que vienen representadas por
señales de uno (1) a cinco (5) V.N.C. o de cuatro (4) a veinte (20) M.A. y
varía en el tiempo. (Ogata, 1993, p. 95)
Sistema Automático: Un sistema automático ajusto su operación en
respuesta a los cambios de las condiciones externas entre pasos, medias,
evolución y control en las medidas se tiene que el sistema responde a los
cambios del medio ambiente externo que deben ser medidos por variables
físicos del mismo ambiente. (Ogata, 1993, p. 74)
xxxiv
Válvula Solenoide: Es una combinación de dos (02) unidades
funcionales básicas, el solenoide propiamente dicho (actuador) con su núcleo
(vástago) y el cuerpo y el funcionamiento es el siguiente:
S
O
D
VA
R
E
S
A la bobina de solenoide llega la señal eléctrica proveniente del
E
R
S
HO
controlador o cualquier otro dispositivo, esto se energizará trayendo como
EC
R
E
D
consecuencia la creación de un campo magnético el cual atraerá el núcleo.
Como el núcleo esta acoplado al tapón, este moverá para abrir o
cerrar el paso de algún fluido. (Fusagri, 1995, p. 45)
xxxv
CAPITULO III
MARCO METODOLOGICO
S
O
D
VA
R
E
S
E
R
S
HO
En este capítulo de la investigación se desarrollará lo que integra el
EC
R
E
D
Marco Metodológico, Tipo de Investigación, Metodología y la factibilidad del
Proyecto.
1. TIPO DE INVESTIGACIÓN.
Se determina que el tipo de investigación a la cual pertenece el
siguiente estudio es factible y aplicada.
Es factible ya que en esta tesis se busca la solución del problema a
través de la elaboración y desarrollo de una propuesta de modelos operativos
viables, ya que tiene apoyo de otras investigaciones recolectadas a través de
tesis y textos, también se evalúan procesos y otros aspectos muy
importantes ya que se conocen los resultados de la investigación.
Por otra parte es aplicada ya que en esta tesis se aplican los
conocimientos teóricos adquiridos a través de estudios anteriores como son
xxxvi
los microcontroladores, de los chips, el control de lazo abierto, control digital,
mecanismo de los fluidos que ayudarán a resolver el problema planteado en
un corto tiempo.
2. METODOLOGÍA.
S
O
D
VA
R
E
S
EC
R
E
D
E
R
S
HO
Para el desarrollo del prototipo se utilizará la metodología propuesta
por Angulo (1983) quien recomienda nueve actividades:
1) Definición de las Especificaciones: Se define como la mayor
precisión posible el funcionamiento del sistema a desarrollar, para esto, solo
debe establecer los estímulos de entrada y salida, sin detenerse a explicar
las razones.
2) Diseño y Sistema General de Hardware: Se debe desarrollar en
forma de bloques funcionales todas las etapas del sistema interconectado
entre sí de manera lógica. Se asume como bloques funcionales, cada una de
las partes elementales del sistema encargado de hacer un único trabajo en
particular.
3) Ordigrama General: Aquí se establece el diagrama de flujo que se
estimó será el que regirá el funcionamiento del circuito. Este diagrama se
xxxvii
denomina general porque su propósito es el de servir como base para el
desarrollo del Software el cual está sujeto a modificación. Este se realiza en
forma general pero que ilustre el funcionario del sistema.
S
O
D
VA
R
E
S
4) Adaptación entre Hardware y Software: Una vez establecida la
E
R
S
HO
forma de Hardware y del Software se establece los diferentes mecanismos
EC
R
E
D
para la comunicación entre ambos, garantizando que la información entra y
sale en forma correcta.
5) Ordigrama Modulares y Codificación de Programa: En este
programa cada uno de los diferentes bloques generales, del diagrama de
flujo se codifica individualmente, asegurándose que cada parte realiza el
trabajo en forma eficiente y segura.
6) Implementación del Hardware: Acá es necesario materializar el
circuito. Pero debe estudiar las hojas del fabricante de los diferentes circuitos
a optimizar. Debe tenerse especial cuidado en las corrientes de consumo y
las que puede entregar cada una de las salidas, con el fin de no sobrecargar
cada una de las partes. Así como se debe prever el uso de todos y cada uno
de los fines para no dejar ninguno conectados.
xxxviii
7) Depuración de Software: El programa se prueba y depura hasta que
su funcionamiento sea el adecuado. Es imperativo probar exhaustivamente
todas y cada una de las diferentes bifurcaciones del programa, incluso, se
debe determinar su funcionamiento bajo condiciones extremas.
S
O
D
VA
R
E
S
E
R
S
HO
8) Integración del Hardware con el Software: Finalmente se prueba la
EC
R
E
D
interacción entre ambas partes, confirmando que totalidad del sistema
interactivo funciona de manera correcta y eficiente.
9) Construcción del Prototipo y Prueba Final: Si es necesario implantar
todo el sistema, a nivel de Hardware debe materializarse con una placa de
Baquelita o Fibra de Vidrio y el programa debe establecerse compilado y
debe probarse nuevamente la funcionalidad de la totalidad del sistema.
3. FACTIBILIDAD DEL PROYECTO.
3.1. FACTIBILIDAD TÉCNICA.
En cuanto a la factibilidad técnica en esta investigación se debe a que
la programación de microcontrolador es de fácil manejo los componentes se
encuentran disponibles en el mercado y el sistema de control de riego es de
fácil instalación.
xxxix
3.2. FACTIBILIDAD ECONÓMICA.
El desarrollo de este sistema de control para riego de pastos en las
haciendas arroja beneficios económicos ya que lo componentes utilizados
S
O
D
VA
R
E
S
son de bajos costos y no implica la inversión de grandes cantidades de
E
R
S
HO
dinero ya que los materiales utilizados son los siguientes:
EC
R
E
D
Cuadro 1
Lista de Materiales
Cant.
01
01
01
01
01
06
06
01
08
02
05
01
01
03
06
Descripción
Microcontrolador PIC16F84
Microcontrolador PIC16C55
Cristal 4MHz
Pantalla LCD 16 columnas x 2 línea
Teclado matricial 4 x 4
Relé de 12 v /3A / 220 V
Led
Resistencia2.2 K Ohm x ¼ Watt
Resistencia 10 K Ohm x ¼ Watt
Pulsador normalmente abierto
Resistencia 220 K Ohm x ¼ Watt
Capacitador 10mF
Buffer inversor ULN2803
Pista de Protoboard
Diodo 1N4006
Fuente: Romero 2002.
xl
Precio Unitario
6.000,00
7.000,00
745,00
18.400,00
10.000,00
1.500,00
150,00
100,00
100,00
300,00
100,00
150,00
1.300,00
9.000,00
150,00
Total
Total
6.000,00
7.000,00
745,00
18.400,00
10.000,00
9.000,00
900,00
100,00
800,00
600,00
500,00
150,00
1.300,00
27.000,00
900,00
83.395,00
CAPITULO IV
ANÁLISIS DE LOS RESULTADOS DE LA INVESTIGACIÓN
S
O
D
VA
R
E
S
E
R
S
HO
Fase I: Definición de las Especificaciones.
EC
R
E
D
Se define y diseña el panel de control que permitirá su operación,
siendo amigable con el usuario, tendrá una serie de leds indicadores que
mostrará las operaciones de los dispositivos (electroválvulas), a su vez
contará con un teclado, el cual servirá para programar los tiempos de
trabajos de las mimas y el tiempo de descanso de la bomba.
Este sistema podrá detectar la cantidad de flujo a través del medidor
de flujo (agua).
Fase 2: Diseño y Esquema General hardware.
El esquema general integra un microcontrolador, el cual es
considerado como un pequeño computador donde a través de un programa
ejerce su operación, los dispositivos que lo secundan son:
xli
•
Alimentación: consiste en aplicar un voltaje al circuito 5VDC a través de
una fuente de poder alimentada con 110 VDC.
•
Leds indicadores: permite la visualización de la operación del sistema.
•
Pantalla LCD: sirve para mostrar el valor de tiempo y descanso de riego.
•
Medidor de flujo: sirve para medir la cantidad de flujo (agua) utilizada por
el sistema de riego.
•
E
R
S
HO
C
se Eutiliza
R
E
D
Teclado:
S
O
D
VA
R
E
S
para
introducir
el
programa
de
riego
al
microcontrolador.
•
Bombas sumergibles: es la encargada de traer el agua del suelo y
llevarla.
•
Válvulas Solenoides: se encarga de abrir el paso o cerrar para indicar el
fluido a los potreros.
Alimentación del Circuito
Teclado
Microcontrolador
Pantalla LCD
Leds Indicadores
Medidor de Flujo
Bomba de Riego
Fuente: Romero 2002
xlii
Válvulas Solenoides
Para
la
realización
del
diseño
del
circuito
se
colocan
los
microcontroladores los cuales poseen un circuito de reset externo el mismo
está compuesto por un capacitador y una resistencia especificada por el
fabricante los cuales deben tener un valor de 10 mf y 10 Kilo Ohmio y van
S
O
D
VA
R
E
S
conectada en el pin 1 del PIC por otra parte se encuentra el circuito de
E
R
S
HO
oscilación el cual se compone por un cristal de cuarzo de 4 Mhz en paralelo
EC
R
E
D
con dos capacitadores de 20 Pf especificado en la tabla.
De igual manera se colocó una resistencia de 5 kilo Ohmio para
ajustar el contraste de la pantalla LCD. En el diseño de este circuito se
utilizaron 11 señales que van a la pantalla LCD. También 7 señales que van
al buffer inversor los cuales energizarán los relé de arranque, ya que esto
reciben la señal de cero lógico debido a que tiene 5VDC presente en uno de
su terminal por otro lado se encuentra el teclado que recibe 7 señales las
cuales se utilizan para programar el trabajo del sistema de riego.
Fase 3: Diagrama de Flujo de Estimado.
El diagrama de flujo a realizar en la secuencia lógica que se utilizará
para la elaboración del programa controlador en el momento que es colocado
el sistema stanby, por medio del teclado se procede colocar las horas de
xliii
trabajo de las mismas y las horas de descanso de la bomba, se inicia el riego
que anteriormente fue programado.
Mientras se cumple el proceso de riego, el sistema censa sus puertos
S
O
D
VA
R
E
S
en alerta a una señal de fallas, de presentarse alguna fallas se detendría el
E
R
S
HO
proceso de riego, y en el panel de control los leds indicadores se encargarán
EC
R
E
D
de encender para mostrar la falla ocurrida una vez visualizada la falla, el
sistema espera por un reset.
Fase 4: Adaptación entre el Hardware y Software.
La adaptación entre el Hardware y Software se obtiene a través de un
estudio coincidente entre el Software o ejecutar el prototipo diseñado. El
Software diseñado en el resultado del análisis efectuado al diagrama de flujo.
Fase 5: Ordigrama Modulares y Codificaciones de Programa:
En esta etapa se codifican los diferentes bloques del diagrama de
flujo, utilizando el lenguaje de programación y sus instrucciones; el cual
comienza con la declaración de las constantes EQU del sistema y en
segundo lugar se establecen las variables RES, pasando a un tercer lugar
xliv
donde
se
plasma
el
Software
que
regirá
el
mediante
el
funcionamiento
del
microcontrolador.
El
software
se
elaborará
lenguaje
de
los
S
O
D
VelAcual nos permite una
R
PIC star que trabaja bajo ambiente Windows,
E
S
E
R
OS
simulación completa del
funcionamiento
y comportamiento de sus puerto
H
C
E
R
E la grabación el programa de los microcontroladores para
Dtambién
(I/O) como
microcontroladores PIC 16F84 y 16C55, este se logrará a través del paquete
ser probado y depurado.
Los PIC contienen instrucciones que se encargan de llevar el tiempo
de riego, la medición de flujo y también contiene una ruptina de barrido de la
pantalla LCD, donde son visualizados los tiempos de programas para
ejecutar la acción. Al mismo tiempo actúan una rutina capaz de leer los
valores ingresados por el teclado.
Fase 6: Implementación del Hardware.
En este punto se integran y materializan las correcciones respectivas,
los bloques funcionales descrito en la fase dos. Los microcontroladores son
conectados de acuerdo a lo establecido en el diseño, donde se tiene
conectado al teclado que introduce los datos a los microcontrolador también
esta conectado a un cristal de cuarzo de 4 Mhz, el cual proporciona la
xlv
oscilación necesaria del mismo, el circuito cuenta con una serie de leds
indicadores que muestran el funcionamiento del mismo. Las funciones de las
pantallas LCD que indican las horas de trabajos.
S
O
D
VA
R
E
S
Fase 7: Depuración del Software.
E
R
S
O pruebas con el fin de detectar fallas en las
En esta fase se H
hicieron
C
E
R
DEdel
bifurcaciones
programa, se tomaron en cuenta condiciones extremas
para determinar la ejecución correcta del software y así asegurar el buen
funcionamiento del sistema.
Fase 8: Integración del Hardware con el Software.
Una vez depurado los programas, se graban en el microcontrolador
para luego realizar prueba que permitan observar la forma como interactúa el
software y el hardware a las conexiones de las mismas, logrando el
comportamiento deseado.
Fase 9: Construcción del Prototipo definitivo y Prueba Final.
En esta etapa se montó el circuito definitivo del prototipo y compilado
al programa, en el caso de la investigación que se realizó, la implementación
no figura como objetivo es por ello que el circuito definitivo no es llevado a
una baquelita o fibra de vidrio. El circuito final se realizó en el protoboard.
xlvi
CAPITULO V
MANUAL DEL USUARIO
S
O
D
VA
R
E
S
E
R
S
HO
En este capítulo se describe el Manual del Usuario para el Sistema
EC
R
E
D
Programable de Riego.
1. MANUAL DEL USUARIO.
•
Alimentación del circuito
•
Voltaje de Alimentación 5VDC
•
Corriente del Circuito 420 ma.
Antes de conectar el cable de alimentación
se debe tomar en cuenta la polaridad y
compruebe si la tensión nominal mostrada
concuerda con la tensión colocada en el
circuito (5VDC).
Para encender el circuito coloque el swith en la posición DN y
aparecerá en la pantalla:
xlvii
SISTEMA PROGRAMABLE DE RIEGO
S
O
D
VA
R
E
S
Pulsar la Tecla de Asterisco (*) para entrar y modificar la hora actual y
E
R
S
HO
la secuencia de encendido y apagado de las válvulas.
EC
R
E
D
Posteriormente, se modifica la hora actual para adelantar la hora, de
nuevo, se pulsa la Tecla 1, para poder modificar los minutos se presiona la
Tecla 2; para cambiar el día actual, pulsamos la Tecla 3. Luego de
determinar la selección, se presiona la Tecla B para aceptar lo antes
seleccionado.
Inmediatamente, nos trasladamos al menú de los Días de la Semana
para poder establecer la selección de encendido y apagado de las válvulas.
Para modificar la hora de encendido y apagado de válvulas se debe
presionar la Tecla 1; para cambiar las horas de encendido, más adelante, se
presiona la Tecla 2 para la modificación de los minutos.
xlviii
Ahora bien, para el cambio de la secuencia de apagado se debe
presionar la Tecla 3 para la modificación de la hora y luego, con la Tecla A se
cambian los minutos de apagado.
S
O
D
VA
R
E
S
Ya establecida la selección deseada se pulsa la Tecla B para aceptar
E
R
S
HO
y guardar los cambios realizados, así mismo, se presentará el estado de la
EC
R
E
D
válvula siguiente para implantar su selección y así, sucesivamente, hasta
terminar el programado de los días y las válvulas para poder comenzar con el
ciclo de riego.
Al final, debe aparecer un recuadro parecido al siguiente, el cual
indicará:
Día: Lun
Val: 1
E: 8:30
A: 9:00
xlix
CONCLUSIONES
Al diseñar el prototipo se logró entrar en contacto con la tecnología del
Microchips. Esta tecnología permite el desarrollo de una extensa gama de
S
O
D
VA
R
E
S
dispositivos de manera económica y sencilla debido a los bajos costos y
E
R
S
HO
adaptabilidad del P.I.C., los mismos se constituyen como los dispositivos
EC
R
E
D
fundamentales de diseño del prototipo.
Al recopilarse la información acerca de los procedimientos que
integran los riegos, se organizó información, adaptando el diseño a las
necesidades de los ganaderos, obteniendo como resultado un amplio
beneficio al momento de su implantación.
Un resultado importante lo constituye, que el sistema diseñado es
amigable para el usuario, debido a que su operación es sencilla, además el
sistema desarrollado posee un bajo costo, resultando atractivo para los
ganaderos.
Al momento de su implantación el prototipo será una fuerza laboral
para las haciendas, ya que se encargará de la operación de riego, esto
permitirá que el personal dispuesto para la labor de riego, pueda ser
asignado a otras tareas relacionadas con la actividad ganadera (agrícola)
l
obteniendo así mejoras en las haciendas y aumento en la producción. Este
sistema cubre una gran necesidad por parte de los ganaderos debido a que
permiten trabajar por tiempo y de manera sencilla la actividad de riego.
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
li
RECOMENDACIONES
La investigación realizada se limitó en el desarrollo del prototipo, sin
S
O
D
A debe tomar en cuenta
debido a esto, se hace la siguiente recomendación
Vque
R
E
S
E
R
al momento de su implantación:
OS
H
C
E
DER
embargo, la idea de su implantación es realmente el motivo de lo mismo,
El lugar donde se desea implantar este sistema debe existir por lo
menos un tanque de almacenamiento, pozo, río, laguna, bomba sumergible.
Los instrumentos a utilizar deben ser confiables y de alta calidad, pues
son los encargados de tomar información y llevarlo al dispositivo, de ocurrir
una falla en los sensores del sistema no responderá de la forma deseada.
En el caso de relee, se recomienda el uso de relee de estado sólido ya
que estos requieren una baja corriente para ser exilados, de esta manera se
garantiza el funcionamiento encargado de sistema de control.
La ubicación del panel de control debe colocarse en un sitio
estratégico, donde pueda ser observado por el encargado de la hacienda,
este permitirá al usuario de este informado de lo que ocurre en el proceso.
lii
Debe colocarse una alarma sonora la cual alertará a distancia la
presencia de una falla en el sistema de proceso de riego.
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
liii
REFERENCIAS BIBLIOGRÁFICAS
ANGULO, J. (1983). Robótica Práctica. 2da. Edición. Caracas, Venezuela.
BARBOZA, RAMÍREZ. (1998). Desarrollo de un Sistema de Control con
Microcontroladores para la supervisión continua de Riego en zonas
Agrícolas. Universidad Rafael Belloso Chacin. Tesis de Grado.
S
O
D
VA
R
E
S
E
R
S
HO
BARBOZA URDANETA. (1998). Desarrollo de un Prototipo de un Sistema
de Supervisión y Control para la Inyección de Agua en pozos
petroleros. Tesis de Grado. Universidad Rafael Belloso Chacín.
EC
R
E
D
CREUS S., A. (1992). Instrumentación Industrial. 5ta. Edición. Caracas.
FUSAGRI. (1995). Sistema de Riego. Caracas. Venezuela.
OGATA, K. (1993). Ingeniería de Control Moderno. 2da. Edición. Caracas,
Venezuela.
liv
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
ANEXOS
lv
;*****************************************************************
;*******************************************************************
;***
***
;*** S I S T E M A P R O G R A M A B L E D E R I E G O ***
;***
***
;***
***
;***
***
;***
***
;***
***
;***
***
;****************************************************************
;
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
K_0 EQU 0X20
CBLOCK K_0
LA_HORA
(BIN)
LOS_MIN
(BIN)
EL_DIA
INDGENR
;CONTIENE LA HORA PARA VISUALIZAR
;CONTIENE LOS MIN. PARA VISUALIZAR
;CONTIENE EL DIA PARA VISUALIZAR
;CONTIENE LOS INDICADORES DEL TIEMPO
DIGITO4
DIGITO3
;CONTIENE LAS DECENAS DE LA HORA (BCD)
;CONTIENE LAS UNIDADES DE LA HORA
DIGITO2
DIGITO1
;CONTIENE LAS DECENAS DE LOS MIN. (BCD)
;CONTIENE LAS UNIDADES DE LOS MIN.
(BIN)
(BCD)
BCDH
;REG. QUE CONTIENE LA PARTE ALTA DEL
BCDL
;REG. QUE CONTIENE LA PARTE BAJA DEL
BCD
BCD
BINARIO
;REGISTRO QUE CONTIENE EL NUMERO
CNT_FUN
;REGISTRO QUE INDICA EN QUE FUNCION
BINARIO
ESTA
TMP_FUN
;REGISTRO QUE TEMORIZA EL TIEMPO
P_DIAS
;REG. QUE CONTIENE EL DIOA PROGRAMADO
P_HORAS
;REG. QUE CONTIENE LA HORA
PROGRAMADA
P_MINUTOS
;REFG. QUE CONTIENE LOS MINUTOS
lvi
PROGRM.
CONSTRU
OPCIONES
Nº_PRGM
;REG. PARA LA CONSTRUCCION DE
;REG. CON EL Nº DE PROGRAMA A VER O
MOD
Nº_PRGM2
;REG. CON EL Nº DE PROGRAMA DE
S
O
D
VA
R
E
S
SALIDAS
Nº_SALD
Nº_LCD
EEADR2
REG_ON
REG_OFF
SAL_PGM
PROGRAM.
CONT
SEG_2
K_1
ENDC
E
R
S
HO
EC
R
E
D
BANK_0
BANK_1
BANK_2
BANK_3
;TEMPORIZADOR
EQU 0X000
EQU 0X080
EQU 0X100
EQU 0X180
#DEFINE BANCO_0
#DEFINE BANCO_1
#DEFINE BANCO_2
#DEFINE BANCO_3
#DEFINE LED
#DEFINE PITO
#DEFINE LUZ
#DEFINE FUSE_1
#DEFINE FURE_2
;REG. CON EL Nº DE SALIDA SELECCIONADA
;REG. CON EL Nº DE CONTRASTE DEL LCD
;REG. DE RESPALDO DEL REG. EEADR
;REG. PARA IDENTIFICAR SALIDAS ACTIV.
;REG. PARA IDENTIFICAR SALIDAS DESACT.
;REG. CON LAS SALIDAS ACTIVAS.
;INICIO DEL BANCO 0
;INICIO DEL BANCO 1
;INICIO DEL BANCO 2
;INICIO DEL BANCO 3
BANKSEL BANK_0
BANKSEL BANK_1
BANKSEL BANK_2
BANKSEL BANK_3
;PASA AL BANCO 0
;PASA AL BANCO 1
;PASA AL BANCO 2
;PASA AL BANCO 3
PORTC,2
PORTD,6
PORTD,7
PORTA,4
PORTA,5
#DEFINE FZ
STATUS,Z
;BANDERA DE CERO “Z”
#DEFINE FDC STATUS,DC
;BANDERA DE ACARREO DIGITAL “DC”
#DEFINE FC
STATUS,C
;BANDERA DE ACARREO “C”
#DEFINE AM
INDGENR,0
;INDICADOR DE AM
lvii
#DEFINE PM
INDGENR,1
;INDICADOR DE PM
#DEFINE TITILAR INDGENR,2
;INDICADOR DE TITILAR LOS “:”
#DEFINE MODIFC INDGENR,3
;INDICADOR DE CAMBIO FORZADO
DEL RELOJ
#DEFINE PRI_SEG INDGENR,4
;INDICADOR DE MODIF. EN LA DEC.
O UNI.
#DEFINE ANOFF INDGENR,5
;INDICADOR DE HORA ON/OFF DE
LOS PROGM.
#DEFINE IGUAL INDGENR,6
;INDICADOR DE TIEMPO PRGM=
TIEMPO REAL
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
#DEFINE I_FAL_0 I_FAL,0
#DEFINE I_FAL_1 I_FAL,1
#DEFINE I_FAL_2 I_FAL,3
LIST P=16F877
;INDICADOR DE FALLA EN EL LCD
;INDICADOR DE FALLA EN EL LCD
;INDICADOR DE FALLA EN EL LCD
;TIPO DE MICROCONTROLADOR A UTILIZAR
;
;-----------------------------------------------------------------------------;--- PROGRAMA PRINCIPAL DE TEMPORIZADOR DE SEIS SALIDAS
--;-----------------------------------------------------------------------------;
ORG 0X00
;VECTOR DE RESET
NOP
NOP
GOTO ORIGEN
;VA AL PRINCIPIO DEL PROGRAMA
NOP
NOP
MOVWF W2
;GUARDA VALOR DE W
MOVF STATUS,W
;GUARDA VALOR DE STATUS
MOVWF STATUS2
MOVF PCLATH,W
;GUARDA VALOR DE PCLATH
MOVWF PCLATH2
CLRF PCLATH
GOTO INTERRU
;VA A LA RUTINA DE INTERRUPCIONES
;--PROGRAMA PRINCIPAL
--INICIO CLRF PORTA
;INICIALIZA TODOS LOS PUERTOS
CLRF PORTB
CLRF PORTC
CLRF PORTD
lviii
CLRF PORTE
BANCO_1
;BANCO 1
MOVLW 0XFF
MOVWF TRISA
;RA0-RA5 = ENTRADA
CLRF TRISB
;RB0-RB7 = SALIDA
MOVLW B’11111001’
MOVWF ADCON1
;RC0,RC3-RC7 = ENT. Y RCI-RC2 = SAL.
CLRF TRISD
;RD0,RC7 = SALIDA
CLRF TRISE
;RE0-RE2 = SALIDA
MOVLW B’10001101’
MOVWF ADCON1
;RE0-RE2,RA5 = DIG. Y RA0-RA3 =
ANALOG.
BANCO_0
;BANCO 0
BSF LUZ
MOVLW .5
MOVWF TMP_LUZ
GOTO SIGUE
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
INCLUDE “LCD.H”
MOVWF MENSAJE
CALL DISPLAY
MOVLW 0X40
MOVWF DIRINC
;RUTINA QUE CONTROLA EL MODULO LCD
;INDICA CUAL ES EL MENSAJE
;VA A ESCRIBIR EL MENSAJE
;DIRECCION DE INICIO DEL
MOVLW
MOVWF MENSAJE
;INDICA CUAL ES EL
CALL DISPLAY
;VA A ESCRIBIR EL MENSAJE
L_FUN_0 BCF 150MSEG
;BORRA BANDERA DE 50 MILISEG.
CALL OUT_ACT
;VA A VERIFICAR SI DEBE ACTIVAR
SALIDA
CALL ESP_TMP
;VA A SUBRUTINA DE ESP_TMP
LCALL FALLAS
;VA A REVISAR SI HAY FALLAS
BTFSS IUNSEG
;VERIFICA SI A TRANSCURRIDO 1 SEGUNDO
B $+5
BCF IUNSEG
;LIMPIA BANDERA DE UN SEGUNDO
DECFSZ TMP_FUN,F
;VERIFICA SI A PASADO 10 SEGUNDOS
B $+2
B CIC_REL
;SALTA A LA FUNCION TRAS 10 SEG
MOVLW 0X0B
;VE SI ENTRA A LA RUTINA CON CAMBIOS
XORWF TECLA,W
SKPNZ
lix
B CIC_REL
MOVLW 0X0A
XORWF TECLA,W
SKPZ
B L_FUN_0
INCF CNT_FUN,F
B MENU
FUN_1 CALL INICIA
CLRF DIRINC
MOVLW SEL_PGM
MOVWF MENSAJE
CALL DISPLAY
MOVLW 0X40
MOVWF DIRINC
MOVLW BOTONES
MOVWF MENSAJE
CALL DISPLAY
L_FUN_1
BCF 150MSEG
CALL OUT_ACT
SALIDA
CALL ESP_TMP
LCALL FALLAS
BTFSS IUNSEG
B $+5
;VA A LA FUNCION 0
;VE SI DEBE DE SALIR DE LA RUTINA
;VA AL PRINCIPIO DEL LAZO POR RESPUESTA
;PASA A LA PROXIMA FUNCION DEL MENU
;VA A MENU PRINCIPAL DE OPCIONES
S
O
D
VA
R
E
S
;INICIALIZA MODULO LCD
;DIRECCION DE INICIO DEL MENSAJE
E
R
S
HO ;INDICA CUAL ES EL MENSAJE
EC
R
E
D
BCF IUNSEG
DECFSZ TMP_FUN,F
;VA A ESCRIBIR EL MENSAJE
;DIRECCION DE INICIO DEL MENSAJE
;INIDICA CUAL ES EL MENSAJE
;VA A ESCRIBIR EL MENSAJE
;BORRA BANDERA DE 50 MILISEG.
;VA A VERIFICAR SI DEBE ACTIVAR
;VA A SUBRUTINA DE ESP_TMP
;VA A REVISAR SI HAY FALLAS
;VERIFICA SI A TRANSCURRIDO 1 SEGUNDO
;LIMPIA BANDERA DE UN
;VERIFICA SI A PASADO 10
B
B CIC_PGM
;SALTA A LA FUNCION TRAS 10
MOVLW 0X0B
;VE SI ENTRA A LA RUTINA CON
XORWF
SKPNZ
B CIC_PGM
MOVLW 0X0A
;VA A LA FUNCION
;VE SI DEBE DE SALIR DE LA
lx
ORWF TECLA,W
SKPZ
B L_FUN_1
INCF CNT_FUN,F
B MENU
;VA AL PRINCIPIO DEL LAZO POR RESPUESTA
;PASA A LA PROXIMA FUNCION DEL MENU
;VA A MENU PRINCIPAL DE OPCIONES
FUN_2 CALL INICIA
CLRF DIRINC
MOVLW SEL_SAL
MOVWF MENSAJE
CALL DISPLAY
MOVLW 0X40
MOVWF DIRINC
MOVLW BOTONES
MOVWF MENSAJE
CALL DISPLAY
L_FUN_2 BCF 150MSEG
CALL OUT_ACT
CALL ESP_TMP
LCALL FALLAS
BTFSS IUNSEG
B $+7
BCF IUNSEG
DECFSZ TMP_FUN,F
B $+4
LGOTO CIC_SAL
MOVLW 0X0B
XORWF TECLA,W
SKPZ
B $+4
S
O
D
VA
R
E
S
;INICIALIZA MODULO LCD
;DIRECCION DE INICIO DEL MENSAJE
E CUAL ES EL MENSAJE
;INDICA
R
S
HO;VA A ESCRIBIR EL MENSAJE
EC
R
E
D
LGOTO CIC_SAL
MOVLW 0X0A
XORWF TECLA,W
SKPZ
B L_FUN_2
;DIRECCION DE INICIO DEL MENSAJE
;INDICA CUAL ES EL MENSAJE
;VA A ESCRIBIR EL MENSAJE
;BORRA BANDERA DE 50 MILISEG.
;VA A VERIFICA SI DEBE ACTIVAR SALIDA
;VA A SUBRUTINA DE ESP_TMP
;VA A REVISAR SI HAY FALLAS
;VERIFICA SI A TRANSCURRIDO 1 SEGUNDO
;LIMPIA BANDERA DE UN SEGUNDO
;VERIFICA SI A PASADO 10 SEGUNDOS
;SALTA A LA FUNCION TRAS 10 SEG
;VE SI ENTRA A LA RUTINA CON CAMBIOS
;VA A LA FUNCION 0
;VE SI DEBE DE SALIR DE LA RUTINA
;VA AL PRINCIPIO DEL LAZO POR RESPUESTA
INCLUDE “TECLADO.H”
;RUTINA QUE LEE TECLADO
SIGUE CALL INICIA
BSF LUZ
lxi
CALL LP_TMP
CALL BEEP
CALL LP_TMP
CALL LP_TMP
CALL BEET
CALL LP_TMP
CALL LP_TMP
CALL BEEP
CALL LP_TMP
CLRF CNT_FUN
CLRF P_DIAS
CLRF P_HORAS
CLRF P_MINUTOS
CLRF Nº_LCD
CLRF I_FAL
MOVLW 0X01
MOVWF Nº_PRGM
MOVWF Nº_SALD
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
MENU NOP
CLRF PCLATH
MOVLW 0XFF
MOVWF TECLA
MOVLW .10
;PREPARA TEMPORIZADORA A 10 SEG.
MOVWF TMP_FUN
BSF MODIFIC
MOVF CNT_FUN,W
;VERIFICA SI ES < Día y Hora >
SUBLW 0X00
SKPNZ
B FUN_0
;SALTA A LA FUNCION 0
MOVF CNT_FUN,W
;VERIFICA SI ES < Programación >
SUBLW 0X01
SKPNZ
B FUN_1
;SALTA A LA FUNCION 1
MOVF CNT_FUN,W
;VERIFICA SI ES <Act/Des Salida>
SUBLW 0X02
SKPNZ
B FUN_3
;SALTA A LA FUNCION 3
CLRF CNT_FUN
B MENU
FUN_0 CALL INICIA
;INICIALIZA MODULO LCD
lxii
CLRF DIRINC
MOVLW SEL_REL
INCF CNT_FUN,F
B MENU
;DIRECCION DE INICIO DEL MENSAJE
;PASA A LA PROXIMA FUNCION DEL MENU
;VA A MENU PRINCIPAL DE OPCIONES
FUN_3 CALL INICIA
;INICIALIZA MODULO LCD
CLRF DIRINC
;DIRECCION DE INICIO DEL MENSAJE
MOVLW SEL_CNT
MOVWF MENSAJE
;INIDICA CUAL ES EL MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EL MENSAJE
MOVLW 0X40
MOVWF DIRINC
;DIRECCION DE INICIO DEL MENSAJE
MOVLW BOTONES
MOVWF MENSAJE
;INDICA CUAL ES EL MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EL MENSAJE
L_FUN_3 BCF 150MSEG
;BORRA BANDERA DE 50 MILISEG
CALL OUT_ACT
;VA A VERIFICAR SI DEBE ACTIVAR SALIDA
CALL ESP_TMP
;VA A SUBRUTINA DE ESP_TMP
LCALL FALLAS
;VA A REVISAR SI HAY FALLAS
BTFSS IUNSEG
;VERIFICA SI A TRANSCURRIDO 1 SEGUNDO
B $+7
BCF IUNSEG
;LIMPIA BANDERA DE UN SEGUNDO
DECFSZ TMP_FUN,F
;VERIFICA SI A PASADO 10 SEGUNDOS
B $+4
LGOTO CIC:LCD
;SALTA A LA FUNCION TRAS 10 SEG
MOVLW 0X0B
;VE SI ENTRA A LA RUTINA CON CAMBIOS
XORWF TECLA,W
SKPZ
B $+4
LGOTO CIC_LCD
;VA A LA FUNCION 3
MOVLW 0X0A
;VE SI DEBE DE SALIR DE LA RUTINA
XORFWF TECLA,W
SKPZ
B L_FUN_3
;VA AL PRINCIPIO DEL LAZO POR RESPUESTA
CLRF CNT_FUN
;PASA A LA PROXIMA FUNCION DEL MENU
B MENU
;VA A MENU PRINCIPAL DE OPCIONES
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
;--RUTINAS PARA MOSTRAR LA HORA EN LA PANTALLA LCD
--CIC_REL MOVLW 0XFF
;BORRA CONTENIDO DEL REGISTRO
TECLA
MOVWF TECLA
lxiii
CALL INICIA
BSF MODIFIC
MOVLW 0X40
MOVWF DIRINC
MOVLW SEL_REL
MOVWF MENSAJE
CALL DISPLAY
;VA A INICIALIZAR EL MODULO LCD
;ESCRIBE MENSAJE
S
O
D
A POR TIEMPO
VENTRA
R
MOS_REL BTFSC IMEDSEG
;VERIFICA
SI
E
S
E
B VER_REL
R
S ;VERIFICA SI ENTRA POR ORDEN
BTESS MODIFIC HO
C
B NO_REL
RE
E
D
VER_REL BCF AM
BCF PM
MOVF DIAS,W
;MUEVE EL DIA AL REG. EL_DIA
MOVWF EL_DIA
MOVF HORAS,W
;MUEVE LA HORA AL REG. LA HORA
MOVWF LA_HORA
MOVF MINUTOS,W
;MUEVE LOS MINUTOS AL REG.
LOS_MIN
MOVWF LOS_MIN
MOVF LA_HORA,W
;ENCIENDE INDICADOR DE A.M. O
P.M.
SUBLW .11
SKPNC
BSF AM
SKPC
BSF PM
MOVF LOS_MIN, W
;CONVIERTE MINUTOS A BCD PARA
MOSTRARLO
CALL BIN_BCD
MOVF BCDL, W
MOVWF DIGITO1
MOVF BCDH, W
MOVWF DIGITO2
MOVF LA HORA, W
;BUSCA EQUIVALENTE HORA
MILITAR
A NORMAL
SUBLW .12
SKPNC
;VERIFICA SI LA HORA ES MAYOR DE 12
B NO_PASA
MOVLW .12
lxiv
SUBWF LA HORA, W
B LISTACH
NO_PASA
TSTF LA_HORA
SKPZ
B ANTLIST
MOVLW .12
B LISTACH
;VERIFICA SI LA HORA ES CERO 0--> 12
S
O
D
VA
R
;CONVIERTE
HORAS A BCD
E
S
E
R
S
HO
ANTLIST
MOVF LA_HORA, W
PARA
MOSTRARLO
LISTACH CALL BIN_BCD
MOVF BCDL, W
MOVWF DIGITO3
MOVF BCDH, W
MOVWF DIGITO4
CLRF DIRINC
;UBICA DIA DE LA SEMANA
MOVF EL_DIA, W
;INDICA EL DIA DE LA SEMANA
CALL DEC_DIA
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EL DIA DE LA SEMANA
MOVLW 0X04
;UBICA LA HORA
MOVWF DIRINC
MOVF DIGITO, W
;VERIFICA SI DECENA DE HORA ES CERO
BNZ NO_CERO
MOVLW ESPACIO
;COLOCA UN ESPACIO EN DECENA DE
HORA
B SIGUE_R
NO_CERO CALL T_ASCII
;BUSCA UBICACIÓN EN LA TABLA
SIGUE_R MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
MOVF DIGITO3, W
CALL T_ASCII
;BUSCA UBICACIÓN EN LA TABLA
MOVWF MENSAJE
CALL PROXIMO
;VA A ESCRIBIR EN LA PANTALLA
MOVLW 0X07
;UBICA LOS MINUTOS
MOVWF DIRINC
MOVF DIGITO2, W
CALL T_ASCII
;BUSCA UBICACIÓN EN LA TABLA
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
MOVF DIGITO1, W
EC
R
E
D
lxv
CALL T_ASCII
;BUSCA UBICACIÓN EN LA PANTALLA
MOVWF MENSAJE
CALL PROXIMO
;VA A ESCRIBIR EN LA PANTALLA
MOVLW 0X09
;UBICA INDICADORES DE AM O PM
MOVWF DIRINC
BTFSS AM
;VERIFICA SI ES AM O PM
B ES_PM
MOVLW A.M.
;ES AM
B LISTO_R
ES_PM MOVLW P.M.
;ES PM
LISTO_R MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
MOVLW 0X06
MOVWF DIRINC
;UBICA DIRECCION DE LOS DOS PUNTOS
BTFSS TITILAR
;VERIFICA SI APAGA O ENCIENDE “:”
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
B NO_TITI
BCF TITILAR
SI_TITI
MOVLW PUNTOS
;ES “:”
B ESCRIB
NO_TITI BSF TITILAR
MOVLW ESPACIO
;ES “ ”
ESCRIB MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
BCF IMEDSEG
;BORRA BANDERA DE ½ SEG.
BCF MODIFC
;BORRA BANDERA DE MODIFICACION
NO_REL
BCF 150MSEG
;BORRA BANDERA DE 50 MILISEG.
CALL OUT_ACT
;VA A VERIFICA SI DEBE ACTIVAR SALIDA
CALL ESP_TMP
;VA A SUBRUTINA DE ESP_TMP
LCALL FALLAS
;VA A REVISAR SI HAY FALLAS
MOVLW 0X0A
;VE SI DEBE DE SALIR DE LARUTINA
XORWF TECLA, W
SKPNZ
B MENU
;VA A MENU PRINCIPAL DE OPCIONES
MOVLW 0X0B
;VE SI ENTRA A LA RUTINA CON CAMBIOS
XORWF TECLA, W
SKPNZ
B CMB_REL
;VA A CAMBIAR EL DIA Y LA HORA
B MOS_REL
;VA AL CICLO DEL RELOJ
;--- RUTINA PARA CAMBIAR EL DIA Y LA HORA EN EL RELOJ
--CMB_REL MOVLW OXFF
;BORRA CONTENIDO DEL REGISTRO
lxvi
TECLA
MOVWF TECLA
CALL INICIA
BCF AM
BCF PM
MOVF DIAS, W
MOVWF EL_DIA
MOVF HORAS, W
MOVWF LA_HORA
MOVF MINUTOS, W
LOS_MIN
;VA A INICIALIZAR EL MODULO LCD
;MUEVE EL DIA AL REG. EL_DIA
S
O
D
RVA AL REG.
;MUEVE S
LOS
MINUTOS
E
E
R
S
HO
;MUEVE LA HORA AL REG. LA_HORA
EC
R
E
D
MOVWF
CALL
MOVLW 0X40
;ESCRIBE MENSAJE
MOVWF DIRINC
MOVLW BOTONES
MOVWF MENSAJE
CALL DISPLAY
CALL OUT_ACT
CALL ESP_TMP
LCALL FALLAS
BCF 150MSEG
CALL RC_DIA
MOVLW 0X0A
;VA A VERIFICA SI DEBE ACTIVAR SALIDA
;VA A SUBRUTINA DE ESP_TMP
;VA A REVISAR SI HAY FALLAS
;BORRA BANDERA DE 50 MILISEG
;VA A RUTINA DE
;VE SI SALE A LA RUTINA SIN
XORWF
SKPNZ
B
MOVLW 0X0B
;VE SI ENTRA A LA RUTINA CON CAMBIOS
XORWF TECLA, W
SKPZ
B CIC_REL
MOVF EL DIA, W
;MUEVE EL DIA AL REG. EL_DIA
lxvii
MOVWF DIAS
MOVF LA_HORA, W
MOVWF HORAS
MOVF LOS_MIN, W
LOS_MIN
MOVWF MINUTOS
B CIC_REL
;MUEVE LA HORA AL REG. LA HORA
;MUEVE LOS MINUTOS AL REG.
S
O
D
VA
R
E
S
VER_CRL NOP
MOVF LA_HORA, W
;ENCIENDE INDICADOR DE A.M. O P.M.
SUBLW .11
SKPNC
BSF AM
SKPC
BSF PM
MOVF LOS_MIN, W
;CONVIERTE MINUTOS A BCD PARA
MOSTRARLO
CALL BIN_BCD
MOVF BCDL, W
MOVWF DIGITO1
MOVF BCDH, W
MOVWF DIGITO2
MOVF LA_HORA, W
;BUSCA EQUIVALENTE HORA MILITAR
A NORMAL
SUBLW .12
SKPNC
;VERIFICA SI LA HORA ES MAYOR DE 12
B NO_PAS1
E
R
S
HO
EC
R
E
D
MOVLW .12
SUBWF LA_HORA, W
B LISTAC1
NO_PAS1
TSTF LA HORA
;VERIFICA SI LA HORA ES CERO 0--> 12
SKPZ
B ANTLISI
MOVLW .12
B LISTAC1
ANTLIS1
MOVF LA_HORA, W
;CONVIERTE HORAS A BCD PARA
MOSTRARLO
LISTAC1
CALL BIN_BCD
MOVF BCDL, W
MOVWF DIGITO3
lxviii
MOVF BCDH, W
MOVWF DIGITO4
CLRF DIRINC
MOVF EL_DIA, W
;UBICA DIA DE LA SEMANA
;INDICA EL DIA DE LA SEMANA?
CALL
BTFSS TITILAR
;VERIFICA SI APAGA O ENCIENDE
PROGRAM
B NO_TIPG
BCF TITILAR
SI_TIPG
MOVF Nº_PRGM, W
;ESCRIBE Nº DE PROGRAMA
CALL T ASCII
B ESCRIPG
NO_TIPG BSF TITILAR
MOVLW ESPACIO
;BORRA Nº DE PROGRAMA
ESCRIPG MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
BCF IMEDSEG
;BORRA BANDERA DE ½ SEG.
BCF MODIFIC
;BORRA BANDERA DE MODIFICACIÓN
NO_PGM BCF 150MSEG
;BORRA BANDERA DE 50 MILISEG
CALL OUT_ACT
;VA A VERIFICA SI DEBE ACTIVAR SALIDA
CALL ESP_TMP
;VA A SUBRUTINA DE ESP_TMP
LCALL FALLAS
;VA A REVISAR SI HAY FALLAS
MOVLW 0X0A
;VE SI DEBE DE SALIR DE LA RUTINA
XORWF TECLA, W
SKPNZ
B MENU
;VA A MENU PRINCIPAL DE OPCIONES
MOVLW 0X0B
;VE SI ENTRA A LA RUTINA CON CAMBIOS
XORWF TECLA, W
SKPNZ
B CMB_PGM
;VA A CAMBIAR EL DIA Y LA HORA
MOVF TECLA, W
;VERIFICA SI HAY UNA NUEVA TECLA
XORLW 0XFF
;...PULSADA
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
SKPNZ
B NO_CBPG
MOVF TECLA, W
TECLA...
SUBLW 0X06
SKPC
B SI_CBPG
TSTF TECLA
;VERIFICA SI LA SELECCIÓN DE LA
;...ESTA ENTRE 1 Y 6
lxix
SKPNZ
B SI_CBPG
MOVF TECLA, W
;CAMBIA EL Nº SI SELECCIÓN ES VALIDA
MOVWF Nº_PRGM
SI_CBPG B CIC_PGM
;VA AL PRINCIPIO DE LA RUTINA DE
PROGRM
NO_CBPG B MOS_PGM
;VA AL CICLO DE VISUALIZACIÓN DE
PROGRM
S
O
D
VA
R
E
S
E
R
S
HO
;--- RUTINA PARA CAMBIAR EL DIA Y LA HORA EN EL PROGRAMA
--CMB_PGM BCF ONOFF
CMB_PG2 MOVLW 0XFF
;BORRA CONTENIDO DEL REGISTRO
TECLA
MOVWF TECLA
CALL INICIA
;VA A INICIALIZAR EL MODULO LCD
EC
R
E
D
CALL LEER
CALL LOAD PG
VARIABLES
;VA A CARGAR EL PROGRAMA EN
BCF AM
BCF PM
MOVF P_DIAS, W
;MUEVE EL DIA PROGRAMADO AL REG.
EL_DIA
MOVWF EL_DIA
MOVF HORAS, W
;MUEVE LA HORA PROGRAMADA AL
REG. LA_HORA
MOVWF LA_HORA
MOVF P_MINUTOS, W ;MUEVE LOS MINUTOS PROGRAMADO
AL REG. LOS_MIN
MOVWF LOS_MIN
CALL VER_CPG
MOVLW 0X42
;ESCRIBE MENSAJE
MOVWF DIRINC
MOVLW PROGRAM
MOVLW ESPACIO
MOVWF MENSAJE
CALL PROXIMO
MOVF Nº PRGM, W
CALL T_ASCII
INIDICA EL NUMERO DEL PROGRAMA
lxx
MOVWF MENSAJE
CALL PROXIMO
MOVLW ESPACIO
MOVWF MENSAJE
CALL PROXIMO
MOVLW ESLATCH
MOVWF MENSAJE
CALL PROXIMO
MOVLW ON
BTFSC ONOFF
MOVLF OFF
MOVWF MENSAJE
CALL PROXIMO
CALL OUT_ACT
CALL ESP_TMP
LCALL FALLAS
BCF I50MSEG
CALL RC_PD1A
MOVLW 0X0A
XORWF TECLA, W
SKPNZ
B CIC_PGM
MOVLW 0X0B
XORWF TECLA, W
SKPZ
B CIC_PGM
CALL ESCRIBA
EEPROM
BTFSC ONOFF
B CIC_PGM
PROGRAMACION
BSF ONOFF
B CMB_PG2
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
;VA A VERIFICA SI DEBE ACTIVAR SALIDA
;VA A SUBRUTINA DE ESP_TMP
;VA A REVISAR SI HAY FALLAS
;BORRA BANDERA DE 50 MILISEG
;VA A RUTINA DE MODIFICACION
;VE SI SALE A LA RUTINA SIN CAMBIOS
;REGRESA SI SE ABORTO PROGRAMACION
;VE SI ENTRA A LA RUTINA CON CAMBIOS
;REGRESA SI ES UNA TECLA DESCONOCIDA
;VA A ESCRIBIR PROGRAMA EN LA
;VERIFICA SI ES PARTE ON O OFF
;REGRESA SI A FINALIZADO
;REGRESA A ESCRIBIR PARTE OFF
VER_CPG
MOVF LA_HORA, W
;ENCIENDE INIDCADOR DE
A.M. O
P.M.
SUBLW .11
SKPNC
BSF AM
SKPC
BSF PM
MOVF LOS_MIN, W
;CONVIERTE MINUTOS A BCD PARA
lxxi
MOSTRARLO
CALL BIN_BCD
MOVF BCDL, W
MOVWF DIGITO1
MOVF BCDH, W
MOVWF DIGITO2
MOVF LA_HORA, W
;BUSCA EQUIVALENTE HORA MILITAR
A NORMAL
SUBLW .12
SKPNC
;VERIFICA SI LA HORA ES MAYOR DE 12
B NO_PPG1
MOVLW .12
SUBWF LA_HORA, W
B LISTPG1
NO_PPG1
TSTF LA_HORA
;VERIFICA SI LA HORA ES CERO 0--> 12
SKPZ
B ANTILPG1
MOVLW .12
B LISTPG1
ANTLPG1 MOVF LA_HORA, W
;CONVIERTE HORAS A BCD PARA
MOSTRARLO
LISTPG1
CALL BIN_BCD
MOVF BCDL, W
MOVWF DIGITO3
MOVF BCDH,W
MOVWF DIGITO4
CLRF DIRINC
;UBICA DIA DE LA SEMANA
MOVF EL_DIA, W
;UBICA EL DIA DE LA SEMANA
CALL DEC_DIA
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EL DIA DE LA SEMANA
MOVLW 0X04
;UBICA LA HORA
MOVWF DIRINC
MOVF DIGITO4, W
;VERIFICA SI DECENA DE HORA ES CERO
BNZ NO_CPG1
MOVLW ESPACIO
;COLOCA UN ESPACIO EN DECENA DE
HORA
B SIGPG_
NO_COG1
CALL T_ASCII
;BUSCA UBICACION EN LA TABLA
SIGPG_1 MOVWF MENSAJE
S
O
D
VA
R
E
S
EC
R
E
D
E
R
S
HO
lxxii
CALL DISPLAY
MOVF DIGITO3, W
CALL T_ASCII
MOVWF MENSAJE
CALL PROXIMO
MOVLW 0X07
MOVWF DIRINC
MOVF DIGITO2, W
CALL T_ASCII
;VA A ESCRIBIR EN LA PANTALLA
;BUSCA UBICACIÓN EN LA TABLA
;VA A ESCRIBIR EN LA PANTALLA
;UBICA LA MINUTOS
S
O
D
VA
R
E
S
;BUSCA UBICACIÓN EN LA TABLA
E
R
S
MOVWF MENSAJEHO
EC ;VA A ESCRIBIR EN LA PANTALLA
CALL DISPLAY
R
E
D DIGITO1, W
MOVF
CALL T_ASCII
;BUSCA UBICACIÓN EN LA TABLA
MOVWF MENSAJE
CALL PROXIMO
;VA A ESCRIBIR EN LA PANTALLA
MOVWF DIRNC
BTFSS AM
;VERIFICA SI ES AM O PM
B ES_OGPM
MOVLW A.M.
;ES AM
B LISPG_1
ES_PGPM MOVLW P.M.
;ES PM
LISPG_1
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
MOVLW 0X06
MOVWF DIRINC
;UBICA DIRECCION DE LOS DOS PUNTOS
MOVLW PUNTOS
;ES “:”
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
RETURN
;RETORNA
;--- SUBRUTINA PARA CAMBIAR EL DIA EN LOS PROGRAMAS
-RC_PDIA MOVLW 0XFF
;BORRA CONTENIDO DEL REGISTRO
TECLA
MOVWF TECLA
CALL VER_CPG
;REFRESCA PANTALLA LCD
LC_PDIA
CALL ESP_TMP
;VA A SUBRUTINA DE ESP_TMP
LCALL FALLAS
;VA A REVISAR SI HAY FALLAS
BCF I50MSEG
;BORRA BANDERA DE 50 MILISEG.
MOVLW 0X0A
;VE SI DEBE DE SALIR DE LA RUTINA
XORWF TECLA, W
lxxiii
SKPNZ
RETURN
;SALE DE LA RUTINA
R_PDIA
MOVF TECLA, W
;VERIFICA SI LA SELECCIÓN
DE LA
TECLA...
SUBLW 0X07
;...ESTA ENTRE 1 Y 7
MOVF TECLA, W
;CAMBIA EL DIA SI SELECCIÓN ES
VALIDA
MOVWF EL_DIA
TITILDP BTFSS IMEDSEG
;VERIFICA SI TITILA LA SELECCIÓN
B SIGUEDP
BCF IMEDSEG
;BORRA BANDERA INDICADORA DE ½ SEG.
CLRF DIRINC
;INDICA DIRECCION DE INICIO
BTFSS TITILAR
;VERIFICA SI APAGA O ENCIENDE “:”
B NO_TIDP
BCF TITILAR
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
SI_TIDP
MOVF EL_DIA, W
CALL DEC_DIA
;ES EL DIA
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
B SIGUEDP
NO_TIDP BSF TITILAR
MOVLW ESPACIO
;SON ESPACIOS
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
MOVLW ESPACIO
MOVWF MENSAJE
CALL PROXIMO
MOVLW ESPACIO
MOVWF MENSAJE
CALL PROXIMO
SIGUEDP MOVLW 0X0B
;VE SI SALE DE LA RUTINA CON
CAMBIOS
XORWF TECLA, W
SKPNZ
B RC_PHOR
;PROSIGUE CON EL CAMBIO DE DIA Y HORA
CALL OUT_ACT
;VA A VERIFICA SI DEBE ACTIVAR SALIDA
BLC_PDIA
;SALTA AL PRINCIPIO DE LA RUTINA
;--- SUBRUTINA PARA CAMBIAR LA HORA EN LOS PROGRAMAS
--RC_PHOR MOVLW 0XFF
;BORRA CONTENIDO DEL REGISTRO
lxxiv
TECLA
MOVWF TECLA
CALL VER_CPG
;REFRESCA PANTALLA LCD
BCF PRI_SEG
;GARANTIZA QUE PRIMERO SEA LA
DECENAS
LC_PHOR CALL ESP_TMP
;VA A SUBRUTINA DE ESP_TMP
LCALL FALLAS
;VA A REVISAR SI HAY FALLAS
BCF I50MSEG
;BORRA BANDERA DE 50 MILISEG.
MOVLW 0X0A
;VE SI DEBE DE SALIR DE LA RUTINA
XORWF TECLA, W
SKPNZ
RETURN
;SALIR DE LA RUTINA
R_PHORA
BTFSC PRI_SEG
;VERIFICA SI SON LAS DEC. O LAS
UNIDADES
B C_PUNH
MOVLW 0X01
XORWF TECLA, W
;VERIFICA QUE SI ES UNO
SKPZ
B PG_ES10
MOVF TECLA, W
MOVWF DIGITO4
;ESCRIBE UNO (DECENAS)
BSF PRI_SEG
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
B C_PHOR1
PG_ES10
MOVF TECLA,F
;VERIFICA SI ES CERO
SKPZ
B C_PHORI
CLRF DIGITO4
;ESCRIBE CERO (DECENAS)
BSF PRI_SEG
B C_PHOR1
C_PUNH TSTF DIGITO4
SKPNZ
B C_PUNHR
MOVF DIGITO3, W
SUBLW 0X02
SKPC
CLRF DIGITO3
MOVF TECLA, W
SUBLW 0X02
;VERIFICA SI ES 2 O MENOR
SKPC
B PG_ES0X
B C_PUNHB
lxxv
C_PUNHR MOVF TECLA, W
SUBLW 0X09
;VERIFICA SI ES 9 O MENOR
SKPC
B PG_ES0X
C_PUNHB MOVF TECLA, W
SUBLW 0X00
,VERIFICA QUE SEA 1 O MAYOR
SKPNC
B PG_ES0X
MOVF TECLA, W
MOVWF DIGITO3
;ESCRIBE DEL 1 AL 9 (UNIDADES)
BCF PRI_SEG
B C_PHOR1
PG_ES0X MOVF TECLA,F
;VERIFICA SI ES CERO
SKPZ
B C_PHORI
MOVF DIGITO4,F
SKPNZ
B C_PHORI
CLRF DIGITO3
;ESCRIBE CERO (UNIDADES)
BCF PRI_SEG
C_PHORI TSTF DIGITO4
;VERIFICA QUE NO SEA H=H=0 (00:MM)
SKPNZ
TSTF DIGITO3
SKPNZ
INCF DIGITO,F
MOVLW 0X04
;GUARDA VALORES PARA RUTINA
TITILAR
MOVWF DIRINC
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
TITILHP BTFSS IMEDSEG
;VERIFICA SI TITILA LA SELECCIÓN
B SIGUEHP
BCF IMEDSEG
;BORRA BANDERA INDICADORA DE ½ SEG.
BTFSS TITILAR
;VERIFICA SI APAGA O ENCIENDE “:”
B NO_TIHP
BCF TITILAR
SI_TIHP
MOVF DIGITO4, W
;DECENA DE HORA
CALL T_ASCII
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
MOVF DIGITO3, W
;UNIDAD DE HORA
CALL T_ASCII
MOVWF MENSAJE
lxxvi
CALL PROXIMO
;VA A ESCRIBIR EN LA PANTALLA
B SIGUEHP
NO_TIHP BSF TITILAR
MOVLW ESPACIO
;SON ESPACIOS
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
MOVLW ESPACIO
MOVWF MENSAJE
CALL PROXIMO
SIGUEHP MOVLW 0X0B
;VE SI SALE DE LA RUTINA CON
CAMBIOS
XORWF TECLA, W
SKPNZ
B CV_PHOR
;VA A CONVERTIR DE BCD A BINARIO
CALL OUT_ACT
;VA A VERIFICA SI DEBE ACTIVAR SALIDA
B LC_PHOR
;SALTA Al PRINCIPIO DE LA RUTINA
ON_PHOR MOVF DIGITO4, W
MOVWF BCDH
MOVF DIGITO3, W
;CONVIERTE DE BCD A BINARIO
MOVWF BCDL
CALL BCD_BIN
MOVF BINARIO, W
MOVWF LA_HORA
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
;--- SUBRUTINA PARA CAMBIAR LOS MINUTOS EN LOS PROGRAMAS
--RC_PMIN MOVLW OXOFF
;BORRA CONTENIDO DEL REGISTRO
TECLA
MOVWF TECLA
CALL VER_CPG
;REFRESCA PANTALLA LCD
BCF PRI_SEG
;GARANTIZA QUE PRIMERO SEA LA
DECENAS
LC_PMIN CALL ESP_TMP
;VA A SUBRUTINA DE ESP_TMP
LCALL FALLAS
;VA A REVISAR SI HAY FALLAS
BCF I50MSEG
;BORRA BANDERA DE 50 MILISEG.
MOVLW 0X0A
;VE SI DEBE DE SALIR DE LA RUTINA
XORWF TECLA, W
SKPNZ
RETURN
;SALE DE LA RUTINA
R_PMIN BTFSC PRI_SEG
;VERIFICA SI SON LAS DEC. O LAS
UNIDADES
lxxvii
B C_PUNMN
MOVF TECLA, W
;VERIFICA SI ES 5 O MENOR
MOVF TECLA, W
;VERIFICA QUE SEA 1 O MAYOR
SUBLW 0X00
SPKNC
B PG_10MN
MOVF TECLA, W
MOVWF DIGITO2
;ESCRIBE UNO (DECENAS)
BSF PRI SEG
B C_OMIN1
PG_10MN MOVF TECLA,F
;VERIFICA SI ES CERO
SKPZ
B C_PMIN1
CLRF DIGITO2
;ESCRIBE CERO (DECENAS)
BSF PRI-SEG
B C_PMIN1
C_PUNMN MOVF TECLA, W
SUBLW 0X09
;VERIFICA SI ES 9 O MENOR
SKPC
B PG_OXMN
MOVF TECLA, W
SUBLW 0X00
;VERIFICA QUE SEA 1 O MAYOR
SKPNC
B PG_0XMN
MOVF TECLA, W
MOVWF DIGITO1
;ESCRIBE DEL 1 AL 9 (UNIDADES)
BCF PRI_SEG
B C_PMIN1
PG_0XMN MOVF TECLA,F
;VERIFICA SI ES CERO
SKPZ
B C_PMIN1
CLRF DIGITO1
;ESCRIBE CERO (UNIDADES)
BCF PRI_SEG
C_PMIN1 MOVLW 0X07
;GUARDA VALORES PARA LA RUTINA
TITILAR
MOVWF DIRINC
TITILMP
BTFSS IMEDSEG
;VERIFICA SI TITILA LA SELECCIÓN
B SIGUEMP
BCF IMEDSEG
;BORRA BANDERA INDICADORA DE ½ SEG.
BTFSS TITILAR
;VERIFICA SI APAGA O ENCIENDE “:”
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
B NO_TIMP
lxxviii
BCF TITILAR
SI_TIMP
MOVF DIGITO2, W
;DECENA DE HORA
CALL T_ASCII
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
MOVF DIGITO1, W
;UNIDAD DE HORA
CALL T_ASCII
MOVWF MENSAJE
CALL PROXIMO
;VA A ESCRIBIR EN LA PANTALLA
B SIGUEMP
NO_TIMP BSF TITILAR
MOVLW ESPACIO
;SON ESPACIOS
MOVWF MENSAJE
CALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
MOVLW ESPACIO
MOVWF MENSAJE
CALL PROXIMO
SIGUEMP MOVLW 0X0B
;VE SI SALE DE LA RUTINA CON
CAMBIOS
XORWF TECLA, W
SKPNZ
B CV_PMIN
;VA A CONVERTIR DE BCD A BINARIO
CALL OUT_ACT
;VA A VERIFICA SI DEBE ACTIVAR SALIDA
B LC_PMIN
;SALTA AL PRINCIPIO DE LA RUTINA
CV_PMIN MOVF DIGITO2, W
MOVWF BCDH
MOVF DIGITO, W
;CONVIERTE DE BCD A BINARIO
MOVWF BCDL
CALL BCD_BIN
MOVF BINARIO, W
MOVWF LOS_MIN
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
;--- SUBRUTINA PARA CAMBIAR AM <-> PM EN LOS PROGRAMAS
RC_PMAM MOVLW 0XFF
;BORRA CONTENIDO DEL REGISTRO
TECLA
MOVWF TECLA
CALL VER_CPG
;REFRESCA PANTALLA LCD
LC_PMAM CALL ESP_TMP
;VA A SUBRUTINA DE ESP_TMP
LCALL FALLAS
;VA A REVISAR SI HAY FALLAS
BCF I50MSEG
;BORRA BANDERA DE 60 MILISEG
MOVLW 0X0A
;VE SI DEBE DE SALIR DE LA RUTINA
XORWF TECLA, W
MOVLW 0X01
lxxix
XORWF TECLA, W
SKPZ
B PG_ES1
BTFSC AM
B PG_ES1
BCF PM
BSF AM
MOVLW .12
SUBWF LA_HORA,F
PG_ES1 MOVLW 0X02
XORWF TECLA, W
SKPZ
B C_PMAM
BTFSC PM
B C_PMAM
BCF AM
BSF PM
MOVLW .12
ADDWF LA_HORA,F
C_PMAM MOVLW 0X09
TITILAR
MOVWF DIRINC
TITILPP BTFSS IMEDSEG
B SIGUEPP
BCF IMEDSEG
BTFSS TITILAR
B NO_TIPP
BCF TITILAR
SI_TIPP
BTFSS AM
B ES_PM.P
MOVLW A.M.
B $+2
ES_PM.P
MOVLW P.M.
MOVWF MENSAJE
CALL DISPLAY
B SIGUEPP
NO_TIPP BSF TITILAR
MOVLW ESPACIO
MOVWF MENSAJE
CALL DISPLAY
MOVLW ESPACIO
;VERIFICA QUE SI ES UNO
S
O
D
VA
R
E
S
EC
R
E
D
E
R
S
HO
;VERIFICA QUE SI ES UNO
;GUARDA VALORES PARA LA RUTINA
;VERIFICA SI TITILA LA SELECCIÓN
;BORRA BANDERA INDICADORA DE ½ SEG.
;VERIFICA SI APAGA O ENCIENDE “:”
;VERIFICA SI ESCRIBE AM O PM
;VA A ESCRIBIR EN LA PANTALLA
;SON ESPACIOS
;VA A ESCRIBIR EN LA PANTALLA
lxxx
MOVWF MENSAJE
CALL PROXIMO
SIGUEPP MOVLW 0X0B
;VE SI SALE DE LA RUTINA CON
CAMBIOS
XORWF TECLA, W
SKPNZ
RETURN
;ACEPTA CAMBIOS DEL DIA Y HORA
CALL OUT_ACT
;VA A VERIFICA SI DEBE ACTIVAR SALIDA
B LC_PMAM
;SALTA AL PRINCIPIO DE LA RUTINA
S
O
D
VA
R
E
S
E
R
S
O QUE TRANSCURRA 50 mS Y
;--- SUBRUTINA PARA ESPERAR
H
C
E
EXPLORARE
TECLADO
R --ESP_TMPD
CALL TECLADO
;VA A RETINA DE LECTURA DEL
TECLADO
LP_TMP BTFSS I50MSEG
;VERIFICA SI YA A TRANSCURRIDO 50
mS
GOTO LP_TMP
NOP
RETURN
;REGRESA AL CULMINAR LOS 50 MILISEG.
;--SUBRUTINA PARA LA CONVERSION DE BINARIO A BCD
BIN_BCD CLRF BCDH
MOVWF BCDL
LAZOBCD MOVLW .10
SUBWF BCDL, W
SKPC
B LISTO
MOVWF BCDL
INCF BCDH,F
B LAZOBCD
LISTO
RETURN
---
;--SUBRUTINA PARA LA CONVERSION DE BCD A BINARIO --BCD_BIN
MVF BCDH, W
MOVWF BINARIO
CLRC
RLF BINARIO, W
MOVWF BCDH
RLF BINARIO,F
RLF BINARIO,F
lxxxi
RLF BINARIO,F
MOVF BCDH, W
ADDWF BINARIO,F
MOVF BCDL, W
ADDWF BINARIO,F
RETURN
S
O
D
VA
R
E
S
;--RUTINA PARA LEER LOS DATOS EN LA MEMORIA EEPROM
--LEER CALL PREPARA
;VA A PREPARAR REGISTRO EEADR
LEER2
CALL EE_LEER
;VA A LEER EEPROM
MOVWF P_DIAS
;GUARDA DATO EN P_DIAS
BANCO_2
;BANCO 2
INCF EEADR,F
;UBICA DIRECCION DEL NUEVO DATO
CALL EE_LEER
;VA A LEER EEPROM
E
R
S
HO
EC
R
E
D
MOVWF P_HORAS
;GUARDA DATO EN P_HORAS
BANCO_2
;BANCO 2
INCF EEADR,F
;UBICA DIRECCION DEL NUEVO DATO
CALL EE_LEER
;VA A LEER EEPROM
MOVWF P_MINUTOS
;GUARDA DATO EN P_MINUTOS
RETURN
;RETORNA
;--RUTINA PARA ESCRIBIR LOS DATOS EN LA MEMORIA EEPROM
--ESCRIBA CALL PREPARA
;VA A PREPARAR REGISTRO EEADR
MOVF EL_DIA, W
CALL VA_ESC
;VA PREPARAR EE_DATA Y ESCRIBIR
EEPROM
MOVF LA_HORA, W
CALL VA_ESC
;VA PREPARAR EE_DATA Y ESCRIBIR
EEPROM
MOVF LOS_MIN, W
CALL VA_ESC
;VA PREPARAR EE DATA Y ESCRIBIR
EEPROM
RETURN
RETORNA
;--- SUBRUTINA QUE TRASPASA LOS DATOS DEL PRGM. A LOS
REGISTRO DE VIS.--LOAD_PG
MOVF P_DIAS, W
;BUSCA VALOR ACTUAL DEL
DIA
lxxxii
PROGRAMADO
MOVWF EL_DIA
MOVF P_HORAS, W
PROGRAM.
MOVWF LA_HORA
MOVF P_MINUTOS, W
MINUTOS PROG.
MOVWF LOS_MIN
RETURN
;BUSCA VALOR ACTUAL DE LA HORA
;BUSCA VALOR ACTUAL DE LOS
S
O
D
VA
R
E
S
E
R
S
HO
;--- SUBRUTINAS VARIADAS QUE PERMITEN EL MANEJO DE LA
MEMORIA EEPROM --PREPARA
BANCO_2
;VA AL BANCO 2
CLRF EEADR
;ACONDICIONA DIRECCION DE DATOS
EEPROM
BANCO_0
SWAPF Nº_PRGM, W
;UBICA EL PROGRAMA
ANDLW B’01110000’
BTESC ONOFF
IORLW B’00000100’
;INDICA SI ES ON / OFF
BANCO_2
EC
R
E
D
IORWF EEADR,F
BANCO_0
RETURN
VA_ESC
BANCO_2
;BANCO 2
MOVWF EEDATA
;ESCRIBE DATO ENREG. EEDATA
CALL EE_ESCR
;VA A ESCRIBIR DATO
BANCO 2
;BANCO 2
INCF EEADR,F
;AJUSTA EEADR PARA LA PROXIMA
ESCRITURA
BANCO_0
;BANCO 0
RETURN
;RETORNA
EE_LEER
BANCO_3
CLRF EECON 1
BSF EECON1,RD
BANCO_2
;BANCO 3
;LIMPIA REGISTRO EECON 1
;ACTIVA LECTURA DE LA EEPROM
;BANCO 2
lxxxiii
MOVF EEDATA, W
;GUARDA EN W RESULTADO
BANCO_0
;BANCO 0
RETURN
;RETORNA
EE_ESCR
BANCO_3
;BANCO 3
CLRF EECON1
;LIMPIA REGISTRO EECON1
BCF INTCON,GIE
;DESHABILITA LAS INTERRUPCIONES
BSF EECON1, WREN ;HABILITA LA ESCRITURA
MOVLW 0X55
MOVWF EECON2
;SECUENCIA DE SEGURIDAD PARA
ESCRIBIR
MOVLW 0XAA
MOVWF EECON2
BSF EECON1, WR
;COMIENZA PROCESO DE ESCRITURA EN
EEPROM
BSF INTCON,GIE
;HABILITA DE NUEVO LAS
INTERRUPCIONES
NO_TERM BTFSC EECON1,WR
;VERIFICA SI TERMINO PROCESO
(ESCRITURA)
GOTO NO_TERM
BANCO_0
;BANCO 0
RETURN
;RETORNA
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
;--- RUTINA PARA ACTIVAR Y DESACTIVAR LAS SALIDAS
OUT_ACT
BANCO_2
;BANCO 2
MOVF EEADR,W
;GUARDA REGISTRO EEADR
BANCO 0
;BANCO_0
MOVWF EEADR2
MOVLW B’00100000’
MOVWF REG_ON
MOVLW B’11011111’
MOVWF REG_OFF
MOVLW .6
MOVWF Nº_PRGM2
MOVF PORTD, W
;GUARDA LAS SALIDAS QUE ESTAN
ACTIVAS
MOVWF SAL_PGM
LAZ_SAL
SWAPF Nº_PRGM2, W
;UBICA EL PROGRAMA
ANDLW B’01110000’
lxxxiv
---
BANCO 2
CLRF EEADR
EEPROM
IORWF EEADR,F
BANCO_0
LCALL LEER2
BSF PCLATH,3
CALL COMPARA
HORA
;ACONDICIONA DIRECCION DE DATOS
;VA A LEER LA EEPROM
;UBICA BANCO ACTUAL DE LA ROM
;COMPARA SI DATO DE EEPROM = DIA Y
S
O
D
VA
R
E
S
E
R
S
HO
MOVF REG_ON, W
BTFSC IGUAL
IORWF SAL_PGM,F
SWAPF Nº PRGM2, W
ANDLW B’01110000’
BANCO_2
BSF EEADR,2
BANCO_0
LCALL LEER2
BSF PCLATH,3
CALL COMPARA
HORA
EC
R
E
D
;LA ACTIVA SI ES IGUAL
;UBICA EL PROGRAMA
;VA A LEER LA EEPROM
;UBICA BANCO ACTUAL DE LA ROM
;COMPARA SI DATO DE EEPROM = DIA Y
MOVF REG_OFF, W
BTFSC IGUAL
ANDWF SAL_PGM,F
LA DESACTIVA SI ES IGUAL
CLRC
RRF REG_ON,F
SETC
RRF REG_OFF, F
DECESZ Nº_PRGM2, F
GOTO LAZ_SAL
;SALTA A LEER PROXIMO PROGRAMA
MOVF SAL_PGM, W
;ACTIVA SALIDAS PROGRAMADAS Y
FORZADAS
MOVWF PORTD
;ACTIVA LAS SALIDAS
MOVF EEADR2, W
;DEVUELVE VALORES ORIGINALES A
EEADR
BANCO_2
;BANCO 2
MOVWF EEADR
BANCO_0
;BANCO 0
CLRF PCLATH
RETURN
lxxxv
COMPARA BCF IGUAL
;LIMPIA BANDERA DE TIEMPO IGUAL
MOVF P_DIAS, W
;MUEVE DIA PROGRAMADO A W
SKPNZ
;PRUEBA SI ES 0 PARA NO COMPARAR
GOTO DIA_0
XORWF DIAS, W
;PRUEBA SI DIAS ES IGUAL A PDIAS
SKPZ
RETURN
;RETORNA SI NO SON IGUALES
DIA_0 MOVF_HORAS, W
;MUEVE HORA PROGRAMADA A W
XORWF HORAS, W
;PRUEBA SI HORAS ES IGUAL A PHORAS
SKPZ
RETURN
;RETORNA SINO SON IGUALES
MOVF P_MINUTOS, W
;MUEVE MINUTOS PROGRAMADA A W
XORWF MINUTOS, W
;PRUEBA SI MINUTOS ES IGUAL A PMIN
BTESC FZ
;SALTA SI NO SON IGUALES
BSF IGUAL
;ACTIVA BANDERA DE IGUALDAD
RETURN
;RETORNA
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
;--- RUTINAS PARA MOSTRAR LAS SALIDAS EN LA PANTALLA LCD
--CIC_SAL MOVLW 0XFF
;BORRA CONTENIDO DEL REGISTRO
TECLA
MOVWF TECLA
LCALL INICIA
;VA A INICIALIZA EL MODULO LCD
BSF PCLATH,3
;UBICA BANCO ACTUAL DE LA ROM
BSF MODIFIC
MOVLW 0X40
;ESCRIBE MENSAJE
LCALL DISPLAY
BSF PCLATH,3
;UBICA BANCO ACTUAL DE LA ROM
MOVLW 0X00
;ESCRIBE MENSAJE
MOVWF DIRINC
MOVLW SALIDA
MOVWF MENSAJE
LCALL DISPLAY
BSF PCLATH,3
;UBICA BANCO ACTUAL DE LA ROM
CLRF CONSTRU
L_CNSTS INCF CONSTRU,F
MOVLW 0X07
XORWF CONTRU,W
BZ MOS_SAL
MOVLW ESPACIO
lxxxvi
MOVWF MENSAJE
LCALL PROXIMO
MOVF CONSTRU,W
LCALL T_ASCII
MOVWF MENSAJE
LCALL PROXIMA
BSF PCLATH,3
B L_CNSTS
;UBICA BANCO ACTUAL DE LA ROM
S
O
D
A POR TIEMPO
V
R
MOS_SAL BTFSC IMEDSEG
;VERIFICA
SI
ENTRA
E
S
E
B VER_SAL
R
S
BTFSS MODIFIC HO
;VERIFICA SI ENTRA POR ORDEN
C
E
B NO_SAL
DER
VER_SAL MOVLW 0X03
MOVWF DIRINC
CLRC
RLF Nº_SALD, W
ADDWF DIRINC,F
BTFSS TITILAR
;VERIFICA SI APAGA O ENCIENDE Nº
PROGRAM
B NO_TISL
BCF TITILAR
SI_TISL
MOVF Nº_SALD, W
;ESCRIBE Nº DE PROGRAMA
LCALL T_ASCII
BSF PCLATH,3
;UBICA BANCO ACTUAL DE LA ROM
B ESCRISL
NO_TISL BSF TITILAR
MOVLW ESPACIO
;BORRA Nº DE PROGRAMA
ESCRISL
MOVWF MENSAJE
LCALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
BSF PCLATH,3
;UBICA BANCO ACTUAL DE LA ROM
BCF IMEDSEG
;BORRA BANDERA DE ½ SEG.
BCF MODIFIC
;BORRA BANDERA DE MODIFICACION
NO_SAL
BCF I50MSEG
;BORRA BANDERA DE 50 MILISEG.
LCALL OUT_ACT
;VA A VERIFICA SI DEBE ACTIVAR
SALIDA
LCALL ESP_TMP
;VA A SUBRUTINA DE ESP_TMP
LCALL FALLAS
;VA A REVISAR SI HAY FALLAS
BSF PCLATH,3
;UBICA BANCO ACTUAL DE LA ROM
MOVLW 0X0A
;VE SI DEBE DE SALIR DE LA RUTINA
XORWF TECLA, W
SKPNZ
B MENUSL
;VA A MENU PRINCIPAL DE OPCIONES
lxxxvii
MOVLW 0X0B
XORWF TECLA, W
SKPNZ
;VE SI ENTRA A LA RUTINA CON CAMBIOS
B MOD_SAL
MOVF TECLA, W
XORLW 0XFF
SKPNZ
B NO_CBSL
MOVF TECLA, W
TECLA...
SUBLW 0X06
SKPC
B SI_CBSL
TSTF TECLA
SKPNZ
B SI_CBSL
MOVF TECLA, W
MOVWF Nº_SALD
SI_CBSL B CIC_SAL
PROGRM
NO CBSL B MOS_SAL
PROGRM
;VA A CAMBIAR EL DIA Y LA HORA
;VERIFICA SI HAY UNA NUEVA TECLA...
;...PULSADA
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
MOD_SAL NOP
MOVF Nº_SALD, W
XORLW .6
SKPZ
B $+7
BTFSS PORTD,5
B $+4
NOP
BCF PORTD,5
B $+2
BSF PORTD,5
NOP
MOVF Nº_SALD, W
XORLW .5
SKPZ
B $+7
BTFSS PORTD, 4
B $+4
;VERIFICA SI LA SELECCIÓN DE LA
;...ESTA ENTREW 1 Y 6
;CAMBIA EL Nº SI SELECCIÓN ES VALIDA
;VA AL PRINCIPIO DE LA RUTINA DE
;VA AL CICLO DE VISUALIZACION DE
;VERIFICA SI LA ORDEN ES LA SALIDA 6
;VERIFICA SI LA SALIDA ESTA ENCENDIDA
;APAGA SALIDA 6
:ENCIENDE SALIDA 6
;VERIFICA SI LA ORDEN ES LA SALIDA 5
;VERIFICA SI LA SALIDA ESTA ENCENDIDA
lxxxviii
NOP
BCF PORTD,4
B $+2
BSF PORTD,4
NOP
MOVF Nº_SALD, W
XORLW .4
SKPZ
B $+7
;APAGA SALIDA 5
;ENCIENDE SALIDA 5
;VERIFICA SI LA ORDEN ES LA SALIDA 4
S
O
D
VA
R
E
S
EC
R
E
D
E
R
S
HO;VERIFICA SI LA SALIDA ESTA ENCENDIDA
BTFSS PORTD,3
BSF PORTD,3
NOP
MOVF Nº_SALD, W
XORLW .3
SKPZ
B $+7
BTFSS PORTD,2
B $+4
NOP
BCF PORTD,2
B $+2
BSF PORTD,2
NOP
MOVF Nº_SALD, W
XORLW .2
SKPZ
B $+7
BTFSS PORTD,1
B $+4
NOP
BCF PORTD,1
B $+2
BSF PORTD,1
NOP
MOVF Nº_SALD, W
XORLW .1
SKPZ
B $+7
BTFSS PORTD,0
B $+4
NOP
;ENCIENDE SALIDA 4
;VERIFICA SI LA ORDEN ES LA SALIDA 3
;VERIFICA SI LA SALIDA ESTA ENCENDIDA
;APAGA SALIDA 3
;ENCIENDE SALIDA 3
;VERIFICA SI LA ORDEN ES LA SALIDA 2
;VERIFICA SI LA SALIDA ESTA ENCENDIDA
;APAGA SALIDA 2
;ENCIENDE SALIDA 2
;VERIFICA SI LA ORDEN ES LA SALIDA 1
;VERIFICA SI LA SALIDA ESTA ENCENDIDA
lxxxix
BCF PORTD,0
B $+2
BSF PORTD,0
NOP
B CIC_SAL
;APAGA SALIDA 1
;ENCIENDE SALIDA 1
MENUSL LGOTO MENU
S
O
D
VA
R
;--- RUTINAS PARA MOSTRAR LAS SALIDAS
EN
LA PANTALLA LCD
E
S
E
--R
S
CIC_LCD MOVLW 0XFFHO ;BORRA CONTENIDO DEL REGISTRO
C
TECLA
RE
E
D
MOVWF TECLA
LCALL INICIA
;VA A INICIALIZAR EL MODULO LCD
BSF PCLATH,3
BSF MODIFIC
MOVLW 0X40
MOVWF DIRINC
MOVLW SEL_CNT
MOVWF MENSAJE
LCALL DISPLAY
BSF PCLATH,3
MOVLW 0X05
MOVWF DIRINC
MOVLW CONTRAS
MOVWF MENSAJE
LCALL DISPLAY
BSF PCLATH,3
;UBICA BANCO ACTUAL DE LA ROM
;ESCRIBE MENSAJE
;UBICA BANCO ACTUAL DE LA ROM
;ESCRIBE MENSAJE
;UBICA BANCO ACTUAL DE LA ROM
MOS_LCD BTFSC IMEDSEG
;VERIFICA SI ENTRA POR TIEMPO
B VER_LCD
BTFSS MODIFIC
;VERIFICA SI ENTRA POR ORDEN
B NO_LCD
VER_LCD MOVLW 0X0A
MOVWF DIRINC
BTFSS TITILAR
;VERIFICA SI APAGA O ENCIENDE
B NO_TICT
BCF TITILAR
SI_TICT
MOVF Nº_LCD, W
;ESCRIBE Nº DE CONTRASTE
LCALL T_ASCII
xc
BSF PCLATH,3
;UBICA BANCO ACTUAL DE LA ROM
B ESCRICT
NO_TICT BSF TITILAR
MOVLW ESPACIO
;BORRA Nº DE PROGRAMA
ESCRICT MOVWF MENSAJE
LCALL DISPLAY
;VA A ESCRIBIR EN LA PANTALLA
BSF PCLATH,3
;UBICA BANCO ACTUAL DE LA ROM
BCF IMEDSEG
;BORRA BANDERA DE ½ SEG.
BCF MODIFIC
;BORRA BANDERA DE MODIFICACION
NO_LCD
BCF I50MSEG
;BORRA BANDERA DE 50 MILISEG.
LCALL OUT_ACT
;VA A VERIFICA SI DEBE ACTIVAR
SALIDA
LCALL ESP_TMP
;VA A SUBRUTINA SE ESP_TMP
LCALL FALLAS
;VA A REVISAR SI HAY FALLAS
BSF PCLATH,3
;UBICA BANCO ACTUAL DE LA ROM
MOVLW 0X0A
;VE SI DEBE DE SALIR DE LA RUTINA
XORWF TECLA, W
SKPNZ
B MENUCT
;VA A MENU PRINCIPAL DE OPCIONES
MOVLW 0X0B
;VE SI ENTRA A LA RUTINA CON CAMBIOS
XORWF TECLA, W
S
O
D
VA
R
E
S
E
R
S
HO
EC
R
E
D
SKPNZ
B MOD_LCD
MOVF TECLA, W
XORLW 0XFF
SKPNZ
B NO_CBCT
MOVF TECLA, W
TECLA...
SUBLW 0X09
SKPC
B SI_CBCT
MOVF TECLA, W
MOVWF Nº_LCD
SI_CBCT B CIC_LCD
NO_CBCT B MOS_LCD
;VA A CAMBIAR EL DIA Y LA HORA
;VERIFICA SI HAY UNA NUEVA TECLA...
;...PULSADA
;VERIFICA SI LA SELECCIÓN DE LA
;...ESTA ENTRE 0 Y 9
;CAMBIA EL Nº SI SELECCIÓN ES VALIDA
;VA AL PRINCIPIO DE LA RUTINA
;VA AL CICLO DE VISUALIZACION
MOD_LCD NOP
B CIC_LCD
MENUCT LGOTO MENU
xci
Descargar