Colección de citas famosas - Slogan de motivación - El módulo GSM recibe mensajes cortos.

El módulo GSM recibe mensajes cortos.

Este programa ha sido ajustado. Su función es definir un botón 1, que automáticamente enviará un mensaje de texto al presionarlo. El contenido del mensaje corto es Ni Hao. Hay una matriz en la función GSM_ATCMGS(). Agregue el número de teléfono móvil y 0d en la descripción del almacenamiento. Reemplace el buen asc con su teléfono y funcionará. Si no sabes cómo usarlo, solo llámame:

# include & ltreg52.h & gt

#Define uchar carácter sin firmar

# Definir uint Entero sin signo

void GSM_uart();

Entero sin signo uart_delay(unsigned int z);

void GSM_init();

anular GSM_CMGF();

anular GSM_ATC MGS();

anular TELNUM();

anular GSM_ TEXT();

void GSM_test();

void BUTTON();

Entero sin signo d;

Ninguno Código de carácter firmado al ingresar [] = { 0x 41, 0x54 , 0x0d };

Código de carácter sin firmar ATCMGFEnter [] = { 0x41, 0x54, 0x2b, 0x43, 0x4d, 0x47, 0x 46, 0x3d, 0x31, 0x0d};

Carácter sin firmar código en cmgs[]= {0x 41, 0x54, 0x2b, 0x43, 0x4d, 0x47, 0x53, 0x3d};

Código de carácter sin firmar TEL_NUM【】= {0x 30, 0x31, 0x32, 0x33, 0x34 , 0x35, 0x36, 0x37, 0x38, 0x 39};

Texto de código de carácter sin firmar【】={0x4b, 0x4f };

Código de carácter sin firmar Ingrese [] = { 0x0d } ;

Código de carácter sin firmar oneA [] = { 0x 31, 0x 41 };

Idata de carácter sin firmar buf[20];

int flag;

int buf num = 0;

uchar str 1[]= {"AT" };

uchar str 2【】= {"ATD"};

uchar str 3【】= {"ATH"};

uchar str 5 【】= {“AT+CMGS="};

sbit bell= p1^6;

sbit betton1_1=p3^3;

sbit betton1= p3^4

void gsm_uart()

{ EA = 1;

ES = 1;

SCON = 0x 50; // Modo UART 1: UART de 8 bits = 1: Permitir recepción.

PCON = 0x 00; //SMOD=0: La velocidad en baudios no se duplica.

TMOD = 0x 20; //t 1 Modo 2, utilizado para la velocidad en baudios de UART.

th 1 = 0x FD;

TL 1 = 0x FD; //configuración de velocidad en baudios UART: 9600

TI = 0;

RI = 0;

EA = 1;

tr 1 = 1;

}

Entero sin signo uart_delay (Entero sin signo) z)

{Entero sin signo a, b;

for (a = z; a>0;respuesta-)

{ for ( b = 1000; b >0 ; B-);}

Devuelve z;

}

Usa 3 para invalidar la interrupción ddd() 4

{

if (RI) // Maneja la interrupción de recepción.

{ buf【buf num】= SBUF; //Recibir datos en serie

RI = 0;

buf num++; p>

}

}

void GSM_init()

{

uint I;

prueba de código uchar【】= {0x41, 0x54, 0x0d};

ES = 0;

for(I = 0;i<3;i++)

{

SBUF = prueba[I];

mientras (TI = = 0);

TI = 0;

}

ES = 1;

}

void GSM_CMGF()

{

uchar código sel【 10】= {0x41, 0x54, 0x2B, 0x43, 0x4D, 0x47, 0x 46, 0x3D, 0x31, 0x0d}; //AT+CMGF=1 Ingrese

uint I;

for( I = 0;i<10;i++)

{

SBUF = sel[I];

mientras (TI == 0) ;

TI = 0;

}

}

void GSM_ATCMGS()

{ uint I

uchar código tel[20] = { 0x 41, 0x54, 0x2B, 0x43, 0x4D, 0x47, 0x53, 0x3D, 0x31, 0x33, 0x38, 0x33,

0x36, 0x30, 0x32, 0x33, 0x33 , 0x37, 0x39, 0x0d};

for(I = 0;i<20;i++)

{

SBUF = tel[I];

mientras (TI = = 0);

TI = 0;

}

}

void GSM_TEXT()

{

uchar code ne irong【10】= { 0x 48, 0x69, 0x21, 0x6E, 0x69, 0x68, 0x61, 0x6F, 0x2E, 0x 1a }; ! Ni Hao.

uint I;

ES = 0;

for(I = 0;i<10;i++)

{

SBUF = nei Rong[I];

mientras (TI = = 0);

TI = 0;

}

ES = 1;

}

void send()

{

SBUF = oneA[0]; == 0); TI = 0;

SBUF = unoA[1]; mientras (TI == 0);

}

void GSM_test()

{

GSM_UART();

UART_delay(400);

GSM_ init();

UART_delay(1000);

ES = 0;

buf num = 0;

if( buf【5】= ='O' & amp;& ampbuf【6】= ='K'

{

P0 = 0xfeUART_delay(1000); P0 = 0xff

}

Otros

{

P0 = 0x00UART_delay (4000); P0 = 0xff

}

}

botón nulo()

{ apuesta 1 = 1;

apuesta 1 _ 1 = 0

si (apuesta 1 == 0)

{

GSM_test();

UART_delay(1200);

GSM_CMGF();

UART_delay( 1200);

GSM_ATC MGS();

UART_delay(1200);

GSM_TEXT();

UART_delay(800);

UART_delay(500);

apuesta 1 = 1;

}

}

main()

{

BOTÓN();

UART_delay(10);

}