PDA

View Full Version : GSM - nokia6210 & 16f877



Branko
- 5th November 2012, 15:43
Hello, I am new to programming and I need help. I wrote the code, but do not know if it's okay. I still have made ​​hardware ....
would that working how did I wrote??
this is the code ...



'************************************************* ***************
'* Name : SMS_CONTROLER_.BAS *
'* Author : Pintarić Branko *
'* Notice : *
'* : *
'* Date : xx.xx.2012 *
'* Version : 2.0 *
'* Notes : *
'* : *
'************************************************* ***************
@ DEVICE PIC16F877, HS_OSC, LVP_OFF, WDT_OFF, MCLR_OFF

define OSC 4
DEFINE HSER_SPBRG 25
DEFINE HSER_TXSTA 24h
DEFINE HSER_RCSTA 90h
DEFINE HSER_BAUD 9600
DEFINE HSER_CLROERR 1
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5
DEFINE LCD_LINES 2

SYMBOL LED_GSM = PORTC.1 ' Postavi PORTC.1 za GSM_LED
SYMBOL LED_POWER = PORTC.2 ' Postavi PORTC.2 za GSM_POWER
SYMBOL RE1 = PORTB.0 ' RELEJ 1
SYMBOL RE2 = PORTB.1 ' RELEJ 2
SYMBOL RE3 = PORTB.2 ' RELEJ 3
SYMBOL RE4 = PORTB.3 ' RELEJ 4
SYMBOL RE5 = PORTB.4 ' RELEJ 5
SYMBOL RE6 = PORTB.5 ' RELEJ 6
SYMBOL RE7 = PORTB.6 ' RELEJ 7
SYMBOL RE8 = PORTB.7 ' RELEJ 8

SYMBOL SE1 = PORTD.2 ' SENZOR 1
SYMBOL SE2 = PORTD.3 ' SENZOR 2
SYMBOL SE3 = PORTC.4 ' SENZOR 3
SYMBOL SE4 = PORTC.5 ' SENZOR 4
SYMBOL SE5 = PORTD.4 ' SENZOR 5
SYMBOL SE6 = PORTD.5 ' SENZOR 6
SYMBOL SE7 = PORTD.6 ' SENZOR 7
SYMBOL SE8 = PORTD.7 ' SENZOR 8

output LED_GSM
output LED_POWER
OUTPUT RE1 ' RELEJ 1
OUTPUT RE2 ' RELEJ 2
OUTPUT RE3 ' RELEJ 3
OUTPUT RE4 ' RELEJ 4
OUTPUT RE5 ' RELEJ 5
OUTPUT RE6 ' RELEJ 6
OUTPUT RE7 ' RELEJ 7
OUTPUT RE8 ' RELEJ 8

INPUT SE1 ' SENZOR 1
INPUT SE2 ' SENZOR 2
INPUT SE3 ' SENZOR 3
INPUT SE4 ' SENZOR 4
INPUT SE5 ' SENZOR 5
INPUT SE6 ' SENZOR 6
INPUT SE7 ' SENZOR 7
INPUT SE8 ' SENZOR 8

PORUKA VAR BYTE[5]
TELBR VAR BYTE[12]
TIME VAR BYTE [5]
klima var byte

J VAR BYTE
I VAR BYTE


LOW LED_gsm
low led_power
low re1
low re2
low RE3
low RE4
low RE5
low RE6
low RE7
low RE8



' PROVJERA NOVE PORUKE

pocetak:
HSerout ["ATZ",13,10] ' pocni komunikaciju
HSERIN 2000,pocetak,[WAIT("OK")]
LCDoUT $FE,1," Provjera"
LCDoUT $FE,$C0," SMS-a "
pause 1000

textmod:
HSerout ["AT+CMGF=1",13,10] 'postavi text mod
HSERIN 2000,textmod,[WAIT("OK")]
mem:
HSEROUT["AT+CPMS=",34,"SM",34,13,10] ' ciljana memory lokacija
HSERIN 2000,mem,[WAIT("OK")]

IP:

HSEROUT["AT+CMGL",13,10] ' filter za query
LCDOUT $FE,1,"trazi poruke.."

HSERIN 5000,IP,[WAIT("REC UNREAD"),skip 2,str TELBR\12,skip 13,str TIME\5,skip 9,STR PORUKA\5\13]
LCDOUT $FE,1

I=0

klima[1]="O"
klima[2]="N"
KLIMA[3]=" "
klima[4]="K"
KLIMA[5]="L"
KLIMA[6]="I"
KLIMA[7]="M"
KLIMA[8]="A"
if poruka[i+1]=klima[i+1] and poruka[i+2]=klima[i+2] and poruka[i+3]=klima[i+3] and poruka[I+4]=klima[I+4] AND poruka[I+5]=klima[I+5] AND poruka[I+6]=klima[I+6] AND poruka[I+7]=klima[I+7] AND poruka[I+8]=klima[I+8] then gosub salji_sms_klima


J=0

klima[1]="O"
klima[2]="F"
klima[3]="F"
klima[4]="K"
klima[5]="L"
klima[6]="I"
klima[7]="M"
klima[8]="A"
if poruka[i+1]=klima[i+1] and poruka[i+2]=klima[i+2] and poruka[i+3]=klima[i+3] and poruka[I+4]=klima[I+4] AND poruka[I+5]=klima[I+5] AND poruka[I+6]=klima[I+6] AND poruka[I+7]=klima[I+7] AND poruka[I+8]=klima[I+8] then gosub salji_sms_klima



' brisanje poruke iz memeorije

MEM2:
HSEROUT["AT+CPMS=",34,"SM",34,13,10] ' ciljana memory lokacija
HSERIN 2000,mem2,[WAIT("OK")]

del2:
HSEROUT["AT+CMGD=1",13,10]
HSERIN 2000,del2,[WAIT("OK")]
LCDOUT $FE,1,"PORUKA ODBRISANA"
pause 1500
GOTO IP



' subrutina za u-i potrosca i obavjest korisnika o poduzetoj akciji


salji_sms_klima:
high re1
HSerout ["AT",13,10]
Pause 1000

HSerout ["AT+CMGF=1",13,10] 'Postavi Text Mode
Pause 1000

HSerout ["AT+CMGS=",34,"+38761xxxxxx",34,",129",13,10]
Pause 1000
HSerout [str poruka,str time,10,13]
HSerout [26]
Pause 1000
RETURN

End