Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
10/11/11 04:41
Read: 999 times


 
Msg Score: -2
 -1 Didn't Search First
 -1 Message Not Useful
#184180 - GSM Subroutine
Hi guys,

As regards to the below code, is there anyway to modify the code to let it receive SMS from the GSM modem & then the P89V664 controller will process it to control a Relay? Tks.

;SRT starts:

;SRT for sending commands using a GSM modem. Baud rate is 9600.

trans:	
	clr ti
	mov sbuf,a
here1:  jnb ti,here1
	ret
gsmsend:	
back:	clr a
	movc a,@a+dptr
	jz label
	acall trans
	inc dptr
	sjmp back
label:	ret


;just store the AT command to be sent in ROM like:
;	org 300h
;	db "AT+COPS?",0dh,0
;and use the address[300h] as address for DPTR

;SRT for printing data onto LCD Data lines to P2 and command lines to 3.7,3.6,3.5

print:	
back:	clr a
	movc a,@a+dptr
	jz labelp
	acall datawrt
	acall delay
	inc dptr
	sjmp back 
labelp:	ret	

datawrt:
	mov p2,a
	setb p3.7
	clr p3.6
	setb p3.5
	acall delay 
	clr p3.5
	ret

comndwrt:	
	mov p2,a
	clr p3.7
	clr p3.6
	setb p3.5
	acall delay
	clr p3.5
	ret	

lcdinit:	
	clr a
	mov a,#38h
	acall comndwrt
	acall delay

	mov a,#0fh
	acall comndwrt
	acall delay
	
	mov a,#01h
	acall comndwrt
	acall delay
	
	mov a,#06h
	acall comndwrt
	acall delay
	
	mov a,#80h
	acall comndwrt
	acall delay
	ret

delay:	
	mov r2,#50
here0:	mov r3,#255
here01:	djnz r3,here01
	djnz r2,here0
	ret	 

;Serial  RX at 9600 baud
recv:
herer:	jnb ri,herer
	mov a,sbuf
	clr ri
	ret

;Using timer to loop for 3 min.. Use R5 to change time. Writing a 1 to R5 = 1min, writing a 2 to R5 = 2min and so on..
timer_delay:
	mov R5,#3h
loop3:	mov R0,#60
loop2:	mov R1,#20
	mov TMOD,#01h
loop1:	mov TH0,#4Bh
	mov TL0,#0FEh
	setb TR0
label1:	jnb TF0,label1
	clr TF0
	clr TR0
	djnz R1,loop1
	djnz R0,loop2
	djnz R5,loop3
	ret

;Code to display the Cell ID to which you are connected to

org 00h

begin1:	acall lcdinit

	mov dptr,#500h
	acall print
	
	
	
	
	mov dptr,#550h	
	acall sinit
	acall gsmsend


	mov dptr,#600h	
	acall sinit
	acall gsmsend




	mov dptr,#650h	
	acall sinit
	acall gsmsend

	acall recv
 
	acall res
	acall snd_msg
wait_loop: sjmp wait_loop
trans:	clr ti
	mov sbuf,a
here1:  jnb ti,here1
	ret

;recv srt	
recv:
	mov R5,#26h
	mov R0,#33h
zero1:
herer:	jnb ri,herer
	mov a,sbuf
	mov @R0,a
	inc R0
	clr ri
       	djnz R5,zero1
	ret

;lcd srt	
res:	acall lcdinit

	mov A,50h
	acall datawrt
	acall delay

	mov A,51h
	acall datawrt
	acall delay
	
	mov A,52h
	acall datawrt
	acall delay
	
	mov A,53h
	acall datawrt
	acall delay
	
	mov A,54h
	acall datawrt
	acall delay

	mov A,55h
	acall datawrt
	acall delay
	
       	
	ret

gsmsend:	
bak:	clr a
	movc a,@a+dptr
	jz label
	acall trans
	inc dptr
	sjmp bak 
label:	ret	
	

	
print:	
back:	clr a
	movc a,@a+dptr
	jz label1
	acall datawrt
	acall delay
	inc dptr
	sjmp back 
label1:	ret	



lcdinit:mov a,#38h
	acall comndwrt
	acall delay

	mov a,#0eh
	acall comndwrt
	acall delay
	
	mov a,#01h
	acall comndwrt
	acall delay
	
	mov a,#06h
	acall comndwrt
	acall delay
	
	mov a,#80h
	acall comndwrt
	acall delay
	ret

sinit:	mov SCON, #50h
	mov TMOD, #20h
	mov TH1, #-3
	setb TR1
	ret

comndwrt:	
	mov p2,a
	clr p3.7
	clr p3.6
	setb p3.5
	acall delay
	clr p3.5
	ret	

datawrt:
	mov p2,a
	setb p3.7
	clr p3.6
	setb p3.5
	acall delay 
	clr p3.5
	ret

delay:	mov r2,#50
here0:	mov r3,#255
here01:	djnz r3,here01
	djnz r2,here0
	ret

snd_msg:mov dptr,#700h	
	acall sinit
	acall gsmsend

	acall delay	

	mov dptr,#750h	
	acall sinit
	acall gsmsend
		
	acall delay
	
	mov dptr,#800h	
	acall sinit
	acall gsmsend

		
	acall sinit
	mov A,50h
	acall trans
	
	acall sinit
	mov A,51h
	acall trans
	
	acall sinit
	mov A,52h
	acall trans
	
	acall sinit
	mov A,53h
	acall trans
	
	acall sinit
	mov A,54h
	acall trans
	
	acall sinit
	mov A,55h
	acall trans
	
	mov dptr,#900h	
	acall sinit
	acall gsmsend
	ret
	

	org 500h
	db "init",0
	
	org 550h
	db "ATE0",0dh,0

	org 600h
	db "AT+CREG=2",0dh,0
	
	org 650h
	db "AT+CREG?",0dh,0

	org 700h
	db "AT+CSDH=1",0DH,0

	org 750h
	db "AT+CMGS=",22h,"9884872855",22h,0dh,0
	
	org 800h
	db "Display:",0

	org 850h
	db '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'

	org 900h
	db " .",1Ah,0

			
	END
 



List of 12 messages in thread
TopicAuthorDate
GSM Subroutine      Albert Ho      10/11/11 04:41      
   Generally Speaking      Michael Karas      10/11/11 05:11      
   here we go again      Erik Malund      10/11/11 07:46      
   is there anyway to modify the code to let it receive SMS ?      Andy Neil      10/11/11 23:20      
   Uncommented code      Andy Neil      10/11/11 23:27      
      Links to posts or links to threads      Per Westermark      10/12/11 06:24      
         RE: Links to posts or links to threads      Andy Neil      10/12/11 11:36      
            Back to thread      Per Westermark      10/12/11 13:01      
               No 'Back to Thread' here      Andy Neil      10/12/11 13:28      
                  Browsing mode      Per Westermark      10/12/11 16:35      
                     I guess so.      Andy Neil      10/12/11 17:10      
                  Browsing mode      Per Westermark      10/12/11 16:35      

Back to Subject List