فرمت کلی پاسخ ماژول Sim800 به دستورات ارسالی به صورت زیر است:<CR><LF><response><CR><LF>
که <CR> معادل Enter یا "\r" و <LF> معادل Line Feed یا "\n" می باشد.
برای هر AT Command هم تصویری از ارسال و دریافت دیتا در هایپر ترمینال قرار داده می شود و هم نمونه کدی جهت دریافت دیتا با استفاده از میکروکنترلر ذکر می شود.
نمونه کدها با استفاده از کامپایلر کدویژن و بر مبنای تراشه ATmega32 نوشته شده است. مهمان عزیز شما حق دیدن لینک ها را ندارید
عضویت
بخش های مشترک برنامه: کد:
#include <mega32a.h>
#include <delay.h>
#include <alcd.h>
#include <stdio.h>
//******** Varisbles ********
char sms_txt[10];
char operator_name[10];
char number_txt[14];
char number[12]={"09387028108"};
volatile char buffer[100];
volatile int count = 0;
//*****END Varisbles*********
//******** Constants ********
flash unsigned char DEL_ALL[19]={'A','T','+','C','M','G','D','A','=','"','D','E','L',' ','A','L','L','"'};
#define ENT 13
#define J_COT 34
#define LINE_FEED 10
//*****END Constants*********
//******** Functions ********
void UsartConfig(void);
//******END Functions********
void main(void)
{
UsartConfig();
lcd_init(16);
lcd_putsf("sim800 test");
delay_ms(1000);
lcd_clear();
while (1)
{
}
}
void UsartConfig(void)
{
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x06;
UBRRH=0x00;
UBRRL=0x47;
}//UsartConfig دستور AT
این دستورات از دستورات پایه می باشد و صرفا جهت ارتباط اولیه و ست کردن باودریت کاربرد دارد. همچنین می توان جهت تشخیص خاموش و روشن بودن ماژول هم مورد استفاده قرار گیرد.
نحوه ارسال کد به ماژول : AT\r
تصویر پاسخ ماژول به دستور: مهمان عزیز شما حق دیدن لینک ها را ندارید
عضویت
کد مورد استفاده در میکروکنترلر: کد:
void AT_send(void)
{
lcd_putsf("SEND AT");
printf("AT%c",ENT);
for(count=0;buffer[count-2]!='O';count ++) buffer[count]=getchar();
lcd_putsf("--> OK");
delay_ms(1000);
lcd_clear();
}//AT_send
2- دستور ATE
وقتی کاراکتری رو در نرم افزار هایپر ترمینال برای ماژول می فرستید و همون رو مشاهده کنید این در اصل به دلیل روشن بودن حالت اکو ماژول است. حالت اکو یعنی اینکه به ازای ارسال هر کاراکتر ماژول عین اون رو به شما برمی گردونه.
نحوه ارسال کد به ماژول:ATE0\r // Echo Off
ATE1\r // Echo On
تصویر پاسخ ماژول به دستور: مهمان عزیز شما حق دیدن لینک ها را ندارید
عضویت
کد مورد استفاده در میکروکنترلر: کد:
void ATE0_send(void)
{
lcd_putsf("SEND ATE0");
printf("ATE0%c",ENT);
for(count=0;buffer[count-2]!='O';count ++) buffer[count]=getchar();
lcd_putsf("--> OK");
delay_ms(1000);
lcd_clear();
}//ATE0_send
3- دستور ATH
از این دستور برای قطع تماس دریافتی استفاده می شود.
نحوه ارسال کد به ماژول: ATH\r
تصویر پاسخ ماژول به دستور: مهمان عزیز شما حق دیدن لینک ها را ندارید
عضویت
کد مورد استفاده در میکروکنترلر: کد:
void ATH_send(void)
{
lcd_putsf("SEND ATH");
printf("ATH%c",ENT);
for(count=0;buffer[count-2]!='O';count ++) buffer[count]=getchar();
lcd_putsf("--> OK");
delay_ms(1000);
lcd_clear();
}//ATH_send