Академический Документы
Профессиональный Документы
Культура Документы
TESIS
PRESENTA:
JURADO:
Introducción ...................................................................................................................... i
Planteamiento. .............................................................................................................. ii
Objetivo....................................................................................................................... iii
Justificación ................................................................................................................ iv
Hardware. ................................................................................................................... 36
Procesador. ............................................................................................................. 37
Software ..................................................................................................................... 45
MPLAB ...................................................................................................................... 45
EL EDITOR ........................................................................................................... 45
Referencias de consulta.................................................................................................. 98
Índice de Figuras
Figura 12 Diagrama de bloques donde se muestra las diferentes áreas de memoria del
micro controlador. ................................................................................................................ 39
Índice de Tablas
Introducción
i
“Introducción” .
Planteamiento.
ii
“Introducción” .
Objetivo.
iii
“Introducción” .
Justificación
iv
Capitulo 1 “Generalidades”
Capitulo 1 “Generalidades”.
1
Capitulo 1 “Generalidades”
Capitulo 1 “Generalidades”.
Incube.
Temp. Humedad No le de vuelta después Humedad los últimos 3 Ventilación totalmente
Especies Periodo
(F.) ¹ (F.) ² del días abierta
(días)
Muscovy
35-37 100 85-86 Día 31 90 Día 30
Duck
Gallina de
28 100 85-87 Día 25 90 Día 24
Guinea
Bobwhite
23-24 100 84-87 Día 20 90 Día 20
Quail
Coturnix
17 100 85-86 Día 15 90 Día 14
Quail
2
Capitulo 1 “Generalidades”
1.1.1 Codorniz
Los huevos cuya cáscara está rota o con fisuras deben ser eliminados, así como
los que no presenten un aspecto común.
3
Capitulo 1 “Generalidades”
Disponer de huevos para iniciar la incubación una vez que la temperatura dentro
de la incubadora esté perfectamente graduada.
A partir del tercer día de incubación, voltear los huevos por la mañana, al
mediodía y por la tarde (en el caso de que la máquina no los voltee automáticamente).
Durante el tiempo que dura la rotación, dejar la incubadora abierta para que los
huevos se ventilen.
1.1.2 Faisán
Para seleccionar los huevos a poner en la incubadora estos deben tener un brillo
suave, estar limpios y no tener manchas, de lo contrario lo más probable es que sean
infértiles.
4
Capitulo 1 “Generalidades”
completamente seco, período en el cual tampoco debe ser alimentado ya que aún está
consumiendo el resto del saco de la yema del huevo.
Una vez que el polluelo está seco, se debe pasar a la criadora, la cual posee una
campana de calefacción, y debe permanecer ahí por alrededor de 40 días antes de ser
pasado a piso. Una vez que el ave está en la criadora comienza el ciclo alimenticio
indicado anteriormente.
Los huevos que ingresan a la incubadora no deben tener más de una semana
desde el momento de su postura. A medida que pasa el tiempo el huevo va perdiendo
fertilidad.
Los huevos que se pondrán en la incubadora deben tener un brillo suave. Si los
huevos están manchados, opacos y sucios, probablemente no son fértiles. Es
importante recoger diariamente los huevos para evitar que se dañen o que las mismas
aves se los coman.
Los polluelos no se deben sacar de la incubadora hasta estar bien secos, lo que
corresponde alrededor de 12 a 24 horas. Los polluelos no deben ser alimentados
durante este período porque están absorbiendo el resto del saco de la yema del huevo.
5
Capitulo 1 “Generalidades”
El proceso de incubación, bien se realice de modo natural, por una gallina clueca,
bien se haga mecánicamente en incubadoras, precisa el cumplimiento de ciertas
condiciones físicas respecto a temperatura, humedad, volteo y ventilación. La gallina
clueca, en condiciones adecuadas da anidamiento, cuidará de estos factores y se
separará por lo menos una vez al día del nido para permitir una adecuada ventilación
de los huevos que está incubando. La forma normal del nidal, con una depresión
similar a la de un plato llano, asegurará que el extremo más ancho del huevo quede
ligeramente por encima del más estrecho. Los movimientos naturales de la gallina
asegurarán un calentamiento uniforme de los huevos y un volteo adecuado para evitar
que los embriones se adhieran a las membranas.
6
Capitulo 1 “Generalidades”
En las incubadoras tipo horizontal la temperatura que debe haber depende del
modelo de las mismas y de la altura a que se encuentra el bulbo del termómetro con
relación a los huevos, debiéndose especificar con exactitud para cada modelo. Una
temperatura normal es 39,4 ° C, con el centro del bulbo colocado unos cinco
centímetros por encima de la bandeja de los huevos.
7
Capitulo 1 “Generalidades”
existe un margen dentro del cual se conseguirán los mejores resultados. La humedad
relativa se representa por lo general como un porcentaje de la humedad atmosférica a
saturación, y ésta a su vez está relacionada con la temperatura atmosférica, ya se trate
del aire que rodea la tierra, ya la porción de él confinada temporalmente en el interior
de la Incubadora.
8
Capitulo 1 “Generalidades”
9
Capitulo 1 “Generalidades”
frecuencia, pero es necesario tomar las medidas necesarias para que se efectúe de
forma regular.
10
Capitulo 1 “Generalidades”
1.2 Antecedentes
interna del horno y en él, sobre las cenizas, se ponía la cesta con los huevos, que a su
vez se cubría con otro cono construido con paja. Al parecer la cesta contenía varias
capas de huevos, pero no existen noticias sobre el volteo de los huevos.
En este punto es Interesante observar que en Australia existen por lo menos dos
especies de aves que utilizan el calor de la fermentación de los vegetales en
descomposición para Incubar sus huevos artificialmente. El pavo del bosque y la
gallina amontonan vegetales y en el momento en que se inicia la descomposición de
los mismos ponen sus huevos y los entierran en el montón, dejándolos abandonados
(preocupándose tan sólo de mantener la forma del montón) hasta que eclosionan o se
pudren, como puede suceder. No parece ser necesario el volteo de los huevos.
12
Capitulo 1 “Generalidades”
La cámara destinada a los huevos estaba a nivel del suelo y disponía de una
abertura en el corredor por la que podía deslizarse el vigilante para tener cuidado de
los huevos o de los pollitos. Por encima de la cámara de huevos se hallaba el
compartimento de calefacción en el que se prendía fuego a estiércol de camello en
una pila circular que bordeaba a un hoyo abierto en el suelo. Como el agujero
calefactor estaba situado a poco más del nivel de la cintura era fácil graduar la altura
de la cámara de huevos. El edificio contenía también almacenes para el combustible y
vivienda para el personal.
Puede decirse que los actuales métodos de incubación datan desde que apareció
el trabajo del físico Réaumur, publicado en París en 1749, en el que informó acerca
del éxito obtenido al incubar huevos en un cajón, diseñado especialmente, en el que
se controlaba la temperatura mecánicamente. En 1770, John Campion incubó huevos
en un local calentado especialmente por las chimeneas de una caldera. Las primeras
incubaciones fueron llevadas a cabo en América en 1783 por Jacob Graves. En 1881
Mr. Hearson, en Inglaterra, Inventó la primera incubadora auto regulada, y la
incubación masiva fue iniciada en 1855, cuando C. A. Cypher construyó la primera
13
Capitulo 1 “Generalidades”
incubadora americana a gran escala que, en la actualidad, tiene capacidad para 20.000
huevos de pata.
que no sea preciso abrir la incubadora cada vez que se precise llevar a cabo cualquier
lectura. La ventilación debe regularse por algún mecanismo controlador, bien
mediante un sistema de puertas variables o por medio de fieltros planos colocados de
forma que retengan la corriente de aire. Las Incubadoras actuales se pueden clasificar
en horizontales, verticales, con acceso al interior.
En la máquina de aire caliente, el aire fresco entra, es calentado por los tubos de
aire caliente situados en la parte superior de la incubadora y cuando se enfría
desciende hasta el nivel del suelo escapando a través de las puertas u orificios da
salida.
En la máquina de agua caliente el aire entra por la parte inferior y sale, después
de haberse calentado, a través de los orificios superiores. Las lengüetas o fieltros
sirven para controlar la ventilación, siendo costumbre empezar con tres en la base de
la incubadora, retirándolas de una en una en determinados días de la incubación. La
figura 8 representa una Incubadora tipo horizontal, calentada en asta caso por una
lámpara de petróleo.
El calentador de petróleo (A) tiene dos orificios de salida del calor, uno (B) que
envía el aire caliente dentro de la cámara de calefacción (D), que puede estar llena de
aire o agua; el otro (C) es un conducto de expulsión que permite que el calor no
utilizado salga hacia el exterior sin influir sobre la temperatura Interna.
15
Capitulo 1 “Generalidades”
La cámara de calefacción (D) se calienta por medio del aire caliente que procede del
calentador y que a su vez calienta a los huevos situados en la bandeja (E). Suspendido
por encima de ésta hay un termómetro (F) y el soporte de la cápsula (G), que es una
estructura rígida que sostiene firmemente la cápsula o mecanismo termostático para
regular la temperatura. Una varilla de metal (H) descansa verticalmente sobre la parte
superior de la cápsula y asciende a través de un tubo hueco hasta ponerse en contacto
con la base de un tornillo [J], especialmente modelado, incorporado a un brazo
colgante (K). Este brazo lleva un peso ajustable (L) que se desliza hacia fuera a lo
largo del mismo hasta ejercer la suficiente presión para trabajar libremente, aunque
no con demasiada facilidad. Su extremo remoto termina en gancho y de él cuelga el
regulador de tiro (M) que, en reposo, se adapta firmemente sobre el borde del
conducto de expulsión [C).
algún otro líquido volátil que pueda dilatarse o contraerse cuando la temperatura sube
o baja) se dilata y fuerza la varilla (H) hacia arriba; esta a su vez Impulsa a la barra
colgante y levanta el regulador. Si la temperatura de la incubadora es correcta, el
regulador se sitúa Justamente encima del conducto de expulsión, pero tan pronto
desciende por debajo de la temperatura requerida, el regulador se cierra y todo el
calor penetra en la Incubadora.
17
Capitulo 1 “Generalidades”
El calentador (A) puede funcionar con petróleo, gas o electricidad, de forma que
este tipo de máquina puede adaptarse a cualquier lugar. El elegir el aire o el agua
caliente para la cámara de calefacción es cuestión de criterio personal; la cámara de
aire caliente no necesita llenarse y es más sensible al control de la temperatura, pero
el de agua caliente presenta la ventaja de retener su calor durante más tiempo si se
produce cualquier fallo en el calentador.
Sin duda alguna los mayores avances en incubación se han hecho en incubadoras
de tipo vertical. Las principales diferencias entre estas máquinas y las de tipo
horizontal son: los huevos se sitúan en posición vertical con el polo más ancho hacia
arriba, el volteo de los huevos se lleva a cabo inclinando las bandejas 80 a 90°, o sea,
de 40 a 45° hacia cada lado de la línea horizontal, y la ventilación y circulación
interna del aire se efectúa mecánicamente mediante ventiladores o agitadores da aire.
19
Capitulo 1 “Generalidades”
A cada carga se le da un color con objeto de facilitar la retirada de los huevos que
tienen que pasarse a la cámara de nacimientos, ya que de esta forma es suficiente
buscar y retirar las bandejas con el color requerido. Los más utilizados son el rojo,
blanco y azul y éstos aparecerán en repetida secuencia de arriba hacia abajo. Esta
distribución uniforme asegura unas condiciones constantes cuando la incubadora está
cargada sólo parcialmente, y de esta forma se ayuda a equilibrar las variaciones de
temperatura cuando bandejas, cargadas con huevos fríos, se Introducen en la máquina
caliente.
ventiladores o paletas) evitan los espacios muertos, incluso en aquellos lugares en que
la concentración de anhídrido carbónico puede ser peligrosa, tales como en las
bandejas, los huevos y los soportes. El diseño adecuado de los ventiladores y los
conductos de aire es la clave para la eficiente circulación del aire a través de la
incubadora y es posiblemente el factor más importante en el diseño de ésta.
El volteo puede hacerse a mano, por medio de una manivela ex-terna que evita el
abrir la Incubadora, o mecánicamente, mediante un dispositivo colocado de forma
que haga girar todo el contenido de la incubadora a intervalos regulares. Hay mucho
que decir acerca del volteo automático; es a la vea regular y suave, efectuándose de
día y noche, sin necesidad de turnos nocturnos. Y hay que tener en cuenta que un
volteo suave y regular es más ventajoso en los primeros estadios de la Incubación.
22
Capitulo 1 “Generalidades”
23
Capitulo 2 “Estudio Técnico”
24
Capitulo 2 “Estudio Técnico”
“Estudio Técnico”
Para el proceso de incubación avícola se requiere un proceso especifico y adecuado de
la temperatura, el mantener abastecidas las charolas de agua para propiciar y conservar un
ambiente húmedo, movimientos para el volteo de los huevos por días predeterminados
dependiendo del tipo de huevo que se desee incubar y los procesos comienzan desde que se
selecciona el huevo adecuado para que este tenga más posibilidades de ser incubado,
seguido de la limpieza de los cascarones en la superficie y la revisión por ovoscopio,
continuando con el acomodo de estos en las charolas del cajón de la incubadora.
25
Capitulo 2 “Estudio Técnico”
26
Capitulo 2 “Estudio Técnico”
En la limpieza del huevo se realiza en seco con ayuda de un cepillo de alambre (de ser
muy necesario se usara un paño húmedo y limpio), el aseo de cada uno de los huevos con el
fin de no desarrollar bacterias con el medio ambiente dentro de la incubadora y que el
embrión aproveche cada una de los nutrientes de la clara sin absorber bacterias.
Después de haber limpiado cada uno de los huevos se seleccionan por medio de un
ovoscopio, para determinar si es un huevo que pueda ser incubado.
27
Capitulo 2 “Estudio Técnico”
Se ajustan los días en los que se debe de rotar el huevo así también el intervalo de
tiempo entre cada rotación.
28
Capitulo 2 “Estudio Técnico”
29
Capitulo 2 “Estudio Técnico”
El programa consigue que esté activado uno solo de los flags anteriores. Al apagar el
sistema debe conservar el valor de la temperatura deseada en el termostato para la próxima
vez que se encienda.
También para poder realizar el armado del circuito y su aplicación se tuvo que anexar
las bibliotecas correspondientes a retardo, LCD_4bit, LCD_mens, EEPROM, DS1820
La biblioteca del ¨ LCD_4bit ¨ fue utilizada para realizar las tareas básicas de controlar
el flujo los caracteres en la pantalla.
30
Capitulo 2 “Estudio Técnico”
La biblioteca ¨ EEPROM ¨ permite guardar los datos no volátiles como el rango que se
desee para el termostato.
Funciona por medio de dos electrodos principales que marcan los niveles ¨alto¨, ¨bajo¨.
Auxiliándose de un tercer electrodo en común que manda los pulsos para determinar el
estado del nivel en la charola, manejando de forma automática el llenado de esta, pero este,
está condicionado a otra señal que proviene de los estados del suministro principal de agua
que también maneja los estados de nivel ¨bajo¨ y ¨alto¨ ya que si el suministro principal de
agua esta hasta el nivel bajo el llenado de la charola no será posible por razones de
seguridad con respecto al funcionamiento de una bomba sumergible.
31
Capitulo 2 “Estudio Técnico”
32
Capitulo 2 “Estudio Técnico”
Para poder realizar este programa se tomo en cuenta la clasificación de las especies que
se incuban de acuerdo a los días que se requieren para que el huevo pueda eclosionar. En
base a estos diferentes tiempos de incubación el sistema en el programa de temporización
por calendario fue realizado a modo de ser flexible para que el usuario pueda preestablecer
los días de incubación, y los intervalos de tiempo entre cada volteo
33
Capitulo 2 “Estudio Técnico”
34
Capitulo 3 “Micro controladores PIC.”
35
Capitulo 3 “Micro controladores PIC.”
Hardware.
Micro controlador.
Debe quedar clara por tanto la diferencia entre micro controlador y microprocesador: a
modo de resumen, el primero es un sistema autónomo e independiente, mientras que el
segundo es una parte, cabe decir que esencial, que forma parte de un sistema mayor.
36
Capitulo 3 “Micro controladores PIC.”
Arquitectura básica.
Procesador.
Esta última se caracterizaba porque la CPU se conectaba con una memoria única,
donde coexistían datos e instrucciones, a través de un sistema de buses.
37
Capitulo 3 “Micro controladores PIC.”
Memoria de programa.
Existen algunos tipos de memoria adecuados para soportar estas funciones, de las
cuales se citan las siguientes:
- ROM con máscara: se graba mediante el uso de máscaras. Sólo es recomendable para
series muy grandes debido a su elevado coste.
38
Capitulo 3 “Micro controladores PIC.”
- FLASH: se trata de una memoria no volátil, de bajo consumo, que se puede escribir y
borrar en circuito al igual que las EEPROM, pero que suelen disponer de mayor capacidad
que estas últimas. Son recomendables aplicaciones en las que es necesario modificar el
programa a lo largo de la vida del producto. Por sus mejores prestaciones, está sustituyendo
a la memoria EEPROM para contener instrucciones. De esta forma Microchip comercializa
dos micro controladores prácticamente iguales que sólo se diferencian en que la memoria
de programa de uno de ellos es tipo EEPROM y la del otro tipo Flash. Se trata del
PIC16C84 y el PIC16F84, respectivamente.
Figura 12 Diagrama de bloques donde se muestra las diferentes áreas de memoria del micro
controlador.
39
Capitulo 3 “Micro controladores PIC.”
Memoria de datos.
Los datos que manejas los programas varían continuamente, y esto exige que la
memoria que los contiene debe ser de lectura y escritura, por lo que la memoria RAM
estática (SRAM) es la más adecuada, aunque sea volátil.
Hay micro controladores que disponen como memoria de datos una de lectura y
escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la
alimentación no ocasiona la pérdida de la información, que está disponible al reiniciarse el
programa.
Líneas de E/S.
A excepción de dos pines destinadas a recibir la alimentación, otras dos para el cristal
de cuarzo, que regula la frecuencia de trabajo, y una más para provocar el Reset, las
40
Capitulo 3 “Micro controladores PIC.”
restantes pines de un micro controlador sirven para soportar su comunicación con los
periféricos externos que controla.
Las líneas de E/S que se adaptan con los periféricos manejan información en paralelo y
se agrupan en conjuntos de ocho, que reciben el nombre de Puertos. Hay modelos con
líneas que soportan la comunicación en serie; otros disponen de conjuntos de líneas que
implementan puertas de comunicación para diversos protocolos, como el I2C, el USB, etc.
Recursos auxiliares.
Según las aplicaciones a las que orienta el fabricante cada modelo de micro
controlador, incorpora una diversidad de complementos que refuerzan la potencia y la
flexibilidad del dispositivo. Entre los recursos más comunes se citan los siguientes:
Organización de la memoria
El PIC es el micro controlador que fabrica la compañía Microchip. Aunque no son los
micro controladores que más prestaciones ofrecen, en los últimos años han ganado mucho
mercado, debido al bajo precio de estos, lo sencillo de su manejo y programación y la
ingente cantidad de documentación y usuarios que hay detrás de ellos.
Un PIC, al ser un micro controlador programable, puede llevar a cabo cualquier tarea
para la cual haya sido programado.
-VDD: alimentación
-VSS: tierra
42
Capitulo 3 “Micro controladores PIC.”
Organización de la memoria
Podemos comprobar cómo la memoria está dividida en dos bancos (cada una de las
columnas): banco 0 y banco 1. Las primeras 12 posiciones de cada banco (00h-0Bh y 80h-
8Bh) están ocupadas por los Registros de Propósito Especial (Special Purpose Registers).
Estos registros, en los que entraremos en detalle más adelante, son los encargados de
controlar ciertas funciones específicas del PIC.
BANCO 0
En ambos casos, cuando el registro se desborda, es decir, llega a su valor máximo (en
este caso 2^8 = 256. Como el 0 también se cuenta, el máximo valor sería 255), empieza de
nuevo a contar a partir del 0, no sin antes informar de este evento a través de la activación
de un flag y/o una interrupción.
43
Capitulo 3 “Micro controladores PIC.”
- RP0: indica el banco de memoria con el que se está trabajando. Cuando vale 0 se
selecciona el Banco 0 y cuando vale 1 el Banco 1.
PORTA: representación de el puerto A. Cada bit representa una línea de E/S del puerto
A:
Como se puede comprobar, los tres bits de mayor peso no representan ninguna línea de
E/S, ya que la puerta A sólo tiene 5 líneas de E/S
PORTB: lo mismo que el puerto A, pero en este caso con 8 líneas de E/S
BANCO 1
44
Capitulo 3 “Micro controladores PIC.”
Finalmente cabe destacar el registro W, también conocido como registro de trabajo (del
inglés work) o acumulador. Es de vital importancia ya que, entre otras, deberemos usarlo de
registro puente para llevar a cabo ciertas operaciones.
Software
La utilización de los lenguajes más cercanos a la máquina (de bajo nivel) representan
un considerable ahorro de código en la confección de los programas, lo que es muy
importante dada la estricta limitación de la capacidad de la memoria de instrucciones. Los
programas bien realizados en lenguaje Ensamblador optimizan el tamaño de la memoria
que ocupan y su ejecución es muy rápida.
Los lenguajes de alto nivel más empleados con micro controladores son el C y el
BASIC de los que existen varias empresas que comercializan versiones de compiladores e
intérpretes para diversas familias de micro controladores.
MPLAB
EL EDITOR
45
Capitulo 3 “Micro controladores PIC.”
Campo de etiquetas
Las etiquetas son nombres de subrutinas o secciones de código fuente. Dando nombres
a partes del programa, se posibilita que las instrucciones puedan saltar o hacer referencia a
esas partes sin necesidad de recordar las direcciones físicas donde están ubicadas.
Una etiqueta puede ir seguida de dos puntos (:), espacios, tabuladores o RETURN.
46
Capitulo 3 “Micro controladores PIC.”
47
Capitulo 3 “Micro controladores PIC.”
Campo de Instrucciones.
Campo de datos
Contiene datos u operandos para las instrucciones. En los PICs, los datos pueden ser un
registro, un bit de un registro, una etiqueta o un número constante (llamado literal).
Algunas instrucciones no llevan datos. Si una instrucción necesita múltiples datos, deben
separarse por comas (,).
Campo de comentarios
El último campo es el del comentario, siempre que haya un punto y coma (;) como
primer carácter. Puede colocarse en cualquier lugar del código fuente. Los comentarios en
ensamblador son muy importantes. Los comentarios deben describir las tareas que realizan
las instrucciones y/o subrutinas. Sin comentarios, es muy difícil descifrar, algunos días
después, el código fuente que uno mismo ha creado.
48
Capitulo 3 “Micro controladores PIC.”
49
Capitulo 3 “Micro controladores PIC.”
50
Capitulo 3 “Micro controladores PIC.”
LIST=PIC16F70
RADIX=HEX
#INCLUDE <PIC16F670.INC>
ORG 0
GOTO INICIO
ORG 5
GOTO RUT_PR
BTFSS PORTB, 2
GOTO CHECK1
BCF PORTC, 4
GOTO FIN
52
Capitulo 3 “Micro controladores PIC.”
PIC 16F84
53
Capitulo 3 “Micro controladores PIC.”
Termómetro-termostato digital.
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK 0x0C
TemperaturaDeseada
Registro50ms
FlagsModos
ENDC
ORG 0x2100
DE .24
ORG 0
goto Inicio
ORG 4
54
Capitulo 3 “Micro controladores PIC.”
goto ServicioInterrupcion
Mensajes
addwf PCL,F
MensajePublicitario
MensajeTermostato_ON
MensajeTermostato_Ajuste
MensajeGradoCentigrado
Inicio
call LCD_Inicializa
bsf STATUS,RP0
movlw b'00000111'
movwf OPTION_REG
bsf ModoPulsador
bsf IncrementarPulsador
bcf SalidaTermostato
bcf Zumbador
bcf STATUS,RP0
call LCD_Linea1
movlw MensajePublicitario
call LCD_Mensaje
call DS1820_Inicializa
call ModoTermostato_OFF
movlw TMR0_Carga50ms
55
Capitulo 3 “Micro controladores PIC.”
movwf TMR0
movlw CARGA_2s
movwf Registro50ms
clrw
call EEPROM_LeeDato
movwf TemperaturaDeseada
movlw b'10101000'
movwf INTCON
Principal
goto Principal
ServicioInterrupcion
btfsc INTCON,T0IF
call Termometro
btfss INTCON,RBIF
goto FinInterrupcion
btfss ModoPulsador
call CambiarModo
btfss IncrementarPulsador
call IncrementarTempDeseada
FinInterrupcion
bcf INTCON,RBIF
bcf INTCON,T0IF
retfie
Termometro
movlw TMR0_Carga50ms
movwf TMR0
decfsz Registro50ms,F
56
Capitulo 3 “Micro controladores PIC.”
goto FinInterrupcion
movlw CARGA_2s
movwf Registro50ms
call DS1820_LeeTemperatura
call DS1820_Inicializa
call Termostato
; call Visualiza
; return
Visualiza
btfsc F_Termostato_OFF
goto VisualizaTermometro
btfsc F_Termostato_Ajuste
goto VisualizaTermostato_Ajuste
btfsc F_Termostato_ON
goto VisualizaTermostato_ON
return
VisualizaTermostato_ON
call LCD_Linea1
movlw MensajeTermostato_ON
call LCD_Mensaje
call VisualizaTemperaturaDeseada
call VisualizaTemperaturaMedida
return
VisualizaTermostato_Ajuste
call LCD_Linea1
movlw MensajeTermostato_Ajuste
57
Capitulo 3 “Micro controladores PIC.”
call LCD_Mensaje
movlw .6
call LCD_PosicionLinea2
VisualizaTemperaturaDeseada
movf TemperaturaDeseada,W
call BIN_a_BCD
call LCD_Byte
movlw MensajeGradoCentigrado
call LCD_Mensaje
return
VisualizaTermometro
call LCD_Linea1
movlw MensajePublicitario
call LCD_Mensaje
VisualizaTemperaturaMedida
movlw .5
call LCD_PosicionLinea2
btfss DS1820_TemperaturaSigno,7
goto TemperaturaPositiva
TemperaturaNegativa:
movlw '-'
call LCD_Caracter
TemperaturaPositiva
movf DS1820_Temperatura,W
call BIN_a_BCD
call LCD_Byte
movlw '.'
58
Capitulo 3 “Micro controladores PIC.”
call LCD_Caracter
movf DS1820_TemperaturaDecimal,W
call LCD_Nibble
movlw MensajeGradoCentigrado
call LCD_Mensaje
return
Termostato
btfss F_Termostato_ON
goto ApagaCarga
btfsc DS1820_TemperaturaSigno,7
goto EnciendeCarga
btfss SalidaTermostato
goto SalidaEstabaApagada
SalidaEstabaActivada
movf DS1820_Temperatura,W
subwf TemperaturaDeseada,W
btfsc STATUS,C
goto FinTermostato
call Pitido
ApagaCarga
bcf SalidaTermostato
goto FinTermostato
SalidaEstabaApagada
movf TemperaturaDeseada,W
subwf DS1820_Temperatura,W
btfsc STATUS,C
goto FinTermostato
59
Capitulo 3 “Micro controladores PIC.”
EnciendeCarga
call Pitido
bsf SalidaTermostato
FinTermostato
return
CambiarModo
call Retardo_20ms
btfsc ModoPulsador
goto FinCambiarModo
call PitidoCorto
btfss F_Termostato_ON
goto ModoSiguiente
ModoTermostato_OFF
call Pitido
bcf SalidaTermostato
movlw b'00000001'
movwf FlagsModos
goto BorraPantalla
ModoSiguiente
bcf STATUS,C
rlf FlagsModos,F
BorraPantalla
call LCD_Borra
FinCambiarModo
call Visualiza
btfss ModoPulsador
goto FinCambiarModo
60
Capitulo 3 “Micro controladores PIC.”
return
IncrementarTempDeseada
call Retardo_20ms
btfsc IncrementarPulsador
goto FinIncrementar
btfss F_Termostato_Ajuste
goto FinIncrementar
call PitidoCorto
incf TemperaturaDeseada,F
movlw TemperaturaMaxima
subwf TemperaturaDeseada,W
btfss STATUS,C
goto VisualizaIncremento
movlw TemperaturaMinima
movwf TemperaturaDeseada
VisualizaIncremento
call Visualiza
call Retardo_200ms
btfss IncrementarPulsador
goto IncrementarTempDeseada
clrw
movwf EEADR
movf TemperaturaDeseada,W
call EEPROM_EscribeDato
FinIncrementar
61
Capitulo 3 “Micro controladores PIC.”
return
PitidoLargo
bsf Zumbador
call Retardo_500ms
Pitido
bsf Zumbador
call Retardo_200ms
PitidoCorto
bsf Zumbador
call Retardo_20ms
bcf Zumbador
return
INCLUDE <BUS_1LIN.INC>
INCLUDE <DS1820.INC>
INCLUDE <RETARDOS.INC>
INCLUDE <BIN_BCD.INC>
INCLUDE <LCD_4BIT.INC>
INCLUDE <LCD_MENS.INC>
INCLUDE <EEPROM.INC>
END
Biblioteca BUS_1LIN.INC
;* Librería "BUS_1LIN.INC" *
CBLOCK
Bus1Linea_Dato
Bus1Linea_ContadorBits
ENDC
#DEFINE Bus1Linea PORTB,3
; Subrutina "Bus1Linea_AltaImpedancia" -
62
Capitulo 3 “Micro controladores PIC.”
Bus1Linea_AltaImpedancia
bsf STATUS,RP0
bsf Bus1Linea
bcf STATUS,RP0
return
; Subrutina "Bus1Linea_Bajo" -
Bus1Linea_Bajo
bsf STATUS,RP0
bcf Bus1Linea
bcf STATUS,RP0
bcf Bus1Linea
return
; Subrutina "Bus1Linea_Reset" -
call Bus1Linea_AltaImpedancia
call Bus1Linea_Bajo
call Retardo_500micros
call Bus1Linea_AltaImpedancia
call Retardo_20micros
Bus1Linea_EsperaLeerBajo
btfsc Bus1Linea
goto Bus1Linea_EsperaLeerBajo
Bus1Linea_EsperaLeerAlto
btfss Bus1Linea
goto Bus1Linea_EsperaLeerAlto
return
; Subrutina "Bus1Linea_EscribeByte" -
Bus1Linea_EscribeByte
movwf Bus1Linea_Dato
movlw 0x08
movwf Bus1Linea_ContadorBits
call Bus1Linea_AltaImpedancia
Bus1Linea_EnviaBit
call Bus1Linea_Bajo
; Pregunta por el valor del bit a transmitir.
;
rrf Bus1Linea_Dato,F
btfss STATUS,C
63
Capitulo 3 “Micro controladores PIC.”
goto Bus1Linea_EnviaCero
Bus1Linea_EnviaUno
call Bus1Linea_AltaImpedancia
goto Bus1Linea_Espera50us
Bus1Linea_EnviaCero
call Bus1Linea_Bajo
Bus1Linea_Espera50us
call Retardo_50micros
call Bus1Linea_AltaImpedancia
decfsz Bus1Linea_ContadorBits,1
goto Bus1Linea_EnviaBit
return
; Subrutina "Bus1Linea_LeeByte" -
Bus1Linea_LeeByte
movlw 0x08
movwf Bus1Linea_ContadorBits
call Bus1Linea_AltaImpedancia
Bus1Linea_LeeBit
call Bus1Linea_Bajo
call Bus1Linea_AltaImpedancia
call Retardo_10micros
bcf STATUS,C
btfsc Bus1Linea
bsf STATUS,C
rrf Bus1Linea_Dato,1
call Retardo_50micros
call Bus1Linea_AltaImpedancia
decfsz Bus1Linea_ContadorBits,1
goto Bus1Linea_LeeBit
movf Bus1Linea_Dato,W
return
64
Capitulo 3 “Micro controladores PIC.”
Biblioteca DS128.INC
CBLOCK
DS1820_Temperatura
DS1820_TemperaturaSigno
DS1820_TemperaturaDecimal
ENDC
DS1820_Skip_ROM_Command EQU 0xCC
DS1820_Read_Scratchpad_Command EQU 0xBE
DS1820_Convert_T_Command EQU 0x44
DS1820_Inicializa
call Bus1Linea_Reset
movlw DS1820_Skip_ROM_Command
call Bus1Linea_EscribeByte
movlw DS1820_Convert_T_Command
call Bus1Linea_EscribeByte
return
; Subrutina "DS1820_LeeTemperatura"
DS1820_LeeTemperatura
call Bus1Linea_Reset
movlw DS1820_Skip_ROM_Command
call Bus1Linea_EscribeByte
movlw DS1820_Read_Scratchpad_Command
call Bus1Linea_EscribeByte
call Bus1Linea_LeeByte
movwf DS1820_Temperatura
call Bus1Linea_LeeByte
movwf DS1820_TemperaturaSigno
call Bus1Linea_Reset
btfss DS1820_TemperaturaSigno,7
goto DS1820_FinLeeTemperatura
DS1820_TemperaturaNegativa
movf DS1820_Temperatura,W
sublw 0x00
movwf DS1820_Temperatura
DS1820_FinLeeTemperatura
65
Capitulo 3 “Micro controladores PIC.”
bcf STATUS,C
rrf DS1820_Temperatura,F
movlw .5
btfss STATUS,C
clrw
movwf DS1820_TemperaturaDecimal
movf DS1820_Temperatura,W
return
Biblioteca RETARDOS.INC
;Librería "RETARDOS.INC"
CBLOCK
R_ContA
R_ContB
R_ContC
ENDC
; RETARDOS de 4 hasta 10 microsegundos
Retardo_10micros
nop
nop
nop
nop
nop
Retardo_5micros
nop
Retardo_4micros
return
;RETARDOS de 20 hasta 500 microsegundos
Retardo_500micros
nop
movlw d'164'
goto RetardoMicros
Retardo_200micros
nop
movlw d'64'
goto RetardoMicros
66
Capitulo 3 “Micro controladores PIC.”
Retardo_100micros
movlw d'31'
goto RetardoMicros
Retardo_50micros
nop
movlw d'14'
goto RetardoMicros
Retardo_20micros
movlw d'5'
RetardoMicros
movwf R_ContA
Rmicros_Bucle
decfsz R_ContA,F
goto Rmicros_Bucle
return
Retardo_200ms
movlw d'200'
goto Retardos_ms
Retardo_100ms
movlw d'100'
goto Retardos_ms
Retardo_50ms
movlw d'50'
goto Retardos_ms
Retardo_20ms
movlw d'20'
goto Retardos_ms
Retardo_10ms
movlw d'10'
goto Retardos_ms
Retardo_5ms
movlw d'5'
goto Retardos_ms
Retardo_2ms
movlw d'2'
goto Retardos_ms
Retardo_1ms
67
Capitulo 3 “Micro controladores PIC.”
movlw d'1'
Retardos_ms
movwf R_ContB
R1ms_BucleExterno
movlw d'249'
movwf R_ContA
R1ms_BucleInterno
nop
decfsz R_ContA,F
goto R1ms_BucleInterno
decfsz R_ContB,F
goto R1ms_BucleExterno
return
Retardo_20s
movlw d'200'
goto Retardo_1Decima
Retardo_10s
movlw d'100'
goto Retardo_1Decima
Retardo_5s
movlw d'50'
goto Retardo_1Decima
Retardo_2s
movlw d'20'
goto Retardo_1Decima
Retardo_1s
movlw d'10'
goto Retardo_1Decima
Retardo_500ms
movlw d'5'
Retardo_1Decima
movwf R_ContC
R1Decima_BucleExterno2
movlw d'100'
movwf R_ContB
R1Decima_BucleExterno
movlw d'249'
68
Capitulo 3 “Micro controladores PIC.”
movwf R_ContA
R1Decima_BucleInterno
nop
decfsz R_ContA,F
goto R1Decima_BucleInterno
decfsz R_ContB,F
goto R1Decima_BucleExterno
decfsz R_ContC,F
goto R1Decima_BucleExterno2
return
Biblioteca BIN_BCD.INC
CBLOCK
BCD_Centenas
BCD_Decenas
BCD_Unidades
ENDC
BIN_a_BCD
clrf BCD_Centenas
clrf BCD_Decenas
movwf BCD_Unidades
BCD_Resta10
movlw .10
subwf BCD_Unidades,W
btfss STATUS,C
goto BIN_BCD_Fin
BCD_IncrementaDecenas
movwf BCD_Unidades
incf BCD_Decenas,F
movlw .10
subwf BCD_Decenas,W
btfss STATUS,C
goto BCD_Resta10
BCD_IncrementaCentenas
clrf BCD_Decenas
incf BCD_Centenas,F
goto BCD_Resta10
69
Capitulo 3 “Micro controladores PIC.”
BIN_BCD_Fin
swapf BCD_Decenas,W
addwf BCD_Unidades,W
return
Biblioteca LCD_4BIT.INC
; RETARDOS.INc.
CBLOCK
LCD_Dato
LCD_GuardaDato
LCD_GuardaTRISB
LCD_Auxiliar1
LCD_Auxiliar2
ENDC
LCD_CaracteresPorLinea EQU .16
#DEFINE LCD_PinRS PORTA,0
#DEFINE LCD_PinRW PORTA,1
#DEFINE LCD_PinEnable PORTA,2
#DEFINE LCD_BusDatos PORTB
; Subrutina "LCD_Inicializa"
LCD_Inicializa
bsf STATUS,RP0
bcf LCD_PinRS
bcf LCD_PinEnable
bcf LCD_PinRW
bcf STATUS,RP0
bcf LCD_PinRW
bcf LCD_PinEnable
bcf LCD_PinRS
call Retardo_20ms
movlw b'00110000'
call LCD_EscribeLCD
call Retardo_5ms
movlw b'00110000'
call LCD_EscribeLCD
call Retardo_200micros
movlw b'00110000'
70
Capitulo 3 “Micro controladores PIC.”
call LCD_EscribeLCD
call Retardo_20micros
movlw b'00100000'
call LCD_EscribeLCD
call Retardo_20micros
call LCD_2Lineas4Bits5x7
call LCD_Borra
call LCD_CursorOFF
call LCD_CursorIncr
return
LCD_EscribeLCD
andlw b'11110000'
movwf LCD_Dato
movf LCD_BusDatos,W
andlw b'00001111'
iorwf LCD_Dato,F
bsf STATUS,RP0
movf TRISB,W
movwf LCD_GuardaTRISB
movlw b'00001111'
andwf PORTB,F
bcf STATUS,RP0
movf LCD_Dato,W
movwf LCD_BusDatos
bsf LCD_PinEnable
bcf LCD_PinEnable
bsf STATUS,RP0
movf LCD_GuardaTRISB,W
movwf TRISB
bcf STATUS,RP0
return
LCD_CursorIncr
movlw b'00000110'
goto LCD_EnviaComando
LCD_Linea1
movlw b'10000000'
goto LCD_EnviaComando
71
Capitulo 3 “Micro controladores PIC.”
LCD_Linea2
movlw b'11000000'
goto LCD_EnviaComando
LCD_Linea3
movlw b'10010100'
goto LCD_EnviaComando
LCD_Linea4
movlw b'11010100'
goto LCD_EnviaComando
LCD_PosicionLinea1
iorlw b'10000000'
goto LCD_EnviaComando
LCD_PosicionLinea2
iorlw b'11000000'
goto LCD_EnviaComando
LCD_OFF
movlw b'00001000'
goto LCD_EnviaComando
LCD_CursorON
movlw b'00001110'
goto LCD_EnviaComando
LCD_CursorOFF
movlw b'00001100'
goto LCD_EnviaComando
CD_Borra
movlw b'00000001'
goto LCD_EnviaComando
LCD_2Lineas4Bits5x7
movlw b'00101000'
LCD_EnviaComando
bcf LCD_PinRS
goto LCD_Envia
LCD_Caracter
bsf LCD_PinRS
call LCD_CodigoCGROM
LCD_Envia
movwf LCD_GuardaDato
72
Capitulo 3 “Micro controladores PIC.”
call LCD_EscribeLCD
swapf LCD_GuardaDato,W
call LCD_EscribeLCD
btfss LCD_PinRS
call Retardo_2ms
call Retardo_50micros
return
LCD_CodigoCGROM
movwf LCD_Dato
LCD_EnheMinuscula
sublw 'ñ'
btfss STATUS,Z
goto LCD_EnheMayuscula
movlw b'11101110'
movwf LCD_Dato
goto LCD_FinCGROM
LCD_EnheMayuscula
movf LCD_Dato,W
sublw 'Ñ'
btfss STATUS,Z
goto LCD_Grado
movlw b'11101110'
movwf LCD_Dato
goto LCD_FinCGROM
LCD_Grado
movf LCD_Dato,W
sublw 'º'
btfss STATUS,Z
goto LCD_FinCGROM
movlw b'11011111'
movwf LCD_Dato
LCD_FinCGROM
movf LCD_Dato,W
return
LCD_LineaEnBlanco
movlw LCD_CaracteresPorLinea
goto LCD_EnviaBlancos
73
Capitulo 3 “Micro controladores PIC.”
LCD_UnEspacioBlanco
movlw .1
goto LCD_EnviaBlancos
LCD_DosEspaciosBlancos
movlw .2
goto LCD_EnviaBlancos
LCD_TresEspaciosBlancos
movlw .3
LCD_EnviaBlancos
movwf LCD_Auxiliar1
LCD_EnviaOtroBlanco
movlw ''
call LCD_Caracter
decfsz LCD_Auxiliar1,F
goto LCD_EnviaOtroBlanco
return
LCD_Byte
movwf LCD_Auxiliar2
andlw b'11110000'
btfss STATUS,Z
goto LCD_VisualizaAlto
movlw ''
call LCD_Caracter
goto LCD_VisualizaBajo
LCD_ByteCompleto
movwf LCD_Auxiliar2
LCD_VisualizaAlto
swapf LCD_Auxiliar2,W
call LCD_Nibble
LCD_VisualizaBajo
movf LCD_Auxiliar2,W
LCD_Nibble
andlw b'00001111'
movwf LCD_Auxiliar1
sublw 0x09
btfss STATUS,C
goto LCD_EnviaByteLetra
74
Capitulo 3 “Micro controladores PIC.”
movf LCD_Auxiliar1,W
addlw '0'
goto LCD_FinVisualizaDigito
LCD_EnviaByteLetra
movf LCD_Auxiliar1,W
addlw 'A'-0x0A
LCD_FinVisualizaDigito
goto LCD_Caracter
Biblioteca LCD_MENS.INC.
CBLOCK
LCD_ApuntaCaracter
LCD_ValorCaracter
ENDC
; Subrutina "LCD_Mensaje"
LCD_Mensaje
movwf LCD_ApuntaCaracter
movlw Mensajes
subwf LCD_ApuntaCaracter,F
decf LCD_ApuntaCaracter,F
LCD_VisualizaOtroCaracter
movf LCD_ApuntaCaracter,W
call Mensajes
movwf LCD_ValorCaracter
movf LCD_ValorCaracter,F
btfsc STATUS,Z
goto LCD_FinMensaje
LCD_NoUltimoCaracter
call LCD_Caracter
incf LCD_ApuntaCaracter,F
goto LCD_VisualizaOtroCaracter
LCD_FinMensaje
return
CBLOCK
LCD_CursorPosicion
ENDC
75
Capitulo 3 “Micro controladores PIC.”
LCD_MensajeMovimiento
movwf LCD_ApuntaCaracter
movlw Mensajes
subwf LCD_ApuntaCaracter,F
decf LCD_ApuntaCaracter,F
LCD_PrimeraPosicion
clrf LCD_CursorPosicion
call LCD_Borra
LCD_VisualizaCaracter
movlw LCD_CaracteresPorLinea
subwf LCD_CursorPosicion,W
btfss STATUS,Z
goto LCD_NoEsFinalLinea
LCD_EsFinalLinea
call Retardo_200ms
call Retardo_200ms
movlw LCD_CaracteresPorLinea-1
subwf LCD_ApuntaCaracter,F
goto LCD_PrimeraPosicion
LCD_NoEsFinalLinea
movf LCD_ApuntaCaracter,W
call Mensajes
movwf LCD_ValorCaracter
movf LCD_ValorCaracter,F
btfsc STATUS,Z
goto LCD_FinMovimiento
LCD_NoUltimoCaracter2
call LCD_Caracter
incf LCD_CursorPosicion,F
incf LCD_ApuntaCaracter,F
goto LCD_VisualizaCaracter
LCD_FinMovimiento
return
76
Capitulo 3 “Micro controladores PIC.”
Biblioteca EEPROM.INC.
EEPROM_LeeDato
bcf STATUS,RP0
movwf EEADR
bsf STATUS,RP0
bsf EECON1,RD
EEPROM_SigueLeyendo
btfsc EECON1,RD
goto EEPROM_SigueLeyendo
bcf STATUS,RP0
movf EEDATA,W
return
; Subrutina "EEPROM_EscribeDato"
CBLOCK
EEPROM_GuardaINTCON
ENDC
EEPROM_EscribeDato
bcf STATUS,RP0
movwf EEDATA
movf INTCON,W
movwf EEPROM_GuardaINTCON
bsf STATUS,RP0
bcf INTCON,GIE
bsf EECON1,WREN
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
EEPROM_TerminaEscribir
btfsc EECON1,WR
goto EEPROM_TerminaEscribir
bcf EECON1,WREN
bcf EECON1,EEIF
bcf STATUS,RP0
77
Capitulo 3 “Micro controladores PIC.”
movf EEPROM_GuardaINTCON,W
movwf INTCON
return
Contador
Diagrama de Flujo 5 Menú principal del programa para temporización de volteo de bandejas
[menú para modo de programación de horas o días].
78
Capitulo 3 “Micro controladores PIC.”
Diagrama de Flujo 6 Menú principal del programa para temporización de volteo de bandejas
[operación de botoneras]
B_MAS B_MENOS
S N S N
RC0=1 RCO=1
I O I O
79
Capitulo 3 “Micro controladores PIC.”
80
Capitulo 3 “Micro controladores PIC.”
81
Capitulo 3 “Micro controladores PIC.”
; INICIALIZACION
ORG 0
goto INICIO
ORG 5
INICIO bsf STATUS, RP0 ; banco1
clrf TRISB ; puertoB como salidas
movlw b'11000000' ; puertoC como salidas y entradas
movwf TRISC
movlw b'00000110'
movwf ADCON1 ; configura PuertoA
movlw b'00111111'
movwf TRISA ; PUERTOA como entradas
bcf STATUS, RP0 ; banco0
RUT_PRI clrf PORTB
clrf PORTC
clrf dplay1
clrf dplay2
clrf enter
movlw d'2'
movwf reset
goto HO_RAS
HO_RAS bsf PORTC, 0
bcf PORTC, 1
movlw d'1'
movwf horas
movlw DP00 ; PONE un 0 en el display
movwf dplay1
movlw DP01 ; PONe un 1 en el display
movwf dplay2
goto MENU
DI_AS bcf PORTC, 0
bsf PORTC, 1
clrf dias
movlw DP00 ; PONE un 0 en el display
82
Capitulo 3 “Micro controladores PIC.”
movwf dplay1
movlw DP00 ; PONE un 0 en el display
movwf dplay2
goto MENU
MENU movlw dplay1
movwf PORTB
bsf PORTC, 4
bcf PORTC, 5
call DEMORA1 ; DEMORA DE 10ms
movlw dplay2
movwf PORTB
bcf PORTC, 4
bsf PORTC, 5
call DEMORA1 ; DEMORA DE 10ms
btfsc PORTA, 0 ; checa si el boton + esta presionado
goto B_MAS
btfsc PORTA, 1 ; checa si el boton - esta presionado
goto B_MENOS
btfsc PORTA, 2 ; checa si el boton ENTER esta presionado
goto B_ENTER
btfsc PORTA, 3 ; checa si el boton RESET esta presionado
goto B_RESET
goto MENU
; MENU DE BOTONES
;------------------------------------------------------------
B_MAS btfss PORTC, 0
goto D_AS1
goto H_RAS1
83
Capitulo 3 “Micro controladores PIC.”
movlw enter
sublw d'1'
btfsc STATUS, Z
goto DI_AS
movlw enter
sublw d'2'
btfss STATUS, Z
goto RELOJ
C_FIRMA btfsc PORTA, 2
goto B_ENTER
btfsc PORTA, 3
goto B_RESET
goto C_FIRMA
B_RESET clrf PORTB
bsf PORTC, 4
bcf PORTC, 5
bsf PORTB, 7
call DEMORA2
clrf PORTB
bcf PORTC, 4
bsf PORTC, 5
bsf PORTB, 7
call DEMORA2
goto RUT_PRI
; -------------------------------------------------------
H_RAS1 movlw horas
sublw d'24'
btfsc STATUS, Z
goto MENU
incf horas, F
movlw horas
movwf buffer
goto DCENAS
D_AS1 movlw dias
sublw d'99'
84
Capitulo 3 “Micro controladores PIC.”
btfsc STATUS, Z
goto MENU
incf dias, F
movlw dias
movwf buffer
goto DCENAS
H_RAS2 movlw horas
sublw d'1'
btfsc STATUS, Z
goto MENU
decf horas, F
movlw horas
movwf buffer
goto DCENAS
D_AS2 movlw dias
sublw d'0'
btfsc STATUS, Z
goto MENU
decf dias, F
movlw dias
movwf buffer
goto DCENAS
;----------------------------------------------------------
;CHECA CUANTAS DECENAS HAY EN EL NUMERO
;__________________________________________________________
sublw d'9'
btfss STATUS, C
goto DCNA_0
movlw buffer
sublw d'19'
btfss STATUS, C
goto DCNA_1
movlw buffer
sublw d'29'
btfss STATUS, C
85
Capitulo 3 “Micro controladores PIC.”
goto DCNA_2
movlw buffer
sublw d'39'
btfss STATUS, C
goto DCNA_3
movlw buffer
sublw d'49'
btfss STATUS, C
goto DCNA_4
movlw buffer
sublw d'59'
btfss STATUS, C
goto DCNA_5
movlw buffer
sublw d'69'
btfss STATUS, C
goto DCNA_6
movlw buffer
sublw d'79'
btfss STATUS, C
goto DCNA_7
movlw buffer
sublw d'89'
btfss STATUS, C
goto DCNA_8
movlw d'90'
subwf buffer, W
movwf unidad
movlw DP09
movwf dplay1
goto VNIDAD
DCNA_0 movlw buffer
movwf unidad
movlw DP00
movwf dplay1
86
Capitulo 3 “Micro controladores PIC.”
goto VNIDAD
DCNA_1 movlw d'10'
subwf buffer, W
movwf unidad
movlw DP01
movwf dplay1
goto VNIDAD
DCNA_2 movlw d'20'
subwf buffer, W
movwf unidad
movlw DP02
movwf dplay1
goto VNIDAD
DCNA_3 movlw d'30'
subwf buffer, W
movwf unidad
movlw DP03
movwf dplay1
goto VNIDAD
DCNA_4 movlw d'40'
subwf buffer, W
movwf unidad
movlw DP04
movwf dplay1
goto VNIDAD
DCNA_5 movlw d'50'
subwf buffer, W
movwf unidad
movlw DP05
movwf dplay1
goto VNIDAD
DCNA_6 movlw d'60'
subwf buffer, W
movwf unidad
movlw DP06
87
Capitulo 3 “Micro controladores PIC.”
movwf dplay1
goto VNIDAD
DCNA_7 movlw d'70'
subwf buffer, W
movwf unidad
movlw DP07
movwf dplay1
goto VNIDAD
DCNA_8 movlw d'80'
subwf buffer, W
movwf unidad
movlw DP08
movwf dplay1
goto VNIDAD
UNIDAD movlw unidad
sublw d'0'
btfsc STATUS, Z
goto CERO
movlw unidad
sublw d'1'
btfsc STATUS, Z
goto UNO
movlw unidad
sublw d'2'
btfsc STATUS, Z
goto DOS
movlw unidad
sublw d'3'
btfsc STATUS, Z
goto TRES
movlw unidad
sublw d'4'
btfsc STATUS, Z
goto CUATRO
movlw unidad
88
Capitulo 3 “Micro controladores PIC.”
sublw d'5'
btfsc STATUS, Z
goto CINCO
movlw unidad
sublw d'6'
btfsc STATUS, Z
goto SEIS
movlw unidad
sublw d'7'
btfsc STATUS, Z
goto SIETE
movlw unidad
sublw d'8'
btfsc STATUS, Z
goto OCHO
movlw DP09
movwf dplay2
goto MENU
89
Capitulo 3 “Micro controladores PIC.”
movwf dplay2
goto MENU
SEIS movlw DP06
movwf dplay2
goto MENU
SIETE movlw DP07
movwf dplay2
goto MENU
OCHO movlw DP08
movwf dplay2
goto MENU
;
RELOJ movlw d'2' ; inicia con giro 1 (CW)
movwf giro
movlw d'60' ; inicia con 60 segundos
movwf segun2
movlw d'60' ; inicia con 60 minutos
movwf minuto
clrf hora_h
clrf dia_d
bcf PORTC, 2
bsf PORTC, 3
CONTA call DEMORA3 ; demora de casi 1seg
; los demas tiempos dependen
; de cuantas instrucciones son despues
decfsz segun2, F ; salta cuando se cumple 1 min
goto CONTA
movlw d'60'
movwf segun2
decfsz minuto, F ; salta cuando se cumple 1 hr
goto CONTA
movlw d'60'
movwf minuto
incf hora_h, F
movf hora_h, W
90
Capitulo 3 “Micro controladores PIC.”
subwf horas, W
btfsc STATUS, Z
goto GIRO0
CHECK3 movf hora_h, W
sublw d'24'
btfss STATUS, Z
goto CONTA
clrf hora_h
incf dia_d, F
movf dia_d, W
subwf dias, W
btfsc STATUS, Z
goto FIN
goto CONTA
GIRO0 decfsz giro, W
goto CCW
goto CW
CCW bsf PORTC, 2
bcf PORTC, 3
movlw d'2'
movwf giro
goto CHECK3
CW bcf PORTC, 2
bsf PORTC, 3
movlw d'1'
movwf giro
goto CHECK3
FIN nop
goto FIN
DEMORA1 movlw .8 ; 1 set numero de repeticion (B)
movwf PDel0 ;1|
PLoop11 movlw .249 ; 1 set numero de repeticion (A)
movwf PDel1 ;1|
PLoop12 clrwdt ; 1 clear watchdog
clrwdt ; 1 ciclo delay
91
Capitulo 3 “Micro controladores PIC.”
92
Capitulo 3 “Micro controladores PIC.”
END
93
Capitulo 4 “Estudio económico”. .
94
Capitulo 4 “Estudio económico”. .
Reporte Ejecutivo
La utilidad obtenida por el proyecto será de $ 7,801.65 una vez ya saldados todos los
gastos que se generen del mismo.
95
Capitulo 4 “Estudio económico”. .
INVERSIÓN $ 80.000,00
Mantenimiento Anual $600,00
días por periodo 28
periodos al año 13,03571429
Beneficio por periodo $ 32.000,00
Beneficio Neto Anual $416.000,00
Retorno de la inversión 5 meses
Préstamo $67.495,42
Horas laboradas durante Semanas laboradas en Días totales Costo por Costo total de
días hábiles días hábiles laborados hora ingeniería
8 5 30 $190,00 $45.600, $45.600,
00 00
96
Capitulo 4 “Estudio económico”. .
Referencias de consulta.
Bibliográfica.
98
Glosario
Hemerográfica
Tesis
99
Glosario
Sitios de Internet
http://www.agelectronica.com.mx/
http://www.agrobit.com/Microemprendimientos/cria_animales/avicultura/Mi000002av.htm
http://www.agrobit.com/Microemprendimientos/cria_animales/avicultura/MI000004av.htm
http://www.agspecinfo.com/pdfs/B/BT137-E.PDF
http://www.agspecinfo.com/pdfs/D/DA05N.PDF
http://www.agspecinfo.com/pdfs/D/DS1307.PDF
http://www.agspecinfo.com/pdfs/D/DS1820.PDF
http://www.agspecinfo.com/pdfs/J/JHD162A.PDF
http://www.agspecinfo.com/pdfs/N/NTE139A.PDF
http://www.agspecinfo.com/pdfs/P/PN2222A.PDF
http://www.avicola.com.mx/incubadoras%20semiautomaticas_1.htm
http://www.avicola.com.mx/botones%20menu%20principal/incubadora%20de%20avestruz
%20principal.JPG
http://www.avicultura.com.mx/articulos/?seccion=reproduccion&tema=rep003
http://www.beltronica.es/Productos/CLEMAS.htm
http://www.datasheetcatalog.com/datasheets_pdf/L/7/8/0/L7805CV.shtml
http://www.diariohorizonte.com/view/articulo.aspx?articleid=11491&zoneid=2
http://www.engormix.com/los_pollos_incubados_brotan_forumsview7134.htm
http://www.engormix.com/cria_faisanes_primera_parte_s_articulos_15_AVG.htm
http://www.ejournal.unam.mx/vet_mex/vol31-02/RVM31209.pdf
http://www.fucoa.gob.cl/pdf_zip/capacitacion/Codornices.pdf
http://www.geocities.com/sanfdo/codorn.htm
http://www.grain.org/briefings_files/gallina-ciega-2006-es.pdf
http://www.ic-prog.com/index1.htm
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=64
http://micropic.wordpress.com/2007/01/22/mplab/
http://micros.mforos.com/1149907/6097036-contador-temporizador-16f84a/
http://www.ortodoxism.ro/datasheets/stmicroelectronics/2143.pdf
http://www.piclist.com/techref/piclist/codegen/delay.htm
http://www.sagarpa.gob.mx/Dgg/estudio/sitpollo97tex.pdf
http://sample.microchip.com/ShoppingCart.aspx
http://www.todoar.com.ar/ir.php?nreg=29f535a54d97474a
http://www.unicrom.com/Tut_PICs1.a
100
Anexos
Anexos
101