'****************************************************************
'* Name : 2 SINGULADORES MISSION VERSION 0.0 *
'* Author : ING. ROJO AGUILAR CHAVEZ *
'* Notice : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 15/03/2012 *
'* Version : 0.0 *
'* Notes : PROGRAMA PARA CONTROLAR 2 SINGULADORES SEGUN LA *
'* CANTIDAD DE PIEZAS QUE SE LE PROGRAME PARA CONTAR *
'* POR CADA BANDA SINGULADORA O TRANSPORTADOR *
'****************************************************************
; º º
; º _\\|//_ º
; º (` o-o ') º
; º------ooO-(_)-Ooo-------------------------------------------º
; º º
; º ING. ROJO AGUILAR CHAVEZ º
; º .oooO Oooo º
; º ( ) ( ) INGENIERIA EN MECATRONICA º
; º_____\ (_______) /__________________________________________º
; º \_) (_/ º
;
;
;
; --------------------SECUENCIA DEL PROGRAMA-------------------------
;
; PASO 1: DECLARO LIBRERÍAS
; PASO 2: PUERTOS DE ENTRADA, SALIDA, TECLADO Y LCD
; PASO 3: RESETEO PUERTOS Y VARIABLES
; PASO 4: MUESTRO EN LCD QUIEN FABRICO PROYECTO
; PASO 5: PREGUNTO SI ENCIENDO BANDA A O NO ? (EN CASO DE SER NO SALTO HASTA PASO 17)
; PASO 6: SI>CONFIGURO BANDA A CONTADOR 1 A 7 Y TIEMPO DE SELLADO 0 A 700mS
; PASO 7: MANDO SEÑAL CON PORTA.4 PARA INICIO LECTURA DEL CONTADOR NO MAYOR A 1250mS
; PASO 8: APAGO SEÑAL PORTA.4 PARA EVITAR ERRORES
; PASO 9: MANDO SEÑAL A PIC16F84A LOS 3 BIT DEL CONTADOR 1 A 7 IF PORTA=%000111
; PASO 10: APAGO SEÑAL A PIC16F84A LOS 3 BIT DEL CONTADOR 1 A 7 IF PORTA=%000111
; PASO 11: MANDO SEÑAL CON PORTA.4 PARA INICIO LECTURA DEL TIMER ENBOLSADORA NO MAYOR A 1200mS
; PASO 12: APAGO SEÑAL PORTA.4 PARA EVITAR ERRORES
; PASO 13: MANDO SEÑAL A PIC16F84A LOS 3 BIT DEL TIMER 100 A 700mS IF PORTA=%000111
; PASO 14: APAGO SEÑAL A PIC16F84A LOS 3 BIT DEL TIMER 100 A 700mS IF PORTA=%000111
; PASO 15: MANDO SEÑAL CON PORTA.4 PARA FINALIZAR CONFIGURACION DE PIC16F84A NO MAYOR A 1250mS
; PASO 16: APAGO SEÑAL PORTA.4 PARA EVITAR ERRORES
; PASO 17: NO>CONFIGURO BANDA B CONTADOR 1 A 7 Y TIEMPO DE SELLADO 0 A 700mS
; PASO 18: MANDO SEÑAL CON PORTA.4 PARA INICIO LECTURA DEL CONTADOR NO MAYOR A 150mS
; PASO 19: APAGO SEÑAL PORTA.4 PARA EVITAR ERRORES
; PASO 20: MANDO SEÑAL A PIC16F84A LOS 3 BIT DEL CONTADOR 1 A 7 IF PORTA=%000111
; PASO 21: APAGO SEÑAL A PIC16F84A LOS 3 BIT DEL CONTADOR 1 A 7 IF PORTA=%000111
; PASO 22: MANDO SEÑAL CON PORTA.4 PARA INICIO LECTURA DEL TIMER ENBOLSADORA NO MAYOR A 1250mS
; PASO 23: APAGO SEÑAL PORTA.4 PARA EVITAR ERRORES
; PASO 24: MANDO SEÑAL A PIC16F84A LOS 3 BIT DEL TIMER 100 A 700mS IF PORTA=%000111
; PASO 25: APAGO SEÑAL A PIC16F84A LOS 3 BIT DEL TIMER 100 A 700mS IF PORTA=%000111
; PASO 26: MANDO SEÑAL CON PORTA.4 PARA FINALIZAR CONFIGURACION DE PIC16F84A NO MAYOR A 1250mS
; PASO 27: APAGO SEÑAL PORTA.4 PARA EVITAR ERRORES
; PASO 28: SE FINALIZO CONFIGURACION DE PARAMETROS
; PASO 29: PEDIR EN LCD QUE SE PRESIONE BOTON DE INICIO
; PASO 30: LEER BOTON DE INICIO IF PORTB.3=1 THEN SISTEMA ON
; PASO 31: MUESTRA EN LCD EL ESTADO Y CONTADOR DE CADA BANDA
; ( BANDA A= ON / CONTADOR= 7Pza )
; ( ENBOLSADORA A= ON / TIMER= 200mS )
; ( BANDA B= OFF / CONTADOR= OFF )
; ( ENBOLSADORA B= OFF / TIMER= OFF )
;
;
; ----------------------DECLARO LIBRERÍA DE PIC BASIC PRO-------------------
INCLUDE "modedefs.bas"
DEFINE OSC 4 ;Define el Oscilador para un Cristal de 4 Mhz.
; ----------------------CONFIGURO PUERTOS DE ENTRADAS Y SALIDAS----------------------
;
; ********************* PUERTO A *************************
ADCON1=7 ;CONFIGURO TODOS LOS PINES DEL PUERTO A DIGITALES
TRISA=%000000
BIT1CONTADOR VAR PORTA.0 ; RA0 BIT 1 DE CONGIGURACION DE TIMER Y CONTADOR A/B
BIT2CONTADOR VAR PORTA.1 ; RA1 BIT 2 DE CONGIGURACION DE TIMER Y CONTADOR A/B
BIT3CONTADOR VAR PORTA.2 ; RA2 BIT 3 DE CONGIGURACION DE TIMER Y CONTADOR A/B
BIT4CONTADOR VAR PORTA.3 ; RA3 BIT 4 DE CONGIGURACION DE TIMER Y CONTADOR A/B
;A4 VAR PORTA.4 ; NO SE UTILIZARA
;BIT4B VAR PORTA.5 ; NO SE UTILIZARA
LET PORTA=%000000
; ********************* PUERTO E *************************
;
TRISE=%000
CONFIRMACIONA VAR PORTE.0 ; RE0 BIT DE CONGIGURACION DE TIMER Y CONTADOR B
CONFIRMACIONB VAR PORTE.1 ; RE1 BIT DE CONGIGURACION DE TIMER Y CONTADOR B
;BIT3B VAR PORTE.2 ; NO SE UTILIZARA
LET PORTE=%000
; ********************* PUERTO B *************************
; ----------------------CONEXION DE SENSORES EN PUERTO B COMO INTERRUPCIONES---------------------
TRISB=%00111000
;NONE VAR PORTB.0 ;NO SE USARA PIN
;NONE VAR PORTB.1 ;NO SE USARA PIN
FOCOEMERGENCIA VAR PORTB.2 ;NO SE USARA PIN
INICIOSISTEMA VAR PORTB.3 ;PIN DONDE SE INICIARÁ EL SISTEMA
REINICIO VAR PORTB.4 ;PIN DONDE SE REAJUSTARAN LOS PARAMETROS DE SISTEMA
PAROEMERGENCIA VAR PORTB.5 ;PIN DE PARO DE EMERGENCIA DEL SISTEMA N.A.
;SENSORA VAR PORTB.6 ;NO SE USARA PIN
;SENSORB VAR PORTB.7 ;NO SE USARA PIN
LET PORTB=%00000000
; ********************* PUERTO C *************************
; ----------------------CONEXION DE TECLADO MATRICIAL 4X4 PARA CONFIGURACION DE CONTADORES---------------------
TRISC=%11110000
FILA1 VAR PORTC.0 ;ENTRADA TECLA 1
FILA2 VAR PORTC.1 ;ENTRADA TECLA 4
FILA3 VAR PORTC.2 ;ENTRADA TECLA 7
FILA4 VAR PORTC.3 ;ENTRADA TECLA *
COLUMNA1 VAR PORTC.4 ;SALIDA TECLA 1
COLUMNA2 VAR PORTC.5 ;SALIDA TECLA 2
COLUMNA3 VAR PORTC.6 ;SALIDA TECLA 3
COLUMNA4 VAR PORTC.7 ;SALIDA TECLA A
LET PORTC=%00000000
; ********************* PUERTO D *************************
; ----------------------CONEXION DEL LCD EN PUERTO D---------------------
TRISD=%00000000
DEFINE LCD_DREG PORTD ;DECLARO EN QUE CABLEARE MI LCD EN PUERTO D
DEFINE LCD_DBIT 4 ;DECLARO QUE MIS DATOS SE TRANSMITEN A PARTIR DEL PIN D4-D5-D6-D7
DEFINE LCD_RSREG PORTD ;DECLARO EN QUE PUERTO COLOCO EL BIT RS
DEFINE LCD_RSBIT 2 ;DECLARO EN QUE PIN DEL PUERTO D COLOCO MI BIT "RS"
DEFINE LCD_EREG PORTD ;DECLARO EN QUE PUERTO COLOCO EL BIT E
DEFINE LCD_EBIT 3 ;DECLARO EN QUE PIN DEL PUERTO D COLOCO MI BIT "E"
DEFINE LCD_BITS 4 ;NUMERO DE PINES QUE UTILIZARE PARA COMUNICAR MI LCD 4 BITS
DEFINE LCD_LINES 4 ;NUMERO DE LINEAS DE MI LCD 2X16 Ó 4X20
DEFINE LCD_COMMANDUS 2000 ;DEMORA PARA INICIAR TODOS LOS COMANDOS DEL LCD
DEFINE LCD_DATAUS 50 ;DEMORA PARA INICIAR LA COMUNICACION DE DATOS
LET PORTD=%00000000
SINGULADORA VAR BYTE
SINGULADORB VAR BYTE
ENBOLSADORAAON VAR BYTE
ENBOLSADORABON VAR BYTE
CONTADORA VAR BYTE
CONTADORB VAR BYTE
TIMERA VAR BYTE
TIMERALCD VAR BYTE
TIMERB VAR BYTE
TIMERBLCD VAR BYTE
SINGULADORA=0
SINGULADORB=0
ENBOLSADORAAON=0
ENBOLSADORABON=0
CONTADORA=0
CONTADORB=0
TIMERA=0
TIMERB=0
CERO CON %000000
UNO CON %000001
DOS CON %000010
TRES CON %000011
CUATRO CON %000100
CINCO CON %000101
SEIS CON %000110
SIETE CON %000111
OCHO CON %001000
NUEVE CON %001001
DIEZ CON %001010
ONCE CON %001011
DOCE CON %001100
TRECE CON %001101
CATORCE CON %001110
QUINICE CON %001111
Clear
Pause 500
ON INTERRUPT GoTo CHECARINTERRUP ' Define el vector de interrupción
INTCON = %10001000 ' habilita las interrupciones (GIE=1)
' habilita la interrupción RB4-RB7 (RBIE=1)
' Inicializa la interrupción (RBIF=0)' habilita la interrupción RB4-RB7
INICIO:
LCDOut $FE, 1, " AUTOMATIZACIONES "
LCDOut $FE, $C0, " ----> RMS <---- "
LCDOut $FE, $94, " ROJOS MECHATRONIC "
LCDOut $FE, $D4, " SYSTEMS "
Pause 4000
SINGULADORAOFF: ;PREGUNTO SI ENCIENDO SINGULADOR A PARA CONFIGURARLO O NO
LCDOut $FE, 1, "QUIERES TRABAJAR CON"
LCDOut $FE, $C0, " EL SINGULADOR >A< "
LCDOut $FE, $94, " UTILIZA EL TECLADO "
LCDOut $FE, $D4, " --> NO <-- "
;TECLADO: UTILIZAR TECLAS CENTRAL=OK-ENTER / DERECHA=SI
fila2 = 1 ' Fila 2 = 1
IF COLUMNA2 = 1 Then
SINGULADORA=0
GoTo SINGULADORBOFF ' tecla "5"
EndIF
IF COLUMNA3 = 1 Then GoTo SINGULADORAON ' tecla "6"
GoTo SINGULADORAOFF
SINGULADORAON: ;PREGUNTO SI ENCIENDO SINGULADOR A PARA CONFIGURARLO O NO
LCDOut $FE, 1, "QUIERES TRABAJAR CON"
LCDOut $FE, $C0, " EL SINGULADOR >A< "
LCDOut $FE, $94, " UTILIZA EL TECLADO "
LCDOut $FE, $D4, " --> SI <-- "
;TECLADO: UTILIZAR TECLAS IZQUIERDA=NO / CENTRAL=OK-ENTER
fila2 = 1 ' Fila 2 = 1
IF COLUMNA1 = 1 Then GoTo SINGULADORAOFF ' tecla "4"
IF COLUMNA2 = 1 Then GoTo CONFIRMSINGAON1 ' tecla "5"
GoTo SINGULADORAON
CONFIRMSINGAON1: ;CONFIRMO AL PIC16F84A QUE SE UTILIZARÀ SINGULADOR A E INICIA CONFIGURACION
SINGULADORA=1
LET CONFIRMACIONA=1
LCDOut $FE, 1, " ENTRANDO AL MENU "
LCDOut $FE, $C0, " DE CONFIGURACION "
LCDOut $FE, $94, " DEL SINGULADOR >A< "
LCDOut $FE, $D4, " CARGANDO...... "
Pause 1000
LET CONFIRMACIONA=0
GoTo CONTADSINGA
CONTADSINGA: ;SELECCIONO CON TECLADO EL VALOR DEL CONTADOR 1 A 15 PZAS
LCDOut $FE, 1, "ELIGE LA CONSTANTE"
LCDOut $FE, $C0, " DEL CONTADOR DE "
LCDOut $FE, $94, "FRUTAS EN SINGULADOR"
LCDOut $FE, $D4, " > A < : ", DEC CONTADORA, "Pzas"
fila1 = 1 ' Fila 1 = 1
IF COLUMNA2 = 1 Then ' tecla "2"
IF CONTADORA<15 Then
CONTADORA=CONTADORA+1
Pause 100
EndIF
EndIF
fila2 = 1 ' Fila 2 = 1
IF COLUMNA2 = 1 Then VERIFICAA1 ' tecla "5"
fila3 = 1 ' Fila 3 = 1
IF COLUMNA2 = 1 Then ' tecla "8"
IF CONTADORA>0 Then
CONTADORA=CONTADORA-1
Pause 100
EndIF
EndIF
GoTo CONTADSINGA
VERIFICAA1: ;VERIFICO SI EL VALOR DEL CONTADOR ES>0 PARA VALIDAR
IF CONTADORA=0 Then ERRORA1
LCDOut $FE, 1, " SE ESTA INGRESANDO "
LCDOut $FE, $C0, "EL DATO DEL CONTADOR"
LCDOut $FE, $94, " DEL SINGULADOR >A< "
LCDOut $FE, $D4, " CARGANDO...... "
Call DATOCONTADORA
Pause 1000
LET PORTA = CERO
Pause 500
GoTo CONFIRMSINGAON2
ERRORA1: ;SUBRUTINA QUE INDICA QUE EL CONTADOR NO ES>0 REFORMULAR
LCDOut $FE, 1, " NO PUEDES DEJAR EL "
LCDOut $FE, $C0, " VALOR DEL CONTADOR "
LCDOut $FE, $94, " EN CERO, DEBES DAR "
LCDOut $FE, $D4, " UN VALOR CONT. A>0 "
Pause 5000
GoTo CONTADSINGA
CONFIRMSINGAON2: ;CONFIRMO AL PIC16F84A QUE SE UTILIZARÀ SINGULADOR A E INICIA CONFIGURACION
LET CONFIRMACIONA=1
LCDOut $FE, 1, " ENTRANDO AL MENU "
LCDOut $FE, $C0, " DE CONFIGURACION "
LCDOut $FE, $94, " DEL SINGULADOR >A< "
LCDOut $FE, $D4, " CARGANDO...... "
Pause 1000
LET CONFIRMACIONA=0
GoTo TIMERSINGA
TIMERSINGA: ;SELECCIONO CON EL TECLADO EL VALOR DEL TIMER 100 A 1500mS
LCDOut $FE, 1, "ELIGE LA CONSTANTE"
LCDOut $FE, $C0, "DEL TIMER DE ESPERA "
LCDOut $FE, $94, "PARA SELLAR ARPILLA "
LCDOut $FE, $D4, " > A < : ", DEC TIMERA, "Pzas"
fila1 = 1 ' Fila 1 = 1
IF COLUMNA2 = 1 Then ' tecla "2"
IF TIMERA<15 Then
TIMERA=TIMERA+1
Pause 100
EndIF
EndIF
fila2 = 1 ' Fila 2 = 1
IF COLUMNA2 = 1 Then VERIFICAA2 ' tecla "5"
fila3 = 1 ' Fila 3 = 1
IF COLUMNA2 = 1 Then ' tecla "8"
IF TIMERA>0 Then
TIMERA=TIMERA-1
Pause 100
EndIF
EndIF
GoTo TIMERSINGA
VERIFICAA2: ;VERIFICO SI EL VALOR DE TIMER ES>0 PARA VALIDAR
IF CONTADORA=0 Then ERRORA2
LCDOut $FE, 1, " SE ESTA INGRESANDO "
LCDOut $FE, $C0, " EL DATO DEL TIMERR "
LCDOut $FE, $94, "DE LA ENBOLSADORA A "
LCDOut $FE, $D4, " CARGANDO...... "
Call DATOTIMERA
Pause 1000
LET PORTA = CERO
GoTo TIMERSINGA
ERRORA2: ;SUBRUTINA QUE INDICA QUE EL TIMER NO ES>0 REFORMULAR
LCDOut $FE, 1, " NO PUEDES DEJAR EL "
LCDOut $FE, $C0, " VALOR DEL TIMERR "
LCDOut $FE, $94, " EN CERO, DEBES DAR "
LCDOut $FE, $D4, " UN VALOR TIMER A>0 "
Pause 5000
GoTo TIMERSINGA
CONFIRMSINGAON3: ;CONFIRMO AL PIC16F84A QUE SE UTILIZARÀ SINGULADOR A E INICIA CONFIGURACION
LET CONFIRMACIONA=1
LCDOut $FE, 1, " ENTRANDO AL MENU "
LCDOut $FE, $C0, " DE CONFIGURACION "
LCDOut $FE, $94, " DEL SINGULADOR >A< "
LCDOut $FE, $D4, " CARGANDO...... "
Pause 1000
LET CONFIRMACIONA=0
GoTo SINGULADORBOFF
SINGULADORBOFF: ;PREGUNTO SI ENCIENDO SINGULADOR A PARA CONFIGURARLO O NO
LCDOut $FE, 1, "QUIERES TRABAJAR CON"
LCDOut $FE, $C0, " EL SINGULADOR >B< "
LCDOut $FE, $94, " UTILIZA EL TECLADO "
LCDOut $FE, $D4, " --> NO <-- "
;TECLADO: UTILIZAR TECLAS CENTRAL=OK-ENTER / DERECHA=SI
fila2 = 1 ' Fila 2 = 1
IF COLUMNA2 = 1 Then
SINGULADORB=0
GoTo COMPARAAB ' tecla "5"
EndIF
IF COLUMNA3 = 1 Then GoTo SINGULADORBON ' tecla "6"
GoTo SINGULADORBOFF
SINGULADORBON: ;PREGUNTO SI ENCIENDO SINGULADOR A PARA CONFIGURARLO O NO
LCDOut $FE, 1, "QUIERES TRABAJAR CON"
LCDOut $FE, $C0, " EL SINGULADOR >B< "
LCDOut $FE, $94, " UTILIZA EL TECLADO "
LCDOut $FE, $D4, " --> SI <-- "
;TECLADO: UTILIZAR TECLAS IZQUIERDA=NO / CENTRAL=OK-ENTER
fila2 = 1 ' Fila 2 = 1
IF COLUMNA1 = 1 Then GoTo SINGULADORBOFF ' tecla "4"
IF COLUMNA2 = 1 Then GoTo CONFIRMSINGBON1 ' tecla "5"
GoTo SINGULADORBON
CONFIRMSINGBON1: ;CONFIRMO AL PIC16F84A QUE SE UTILIZARÀ SINGULADOR A E INICIA CONFIGURACION
SINGULADORB=1
LET CONFIRMACIONB=1
LCDOut $FE, 1, " ENTRANDO AL MENU "
LCDOut $FE, $C0, " DE CONFIGURACION "
LCDOut $FE, $94, " DEL SINGULADOR >B< "
LCDOut $FE, $D4, " CARGANDO...... "
Pause 1000
LET CONFIRMACIONB=0
GoTo CONTADSINGB
CONTADSINGB: ;SELECCIONO CON TECLADO EL VALOR DEL CONTADOR 1 A 15 PZAS
LCDOut $FE, 1, "ELIGE LA CONSTANTE"
LCDOut $FE, $C0, " DEL CONTADOR DE "
LCDOut $FE, $94, "FRUTAS EN SINGULADOR"
LCDOut $FE, $D4, " > B < : ", DEC CONTADORB, "Pzas"
fila1 = 1 ' Fila 1 = 1
IF COLUMNA2 = 1 Then ' tecla "2"
IF CONTADORB<15 Then
CONTADORB=CONTADORB+1
Pause 100
EndIF
EndIF
fila2 = 1 ' Fila 2 = 1
IF COLUMNA2 = 1 Then VERIFICAB1 ' tecla "5"
fila3 = 1 ' Fila 3 = 1
IF COLUMNA2 = 1 Then ' tecla "8"
IF CONTADORB>0 Then
CONTADORB=CONTADORB-1
Pause 100
EndIF
EndIF
GoTo CONTADSINGB
VERIFICAB1: ;VERIFICO SI EL VALOR DEL CONTADOR ES>0 PARA VALIDAR
IF CONTADORB=0 Then ERRORB1
LCDOut $FE, 1, " SE ESTA INGRESANDO "
LCDOut $FE, $C0, "EL DATO DEL CONTADOR"
LCDOut $FE, $94, " DEL SINGULADOR >B< "
LCDOut $FE, $D4, " CARGANDO...... "
Call DATOCONTADORB
Pause 1000
LET PORTA = CERO
Pause 500
GoTo CONFIRMSINGBON2
ERRORB1: ;SUBRUTINA QUE INDICA QUE EL CONTADOR NO ES>0 REFORMULAR
LCDOut $FE, 1, " NO PUEDES DEJAR EL "
LCDOut $FE, $C0, " VALOR DEL CONTADOR "
LCDOut $FE, $94, " EN CERO, DEBES DAR "
LCDOut $FE, $D4, " UN VALOR CONT. B>0 "
Pause 5000
GoTo CONTADSINGB
CONFIRMSINGBON2: ;CONFIRMO AL PIC16F84A QUE SE UTILIZARÀ SINGULADOR A E INICIA CONFIGURACION
LET CONFIRMACIONB=1
LCDOut $FE, 1, " ENTRANDO AL MENU "
LCDOut $FE, $C0, " DE CONFIGURACION "
LCDOut $FE, $94, " DEL SINGULADOR >B< "
LCDOut $FE, $D4, " CARGANDO...... "
Pause 1000
LET CONFIRMACIONB=0
GoTo TIMERSINGB
TIMERSINGB: ;SELECCIONO CON EL TECLADO EL VALOR DEL TIMER 100 A 1500mS
LCDOut $FE, 1, "ELIGE LA CONSTANTE"
LCDOut $FE, $C0, "DEL TIMER DE ESPERA "
LCDOut $FE, $94, "PARA SELLAR ARPILLA "
LCDOut $FE, $D4, " > B < : ", DEC TIMERB, "Pzas"
fila1 = 1 ' Fila 1 = 1
IF COLUMNA2 = 1 Then ' tecla "2"
IF TIMERB<15 Then
TIMERB=TIMERB+1
Pause 100
EndIF
EndIF
fila2 = 1 ' Fila 2 = 1
IF COLUMNA2 = 1 Then VERIFICAB2 ' tecla "5"
fila3 = 1 ' Fila 3 = 1
IF COLUMNA2 = 1 Then ' tecla "8"
IF TIMERB>0 Then
TIMERB=TIMERB-1
Pause 100
EndIF
EndIF
GoTo TIMERSINGB
VERIFICAB2: ;VERIFICO SI EL VALOR DE TIMER ES>0 PARA VALIDAR
IF CONTADORB=0 Then ERRORB2
LCDOut $FE, 1, " SE ESTA INGRESANDO "
LCDOut $FE, $C0, " EL DATO DEL TIMERR "
LCDOut $FE, $94, "DE LA ENBOLSADORA B "
LCDOut $FE, $D4, " CARGANDO...... "
Call DATOTIMERB
Pause 1000
LET PORTA = CERO
GoTo TIMERSINGB
ERRORB2: ;SUBRUTINA QUE INDICA QUE EL TIMER NO ES>0 REFORMULAR
LCDOut $FE, 1, " NO PUEDES DEJAR EL "
LCDOut $FE, $C0, " VALOR DEL TIMERR "
LCDOut $FE, $94, " EN CERO, DEBES DAR "
LCDOut $FE, $D4, " UN VALOR TIMER B>0 "
Pause 5000
GoTo TIMERSINGB
CONFIRMSINGBON3: ;CONFIRMO AL PIC16F84A QUE SE UTILIZARÀ SINGULADOR A E INICIA CONFIGURACION
LET CONFIRMACIONB=1
LCDOut $FE, 1, " ENTRANDO AL MENU "
LCDOut $FE, $C0, " DE CONFIGURACION "
LCDOut $FE, $94, " DEL SINGULADOR >B< "
LCDOut $FE, $D4, " CARGANDO...... "
Pause 1000
LET CONFIRMACIONB=0
GoTo PARAMETROSLCD
COMPARAAB:
IF SINGULADORA=0 AND SINGULADORB=0 Then IMPOSIBLE
IF SINGULADORA=1 AND SINGULADORB=0 Then PARAMETROSLCD
IMPOSIBLE:
LCDOut $FE, 1, " ---> ERROR <---- "
LCDOut $FE, $C0, " DEBES OPERAR "
LCDOut $FE, $94, " AL MENOS UN SOLO "
LCDOut $FE, $D4, " SINGULADOR "
Pause 5000
GoTo INICIO
PARAMETROSLCD:
TIMERALCD=TIMERA*100
TIMERBLCD=TIMERB*100
LCDOut $FE, 1, " INFO: SINGULADOR A "
LCDOut $FE, $C0, "C: ", DEC CONTADORA, "Pzas T: ", DEC TIMERALCD, "mS"
LCDOut $FE, $94, " INFO: SINGULADOR B "
LCDOut $FE, $D4, "C: ", DEC CONTADORB, "Pzas T: ", DEC TIMERBLCD, "mS"
fila4 = 1 ' Fila * = 1
IF COLUMNA2 = 1 Then
Call FABRICANTE ' tecla "0"
EndIF
GoTo PARAMETROSLCD
Disable
CHECARINTERRUP:
IF REINICIO=1 Then
GoTo REPROGRAMACION
EndIF
IF PAROEMERGENCIA=1 Then
GoTo EMERGENCIA
EndIF
;IF SENSORA=1 Then
;GoTo SENSADOA
;EndIF
;IF SENSORB=1 Then
;GoTo SENSADOB
;EndIF
INTCON = %10001000 ' Interrupciones PORT B4-B7
Resume
Enable
GoTo INICIO
REPROGRAMACION:
LET PORTA=%000000
LET PORTB=%00000000
LET PORTC=%00000000
LET PORTD=%00000000
LET PORTE=%000
LET FOCOEMERGENCIA=1
LCDOut $FE, 1, "PRESIONASTE LA TECLA"
LCDOut $FE, $C0, " DE REINICIO "
LCDOut $FE, $94, "PARA REAJUSTE DE LOS"
LCDOut $FE, $D4, "PARAMETROS GENERALES"
Pause 1000
LET FOCOEMERGENCIA=0
Pause 5000
GoTo INICIO
EMERGENCIA:
LET PORTA=%000000
LET PORTB=%00000000
LET PORTC=%00000000
LET PORTD=%00000000
LET PORTE=%000
LET FOCOEMERGENCIA=1
LCDOut $FE, 1, " PRESIONASTE "
LCDOut $FE, $C0, " EL BOTON DE "
LCDOut$FE, $94, " INTERRUPCION PARO "
LCDOut$FE, $D4, " --> EMERGENCIA <-- "
Pause 5000
LCDOut $FE, 1, " LIBERA EL BOTON "
LCDOut $FE, $C0, " --> PARO DE <-- "
LCDOut$FE, $94, " --> EMERGENCIA <-- "
LCDOut$FE, $D4, " JALANDOLO HACIA TI "
IF PAROEMERGENCIA=1 Then
GoTo EMERGENCIA
EndIF
GoTo INICIO
DATOCONTADORA:
IF CONTADORA = 1 Then PORTA = UNO
IF CONTADORA = 2 Then PORTA = DOS
IF CONTADORA = 3 Then PORTA = TRES
IF CONTADORA = 4 Then PORTA = CUATRO
IF CONTADORA = 5 Then PORTA = CINCO
IF CONTADORA = 6 Then PORTA = SEIS
IF CONTADORA = 7 Then PORTA = SIETE
IF CONTADORA = 8 Then PORTA = OCHO
IF CONTADORA = 9 Then PORTA = NUEVE
IF CONTADORA = 10 Then PORTA = DIEZ
IF CONTADORA = 11 Then PORTA = ONCE
IF CONTADORA = 12 Then PORTA = DOCE
IF CONTADORA = 13 Then PORTA = TRECE
IF CONTADORA = 14 Then PORTA = CATORCE
IF CONTADORA = 15 Then PORTA = QUINICE
Return
DATOTIMERA:
IF TIMERA = 1 Then PORTA = UNO
IF TIMERA = 2 Then PORTA = DOS
IF TIMERA = 3 Then PORTA = TRES
IF TIMERA = 4 Then PORTA = CUATRO
IF TIMERA = 5 Then PORTA = CINCO
IF TIMERA = 6 Then PORTA = SEIS
IF TIMERA = 7 Then PORTA = SIETE
IF TIMERA = 8 Then PORTA = OCHO
IF TIMERA = 9 Then PORTA = NUEVE
IF TIMERA = 10 Then PORTA = DIEZ
IF TIMERA = 11 Then PORTA = ONCE
IF TIMERA = 12 Then PORTA = DOCE
IF TIMERA = 13 Then PORTA = TRECE
IF TIMERA = 14 Then PORTA = CATORCE
IF TIMERA = 15 Then PORTA = QUINICE
Return
DATOCONTADORB:
IF CONTADORB = 1 Then PORTA = UNO
IF CONTADORB = 2 Then PORTA = DOS
IF CONTADORB = 3 Then PORTA = TRES
IF CONTADORB = 4 Then PORTA = CUATRO
IF CONTADORB = 5 Then PORTA = CINCO
IF CONTADORB = 6 Then PORTA = SEIS
IF CONTADORB = 7 Then PORTA = SIETE
IF CONTADORB = 8 Then PORTA = OCHO
IF CONTADORB = 9 Then PORTA = NUEVE
IF CONTADORB = 10 Then PORTA = DIEZ
IF CONTADORB = 11 Then PORTA = ONCE
IF CONTADORB = 12 Then PORTA = DOCE
IF CONTADORB = 13 Then PORTA = TRECE
IF CONTADORB = 14 Then PORTA = CATORCE
IF CONTADORB = 15 Then PORTA = QUINICE
Return
DATOTIMERB:
IF TIMERB = 1 Then PORTA = UNO
IF TIMERB = 2 Then PORTA = DOS
IF TIMERB = 3 Then PORTA = TRES
IF TIMERB = 4 Then PORTA = CUATRO
IF TIMERB = 5 Then PORTA = CINCO
IF TIMERB = 6 Then PORTA = SEIS
IF TIMERB = 7 Then PORTA = SIETE
IF TIMERB = 8 Then PORTA = OCHO
IF TIMERB = 9 Then PORTA = NUEVE
IF TIMERB = 10 Then PORTA = DIEZ
IF TIMERB = 11 Then PORTA = ONCE
IF TIMERB = 12 Then PORTA = DOCE
IF TIMERB = 13 Then PORTA = TRECE
IF TIMERB = 14 Then PORTA = CATORCE
IF TIMERB = 15 Then PORTA = QUINICE
Return
FABRICANTE:
LET PORTA=%000000
LET PORTB=%00000000
LET PORTC=%00000000
LET PORTD=%00000000
LET PORTE=%000
LCDOut $FE, 1, " EN MULTISEGURIDAD "
LCDOut $FE, $C0, " INDUSTRIAL DE "
LCDOut $FE, $94, " URUAPAN SE FABRICO "
LCDOut $FE, $D4, " ESTE PROYECTO "
Pause 5000
LCDOut $FE, 1, "CALLE AMERICAS #26-A"
LCDOut $FE, $C0, "COL. MORELOS CP60050"
LCDOut $FE, $94, "URUAPAN, MICH. MEX."
LCDOut $FE, $D4, "TEL:01 (452) 5247674"
Pause 5000
LCDOut $FE, 1, "FAX:01 (452) 5271714"
LCDOut $FE, $C0, "FABRICAMOS PROYECTOS"
LCDOut $FE, $94, " DE ACUERDO A TUS "
LCDOut $FE, $D4, " NECESIDADES !!! "
Pause 5000
LCDOut $FE, 1, " ELABORADO POR "
LCDOut $FE, $C0, " ING. MECATRONICO "
LCDOut $FE, $94, "--> ROJO AGUILAR <--"
LCDOut $FE, $D4, " GERENTE PRODUCCION "
Pause 5000
Return
End
;TECLADO:
;fila1 = 1 ' Fila 1 = 1
;fila2 = 0 ' Fila 2 = 0
;fila3 = 0 ' Fila 3 = 0
;fila4 = 0 ' Fila * = 0
;If COLUMNA1 = 1 Then VAR1 = 1 ' tecla "1"
;If COLUMNA2 = 1 Then VAR1 = 2 ' tecla "2"
;If COLUMNA3 = 1 Then VAR1 = 3 ' tecla "3"
;If COLUMNA4 = 1 Then VAR1 = 13 ' tecla "A"
;fila1 = 0 ' Fila 1 = 0
;fila2 = 1 ' Fila 2 = 1
;fila3 = 0 ' Fila 3 = 0
;fila4 = 0 ' Fila * = 0
;If COLUMNA1 = 1 Then VAR1 = 4 ' tecla "4"
;If COLUMNA2 = 1 Then VAR1 = 5 ' tecla "5"
;If COLUMNA3 = 1 Then VAR1 = 6 ' tecla "6"
;If COLUMNA4 = 1 Then VAR1 = 14 ' tecla "B"
;fila1 = 0 ' Fila 1 = 0
;fila2 = 0 ' Fila 2 = 0
;fila3 = 1 ' Fila 3 = 1
;fila4 = 0 ' Fila * = 0
;If COLUMNA1 = 1 Then VAR1 = 7 ' tecla "7"
;If COLUMNA2 = 1 Then VAR1 = 8 ' tecla "8"
;If COLUMNA3 = 1 Then VAR1 = 9 ' tecla "9"
;If COLUMNA4 = 1 Then VAR1 = 15 ' tecla "C"
;fila1 = 0 ' Fila 1 = 0
;fila2 = 0 ' Fila 2 = 0
;fila3 = 0 ' Fila 3 = 0
;fila4 = 1 ' Fila * = 1
;If COLUMNA1 = 1 Then VAR1 = 10 ' tecla "*"
;If COLUMNA2 = 1 Then VAR1 = 11 ' tecla "0"
;If COLUMNA3 = 1 Then VAR1 = 12 ' tecla "#"
;If COLUMNA4 = 1 Then VAR1 = 16 ' tecla "D"