You are on page 1of 24

MICROCONTROLADORES

(MTF-1021)

PROYECTO: Simulación de un Proceso Industrial controlado mediante un


PIC16F84A

Integrantes: No de Control

Osmar Antonio García Vázquez 15370854

Japhet González Berrones 15370858

Catedrático:
M.C. Omar Salas Hernández
Carrera:
Ing. Mecatrónica
Antecedentes
Un microcontrolador es un circuito integrado programable que contiene todos los
componentes necesarios para controlar el funcionamiento de una tarea determinada,
como el control de una lavadora, un teclado de ordenador, una impresora, un sistema de
alarma, etc.
El microcontrolador es uno de los inventos más notables del siglo XX. En el mercado hay
gran cantidad de ellos, con multitud de posibilidades y características. Cada tipo de
microcontrolador tiene un propósito en general y es el diseñador del sistema quien debe
decidir cuál es el microcontrolador más idóneo para cada uso.
En los últimos años han tenido un gran auge los microcontroladores PIC fabricados por
Microchip Technology Inc. Los PIC (Peripheral Interface Controller) son una familia de
microcontroladores que han tenido gran aceptación y desarrollo en los últimos años gracias
a que sus buenas características, bajo precio, reducido consumo, pequeño tamaño, gran
calidad, fiabilidad y abundancia de información, lo convierten en muy fácil, cómodo y rápido
de utilizar.
El siguiente proyecto está enfocado en simular un proceso industrial cuyo objetivo es
elaborar panquecitos en diferentes presentaciones y posteriormente pasar al proceso de
empaquetado, también se simularon las posibles fallas que se pueden presentar durante el
proceso y el cómo suspender el trabajo por si alguna falla llegara a presentarse. El uso de
microcontroladores es muy utilizado a nivel profesional para manipular desde procesos
básicos hasta procesos que requieren ejecutar diferentes tareas al mismo tiempo, el uso de
los PIC comúnmente es utilizado en aplicaciones prácticas o prototipos y que no requieren
una exigencia de alto nivel para manipular procesos industriales más complejos sin
embargo es la base para después utilizar controladores más avanzados que son aplicables
en áreas profesionales.
Dentro de los diferentes tipos de microcontroladores los hay que procesan datos de 4, 8,
16 y 32 bits, sin embargo, el más representativo y popular es el de 8 bits, al que pertenecen
los PIC. En el siguiente trabajo se manejó lo que fue el PIC16F84A de 8 bits gama media
basado en una arquitectura tipo Harvard que posee buses y espacios de memoria por
separado para el programa y los datos. Esta encapsulado en un económico DIL de 18 pines
(Figura 1). El microcontrolador PIC16F84A puede trabajar con una frecuencia máxima de
10 MHz y la versión avanzada PIC16F84A-20 puede llegar hasta los 20 MHz, aunque para
fines prácticos se recomienda trabajarlo a su capacidad de 4 MHz.
Figura 1. Microcontrolador PIC16F84A
La programación de un microcontrolador está basada en un juego de instrucciones como
un conjunto de entradas binarias que producen acciones definidas durante un ciclo de
instrucción. Como el proceso de escribir un código ejecutable era considerablemente arduo,
en consecuencia, fue creado el primer lenguaje de programación denominado ensamblador
ASM (Figura 2). Siguiendo la sintaxis básica del ensamblador, era más fácil escribir y
comprender el código. Las instrucciones en ensamblador consisten en las abreviaturas con
significado y a cada instrucción corresponde una localidad de memoria. Un programa
denominado ensamblador compila (traduce) las instrucciones del lenguaje ensamblador a
código máquina (código binario).

Figura 2. Lenguaje ensamblador (ASM).


Este programa compila instrucción a instrucción sin optimización. Como permite controlar
en detalle todos los procesos puestos en marcha dentro del chip, este lenguaje de
programación todavía sigue siendo popular.
Marco teórico.

El PIC16F84A (gama media) es un microcontrolador de 8 bits y 18 pines y está basado en


una arquitectura Harvard, sus principales características son:

 Repertorio de 35 Instrucciones.

 Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que
necesitan dos.

 Versiones para bajo consumo (16LF84A), de 4 MHz (PIC16F84A-04) y 20 MHz


(PIC16F84A-20). Un ciclo máquina del PIC son 4 ciclos de reloj, por lo cual, si
tenemos un PIC con un cristal de 4 MHz, se ejecutarán 1 millón de instrucciones por
segundo.

 Memoria de programa Flash de 1 K x 14 bits.

 Memoria RAM dividida en 2 áreas: 22 registros de propósito específico (SFR) y 68


de propósito general (GPR) como memoria de datos.

 15 registros de funciones especiales.

 Memoria de datos RAM de 68 bytes (68 registros de proposito general).

 Memoria de datos EEPROM de 64 bytes.

 Contador de programa de 13 bit (lo que en teoría permitiría direccionar 4 KB de


memoria, aunque el 16F84 solo dispone de 1KB de memoria implementada).

 Pila con 8 niveles de profundidad.

 Modos de direccionamiento directo, indirecto y relativo.

 ALU de 8 bits y registro de trabajo W del que normalmente recibe un operando que
puede ser cualquier registro, memoria, puerto de Entrada/Salida o el propio código
de instrucción.

 4 fuentes de interrupciones:
A través del pin RB0/INT.
Desbordamiento del temporizador TMR0.
Interrupción por cambio de estado de los pins 4:7 del Puerto B.
Completada la escritura de la memoria EEPROM.

 1.000.000 de ciclos de borrado/escritura de la memoria EEPROM.

 40 años de retención de la memoria EEPROM.

 13 pins de E/S con control individual de dirección.


 PortA de 5 bits <RA0:RA4>.

 PortB de 8 bits <RB0:RB7>.

 Contador/Temporizador TMR0 de 8 bits con divisor programable.

 Power-on Reset (POR).

 Power-up Timer (PWRT).

 Oscillator Start-up Timer (OST).

 Watchdog Timer (WDT).

 Protección de código.

 Modo de bajo consumo SLEEP.

 Puede operar bajo 4 modos diferentes de oscilador.

 Programación en serie a través de dos pins.

 Tecnología de baja potencia y alta velocidad CMOS Flash/EEPROM.

 Características eléctricas máximas (no deben ser superadas y de mantenerse por


un tiempo en algún máximo puede dañarse al PIC)

Temperatura ambiente máxima para funcionamiento de -55°C to +125°C.

Tensión máxima de VDD respecto a VSS de -0,3 a +7,5V.

Tensión de cualquier patilla con respecto a VSS (excepto VDD, MCLR, y RA4) de -
0,3V a (VDD + 0.3V).

Tensión en MCLR con respecto a VSS -0,3 a +14V.

Tensión en RA4 con respecto a VSS -0,3 a +8,5V.

Disipación de potencia total de 800 mW.

Máxima corriente de salida a VSS 150 mA.

Máxima corriente de salida de VDD 100 mA.

Máxima corriente del puerto "A" como fuente, 50 mA.

Máxima corriente del puerto "A" como sumidero, 80 mA.

Máxima corriente del puerto "B" como fuente, 100 mA.

Máxima corriente del puerto "B" como sumidero, 150 mA.


Máxima corriente que puede suministrar una sóla salida como fuente o sumidero,
25 mA.

 Rango de alimentación:

- 16LF84A: de 2 a 5,5 V en configuración de oscilador XT, RC y LP.


- 16F84A:
de 4 a 5,5 v en configuración de oscilador XT, RC y LP.
de 4,5 a 5.5 v en configuración de oscilador HS.

 Consumo típico:

16LF84A:

- de 1 a 4 mA en configuración de oscilador RC y XT (FOSC=2 MHz, VDD=5,5V).


- de 15 a 45 μA en configuración de oscilador LP (FOSC=32kHz, VDD=2V, WDT
deshabilitado).

16F84A:
- de 1,8 a 4.5 mA en configuración de oscilador RC y XT (FOSC=4 MHz, VDD=5,5V).
- de 3 a 10 mA en configuración de oscilador RC y XT durante la programación de la
FLASH (FOSC=4MHz, VDD=5,5V).

16F84A-20: de 10 a 20 mA en configuración de oscilador HS (FOSC=20 MHz, VDD=5,5V).

Arquitectura interna.
Memoria de datos.

El PIC se programa mediante un lenguaje de programación que puede ser desde un


lenguaje de programación básico como lo es el lenguaje ensamblador hasta un lenguaje de
programación de alto nivel como lo es el lenguaje C.

El lenguaje maquina es dificil de utilizar por el hombre ya que se aleja de su forma natural
de expresarse, por ello la realizacion del siguiente proyecto se ha enfocado en el uso de la
programacion en lenguaje ensamblador siendo la manera de expresar las instrucciones de
una forma mas natural al hombre y que, sin embargo es muy cercana al microcontrolador
porque cada una de sus instrucciones se corresponde con otra en codigo maquina que el
microcontrolador es capaz de interpretar

Para introducir un programa en ensamblador en un sistema basado en CPU tenemos que


traducirlo a hexadecimal o a binario. Para realizarlo a su vez se utiliza un programa de
ordenador, llamado programa ensamblador. Éste sería un ejemplo de programación en
ensamblador o mnemónicos:

org 0
start movlw 0Eh
movwf REG1
movlw 100
addwf REG1,1
end

Repertorio de instrucciones.

En el caso del PIC16F84A y los de los PIC de la gama media cada instrucción está formada
por una palabra de 14 bits que utiliza un tipo de código denominado OPCODE (Código de
Operación), que especifica el mnemónico de la operación y los operandos que
correspondan, que son los datos con los que opera la instrucción.
Ejemplo, instrucción CLRF f:

El OPCODE de CLRF f es en binario "0000011fffffff" donde "fffffff" se sustituiría por el


registro que se quiera borrar. f es una de las abreviaturas que se utilizan para describir las
instrucciones del PIC usados en el lenguaje ensamblador y que son:

 f Representa un registro cualquiera de la memora de datos.


 w Registro de trabajo (Working Register).
 b Dirección de un bit dentro de un registro de 8 bits (0-7).
 l ó k Literal o constante de 8 bits.
 d Bit de destino, 0 ó 1.
 x Los bits que estén representados por este tipo de dato no tienen ninguna función
y su valor lo define el compilador.

Para hacer la tarea del programador más grata, se usan algunas convenciones. En general,
las convenciones son cualquier acción que facilita la revisión y comprensión de un
programa, especialmente el que uno mismo ha escrito cuando tiene que revisarlo tiempo
después. Algunas convenciones son:

 Los ficheros de código fuente llevarán la extensión *.ASM


 Los ficheros de listado llevarán la extensión *.LST
 Los ficheros de código objeto llevarán la extensión *.OB
 Los ficheros de errores llevarán la extensión *.ERR
 Los ficheros ejecutables en formato Intel Hex llevarán la extensión *.HEX
 Comentario descriptivo del programa (utilizar una cabecera estandarizada).
 Definir el microcontrolador que se usará (con las directivas LIST e INCLUDE).
 Introducir las opciones de compilación (que serán vistas más adelante) (opcional).
 Establecer las constantes que se usarán (con la directiva EQU).
 Reservar espacios de memoria (directiva RES) (si es necesario).
 Configurar los puertos.
 Desarrollar el programa con comentarios, en lo posible explicando cada línea de
código.
 Los mnemónicos escritos en minúscula y las constantes y variables en mayúscula
hacen que el código escrito sea más visible.
 Colocar las rutinas en el mismo sitio, todas contiguas.
 Dibujar diagramas de flujo o escribir seudocódigo.

A continuación, se hace representación de su estructura en la siguiente figura

El programa escrito en lenguaje ensamblador recibe la denominación de código fuente,


archivo fuente o fichero fuente. Suele tener le extensión *.asm. El archivo fuente debe ser
traducido a código máquina, de lo cual se encarga el programa ensamblador. La mayoría
de los ensambladores proporcionan a su salida un fichero que suele tener la extensión
*.hex. Este fichero puede ser grabado en la memoria de programa mediante la utilización
de un grabador de microcontroladores. De igual manera este fichero con extensión *.hex es
también utilizado para cargarlo en simulaciones elaboradas en plataformas como Proteus,
el cual fue utilizado en la elaboración del proyecto.
Diagrama de flujo del proyecto
Desarrollo
El presente proceso está diseñado para la producción de panecillos, donde es posible
generar una cierta cantidad de producción dependiendo de la receta seleccionada, este
proceso naturalmente está diseñado para generar 15 panecillos por minuto, consta de 5
microcontroladores los cuales cada microcontrolador tiene una función en específico.
Microcontrolador 1: Proceso 1
Este microcontrolador se encarga de seleccionar el tipo de receta la cual generara la
cantidad de panecillos en cierto tiempo, terminado el proceso manda una señal la cual será
detectada por el segundo microcontrolador, el primer microcontrolador posee tres swiches,
los cuales se encargan de parar el proceso, como es el caso de la fotocelda, paro y
emergencia, por ultimo cuenta con una entrada la cual recibirá una señal que indicara si
existe un fallo en el proceso 2.

Este Switch da inicio al proceso, pero no


funcionara si no se ha seleccionado la
Switch de inicio (RB0) receta a realizar, o si está activado
cualquier switch de paro.
Este botón será activado si existe alguna
falla en el proceso 1, si se activa el paro, el
proceso no trabajara hasta que se pulse el
switch y quede en modo abierto pero el
Switch de paro (RB1) proceso 2 parara hasta que termine su
rutina, la cuenta de panecillos, bolsas y
cajas no se borrara, hasta cuando se active
el proceso nuevamente, la cuenta seguirá
donde se quedó.
Este botón será activado si existe alguna
falla o accidente en el proceso 1, si se
activa el botón de emergencia, el proceso 1
y 2 se detendrán por completo y no
Switch de emergencia (RB2) trabajaran hasta que se pulse el switch y
quede en modo abierto, la cuenta de bolsas
y cajas no se borrara con el accionamiento
de este switch, la cuenta seguirá donde se
quedó a excepción de la cuenta de
panecillos
Este sensor indicar si existe celofán, de lo
contrario mandara una señal que parara el
proceso 1, pero el proceso 2 parara hasta
Entrada de señal del sensor de la que termine su rutina. Ambos procesos no
Fotocelda trabajaran hasta que se pulse el switch
(RB3) nuevamente y quede en modo abierto. La
cuenta de panecillos, bolsas y cajas no se
borrara, hasta cuando se active el proceso
nuevamente, la cuenta seguirá donde se
quedó.
Para dar comienzo al proceso 1, antes se
Switch receta 1 (2 panecillos de fábrica) debe seleccionar la opción de receta que
(RB4) se requiere y todos los switches de paro
deben de estar apagados., de no ser así, el
proceso no funcionara.
Para dar comienzo al proceso 1, antes se
Switch receta 2 (4 panecillos de fábrica) debe seleccionar la opción de receta que
(RB5) se requiere y todos los switches de paro
deben de estar apagados., de no ser así, el
proceso no funcionara.
Para dar comienzo al proceso 1, antes se
Switch receta 3 (8 panecillos de fábrica) debe seleccionar la opción de receta que
(RB6) se requiere y todos los switches de paro
deben de estar apagados., de no ser así, el
proceso no funcionara.
Cuando existe falla en el proceso 2, llegara
una señal que pare la producción en el
Entrada de señal de falla del proceso 2 proceso 1, y ambos procesos funcionaran,
(RB7) hasta que se desenclave el switch y se dé
comienzo nuevamente al proceso 1.
Terminado el primer ciclo del proceso uno,
Salida de la Señal de inicio para el dependiendo del tiempo de la receta
proceso 2 seleccionada, se mandara una señal por
(RA0) medio de esta salida que habilitara el
proceso 2.
Cuando se ha dado comienzo al switch de
Salida indicadora del inicio de la Sirena inicio, y se ha seleccionado la receta
(RA1) anteriormente, la sirena sonara durante 5
segundos, indicando que está a punto de
comenzar el proceso 1.
Indica que el proceso 1 está trabajando y al
Salida indicadora del Proceso 1 mismo tiempo se está produciendo la
(RA2) cantidad de panecillos dependiendo de la
receta seleccionada.
Indicara cuando sea seleccionada la opción
Salida indicadora de Paro o Fotocelda de paro o llegue alguna señal del sensor de
(RA3) fotocelda.

Salida indicadora de Emergencia o falla en Indicara cuando sea seleccionada la opción


el proceso 2 de emergencia o llegue alguna señal de
(RA4) falla del proceso 2.
Microcontrolador 2: Proceso 2
Cuando este microcontrolador recibe la señal de habilitación del proceso 1, corre la
secuencia de embolsado, corte y expulsado de la bolsa de panecillos, posee entradas que
me permitirán leer los diferentes tipos de sensores que tienen los pistones y la fotocelda,
causando un paro en el proceso 1 y 2. Además contiene una salida la cual enviara una
señal de habilitación al proceso 3 para el empaquetado.

Cuando el proceso 1 termina su secuencia,


Entrada de la señal de habilitación del envía una señal la cual leerá el segundo
proceso 1 microcontrolador, para comenzar a
(RA0) embolsar, cortar y expulsar.

Esta entrada estará leyendo


constantemente los datos que proporcione
Entrada de señal del sensor del Pistón un sensor magnético, dependiendo si el
dentro pistón está en su posición, de lo contrario
(RA1) mandara una señal que parara el proceso
1 y 2 hasta que el switch quede abierto
nuevamente.
Este sensor indicara si existe celofán, de lo
Entrada de señal del sensor de la contrario mandara una señal que parara el
Fotocelda proceso 1 y 2 hasta que el switch quede
(RA2) abierto nuevamente.
Esta entrada estará leyendo
constantemente los datos que proporcione
Entrada de señal del sensor del Pistón un sensor magnético, dependiendo si el
expulsor de bolsa pistón está en su posición, de lo contrario
(RA3) mandara una señal que parara el proceso
1 y 2 hasta que el switch quede abierto
nuevamente.
Entrada de señal de emergencia Cuando sea accionado el switch de paro de
(RA4) emergencia todos los procesos se
detendrán a excepción del conteo de
bolsas y cajas, hasta abrir nueva mente el
switch de emergencia y comenzar los
procesos mediante el switch de inicio.
Indicara cuando llegue alguna señal del
Salida indicadora de celofán sensor de fotocelda indicando la falta de
(RB0) celofán, deteniendo el proceso 1 y 2 hasta
que el switch quede abierto nuevamente.
Salida indicadora del Motor expulsor Esta salida indica cuando el motor expulsa
(RB1) el conjunto de panecillos, y cuando vuelve
a su posición original.
Salida indicadora del Motor rollo de Esta salida indica cuando el motor
celofán empaqueta el conjunto de panecillos.
(RB2)
Salida indicadora del Termo-sellado y Esta salida indica cuando el proceso está
corte haciendo el termo-sellado y el corte del
(RB3) plástico.
Salida indicadora del Motor expulsor Esta salida indica cuando una bolsa de
(RB4) panecillos es expulsada.
Salida indicadora del Pistón atorado Esta salida indica cuando existe un pistón
(RB5) en mal estado o está fuera de su posición.

Esta salida indica cuando existe cualquier


tipo de falla en el proceso 2, enviando una
Salida indicadora de falla en el proceso 2 señal que será captada por el primer
(RB6) microcontrolador, ocasionando un paro en
ambos procesos.
Salida de la Señal de inicio para el Terminado el proceso 2, se manda una
almacenamiento de bolsas señal al tercer microcontrolador el cual hará
(RB7) la lectura y almacenamiento del número de
bolsas que han sido producidas.

Microcontrolador 3: Almacenamiento de bolsas


Cuando este microcontrolador recibe la señal de habilitación del proceso 2, hará el conteo
y almacenamiento del total de bolsas que han sido producidas hasta el momento mediante
un despegador binario. Producidas las bolsas deseadas, se mandará una señal al cuarto
microcontrolador, el cual hará la lectura de las cajas. Cuando existe cualquier tipo de paro,
la cuenta seguirá donde se quedó, solo será reseteado hasta quitar la alimentación o
cambiando el tipo de receta.

Entrada de la señal de habilitación del Cuando el proceso 2 termina su secuencia,


proceso 2 envía una señal la cual leerá el tercer
(RA0) microcontrolador, para comenzar a hacer el
conteo de las bolsas.
Terminado el conteo de las bolsas
Salida de la Señal de inicio para el especificadas, se mandara una señal al
contador de cajas cuarto microcontrolador, el cual hará el
(RA1) conteo del almacenamiento de las cajas
producidas.
Para dar comienzo al proceso del conteo de
la segunda receta, debe estar presionado
Entrada de señal de la Receta 2 el switch de la presente receta y el proceso
(RA2) 1 debe mandar una señal indicando que
termino su ciclo, de no ser así, el proceso
no funcionara.
Para dar comienzo al proceso del conteo de
la receta tres, debe estar presionado el
Entrada de señal de la Receta 3 switch de la presente receta y el proceso 1
(RA3) debe mandar una señal indicando que
termino su ciclo, de no ser así, el proceso
no funcionara.
Para dar comienzo al proceso del conteo de
la receta uno, debe estar presionado el
Entrada de señal de la Receta 1 switch de la presente receta y el proceso 1
(RA4) debe mandar una señal indicando que
termino su ciclo, de no ser así, el proceso
no funcionara.
De estas salidas se mandan señales las
Salidas de señal hacia el indicador binario cuales pueden ser visualizadas mediante
(RB0-RB7) un lector binario.

Microcontrolador 4: Almacenamiento de cajas


Cuando este microcontrolador recibe la señal de habilitación del microcontrolador contador
de bolsas, comenzara el conteo y almacenamiento del total de cajas que han sido
producidas hasta el momento mediante un despegador binario. Cuando existe cualquier
tipo de paro, la cuenta seguirá donde se quedó, solo será reseteado hasta quitar la
alimentación o paro de emergencia

Cuando el contador de bolsas termina su


Entrada de la señal de habilitación del secuencia predeterminada, envía una
microcontrolador contador de bolsas señal la cual leerá el contador de cajas, de
(RA0) esta manera se puede visualizar el total de
cajas producidas mediante un lector
binario.
Terminado el conteo de las cajas
Salida de la Señal de inicio para el especificadas, se mandara una señal
contador de lotes especificando la producción de lotes de
(RA1) cajas(por default cada lote está integrado
por 100 cajas).
Para dar comienzo al proceso del conteo de
la segunda receta, debe estar presionado
Entrada de señal de la Receta 2 el switch de la presente receta y el proceso
(RA2) 1 debe mandar una señal indicando que
termino su ciclo, de no ser así, el proceso
no funcionara.
Para dar comienzo al proceso del conteo de
la receta tres, debe estar presionado el
switch de la presente receta y el proceso 1
Entrada de señal de la Receta 3 debe mandar una señal indicando que
(RA3) termino su ciclo, de no ser así, el proceso
no funcionara.
Para dar comienzo al proceso del conteo de
Entrada de señal de la Receta 1 la receta uno, debe estar presionado el
(RA4) switch de la presente receta y el proceso 1
debe mandar una señal indicando que
termino su ciclo, de no ser así, el proceso
no funcionara.
Salidas de señal hacia el indicador binario De estas salidas se mandan señales las
(RB0-RB7) cuales pueden ser visualizadas mediante
un lector binario.
Microcontrolador 5: Producción de panecillos
Este microcontrolador estará conectado al proceso 2, puesto que se es necesario el
visualizar la cantidad de panecillos producidos durante la receta seleccionada.

Esta entrada será conectada de manera


física al proceso dos, cuando el proceso 2
comienza su rutina, empezará la lectura en
el quinto microcontrolador ocasionando un
Entrada de lectura de comienzo del conteo de la cantidad de panecillos que
proceso 2 produce el segundo proceso. Esta lectura
(RA0) se detiene cuando el proceso 2 termina su
ciclo, y puede ser interrumpido por medio
del paro de emergencia o quitando la
alimentación eléctrica.

Cuando sea accionado el switch de paro de


Entrada de señal del paro de emergencia emergencia todos los procesos se
(RA1) detendrán hasta abrir nueva mente el
switch de emergencia y comenzar los
procesos mediante el switch de inicio.
Para dar comienzo al proceso del conteo de
la segunda receta, debe estar presionado
el switch de la presente receta y el proceso
Entrada de señal de la receta 2 2 debe mandar una señal indicando que
(RA2) comienza su ciclo, de no ser así, el proceso
no funcionara. El proceso de la primer
receta esta designado por default.
Entrada se señal de fotocelda Este sensor indicara si existe celofán, de lo
(RA3) contrario mandara una señal que parara el
proceso 1,2 y el contador hasta que el
switch quede abierto nuevamente.
Entrada de señal del paro Indicara cuando sea seleccionada la opción
(RA4) de paro en el proceso 1 o 2.
Salidas de señal hacia el indicador binario De estas salidas se mandan señales las
(RB0-RB6) cuales pueden ser visualizadas mediante
un lector binario.
Entrada de señal de falla del proceso 2 Indica cuando existe cualquier tipo de falla
(RB7) en el proceso 2, recibiendo una señal que
será captada por el microcontrolador,
ocasionando un paro en la cuenta de
panecillos.
Diagrama elaborado en PROTEUS 8.6
Ejecución
Primer proceso:
Durante la ejecución de este proceso primeramente se enciende una sirena durante 5
segundos cuando se pulsa el botón de inicio (Figura A) al terminar el tiempo de inmediato
enciende el proceso 1 (Figura B) lo que significa que está comenzando con la elaboración
de panquecitos dependiendo del tipo de presentación seleccionado con anterioridad, en
este caso se muestra una producción de 4 panquecitos durante 16 segundos pudiendo
visualizarlo en el display ubicado en la parte superior. Cabe mencionar que en dado caso
de presentarse una falla durante el proceso 1 este cuenta con diferentes tipos de fallas
siendo PARO/FOTOCELDA o PARO DE EMERGENCIA esto para simular cualquier falla
que pudiera presentarse parando el proceso por seguridad del usuario (Figura C). Si el
proceso no presenta ninguna falla de las descritas anteriormente mandara un pulso que
habilitara el proceso 2 y comenzara con el empaquetado del producto (Figura D)
A2
B2 A2
C2 B2
C2
D2
D2
E2
E2
F2
F2
G2
G2

R10 ENABLE_P2 R10 ENABLE_P2


220 220
R11 SIRENA R11 SIRENA
220 220
R12 PROCESO1 R12 PROCESO1
220 220
R13 PARO/FOTOCELDA R13 PARO/FOTOCELDA
220 220

R1(1)
R1(1)
R1 R1
200 200
PARO_EMERGENCIA PARO_EMERGENCIA
XXX
XXX

Q
P

Z
Q
P

Y1
G

D
E

A
Y1

F
G

D
E

A
F

(COM)
(COM)

PISTON SENSOR
PISTON SENSOR
RUN
RUN

FOTO EMERG PARO


FOTO EMERG PARO 8 4 2
8 4 2

R5(1) PRIMER PROCESO R2(1)


R5(1) PRIMER PROCESO R2(1) 16
OSC1/CLKIN RA0
17 P
16 17 P 15 18 Q
OSC1/CLKIN RA0 OSC2/CLKOUT RA1
1 XXX
15
OSC2/CLKOUT RA1
18 Q R5 4
RA2
2 Y
R2
1 XXX
R5 4
RA2
2 Y 10k
MCLR RA3
3 Z
10k
MCLR RA3 RA4/T0CKI
3 Z
10k RA4/T0CKI 6 A
RB0/INT
7 B
6 A RB1
RB0/INT 8 Y1
7 B RB2
RB1 9 D
8 Y1 RB3
RB2 10 E
9 D RB4
RB3 11 F
10 E RB5
RB4 12 G
11 F RB6
RB5 13 H
12 G RB7
RB6
13 H PIC16F84A
RB7
PIC16F84A

Figura A. Figura B.
A2 A2
B2 B2
C2 C2
D2 D2
E2 E2
F2 F2
G2 G2

R10 ENABLE_P2
R10 ENABLE_P2
220
R11 SIRENA 220
R11 SIRENA
220
R12 PROCESO1 220
R12 PROCESO1
220
R13 PARO/FOTOCELDA 220
R13 PARO/FOTOCELDA
220
220
R1(1)
R1
R1(1)
200
R1
PARO_EMERGENCIA 200
XXX

PARO_EMERGENCIA
Q
P

XXX
Q
P

Z
Y1
G

D
E

A
F

(COM)

Y1
G

D
E

A
F
(COM)

RUN
RUN

FOTO EMERG PARO


8 4 2
FOTO EMERG PARO
8 4 2
R5(1) PRIMER PROCESO R2(1)
16 17 P
OSC1/CLKIN RA0
15 18 Q
OSC2/CLKOUT RA1
R5 RA2
1 XXX R5(1) PRIMER PROCESO R2(1)
4 2 Y 16 17 P
MCLR RA3 OSC1/CLKIN RA0
3 Z 15 18 Q
10k RA4/T0CKI OSC2/CLKOUT RA1
1 XXX
6 A R5 4
RA2
2 Y
RB0/INT MCLR RA3
7 B
RB1 3 Z
8 Y1 10k RA4/T0CKI
RB2
9 D
RB3 6 A
10 E RB0/INT
RB4 7 B
11 F RB1
RB5 8 Y1
12 G RB2
RB6 9 D
13 H RB3
RB7 10 E
RB4
PIC16F84A 11 F
RB5
12 G
RB6
13 H
RB7
PIC16F84A

Figura C. Figura D.

Segundo proceso:
Al habilitar el proceso 2 mediante el proceso 1 este comienza a habilitar los motores
secuencialmente que harán el proceso de empaquetado (Figura E). Durante el proceso 2
se simularon de igual forma que en el proceso 1 alguna posible falla que pudiera
presentarse en los motores ubicándolos como interruptores normalmente abiertos si alguna
falla se presentara este inmediatamente deshabilitaría el proceso 2 y posteriormente el
proceso 1 (Figura F).
A1
R7
FALTA CELOFAN
220
B1
R8
MOTOR2
220
C1
R9
MOTOR3
220
D1
R14
MOTOR4
220
E1
R3
MOTOR5
220
F1
R4
PISTON ATORADO
220
G1
R6
FALLA PROCESO2
220
CAJAS
R24

P3
R15 220
ENABLE PROC3
220

PARO_EMERGENCIA Figura E.
(COM) 1

FOTOCELDA CELOFAN 3

PISTON SENSOR PISTON EXPULSOR 4

7
Q1

ORA 8
A2
B2
C2
D2
E2
F2
G2
A1
R7
FALTA CELOFAN
220
B1
R8
MOTOR2
220
C1
R9
MOTOR3
220
R10 ENABLE_P2 D1
R14
MOTOR4
220 220
R11 SIRENA E1
R3
MOTOR5
220 220
R12 PROCESO1 F1
R4
PISTON ATORADO
220 220
R13 PARO/FOTOCELDA G1
R6
FALLA PROCESO2
220 220
CAJAS

R1(1) P3
R15
R1 ENABLE PROC3
220
200
PARO_EMERGENCIA
XXX
Q
P

(COM) 1

2
Y1
G

D
E

A
F

(COM)
FOTOCELDA CELOFAN 3

PISTON SENSOR PISTON EXPULSOR 4

RUN
5

Simulación de Falla
7
Q1

ORA 8
D
FOTO EMERG PARO
8 4 2

R5(1) PRIMER PROCESO R2(1) SEGUNDO PROCESO R25(1)


16 17 P 16 17 P
OSC1/CLKIN RA0 OSC1/CLKIN RA0
15 18 Q 15 18 Q1
OSC2/CLKOUT RA1 OSC2/CLKOUT RA1
1 XXX 1 ORA
R5 4
RA2
2 Y
R2 4
RA2
2 D
R25
MCLR RA3 MCLR RA3
3 Z 3 Y1
10k RA4/T0CKI 10k RA4/T0CKI 10k
6 A 6 A1
RB0/INT RB0/INT
7 B 7 B1
RB1 RB1
8 Y1 8 C1
RB2 RB2
9 D 9 D1
RB3 RB3
10 E 10 E1
RB4 RB4
11 F 11 F1
RB5 RB5
12 G 12 H
RB6 RB6
13 H 13 P3
RB7 RB7
PIC16F84A PIC16F84A

Figura F.

Tercer proceso:
El tercer y último proceso será el encargado de ir contando las bolsas y cajas en un sistema
binario (Figura G) el cual será el encargado de habilitar el ultimo microcontrolador a la vez
que se haya llegado al número total de bolsas que se requieren para completar una caja
(Figura H). Actualmente el proyecto está configurado para almacenar un número total de
bolsas en cajas dependiendo el tipo de presentación que se requiera por ejemplo para una
presentación de 2 panquecitos se requieren 30 bolsas para llenar una caja, en la
presentación de 4 panquecitos se necesitan de 18 bolsas para completar una caja y en
presentación de 8 panquecitos se requieren de 12 bolsas para completar una caja. Dentro
de la programación elaborada en el software MPLAB-IDE es posible editar la velocidad y
presentación de dicho proceso configurándolo a las necesidades que requiera el usuario
(Figura I)
1
R26
D6 R26
220 1
R27 D6
2 220
D7 R27
220 2
R28 D7
3 220
D8 3
R28
220 D8
4
R29 220
D9 4
R29
PISTON EXPULSOR 220 D9
R30 PISTON EXPULSOR 220
5 R30
D10 5
D10
220 220
6
R31 R31
6
D11 D11
220 220
7
R32 7
R32
D12 D12
220 220
R33 8
R33
8 D13
D13 220
220

BOLSAS
BOLSAS 16
OSC1/CLKIN RA0
17 P3
15 18 CAJAS
16 17 P3 OSC2/CLKOUT RA1
OSC1/CLKIN RA0 1 F
15 18 CAJAS R25 4
RA2
2 G
OSC2/CLKOUT RA1 MCLR RA3
1 F
R25 4
RA2
2 G 10k RA4/T0CKI
3 E
MCLR RA3
3 E 6 1
10k RA4/T0CKI RB0/INT
7 2
RB1
6 1 8 3
RB0/INT RB2
7 2 9 4
RB1 RB3
8 3 10 5
RB2 RB4
R25(1) 11 6
9 4 RB5
RB3 12 7
10 5 RB6
8
RB4 13
R25(1) 11 6 RB7
RB5
12 7 PIC16F84A
RB6
13 8
RB7
PIC16F84A

Figura G. Figura H.

Contador o variable de ayuda para


generar un tiempo determinado

Figura I.
Conclusión
Para poder llevar a cabo el presente proyecto, fue necesario recurrir a diversos tipos de
fuentes de información, tales como, libros, videos, PDFs, etc., mediante las cuales fue
posible encontrar la información necesaria para el manejo del lenguaje ensamblador con el
cual se programó el microcontrolador PIC16F84A. El microcontrolador ya mencionado
posee un pequeño repertorio de instrucciones, las cuales se encuentran en el manual del
fabricante, o se puede acceder a ellas mediante internet, este repertorio de instrucciones
facilita la programación del microcontrolador. Realizadas las practicas correspondientes,
fue posible observar que el pin 4 del puerto A, configurado como salida no funciona de la
misma manera que los demás pines del mismo puerto, puesto que debe ser configurado
como pull-up para poder habilitarlo como salida, además fue posible utilizar diversos tipos
de retardos, como fue el caso de las librerías, usando el TMR0 y por medio de instrucciones,
esto para ejecutar una tarea en un lapso de tiempo determinado siendo el TMR0 el que
mejor se adaptó a la elaboración del proyecto debido a su accesible manipulación y
entendimiento en cambio si se requiere tiempos demasiados precisos o exactos el TMR0
sería la excepción por el desfase que existe a la hora de generar por ejemplo un segundo,
presentándose un desfase de milisegundos cada segundo.
Para poder llevar a cabo el proyecto final que consiste en un proceso de fabricación de
panecillos, controlado por 5 microcontroladores, donde el primero controla el tipo de
proceso a realizar y terminando el mismo manda un pulso por medio del cual el segundo
microcontrolador se activa para embolsar las mantecadas, cortar el plástico que las
envuelve y mandarlas a otros procesos los cuales se encargan de contar las mantecadas,
bolsas y cajas por medio de tiempos. Realizado el proyecto se determinó que es posible
hacer uso de otro tipo de microcontrolador que nos proporcionara más puertos para el uso
de las entradas y salidas, puesto que el PIC16F84A solo contiene dos puertos, dicho
microcontrolador propuesto es el PIC16F877 con cuatro puertos disponibles que son aptos
para las necesidades de este proceso.
En conclusión, se puede mencionar que existe la posibilidad de mejorar el funcionamiento
del presente proyecto. Sin embargo, el uso de este microcontrolador cumple con la función
básica que solicita el proyecto, además de que es un buen microcontrolador para comenzar
a adentrarse en el mundo de la programación y automatización de procesos industriales y
así adquirir el conocimiento suficiente para después proyectar una aplicación de nivel
superior.

You might also like