Professional Documents
Culture Documents
#include <REG51.H>
#include <stdio.h>
#define LED P0
void serial_init(void);
unsigned int j;
//Setup the serial port for 9600 baud at 11.0592MHz.
//------------------------------------------------void serial_init(void)
{
SCON = 0x50;
/* SCON: mode 1, 8-bit UART, enable
rcvr
*/
TMOD |= 0x20;
/* TMOD: timer 1, mode 2, 8-bit reload
*/
TH1 = 0xFD;
/* TH1: reload value for 9600 baud @
11.0592MHz*/
TR1 = 1;
/* TR1: timer 1 run
*/
TI = 1;
/* TI: set TI to send first char of UART
*/
}
//------------------------------------//
Main program starts here
//------------------------------------void main(void)
{
serial_init();
//
serial initialization
LED = 0x00;
printf("AT+CMGF=1%c",13);
delay2(20);
//Text Mode
| hex value of 13 is 0x0D (CR )
printf("AT+CMGS=\"9600292363\"%c",13); delay2(20);
//Type your mobile number Eg : "9884467058"
led_left();
//scroll left
delay1(20);
printf("Hi :-) GSM Modem Test");
delay2(20); //Type
text as u want
printf("%c",0x1A);
delay2(20); //line feed command
while(1);
}
Program 2
#include<reg51.h>
#define port P1
#define dataport P2 // Data port for LCD
sbit rs = port^0;
sbit rw = port^1;
sbit en = port^2;
int count,i;
unsigned char check,str[15];
bit check_space ;
void init_serial() // Initialize serial port
{
TMOD=0x20; // Mode=2
TH1=0xfd; // 9600 baud
SCON=0x50; // Serial mode=1, 8-Bit data, 1 Stop bit, 1 Start bit, Receiving on
TR1=1; // Start timer
}
void delay(unsigned int msec ) // Function for delay
{
int i,j ;
for(i=0;i<msec;i++)
void receive_data() interrupt 4 // Function to recieve data serialy from RS232 into
microcontroller
{
str[++count]=SBUF; //Read SBUF
RI=0;
}
unsigned char byte_check() //Function to check carraige return and new line character
{
switch(str[0])
{
case 0x0a:
{ // Return 0x00 for new line
return 0x00;
break ;
}
case 0x0d:
{ // Return 0x01 for carriage return
return 0x1;
break ;
}
default:return 0x02 ; // Return 0x02 for characters except new line and carriage return
}
}
void main()
{
lcd(); // Initialize LCD
init_serial(); // Initialize serial port
count=(-1);
lcd_data_string("Ready");
delay(10);
lcd_cmd(0x01);
IE=0x94;
while(1)
{
if(count>=0)
{
check=byte_check(); //Check the character
if(check!=0x00)
{
if(check==0x01)
{
if(check_space==1) //Check previous character
{
lcd_data(0x20);
check_space=0;
}
}
else
{
lcd_data(str[0]);
check_space=1;
}
}
count--;
for(i=0;i<count;i++) // Shift the whole array to one left
{
str[i]=str[i];
}
}
}
}
Code 3
void initialize_GSM_modem(void){
delay2();
puts(Command_AT);
delay2();
puts(Command_CMGF);
delay2();
puts(Command_CMGS);
delay2();
puts(msg02);
delay2();
while(!TI); TI = 0;SBUF = 0x1A;
}
void initialize_serialcommunication(void){
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
TI = 1;
}