Discussion in "Embedded GSM Development" started by    Alvanbert    Feb 10, 2012.
Fri Feb 24 2012, 12:57 PM
#21
hi guyz... Me too interested in dis project... I want to ask that is it possible to use proteus's Virtual hyperterminal for getting input from my real hardware GSM modem and simulate using it? Thnx
Mon Feb 27 2012, 03:43 AM
#22
Yes u can use proteus Virtual terminal
Mon Feb 27 2012, 07:48 AM
#23
continued in a seperate post : http://www.8051projects.net/forum-t52973-last.html
help me in dat..
Mon Feb 27 2012, 06:12 PM
#24
Hi guys. Am trying to display my messages on the lcd in moving format. Pliz guys help me out. How can this be done.
Tue Feb 28 2012, 09:07 AM
#25
First have u succeeded with SMS Reception and display the same on LCD.
Tue Feb 28 2012, 09:42 AM
#26
Yes kiran. Sorry i didnt tell u that. I can display the sms on lcd. Problem is if msg is a bit long. It gets cut off. So i thout displaying it in a moving format wud solve problem. If nt pliz give me some alternatives. Thanx
Tue Feb 28 2012, 05:04 PM
#27
I am sorry that i might be wrong, but this code worked for me :

for(int i=0; i<40; i++) 
{               
   LCDCmd(0x80);
  LCDWriteString("HELLO:");
  LCDCmd(0xC0);
  LCDWriteString("This is Feroz,Testing LCD scrolling CODE");	// Maximum 40 chars
  LCDCmd(0x1C);
  _delay_ms(200);
}//END For


[ Edited Tue Feb 28 2012, 05:05 PM ]
Wed Feb 29 2012, 11:51 AM
#28
@ firoz3321
u can take it as a reference

Wed Feb 29 2012, 05:42 PM
#29
Hi Guys, Below i have attached the code. it can read from address 1 t0 5 while displaying the message. But it can only display message in the first line of lcd. Can i mek it display same message in all lines i.e if its long.

Thanx Majoka AND Froz3321 for the code for ur help. The messages can scroll one at a time but not one after the other, i thout this was better. If u get the idea pliz help me edit this code accordingly. Thanks

#include <REGX52.H>


#define LCD P1
#define LCD_EN		0x80
#define LCD_RS		0x20
                     
//LCD Commands        

#define LCD_SETMODE		   0x04
#define LCD_SETVISIBLE	   0x08
#define LCD_SETFUNCTION	   0x28
#define LCD_SETDDADDR	   0x80

void delayms(unsigned char);
void delayus(unsigned char);
void lcd_init();
void lcd_reset();
void lcd_cmd (char);
void lcd_data(unsigned char);
void lcd_str (unsigned char *);
void clear(void);
void tx0(unsigned char);
void delay_sms (unsigned int);
void SMSString(char*text) ;
void init();
void read_text(unsigned char *);
unsigned int var,i,n;
unsigned char j,abc;
unsigned char idata msg1[150];
unsigned char rec_no[20];
unsigned char time_date[20];
void gsm_loop(unsigned int);

void serial () interrupt 4
{
msg1[abc]=SBUF;
abc++;
RI=0;
}

void main (void)
{

n=0x35;

gsm_loop(n);
delay_sms(2000);
}

void gsm_loop(unsigned int n)
{
  for(i=0x31;i<=n;i++)
  {
  clear();
  init();
  lcd_init();
  var=i;
  SMSString("AT\r"); // AT commands to initialize gsm modem
  delay_sms(1000);

  SMSString( "ATe0\r"); // turn off echo
  delay_sms(1000);

  SMSString( "AT&W\r"); // save settings
  delay_sms(1000);

  SMSString( "AT+CMGF=1\r"); // select text mode for sms
  delay_sms(1000);

  SMSString( "AT+CNMI=2,1,0,0,0\r"); // notification of new sms
  delay_sms(1000);

  SMSString( "AT+CMGR=");   // AT command to read sms
  tx0(var);
  SMSString("\r");

  IE=0X90;   // Enable serial interrupt
  delay_sms(2000);

  read_text(msg1);		// read sms and store in buffer msg1

  delay_sms(2000);			  
  IE=0X00;       // Disable all interrupt
            
  }
}


void init(void)
{
j=0;
abc=0;
TL1=0XFD; //9600 @ 11.0592
TH1=0xFD;
TMOD=0x20;
SCON=0x50;
TR1=1;
}

void SMSString(unsigned char* text) //function to send SMS using GSM modem
{
while (*text)
{
tx0(*text++);
}
}


void tx0(unsigned char x) //send data to serial port 0
{
EA=0;
SBUF=x;
while(TI==0);
TI=0;
EA=1;
}


void delay_sms (unsigned int count)
{
unsigned int i;                         // Keil v7.5a 
    while(count) {
        i = 115;
                while(i>
0) i--;
        count--;
}
}

void read_text( unsigned char *msg)
{
unsigned char *temp;
temp=msg;
do
msg++;
while(*msg!='#');
msg++;
do
*temp++=*msg++;
while(*msg!='#');       // reaching at end of message
*temp='\0';


lcd_cmd(0x80);
lcd_str(msg1);



         // array having message

}

void lcd_reset()
{
	LCD = 0xFF;
	delay_sms(40);
	LCD = 0x03+LCD_EN;
	LCD = 0x03;
	delay_sms(40);
	LCD = 0x03+LCD_EN;
	LCD = 0x03;
	delay_sms(5);
	LCD = 0x03+LCD_EN;
	LCD = 0x03;
	delay_sms(5);
	LCD = 0x02+LCD_EN;
	LCD = 0x02;
	delay_sms(5);
}


void lcd_init ()
{
	lcd_reset();
	lcd_cmd(LCD_SETFUNCTION);                    // 4-bit mode - 1 line - 5x7 font. 
	lcd_cmd(LCD_SETVISIBLE+0x04);                // Display no cursor - no blink.
	lcd_cmd(LCD_SETMODE+0x02);                   // Automatic Increment - No Display shift.
	lcd_cmd(LCD_SETDDADDR);                      // Address DDRAM with 0 offset 80h.
 }

 void lcd_cmd (char cmd)
{ 
	LCD = ((cmd >
>
 4) & 0x0F)|LCD_EN;
	LCD = ((cmd >
>
 4) & 0x0F);

	LCD = (cmd & 0x0F)|LCD_EN;
	LCD = (cmd & 0x0F);

    delay_sms(1);
}

void lcd_data (unsigned char dat)
{ 
	LCD = (((dat >
>
 4) & 0x0F)|LCD_EN|LCD_RS);
	LCD = (((dat >
>
 4) & 0x0F)|LCD_RS);
	
	LCD = ((dat & 0x0F)|LCD_EN|LCD_RS);
	LCD = ((dat & 0x0F)|LCD_RS);

    delay_sms(1);
}

void clear(void)
{
unsigned char a;
for(a=0;a<100;a++)
msg1[a]=0x00;
}

void lcd_str (unsigned char *str)
{
	while(*str){
		lcd_data(*str++);
	}
}

Thu Mar 01 2012, 01:11 PM
#30
Is above code is working fine at all time..
Try to send msgs continuously of 10msgs and see does it receives all of them.

Get Social

Information

Powered by e107 Forum System

Conversation

Wed Jul 01 2015, 05:14 PM
ShubhamBansal1996
i am making a project of connecting 4 8051's using a can bus for which i am using mcp2515 and mcp2551.but before making it i want to ensure it works by simulating it on proteus though the two ic's mentioned above dont seem to have models in proteus so is there anyone who can help me with that
ExperimenterUK
Tue Jun 30 2015, 05:24 PM
@sachinmm The 8051 timer can't do 1 second. It can do 50ms so count 20 times
sachinmm
Sat Jun 27 2015, 05:01 AM
how calculate 1 second delay in 8051 by using timer and what value should be store in TH0 & TLO register??
sachinmm
Fri Jun 26 2015, 08:25 AM
hello sir plz tell me how to know the 74HC165 parallel in serial out ic is fauty or not?
Wed Jun 24 2015, 08:24 AM
ben mutuku
How can one use XOR gate to ensure the first output is '1' and the next is '0'?
ExperimenterUK
Wed Jun 17 2015, 01:37 AM
@baz..try adding a hash and a semi colon
Sun Jun 14 2015, 06:31 AM
baz
@ExperimenterUK no..i dont do that i just type message example.. Hello my name is baz and then i click send message,
ExperimenterUK
Sun Jun 14 2015, 01:55 AM
@baz..did you end your message with a hash and a semi colon
Sat Jun 13 2015, 06:48 PM
asif Jamadar
I want the program for v/f control technique of 3 phase induction motor
Sat Jun 13 2015, 07:06 AM
baz
@ExperimenterUK okay thank you...but now I already complete and my dot matrix already light up but when i send message from pc to my hardware project it doesnt show any message on my dot matrix..its only blinking when i click send message....I really dont know whats the problem...I had follow all the steps...schematic and use the coding that have been provided..is it because firstly i had wrong burn the coding in AT24C16?? Is that effect ????

Downloads

Comments

Mc_Comet32
Thu Jun 25 2015, 11:42 AM
yashaswi
Thu Jun 25 2015, 05:56 AM
Riki-cc
Tue Jun 23 2015, 10:48 AM
PadRlp
Thu Jun 18 2015, 02:11 PM
start
Thu Jun 18 2015, 01:30 PM
sheilabajos
Tue Jun 09 2015, 03:35 PM
martintan
Tue Jun 09 2015, 12:08 AM
karra.vnr
Tue Jun 02 2015, 03:41 PM

Online

Guests: 42, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 37671
Newest member: Mc_Comet32
Forum Activity
prajwalsnh Avatar
Posted By prajwalsnh
Wed Jul 01 2015, 05:21 AM
@ExperimenterUKThanks a lot for correcting my misc...
prajwalsnh Avatar
Posted By prajwalsnh
Wed Jul 01 2015, 05:17 AM
@ExperimenterUK Thank you for your simple and usef...
ExperimenterUK Avatar
Posted By ExperimenterUK
Tue Jun 30 2015, 05:45 PM
The 8051 timer can't do 1 second. It can do 50ms, ...
ExperimenterUK Avatar
Posted By ExperimenterUK
Tue Jun 30 2015, 05:38 PM
Debugging is the process of finding out why your ...
ExperimenterUK Avatar
Posted By ExperimenterUK
Tue Jun 30 2015, 05:21 PM
You may have misunderstood some of the terms used....
Amit Kumar Das Avatar
Posted By Amit Kumar Das
Mon Jun 29 2015, 06:03 PM
Suppose the ILI9320 TFT LSB & MSB pins are con...
prajwalsnh Avatar
Posted By prajwalsnh
Mon Jun 29 2015, 03:39 PM
Hello everyone,I wanted to know the basics of debu...
prajwalsnh Avatar
Posted By prajwalsnh
Mon Jun 29 2015, 03:28 PM
Hello all,I wanted to know which is the default co...
vipinpathakg Avatar
Posted By vipinpathakg
Sun Jun 28 2015, 12:57 AM
Three letters E,Z and I displaying completely but...
pravin_35 Avatar
Posted By pravin_35
Sat Jun 27 2015, 06:19 AM
Thanks ajay and Exp uk...i thought of getting Micr...