Microcontroller › AVR › By using GSM SIM 300M and Atmega8 , How to write coding for sending SMS to 3 Persons when any one the port pin gets high …? › Have a look at dis modified
Have a look at dis modified code , But still i have’nt received any SMS yet …
Circuit Description :
1)AVR Atmega8
2)12Mhz Crystal Oscillator , Considering Bard rate =9600 , and UBRRL = 0x0077;
3)Input to the PB0 pin , for an instance is directly given from the Vcc=5V as pulse for certain duration
4)SIM 300M Module is used .
5)”Requirement is just to send the SMS to 1 persons , when PB0 pin gets high …..
Plz suggest me any further modification ,eager waiting for ur reply ……..
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define F_CPU 12000000UL
#define USART_BAUDRATE 9600 // Baud Rate value
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) – 1)
#define PIN PB0
void usart_putstr(char * s);
void usart_init();
static void usart_putch(unsigned char send);
unsigned int usart_getch();
void init_Ports(void);
int main ()
{
DDRD|=0xFC;//Setting the Tx and Rx Pins Low
DDRB =0x00;//Setting the PortB as input port
while (1)
{
init_Ports();
while (PIN==0); //program will loop in this line itself only until the pin become logic high
usart_init(); // initialization of USART
char b[] = “AT+CMGS=”;
char no[]=”+918000000000″;
char body[] =”Got the Output”;
{
usart_putstr(b);
_delay_ms(100);
usart_putch(‘”‘);
usart_putstr(no);
_delay_ms(100);
usart_putch(‘”‘);
_delay_ms(100);
usart_putch(‘r’);
usart_putch(‘n’);
_delay_ms(100);
usart_putstr(body);
_delay_ms(100);
usart_putch(0x1A);
}
return 0;
}
}
void usart_init()
{
UBRRL = 0x0077;
_delay_ms(1);
UCSRB |= (1 << RXEN) | (1 << TXEN); // Turn on the transmission and reception circuitry
UCSRC |= (1 << URSEL) | (1<<USBS) | (1 << UCSZ0) | (1 << UCSZ1); // Use 8-bit character sizes
}
unsigned int usart_getch()
{
while (!(UCSRA & (1 << RXC)) ); // Do nothing until data has been received and is ready to be read from UDR
_delay_ms(1);
return(UDR); // return the byte
}
static void usart_putch(unsigned char send)
{
while ((UCSRA & (1 << UDRE)) == 0); // Do nothing until UDR is ready..
// for more data to be written to it
UDR = send; // Send the byte
}
void usart_putstr(char * s)
{
while(*s)
{
usart_putch(*s++);
}
}
void init_Ports(void)
{
cli(); //disable all interrupts
DDRB = 0x00; //port B as input
sei(); //reanable all interrupts
}