;=================================================================================================================== ;DEFINIÇÕES DO USUARIO (DESCOMENTE A OPÇÃO DESEJADA E COMENTE AS OUTRAS) ;#DEFINE PIC_629 ;ESCOLHE MICROCONTROLADOR PIC12F629 #DEFINE PIC_675 ;ESCOLHE MICROCONTROLADOR PIC12F675 ;ABAIXO, SE DESCOMENTADO, PERMITE QUE HAJA NOVO ACIONAMENTO DEPOIS DE 2MIN E 48 SEG ;#DEFINE TEMPORIZA_NOVO_ACIONAMENTO ;TEMPORIZA POR 3 MINUTOS E VOLTA ACIONAR TX ;=================================================================================================================== IFDEF PIC_675 LIST P=12f675 , R=DEC INCLUDE "P12F675.INC" ENDIF IFDEF PIC_629 LIST P=12f629 , R=DEC INCLUDE "P12F629.INC" ENDIF ;-------------------------- ERRORLEVEL -302 __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _BODEN_ON & _MCLRE_OFF #DEFINE BANK0 BCF STATUS,RP0 ;SETA BANK0 DE MEMORIA #DEFINE BANK1 BSF STATUS,RP0 ;SETA BANK1 #DEFINE FLAG_T FLAGS,0 ;FLAG TRAVA #DEFINE FLAG_T1 FLAGS,1 ;FLAG TRAVA1 #DEFINE SW_AP GPIO,0 ;PINO 7 IN BOTÃO PARA CONCLUIR ATENDIMENTO #DEFINE OUT_AP GPIO,5 ;PINO 2 SAIDA PARA TX CONCLUIR ATENDIMENTO #DEFINE LED GPIO,2 ;PINO 5- SAIDA DO LED PARA INDICAR PEDIDO DE ATENDIMENTO #DEFINE SW_CH GPIO,1 ;PINO 6- IN BOTÃO PARA CHAMAR GARÇOM #DEFINE OUT_CH GPIO,4 ;PINO 3- SAIDA PARA TX PEDIR PRESENÇA DE GARÇOM CBLOCK 0X20 FLAGS,T2,T1,T0,Z3,Z2,Z1,Z0 ENDC ORG 0X00 GOTO START ORG 0X04 RETFIE START: MOVLW 0X07 MOVWF CMCON ;DESLIGA COMPARADORES CLRF GPIO ; RESET PORT BANK1 MOVLW B'11001011' ; SETUP PORTA MOVWF TRISIO CLRF OPTION_REG ;LIGA GERAL DE PULL UPS MOVLW 0X03 MOVWF WPU ;LIGA PULL UPS IFDEF PIC_675 MOVLW .0 MOVWF ANSEL ;LIBERA PORTAS DO AD (SOMENTE 12f675) BANK0 ENDIF CLRF FLAGS ;APAGA REGISTRADOR DE FLAGS INICIO: BTFSS SW_AP GOTO APAGAR BTFSC SW_CH GOTO TESTA_TIME BTFSC FLAG_T1 GOTO INICIO IFDEF TEMPORIZA_NOVO_ACIONAMENTO MOVLW .1 ;POR VOLTA DE 2 MINUTOS E 48 SEGUNDOS DE ESPERA MOVWF Z3 CLRF Z2 CLRF Z1 CLRF Z0 ENDIF BSF FLAG_T1 BSF OUT_AP BCF LED ;DESLIGA LED BCF FLAG_T CALL DELAY_FOR_TX BCF OUT_AP ;DESLIGA TRANSMISSÃO GOTO INICIO APAGAR BCF FLAG_T1 BTFSC FLAG_T GOTO INICIO BSF FLAG_T BSF OUT_CH BSF LED CALL DELAY_FOR_TX BCF OUT_CH GOTO INICIO DELAY_FOR_TX ;JANELA DE TEMPO EM QUE OCORRERÁ A TRANSMISSÃO NO TX MOVLW .250 ;250 MILISEGUNDOS MOVWF T1 CLRF T0 NOP DECFSZ T0,F GOTO $-2 DECFSZ T1,F GOTO $-4 RETURN TESTA_TIME IFDEF TEMPORIZA_NOVO_ACIONAMENTO ;PERMITE QUE O BOTÃO SE APERTADO APÓS ESTE TEMPO, ACIONE O TX DECFSZ Z0,F GOTO X1 DECFSZ Z1,F GOTO X1 DECFSZ Z2,F GOTO X1 DECFSZ Z3,F GOTO X1 BCF FLAG_T BCF FLAG_T1 ENDIF X1 GOTO INICIO END