' riaszt SMS  Siemens M35,C35,C45 telefonra
'	Pic 16f84 IC-vel

'fordító program: pbp .exe
'programozó: IC-prog1.05
'szandrás 2002
' az Rb1...Rb4 1-1 SMS-t indító bemenetek
' az Rb5 törli a leadást jelző b1....b4,b6 és bv értékét 
' Az Ra0 bénító bemenet amíg 1 addig nincs küldés
' Az Ra2 led kimenet
' Az Ra7 soros adat kimenet 

        Include "modedefs.bas"          ' Include serial modes


s0 con 7 
B0      var     byte
B1      var     byte 
B2      var     byte
B3      var     byte 
b4      var     byte
Bv      var     word
b6 	    var 	word



trisa = %00000001	'0=OUTPUT
trisb = %11111111
b6=0	:	b1=0	:	b2=0	:	b3=0	:	b4=0	:	bv=0	

'A célszám a data sorban van megadva, az alábbiak szerint
'ország fordítva 63=36
'mobil szolgaltató fordítva03 =30
'hivószámok sorban kettesével fordítva 29= 9 2 , 18= 8 1,  x0= 0 x  , Fy= y 
'a célszám tehát: 36 30 9 281 0xy 
'A hivószám után 001 esetén az eküldött SMS azonnal megjelenik a telefonon, nem kell kikeresni menüből, 
'ha ez 000 akkor  az "üzenet érkezett " jelenik meg 

                                     
	data "0011000B916303568919F70010A7"

 
loop:
		IF Porta.0 =1  then		'bénito bemenet 1 tehat nem küld semmit, 
		high porta.2			' az a2 re kötött led világit folyamatosan
		goto loop
		endif
		toggle porta.2			'nincs bénitás az a2  led villog
		pause 50
	if b6 > 65535 then			'65535 ciklusonként mindent nulláz	
		goto otos
	endif
		b6=b6+1  
		b0=0 
		BUtton 1,1,10,5,B0,0,kettes
EGYES:
			b0=0
		if b1=0 and  bv => 150 then		'b1=0 nem küldte még el a 65535 cikluson belül es a bv
'							nek 150 et el kell érni az 1. bemeneten az 1-nek
'							akkor küldi az SMS-t (késleltetett küldés) 						

		serout s0,n9600,["AT+CMGS=24",13] 'az n9600 a 8Mhz kristállyal 19,2K az M35 ezt szereti

			pause 350
			gosub fej		' az SMS fejlec küldése
			serout s0,n9600,["0B6135FD0D72E7D3747B18",26]	' az SMS szöegtörzs es vége
			b1=1						'megjegyezni hogy cikluson belül ne küldje újra
			b6=0
			goto loop
		else
			bv=bv+1         ' késleltető hurok
			toggle porta.3
			pause 50
		if portb.1=1 then
			goto egyes

		endif
		endif


kettes:		
		b0=0
		Button 2,1,10,5,b0,0,harmas       'a masodik SMS
	if b2=0 then	
		serout s0,n9600,["AT+CMGS=24",13]
		pause 3500
		gosub fej
		serout s0,n9600,["0BEBF7789E06B5DFFAF719",26]	'az sms szovege PDU -ban
		b2=1	
	endif
		goto loop
		

harmas:	
		b0=0
		Button 3,1,10,5,B0,0,negyes 		'Harmadik SMS
	if b3=0 then	

		serout s0,n9600,["AT+CMGS=27",13]
		pause 350
		gosub fej
		serout s0,n9600,["0EED37FD2D0789CB6937B9CEA603",26]	'az sms szovege PDU -ban
		b3=1	
	endif
		goto loop
		

negyes:
		b0=0
		Button 4,1,10,5,B0,0,OTOS		'negyedik SMS
		BV=48+B4
	if b4=0 then	
		serout s0,n9600,["AT+CMGS=28",13]
		pause 350
		gosub fej
		serout s0,n9600,["10E3F9BB1D3ED3CB72903B9FA6DBC3",26]	'az sms szovege PDU -ban
		b4=1	
	endif
		goto loop
	
	
otos:	
		b0=0
		button 5,1,10,5,B0,0,loop 
'		serout s0,n9600,["otos",13]
		b1=0	: b2=0	: b3=0	: b4=0	: bv=0 : b6=0	
		goto loop
	
fej:
		for b6 = 0 to 27
		read b6,b0
		serout s0,n9600,[b0]
		next 
	return


