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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
04/01/08 09:13
Read: times


 
#152821 - interfacing 6210 and AT89S52
I am doing a project on SMS controller. I can send SMS via Hyperterminal using AT command, but have problems with sending it via AT89S52.

Below is my code, can anyone help me to find the problem?

Thanks


;
		ORG 0000H	       ; begins at ROM location 0000H
		LJMP MAIN	       

;------------------------Main Program---------------------------------------
;
		ORG 40H                
MAIN: 		CLR P1.2	       ;turn off LED
		CLR P1.4	       ;turn off Buzzer
		SETB P2.0
		SETB P2.3
		SETB P2.6
		JNB P2.0, START
		JNB P2.3, TESTSHORTDELAY 
		JNB P2.6, TESTLONGDELAY
		SJMP MAIN	            
;
START:
		SETB P1.2	       ;Turn on LED
		SETB P1.4	       ;Turn on Buzzer
		ACALL SENDMSG	       ;Send MSG
		ACALL LONGDELAY	       ;Delay for 5s	
		CLR P1.2	       ;Turn off LED	
       		CLR P1.4               ;Turn off Buzzer
		SJMP MAIN

;-----------------------Send MSG--------------------------------------------
;	
SENDMSG: 
    		CALL  SET_UART 
		CALL  PHONEINT
		MOV   DPTR, #PDU_LENGTH
     		CALL  GETCHAR 
     		CALL  RECEIVE_PROMPT
     		MOV   DPTR, #PDU_CONTENT
     		CALL  GETCHAR
		RET

PHONEINT:	MOV R5, 128
SENDU:		MOV SBUF, #55H
CHECK:		JNB TI,CHECK	
		CLR TI
		DJNZ R5, SENDU
		RET

SET_UART: 
 		CLR TR1
		CLR TI
		CLR RI
		MOV SCON, #01010010B 	
	        anl PCON, #07fh		;To make SMOD =0		
		MOV TMOD, #00100000B 	; timer 1, mode 2 (auto reload) 
		MOV TH1, #0FDH         	
   		SETB  TR1 		; Start timer 1
     		RET 
  
GETCHAR: 
    		CLR A 
     		MOVC A, @A+DPTR         
     		INC DPTR 
     		JNZ SENDCHAR   		
     		RET    

SENDCHAR: 
     		CLR TI
		MOV SBUF, A
		JNB TI, $              
     		RET

RECEIVE_PROMPT:
	
		CALL SHORTDELAY		;wait for a moment	
		RET

;-----------------------------------TESTS----------------------------------------------------------
;
TESTSHORTDELAY:
		SETB P1.2
		CALL SHORTDELAY
		CLR P1.2
		LJMP MAIN

TESTLONGDELAY:  SETB P1.2
		CALL LONGDELAY
		CLR P1.2
		LJMP MAIN

TESTTRAN: 	CALL PHONEINT		
		LJMP MAIN	
		
;-------------------------------------------Delay----------------------------------------------
;
LONGDELAY:		
		MOV R2, #50		;~1S
	S1:	MOV R3, #250
	S2:	MOV R4, #250
		DJNZ R4, $
		DJNZ R3, S2 
        	DJNZ R2, S1	
		RET		


SHORTDELAY:		

		MOV R2, #10		;~0.5S	
	S11:	MOV R3, #200
	S22:	MOV R4, #200
		DJNZ R4, $
		DJNZ R3, S22 
     		DJNZ R2, S11	
		RET

;------------------------On Chip Code Spce for Storing Data----------------------------------
;
	ORG 250H

PDU_LENGTH: 
     		DB "AT+CMGS=37",0DH,0AH, 00H        
PDU_CONTENT:			        	
     		DB "07915892945897F501000B915862806461F400001BF9775D0E1297D96FF739ED3ECF4161791914A683E4E9F91A", 1AH, 00H    
     	
END


List of 9 messages in thread
TopicAuthorDate
interfacing 6210 and AT89S52            01/01/70 00:00      
   what is the expected behaviour...            01/01/70 00:00      
      Re: what is the expected behaviour...            01/01/70 00:00      
         I am not sure.            01/01/70 00:00      
   Names? Delays?            01/01/70 00:00      
      Re: delay            01/01/70 00:00      
   Maybe try ...            01/01/70 00:00      
   connected to computer            01/01/70 00:00      
   problem solved            01/01/70 00:00      

Back to Subject List