DEFINE SER2_CLROERR 'Limpa bit OERR automaticamente (Overrun) DEFINE OSC 20 baud con 32 comando VAR BYTE[40] ' comando a ser recebido pinin VAR PORTC.7 ' Define pinin as PORTC.4 pinout VAR PORTC.6 ' Define pinout as PORTC.5 pindebu VAR PORTC.3 dado VAR BYTE[8] temp VAR BYTE freq VAR WORD try VAR BYTE SAMPLES VAR WORD SAMPLE VAR BYTE DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 2 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 3 DEFINE LCD_BITS 4 DEFINE LCD_LINES 2 DEFINE LCD_COMMANDUS 2000 DEFINE LCD_DATAUS 50 DEFINE ADC_BITS 8 DEFINE ADC_CLOCK 1 DEFINE ADC_SAMPLEUS 50 'programa principal INICIO: TRY=0 TRISB=0 TRISA= %11111111 ADCON1=%00000011 'PORT A ANALOG AND RIGHT JUSTIFY RA1=AD,VDD=V+,VSS=V- PAUSE 500 Lcdout $fe, 1 ' Clear LCD screen Lcdout "DSCar 2." ' Display Hello Lcdout $fe,$C0,"0" PAUSE 2000 RELENDO: 'GOSUB LE_TEMP 'serout2 pinout,BAUD,["A TEMPERATURA ATUAL: ",DEC TEMP,13] 'Lcdout $fe, 1,"t ",DEC TEMP ' Clear LCD screen 'PAUSE 1000 'GOSUB LE_VELOCIDADE 'serout2 pinout,BAUD,["A VELOCIDADE ATUAL: ",DEC FREQ,13] 'Lcdout $fe, 1,"v ",DEC FREQ ' Clear LCD screen 'PAUSE 1000 'GOTO RELENDO PARADA: ' COUNT PORTA.4,1000,FREQ ' IF FREQ>22 THEN ' GOTO NCHIP ' ENDIF ' GOTO PARADA NCHIP: serout2 pinout,BAUD,["IR",13,10] 'FLUSH PAUSE 500 serout2 pinout,BAUD,["IR",13,10] serin2 pinin,BAUD,1000,NO_UNET,[STR COMANDO\4] 'Lcdout $fe, 1 ' Clear LCD screen 'Lcdout COMANDO[0],COMANDO[1],COMANDO[2],COMANDO[3] 'pause 2000 IF (COMANDO[0] = "O" OR COMANDO[1] = "O" OR COMANDO[2] = "O") THEN IF (COMANDO[0] = "K" OR COMANDO[1] = "K" OR COMANDO[2] = "K") THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "unet" ' Display Hello Lcdout $fe, $C0, " ok" Pause 4000 ' Wait .5 second 'serout2 pinout,BAUD,["IRS8=191",13,10] 'pause 500 'serout2 pinout,BAUD,["AT&K0",13,10] 'pause 500 serout2 pinout,BAUD,["AT",13,10] serin2 pinin,BAUD,[STR COMANDO\4] IF COMANDO[0] = "A" AND COMANDO[1] = "T" THEN 'MODEM DEU ECO Lcdout $fe, 1 ' Clear LCD screen Lcdout "GPRS ENC" ' Display Hello Lcdout $fe,$C0,"ONTRADO" PAUSE 4000 GOSUB CONFIGURA_GPRS 'GOSUB ATCSQ 'ELSE 'GOTO NCHIP ENDIF ELSE ENDIF ENDIF CONEXAO: serout2 pinout,BAUD,["ATD*99***1#",13,10] 'serout2 pinout,BAUD,["ATDT 30412121",13,10] Lcdout $fe, 1 ' Clear LCD screen Lcdout "DISCANDO" ' Display Hello pause 500 serin2 pinin,BAUD,25000,CONEXAO,[STR comando\8] IF comando[2] = "C" AND comando[3] = "O" AND comando[4] = "N" AND comando[5] = "N" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "CONECTAD" ' Display Hello Lcdout $fe, $C0, "O GPRS" ' Clear LCD screen PAUSE 2000 GOTO LOGIN ELSE IF comando[2] = "N" AND comando[3] = "O" AND comando[4]= " " THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "NO CARRI" ' Display Hello Lcdout $fe, $C0, "/DIALT" ' Clear LCD screen PAUSE 2000 GOTO CONEXAO ELSE ENDIF PAUSE 100 GOTO CONEXAO ENDIF LOGIN: 'serout2 pinout,BAUD,["IRC cheque2@wfautomacao.com.br,wfauto22",13,10] serout2 pinout,BAUD,["IRC brt,brt",13,10] Lcdout $fe, 1 ' Clear LCD screen Lcdout "AUTENTIC" ' Display Hello Lcdout $fe, $C0, "ANDO" 'pause 2000 serin2 pinin,BAUD,15000,CONEXAO,[STR comando\4] 'Lcdout $fe, 1 ' Clear LCD screen 'Lcdout COMANDO[0],COMANDO[1],COMANDO[2],COMANDO[3] 'pause 2000 IF comando[0] = "C" AND comando[1] = "O" AND comando[2] = "N" AND comando[3] = "N" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "AUTENTIC" ' Display Hello Lcdout $fe, $C0, "ACAO OK" PAUSE 2000 GOTO ENDERECO_IP ELSE PAUSE 2000 GOTO CONEXAO ENDIF ENDERECO_IP: serout2 pinout,BAUD,["IRT0200.135.24.64:5999",13,10] Lcdout $fe, 1 ' Clear LCD screen Lcdout "ACESSO S" ' Display Hello Lcdout $fe, $C0, "ERVIDOR" PAUSE 300 serin2 pinin,BAUD,15000,CONEXAO,[STR comando\4] 'Lcdout $fe, 1 ' Clear LCD screen 'Lcdout COMANDO[0],COMANDO[1],COMANDO[2],COMANDO[3] 'pause 2000 IF comando[0] = "O" AND comando[1] = "K" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "SERVIDOR" ' Display Hello Lcdout $fe, $C0, " OK" PAUSE 1000 GOTO SERVIDOR ELSE IF comando[0] = "F" AND comando[1] = "A" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "SERVIDOR" ' Display Hello Lcdout $fe, $C0, " OFF" TRY=TRY+1 IF TRY=4 THEN TRY=0 GOTO IRD ENDIF PAUSE 2000 GOTO ENDERECO_IP ENDIF ENDIF SERVIDOR: TRY=0 ' PORTB=COMANDO[0] '10 ' PAUSE 10000 ' PORTB=COMANDO[1] 'O ' PAUSE 10000 ' PORTB=COMANDO[2] 'K ' PAUSE 10000 ' PORTB=COMANDO[3] '13 ' PAUSE 10000 AGUARDA: SERIN2 PININ,BAUD,1500,AGUARDA,[STR COMANDO\5] 'MAIS 'IF COMANDO[0]="S" AND COMANDO[1]="N" AND COMANDO[2]="a" AND COMANDO[3]="m" AND COMANDO[4]="e" THEN ' Lcdout $fe, 1 ' Clear LCD screen ' Lcdout "MONITOR" ' Display Hello ' serout2 pinout,BAUD,["CARRO ESTA CONECTADO NA REDE",13,10] ' pause 300 ' serout2 pinout,BAUD,["AS ORDENS!!!! DIGITE UM COMANDO!!!",13,10] ' GOTO AGUARDA 'ENDIF IF COMANDO[2]="S" AND COMANDO[3]="O" AND COMANDO[4]="C" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "SERVER" ' Display Hello Lcdout $fe, $C0, "DOWN" GOTO IRD ENDIF IF COMANDO[0]="T" AND COMANDO[1]="E" AND COMANDO[2]="M" THEN GOSUB LE_TEMP Lcdout $fe, 1 ' Clear LCD screen Lcdout "TEMPERAT" ' Display Hello Lcdout $fe, $C0, "URA " serout2 pinout,BAUD,["A TEMPERATURA ATUAL: ",DEC TEMP,13] GOTO AGUARDA ENDIF IF COMANDO[0]="V" AND COMANDO[1]="E" AND COMANDO[2]="L" THEN GOSUB LE_VELOCIDADE Lcdout $fe, 1 ' Clear LCD screen Lcdout "VELOCIDA" ' Display Hello Lcdout $fe, $C0, "DE " IF FREQ<10 THEN serout2 pinout,BAUD,["A VELOCIDADE ATUAL: 0",DEC FREQ,13] ELSE serout2 pinout,BAUD,["A VELOCIDADE ATUAL: ",DEC FREQ,13] ENDIF GOTO AGUARDA ENDIF IF COMANDO[0]="A" AND COMANDO[1]="L" AND COMANDO[2]="E" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "!ALERTA!" ' Display Hello TRISB.1=0 PORTB.1=1 PAUSE 500 PORTB.1=0 PAUSE 500 PORTB.1=1 PAUSE 500 PORTB.1=0 PAUSE 500 serout2 pinout,BAUD,["****ALERTA ENVIADO****",13,10] GOTO AGUARDA ENDIF IF COMANDO[0]="F" AND COMANDO[1]="I" AND COMANDO[2]="N" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "DESCONEC" ' Display Hello Lcdout $fe, $C0, "TANDO" GOTO FINAL ENDIF IF COMANDO[0]="S" AND COMANDO[1]="O" AND COMANDO[2]="C" AND COMANDO[3]="K" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "DESCONEC" ' Display Hello Lcdout $fe, $C0, "TANDO" GOTO FINAL ENDIF IF COMANDO[0]="B" AND COMANDO[1]="L" AND COMANDO[2]="O" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "BLOQUEAR" ' Display Hello TRISB.0=0 PORTB.0=1 serout2 pinout,BAUD,["****BLOQUEIO ENVIADO****",13,10] GOTO AGUARDA ENDIF IF COMANDO[0]="D" AND COMANDO[1]="E" AND COMANDO[2]="S" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "DESBLOQ" ' Display Hello TRISB.0=0 PORTB.0=0 serout2 pinout,BAUD,["****DESBLOQUEIO ENVIADO****",13,10] GOTO AGUARDA ENDIF SAINDO: GOTO AGUARDA FINAL: pause 1000 serout2 pinout,BAUD,[43] pause 200 serout2 pinout,BAUD,[43] pause 200 serout2 pinout,BAUD,[43] SERIN2 PININ,BAUD,8000,CRITICO,[STR COMANDO\6] IF COMANDO[2]="O" AND COMANDO[3]="K" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "ESCAPE" ' Display Hello PAUSE 1000 ENDIF serout2 pinout,BAUD,["IRX0",13,10] SERIN2 PININ,BAUD,5000,CRITICO,[STR COMANDO\6] IF COMANDO[0]="O" AND COMANDO[1]="K" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "IRX0" ' Display Hello PAUSE 1000 ENDIF IRD: serout2 pinout,BAUD,["IRD",13,10] SERIN2 PININ,BAUD,5000,CRITICO,[STR COMANDO\6] IF COMANDO[0]="O" AND COMANDO[1]="K" THEN Lcdout $fe, 1 ' Clear LCD screen Lcdout "IRD" ' Display Hello PAUSE 5000 ENDIF GOTO PARADA CRITICO: GOTO CRITICO ATCSQ: ' serout2 pinout,BAUD,["AT+CSQ",13,10] ' serin2 pinin,BAUD,[STR COMANDO\10] ' Lcdout $fe, 1 ' Clear LCD screen ' Lcdout COMANDO[0],COMANDO[1],COMANDO[2],COMANDO[3],COMANDO[4],COMANDO[5] ' Lcdout COMANDO[6],COMANDO[7],COMANDO[8],COMANDO[9],COMANDO[10],COMANDO[11] ' PAUSE 2000 RETURN LE_TEMP: SAMPLES=0 FOR SAMPLE=1 TO 10 ADCIN 1, TEMP PAUSE 250 SAMPLES = SAMPLES + TEMP NEXT SAMPLE TEMP = SAMPLES / 10 RETURN LE_VELOCIDADE: COUNT PORTA.4,1000,FREQ 'FREQ=FREQ*4 'serout2 pinout,BAUD,["TEMPERATURA: ",DEC TEMP," GRAUS ROTACAO ", DEC FREQ,13] 'FREQ = 45 RETURN NO_UNET: Lcdout $fe, 1 ' Clear LCD screen Lcdout "NO UNET" ' Display Hello PAUSE 2000 GOTO NCHIP CONFIGURA_GPRS: serout2 pinout,BAUD,["AT+CPIN=1010",13,10] pause 2000 serout2 pinout,BAUD,["A"] serout2 pinout,BAUD,["T"] serout2 pinout,BAUD,["+"] serout2 pinout,BAUD,["C"] serout2 pinout,BAUD,["G"] serout2 pinout,BAUD,["D"] serout2 pinout,BAUD,["C"] serout2 pinout,BAUD,["O"] serout2 pinout,BAUD,["N"] serout2 pinout,BAUD,["T"] serout2 pinout,BAUD,["="] serout2 pinout,BAUD,["1"] serout2 pinout,BAUD,[","] serout2 pinout,BAUD,[34] serout2 pinout,BAUD,["I"] serout2 pinout,BAUD,["P"] serout2 pinout,BAUD,[34] serout2 pinout,BAUD,[","] serout2 pinout,BAUD,[34] serout2 pinout,BAUD,["b"] serout2 pinout,BAUD,["r"] serout2 pinout,BAUD,["t"] serout2 pinout,BAUD,["."] serout2 pinout,BAUD,["b"] serout2 pinout,BAUD,["r"] serout2 pinout,BAUD,[34] serout2 pinout,BAUD,[13] serout2 pinout,BAUD,[10] pause 3000 RETURN end